:root{--bg: #0f1420;--card: #1a2233;--line: #2a3550;--tx: #e8edf7;--mut: #8b96ad;--acc: #4f8dff;--ok: #2ecc71;--warn: #f0a020;--bad: #e05555;--radius: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:22px;margin:0 0 16px}h2{font-size:17px;margin:0 0 12px}h3{font-size:15px;margin:16px 0 8px}a{color:var(--acc)}.screen{display:grid;place-items:center;min-height:100vh;color:var(--mut)}.muted{color:var(--mut)}.small{font-size:13px}.empty{padding:12px 0}.debt{color:var(--bad)}.app{min-height:100vh}.nav{display:flex;align-items:center;gap:4px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:600;margin-right:12px}.spacer{flex:1}.nav button{background:none;border:1px solid transparent;border-radius:var(--radius);padding:6px 10px;cursor:pointer;color:var(--tx)}.nav button:hover{background:#ffffff0d}.nav button.active{background:#4f8dff26;border-color:var(--acc);color:var(--acc);font-weight:600}main{padding:20px;max-width:1100px}.steps{margin:8px 0 16px;padding-left:20px;color:var(--mut);font-size:14px}.steps li.current{color:var(--warn)}.steps li.done{color:var(--ok)}.page .toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.segmented button{border:0;border-radius:0;padding:6px 12px;background:var(--card);cursor:pointer}.segmented button.active{background:var(--acc);color:#0f1420;font-weight:600}.row-add{display:grid;grid-template-columns:1fr 140px auto;gap:8px;margin:8px 0 12px;align-items:center}@media (max-width: 640px){.row-add{grid-template-columns:1fr}}.field{display:block;margin-bottom:10px}.field-label{display:block;font-size:13px;color:var(--mut);margin-bottom:4px}input,select{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--tx);font:inherit}input:focus,select:focus{outline:2px solid var(--acc);outline-offset:-1px}input::placeholder{color:var(--mut)}button{font:inherit;background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:var(--radius);padding:7px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--acc)}button.primary{background:var(--acc);color:#0f1420;border-color:var(--acc);font-weight:600}button:disabled{opacity:.55;cursor:default}button.link{background:none;border:0;color:var(--acc);cursor:pointer;padding:0;text-align:left}.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.table th,.table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}.table th{color:var(--mut);font-weight:600}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover{background:#4f8dff14}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.debt-total{font-size:24px;font-weight:600;margin:0 0 8px}.details{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:12px 0 0}.details dt{color:var(--mut)}.details dd{margin:0}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#ffffff0f;color:var(--mut)}.badge-active,.badge-held,.badge-converted,.badge-payment{background:#2ecc7129;color:var(--ok)}.badge-cancelled,.badge-archived,.badge-rejected,.badge-reversal{background:#e0555529;color:var(--bad)}.badge-paused,.badge-in_progress,.badge-charge,.badge-refund{background:#f0a02029;color:var(--warn)}.badge-correction,.badge-new{background:#4f8dff29;color:var(--acc)}.week{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px}.day.today{border-color:var(--acc)}.lesson .link{display:flex;gap:10px;align-items:baseline;width:100%}.lesson-time{min-width:46px;font-variant-numeric:tabular-nums;color:var(--acc)}.lesson-who{color:var(--tx)}.lesson-cancelled .link{text-decoration:line-through;color:var(--mut)}.month-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;color:var(--mut);font-size:13px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-cell{min-height:84px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px;display:flex;flex-direction:column;gap:2px}.month-cell.outside{background:#0003;color:var(--mut)}.month-cell.today{border-color:var(--acc)}.chip{border:0;border-radius:4px;background:#4f8dff33;color:var(--acc);font-size:12px;padding:1px 4px;cursor:pointer}.chip-cancelled{background:#e0555533;color:var(--bad)}.chip-held{background:#2ecc7133;color:var(--ok)}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;justify-content:flex-end}.drawer-inner{background:var(--card);width:min(460px,100%);padding:20px;overflow-y:auto}.participant{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}@media (max-width: 640px){.participant{grid-template-columns:1fr}}.login-screen{display:grid;place-items:center;min-height:100vh}.login-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:min(360px,92vw);box-shadow:var(--shadow)}.error,.error-box{color:var(--bad);background:#e055551f;border:1px solid rgba(224,85,85,.4);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;display:flex;justify-content:space-between;gap:12px}.notice{color:var(--ok);background:#2ecc711f;border:1px solid rgba(46,204,113,.4);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px}
