:root{--bg:#f3f5f4;--surface:#fff;--ink:#18222b;--muted:#5e6b74;--line:#dce2e0;--accent:#0f7b65;--accent-ink:#fff;--soft:#e3f1ec;--stop:#b42318;--stop-ink:#fff;--warn:#b45309;--font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--num:"Sora","Figtree",system-ui,sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--bg:#10161b;--surface:#182129;--ink:#e7ecea;--muted:#93a1a9;--line:#2a3640;--accent:#3cc6a0;--accent-ink:#06231c;--soft:#16302a;--stop:#f0624f;--stop-ink:#2a0d09;--warn:#f5a524;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:inherit}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:760px;margin:0 auto;padding:16px 16px 48px}header.top{justify-content:space-between;align-items:center;margin:4px 2px 14px;display:flex}header.top h1{letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:700}.linkbtn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:6px;font-size:.9rem}.muted{color:var(--muted)}.timer{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px}.timer.running{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}.timer .desc{background:0 0;border:0;outline:none;width:100%;min-height:0;padding:6px 2px;font-size:1.15rem;font-weight:500}.timer .desc::placeholder{color:var(--muted);font-weight:400}.trow{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time]{background:var(--bg);border:1px solid var(--line);border-radius:10px;max-width:100%;min-height:42px;padding:9px 11px}.trow select{flex:220px}.bill{color:var(--muted);-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:flex}.bill input{width:18px;height:18px;accent-color:var(--accent)}.clockrow{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.clock{font-family:var(--num);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(42px,12vw,62px);font-weight:600;line-height:1}.timer.running .clock{color:var(--accent)}.go{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:999px;min-width:132px;padding:16px 28px;font-size:1.05rem;font-weight:700}.timer.running .go{background:var(--stop);color:var(--stop-ink)}.go:disabled{opacity:.6}.tbudget{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:4px;margin:18px 0 14px;padding:4px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:9px 4px;font-size:.95rem;font-weight:600}.tabs button[aria-selected=true]{background:var(--ink);color:var(--bg)}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;min-height:42px;padding:9px 14px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--stop);border-color:var(--stop)}.btn.small{min-height:34px;padding:5px 10px;font-size:.88rem}.btn:disabled{opacity:.5;cursor:default}.jhead{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.day{margin-top:18px}.dayhead{color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;padding:0 4px 6px;font-size:.88rem;font-weight:600;display:flex}.entry{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:4px 1fr auto auto;align-items:center;gap:12px;padding:11px 4px;display:grid}.entry:hover{background:var(--surface)}.dot{border-radius:4px;align-self:stretch;width:4px}.e-desc{overflow-wrap:anywhere;font-weight:600}.e-desc em{color:var(--muted);font-weight:400}.e-meta{color:var(--muted);font-size:.85rem}.entry>div:nth-child(2){min-width:0}.e-notes{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-style:italic;overflow:hidden}td .e-notes{white-space:normal}.cnotes{color:var(--muted);white-space:pre-line;margin:6px 0 0 24px;font-size:.88rem}.pnotes{color:var(--muted);font-size:.8rem;font-style:italic;display:block}textarea{background:var(--bg);border:1px solid var(--line);font:inherit;color:var(--ink);resize:vertical;border-radius:10px;min-height:70px;padding:9px 11px}.e-time{text-align:right;white-space:nowrap}.e-dur{font-family:var(--num);font-variant-numeric:tabular-nums;font-weight:500}.e-range{color:var(--muted);font-size:.8rem}.icon{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.empty{background:var(--surface);border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:14px;margin-top:12px;padding:22px}.more{margin:16px auto 0;display:block}.form{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.form input[type=text]{flex:180px}.form input[type=number]{width:120px}.client{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;padding:12px 14px}.client.arch{opacity:.6}.chead{align-items:center;gap:10px;display:flex}.swatch{border-radius:50%;flex:none;width:14px;height:14px}.chead strong{flex:1}.plist{margin:8px 0 0 24px;padding:0;list-style:none}.plist li{border-top:1px solid var(--line);align-items:center;gap:8px;padding:6px 0;font-size:.95rem;display:flex}.plist li span:first-child{flex:1}.addp{flex-wrap:wrap;gap:6px;margin:8px 0 0 24px;display:flex}.addp input[type=text]{flex:140px;min-height:36px;padding:6px 10px}.addp input[type=number],.addp select{width:auto;min-height:36px;padding:6px 10px}.addp input[type=number]{width:110px}.blabel{color:var(--muted);margin-bottom:4px;font-size:.8rem;font-weight:600}.bbar{background:var(--line);border-radius:8px;height:8px;overflow:hidden}.bbar i{background:var(--accent);border-radius:8px;height:100%;display:block}.bbar i.warn{background:var(--warn)}.bbar i.over{background:var(--stop)}.bmeta{margin-top:4px;font-size:.88rem}.bmeta.warn{color:var(--warn);font-weight:600}.bmeta.over{color:var(--stop);font-weight:600}.badge{color:var(--muted);white-space:nowrap;flex:none;font-size:.82rem}.badge.warn{color:var(--warn);font-weight:600}.badge.over{color:var(--stop);font-weight:600}h3.sec{margin:22px 0 10px;font-size:.95rem}.packs{margin:0 0 10px;padding:0;list-style:none}.packs li{border-top:1px solid var(--line);grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:6px 0;font-size:.95rem;display:grid}.lesson{background:var(--soft);border-radius:14px;margin-top:12px;padding:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.9rem}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.totals{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.total{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.total b{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1.2;display:block}.total span{color:var(--muted);font-size:.85rem}.brk{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:6px 14px}.brow{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px 0;display:grid}.brow:last-child{border-bottom:0}.brow.sub{color:var(--muted);padding-left:18px;font-size:.92rem}.n{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bar{border-radius:4px;height:4px;margin-top:4px}.scroll{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px;font-size:.88rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}th{color:var(--muted);font-weight:600}.exports{gap:8px;margin:14px 0;display:flex}.note{color:var(--muted);font-size:.85rem}.overlay{z-index:20;background:#0a0f1473;justify-content:center;align-items:flex-end;padding:12px;display:flex;position:fixed;inset:0}@media (width>=640px){.overlay{align-items:center}}.sheet{background:var(--surface);width:100%;max-width:480px;max-height:90vh;margin-bottom:env(safe-area-inset-bottom,0px);border-radius:18px;padding:18px;overflow:auto}.sheet h2{margin:0 0 12px;font-size:1.1rem}.field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:.88rem;display:flex}.field input,.field select{color:var(--ink);font-size:1rem}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:1.3fr 1fr 1fr;gap:8px;display:grid}.actions{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:8px;display:flex}.actions .right{gap:8px;display:flex}.colors{flex-wrap:wrap;gap:8px;display:flex}.colors button{cursor:pointer;border:3px solid #0000;border-radius:50%;width:30px;height:30px}.colors button[aria-pressed=true]{border-color:var(--ink)}.err{color:var(--stop);min-height:1.2em;font-size:.9rem}.login{background:var(--surface);border:1px solid var(--line);border-radius:18px;max-width:380px;margin:12vh auto 0;padding:24px}.login h1{margin:0 0 4px;font-size:1.3rem}.login p{color:var(--muted);margin:0 0 18px}.login .btn{width:100%}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:30;border-radius:10px;max-width:90%;padding:10px 16px;font-size:.92rem;position:fixed;transform:translate(-50%)}@media (width<=480px){.clockrow{flex-wrap:wrap}.go{flex:1}.grid3{grid-template-columns:1fr 1fr}.grid3 .field:first-child{grid-column:1/-1}}.tnotes{width:100%;min-height:56px;margin-top:10px}.addnote{color:var(--accent);padding:8px 2px 0;font-weight:600}
