:root{--color-primary:#05b34d;--color-primary-hover:#04a045;--color-primary-active:#038c3c;--color-primary-soft:#05b34d14;--color-primary-glow:#05b34d40;--color-accent:#f2b91c;--color-accent-hover:#e0a815;--color-accent-soft:#f2b91c1a;--color-dark:#181f25;--color-dark-soft:#181f250a;--color-bg:#f7faf8;--color-bg-elevated:#fff;--color-bg-sunken:#f0f4f1;--color-surface:#fff;--color-surface-hover:#f8fbf9;--color-surface-active:#f0f5f2;--color-border:#e3eae5;--color-border-strong:#c8d6cd;--color-text:#131915;--color-text-secondary:#4a5851;--color-text-tertiary:#8a968f;--color-text-on-primary:#fff;--color-text-on-accent:#181f25;--color-success:#05b34d;--color-success-soft:#05b34d1a;--color-warning:#f2b91c;--color-warning-soft:#f2b91c1f;--color-danger:#dc4445;--color-danger-soft:#dc44451a;--color-info:#3a8ee6;--color-info-soft:#3a8ee61a;--gradient-primary:linear-gradient(135deg, #05b34d 0%, #04a045 50%, #038c3c 100%);--gradient-hero:linear-gradient(135deg, #f7faf8 0%, #e9fbf1 50%, #f0f9f4 100%);--gradient-card:linear-gradient(135deg, #fff 0%, #fafcfb 100%);--gradient-accent:linear-gradient(135deg, #f2b91c 0%, #e0a815 100%);--gradient-dark:linear-gradient(135deg, #181f25 0%, #232c35 100%);--glass-bg:#ffffffb8;--glass-border:#fff9;--glass-blur:blur(20px);--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-serif:"Georgia", "Times New Roman", serif;--font-mono:"SF Mono", "Cascadia Code", "Consolas", monospace;--fs-xs:11px;--fs-sm:13px;--fs-base:15px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;--fs-4xl:48px;--fs-5xl:64px;--lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.5;--lh-relaxed:1.7;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:36px;--radius-full:9999px;--shadow-xs:0 1px 2px #181f250a;--shadow-sm:0 2px 4px #181f250d, 0 1px 2px #181f2508;--shadow-md:0 6px 16px #181f2514, 0 2px 6px #181f250a;--shadow-lg:0 16px 40px #181f251a, 0 4px 12px #181f250d;--shadow-xl:0 32px 64px #181f251f, 0 8px 24px #181f250f;--shadow-2xl:0 48px 96px #181f2529, 0 16px 32px #181f2514;--shadow-primary:0 8px 24px #05b34d40;--shadow-accent:0 8px 24px #f2b91c40;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur-base:.22s;--dur-slow:.4s;--dur-slower:.6s;--header-h:60px;--tabbar-h:68px;--fab-size:56px;--max-w-mobile:480px;--max-w-tablet:768px;--max-w-desktop:1200px;--max-w-wide:1440px;--z-base:1;--z-header:100;--z-tabbar:100;--z-fab:90;--z-sheet:200;--z-modal:300;--z-toast:400}[data-theme=dark]{--color-bg:#0f1418;--color-bg-elevated:#1a2027;--color-bg-sunken:#0a0e11;--color-surface:#1a2027;--color-surface-hover:#232b33;--color-surface-active:#2a333c;--color-border:#2a333c;--color-border-strong:#3a4651;--color-text:#e8f0ec;--color-text-secondary:#a8b5ac;--color-text-tertiary:#6a766e;--color-text-on-primary:#fff;--color-text-on-accent:#181f25;--color-primary-soft:#05b34d26;--color-primary-glow:#05b34d4d;--color-accent-soft:#f2b91c26;--color-dark-soft:#0003;--color-success-soft:#05b34d26;--color-warning-soft:#f2b91c26;--color-danger-soft:#dc444526;--color-info-soft:#3a8ee626;--gradient-hero:linear-gradient(135deg, #0f1418 0%, #131a15 50%, #0f1712 100%);--gradient-card:linear-gradient(135deg, #1a2027 0%, #161c22 100%);--glass-bg:#1a2027b8;--glass-border:#ffffff0f;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 2px 4px #0000004d, 0 1px 2px #0003;--shadow-md:0 6px 16px #00000059, 0 2px 6px #0003;--shadow-lg:0 16px 40px #00000073, 0 4px 12px #00000040;--shadow-xl:0 32px 64px #00000080, 0 8px 24px #0000004d;--shadow-2xl:0 48px 96px #0009, 0 16px 32px #00000059;--shadow-primary:0 8px 24px #05b34d4d;--shadow-accent:0 8px 24px #f2b91c33}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:var(--color-primary);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}a:hover{color:var(--color-primary-hover)}img,svg,video{max-width:100%;display:block}ul,ol{list-style:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.gradient-text{background:var(--gradient-primary);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.high-contrast{--color-text:#000;--color-text-secondary:#1a1a1a;--color-text-tertiary:#333;--color-border:#666;--color-border-strong:#444;--color-primary:#006620;--color-primary-hover:#004d18;--color-primary-soft:#00662026}[data-theme=dark].high-contrast{--color-text:#fff;--color-text-secondary:#e0e0e0;--color-text-tertiary:#ccc;--color-border:#999;--color-border-strong:#bbb;--color-bg:#000;--color-surface:#1a1a1a}.dyslexia-font{--font-sans:"Comic Sans MS", "OpenDyslexic", "Lexie Readable", sans-serif;letter-spacing:.05em;word-spacing:.15em}.large-text{--fs-xs:13px;--fs-sm:15px;--fs-base:18px;--fs-md:19px;--fs-lg:22px;--fs-xl:26px;--fs-2xl:32px;--fs-3xl:42px;--fs-4xl:56px}.switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch .slider{cursor:pointer;background:var(--color-border);transition:var(--dur-fast) var(--ease-out);border-radius:24px;position:absolute;inset:0}.switch .slider:before{content:"";width:18px;height:18px;transition:var(--dur-fast) var(--ease-out);background:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px}.switch input:checked+.slider{background:var(--color-primary)}.switch input:checked+.slider:before{transform:translate(20px)}.access-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.access-row:not(:last-child){border-bottom:1px solid var(--color-border)}.rf-md-content{font-size:var(--fs-base);line-height:var(--lh-relaxed);color:var(--color-text);word-wrap:break-word}.rf-md-content>:first-child{margin-top:0}.rf-md-content>:last-child{margin-bottom:0}.rf-md-content h1{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);margin:var(--space-5) 0 var(--space-2);letter-spacing:-.02em}.rf-md-content h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin:var(--space-5) 0 var(--space-2);letter-spacing:-.01em}.rf-md-content h3{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin:var(--space-4) 0 var(--space-2)}.rf-md-content h4{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin:var(--space-3) 0 var(--space-2)}.rf-md-content p{margin:0 0 var(--space-3)}.rf-md-content ul,.rf-md-content ol{margin:0 0 var(--space-3) var(--space-5)}.rf-md-content li{margin-bottom:var(--space-1)}.rf-md-content ul.rf-md-task-list{margin-left:0;padding-left:0;list-style:none}.rf-md-content ul.rf-md-task-list li{align-items:flex-start;gap:6px;display:flex}.rf-md-content ul.rf-md-task-list li input[type=checkbox]{margin-top:4px}.rf-md-content.rf-md-task-done{color:var(--color-text-tertiary);text-decoration:line-through}.rf-md-content blockquote{border-left:3px solid var(--color-primary);padding:var(--space-2) var(--space-4);margin:var(--space-3) 0;background:var(--color-primary-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text);font-style:italic}.rf-md-content code{border-radius:var(--radius-xs);font-family:var(--font-mono);background:#0000000f;padding:1px 5px;font-size:.9em}[data-theme=dark] .rf-md-content code{background:#ffffff14}.rf-md-content pre.rf-md-code-block{background:var(--color-bg-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;overflow-x:auto}.rf-md-content pre.rf-md-code-block code{font-size:var(--fs-sm);color:var(--color-text);background:0 0;padding:0}.rf-md-content a{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-primary-soft);text-underline-offset:2px;font-weight:600}.rf-md-content a:hover{text-decoration-color:var(--color-primary)}.rf-md-content img.rf-md-img{border-radius:var(--radius-sm);max-width:100%;height:auto;margin:var(--space-3) 0}.rf-md-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.rf-md-content table.rf-md-table{border-collapse:collapse;width:100%;margin:var(--space-3) 0;font-size:var(--fs-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.rf-md-content table.rf-md-table th,.rf-md-content table.rf-md-table td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);padding:8px 12px}.rf-md-content table.rf-md-table th{background:var(--color-bg-sunken);font-weight:var(--fw-semibold)}.rf-md-content table.rf-md-table tr:last-child td{border-bottom:none}.rf-md-content table.rf-md-table td:last-child,.rf-md-content table.rf-md-table th:last-child{border-right:none}.rf-md-content .rf-md-latex-inline{border-radius:var(--radius-xs);background:#3a8ee61a;padding:1px 4px;font-family:Cambria Math,STIX,serif;font-style:italic}.rf-md-content .rf-md-latex-block{padding:var(--space-3);border-radius:var(--radius-sm);margin:var(--space-3) 0;text-align:center;font-family:Cambria Math,STIX,serif;font-size:var(--fs-md);background:#3a8ee614}.rf-md-content .rf-md-chart-block{margin:var(--space-3) 0;text-align:center}.rf-md-content .rf-md-chart-block pre{text-align:left}.rf-md-content .rf-md-chart-svg{max-width:100%;height:auto}.rf-md-content .rf-md-chart-placeholder{padding:var(--space-3);background:var(--color-bg-sunken);border:2px dashed var(--color-border);border-radius:var(--radius-sm);margin:var(--space-3) 0;color:var(--color-text-tertiary);font-size:var(--fs-sm);flex-direction:column;align-items:center;gap:6px;display:flex}.rf-md-empty{color:var(--color-text-tertiary);font-style:italic}.chat-msg .cm-body.rf-md-content{font-size:var(--fs-sm)}.chat-msg .cm-body.rf-md-content p{margin:0 0 var(--space-1)}.chat-msg .cm-body.rf-md-content p:last-child{margin-bottom:0}.chat-msg .cm-body.rf-md-content pre.rf-md-code-block{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs)}.rf-preloader{z-index:99999;background:var(--color-bg,#f7faf8);opacity:1;visibility:visible;pointer-events:auto;justify-content:center;align-items:center;transition:opacity .3s ease-out,visibility .3s ease-out;display:flex;position:fixed;inset:0}.rf-preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}.rf-preloader-spinner{border:4px solid #05b34d26;border-top-color:#05b34d;border-radius:50%;width:48px;height:48px;animation:.7s ease-in-out infinite rf-preloader-spin}@keyframes rf-preloader-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.rf-preloader-spinner{border-top-color:#05b34d8c;animation:none}.rf-preloader{transition:opacity .3s ease-out,visibility .3s ease-out}}[hidden]{display:none!important}.app-body{background:var(--color-bg);min-height:100dvh;max-width:var(--max-w-mobile);box-shadow:var(--shadow-xl);flex-direction:column;margin:0 auto;display:flex;position:relative}.app-header{z-index:var(--z-header);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--color-border);position:sticky;top:0}.header-inner{height:var(--header-h);padding:0 var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.header-title{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.header-actions{align-items:center;gap:var(--space-2);display:flex}.icon-btn{border-radius:var(--radius-full);width:38px;height:38px;color:var(--color-text-secondary);transition:all var(--dur-fast) var(--ease-out);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.icon-btn:active{transform:scale(.95)}a.btn:hover,a.btn-primary:hover,a.btn-primary:active,a.btn-primary:focus-visible{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:var(--shadow-primary);transform:translateY(-1px);color:var(--color-text-on-primary)!important}a.btn-secondary:hover,a.btn-secondary:active,a.btn-secondary:focus-visible{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-hover)!important}a.btn-ghost:hover,a.btn-ghost:active,a.btn-ghost:focus-visible{background:var(--color-surface-hover);border-color:var(--color-border-strong);color:var(--color-text)!important}a.btn-danger:hover,a.btn-danger:active{background:#c33d3e;color:#fff!important}button.btn-primary:hover:not(:disabled),button.btn-primary:active:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow-primary);transform:translateY(-1px);color:var(--color-text-on-primary)!important}button.btn-secondary:hover:not(:disabled){background:var(--color-accent);color:var(--color-text-on-accent)!important}button.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong);color:var(--color-text)!important}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.avatar-btn{border-radius:var(--radius-full);background:var(--gradient-primary);width:auto;min-width:38px;height:38px;color:var(--color-text-on-primary);font-size:var(--fs-xs);font-weight:var(--fw-bold);box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-out);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:0 6px 0 4px;display:inline-flex;overflow:hidden}.avatar-btn:active{transform:scale(.95)}.avatar-initials{line-height:1}.avatar-caret{opacity:.85;flex-shrink:0}[aria-expanded=true]>.avatar-caret{transform:rotate(180deg)}.avatar-caret{transition:transform var(--dur-fast) var(--ease-out)}.header-left{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.app-content{padding:var(--space-4);padding-bottom:calc(var(--tabbar-h) * 2 + var(--space-6) + env(safe-area-inset-bottom));flex:1;width:100%;overflow-y:auto}.app-content-wide{max-width:100%!important;padding:var(--space-3)!important}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal);animation:fadeIn var(--dur-fast) var(--ease-out);background:#181f2580;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);width:320px;max-width:85vw;z-index:calc(var(--z-modal) + 1);transition:transform var(--dur-base) var(--ease-out);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.app-sidebar:not(.open){visibility:hidden;pointer-events:none}.app-sidebar.open{visibility:visible;pointer-events:auto;transform:translate(0)}.sidebar-overlay[hidden],.app-sidebar[hidden]{display:none!important}.app-sidebar.open{transform:translate(0)}.sidebar-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-primary-soft);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-brand{align-items:center;gap:var(--space-2);font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--color-text);text-decoration:none;display:flex}.brand-app-suffix{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--color-text-tertiary)}.sidebar-close{color:var(--color-text-secondary)}.platform-switcher{flex:1;position:relative}.ps-toggle{align-items:center;gap:var(--space-2);cursor:pointer;font:inherit;color:inherit;text-align:left;background:0 0;border:none;width:100%;padding:0;display:flex}.ps-chevron{color:var(--color-text-tertiary);transition:transform var(--dur-fast) var(--ease-out);flex-shrink:0;margin-left:auto}.ps-dropdown{z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);max-height:400px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ps-dropdown[hidden]{display:none!important}.ps-item{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);align-items:center;text-decoration:none;display:flex}.ps-item:hover{background:var(--color-surface-hover)}.ps-item.active{background:var(--color-primary-soft)}.ps-item.active strong{color:var(--color-primary)}.ps-item div{flex-direction:column;display:flex}.ps-item strong{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.ps-item span{color:var(--color-text-tertiary);font-size:10px}.sidebar-section{padding:var(--space-4) var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border)}.sidebar-section-title{font-size:10px;font-weight:var(--fw-bold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-2) var(--space-2)}.sidebar-current-project{padding:var(--space-2) var(--space-3);background:var(--color-bg-sunken);border-radius:var(--radius-sm);margin:0 var(--space-2)}.scp-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text);line-height:var(--lh-tight)}.scp-stage{color:var(--color-text-tertiary);text-transform:capitalize;margin-top:2px;font-size:10px}.sidebar-nav{padding:var(--space-2) var(--space-3);flex-direction:column;gap:2px;display:flex}.sidebar-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:all var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.sidebar-nav-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-nav-item.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--fw-semibold)}.sidebar-nav-item.active svg{color:var(--color-primary)}.sidebar-nav-item svg{color:var(--color-text-tertiary);flex-shrink:0}.sidebar-steps{gap:1px;padding:0}.sidebar-nav-item.step{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs)}.sidebar-step-num{width:18px;height:18px;font-size:10px;font-weight:var(--fw-bold);border:1.5px solid var(--color-border);color:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-nav-item.step.active .sidebar-step-num{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.sidebar-nav-item.step.done .sidebar-step-num{display:none}.sidebar-step-check{color:var(--color-primary);flex-shrink:0}.sidebar-nav-item.step.done{color:var(--color-primary)}.sidebar-projects{padding:0 var(--space-2);flex-direction:column;gap:2px;display:flex}.sidebar-project{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--fs-xs);transition:all var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.sidebar-project:hover{background:var(--color-surface-hover)}.sidebar-project.active{background:var(--color-primary-soft)}.sp-title{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium);flex:1;overflow:hidden}.sp-stage{color:var(--color-text-tertiary);text-transform:capitalize;flex-shrink:0;font-size:9px}.sidebar-more-projects{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs);color:var(--color-primary);font-weight:var(--fw-medium);text-decoration:none;display:block}.sidebar-footer{padding:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;gap:2px;margin-top:auto;display:flex}.sidebar-mega-menu{position:relative}.mega-menu-toggle{justify-content:flex-start;width:100%}.mega-menu-toggle .mega-chevron{transition:transform var(--dur-fast) var(--ease-out);margin-left:auto}.mega-menu-toggle.open .mega-chevron{transform:rotate(90deg)}.mega-menu-content[hidden]{display:none!important}.mega-menu-content{margin-left:var(--space-4);padding-left:var(--space-2);border-left:2px solid var(--color-border);flex-direction:column;gap:1px;margin-top:2px;margin-bottom:4px;display:flex}.mega-menu-item{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);font-size:var(--fs-xs);color:var(--color-text-secondary);transition:all var(--dur-fast) var(--ease-out);text-decoration:none;display:flex}.mega-menu-item:hover{background:var(--color-surface-hover);color:var(--color-primary)}.mega-menu-item svg{color:var(--color-text-tertiary);flex-shrink:0}.mega-menu-item:hover svg{color:var(--color-primary)}.bottom-nav{z-index:var(--z-tabbar);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--color-border);max-width:var(--max-w-mobile);flex-direction:column;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-row{height:var(--tabbar-h);padding:var(--space-2) var(--space-2);align-items:stretch;gap:var(--space-1);display:flex}.bottom-nav-row.step-nav-row{border-bottom:1px solid var(--color-border);background:var(--color-bg-sunken);-webkit-overflow-scrolling:touch;scrollbar-width:none;height:44px;overflow-x:auto}.bottom-nav-row.step-nav-row::-webkit-scrollbar{display:none}.tab-item{color:var(--color-text-tertiary);font-size:10px;font-weight:var(--fw-medium);transition:all var(--dur-base) var(--ease-out);border-radius:var(--radius-md);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex;position:relative}.tab-item span{line-height:1}.tab-item:active{transform:scale(.92)}.tab-item.active{color:var(--app-color,var(--color-primary));background:color-mix(in srgb, var(--app-color,var(--color-primary)) 12%, transparent)}.tab-item.active:before{content:"";background:var(--app-color,var(--color-primary));border-radius:50%;width:5px;height:5px;position:absolute;top:2px;left:50%;transform:translate(-50%)}.tab-item.app-home.active,.tab-item.app-flow.active,.tab-item.app-lib.active,.tab-item.app-lounge.active,.tab-item.app-lab.active{--app-color:var(--color-primary)}.step-tab{padding:0 var(--space-4);font-size:11px;font-weight:var(--fw-medium);color:var(--color-text-tertiary);white-space:nowrap;border-radius:var(--radius-sm);transition:all var(--dur-fast) var(--ease-out);flex:1;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:flex}.step-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.step-tab.active{color:var(--color-primary);font-weight:var(--fw-semibold)}.step-tab.done{color:var(--color-primary)}.step-tab-num{width:16px;height:16px;font-size:9px;font-weight:var(--fw-bold);border:1.5px solid;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.step-tab.done .step-tab-num{display:none}.step-tab.done:before{content:"✓";color:var(--color-primary);font-weight:var(--fw-bold);margin-right:2px;font-size:12px}.step-tab-label{line-height:1}.fab{right:var(--space-5);bottom:calc(var(--tabbar-h) * 2 + var(--space-6) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2);height:var(--fab-size);padding:0 var(--space-6);background:var(--gradient-primary);color:var(--color-text-on-primary);border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:var(--fw-semibold);box-shadow:var(--shadow-primary);z-index:var(--z-fab);transition:all var(--dur-base) var(--ease-spring);text-decoration:none;display:inline-flex;position:fixed}.fab:hover{transform:translateY(-3px);box-shadow:0 12px 32px #05b34d59}.fab:active{transform:translateY(0)scale(.95)}.fab-label{white-space:nowrap}@media (width>=768px){.app-body{max-width:100%;box-shadow:none;border-radius:0}.app-header{border-radius:0}.bottom-nav{max-width:480px}.app-content{padding:var(--space-6) var(--space-8);padding-bottom:calc(var(--tabbar-h) * 2 + var(--space-6) + env(safe-area-inset-bottom));width:100%;max-width:960px;margin:0 auto}.app-sidebar{box-shadow:none;width:280px;z-index:var(--z-base);transform:translate(0);visibility:visible!important;pointer-events:auto!important}.app-sidebar.open{transform:translate(0)}.sidebar-overlay{display:none!important}.sidebar-toggle,.sidebar-close{display:none}.app-body{padding-left:280px}.fab{right:var(--space-8)}}@media (width>=1024px){.app-body{border-radius:0;max-width:100%;min-height:100dvh;margin:0;overflow:visible}.app-content{padding:var(--space-8) var(--space-10);padding-bottom:calc(var(--tabbar-h) * 2 + var(--space-6) + env(safe-area-inset-bottom));width:100%;max-width:1200px;margin:0 auto}.bottom-nav{max-width:560px}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color var(--dur-fast) var(--ease-out)}.card-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--space-2);color:var(--color-text)}.card-body{font-size:var(--fs-sm);color:var(--color-text-secondary);line-height:var(--lh-relaxed)}.section-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.section-header h2{font-size:var(--fs-md);font-weight:var(--fw-semibold)}.section-header a{font-size:var(--fs-sm);color:var(--color-primary);font-weight:var(--fw-medium)}.empty-state{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-tertiary);flex-direction:column;align-items:center;display:flex}.empty-state svg{color:var(--color-border-strong);margin-bottom:var(--space-4)}.empty-state h3{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--fs-sm);max-width:280px;line-height:var(--lh-relaxed);margin-bottom:var(--space-4)}.progress-ring{transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:8px}.progress-ring .bg{stroke:var(--color-border)}.progress-ring .fg{stroke:var(--color-primary);stroke-linecap:round;transition:stroke-dashoffset var(--dur-slow) var(--ease-out)}.chip{align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);display:inline-flex}.chip-student{background:var(--color-primary-soft);color:var(--color-primary)}.chip-ai{background:var(--color-accent-soft);color:var(--color-accent-hover)}.chip-quote{background:var(--color-info-soft);color:var(--color-info)}.skeleton{background:linear-gradient(90deg, var(--color-border) 0%, var(--color-surface-hover) 50%, var(--color-border) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sync-banner{bottom:calc(var(--tabbar-h) * 2 + var(--space-4) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-dark);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);z-index:var(--z-toast);box-shadow:var(--shadow-lg);max-width:calc(100% - var(--space-8));animation:slideUp var(--dur-base) var(--ease-out);display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}.sync-banner svg{color:var(--color-accent);flex-shrink:0}.status-dot{width:8px;height:8px;transition:background-color var(--dur-base) var(--ease-out);border-radius:50%;flex-shrink:0}.status-dot.online{background:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft)}.status-dot.offline{background:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}
