:root{--bg: #f6f4ef;--card: #ffffff;--ink: #1d1b18;--muted: #7a756c;--line: #e9e5dc;--soft: #efece4;--accent: #2b59c3;--warn: #c2410c;--warn-bg: #fff1e6;--ok: #15803d;--danger: #c81e1e;--danger-bg: #fde8e8;--radius: 16px;--tabbar: 64px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #16161a;--card: #222227;--ink: #f1efe9;--muted: #9b978f;--line: #2f2f36;--soft: #2a2a30;--accent: #7ea2ff;--warn: #ff9a5c;--warn-bg: #3a2418;--ok: #5fd08a;--danger: #ff6b6b;--danger-bg: #3d1a1a}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Heebo,Arial Hebrew,sans-serif;font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11px}.warn-text{color:var(--warn)}.app{min-height:100dvh;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 16px)}.top{position:sticky;top:0;z-index:5;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px)}.top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.top h1{font-size:30px;font-weight:750;letter-spacing:-.02em}.sync{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);padding:6px 10px;border-radius:999px;background:var(--soft)}.sync.warn{color:var(--warn);background:var(--warn-bg)}.sync.fail{color:var(--danger);background:var(--danger-bg);font-weight:600}.badge.fail{background:var(--danger)}.badge.soon{background:var(--accent)}.sync.spin svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(-360deg)}}.chips{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none}.top .chips{direction:rtl}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--soft);font-size:15px;white-space:nowrap}.chip.on{background:var(--ink);color:var(--bg)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--kid, var(--accent));flex:none}main{padding:4px 16px 0;max-width:680px;margin:0 auto}.view{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border-radius:var(--radius);box-shadow:0 1px 0 var(--line),0 1px 3px #00000008;overflow:hidden}.card.pad,.pad{padding:14px 16px}.card.soft{background:var(--soft);box-shadow:none;padding:14px 16px}.group{display:flex;flex-direction:column;gap:8px}.group h3,.due h3{font-size:13px;font-weight:600;color:var(--muted);padding-inline:4px}.group-h{display:flex;align-items:center;justify-content:space-between}.group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;color:var(--muted);padding-inline-end:4px}.group.overdue h3{color:var(--warn)}.daybar{display:flex;align-items:center;justify-content:space-between;background:var(--card);border-radius:var(--radius);padding:6px;box-shadow:0 1px 0 var(--line)}.daybar{position:sticky;top:var(--top-h, 0px);z-index:4;box-shadow:0 1px 0 var(--line),0 4px 12px #0000000f}.daybar>button:not(.daylabel){width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--muted)}.daybar>button:not(.daylabel):active{background:var(--soft)}.daylabel{display:flex;flex-direction:column;align-items:center}.daylabel strong{font-size:18px}.daylabel span{font-size:12px}.kid{border-top:4px solid var(--kid)}.kid-h{display:flex;align-items:center;gap:8px;padding:14px 16px 10px}.kid-h h2{font-size:20px;font-weight:700}.kid-h .muted{margin-inline-start:auto;font-size:13px}.events{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}.pill{font-size:13px;padding:4px 10px;border-radius:999px;background:var(--soft)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.due{margin:0 12px 12px;padding:10px 6px 4px;border-radius:12px;background:color-mix(in srgb,var(--kid) 9%,var(--card))}.due.todo{padding-top:4px}.due.todo .hw-text{font-weight:600}.due h3{color:color-mix(in srgb,var(--kid) 75%,var(--ink));padding-inline:8px;margin-bottom:4px}.lessons{list-style:none;margin:0;padding:0 0 6px}.lessons{direction:rtl}.lessons li.note{unicode-bidi:plaintext}.lessons li{display:flex;gap:12px;padding:10px 16px;border-top:1px solid var(--line)}.lessons li.note{font-size:13px;padding-block:8px}.lessons li.extra .hour{background:transparent}.extra-tag{margin-inline-start:6px;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:600;background:var(--soft);color:var(--muted);vertical-align:middle}.lessons li:not(.planned):not(.before):not(.extra) .hour{background:color-mix(in srgb,var(--kid) 20%,var(--card));color:color-mix(in srgb,var(--kid) 85%,var(--ink))}.hour{flex:none;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:13px;font-weight:650;background:var(--soft);color:var(--muted);margin-top:1px}.lesson-body{flex:1;min-width:0}.subj{font-weight:600}.lesson-time{display:inline-block;direction:ltr;unicode-bidi:isolate;min-width:92px;margin:0;font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.lesson-time{margin-left:12px}.lessons li.before .subj{color:var(--muted);font-weight:500}.subj-icon{display:inline-block;width:1.4em;margin-inline-end:4px;text-align:center;font-size:16px}.subj .muted{font-weight:400;font-size:14px}.topic{font-size:14px;color:var(--muted);margin-top:2px}.hw-inline{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--kid) 10%,var(--card))}.hw-inline.done .hw-text,.hw-row.done .hw-text{text-decoration:line-through;color:var(--muted)}.hw-row{direction:rtl}.hw-row{display:flex;gap:12px;align-items:flex-start;padding:12px 10px}.card>.hw-row{padding:12px 14px;border-top:1px solid var(--line)}.card>.hw-row:first-child{border-top:0}.hw-subj{font-size:14px;font-weight:600;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.hw-subj .muted{font-weight:400}.hw-text{font-size:16px;margin-top:2px;overflow-wrap:anywhere}.check{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid color-mix(in srgb,var(--kid, var(--accent)) 70%,var(--line));display:grid;place-items:center;color:transparent;transition:background .15s}.check.on{background:var(--kid, var(--accent));border-color:var(--kid, var(--accent));color:#fff}.hw-hint{display:inline-flex;align-items:center;gap:2px;margin-inline-start:6px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;vertical-align:middle}.hw-hint.maybe{background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent)}.hw-hint.added{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--ok)}.kid-tag{display:inline-flex;align-items:center;gap:4px;margin-inline-end:6px;font-weight:600;color:color-mix(in srgb,var(--kid) 80%,var(--ink))}.ev-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ev-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:14px;background:var(--card);box-shadow:0 1px 0 var(--line);border:2px solid transparent}.ev-tile strong{font-size:22px;line-height:1.1}.ev-tile .small{color:var(--muted)}.ev-tile.on{border-color:currentColor}.ev-tile.positive.on{color:var(--ok)}.ev-tile.late.on{color:var(--warn)}.ev-tile.absent.on{color:var(--danger)}.ev-tile.other.on{color:var(--muted)}.ev-emoji{font-size:20px}.ev-row{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-top:1px solid var(--line);direction:rtl}.card>.ev-row:first-child{border-top:0}.ev-pill{align-self:flex-start;font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;unicode-bidi:plaintext}.ev-pill.positive{background:color-mix(in srgb,var(--ok) 14%,var(--card));color:var(--ok)}.ev-pill.late{background:var(--warn-bg);color:var(--warn)}.ev-pill.absent{background:var(--danger-bg);color:var(--danger)}.ev-pill.other{background:var(--soft);color:var(--muted)}.ev-when{font-size:14px}.ev-remark{font-size:14px;padding:6px 10px;border-radius:10px;background:var(--soft);unicode-bidi:plaintext}.due-btn{font-size:inherit;font-weight:400;text-decoration:underline dotted;text-underline-offset:3px}.due-edit{display:inline-flex;align-items:center;gap:6px;margin-inline-start:4px}.due-edit input{font:inherit;font-size:15px;padding:3px 6px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.due-edit button{width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--muted)}.hw-badge{display:inline-block;margin-inline-start:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:18px}.hw-badge.late{background:var(--warn-bg);color:var(--warn)}.hw-badge.soon{background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--accent)}.hw-badge.later{background:var(--soft);color:var(--muted)}.hw-suggest{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;font-size:14px;font-weight:600;background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--accent);text-align:start}.small-btn{align-self:flex-start;padding:6px 12px;font-size:13px}.hw-form{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:var(--soft)}.hw-form .chips{margin-top:0}.hw-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hw-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.hw-form input,.hw-form textarea{width:100%;font:inherit;font-size:16px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.hw-form textarea{resize:vertical;unicode-bidi:plaintext;line-height:1.4}.hw-task{position:relative}.hw-task-x{position:absolute;top:4px;inset-inline-end:6px;width:26px;height:26px;border-radius:50%;color:var(--muted);font-size:18px}.hw-form .actions{margin-top:0}.hw-meta{display:flex;gap:10px;align-items:center;margin-top:6px;font-size:12px}.hw-meta button{color:var(--warn);font-size:12px}.hw-from-msg{display:inline-flex;align-items:center;gap:4px;color:var(--accent)}.msg-wrap.flash{animation:flash 1.6s ease-out}@keyframes flash{0%{background:color-mix(in srgb,var(--accent) 18%,transparent)}to{background:transparent}}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:#000000eb;color:#fff}.viewer-bar{display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 8px) 10px 8px}.viewer-btn{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-size:20px;color:#fff;background:#ffffff1f}.viewer-name{flex:1;min-width:0;text-align:center;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext}.viewer-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 8px calc(env(safe-area-inset-bottom) + 8px)}.viewer-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}.viewer-body.doc{flex-direction:column;gap:10px}.viewer-body.doc iframe{flex:1;width:100%;border:0;border-radius:8px;background:#fff}.viewer-share{flex:none}.att{margin-top:8px}.att-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:5px 10px;border-radius:999px;background:var(--soft);color:var(--accent)}.att-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.att-img,.att-file{width:100%;text-align:start}.att-img img{display:block;max-width:100%;max-height:70vh;border-radius:10px;border:1px solid var(--line);background:var(--soft)}.att-file{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--soft);font-size:14px}.att-ext{flex:none;font-size:11px;font-weight:700;padding:3px 6px;border-radius:6px;background:var(--card);color:var(--muted)}.att-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext}.att-file svg{flex:none;color:var(--muted)}.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.files a,.files button{display:inline-flex;align-items:center;gap:4px;font-size:13px;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--accent)}.toolbar{display:flex;align-items:center;justify-content:space-between;padding-inline:4px}.switch{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.switch input{width:18px;height:18px;accent-color:var(--accent)}.msg{display:flex;gap:12px;padding:12px 14px;border-top:1px solid var(--line);align-items:flex-start}.card>.msg:first-child{border-top:0}.msg-icon{flex:none;width:22px;display:grid;place-items:center;color:var(--muted);padding-top:1px}.msg.approval .msg-icon{color:var(--warn)}.msg.unread .msg-icon{color:var(--accent)}.msg.done,.msg-wrap.done{opacity:.55}.msg-wrap{border-top:1px solid var(--line);direction:rtl}:root[dir=ltr] .hw-form{direction:ltr}.card>.msg-wrap:first-child{border-top:0}.msg-wrap>.msg{border-top:0}button.msg{width:100%;text-align:start}.msg-wrap.open>.msg .msg-subj{font-weight:700}.msg-content{padding:0 14px 14px;padding-inline-start:48px;display:flex;flex-direction:column;gap:8px}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.5;unicode-bidi:plaintext}.msg-text a,.webtop-link{color:var(--accent)}.hw-row>div:last-child{flex:1;min-width:0}.hw-row .webtop-link{display:flex;width:fit-content;margin-top:6px;margin-inline-start:auto}.webtop-link{display:inline-flex;align-items:center;gap:4px;align-self:flex-end}.msg-body{flex:1;min-width:0}.msg-subj{font-weight:500;overflow-wrap:anywhere}.msg.unread .msg-subj{font-weight:700}.udot{width:10px;height:10px;border-radius:50%;background:var(--accent);margin-top:5px}.when{flex:none;white-space:nowrap}.actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 14px;border-radius:12px;background:var(--soft);font-size:15px;font-weight:600}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.wide{width:100%;margin-top:10px;padding:12px}.btn:disabled{opacity:.5}.row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.row .actions{margin-top:0}.ok{color:var(--ok);font-weight:600}.install ol{margin:8px 0 0;padding-inline-start:20px;display:grid;gap:4px}.kbd{display:inline-block;padding:0 6px;border-radius:6px;background:var(--soft)}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.feed-row{padding:10px 14px;border-top:1px solid var(--line)}.feed-row:first-child{border-top:0}.card .pad+p{padding:0 16px 14px}.card.pad>p+p,.card.pad>p+.muted{margin-top:8px}.empty{text-align:center;padding:40px 16px}.empty-t{font-size:17px;font-weight:600;margin-bottom:4px}.footnote{font-size:12px;text-align:center;padding:8px 16px}.tabs{position:fixed;inset-inline:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--card) 86%,transparent);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-top:1px solid var(--line);direction:rtl}.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--muted)}.tabs a.on{color:var(--accent)}.ti{position:relative;display:grid;place-items:center}.badge{position:absolute;top:-4px;inset-inline-end:-10px;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--warn);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}.badge.dot-only{min-width:9px;width:9px;height:9px;padding:0;top:-1px;inset-inline-end:-4px}.pin{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;max-width:360px;margin:0 auto}.pin img{border-radius:18px}.pin input{width:100%;font-size:22px;text-align:center;letter-spacing:.3em;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.lang-chips{margin:0 0 8px}.hw-text,.msg-subj,.topic,.subj,.hw-subj,.feed-row,.pill{unicode-bidi:plaintext}.rem-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.rem-main{flex:1;min-width:0;cursor:pointer}.rem-editing{padding:4px 0;border-bottom:1px solid var(--line)}.rem-editing .rem-form{margin:8px 0}.rem-text{font-weight:600;unicode-bidi:plaintext}.rem-note,.todo-note{font-size:13px;font-weight:400;color:var(--muted);margin-top:2px;overflow-wrap:anywhere;unicode-bidi:plaintext}.link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.rem-x{flex:none;width:32px;height:32px;border-radius:50%;color:var(--muted);background:var(--soft)}.rem-form{display:flex;flex-direction:column;gap:10px;margin:12px 0 8px}.rem-form input{width:100%;font:inherit;font-size:16px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.rem-form .chips,.rem-form .actions{margin-top:0}.rem-new{margin:12px 0 8px}.rem-link{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rem-days{display:flex;gap:6px;flex-wrap:wrap}.rem-day{width:38px;height:38px;border-radius:50%;background:var(--soft);font-weight:600;font-size:14px}.rem-day.on{background:var(--accent);color:#fff}.act-head{display:grid;grid-template-columns:56px 1fr;gap:8px}.act-head .act-emoji{text-align:center;font-size:20px;padding-inline:4px}.act-times{display:grid;grid-template-columns:1fr 1fr;gap:8px}.act-times label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.act-times input{width:100%;font:inherit;font-size:16px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.lesson-time-inline{direction:ltr;unicode-bidi:isolate}.acts{margin:0 12px 12px;padding:8px 4px 2px;border-radius:12px;background:var(--soft);direction:rtl}.acts h3{font-size:13px;font-weight:600;color:var(--muted);padding-inline:8px;margin-bottom:2px}:root[dir=ltr] .acts h3{direction:ltr}.act-row{display:flex;align-items:flex-start;gap:0;padding:8px}.act-row .lesson-time{margin-top:3px}.act-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:13px}.conn-status{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:10px}.conn-status.ok{color:var(--ok)}.conn-status.bad{color:var(--danger)}.conn-dot{width:10px;height:10px;border-radius:50%;background:currentColor;flex:none}.conn-status.ok .conn-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}.session{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.session .token-form{align-self:stretch}.token-form{display:flex;flex-direction:column;gap:10px;margin-top:8px}.token-form ol{margin:6px 0 0;padding-inline-start:20px;line-height:1.6}.token-form summary{cursor:pointer}.token-form input{width:100%;font-size:16px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-family:ui-monospace,monospace}
