:root{--bg:#f3f6f5;--surface:#ffffff;--sunk:#e9efed;--line:#d6dfdc;--ink:#13241f;--soft:#5a6b66;--slate:#1d3b33;--chalk:#f7faf8;--pencil:#e9a92a;--brand:#1f6feb;--ok:#1f8a5b;--okbg:#e3f4ec;--warn:#b7791f;--warnbg:#fbf1dc;--bad:#c2410c;--badbg:#fde8dd;--info:#2563eb;--infobg:#e3ecfd;--f-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;--f-body:"Public Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--r:12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1715;--surface:#16211e;--sunk:#1c2925;--line:#2a3a35;--ink:#e6efec;--soft:#9db0aa;--slate:#0b1311;--chalk:#e6efec;--pencil:#f0b543;--ok:#4cc38a;--okbg:#173326;--warn:#e3b04b;--warnbg:#33290f;--bad:#f08a5d;--badbg:#3a1f14;--info:#7aa7ff;--infobg:#18264a;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1715;--surface:#16211e;--sunk:#1c2925;--line:#2a3a35;--ink:#e6efec;--soft:#9db0aa;--slate:#0b1311;--chalk:#e6efec;--pencil:#f0b543;--ok:#4cc38a;--okbg:#173326;--warn:#e3b04b;--warnbg:#33290f;--bad:#f08a5d;--badbg:#3a1f14;--info:#7aa7ff;--infobg:#18264a;color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);margin:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.15;margin:0;text-wrap:balance}h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:1rem}a{color:var(--brand)}.mono{font-family:var(--f-mono)}.mono,.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--soft)}.small{font-size:.85rem}.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.top,body:before{background:var(--surface)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:30}.brandmark{display:flex;align-items:center;gap:10px;min-width:0}.logo{width:38px;height:38px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font:700 .95rem var(--f-display);flex:none}.brandmark b{font-family:var(--f-display);font-size:1.02rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}.brandmark span{font-size:.78rem;color:var(--soft)}.sp{flex:1 1}.ctrls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}select.pick{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 8px;font-size:.85rem;max-width:210px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:calc(100vh - 68px)}nav.side{background:var(--slate);color:var(--chalk);padding:16px 10px;display:flex;flex-direction:column;gap:2px}nav.side .grp{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;opacity:.55;margin:14px 10px 4px}nav.side button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:.92rem;color:var(--chalk);opacity:.86}nav.side button:hover{background:rgba(255,255,255,.07);opacity:1}nav.side button.on{background:rgba(255,255,255,.12);opacity:1;font-weight:600;box-shadow:inset 3px 0 0 var(--pencil)}nav.side button:focus-visible{outline:2px solid var(--pencil)}nav.side .ic{width:18px;text-align:center;font-size:.95rem;opacity:.9}nav.side .badge{margin-left:auto;background:var(--pencil);color:#1b1404;border-radius:20px;font-size:.7rem;font-weight:700;padding:1px 7px}main{min-width:0;padding-block:22px 60px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.wrap{max-width:1120px;margin:0 auto;flex-direction:column;gap:18px}.head,.wrap{display:flex}.head{align-items:flex-end;gap:12px;flex-wrap:wrap}.head .sub{color:var(--soft);font-size:.92rem;margin-top:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}.card>h2{margin-bottom:12px}.grid{display:grid;grid-gap:14px;gap:14px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{display:flex;flex-direction:column;gap:2px}.kpi span{font-size:.78rem;color:var(--soft);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.kpi strong{font:700 1.55rem var(--f-display);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi em{font-style:normal;font-size:.82rem;color:var(--soft)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 13px;cursor:pointer;font-weight:600;font-size:.88rem;text-decoration:none;color:var(--ink)}.btn:hover{border-color:var(--soft)}.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}.btn.dark{background:var(--slate);border-color:var(--slate);color:var(--chalk)}.btn.sm{padding:5px 10px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,.chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:.9rem}td,th{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--soft);background:var(--sunk)}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}.pill,tbody tr:hover{background:var(--sunk)}.pill{display:inline-block;font-size:.74rem;font-weight:700;padding:2px 9px;border-radius:20px;color:var(--soft)}.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}.pill.info{background:var(--infobg);color:var(--info)}.chip{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 12px;cursor:pointer;font-size:.85rem}.chip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.f{display:flex;flex-direction:column;gap:5px;min-width:0}.f label{font-weight:600;font-size:.84rem}.f input,.f select,.f textarea{border:1px solid var(--line);border-radius:9px;padding:9px 11px;background:var(--surface);width:100%}.f small{color:var(--soft);font-size:.78rem}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.note{background:var(--infobg);color:var(--ink);border-radius:10px;padding:10px 12px;font-size:.86rem}.lock,.note.warn{background:var(--warnbg)}.lock{display:flex;gap:10px;align-items:center;border-radius:10px;padding:12px 14px;font-size:.9rem}.bar{height:8px;border-radius:6px;background:var(--sunk);overflow:hidden}.bar i{display:block;height:100%;background:var(--brand)}.att{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.att button{all:unset;cursor:pointer;padding:5px 10px;font-size:.8rem;font-weight:700;color:var(--soft);border-left:1px solid var(--line)}.att button:first-child{border-left:0}.att button.P.on{background:var(--okbg);color:var(--ok)}.att button.A.on{background:var(--badbg);color:var(--bad)}.att button.L.on{background:var(--warnbg);color:var(--warn)}.att button.E.on{background:var(--infobg);color:var(--info)}.chat{display:flex;flex-direction:column;gap:12px}.msg{max-width:780px;border-radius:12px;padding:12px 14px;line-height:1.55;white-space:pre-wrap}.msg.u{align-self:flex-end;background:var(--slate);color:var(--chalk)}.msg.a{background:var(--surface);border:1px solid var(--line)}.msg .tools{font-size:.75rem;color:var(--soft);margin-top:8px;font-family:var(--f-mono)}.steps{display:flex;flex-direction:column;gap:6px;font-size:.88rem}.steps div{display:flex;gap:8px;align-items:flex-start}.steps i{font-style:normal;width:20px;flex:none;text-align:center}.modal{position:fixed;inset:0;background:rgba(10,20,17,.55);display:grid;place-items:center;z-index:50;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.box{background:var(--surface);border-radius:16px;max-width:560px;width:100%;max-height:100%;overflow:auto;padding:22px;gap:14px}.box,.provider{display:flex;flex-direction:column}.provider{border:2px dashed var(--line);border-radius:12px;padding:14px;gap:10px}.methods{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:8px;gap:8px}.methods button{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:10px;cursor:pointer;font-weight:600;font-size:.85rem;text-align:left}.methods button.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}.doc{background:#fff;color:#111;border-radius:6px;padding:26px;border:1px solid var(--line);font-size:.9rem}.doc table th{background:#eef2f1;color:#334}.doc table td,.doc table th{border-bottom:1px solid #dde3e1}.doc .dh{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:2px solid var(--brand);padding-bottom:12px;margin-bottom:14px;flex-wrap:wrap}.qr{width:96px;height:96px;flex:none}.qr canvas,.qr img{width:96px!important;height:96px!important}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.plan{display:flex;flex-direction:column;gap:10px}.plan.cur{border:2px solid var(--brand)}.plan .price{font:700 1.9rem var(--f-display)}.plan ul{margin:0;padding-left:18px;font-size:.88rem;gap:4px}.plan ul,.welcome{display:flex;flex-direction:column}.welcome{max-width:1060px;margin:0 auto;gap:22px}.hero{background:var(--slate);color:var(--chalk);border-radius:18px;padding:30px;display:grid;grid-template-columns:1.3fr 1fr;grid-gap:24px;gap:24px;align-items:center}.hero h1{font-size:2.3rem;letter-spacing:-.01em}.hero p{opacity:.85;max-width:52ch}.hero .chalk{font-family:var(--f-mono);font-size:.8rem;opacity:.7;border-top:1px dashed rgba(255,255,255,.25);padding-top:10px;margin-top:6px}.roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:10px;gap:10px}.roles button{text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.roles button:hover{border-color:var(--brand)}.roles b{font-family:var(--f-display);font-size:1rem}.roles span{font-size:.82rem;color:var(--soft)}.kid{display:flex;gap:12px;align-items:center}.av{width:42px;height:42px;border-radius:50%;background:var(--sunk);display:grid;place-items:center;font-weight:700;color:var(--soft);flex:none}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:10px;font-weight:600;z-index:60;max-width:calc(100% - 32px)}.arch{display:grid;grid-gap:10px;gap:10px}.layer{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}.layer h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin-bottom:8px}.boxes{display:flex;flex-wrap:wrap;gap:8px}.boxes span{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.84rem}.boxes span,.ent{background:var(--sunk)}.ent{font-family:var(--f-mono);border-radius:10px;padding:10px;white-space:pre;overflow-x:auto}.ent,.foot{font-size:.78rem}.foot{color:var(--soft);text-align:center;padding-top:8px}[dir=rtl] nav.side button.on{box-shadow:inset -3px 0 0 var(--pencil)}@media (max-width:900px){.shell{grid-template-columns:1fr}nav.side{flex-direction:row;overflow-x:auto;padding:8px;gap:4px;position:-webkit-sticky;position:sticky;top:calc(env(safe-area-inset-top,0px) + 58px);z-index:15}nav.side .grp{display:none}nav.side button{white-space:nowrap;padding:8px 10px}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid,.g2,.g3,.hero,.plans{grid-template-columns:1fr}.hero h1{font-size:1.8rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--slate)}.login .card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px}.err{color:var(--bad);font-size:.88rem}.spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);animation:sp .8s linear infinite;margin:24px auto}@keyframes sp{to{transform:rotate(1turn)}}.empty{padding:28px;text-align:center;color:var(--soft)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.right{margin-left:auto}input.mark{width:80px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface)}.kv{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 14px;gap:6px 14px;font-size:.9rem}.kv dt{color:var(--soft)}.kv dd{margin:0}@media print{.noprint,.top,nav.side{display:none!important}.shell{display:block}main{padding:0}.card{border:0}}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}.cal .dow{background:var(--sunk);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--soft);padding:6px 8px;font-weight:600}.cal .d{min-height:104px;border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px 5px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal .d:nth-child(7n+1){border-left:0}.cal .d.out{background:var(--bg);opacity:.6}.cal .d .n{font-size:.78rem;font-weight:600;color:var(--soft)}.cal .d.today .n{background:var(--brand);color:#fff;border-radius:20px;padding:0 7px;align-self:flex-start}.ev{all:unset;cursor:pointer;display:block;font-size:.74rem;line-height:1.3;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--infobg);color:var(--info)}.ev.k-holiday{background:var(--okbg);color:var(--ok)}.ev.k-payment{background:var(--warnbg);color:var(--warn)}.ev.k-exam{background:var(--badbg);color:var(--bad)}.ev.k-event,.ev.k-meeting{background:var(--infobg);color:var(--info)}.ev.k-other,.ev.k-sport,.ev.k-trip{background:var(--sunk);color:var(--ink)}.agenda{display:flex;flex-direction:column;gap:8px}.agenda .it{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.agenda .dt{min-width:64px;text-align:center;font-family:var(--f-display);line-height:1.1}.agenda .dt b{display:block;font-size:1.35rem}.agenda .dt span{font-size:.72rem;text-transform:uppercase;color:var(--soft)}@media (max-width:900px){.cal .d{min-height:64px}.cal .ev{font-size:.66rem;padding:1px 4px}}.chatwrap{display:grid;grid-template-columns:320px 1fr;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden;height:calc(100vh - 210px);min-height:440px}.chatlist{border-right:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column}.chatlist button{all:unset;cursor:pointer;display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.chatlist button:hover{background:var(--sunk)}.chatlist button.on{background:var(--infobg)}.chatlist .who{flex:1 1;min-width:0}.chatlist .who b,.chatlist .who span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatlist .who span{font-size:.82rem;color:var(--soft)}.unread{background:var(--brand);color:#fff;border-radius:20px;font-size:.72rem;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}.thread{display:flex;flex-direction:column;min-width:0}.thread .th{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}.thread .msgs{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}.bubble{max-width:72%;padding:9px 12px;border-radius:14px;white-space:pre-wrap;word-wrap:break-word;line-height:1.45;font-size:.92rem}.bubble.me{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}.bubble.them{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.bubble time{display:block;font-size:.7rem;opacity:.7;margin-top:3px;text-align:right}.daysep{align-self:center;font-size:.74rem;color:var(--soft);background:var(--sunk);border-radius:20px;padding:2px 10px;margin:6px 0}.composer{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.composer textarea{flex:1 1;border:1px solid var(--line);border-radius:10px;padding:9px 11px;resize:none;background:var(--surface)}[dir=rtl] .bubble.me{align-self:flex-start}[dir=rtl] .bubble.them{align-self:flex-end}@media (max-width:900px){.chatwrap{grid-template-columns:1fr;height:auto}.chatwrap.open .chatlist,.chatwrap:not(.open) .thread{display:none}.thread .msgs{height:55vh}}