@font-face{font-family:Lexend;src:url(/fonts/Lexend.ttf)format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Shantell Sans;src:url(/fonts/ShantellSans.ttf)format("truetype");font-weight:300 800;font-display:swap}:root{--ink:#1d3fa8;--ink-deep:#15308a;--text:#141c45;--muted:#4a5584;--paper:#fff;--desk:#f3f5fb;--hairline:#dce3f5;--stroke:#c9d2ee;--secondary-ring:#b9c6ee;--yellow:#ffe45c;--pink:#ff9cc8;--green:#8df0b2;--orange:#ffb866;--sky:#94dbff;--now:#c81e3a;--green-text:#0b5a31;--radius-control:12px;--radius-panel:16px;--shadow-panel:0 1px 2px #141c450f, 0 6px 20px #141c450d;--font-display:"Shantell Sans", system-ui, sans-serif;--font-body:"Lexend", system-ui, sans-serif;--bg:var(--desk);--surface:var(--paper);--border:var(--hairline);--primary:var(--ink);--primary-text:#fff;--ok:var(--green-text);--ok-bg:#d4f8e2;--warn:#7a4a00;--warn-bg:#fff3b0;--bad:var(--now);--bad-bg:#fde8eb;--info-bg:#dce6ff;--radius:var(--radius-panel)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--desk);color:var(--text);font:15px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}::selection{background:var(--yellow);color:var(--text)}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}a{color:var(--ink);text-underline-offset:3px}h1{font:700 40px/1.1 var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 16px}h2{font:700 21px/1.2 var(--font-display);margin:24px 0 12px}.disp{font-family:var(--font-display);letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums}button{border-radius:var(--radius-control);background:var(--ink);color:#fff;min-height:44px;font:600 15px/1.2 var(--font-body);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;display:inline-flex}button:hover{background:var(--ink-deep)}button.secondary,button.ghost-btn{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--secondary-ring)}button.secondary:hover,button.ghost-btn:hover{background:#f3f6ff}button.ghost{color:var(--muted);background:0 0;padding:0 10px}button.ghost:hover{background:#1d3fa80f}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:16px/1.3 var(--font-body);color:var(--text);background:var(--paper);border:1.5px solid var(--stroke);border-radius:var(--radius-control);width:100%;min-height:44px;padding:10px 12px}input[type=checkbox]{width:auto;min-height:0}label{color:var(--muted);margin-bottom:12px;font-size:14px;display:block}label>input,label>select,label>textarea{margin-top:4px}label.check{color:var(--text);align-items:flex-start;gap:8px;display:flex}.row{flex-wrap:wrap;align-items:center;display:flex}.gap-s{gap:8px}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.muted{color:var(--muted)}.small{font-size:14px}.warn{color:var(--warn)}.error{color:var(--now)}.center{place-items:center;min-height:60vh;display:grid}.hl{--c:var(--yellow);background-image:linear-gradient(101deg, transparent .15em, var(--c) .4em, var(--c) calc(100% - .35em), transparent calc(100% - .1em));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-position:0 70%;background-repeat:no-repeat;background-size:100% 68%;margin:0 -.3em;padding:0 .3em}.m-y{--c:var(--yellow)}.m-p{--c:var(--pink)}.m-g{--c:var(--green)}.m-o{--c:var(--orange)}.m-s{--c:var(--sky)}.shell{min-height:100vh;display:flex}.side{background:var(--ink);flex-direction:column;flex:0 0 248px;gap:2px;min-height:100vh;padding:28px 16px 20px;display:flex}.side :focus-visible{outline-color:var(--yellow)}.brand{color:#fff;font:700 21px/1 var(--font-display);align-items:center;gap:10px;padding:0 10px 28px;text-decoration:none;display:flex}.brand svg{filter:drop-shadow(0 4px 5px #141c4547);flex:none;overflow:visible;transform:rotate(-6deg)}.nv{color:#dce3ff;border-radius:10px;align-items:center;gap:12px;min-height:44px;padding:10px 12px;font-size:15px;text-decoration:none;display:flex}.nv:hover{color:#fff;background:#ffffff1a}.nv[aria-current=page]{color:var(--text);background-image:linear-gradient(101deg, transparent 2px, var(--yellow) 6px, var(--yellow) calc(100% - 6px), transparent calc(100% - 2px));font-weight:600}.side-foot{border-top:1px solid #ffffff2e;flex-direction:column;gap:10px;margin-top:auto;padding:14px 4px 0;display:flex}.side-foot select{color:#fff;background:0 0;border-color:#ffffff59}.side-foot select option{color:var(--text)}.who{color:#fff;align-items:center;gap:10px;padding:0 6px;font-size:14px;line-height:1.35;display:flex}.avatar{background:var(--yellow);width:34px;height:34px;color:var(--text);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.side-foot button.ghost{color:#dce3ff;justify-content:flex-start}.side-foot button.ghost:hover{color:#fff;background:#ffffff1a}.content{flex:1;min-width:0;padding:32px 40px 48px}.panel,.card{background:var(--paper);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:22px 24px}.card+.card{margin-top:12px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-head h2{margin:0}.meta{color:var(--muted);font-size:13px}.today{flex-direction:column;gap:24px;display:flex}.today-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.today-head h1{margin:4px 0 0}.today-head .date{color:var(--muted);font-size:15px}.status-line{font:700 28px/1.15 var(--font-display);color:var(--ink);margin:6px 0 0}.status-line .done{color:var(--text)}.actions{flex-wrap:wrap;gap:10px;display:flex}a.button-link{border-radius:var(--radius-control);background:var(--paper);min-height:44px;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--secondary-ring);align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}a.button-link:hover{background:#f3f6ff}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:16px;height:12px;display:inline-block}.hatch{background:repeating-linear-gradient(135deg,#141c4538 0 2px,#0000 2px 7px)}.strip-grid{grid-template-columns:150px 1fr;align-items:center;gap:0 16px;display:grid}.axis{height:18px;color:var(--muted);font-size:12px;position:relative}.axis span{position:absolute;transform:translate(-50%)}.axis span:first-child{transform:none}.axis span:last-of-type{transform:translate(-100%)}.axis .now-label{background:var(--now);color:#fff;z-index:2;border-radius:6px;padding:1px 6px;font-weight:600;top:22px;transform:translate(-50%)}.child-name{font-size:16px;font-weight:600}.band{height:48px;position:relative}.band .blk{color:var(--text);white-space:nowrap;border-radius:4px 10px 5px 11px;align-items:center;gap:5px;padding:0 8px;font-size:13px;display:flex;position:absolute;top:6px;bottom:6px;overflow:hidden}.band .blk.club{background:var(--sky)}.band .blk.window{background:var(--yellow);outline:2px solid var(--ink);outline-offset:-2px;font-weight:600}.band .blk.done{background:var(--green);font-weight:600}.band .now-line{background:var(--now);z-index:1;width:2px;position:absolute;top:-4px;bottom:-4px}.band-note{color:var(--muted);padding-top:4px;font-size:13px}.band-row+.band-row{margin-top:10px}.work{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);align-items:start;gap:24px;display:grid}.seg-group{background:#eef1f8;border-radius:10px;gap:4px;padding:3px;display:flex}.seg{min-height:32px;color:var(--muted);background:0 0;border-radius:8px;padding:0 12px;font-size:14px;font-weight:400}.seg:hover{background:#fff9}.seg[aria-pressed=true]{background:var(--paper);color:var(--text);font-weight:600;box-shadow:0 1px 3px #141c451f}.tb{border-collapse:collapse;width:100%;margin-top:8px;font-size:15px}.tb th{text-align:left;color:var(--muted);border-bottom:1.5px solid var(--hairline);padding:8px 8px 10px 0;font-size:13px;font-weight:500}.tb td{border-bottom:1px dashed var(--hairline);vertical-align:top;padding:13px 8px 13px 0}.tb tr:last-child td{border-bottom:0}.tb .sub{font-weight:600}.tb .what{color:var(--muted);margin-top:2px;font-size:14px}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.pill.working{color:#5a4500;background:#fff3b0}.pill.done{color:var(--green-text);background:#d4f8e2}.pill.check{color:var(--ink);background:#dce6ff}.pill.redo{color:#6b3a00;background:#ffe8cc}.pill.plain{color:var(--muted);background:#eef1f8}.queue,.queue article{flex-direction:column;gap:14px;display:flex}.queue article+article{border-top:1px dashed var(--hairline);padding-top:14px}.rv{align-items:flex-start;gap:14px;display:flex}.rv-photo{flex:0 0 130px;height:170px;padding:4px}.rv-photo img,.rv-photo .ph{object-fit:cover;background:#fff;border-radius:6px;width:122px;height:162px;display:block;transform:rotate(-1.2deg);box-shadow:0 8px 20px #00000040}.rv-body{flex-direction:column;gap:4px;min-width:0;font-size:14px;display:flex}.rv-body p{margin:2px 0 0;line-height:1.45}.verdict{font:700 17px/1.3 var(--font-display)}.rv-actions{gap:10px;display:flex}.rv-actions button{flex:1}.note-flag{color:#6b3a00;background:#fff1dd;border-radius:8px;align-self:flex-start;padding:4px 8px;font-size:13px}.week{flex-wrap:wrap;gap:40px;margin-top:12px;display:flex}.week-child{flex:1;min-width:220px}.week-head{justify-content:space-between;margin-bottom:4px;font-size:14px;display:flex}.bars{border-bottom:2px solid var(--hairline);gap:6px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.bar-area{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;width:100%;height:130px;display:flex}.bar-area .v{text-align:center;font-size:12px}.bar{background:var(--green);border-radius:6px 10px 3px 4px;width:26px;transform:rotate(-.8deg)}.bar.left{background:repeating-linear-gradient(135deg, var(--orange) 0 5px, #fff 5px 8px);box-shadow:inset 0 0 0 2px var(--orange)}.bar-day{color:var(--muted);font-size:12px}.hw-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hw .subject{color:var(--muted);font-size:13px}.hw .title{font-weight:600}.proof{grid-template-columns:120px 1fr;gap:12px;margin:12px 0;display:grid}.photo{object-fit:cover;border-radius:6px;width:120px;height:150px;display:block}.photo.placeholder{background:var(--desk)}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:500}.badge.pending,.badge.pending_parent{color:var(--muted);background:#eef1f8}.badge.submitted{color:var(--ink);background:#dce6ff}.badge.approved{color:var(--green-text);background:#d4f8e2}.badge.rejected{color:#6b3a00;background:#ffe8cc}.plan{background:#fff8cc;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 12px;padding:10px 12px;display:flex}.plan.late{background:#fde8eb}.code{letter-spacing:.15em;font:700 1.6rem/1 ui-monospace,monospace}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px dashed var(--hairline);padding:10px 0}.list li:last-child{border-bottom:0}table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:6px 4px}.auth{max-width:440px;margin:8vh auto;padding:0 16px}.auth .brand{color:var(--ink);padding:0}.auth .card{padding:24px}@media (max-width:1100px){.work{grid-template-columns:1fr}}@media (max-width:860px){.shell{flex-direction:column}.side{flex-flow:wrap;flex:none;align-items:center;gap:4px;height:auto;padding:12px 16px;position:static}.brand{padding:0 8px 0 0}.side-foot{border:0;flex-direction:row;align-items:center;margin:0 0 0 auto;padding:0}.who{display:none}.content{padding:20px 16px 40px}h1{font-size:32px}.strip-grid{grid-template-columns:1fr}.strip-grid>.spacer{display:none}.tb-wrap{overflow-x:auto}.proof{grid-template-columns:90px 1fr}.photo{width:90px;height:120px}}@media (prefers-reduced-motion:no-preference){.nv,button,a.button-link{transition:background-color .12s ease-out}}.plans{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.plan-box{border:1.5px solid var(--hairline);border-radius:12px;flex-direction:column;gap:14px;padding:20px;display:flex}.plan-premium{border:2px solid var(--ink)}.plan-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.plan-top h3{margin:0;font-size:18px;font-weight:600}.plan-price{font-size:32px;font-weight:800;line-height:1.1}.plan-list{flex-direction:column;gap:10px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.plan-list.dashed li{border-bottom:1px dashed var(--hairline);padding-bottom:10px}.plan-list.dashed li:last-child{border-bottom:0;padding-bottom:0}.pill-plain{background:var(--hairline);color:var(--text);font-weight:600}.paid{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.meter{background:var(--desk,#f3f5fb);border-radius:999px;height:8px;overflow:hidden}.meter>div{background:var(--ink);border-radius:999px;height:100%}.limit-note{background:#f3f5fb;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.45;display:flex}.limit-note svg{flex:none;margin-top:1px}.limit-note p{margin:0}.trial-band{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--hairline);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:15px;display:flex}.trial-band p{margin:0}.duo{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}
