/* Visual translation of the supplied Figma Make reference into Noirva's PHP UI.
   Keep behavior/data in app-v33.js; this file is a presentation layer only. */
:root{--fg-bg:#07100f;--fg-sidebar:#0a1413;--fg-surface:#0e1a19;--fg-surface-2:#132220;--fg-surface-3:#192a28;--fg-line:#223432;--fg-line-soft:#172724;--fg-text:#eef5f5;--fg-muted:#91a5a1;--fg-faint:#607572;--fg-accent:#52e3bd;--fg-accent-2:#9bf8dd;--fg-accent-deep:#173f36;--fg-radius:16px;--fg-radius-sm:11px}
body[data-theme=night]{--bg:var(--fg-bg);--s:var(--fg-surface);--s2:var(--fg-surface-2);--tx:var(--fg-text);--mu:var(--fg-muted);--ac:var(--fg-accent);--on:#06251e;--bd:var(--fg-line)}
body[data-theme=day]{--bg:#f5f8f7;--s:#fff;--s2:#f0f5f3;--tx:#10211e;--mu:#5c716c;--ac:#087e68;--on:#fff;--bd:#d7e3df}
body[data-theme=aurora]{--bg:#130d22;--s:#1d1433;--s2:#2a1d48;--tx:#f1e9ff;--mu:#a493c9;--ac:#ff7ad9;--on:#2a0a22;--bd:#3a2a62}
body{background:var(--bg);letter-spacing:0;font-family:Vazirmatn,Tahoma,system-ui,sans-serif}
.app-shell{display:flex;direction:rtl;width:100%;height:100dvh;min-height:0;grid-template-columns:none;gap:0;background:var(--bg)}
.app-shell>nav{position:relative;z-index:5;order:0;width:254px;min-width:254px;flex:0 0 254px;gap:3px;padding:22px 14px 14px;background:var(--fg-sidebar);border-inline-end:0;border-inline-start:1px solid var(--fg-line-soft);box-shadow:none;overflow:hidden}
.app-shell>nav:before,.app-shell>nav:after{display:none}
.nav-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;padding:0 6px 22px;border:0}
.nav-brand>span{width:34px;height:34px;display:grid;place-items:center;color:var(--ac);flex:none}
.nav-brand>span .noirva-glyph{width:34px;height:34px}
.nav-brand>div{display:flex;flex:1;flex-direction:column;min-width:0}
.nav-brand b{font-family:ui-sans-serif,system-ui,sans-serif;letter-spacing:.04em;font-size:17px;color:var(--tx)}
.nav-brand small{font-size:9px;letter-spacing:.06em;color:var(--mu);white-space:nowrap}
.nav-brand .appbar-collapse{width:30px;height:30px;flex:none;border:1px solid var(--fg-line);border-radius:9px;background:transparent;color:var(--mu);font-size:13px;padding:0;box-shadow:none}
.sidebar-new-chat{height:46px;min-height:46px;margin:0;border:1px solid color-mix(in srgb,var(--ac) 35%,transparent);border-radius:var(--fg-radius-sm);background:var(--fg-accent-deep);color:var(--fg-accent-2);display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:600;box-shadow:none}
.sidebar-new-chat:hover{background:color-mix(in srgb,var(--ac) 14%,var(--fg-accent-deep));border-color:var(--ac);transform:none}
.nav-groups{display:flex;flex:1;flex-direction:column;gap:14px;margin-top:18px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--bd) transparent}
.nav-group{display:flex;flex-direction:column;gap:3px}
.nav-group>small{padding:0 11px 5px;color:var(--fg-faint);font-size:9px;letter-spacing:.1em}
.app-shell .nav-group button{position:relative;width:100%;min-height:43px;padding:0 11px;border:0;border-radius:10px;background:transparent;display:flex;align-items:center;justify-content:flex-start;gap:11px;color:var(--fg-muted);text-align:right;white-space:nowrap;box-shadow:none;transform:none}
.app-shell .nav-group button:hover{color:var(--fg-text);background:var(--fg-surface)}
.app-shell .nav-group button.on{color:var(--fg-text);background:var(--fg-surface-2);box-shadow:inset -2px 0 var(--fg-accent);border:0}
.app-shell .nav-group button.on:after{display:none}
.nav-group button i{width:22px;height:22px;display:grid;place-items:center;font-size:17px;color:currentColor}
.nav-group button span{flex:1;font-size:13px}
.nav-group button .nav-active{width:5px;height:5px;border-radius:50%;background:var(--fg-accent);box-shadow:0 0 8px var(--fg-accent)}
.nav-footer{margin-top:auto;padding-top:10px;border-top:1px solid var(--fg-line-soft)}
.app-shell .nav-footer>button{width:100%;min-height:42px;padding:0 11px;border:0;background:transparent;color:var(--fg-muted);box-shadow:none;transform:none}
.app-shell .nav-footer>button:hover{color:var(--fg-text);background:var(--fg-surface)}
.nav-footer>button i{width:22px;font-size:16px}.nav-profile{display:flex;align-items:center;gap:10px;margin:10px 5px 0;padding-top:12px;border-top:1px solid var(--fg-line-soft)}
.profile-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--fg-accent-deep),var(--fg-surface-3));color:var(--fg-accent);display:grid;place-items:center;font-weight:700;flex:none}
.profile-copy{display:flex;flex:1;min-width:0;flex-direction:column}.profile-copy b{font-size:12px;color:var(--fg-text)}.profile-copy small{font-size:10px;color:var(--fg-muted)}
.app-shell .profile-settings{width:30px;height:30px;min-height:30px;padding:0;justify-content:center;border:0;background:transparent;color:var(--fg-muted);box-shadow:none}
.workspace{order:1;display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;background:var(--bg)}
.appbar{height:70px;min-height:70px;flex:0 0 70px;padding:0 27px;border-bottom:1px solid var(--fg-line-soft);background:color-mix(in srgb,var(--bg) 92%,transparent);display:flex;align-items:center;justify-content:space-between;gap:14px}
.appbar-page{display:flex;align-items:center;gap:9px;min-width:0}.appbar-page>span:last-child{display:flex;flex-direction:column;gap:1px}.appbar-page small{font-size:9px;color:var(--fg-faint);letter-spacing:.12em}.appbar-page b{font-size:15px;font-weight:600;color:var(--fg-text)}
.appbar-mark{display:none}.appbar-right{display:flex;align-items:center;gap:8px;min-width:0}.appbar-action{width:38px;height:38px;border:1px solid var(--fg-line);border-radius:11px;background:transparent;color:var(--fg-muted);display:grid;place-items:center;padding:0;box-shadow:none}.appbar-action:hover,.nav-brand .appbar-collapse:hover{background:var(--fg-surface-2);color:var(--fg-text);transform:none}
.figma-search{height:38px;min-width:190px;padding:0 11px;border:1px solid var(--fg-line);border-radius:11px;background:var(--fg-surface);color:var(--fg-muted);display:flex;align-items:center;gap:9px;box-shadow:none;font-size:12px}.figma-search span{font-size:16px}.figma-search b{flex:1;text-align:right;font-weight:400}.figma-search kbd{padding:2px 5px;border-radius:5px;background:var(--fg-surface-3);color:var(--fg-faint);font:10px ui-monospace}
.search-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:start center;padding:13vh 16px 16px;background:#0009;backdrop-filter:blur(8px)}.search-dialog{width:min(600px,100%);max-height:72vh;overflow:auto;padding:12px;border:1px solid var(--fg-line);border-radius:16px;background:var(--fg-surface);box-shadow:0 24px 80px #0008}.search-dialog-head{display:flex;gap:8px}.search-dialog-head input{flex:1;min-height:44px;background:var(--fg-surface-2)}.search-dialog-head>button{width:42px;border:1px solid var(--fg-line);background:transparent;color:var(--fg-muted);font-size:20px}.search-dialog>small{display:block;padding:9px 4px 2px;color:var(--fg-faint);font-size:10px}.search-result{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:6px;padding:10px 12px;border:1px solid transparent;background:transparent;text-align:right}.search-result:hover{border-color:var(--fg-line);background:var(--fg-surface-2)}.search-result b{font-size:12px;color:var(--fg-text)}.search-result small,.search-empty{font-size:10px;color:var(--fg-muted)}
.backend-indicator{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--fg-line);border-radius:999px;color:var(--fg-muted);font-size:10px;white-space:nowrap}.backend-indicator i{width:6px;height:6px;border-radius:50%;background:#f3c978}.backend-indicator.ready i{background:var(--fg-accent)}.backend-indicator.offline{color:var(--fg-muted)}
.connection-button{height:38px;border:1px solid var(--fg-line);border-radius:11px;background:var(--fg-surface);color:var(--fg-muted);padding:0 11px;box-shadow:none}
.workspace>main{flex:1;min-width:0;min-height:0;width:100%;max-width:none;margin:0;padding:clamp(22px,3vh,38px) clamp(20px,3.4vw,64px);gap:15px;overflow:auto;scrollbar-color:var(--fg-line) transparent}
.workspace>main>*{width:min(100%,1180px);margin-inline:auto}
.app-shell.sidebar-collapsed{grid-template-columns:none}
.app-shell.sidebar-collapsed>nav{width:76px;min-width:76px;flex-basis:76px;padding:22px 10px 14px}
.app-shell.sidebar-collapsed .nav-brand{justify-content:center;padding-inline:0}
.app-shell.sidebar-collapsed .nav-brand>div,.app-shell.sidebar-collapsed .sidebar-new-chat span,.app-shell.sidebar-collapsed .nav-group>small,.app-shell.sidebar-collapsed .nav-group button span,.app-shell.sidebar-collapsed .nav-footer>button span,.app-shell.sidebar-collapsed .profile-copy,.app-shell.sidebar-collapsed .nav-group button .nav-active{display:none}
.app-shell.sidebar-collapsed .sidebar-new-chat{width:46px;margin-inline:auto}
.app-shell.sidebar-collapsed .nav-group button,.app-shell.sidebar-collapsed .nav-footer>button{justify-content:center;padding:0}
.app-shell.sidebar-collapsed .nav-profile{justify-content:center;margin-inline:0}

/* Chat follows the Figma page hierarchy: uncluttered center stage, quick prompts,
   and a floating composer. Noirva's model routing, history and attachment actions remain. */
.chatpage{display:flex;flex:1;min-height:0;flex-direction:column;gap:12px;width:100%;max-width:980px;margin:0 auto}
.chathead{min-height:34px;padding:0;border:0;justify-content:flex-end}
.chatbrand{display:none}.chat-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.chat-actions button{height:32px;padding:0 10px;border:1px solid var(--fg-line);border-radius:9px;background:transparent;color:var(--fg-muted);font-size:10px;box-shadow:none}
.chat-actions .new-chat{height:34px;background:var(--fg-accent);border-color:var(--fg-accent);color:#06251e;font-weight:700}
.chat-workgrid{display:block;flex:1;min-height:0;overflow:visible}
.chat-main{display:flex;width:100%;height:100%;min-height:0;flex-direction:column;gap:10px;overflow:visible}
.chat-rail{display:none!important}
.chat-tools{order:4;min-height:38px;padding:3px 0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:8px}
.chat-tools .model-controls{max-width:300px}.chat-tools select,.chat-tools button{min-height:34px;padding:5px 10px;border:1px solid var(--fg-line);border-radius:9px;background:var(--fg-surface);color:var(--fg-muted);font-size:10px;box-shadow:none}
.chat-tools .model-count{font-size:10px;color:var(--fg-faint)}
.msgs{order:1;flex:1;min-height:0;width:100%;max-width:900px;margin:0 auto;padding:8px 0 24px;gap:14px;overflow:auto;scrollbar-color:var(--fg-line) transparent}
.welcome{width:min(100%,650px);margin:auto;padding:14px 8px 22px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;animation:none}
.welcome:before,.welcome:after{display:none}
.welcome-orbit{width:58px;height:58px;margin:0 auto 18px;border:1px solid color-mix(in srgb,var(--ac) 30%,transparent);border-radius:19px;background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--ac) 18%,var(--s)),var(--s));box-shadow:0 18px 55px color-mix(in srgb,var(--ac) 7%,transparent);color:var(--ac);font-size:25px}
.welcome-orbit .noirva-glyph{width:58%;height:58%}.welcome-orbit .noirva-glyph path{stroke:var(--fg-text);stroke-width:4.3}.welcome-orbit .noirva-glyph circle{fill:var(--fg-accent);stroke:var(--fg-accent)}.welcome-orbit .noirva-icon{width:27px;height:27px;stroke:var(--fg-accent);stroke-width:1.8}
.welcome-kicker{display:block;color:var(--ac);font:600 10px ui-sans-serif,system-ui;letter-spacing:.15em;margin:0 0 10px}
.welcome h2{max-width:600px;margin:0 auto;color:var(--fg-text);font-size:clamp(28px,4vw,42px);line-height:1.45;letter-spacing:-.025em}
.welcome>p{max-width:500px;margin:13px auto 0;color:var(--fg-muted);font-size:13px;line-height:2}
.prompt-grid{display:grid;width:min(100%,700px);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:30px auto 0;text-align:start}
.prompt-card{position:relative;min-height:59px;padding:8px 10px;border:1px solid var(--fg-line);border-radius:13px;background:var(--fg-surface);display:flex;flex-direction:row;align-items:center;gap:9px;text-align:right;box-shadow:none;transform:none}
.prompt-card:hover{border-color:color-mix(in srgb,var(--ac) 55%,transparent);background:var(--fg-surface-2);transform:translateY(-1px);box-shadow:none}
.prompt-card .prompt-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border:0;border-radius:10px;background:var(--fg-surface-2);color:var(--ac);font-size:18px}.prompt-card .prompt-icon .noirva-icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7}
.prompt-card b{flex:1;font-size:12px;font-weight:500;color:var(--fg-text)}.prompt-card small{display:none}.prompt-card>i{position:static;color:var(--fg-faint);font-style:normal;transform:rotate(180deg)}
.welcome-foot{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px;color:var(--fg-faint);font-size:10px}
.welcome-foot span{padding:6px 10px;border:1px solid var(--fg-line-soft);border-radius:999px;background:transparent;color:var(--fg-muted);font-size:10px}
@media(min-width:801px) and (min-height:700px){.welcome{margin:28px auto auto}}
.attach-strip{order:2;width:min(100%,900px);margin:0 auto}
.chat-main>.composer{order:4;position:sticky;bottom:0;z-index:2;width:min(100%,900px);min-height:58px;margin:0 auto;padding:8px 9px;border:1px solid color-mix(in srgb,var(--ac) 22%,var(--bd));border-radius:18px;background:color-mix(in srgb,var(--s) 94%,transparent);box-shadow:0 16px 50px #0003;backdrop-filter:blur(18px)}
.chat-main>.composer .ic{width:42px;height:42px;border:0;border-radius:11px;background:var(--fg-surface-2);color:var(--fg-muted)}
.chat-main>.composer textarea{min-height:42px;max-height:170px;padding:9px 11px;border:0!important;background:transparent;color:var(--fg-text);font-size:13px}
.chat-main>.composer .pri{min-height:42px;border-radius:11px;background:var(--fg-accent);color:#06251e}
.composer-note{order:5;text-align:center;color:var(--fg-faint);font-size:9px}
.b{max-width:min(780px,90%);padding:13px 16px;border:1px solid var(--fg-line);border-radius:15px;background:var(--fg-surface);line-height:1.9;box-shadow:none}
.b.u{background:var(--fg-surface-2);border-color:var(--fg-line)}

/* The reference's module card, typography, controls and grid rhythm are shared across
   the working Notebook, Planner, Language, Health, Projects, Budget and Journal pages. */
.workspace>main>.card,.workspace>main>.workspace-module{border:1px solid var(--fg-line);border-radius:var(--fg-radius);background:var(--fg-surface);box-shadow:none}
.workspace-module{max-width:1180px;gap:14px}.workspace-heading{padding:0 2px 9px;border-bottom:1px solid var(--fg-line-soft)}
.workspace-heading small,.workspace-heading .eyebrow{color:var(--ac);letter-spacing:.12em;font-size:10px}.workspace-heading h2{font-size:clamp(23px,3vw,32px);letter-spacing:-.025em}.workspace-heading p{color:var(--fg-muted);font-size:12px;line-height:1.9}
.workspace-grid{gap:12px}.workspace-module .card,.workspace-summary .card{border:1px solid var(--fg-line);border-radius:var(--fg-radius);background:var(--fg-surface);box-shadow:none}
.workspace-module button,.workspace-module input,.workspace-module select,.workspace-module textarea,.workspace>main>.card button,.workspace>main>.card input,.workspace>main>.card select,.workspace>main>.card textarea{border-radius:var(--fg-radius-sm)}
.workspace-module .workspace-empty{border-color:var(--fg-line);background:var(--fg-surface-2);color:var(--fg-muted)}
.module{width:100%;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:0 2px 16px;border-bottom:1px solid var(--fg-line-soft);margin-bottom:8px}
.page-heading h2{margin:4px 0;font-size:clamp(23px,3vw,32px);letter-spacing:-.025em}.page-heading p{margin:0;color:var(--fg-muted);font-size:12px;line-height:1.9}
.page-heading .primary-btn{min-height:42px;border-radius:var(--fg-radius-sm);background:var(--fg-accent);color:#06251e}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.segmented{display:flex;gap:3px;padding:3px;background:var(--fg-surface-2);border-radius:10px}.segmented button{min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--fg-muted);font-size:11px}.segmented button.active{background:var(--fg-surface-3);color:var(--fg-text)}
.search-field{display:flex;align-items:center;gap:8px;width:min(100%,300px);padding:0 10px;border:1px solid var(--fg-line);border-radius:10px;background:var(--fg-surface)}.search-field input{width:100%;border:0;background:transparent}
.notebook-layout,.language-grid,.planner-grid,.health-grid,.budget-grid,.journal-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:14px}
.source-list,.source-preview,.lesson,.session-panel,.agenda,.focus-panel,.mood-card,.vitals,.project-hero,.kanban>section,.balance,.chart-card,.transactions,.entry-editor,.habits,.weekly,.notification-list,.settings-content section{border:1px solid var(--fg-line);border-radius:var(--fg-radius);background:var(--fg-surface);box-shadow:none}
.module h3{font-size:14px}.source-row,.task,.transaction,.notice{border-color:var(--fg-line-soft)}
.lesson,.source-list,.source-preview,.agenda,.focus-panel,.mood-card,.vitals,.session-panel,.chart-card,.transactions,.entry-editor,.habits,.weekly{padding:18px}
.kanban{gap:10px}.kanban>section{padding:12px;background:var(--fg-surface)}.kanban article{border-color:var(--fg-line);background:var(--fg-surface-2)}
.project-hero{padding:20px;background:linear-gradient(110deg,var(--fg-surface),color-mix(in srgb,var(--ac) 7%,var(--fg-surface)))}
.source-preview .paper{border-color:var(--fg-line-soft);background:var(--fg-surface-2);color:var(--fg-text)}
.composer-capabilities{order:3;display:flex;gap:6px;flex-wrap:wrap;width:min(100%,900px);margin:0 auto;color:var(--fg-muted);font-size:10px}
.composer-capabilities span{padding:5px 9px;border:1px solid var(--fg-line);border-radius:999px;background:var(--fg-surface)}
.mobile-dock{display:none}
@media(max-width:800px){
 body{overflow:hidden}.app-shell{height:100dvh;flex-direction:column-reverse}.app-shell>nav{display:none}.workspace{flex:1;min-height:0}.appbar{height:60px;min-height:60px;flex-basis:60px;padding:0 15px}.appbar-page small{display:none}.appbar-page b{font-size:13px}.appbar-right .backend-indicator,.appbar-right .connection-button{display:none}.workspace>main{padding:18px 14px 78px;gap:12px}.mobile-dock{position:fixed;z-index:20;inset:auto 0 0;height:67px;display:flex;justify-content:space-around;gap:3px;padding:5px 5px max(5px,env(safe-area-inset-bottom));border-top:1px solid var(--fg-line);background:color-mix(in srgb,var(--fg-sidebar) 96%,transparent)}.mobile-dock button{flex:1;min-width:0;height:56px;padding:4px 2px;border:0;border-radius:9px;background:transparent;color:var(--fg-faint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px;box-shadow:none}.mobile-dock button.on{background:var(--fg-accent-deep);color:var(--fg-accent)}.mobile-dock button i{font-size:18px}.chatpage{gap:6px}.chat-actions{min-height:30px}.chat-actions button{height:29px;padding:0 7px;font-size:9px}.msgs{padding:4px 0 15px}.welcome{padding:10px 2px 16px}.welcome h2{font-size:28px}.welcome>p{font-size:11px}.prompt-grid{grid-template-columns:1fr;margin-top:22px}.prompt-card{min-height:54px;padding:7px 9px}.prompt-card b{font-size:11px}.welcome-foot{gap:5px;margin-top:14px}.welcome-foot span{padding:5px 7px;font-size:9px}.chat-main>.composer{width:100%;min-height:55px;padding:5px;border-radius:15px}.chat-main>.composer .ic{width:38px;height:38px}.chat-main>.composer .pri{min-height:38px;padding:6px 10px}.composer-note{font-size:8px}.chat-tools{order:4;max-width:100%;flex-wrap:wrap}.composer-capabilities{order:3}.notebook-layout,.language-grid,.planner-grid,.health-grid,.budget-grid,.journal-grid{grid-template-columns:minmax(0,1fr)}.source-preview{display:none}.language-grid .session-panel{order:-1}.planner-grid .focus-panel{order:-1}.budget-grid .chart-card,.journal-grid .entry-editor{grid-row:auto}.page-heading{align-items:flex-start;margin-bottom:3px}.page-heading h2{font-size:23px}.page-heading p{font-size:10px}.page-heading .primary-btn{width:42px;padding:0;font-size:0}.toolbar{align-items:stretch;flex-direction:column}.search-field{width:100%}.kanban{display:flex;overflow-x:auto;padding-bottom:8px}.kanban>section{min-width:250px}.settings-layout{grid-template-columns:1fr}
}
@media(max-width:800px){.figma-search{min-width:38px;width:38px;padding:0;justify-content:center}.figma-search b,.figma-search kbd{display:none}}

/* Screen-specific Figma structures, bound to Noirva's live user data/actions. */
.module{padding:0 0 30px}
.notebook-module .notebook-actions,.notebook-module .url-source-form,.planner-toolbar,.health-inputs,.medicine-form,.language-config,.lesson-top,.voice-control,.language-quiz-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.notebook-actions{padding:10px;border:1px solid var(--fg-line-soft);border-radius:12px;background:var(--fg-surface-2)}
.notebook-actions button,.source-result-actions button,.archive-search button,.url-source-form button,.planner-archive button,.medical-note button{min-height:34px;padding:0 10px;border:1px solid var(--fg-line);border-radius:9px;background:var(--fg-surface);color:var(--fg-muted);font-size:10px}
.source-upload{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border:1px solid var(--fg-line);border-radius:9px;background:var(--fg-surface);color:var(--fg-text);font-size:10px;cursor:pointer}
.source-rows{max-height:430px;overflow:auto}.source-row{display:flex;align-items:center;gap:9px;padding:10px;border-bottom:1px solid var(--fg-line-soft)}.source-check{display:grid;place-items:center}.source-check input{accent-color:var(--fg-accent)}.doc-icon{width:38px;height:42px;display:grid;place-items:center;flex:none;border-radius:8px;background:var(--fg-surface-2);color:var(--fg-accent);font:700 9px ui-monospace}.source-info{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.source-info b{overflow:hidden;text-overflow:ellipsis;font-size:11px}.source-info span,.source-list-head span{color:var(--fg-faint);font-size:9px}.source-remove{border:0;background:transparent;color:var(--fg-muted)}.notebook-layout{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.source-list-head,.preview-head,.source-result>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 13px;border-bottom:1px solid var(--fg-line-soft);font-size:11px}.source-preview{min-height:350px}.source-preview .paper{min-height:190px;margin:12px 5px;padding:20px;border-radius:8px}.paper small{color:var(--fg-faint);font-size:9px}.paper p{font-size:11px;line-height:1.9;white-space:pre-wrap}.source-image-preview{max-width:100%;max-height:260px;object-fit:contain}.source-result{padding:10px;border-top:1px solid var(--fg-line-soft)}.result-paper{max-height:270px;overflow:auto;padding:12px;color:var(--fg-muted);font-size:11px;line-height:1.9}.ask-sources{width:100%;min-height:42px;border:1px solid var(--fg-line);border-radius:11px;background:var(--fg-surface-2);color:var(--fg-text)}.ask-sources:disabled{opacity:.5}.archive-search,.url-source-form>div{display:flex;gap:6px;margin:8px}.archive-search input,.url-source-form input{min-width:0;flex:1}.url-source-form{align-items:flex-start;flex-direction:column;padding:12px;border:1px solid var(--fg-line-soft);border-radius:12px;background:var(--fg-surface)}.url-source-form>div{width:100%;margin:0}.url-source-form small{color:var(--fg-faint);font-size:9px}
.language-grid{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr)}.lesson-top{justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--fg-line-soft);font-size:11px}.lesson-top [role=status]{color:var(--fg-muted);font-size:10px}.live-dot{display:inline-block;width:7px;height:7px;margin-inline-end:6px;border-radius:50%;background:var(--fg-accent)}.language-config{align-items:stretch;margin:12px 0}.language-config label,.health-inputs label{display:flex;min-width:120px;flex:1;flex-direction:column;gap:5px;color:var(--fg-muted);font-size:10px}.language-config input,.language-config select,.health-inputs input{width:100%;min-height:38px;border:1px solid var(--fg-line);border-radius:9px;background:var(--fg-surface-2);color:var(--fg-text);padding:7px 9px}.live-transcript{min-height:150px;padding:12px;border:1px solid var(--fg-line-soft);border-radius:12px;background:var(--fg-bg);color:var(--fg-muted);font-size:11px;line-height:1.9}.voice-control{margin-top:12px;padding:10px;border:1px solid var(--fg-line);border-radius:13px;background:var(--fg-surface-2)}.voice-control>div{display:flex;flex:1;flex-direction:column;gap:4px}.voice-control b{font-size:10px}.voice-control span{color:var(--fg-faint);font-size:9px}.voice-control .record{width:38px;height:38px;border:0;border-radius:50%;background:var(--fg-accent);color:#06251e}.wave{display:flex;align-items:center;gap:3px}.wave i{width:3px;height:10px;border-radius:4px;background:var(--fg-accent)}.wave i:nth-child(2),.wave i:nth-child(4){height:17px}.session-panel h3,.vitals h3,.mood-card h3{margin:0 0 10px}.language-ring{width:105px;height:105px;margin:14px auto;display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid var(--fg-line);border-radius:50%;background:var(--fg-surface-2)}.language-ring strong{font-size:22px;color:var(--fg-accent)}.language-ring span,.session-panel dt{color:var(--fg-faint);font-size:9px}.session-panel dl{margin:0}.session-panel dl>div,.mini-metrics>div{display:flex;justify-content:space-between;gap:9px;padding:9px 0;border-top:1px solid var(--fg-line-soft)}.session-panel dd{margin:0;color:var(--fg-text);font-size:10px}.offline-note,.medical-note{margin-top:12px;padding:11px;border:1px solid var(--fg-line-soft);border-radius:11px;background:var(--fg-surface-2)}.offline-note div{display:flex;flex-direction:column;gap:4px}.offline-note b,.medical-note b{font-size:10px}.offline-note span,.medical-note p{color:var(--fg-muted);font-size:9px}.language-extras{padding:15px;border:1px solid var(--fg-line);border-radius:var(--fg-radius);background:var(--fg-surface)}.language-quiz-head{justify-content:space-between}.language-quiz-head p{color:var(--fg-muted);font-size:10px}.quiz-panel:empty{display:none}
.planner-toolbar{justify-content:space-between;padding:8px 0}.planner-date-nav{display:flex;align-items:center;gap:7px}.planner-date-nav button,.date-strip button{min-width:34px;min-height:32px;border:1px solid var(--fg-line);border-radius:8px;background:var(--fg-surface);color:var(--fg-muted)}.planner-date-nav b{font-size:10px}.planner-grid{grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr)}.date-strip{display:flex;gap:5px;overflow:auto;margin-bottom:13px}.date-strip button{display:flex;flex:1;min-width:40px;flex-direction:column;align-items:center;justify-content:center;gap:3px}.date-strip button.active{border-color:var(--fg-accent);background:var(--fg-accent-deep);color:var(--fg-accent)}.agenda>h3{margin:4px 0 10px}.planner-create{display:grid;grid-template-columns:1.2fr 1fr repeat(2,minmax(70px,.6fr));gap:7px;margin-top:12px;padding:10px;border:1px solid var(--fg-line-soft);border-radius:11px;background:var(--fg-surface-2)}.planner-create input,.planner-create select{min-width:0;min-height:36px;border:1px solid var(--fg-line);border-radius:8px;background:var(--fg-surface);color:var(--fg-text);padding:6px}.planner-create label{display:flex;flex-direction:column;gap:3px;color:var(--fg-faint);font-size:9px}.planner-create button{grid-column:span 2}.planner-archive{margin-top:12px;color:var(--fg-faint);font-size:9px}.focus-panel h3,.focus-panel p{line-height:1.9}.planner-progress{display:grid;place-items:center;margin:12px}.ring{position:relative;display:grid;place-items:center}.ring circle{fill:none;stroke:var(--fg-line);stroke-width:9}.ring circle.v{stroke:var(--fg-accent);stroke-linecap:round;transform:rotate(-90deg);transform-origin:65px 65px}.ring b{position:absolute;color:var(--fg-text);font-size:18px}.weekly-chart{height:80px;display:flex;align-items:flex-end;justify-content:space-around;gap:8px;margin:14px 0}.weekly-chart>div{height:100%;display:flex;flex:1;align-items:center;justify-content:flex-end;flex-direction:column;gap:5px}.weekly-chart i{width:55%;min-height:3px;border-radius:5px 5px 2px 2px;background:var(--fg-accent)}.weekly-chart small{color:var(--fg-faint);font-size:8px}.overdue{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid #a75b4c66;border-radius:10px;background:#a75b4c12;font-size:10px}
.health-grid{grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr)}.mood-card>p,.medical-note p,.disclaimer{color:var(--fg-muted);font-size:10px;line-height:1.9}.moods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.moods button{min-height:62px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px solid var(--fg-line);border-radius:10px;background:var(--fg-surface-2);color:var(--fg-muted);font-size:9px}.moods button.active{border-color:var(--fg-accent);color:var(--fg-accent);background:var(--fg-accent-deep)}.moods button span{font-size:16px}.health-note-label{display:flex;flex-direction:column;gap:6px;color:var(--fg-muted);font-size:10px}.health-note-label textarea{min-height:85px;resize:vertical;border:1px solid var(--fg-line);border-radius:9px;background:var(--fg-surface-2);color:var(--fg-text);padding:9px}.health-inputs{margin-top:9px}.health-saved-status,.disclaimer{color:var(--fg-faint);font-size:9px}.metric{padding:11px;border:1px solid var(--fg-line-soft);border-radius:11px;background:var(--fg-surface-2)}.metric>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:var(--fg-muted)}.metric b{color:var(--fg-text);font-size:13px}.bars{height:54px;display:flex;align-items:flex-end;gap:6px;margin-top:10px}.bars i{flex:1;min-height:2px;border-radius:4px 4px 1px 1px;background:var(--fg-accent)}.mini-metrics{margin-top:9px;font-size:9px}.mini-metrics b{color:var(--fg-text)}.medication-panel{margin-top:14px;padding-top:11px;border-top:1px solid var(--fg-line-soft)}.medicine-form input{min-width:90px;flex:1;min-height:35px;border:1px solid var(--fg-line);border-radius:8px;background:var(--fg-surface-2);color:var(--fg-text);padding:7px}.medicine-form .days{flex-basis:100%;display:flex;flex-wrap:wrap;gap:7px}.days label{display:flex;align-items:center;gap:3px;color:var(--fg-muted);font-size:8px}.medical-note button{margin-top:5px}.disclaimer{margin:0}
@media(max-width:800px){.module{padding-bottom:18px}.notebook-layout,.language-grid,.planner-grid,.health-grid{grid-template-columns:minmax(0,1fr)}.source-preview{display:none}.planner-create{grid-template-columns:1fr 1fr}.planner-create button{grid-column:span 2}.planner-toolbar{align-items:flex-start;flex-direction:column}.health-grid .vitals{order:2}.moods{grid-template-columns:repeat(2,minmax(0,1fr))}.language-chat-wrap .chatpage{min-height:520px}}

/* Figma line icon system for desktop and mobile navigation. */
.nav-group button i svg,.mobile-dock button i svg{width:19px;height:19px;display:block;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.mobile-dock button i{display:grid;place-items:center}
