:root{--bg: #04060c;--bg-deep: #02040a;--text: #e9eefb;--text-muted: #a5b0c8;--text-faint: #6b7791;--accent: #78c6ff;--accent-strong: #a6dcff;--accent-ink: #061020;--ok: #7ee2a8;--warn: #ffcf80;--bad: #ff9b9b;--surface-1: rgba(16, 22, 38, .44);--surface-2: rgba(13, 18, 32, .7);--surface-3: rgba(15, 21, 37, .82);--surface-raised: rgba(255, 255, 255, .045);--surface-sunken: rgba(4, 7, 14, .55);--hairline: rgba(150, 178, 235, .12);--stroke: rgba(150, 178, 235, .16);--stroke-strong: rgba(150, 178, 235, .3);--stroke-accent: rgba(120, 198, 255, .42);--elev-1: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 8px 20px rgba(0, 0, 0, .32);--elev-2: 0 1px 0 rgba(255, 255, 255, .05) inset, 0 14px 34px rgba(0, 0, 0, .4);--elev-3: 0 1px 0 rgba(255, 255, 255, .07) inset, 0 18px 44px rgba(0, 0, 0, .48), 0 0 0 1px rgba(120, 198, 255, .1);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 22px;--sp-6: 30px;--r-xs: 8px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-round: 999px;--radius: var(--r-lg);--top-bar-height: 46px;--window-bar-height: 34px;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 19px;--tracking-wide: .14em;--dur-instant: 90ms;--dur-fast: .14s;--dur: .2s;--dur-slow: .28s;--ease: cubic-bezier(.22, .61, .24, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--focus-ring: 0 0 0 2px rgba(120, 198, 255, .45);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-deep);color:var(--text);font:var(--fs-md) / 1.5 var(--font-ui);overflow:hidden;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}:where(button,input,textarea,select,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid transparent;background-clip:content-box;border-radius:var(--r-round);background-color:#96b2eb38}::-webkit-scrollbar-track{background:transparent}.glass{background:var(--surface-1);backdrop-filter:blur(26px) saturate(135%);-webkit-backdrop-filter:blur(26px) saturate(135%);border:1px solid var(--hairline);box-shadow:var(--elev-2)}.boot,.login{display:grid;place-items:center;height:100%;background:radial-gradient(1100px 700px at 18% 12%,rgba(70,126,255,.2),transparent 60%),radial-gradient(900px 620px at 84% 82%,rgba(150,96,255,.16),transparent 62%),linear-gradient(160deg,#04060c,#0a1020 58%,#04060c)}.boot__mark,.login__title{font-size:var(--fs-xl);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.boot__mark{color:var(--text-muted);animation:breathe 2.4s ease-in-out infinite}.login__panel{display:grid;gap:var(--sp-3);padding:var(--sp-6);width:min(400px,calc(100vw - 32px));border-radius:var(--r-xl);animation:rise var(--dur-slow) var(--ease-out) both}.login__panel .field{text-align:center;letter-spacing:.3em}.desktop{position:relative;height:100%;overflow:hidden;isolation:isolate}.desktop__wallpaper{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.02);transition:filter var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}.desktop__wallpaper--default{background:radial-gradient(1200px 780px at 14% 8%,rgba(70,126,255,.26),transparent 58%),radial-gradient(1000px 700px at 86% 82%,rgba(150,92,255,.2),transparent 60%),radial-gradient(760px 520px at 62% 32%,rgba(48,214,208,.12),transparent 66%),linear-gradient(155deg,#04060c,#0a1020 55%,#04060c)}.desktop__grade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#04060c94,#04060c3d 32%,#04060c9e)}.desktop__grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(150,178,235,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(150,178,235,.06) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(120% 100% at 50% 30%,#000 20%,transparent 78%);-webkit-mask-image:radial-gradient(120% 100% at 50% 30%,#000 20%,transparent 78%)}.desktop__glow{position:absolute;left:-140px;bottom:-180px;width:620px;height:620px;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(120,198,255,.16),transparent 68%)}.desktop__vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 100% at 50% 40%,transparent 46%,rgba(0,0,0,.62) 100%)}.desktop__surface{position:absolute;top:0;right:0;bottom:0;left:0}.desktop--switching .desktop__surface{animation:workspace-in var(--dur-slow) var(--ease-out) both}.desktop--switching .desktop__wallpaper{filter:brightness(.86);transform:scale(1.035)}.desktop__hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-faint);letter-spacing:.08em;pointer-events:none;-webkit-user-select:none;user-select:none}.desktop__hint b{display:block;font-size:var(--fs-xl);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#e9eefb52;margin-bottom:var(--sp-2)}.topbar{position:absolute;top:10px;left:12px;right:12px;height:var(--top-bar-height);border-radius:var(--r-md);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-3) 0 var(--sp-4);z-index:9000}.topbar__group{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.topbar__divider{width:1px;height:18px;background:var(--hairline);flex:none}.topbar__brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.topbar__mark{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-strong),var(--accent) 55%,transparent 72%);box-shadow:0 0 10px #78c6ff8c;flex:none}.topbar__workspaces{display:flex;gap:2px;padding:3px;border-radius:var(--r-round);background:var(--surface-sunken);border:1px solid var(--hairline);overflow-x:auto;scrollbar-width:none;min-width:0}.topbar__workspaces::-webkit-scrollbar{display:none}.ws{position:relative;border:none;background:transparent;color:var(--text-faint);font-size:var(--fs-sm);padding:4px 12px;border-radius:var(--r-round);cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.ws:hover{color:var(--text-muted);background:#ffffff0d}.ws--active{color:var(--text);background:#78c6ff29;box-shadow:inset 0 0 0 1px var(--stroke-accent)}.topbar__spacer{flex:1}.topbar__status{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);white-space:nowrap}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint);flex:none}.dot--ok{background:var(--ok);box-shadow:0 0 8px #7ee2a899}.dot--bad{background:var(--bad)}.topbar__clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text)}.topbar__clock small{font-size:var(--fs-xs);color:var(--text-faint)}.icon-btn{display:grid;place-items:center;height:28px;min-width:28px;padding:0 10px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.icon-btn:hover{color:var(--text);background:#ffffff12;border-color:var(--hairline)}.icon-btn--danger:hover{color:var(--bad);border-color:#ff9b9b59;background:#ff9b9b1a}.window{position:absolute;border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden;min-width:280px;min-height:200px;background:var(--surface-2);border:1px solid var(--hairline);box-shadow:var(--elev-1);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease),opacity var(--dur) var(--ease);animation:window-in var(--dur) var(--ease-out) both;will-change:transform}.window--inactive{opacity:.94}.window--inactive .window__body{filter:saturate(.85)}.window--focused{background:var(--surface-3);border-color:var(--stroke-accent);box-shadow:var(--elev-3)}.window--maximized{border-radius:var(--r-md)}.window__bar{position:relative;display:flex;align-items:center;gap:var(--sp-2);height:var(--window-bar-height);padding:0 var(--sp-2) 0 var(--sp-3);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(180deg,#ffffff0e,#fff0)}.window__bar:after{content:"";position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--hairline) 18%,var(--hairline) 82%,transparent)}.window__bar:active{cursor:grabbing}.window__glyph{font-size:var(--fs-md);line-height:1;opacity:.85}.window--focused .window__glyph{opacity:1}.window__title{font-weight:600;font-size:var(--fs-sm);letter-spacing:.02em;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.window--focused .window__title{color:var(--text)}.window__controls{display:flex;align-items:center;gap:6px;margin-left:auto}.window__control{width:13px;height:13px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:#ffffff1a;color:transparent;font-size:9px;line-height:1;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.window--focused .window__control{background:#ffffff29}.window__control:hover{transform:scale(1.12)}.window__control--minimize:hover{background:var(--warn);border-color:var(--warn)}.window__control--maximize:hover{background:var(--ok);border-color:var(--ok)}.window__control--close:hover{background:var(--bad);border-color:var(--bad)}.window__body{flex:1;overflow:auto;padding:var(--sp-4)}.window__resize{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;touch-action:none;opacity:.35;transition:opacity var(--dur-fast) var(--ease);background:linear-gradient(135deg,transparent 52%,rgba(160,190,240,.55) 52%,rgba(160,190,240,.55) 62%,transparent 62%),linear-gradient(135deg,transparent 72%,rgba(160,190,240,.45) 72%,rgba(160,190,240,.45) 82%,transparent 82%)}.window:hover .window__resize,.window--focused .window__resize{opacity:.8}.window__edge{position:absolute;touch-action:none}.window__edge--e{top:var(--window-bar-height);right:-3px;width:8px;bottom:16px;cursor:ew-resize}.window__edge--s{left:var(--sp-4);right:16px;bottom:-3px;height:8px;cursor:ns-resize}.launcher{position:absolute;left:30px;bottom:30px;width:0;height:0;z-index:9500}.launcher__scrim{position:fixed;top:0;right:0;bottom:0;left:0;border:none;padding:0;background:#03050b6b;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);z-index:-1;cursor:default}.launcher--open .launcher__scrim{opacity:1;pointer-events:auto}.launcher__ring,.launcher__ring--inner{position:absolute;border-radius:50%;border:1px solid rgba(120,198,255,.16);transform:translate(-50%,-50%) scale(.92);pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease),transform var(--dur-slow) var(--ease-out)}.launcher__ring{width:660px;height:660px;background:radial-gradient(circle,rgba(70,120,220,.14),transparent 68%)}.launcher__ring--inner{width:430px;height:430px;border-style:dashed;border-color:#78c6ff1f}.launcher--open .launcher__ring,.launcher--open .launcher__ring--inner{opacity:1;transform:translate(-50%,-50%) scale(1)}.launcher__app{position:absolute;left:0;bottom:0;width:78px;height:78px;margin:-39px;display:grid;place-items:center;align-content:center;gap:3px;border-radius:50%;border:1px solid var(--hairline);background:#0c111ec7;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--text);cursor:pointer;opacity:0;pointer-events:none;transform:translate(0) scale(.4);box-shadow:var(--elev-1);transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur) var(--ease),border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.launcher--open .launcher__app{opacity:1;pointer-events:auto}.launcher__app:hover{background:#162036eb;border-color:var(--stroke-strong)}.launcher__app--planned{opacity:.5}.launcher--open .launcher__app--planned{opacity:.62}.launcher__app--planned:after{content:"";position:absolute;top:10px;right:12px;width:5px;height:5px;border-radius:50%;background:var(--warn);opacity:.8}.launcher__glyph{font-size:19px;line-height:1}.launcher__label{font-size:9px;letter-spacing:.05em;text-align:center;color:var(--text-muted);padding:0 8px;line-height:1.2}.launcher__hub{position:absolute;left:-34px;bottom:-34px;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;align-content:center;gap:1px;font-size:17px;color:var(--text);cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease)}.launcher__hub:hover{transform:scale(1.05)}.launcher--open .launcher__hub{box-shadow:var(--elev-3)}.launcher__hint{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint)}.dock{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--sp-1);padding:6px;border-radius:var(--r-xl);max-width:min(760px,calc(100vw - 200px));overflow-x:auto;scrollbar-width:none;z-index:9200;animation:rise var(--dur) var(--ease-out) both}.dock::-webkit-scrollbar{display:none}.dock__item{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:var(--r-round);border:1px solid transparent;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.dock__item:hover{background:#ffffff12;color:var(--text)}.dock__item--active{color:var(--text);background:#ffffff17;border-color:var(--hairline)}.dock__item--minimized{opacity:.55}.dock__dot{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:0}.dock__item--active .dock__dot{opacity:1}.col{display:flex;flex-direction:column;gap:var(--sp-3)}.row{display:flex;align-items:center;gap:var(--sp-2)}.stack{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.section-title{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.panel{border:none;border-radius:var(--r-md);padding:var(--sp-3);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--hairline)}.list{display:flex;flex-direction:column;gap:0}.item{display:flex;flex-direction:column;gap:6px;padding:var(--sp-3) var(--sp-2);border:none;border-radius:var(--r-sm);background:transparent;box-shadow:inset 0 -1px 0 var(--hairline);transition:background var(--dur-fast) var(--ease)}.list>.item:last-child{box-shadow:none}.item:hover{background:#ffffff09}.item--clickable{cursor:pointer}.item--clickable:hover{background:#ffffff0f}.field,.textarea,select.field{width:100%;padding:9px 12px;border-radius:var(--r-sm);border:1px solid var(--hairline);background:var(--surface-sunken);color:var(--text);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.field::placeholder,.textarea::placeholder{color:var(--text-faint)}.textarea{min-height:120px;resize:vertical}.field:hover,.textarea:hover{border-color:var(--stroke)}.field:focus,.textarea:focus{outline:none;border-color:var(--stroke-accent);box-shadow:var(--focus-ring)}.field:disabled{opacity:.5}.btn{padding:8px 13px;border-radius:var(--r-sm);border:1px solid var(--hairline);background:var(--surface-raised);color:var(--text);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-instant) var(--ease)}.btn:hover{background:#ffffff17;border-color:var(--stroke)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn--tiny{padding:4px 9px;font-size:var(--fs-sm)}.btn--primary{border-color:var(--stroke-accent);background:#78c6ff2e;color:var(--accent-strong)}.btn--primary:hover{background:#78c6ff42}.btn--danger{border-color:#ff9b9b47;color:#ffc0c0}.btn--danger:hover{background:#ff9b9b24}.chip{padding:5px 11px;border-radius:var(--r-round);border:1px solid var(--hairline);background:#ffffff09;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.chip:hover{color:var(--text);background:#ffffff14}.chip--active{color:var(--text);border-color:var(--stroke-accent);background:#78c6ff29}.chip__count{margin-left:6px;font-size:var(--fs-xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-round);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:#ffffff0d;box-shadow:inset 0 0 0 1px var(--hairline)}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge--ai-student-chat{color:#9ed3ff}.badge--goal{color:#96e8bb}.badge--project{color:#ffb4dd}.badge--server{color:#9ce8dc}.badge--note{color:#bfd6ff}.badge--manual{color:#d7c6ff}.tag{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:var(--fs-sm)}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.empty{display:grid;gap:6px;padding:var(--sp-5) var(--sp-3);text-align:center;color:var(--text-faint)}.alert{padding:10px 12px;border-radius:var(--r-md);border:1px solid rgba(120,198,255,.26);background:#78c6ff1a;font-size:var(--fs-md)}.alert--bad{border-color:#ff9b9b4d;background:#ff9b9b1f}.chat{display:flex;flex-direction:column;gap:var(--sp-3);height:100%}.chat__stream{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-2);padding-right:var(--sp-1)}.bubble{max-width:84%;padding:10px 13px;border-radius:var(--r-md);border:1px solid var(--hairline);background:#ffffff0b;white-space:pre-wrap;animation:rise var(--dur-fast) var(--ease-out) both}.bubble--user{align-self:flex-end;border-color:var(--stroke-accent);background:#78c6ff21}.bubble__meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:6px;font-size:var(--fs-xs);color:var(--text-faint)}.crumbs{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-muted)}.crumbs button{border:none;background:none;color:var(--accent);cursor:pointer;padding:0 2px}.meter{display:grid;gap:6px}.progress{height:5px;border-radius:var(--r-round);background:#ffffff14;overflow:hidden}.progress__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width var(--dur) var(--ease)}input[type=range]{width:100%;accent-color:var(--accent)}@keyframes window-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes workspace-in{0%{opacity:.4;transform:scale(.992)}to{opacity:1;transform:none}}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}@media (max-width: 720px){.window{left:8px!important;top:calc(var(--top-bar-height) + 18px)!important;width:calc(100vw - 16px)!important;height:calc(100vh - var(--top-bar-height) - 130px)!important;border-radius:var(--r-md)}.window__edge,.window__resize{display:none}.topbar{left:8px;right:8px;gap:var(--sp-2);padding:0 var(--sp-2) 0 var(--sp-3)}.topbar__brand span,.topbar__status span,.topbar__divider{display:none}.launcher__app{width:68px;height:68px;margin:-34px}.dock{max-width:calc(100vw - 110px);bottom:12px}.desktop__grid{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
