:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e8f1ee;background:#0d1110;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#141b19eb,#0d1110),#0d1110}button,input{font:inherit}button{cursor:pointer}.loading,.loginShell{position:relative;isolation:isolate;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden}.loginShell:before,.loginShell:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}.loginShell:before{background:linear-gradient(rgba(55,216,168,.035) 1px,transparent 1px) 0 0 / 100% 56px,linear-gradient(90deg,rgba(55,216,168,.03) 1px,transparent 1px) 0 0 / 56px 100%,radial-gradient(circle at 50% 48%,rgba(55,216,168,.12),transparent 34%),radial-gradient(circle at 50% 100%,rgba(241,180,91,.08),transparent 38%)}.loginShell:after{inset:12%;border:1px solid rgba(55,216,168,.07);border-radius:999px;filter:blur(1px)}.loginPanel{position:relative;width:min(420px,100%);padding:36px 34px 34px;border:1px solid rgba(55,216,168,.16);border-radius:8px;background:linear-gradient(180deg,#1f2c28f5,#0d1110f2),#151c1aeb;box-shadow:0 24px 80px #0000006b,0 0 42px #37d8a814;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.loginPanel:before{content:"";position:absolute;top:0;left:18px;right:18px;height:2px;background:linear-gradient(90deg,transparent,#37d8a8,rgba(241,180,91,.72),transparent)}.loginSignal{display:flex;align-items:flex-end;gap:6px;height:26px;margin-bottom:18px}.loginSignal span{width:5px;border-radius:999px;background:#37d8a8;box-shadow:0 0 18px #37d8a873}.loginSignal span:nth-child(1){height:10px;opacity:.62}.loginSignal span:nth-child(2){height:18px;background:#e8f1ee}.loginSignal span:nth-child(3){height:26px;background:#f1b45b}.eyebrow{margin:0 0 8px;color:#7fd9bd;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(2rem,4vw,3.6rem);line-height:1;letter-spacing:0}.muted{color:#9aa8a3;line-height:1.55}.loginForm{display:grid;gap:12px;margin-top:24px}.loginForm label{color:#c8d4d0;font-size:.92rem;font-weight:700}.passwordRow{display:flex;align-items:center;gap:10px;height:48px;padding:0 14px;border:1px solid rgba(232,241,238,.12);border-radius:12px;background:#0b0f0ed1;color:#e8f1ee}.passwordRow input{min-width:0;width:100%;border:0;outline:0;background:transparent}.primaryButton,.secondaryButton,.iconButton{border:0;color:#08110f;background:#e8f1ee}.primaryButton{height:48px;border-radius:12px;font-weight:800}.secondaryButton{height:40px;padding:0 16px;border-radius:10px;font-weight:800}.iconButton{width:40px;height:40px;display:grid;place-items:center;border-radius:10px}.formError,.banner{color:#ff8d8d}.appShell{width:min(1220px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.topbar,.heroBand,.widgetHeader,.topActions,.widgetTitle,.heroMetrics,.wideMetric,.todoItem{display:flex;align-items:center}.topbar{justify-content:space-between;gap:18px;margin-bottom:22px}.topActions{gap:10px}.heroBand{justify-content:space-between;gap:18px;min-height:132px;margin-bottom:18px;padding:24px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#18202bf0,#234b5fe0),url(/jarvis-mark.svg) right 30px center / 180px 180px no-repeat;overflow:hidden}.heroBand h2{max-width:640px;margin-bottom:0;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.08;letter-spacing:0}.heroBand .eyebrow{color:#ffffffad}.heroMetrics{flex-wrap:wrap;justify-content:flex-end;gap:8px}.heroMetrics span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;background:#ffffff24;white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"timeline timeline timeline" "weather status todos" "mail appointments todos" "plan plan subscriptions";align-items:start;gap:16px}.widget{min-height:0;padding:18px;border:1px solid rgba(232,241,238,.09);border-radius:8px;background:#141b19e0;box-shadow:0 18px 48px #00000038;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.span2{grid-column:span 2}.span3{grid-column:span 3}.timelineWidget{grid-area:timeline;min-height:256px}.weatherWidget{grid-area:weather}.statusWidget{grid-area:status}.todosWidget{grid-area:todos}.mailWidget{grid-area:mail}.appointmentsWidget{grid-area:appointments}.dayPlanWidget{grid-area:plan}.subscriptionsWidget{grid-area:subscriptions}.widgetHeader{justify-content:space-between;margin-bottom:16px}.widgetTitle{gap:10px}.widgetTitle h2{margin:0;font-size:1.02rem;letter-spacing:0}.weatherCompact{display:grid;gap:16px}.weatherNow{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.compactNumber{margin-bottom:0;font-size:clamp(3rem,8vw,5rem);font-weight:820;line-height:.88;letter-spacing:0}.metricGrid,.statusGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metricGrid span,.statusPill{min-height:50px;padding:11px 12px;border-radius:8px;background:#222b28eb;color:#9aa8a3}.metricGrid strong,.statusPill strong{display:block;color:#e8f1ee}.wideMetric{grid-column:span 2;gap:8px}.list{display:grid;gap:10px}.compact{gap:8px}.rowItem,.todoItem{min-height:64px;padding:12px;border-radius:8px;background:#222b28c7}.rowItem{display:flex;justify-content:space-between;gap:14px}.rowItem p,.todoItem p,.financeHero p,.timeline p{margin:4px 0 0;color:#9aa8a3;font-size:.9rem;line-height:1.42}.rowItem span,.todoItem span{color:#d7b56d;font-size:.84rem;font-weight:800;text-align:right;white-space:nowrap}.subhead{margin-bottom:10px;color:#b7c5c0;font-size:.9rem}.twoCol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.todoItem{gap:12px}.todoItem svg{flex:0 0 auto;color:#37d8a8}.todoItem div{min-width:0;flex:1}.financeHero{margin-bottom:14px;padding:14px;border-radius:8px;background:linear-gradient(135deg,#37d8a821,#f1b45b1f)}.financeHero span{color:#9aa8a3;font-weight:800}.financeHero strong{display:block;margin-top:4px;font-size:2rem}.statusGrid{grid-template-columns:1fr}.statusPill{display:flex;justify-content:space-between;align-items:center}.statusPill strong{display:inline-flex;align-items:center;gap:7px}.statusDot{width:8px;height:8px;display:inline-block;border-radius:999px;background:#d7b56d}.statusDot.ok{background:#37d8a8}.statusDot.warn{background:#f1b45b}.dayTimeline{display:grid;gap:16px}.timelineTop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.timelineTop h2{margin-bottom:2px;font-size:clamp(1.7rem,4vw,3rem);line-height:1}.nowBadge{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid rgba(232,241,238,.1);border-radius:8px;background:#e8f1ee12;color:#e8f1ee;font-weight:800;white-space:nowrap}.allDayStrip{display:flex;flex-wrap:wrap;gap:8px}.allDayStrip span{min-height:30px;padding:6px 10px;border-radius:8px;background:#d7b56d1f;color:#f1d28c;font-weight:800}.scheduleScroller{overflow-x:auto;overflow-y:hidden;padding-bottom:0;scrollbar-color:#37d8a8 rgba(8,12,11,.72);scrollbar-width:none}.scheduleScroller::-webkit-scrollbar{display:none}.scheduleRail{position:relative;width:2400px;max-width:none;height:132px;border-radius:8px;background:linear-gradient(90deg,rgba(232,241,238,.08) 1px,transparent 1px) 0 0 / 6.25% 100%,#080c0bb8;overflow:hidden}.timelineEvent{position:absolute;top:var(--event-top, 32px);min-width:112px;height:68px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 12px;border:1px solid rgba(232,241,238,.09);border-radius:8px;background:#222b28f2}.timelineEvent:hover,.timelineEvent:focus-visible{z-index:8;width:max-content!important;max-width:360px;min-height:68px;height:auto;padding-top:10px;padding-bottom:10px;outline:2px solid rgba(55,216,168,.52);outline-offset:2px;box-shadow:0 16px 32px #0000005c}.timelineEvent.free{margin-left:-12%;border-color:#37d8a838}.timelineEvent.plan{border-color:#d7b56d4d;background:linear-gradient(135deg,#d7b56d29,#222b28f2)}.timelineEvent.active{border-color:#37d8a894;background:linear-gradient(135deg,#37d8a833,#222b28fa)}.timelineEvent strong,.timelineEvent span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timelineEvent:hover strong,.timelineEvent:hover span,.timelineEvent:focus-visible strong,.timelineEvent:focus-visible span{overflow:visible;text-overflow:clip;white-space:normal}.timelineEvent span{color:#9aa8a3;font-size:.86rem;font-weight:800}.nowMarker{position:absolute;top:0;bottom:0;width:2px;background:#37d8a8;box-shadow:0 0 18px #37d8a880;transform:translate(-1px)}.nowMarker span{position:absolute;top:9px;left:50%;width:12px;height:12px;border:2px solid #0d1110;border-radius:999px;background:#37d8a8;transform:translate(-50%)}.timeScale{width:2400px;display:flex;justify-content:space-between;padding-top:8px;color:#74827d;font-size:.84rem;font-weight:800}.timeline{display:grid;gap:12px}.timeline article{display:grid;grid-template-columns:92px 1fr;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(38,51,66,.09)}.timeline article:last-child{border-bottom:0;padding-bottom:0}.timeline span{color:#52687c;font-size:.88rem;font-weight:800}@media(max-width:960px){.grid{grid-template-areas:none}.grid,.weatherCompact,.twoCol{grid-template-columns:1fr}.span2,.span3{grid-column:span 1}.timelineWidget,.weatherWidget,.statusWidget,.todosWidget,.mailWidget,.appointmentsWidget,.dayPlanWidget,.subscriptionsWidget{grid-area:auto}}@media(max-width:680px){.appShell{width:min(100% - 20px,1220px);padding-top:18px}.topbar,.heroBand{align-items:flex-start;flex-direction:column}.heroBand{padding:20px;background:linear-gradient(135deg,#18202bf2,#234b5fe6),url(/jarvis-mark.svg) right -36px bottom -42px / 160px 160px no-repeat}.heroMetrics{justify-content:flex-start}.widget{min-height:auto;padding:16px;border-radius:8px}.loginPanel{padding:24px;border-radius:8px}.rowItem,.todoItem{align-items:flex-start}.timeline article{grid-template-columns:1fr}.timelineTop,.weatherNow{align-items:flex-start;flex-direction:column}.scheduleRail{height:128px}.timelineEvent{min-width:96px;padding:0 10px}}
