:root{--bg: #F2F2F7;--card: #FFFFFF;--label: #000000;--label2: #6C6C70;--label3: #8E8E93;--sep: #C6C6C8;--fill: #E5E5EA;--fill2: #E3E3E8;--chev: #C4C4C7;--blue: #007AFF;--yellow: #FFD60A;--yellow-soft: #FFF4C2;--yellow-ink: #6B5200;--green: #248A3D;--red: #D70015;--red-soft: #FFE5E5;--bar-bg: rgba(249,249,249,.88);--side-bg: rgba(236,236,240,.85);--dim: rgba(0,0,0,.4);--accent: #E8772E;--accent-ink: #FFFFFF;--accent-text: color-mix(in srgb, var(--accent) 72%, #000);--mark-bg: #1C1C1E;--mark-tile: #FFFDF5;--mark-ink: #1C1C1E;--mark-ring: transparent;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, system-ui, "Segoe UI", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #000000;--card: #1C1C1E;--label: #FFFFFF;--label2: #98989F;--label3: #8E8E93;--sep: #38383A;--fill: #2C2C2E;--fill2: #1C1C1E;--chev: #5A5A5E;--blue: #0A84FF;--yellow-soft: #3A3000;--yellow-ink: #FFD60A;--green: #30D158;--red: #FF453A;--red-soft: #3A1414;--accent-text: color-mix(in srgb, var(--accent) 80%, #fff);--mark-bg: #2C2C2E;--mark-tile: #FFFDF5;--mark-ink: #1C1C1E;--mark-ring: rgba(255,255,255,.16);--bar-bg: rgba(22,22,24,.88);--side-bg: rgba(30,30,32,.85);--dim: rgba(0,0,0,.6);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--label);font:17px/1.35 var(--font);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}input,select{font:inherit;color:var(--label);min-width:0}.num{font-variant-numeric:tabular-nums}.sec{color:var(--label2)}.small{font-size:13px}.green{color:var(--green)}.red{color:var(--red)}.blue{color:var(--accent-text)}.center{text-align:center}.page{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:22px;padding:calc(14px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(110px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px}.top-actions{display:flex;align-items:center;gap:8px}.large-title{margin:0;font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.circle-btn{width:32px;height:32px;border-radius:999px;border:0;background:var(--fill);display:grid;place-items:center;color:var(--label);font-size:16px;text-decoration:none;padding:0}.plain-btn{border:0;background:none;color:var(--accent-text);padding:0;font-size:17px;text-decoration:none}.hidden-keep{visibility:hidden}.today-btn{white-space:nowrap;height:32px;border-radius:999px;border:0;background:var(--fill);color:var(--accent-text);font-size:15px;font-weight:600;padding:0 14px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;width:36px;border-radius:999px;border:0;background:var(--fill);color:var(--accent-text);font-weight:600;font-size:15px;padding:0}.add-btn span{display:none}.add-dot{width:26px;height:26px;border-radius:999px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:18px;font-weight:600;flex:none}.back{color:var(--accent-text);text-decoration:none;font-size:17px}.section{display:flex;flex-direction:column}.cap{font-size:13px;color:var(--label2);text-transform:uppercase;letter-spacing:.02em;margin:0 0 6px 16px}.foot{font-size:13px;color:var(--label2);margin:6px 16px 0;line-height:1.4}.grp{background:var(--card);border-radius:12px;overflow:hidden}.cell{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 16px;position:relative;width:100%;border:0;background:none;text-align:left;color:inherit;text-decoration:none}.cell+.cell:before,.cell+.cell-wrap:before,.cell-wrap+.cell:before,.cell-wrap+.cell-wrap:before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid var(--sep)}.cell-wrap{position:relative}.grp.avatars .cell+.cell:before,.grp.avatars .cell-wrap+.cell-wrap:before{left:66px}.cell .main{flex:1;min-width:0}.cell .main>.sub{font-size:13px;color:var(--label2);margin-top:1px}.chev{color:var(--chev);font-size:17px;flex:none}.cell.link-row{color:var(--accent-text)}button.cell:active,a.cell:active{background:var(--fill)}.cell .value{color:var(--label2);text-align:right}.cell .amount{font-weight:600;white-space:nowrap}.cell-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px}.inline-input{width:96px;text-align:right;border:0;background:none;padding:4px 0;color:var(--label2);outline:none}.inline-input:focus{color:var(--label)}.text-input{width:100%;height:44px;border-radius:10px;border:0;background:var(--fill2);padding:0 12px}.search{display:flex;align-items:center;gap:6px;height:36px;border-radius:10px;background:var(--fill2);padding:0 10px;color:var(--label2)}.search input{border:0;background:none;flex:1;outline:none}.pill{display:inline-block;font-size:13px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill.paid{background:var(--yellow-soft);color:var(--yellow-ink)}.pill.unpaid{background:var(--bg);color:var(--label2)}.pill.debt{background:var(--red-soft);color:var(--red)}.pill.off{background:var(--bg);color:var(--label2);text-decoration:line-through}.av{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;flex:none}.av.big{width:56px;height:56px;font-size:22px}.pips{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.p{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--chev)}.p.y{background:var(--yellow);border-color:#e5be00}.p.r{background:var(--red);border-color:var(--red)}.jar{height:6px;border-radius:999px;background:var(--fill);overflow:hidden;margin-top:6px}.jar span{display:block;height:100%;border-radius:999px;background:var(--yellow)}.bar{height:4px;border-radius:999px;background:var(--fill);overflow:hidden;margin-top:6px}.bar span{display:block;height:100%;border-radius:999px;background:var(--label)}.dot{width:10px;height:10px;border-radius:999px;flex:none;display:inline-block}.check{width:24px;height:24px;border-radius:999px;border:1.5px solid var(--chev);background:none;display:grid;place-items:center;padding:0;flex:none;font-size:13px;color:#fff}.check[aria-pressed=true]{background:var(--green);border-color:var(--green)}.status-line{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--label2)}.banner{border-radius:12px;padding:12px 16px;font-size:15px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.banner.bad{background:var(--red-soft);color:var(--red)}.banner.warn{background:var(--yellow-soft);color:var(--label)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:var(--fill2);border-radius:9px;padding:2px;gap:2px}.seg button{height:32px;border:0;border-radius:7px;background:none;font-size:15px;font-weight:600}.seg button[aria-pressed=true]{background:var(--card);box-shadow:0 3px 8px #0000001f,0 1px 1px #0000000a}.btn{height:50px;border-radius:14px;border:0;font-weight:600;font-size:17px;display:grid;place-items:center;text-decoration:none;padding:0 18px}.btn.fill{background:var(--accent);color:var(--accent-ink)}.btn.tinted{background:var(--card);color:var(--accent-text)}.btn.gray{background:var(--fill);color:var(--accent-text)}.btn.small{height:36px;border-radius:10px;font-size:15px;padding:0 12px}.btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rings{padding:18px 16px;display:flex;align-items:center;gap:18px}.rings svg{flex:none;display:block;width:132px;height:132px}.rings .left{font-size:28px;font-weight:800;letter-spacing:-.02em}.legend{display:flex;flex-direction:column;gap:6px;font-size:13px}.legend span{display:flex;align-items:center;gap:6px}.season-hero{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:22px;margin:calc(-14px - env(safe-area-inset-top,0px)) calc(-1*max(16px,env(safe-area-inset-right,0px))) 0 calc(-1*max(16px,env(safe-area-inset-left,0px)));padding:calc(14px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px));background:linear-gradient(180deg,color-mix(in srgb,var(--season) 30%,var(--bg)) 0%,var(--bg) 100%)}.season-hero>*:not(.season-pattern){position:relative}.season-pattern{position:absolute;inset:0;width:100%;height:100%;opacity:.45;pointer-events:none;-webkit-mask-image:linear-gradient(105deg,transparent 30%,#000 85%);mask-image:linear-gradient(105deg,transparent 30%,#000 85%)}.season-title{display:flex;align-items:center;gap:10px}.season-icon{width:30px;height:30px;flex:none}.season-bar{display:block;width:40px;height:4px;border-radius:999px;background:var(--season);margin:8px 0 6px}.hero{padding:16px;display:flex;flex-direction:column;gap:12px}.hero .headline{font-size:22px;font-weight:700}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week button{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--label2);border:0;background:none;padding:0}.week b{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;font-size:17px;font-weight:600;color:var(--label)}.week .today b{background:var(--label);color:var(--bg)}.week .weekend b{color:var(--label3)}.lesson-time{width:48px;font-size:15px;color:var(--label2);flex:none}.lesson-bar{width:4px;align-self:stretch;border-radius:2px;flex:none}.cell.past{opacity:.55}.move-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0 16px 12px}.move-form input{height:36px;border-radius:9px;border:0;background:var(--fill2);padding:0 10px}.day-list{display:flex;flex-direction:column;gap:22px}.wgrid,.wgrid-head{display:none}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--bar-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:.5px solid var(--sep);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px max(8px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--label3);text-decoration:none;font-size:10px;font-weight:600;border:0;background:none;padding:2px 0 4px}.tabbar a.active{color:var(--accent-text)}.tabbar svg{width:26px;height:26px}.side{display:none}.scrim{position:fixed;inset:0;background:var(--dim);z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:94%;overflow:auto;background:var(--bg);border-radius:12px 12px 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:18px}.grabber{width:36px;height:5px;border-radius:999px;background:var(--chev);align-self:center}.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.sheet-head .title{font-weight:600}.sheet-head .plain-btn:last-child{justify-self:end}.big-amount{text-align:center}.big-amount .v{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.amount-input{width:120px;text-align:right;border:0;background:var(--fill2);border-radius:8px;padding:6px 10px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(100px + env(safe-area-inset-bottom,0px));z-index:30;background:var(--label);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;font-size:15px;max-width:calc(100% - 32px);text-align:center}.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;max-width:360px;margin:0 auto;padding:24px}app-logo-mark svg{box-shadow:0 0 0 1px var(--mark-ring)}.login app-logo-mark svg{box-shadow:0 0 0 1px var(--mark-ring),0 12px 30px #0003}.login .btn{width:100%}@media(prefers-reduced-motion:no-preference){.sheet{animation:sheet-up .25s cubic-bezier(.2,.8,.2,1)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.5}}}.month-cols,.month-cols>div,.detail-cols,.detail-cols>div,.settings-cols{display:flex;flex-direction:column;gap:22px;min-width:0}@media(min-width:900px){body{font-size:16px}app-shell{display:block;padding-left:240px}.tabbar{display:none}.side{display:flex;flex-direction:column;gap:2px;position:fixed;top:0;bottom:0;left:0;width:240px;z-index:10;padding:16px 10px;background:var(--side-bg);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-right:.5px solid var(--sep)}.side .brand{display:flex;align-items:center;gap:12px;padding:4px 4px 16px;font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--label)}.side a{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;border-radius:8px;color:var(--label);text-decoration:none;font-size:15px}.side a.active{background:#7f7f7f2e;font-weight:600}.side a svg{width:20px;height:20px;color:var(--accent-text)}.side .pay{margin:auto 0 8px;height:40px;border-radius:10px;border:0;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:15px}.add-btn{width:auto;padding:0 16px 0 12px;height:40px}.add-btn span{display:inline}.side .account{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;border-radius:10px;padding:8px;text-align:left;color:var(--label)}.side .account:hover,.side .account[aria-expanded=true]{background:#7f7f7f24}.side .account img,.side .account .av.small{width:34px;height:34px;border-radius:999px;flex:none}.side .account .av.small{background:var(--accent);font-size:15px}.side .account .who{flex:1;min-width:0;display:flex;flex-direction:column}.side .account .who b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .account .who>span{font-size:12px;color:var(--label2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side .account-menu{position:absolute;left:10px;right:10px;bottom:64px;z-index:15;background:var(--card);border-radius:12px;box-shadow:0 10px 30px #0003,0 0 0 .5px #0000001a;padding:6px;display:flex;flex-direction:column}.side .account-menu a,.side .account-menu button{height:38px;display:flex;align-items:center;padding:0 12px;border-radius:8px;border:0;background:none;font-size:15px;text-align:left;color:var(--label);text-decoration:none}.side .account-menu .red{color:var(--red)}.side .account-menu a:hover,.side .account-menu button:hover{background:var(--fill)}.page{max-width:1600px;margin:0 auto;padding:32px 40px 48px;gap:24px}.large-title{font-size:34px}.cell{min-height:48px;padding:10px 18px;font-size:16px}.cap{font-size:13px;font-weight:600;text-transform:uppercase;margin-left:6px}.grp{box-shadow:0 0 0 .5px #00000014,0 1px 3px #0000000a}.btn{height:44px;border-radius:12px;font-size:16px;padding:0 20px}.btn.small{height:34px;border-radius:9px;font-size:14px}.seg button{height:32px;font-size:14px}.pill{font-size:13px}.rings{flex-direction:column;text-align:center;padding:22px}.rings svg{width:200px;height:200px}.season-hero{margin:0;padding:26px 30px 24px;border-radius:22px}.season-icon{width:34px;height:34px}.rings .left{font-size:34px}.legend{font-size:14px}.students-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:24px;align-items:start}.students-list{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}.students-list .cell.selected{background:var(--fill)}.students-list .cell.selected .jar{background:var(--bg)}.week-strip,.day-list{display:none}.wgrid{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));background:var(--card);border-radius:12px;box-shadow:0 0 0 .5px #00000014;padding-top:8px}.wgrid-head{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));font-size:14px;color:var(--label2);padding-bottom:8px}.wgrid-head span{padding-left:8px}.wgrid-head b{color:var(--label);font-size:18px}.wgrid-head .today b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#ff3b30;color:#fff;font-size:15px}.hours .h{height:52px;font-size:12px;color:var(--label3);text-align:right;padding-right:8px;transform:translateY(-7px)}.dcol{position:relative;border-left:.5px solid var(--sep);background-image:repeating-linear-gradient(transparent 0 51px,var(--fill) 51px 52px)}.dcol.today{background-color:#ffd60a0f}.ev{position:absolute;left:4px;right:4px;min-height:30px;border-radius:6px;padding:4px 8px;font-size:13px;line-height:1.25;border:0;border-left:3px solid;text-align:left;color:var(--label);overflow:hidden}.ev b{display:block;font-size:14px}.ev.past{opacity:.55}.ev.selected{box-shadow:0 0 0 2px var(--accent);z-index:2}.ev{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.ev.dragging{cursor:grabbing;z-index:6;opacity:.92;box-shadow:0 8px 24px #00000040;transition:none}.popover{position:fixed;z-index:15;width:260px;background:var(--card);border-radius:12px;box-shadow:0 10px 30px #0003,0 0 0 .5px #0000001a;padding:12px;display:flex;flex-direction:column;gap:6px}.popover button.opt{height:36px;border-radius:8px;border:0;background:var(--bg);text-align:left;padding:0 12px;font-size:14px;color:var(--label)}.popover-scrim{position:fixed;inset:0;z-index:14}.popover button.opt[aria-pressed=true]{background:var(--label);color:var(--bg)}.scrim{align-items:center}.sheet{border-radius:16px;max-height:88vh;max-width:600px;padding:18px 28px 28px}.grabber{display:none}.toast{bottom:32px}}.page,.detail-pane{container-type:inline-size}.detail-pane{display:flex;flex-direction:column;gap:20px;min-width:0}@container (min-width: 680px){.month-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.month-cols>div:first-child{grid-row:span 2}.settings-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}}@container (min-width: 1150px){.month-cols{grid-template-columns:minmax(300px,1fr) minmax(0,1.3fr) minmax(0,1.3fr)}.month-cols>div:first-child{grid-row:auto}}@container (min-width: 640px){.detail-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}}
