:root{color-scheme:light;--bg:#f2f2f7;--card:#fff;--text:#111116;--muted:#6d6d75;--line:#dedee5;--blue:#007aff;--blue-soft:#e8f2ff;--red:#ff3b30;--orange:#ff9500;--green:#34c759;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",sans-serif;font-synthesis:none}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);letter-spacing:-.012em}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,560px);min-height:100dvh;margin:auto;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 32px)}
/* Dark iPhone visual language — these overrides intentionally come last. */
:root{color-scheme:dark;--bg:#000;--card:#1c1c1e;--text:#f5f5f7;--muted:#98989f;--line:#38383a;--blue:#0a84ff;--blue-soft:#0a84ff26;--red:#ff453a;--orange:#ff9f0a;--green:#30d158}body{background:radial-gradient(ellipse 90% 34% at 50% -4%,#202329 0%,#000 72%);color:var(--text)}.app-shell{background:transparent}.header{min-height:106px}.eyebrow,.section-label{color:#98989f}.connection-card,.lesson-card,.task-card{background:#1c1c1e;box-shadow:inset 0 1px #ffffff08,0 6px 18px #00000025}.connection-card:has(#connection-state:not(:empty)){box-shadow:inset 0 1px #ffffff08,0 6px 18px #00000025}.secondary-button{background:#2c2c2e;border-color:#454548;color:#0a84ff}.primary-button{background:#0a84ff;box-shadow:0 5px 16px #0a84ff35}.tab-bar{background:#000000db;border-color:#38383a}.tab{color:#8e8e93}.tab.active,.tab span{color:#0a84ff}.week-day{background:#1c1c1e;color:#98989f;box-shadow:inset 0 1px #ffffff08}.week-day strong{color:#f5f5f7}.week-day.selected{background:#0a84ff}.schedule-view-toggle{background:#2c2c2e}.view-toggle{color:#98989f}.view-toggle.active{background:#636366;color:#fff;box-shadow:0 1px 2px #00000070}.lesson-card{border-left-color:#0a84ff}.lesson-card.cancelled{background:#301719;border-left-color:#ff453a}.lesson-card.changed{background:#302514;border-left-color:#ff9f0a}.lesson-meta,.week-plan-day h3{color:#98989f}.lesson-room{background:#0a84ff26;color:#64b5ff}.empty{background:#1c1c1e;color:#98989f;box-shadow:inset 0 1px #ffffff08}.small-button{background:#0a84ff26;color:#64b5ff}.ios-tabbar{background:#171719e8;border-color:#38383a}.ios-tab{color:#98989f}.ios-tab.active{color:#0a84ff}dialog{background:#1c1c1e;color:#f5f5f7;box-shadow:0 -10px 35px #00000085}.modal-form:before{background:#636366}.close-button{background:#3a3a3c;color:#d1d1d6}input,textarea{background:#2c2c2e;color:#f5f5f7;box-shadow:inset 0 1px #ffffff08}.detail-list{background:#2c2c2e}.detail-list div{border-color:#3a3a3c}.detail-list span{color:#98989f}.lesson-detail-time{background:#0a84ff24;color:#75bbff}.island.expanded,.island.alert.expanded,.island.connected.expanded{width:min(100%,371px);height:122px;border-radius:44px;background:#000 !important;border:1px solid #ffffff12;box-shadow:0 18px 42px #00000092,0 2px 8px #000;}.island.expanded .island-detail{color:#fff}.island.alert.expanded .island-dot{background:#ff453a;box-shadow:0 0 13px #ff453a}.island.connected.expanded .island-dot{background:#30d158;box-shadow:0 0 13px #30d158}.island.expanded .island-detail-top{color:#a1a1a6}.island.expanded>#island-subtitle{color:#a1a1a6}@media(min-width:600px){body{background:radial-gradient(ellipse 60% 55% at 50% 0,#25282e,#000 80%)}.app-shell{box-shadow:0 0 90px #000}}
.island.expanded,.island.alert.expanded{width:min(100%,371px);border-radius:44px;background:#000;box-shadow:0 18px 42px #0000003d,0 4px 14px #00000020}.island.alert.expanded .island-dot{background:#ff453a;box-shadow:0 0 13px #ff453a}.island.connected.expanded .island-dot{background:#30d158;box-shadow:0 0 13px #30d158}.ios-tabbar{position:fixed;z-index:10;left:0;right:0;bottom:0;height:calc(58px + env(safe-area-inset-bottom));padding:7px max(18px,calc((100vw - 560px)/2 + 18px)) calc(7px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;border-top:1px solid #d2d2d6;background:#f8f8f8e8;backdrop-filter:blur(20px)}.ios-tab{border:0;background:transparent;color:#8e8e93;font-size:.62rem;line-height:1.1;min-width:58px;display:grid;gap:3px;place-items:center}.ios-tab span{font-size:1.32rem;font-weight:400}.ios-tab.active{color:var(--blue)}.app-shell{padding-bottom:calc(env(safe-area-inset-bottom) + 92px)}
.header{text-align:center;min-height:120px;padding:11px 0 15px;display:flex;flex-direction:column;align-items:center}.eyebrow,.section-label{margin:0;color:#7a7a83;font-size:.68rem;font-weight:760;letter-spacing:.095em;text-transform:uppercase}h1{font-size:2.1rem;line-height:1.05;letter-spacing:-.06em;margin:5px 0 0}h2{font-size:1.35rem;letter-spacing:-.038em;margin:2px 0 0}
/* The collapsed island is intentionally invisible: iPhone hardware already occupies that visual role. */.island{width:0;height:0;margin:0;padding:0;border:0;background:transparent;opacity:0;overflow:hidden;pointer-events:none;transition:width .48s cubic-bezier(.22,1.2,.36,1),height .48s cubic-bezier(.22,1.2,.36,1),opacity .18s ease,transform .3s}.island-compact{display:none}.island-detail{display:grid;gap:10px;width:100%;text-align:left;opacity:0;transform:translateY(18px) scale(.94);transition:opacity .22s ease .14s,transform .46s cubic-bezier(.22,1.25,.36,1) .1s}.island.expanded{width:min(100%,352px);height:122px;margin-top:12px;padding:16px 18px;border-radius:31px;opacity:1;pointer-events:auto;color:white;background:linear-gradient(135deg,#007aff 0%,#5e5ce6 48%,#af52de 100%);box-shadow:0 18px 42px #5752c840,0 4px 14px #00000020;animation:island-arrive .62s cubic-bezier(.2,1.35,.35,1)}.island.alert.expanded{background:linear-gradient(135deg,#ff453a 0%,#ff375f 52%,#bf5af2 100%);box-shadow:0 18px 42px #ff375f42,0 4px 14px #00000020}.island.expanded .island-detail{opacity:1;transform:translateY(0) scale(1)}.island-detail-top{display:flex;align-items:center;gap:8px;color:#ffffffbf;font-size:.61rem;font-weight:800;letter-spacing:.105em}.island-dot{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 13px #fff;flex:0 0 auto}.island-signal{margin-left:auto;font-size:.42rem;letter-spacing:3px;color:#ffffffa8}.island-detail strong{font-size:1.16rem;line-height:1.1;letter-spacing:-.035em}.island-detail>#island-subtitle{font-size:.77rem;color:#ffffffd4;font-weight:520}@keyframes island-arrive{0%{transform:scale(.64);filter:blur(6px)}62%{transform:scale(1.035)}100%{transform:scale(1);filter:blur(0)}}
.connection-card,.lesson-card,.task-card{background:var(--card);border:0;box-shadow:0 1px 1px #00000009}.connection-card{border-radius:18px;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.connection-card:has(#connection-state:not(:empty)){box-shadow:0 1px 2px #0000000d}#connection-state{margin:4px 0 0;font-size:.88rem;color:var(--muted);max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-actions{display:flex;gap:7px}
.primary-button,.secondary-button,.icon-button,.tab,.date-picker{border:0;background:transparent;color:var(--text)}.primary-button{min-height:42px;padding:10px 15px;border-radius:13px;background:var(--blue);color:white;font-weight:720;box-shadow:0 5px 12px #007aff2e}.primary-button:active,.secondary-button:active,.small-button:active{transform:scale(.96)}.secondary-button{min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:11px;color:var(--blue);font-size:.86rem;font-weight:650;background:#fff}.connection-actions #refresh-button{font-size:1.08rem;padding:4px 10px}.tab-bar{position:sticky;top:0;z-index:4;margin:23px -16px 16px;padding:10px 16px 11px;display:flex;gap:22px;background:#f2f2f7e8;backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.tab{padding:0 1px 8px;color:var(--muted);font-weight:700;position:relative}.tab.active{color:var(--blue)}.tab.active:after{content:"";height:2.5px;background:var(--blue);border-radius:5px;position:absolute;left:0;right:0;bottom:0}.tab span{color:var(--blue)}
.panel{display:none}.panel.active{display:block}.schedule-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:0 0 13px}.icon-button{height:44px;font-size:2rem;color:var(--blue);border-radius:50%}.date-picker{display:flex;flex-direction:column;line-height:1.2;font-weight:730}.date-picker small{margin-top:3px;color:var(--muted);font-weight:500}.schedule-view-toggle{display:flex;width:100%;padding:2px;border-radius:10px;background:#dedee3;margin:0 0 15px}.view-toggle{border:0;background:transparent;color:#5c5c64;padding:7px 11px;border-radius:8px;font-size:.8rem;font-weight:700;flex:1}.view-toggle.active{background:#fff;color:#111116;box-shadow:0 1px 2px #0000001d}.week-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:16px}.week-day{min-height:61px;border:0;border-radius:15px;background:#e4e4ea;color:var(--muted);display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;font-size:.72rem;font-weight:600}.week-day strong{color:var(--text);font-size:.96rem}.week-day.selected{background:var(--blue);box-shadow:0 5px 14px #007aff35}.week-day.selected,.week-day.selected strong{color:white}.schedule-list,.task-list{display:grid;gap:10px}.week-plan{display:grid;gap:19px}.week-plan-day h3{margin:0 0 8px 4px;font-size:.85rem;color:var(--muted);font-weight:650}.lesson-card{min-height:82px;padding:14px 15px;display:grid;grid-template-columns:53px 1fr auto;gap:12px;align-items:center;border-radius:17px;border-left:4px solid var(--blue)}.lesson-card.cancelled{border-left-color:var(--red);background:#fff7f7}.lesson-card.changed{border-left-color:var(--orange);background:#fffaf1}.lesson-time{font-size:.78rem;color:var(--muted);line-height:1.45;font-variant-numeric:tabular-nums}.lesson-subject{margin:0;font-weight:740;font-size:1.04rem}.lesson-meta{margin:4px 0 0;color:var(--muted);font-size:.82rem}.lesson-tag{align-self:start;padding:4px 7px;border-radius:7px;font-size:.66rem;font-weight:760;background:#fff0d5;color:#a85e00}.cancelled .lesson-tag{background:#ffeaeb;color:#c52b23}.empty{padding:27px 15px;text-align:center;color:var(--muted);background:#fff;border-radius:17px;font-size:.92rem}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.task-card{padding:14px 15px;display:grid;grid-template-columns:1fr auto;gap:10px;border-radius:17px}.task-card.done{opacity:.55}.task-card.done .task-title{text-decoration:line-through}.task-title{margin:0;font-weight:720}.task-meta{margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.3}.task-actions{display:flex;gap:5px;align-items:start}.small-button{border:0;background:var(--blue-soft);color:var(--blue);border-radius:9px;padding:6px 8px;font-size:.75rem;font-weight:650;transition:transform .12s}
dialog{width:min(100%,560px);margin:auto 0 0;border:0;border-radius:25px 25px 0 0;background:#f2f2f7;color:var(--text);padding:0;box-shadow:0 -10px 35px #00000025}dialog::backdrop{background:#00000055;backdrop-filter:blur(5px)}.modal-form{display:grid;gap:14px;padding:13px 18px calc(env(safe-area-inset-bottom) + 22px)}.modal-form:before{content:"";width:37px;height:5px;border-radius:10px;background:#c7c7cc;margin:0 auto 4px}.modal-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:3px}.close-button{border:0;background:#e5e5ea;color:#6d6d75;width:32px;height:32px;border-radius:50%;font-size:1.4rem;line-height:1}.modal-form label{display:grid;gap:7px;font-size:.84rem;font-weight:680}.modal-form label small,.form-note{font-weight:400;color:var(--muted)}input,textarea{width:100%;border:0;background:#fff;color:var(--text);border-radius:11px;padding:11px 12px;outline:0;box-shadow:0 1px 1px #0000000c}input:focus,textarea:focus{box-shadow:0 0 0 3px #007aff38}textarea{min-height:76px;resize:vertical}.form-note{font-size:.77rem;line-height:1.4;margin:0}@media (min-width:600px){body{background:linear-gradient(145deg,#e9edf6,#f8f8fa)}.app-shell{background:var(--bg);box-shadow:0 0 70px #6b77921c}}
/* Final, high-specificity Dynamic Island rule: always black in every state. */
.header .island.expanded,.header .island.alert.expanded,.header .island.connected.expanded{width:min(100%,371px);height:122px;border-radius:44px;background:#000 !important;border:1px solid #ffffff12;box-shadow:0 18px 42px #00000092,0 2px 8px #000;color:#fff}.header .island.alert.expanded .island-dot{background:#ff453a;box-shadow:0 0 13px #ff453a}.header .island.connected.expanded .island-dot{background:#30d158;box-shadow:0 0 13px #30d158}
/* Final dark surface palette. */
:root{color-scheme:dark;--bg:#000;--card:#1c1c1e;--text:#f5f5f7;--muted:#98989f;--line:#38383a;--blue:#0a84ff;--blue-soft:#0a84ff26}body{background:radial-gradient(ellipse 90% 34% at 50% -4%,#202329,#000 72%);color:var(--text)}.connection-card,.lesson-card,.task-card,.empty{background:#1c1c1e;box-shadow:inset 0 1px #ffffff08,0 6px 18px #00000025}.secondary-button{background:#2c2c2e;border-color:#454548}.tab-bar{background:#000000db;border-color:#38383a}.week-day{background:#1c1c1e;color:#98989f;box-shadow:inset 0 1px #ffffff08}.week-day strong{color:#f5f5f7}.schedule-view-toggle{background:#2c2c2e}.view-toggle{color:#98989f}.view-toggle.active{background:#636366;color:#fff}.lesson-card.cancelled{background:#301719}.lesson-card.changed{background:#302514}.lesson-meta,.week-plan-day h3{color:#98989f}.ios-tabbar{background:#171719e8;border-color:#38383a}.ios-tab{color:#98989f}.ios-tab.active{color:#0a84ff}dialog{background:#1c1c1e;color:#f5f5f7}input,textarea,.detail-list{background:#2c2c2e;color:#f5f5f7}.detail-list div{border-color:#3a3a3c}.detail-list span{color:#98989f}.lesson-detail-time{background:#0a84ff24;color:#75bbff}
/* Keep the supplied Dynamic Island look; leave the Untis screen itself light. */
:root{color-scheme:light;--bg:#f2f2f7;--card:#fff;--text:#111116;--muted:#6d6d75;--line:#dedee5;--blue:#007aff;--blue-soft:#e8f2ff;--red:#ff3b30;--orange:#ff9500;--green:#34c759}body{background:var(--bg);color:var(--text)}.connection-card,.lesson-card,.task-card,.empty{background:var(--card);box-shadow:0 1px 1px #00000009}.secondary-button{background:#fff;border-color:var(--line)}.tab-bar{background:#f2f2f7e8;border-color:var(--line)}.week-day{background:#e4e4ea;color:var(--muted);box-shadow:none}.week-day strong{color:var(--text)}.schedule-view-toggle{background:#dedee3}.view-toggle{color:#5c5c64}.view-toggle.active{background:#fff;color:#111116}.lesson-card.cancelled{background:#fff7f7}.lesson-card.changed{background:#fffaf1}.lesson-meta,.week-plan-day h3{color:var(--muted)}.ios-tabbar{background:#f8f8f8e8;border-color:#d2d2d6}.ios-tab{color:#8e8e93}.ios-tab.active{color:var(--blue)}dialog{background:#f2f2f7;color:var(--text)}input,textarea,.detail-list{background:#fff;color:var(--text)}.detail-list div{border-color:#ededf1}.detail-list span{color:var(--muted)}.lesson-detail-time{background:linear-gradient(135deg,#e8f2ff,#f1ecff);color:#315684}.header .island.expanded,.header .island.alert.expanded,.header .island.connected.expanded{background:#000 !important}
/* Direct CSS counterpart to the supplied layout spring: no badges, no dots, only content. */
.header .island{transition:width .30s cubic-bezier(.22,1.15,.36,1),height .30s cubic-bezier(.22,1.15,.36,1),margin .30s cubic-bezier(.22,1.15,.36,1),padding .30s cubic-bezier(.22,1.15,.36,1),border-radius .30s ease,opacity .16s ease}.header .island.expanded,.header .island.alert.expanded,.header .island.connected.expanded{width:255px;height:84px;margin-top:12px;padding:15px 18px;border:0;border-radius:24px;background:#000!important;box-shadow:0 10px 22px #00000036;animation:none}.header .island-detail{gap:4px;opacity:0;transform:translateY(5px);transition:opacity .18s ease .10s,transform .22s ease .10s}.header .island.expanded .island-detail{opacity:1;transform:translateY(0)}.header .island-detail strong{font-size:1rem;font-weight:600;letter-spacing:-.025em;line-height:1.18}.header .island-detail>#island-subtitle{font-size:.73rem;line-height:1.25;color:#8e8e93;font-weight:400}.header .island-detail-top,.header .island-signal{display:none}
/* Keep the event island above the title instead of turning it into a header card. */
.header{position:relative;min-height:178px;padding-top:91px}.header .island.expanded,.header .island.alert.expanded,.header .island.connected.expanded{position:absolute;z-index:3;top:8px;left:50%;width:224px;height:74px;margin:0;padding:13px 16px;transform:translateX(-50%);border-radius:37px;box-shadow:0 12px 24px #0000002b}.header .island-detail strong{font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header .island-detail>#island-subtitle{font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Prevent the connection controls from overflowing narrow iPhone screens. */
.connection-card{min-width:0}.connection-card>div:first-child{min-width:0}.connection-actions{flex:0 0 auto}.connection-actions .secondary-button{white-space:nowrap}@media(max-width:390px){#connection-state{max-width:calc(100vw - 208px)}.connection-actions{gap:4px}.connection-actions .secondary-button{padding:7px 8px;font-size:.8rem}}
