:root{--bg: #F2F3F5;--surface: #FFFFFF;--ink: #3d4465;--ink-soft: #8b8fa7;--accent: #55b928;--accent-hover: #4aa522;--accent-light: rgba(85, 185, 40, .08);--accent-2: #f97316;--danger: #e64a45;--danger-hover: #d03d38;--radius: 14px;--radius-sm: 10px;--sidebar-bg: linear-gradient(180deg, #6366a0 0%, #44466e 100%);--sidebar-solid: #55588b;--border: #e4e7ed;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .04)}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,.brand{font-family:Space Grotesk,sans-serif}h1{font-size:1.5rem;font-weight:700;margin:0 0 .2rem;color:var(--ink)}h2{font-size:1.2rem;font-weight:600}button,input,textarea{font:inherit}a{color:var(--accent)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem;background:var(--bg)}.auth-card{width:min(440px,100%);background:var(--surface);border:none;border-radius:var(--radius);padding:2.5rem 2rem;display:grid;gap:.85rem;box-shadow:var(--shadow-lg)}.auth-card h1{text-align:center;font-size:1.6rem;margin-bottom:.5rem;background:linear-gradient(135deg,#55588b,#6366a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-card a,.auth-card .hint{text-align:center;font-size:.88rem}.hint{color:var(--ink-soft);font-size:.85rem}.auth-card input,.card input,.card textarea,.section-card input,.section-card textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s;background:#f8f9fb;font-size:.93rem;color:var(--ink)}.auth-card input::placeholder,.card input::placeholder,.card textarea::placeholder{color:#b0b5c3}.auth-card input:hover,.card input:hover,.card textarea:hover{border-color:#c5c9d6}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);background:#fff}.card label,.auth-card label,.section-card label{font-size:.82rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}button,.btn{border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;padding:.55rem 1.1rem;cursor:pointer;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:.01em;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;box-shadow:0 1px 3px #28a80033}button:hover,.btn:hover{background:var(--accent-hover);box-shadow:0 4px 12px #28a80040;transform:translateY(-1px)}button:active,.btn:active{transform:translateY(0);box-shadow:0 1px 2px #28a80026}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:transparent;color:var(--accent);border:1.5px solid var(--accent);box-shadow:none}.btn-secondary:hover{background:var(--accent-light);box-shadow:none;transform:none}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 1px 3px #e64a4533}.btn-danger:hover{background:var(--danger-hover);box-shadow:0 4px 12px #e64a4540}.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--border);box-shadow:none}.btn-outline:hover{border-color:#c5c9d6;background:#f8f9fb;box-shadow:none;transform:none}.btn-ghost{background:transparent;color:var(--ink-soft);padding:.4rem .6rem;box-shadow:none}.btn-ghost:hover{background:#0000000a;box-shadow:none;transform:none}.pw-strength{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.pw-strength-bar{height:100%;border-radius:2px;transition:width .3s,background .3s}.pw-strength-bar.weak{width:33%;background:var(--danger)}.pw-strength-bar.medium{width:66%;background:var(--accent-2)}.pw-strength-bar.strong{width:100%;background:var(--accent)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.spinner.dark{border-color:#0000001a;border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{pointer-events:auto;padding:.75rem 1.1rem;border-radius:var(--radius-sm);color:#fff;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-md);animation:slideIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast.success{background:var(--accent)}.toast.error{background:var(--danger)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.empty-state{text-align:center;padding:4rem 1rem;color:var(--ink-soft)}.empty-state p{font-size:1.1rem;margin-bottom:1rem}.error{color:var(--danger);font-size:.88rem;font-weight:500}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{border-right:none;background:var(--sidebar-bg);padding:1.2rem .8rem;display:flex;flex-direction:column;gap:.5rem;position:relative}.sidebar .brand{color:#fff;text-decoration:none;font-size:1.2rem;font-weight:800;padding:.4rem .7rem 1rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}.sidebar .brand:before{content:"";display:inline-block;width:28px;height:28px;background:#fff3;border-radius:8px}.sidebar-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#ffffff59;padding:.8rem .7rem .3rem}.sidebar nav{display:grid;gap:2px}.sidebar nav a{color:#ffffffb3;text-decoration:none;padding:.55rem .75rem;border-radius:8px;transition:all .15s ease;display:flex;align-items:center;gap:.6rem;font-size:.9rem;font-weight:500}.sidebar nav a .nav-icon{width:20px;text-align:center;font-size:1rem;opacity:.7}.sidebar nav a:hover{background:#ffffff1a;color:#fff}.sidebar nav a:hover .nav-icon{opacity:1}.sidebar nav a.active{background:#ffffff2e;color:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}.sidebar nav a.active .nav-icon{opacity:1}.sidebar-footer{margin-top:auto;display:grid;gap:.7rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-footer small{color:#fff9;font-size:.78rem}.sidebar-footer strong{color:#fff}.sidebar-avatar{width:38px;height:38px;border-radius:10px;background:#ffffff2e;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:.6rem}.sidebar-user-info{display:flex;flex-direction:column;gap:1px;min-width:0}.sidebar-user-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer .btn-danger{background:#ffffff14;color:#fffc;border:1px solid rgba(255,255,255,.12);font-size:.82rem;padding:.4rem .7rem;box-shadow:none;font-weight:500}.sidebar-footer .btn-danger:hover{background:#e64a45d9;border-color:transparent;color:#fff;box-shadow:none}.content{padding:1.8rem 2rem;overflow:auto;max-width:1200px}.hamburger{display:none;position:fixed;top:.6rem;left:.6rem;z-index:1001;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:1.3rem;cursor:pointer;color:var(--ink);line-height:1;box-shadow:var(--shadow-sm)}.hamburger:hover{box-shadow:var(--shadow-md);transform:none}.mobile-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.page-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1.2rem}.toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.toolbar input{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .8rem;font-size:.9rem;background:#fff;transition:border-color .2s,box-shadow .2s}.toolbar input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.card{background:var(--surface);border-radius:var(--radius);border:none;padding:1.5rem;display:grid;gap:.75rem;box-shadow:var(--shadow-sm);transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.preview{margin-top:1rem;background:var(--surface);border-radius:var(--radius);border:none;padding:1.5rem;box-shadow:var(--shadow-sm)}.table-wrap{overflow:auto;background:var(--surface);border:none;border-radius:var(--radius);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse}th{text-align:left;padding:.75rem 1rem;border-bottom:2px solid #eef0f4;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);background:#fafbfc}td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid #f0f2f5;font-size:.9rem}tbody tr{transition:background .12s}tbody tr:hover{background:#f8f9fb}tbody tr:last-child td{border-bottom:none}.actions{display:flex;gap:.4rem;flex-wrap:wrap}.actions button{font-size:.82rem;padding:.35rem .7rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.sections-list{display:grid;gap:.6rem}.section-card{border:1.5px solid #eef0f4;border-radius:var(--radius);padding:.8rem;background:#fff;transition:border-color .15s,box-shadow .15s}.section-card:hover{border-color:#d8dbe5;box-shadow:var(--shadow-sm)}.section-head{display:grid;grid-template-columns:30px 1fr auto;gap:.5rem;align-items:center}.rte-wrap{border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:#fff;transition:border-color .2s,box-shadow .2s}.rte-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.rte-toolbar{display:flex;align-items:center;gap:.2rem;padding:.35rem .6rem;border-bottom:1px solid #eef0f4;background:#fafbfc;flex-wrap:wrap}.rte-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;color:var(--ink-soft);transition:background .12s,color .12s;min-width:28px;text-align:center}.rte-btn:hover{background:#0000000d;color:var(--ink)}.rte-btn.active{background:var(--accent);color:#fff}.rte-sep{width:1px;height:18px;background:#e4e7ed;margin:0 .2rem}.rte-content{min-height:120px;max-height:400px;overflow-y:auto}.rte-content .tiptap{padding:.7rem .9rem;outline:none;min-height:120px;font-size:.95rem;line-height:1.65}.rte-content .tiptap p{margin:0 0 .4rem}.rte-content .tiptap h2{font-size:1.2rem;margin:.6rem 0 .3rem}.rte-content .tiptap h3{font-size:1.05rem;margin:.5rem 0 .25rem}.rte-content .tiptap ul,.rte-content .tiptap ol{margin:.3rem 0;padding-left:1.4rem}.rte-content .tiptap li{margin-bottom:.15rem}.rte-content .tiptap hr{border:none;border-top:1px solid var(--border);margin:.6rem 0}.rte-content .tiptap blockquote{border-left:3px solid var(--accent);margin:.4rem 0;padding:.2rem .8rem;color:var(--ink-soft)}.tp-loading{min-height:100vh;background:#0b0e12;color:#f3f6ff;display:grid;place-items:center}.tp{height:100vh;display:grid;grid-template-rows:auto 1fr auto;border:4px solid transparent;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:background .25s,color .25s}.tp.dark{background:#0b0e12;color:#eef1fa}.tp.dark.flash{background:#141922}.tp.light{background:#fff;color:#1a1a2e}.tp.light.flash{background:#f3f3f7}.tp.info{border-color:#10b981}.tp.warn{border-color:#f59e0b;box-shadow:inset 0 0 30px #f59e0b2e}.tp.warn-strong{border-color:#fb923c;box-shadow:inset 0 0 45px #fb923c3d}.tp.danger{border-color:#ef4444;animation:tpPulse 1.1s infinite}@keyframes tpPulse{0%,to{box-shadow:inset 0 0 20px #ef44442e}50%{box-shadow:inset 0 0 42px #ef444459}}.tp-bar{z-index:10;display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.8rem}.tp.dark .tp-bar{background:#0b0e12e0;border-bottom:1px solid rgba(255,255,255,.06)}.tp.light .tp-bar{background:#ffffffeb;border-bottom:1px solid #e4e0d8}.tp-bar-left{display:flex;align-items:center;gap:.4rem;min-width:0}.tp-bar-center{margin:0 auto;flex-shrink:0}.tp-bar-right{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.tp-title{font-weight:700;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.tp-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.22rem .5rem;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,opacity .12s}.tp.dark .tp-btn{background:#ffffff1a;color:#cdd3e0}.tp.dark .tp-btn:hover{background:#ffffff2e}.tp.light .tp-btn{background:#eee9e0;color:#333}.tp.light .tp-btn:hover{background:#e0dbd1}.tp-btn-back{font-size:1rem;padding:.15rem .4rem;line-height:1}.tp-btn-sm{padding:.18rem .4rem;font-size:.72rem;font-weight:700}.tp-btn-icon{font-size:.95rem;padding:.18rem .35rem}.tp-pill{display:inline-flex;border-radius:6px;overflow:hidden}.tp-pill-btn{all:unset;box-sizing:border-box;padding:.25rem .6rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.tp.dark .tp-pill-btn{background:#ffffff12;color:#fff6}.tp.light .tp-pill-btn{background:#eee9e0;color:#999}.tp-pill-btn.on{background:var(--accent);color:#fff!important}.tp-timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:.9rem;letter-spacing:.04em}.tp-timer.warn,.tp-timer.warn-strong{color:#f59e0b}.tp-timer.danger{color:#ef4444}.tp-font-ctrl{display:inline-flex;gap:.15rem}.tp-speed{width:90px;accent-color:var(--accent)}.tp-main{display:flex;min-height:0;overflow:hidden}.tp-main .tp-scroll{flex:1;min-width:0}.tp-scroll{overflow-y:auto;padding:1.5rem 1rem 4rem;min-height:0}.tp-text{margin:0 auto}.tp-text p{white-space:pre-wrap;margin:0 0 .3em}.tp-text strong{font-weight:700}.tp-text em{font-style:italic}.tp-text u{text-decoration:underline}.tp-text ul,.tp-text ol{margin:.3em 0;padding-left:1.4em}.tp-text li{margin-bottom:.15em}.tp-text blockquote{border-left:3px solid rgba(255,255,255,.2);margin:.4em 0;padding:.2em .8em;opacity:.8}.tp.light .tp-text blockquote{border-left-color:#00000026}.tp-text hr{border:none;border-top:1px solid rgba(255,255,255,.15);margin:.6em 0}.tp.light .tp-text hr{border-top-color:#0000001a}.tp-text h2{margin:0 0 .5rem;font-size:1.1em;opacity:.7;font-weight:600}.tp-section{padding-bottom:1.5rem}.tp-section+.tp-section{padding-top:1.5rem;margin-top:1rem}.tp.dark .tp-section+.tp-section{border-top:1px solid rgba(255,255,255,.08)}.tp.light .tp-section+.tp-section{border-top:1px solid rgba(0,0,0,.08)}.tp-section-label{font-size:.55em;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;opacity:.4}.tp-sidebar{width:230px;flex-shrink:0;overflow-y:auto;padding:1rem .8rem;display:flex;flex-direction:column;gap:.8rem;animation:tpSlideIn .25s ease-out}.tp-sidebar.dark{border-left:2px solid rgba(16,185,129,.25);background:#10b98108}.tp-sidebar.light{border-left:2px solid rgba(15,118,110,.15);background:#f6faf9}@keyframes tpSlideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.tp-sidebar-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#10b981}.tp-ref-name{font-size:.78em;font-weight:700;color:#10b981}.tp-ref-text{font-size:.78em;line-height:1.45;font-style:italic;margin-top:.1rem}.tp-sidebar.dark .tp-ref-text{color:#eef1fa99}.tp-sidebar.light .tp-ref-text{color:#555}.tp-inline-refs{margin-top:.5rem;padding-top:.4rem;display:flex;flex-wrap:wrap;gap:.35rem}.tp.dark .tp-inline-refs{border-top:1px dashed rgba(16,185,129,.2)}.tp.light .tp-inline-refs{border-top:1px dashed rgba(16,185,129,.3)}.tp-inline-ref{font-size:.5em;line-height:1.4;padding:.15rem .45rem;border-radius:5px;background:#10b9810f;border:1px solid rgba(16,185,129,.15)}.tp.dark .tp-inline-ref{color:#eef1fa8c}.tp.light .tp-inline-ref{color:#666}.tp-inline-ref strong{color:#10b981;margin-right:.25em}.tp-footer{text-align:center;padding:.25rem .5rem;font-size:.7rem;font-weight:500;letter-spacing:.02em}.tp.dark .tp-footer{background:#ffffff0a;color:#eef1fa66}.tp.light .tp-footer{background:#00000008;color:#888}.tp-images{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem;justify-content:center}.tp-img{max-width:100%;max-height:50vh;border-radius:8px;object-fit:contain}.tp.dark .tp-img{border:1px solid rgba(255,255,255,.1)}.tp.light .tp-img{border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #00000014}.tp-end{text-align:center;padding:2rem;font-size:1.2rem;color:#f59e0b;opacity:0;transition:opacity .5s}.tp-end.show{opacity:1}.tp-alert{position:fixed;top:42px;right:12px;font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;background:#f59e0b;color:#131722;z-index:20}.tp-resume{position:fixed;top:44px;left:50%;transform:translate(-50%);z-index:20;border-radius:999px;padding:.25rem .5rem;display:flex;gap:.4rem;align-items:center;font-size:.75rem;white-space:nowrap}.tp-resume.dark{background:#102239;border:1px solid #2f4d6f;color:#cdd3e0}.tp-resume.light{background:#fff;border:1px solid #d6d2c8;color:#333;box-shadow:0 2px 10px #00000014}@media(max-width:960px){.hamburger,.mobile-overlay.open{display:block}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0;z-index:1000;transform:translate(-100%);transition:transform .3s ease;border-right:0;width:270px;background:var(--sidebar-bg)}.sidebar.open{transform:translate(0)}.content{padding:3.5rem 1rem 1.5rem}.grid-2{grid-template-columns:1fr}.tp-speed{width:80px}.tp-sidebar{width:170px}.tp-title{max-width:120px}}@media(max-width:768px){.tp-main.split{flex-direction:column}.tp-sidebar{width:100%;max-height:22vh;border-left:0!important;animation:none}.tp-sidebar.dark{border-top:2px solid rgba(16,185,129,.25)}.tp-sidebar.light{border-top:2px solid rgba(15,118,110,.15)}}@media(max-width:600px){.tp-bar{flex-wrap:wrap;gap:.25rem}.tp-bar-center{order:-1;width:100%;text-align:center;margin:0}.tp-bar-right{width:100%;justify-content:center}.tp-title{max-width:100px;font-size:.75rem}.content{padding:3.5rem .75rem 1rem}.page-header{flex-direction:column;align-items:flex-start}}
