:root{--ink:#18342e;--muted:#61736f;--green:#0b5d4b;--green2:#13866e;--mint:#e8f6f1;--gold:#f3b61f;--line:#dce7e3;--bg:#f4f8f6;--white:#fff;--shadow:0 14px 35px rgba(17,72,59,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:16px}.topbar{height:76px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand>span:last-child{display:grid}.brand small,.school-badge small{font-size:.78rem;color:var(--muted);margin-top:2px}.logo,.crest,.print-logo{width:42px;height:42px;border-radius:12px;background:var(--green);color:white;display:grid;place-items:center;font-weight:900;letter-spacing:-1px;box-shadow:0 5px 12px rgba(11,93,75,.22)}.top-actions{display:flex;align-items:center;gap:18px}.save-state{font-size:.84rem;color:var(--muted)}.save-state i,.success-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#25a96b;margin-right:7px}.button{border:0;border-radius:10px;padding:11px 16px;font:inherit;font-size:.9rem;font-weight:750;cursor:pointer;transition:.18s;white-space:nowrap}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--green);color:white;box-shadow:0 7px 18px rgba(11,93,75,.18)}.button.primary:hover{background:var(--green2)}.button.ghost{background:white;border:1px solid var(--line);color:var(--ink)}.button.soft{background:var(--mint);color:var(--green)}.app-shell{min-height:calc(100vh - 76px);display:grid;grid-template-columns:270px 1fr}.steps{background:#103c33;color:white;padding:26px 18px;display:flex;flex-direction:column}.school-badge{display:flex;align-items:center;gap:11px;padding:4px 8px 25px;border-bottom:1px solid rgba(255,255,255,.12)}.school-badge>div{display:grid;min-width:0}.school-badge strong{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crest{background:var(--gold);color:#173e34;box-shadow:none}.steps nav{display:grid;gap:6px;margin-top:24px}.step{width:100%;background:transparent;color:#c4d5d0;border:0;border-radius:12px;padding:12px;display:flex;gap:12px;text-align:left;cursor:pointer}.step:hover,.step.active{background:rgba(255,255,255,.11);color:white}.step b{height:29px;width:29px;border-radius:9px;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;font-size:.8rem}.step.active b{background:var(--gold);color:#163b32;border-color:var(--gold)}.step>span{display:grid;font-size:.9rem;font-weight:750}.step small{font-weight:450;color:#a9c1ba;margin-top:3px}.tip{margin-top:auto;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);border-radius:14px;padding:14px;display:flex;gap:10px;font-size:.78rem;color:#bed0ca;line-height:1.5}.tip span{color:var(--gold);font-weight:900}.tip p{margin:0}.tip strong{color:white}.workspace{max-width:1240px;width:100%;padding:35px 5vw 70px}.workspace-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.workspace-head h1{font-size:clamp(1.6rem,3vw,2.35rem);margin:3px 0 5px;letter-spacing:-.04em}.workspace-head p{margin:0;color:var(--muted)}.eyebrow{color:var(--green)!important;font-size:.72rem;font-weight:900;letter-spacing:.16em}.progress-ring{width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--gold) 25%,#e3ebe8 0);display:grid;place-content:center;text-align:center;position:relative}.progress-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--bg)}.progress-ring strong,.progress-ring span{position:relative}.progress-ring strong{font-size:1.05rem}.progress-ring span{font-size:.64rem;color:var(--muted)}.panel{display:none}.panel.active{display:block;animation:fade .2s ease}@keyframes fade{from{opacity:.2;transform:translateY(5px)}}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px}.card-title{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:20px}.card h2{font-size:1.08rem;margin:0 0 4px}.card p{margin:0;color:var(--muted);font-size:.86rem}.pill{background:var(--mint);color:var(--green);padding:7px 10px;border-radius:99px;font-size:.72rem;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.wide{grid-column:1/-1}label{display:grid;gap:7px;font-size:.78rem;font-weight:800;color:#3b514b}input,select,textarea{width:100%;border:1px solid #cedcd7;border-radius:10px;background:#fbfdfc;padding:12px 13px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(19,134,110,.11)}textarea{resize:vertical;line-height:1.6}.days{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.day{border:1px solid var(--line);background:#fbfdfc;border-radius:11px;padding:13px 6px;text-align:center;cursor:pointer;font-weight:750;color:var(--muted)}.day.selected{border-color:var(--green);background:var(--mint);color:var(--green)}.day input{display:none}.period-row{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:flex;align-items:center;gap:10px}.period-row label{margin-right:auto}.counter{width:35px;height:35px;border-radius:9px;border:1px solid var(--line);background:white;font-size:1.3rem;cursor:pointer}.period-row strong{min-width:26px;text-align:center}.muted{color:var(--muted);font-size:.78rem;margin-left:10px}.panel-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.stats-row div{background:white;border:1px solid var(--line);padding:17px 20px;border-radius:14px;display:flex;justify-content:space-between;align-items:center}.stats-row span{color:var(--muted);font-size:.82rem}.stats-row strong{font-size:1.5rem;color:var(--green)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}th{text-align:left;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:10px;border-bottom:1px solid var(--line)}td{padding:9px 10px;border-bottom:1px solid #edf2f0;font-size:.84rem}td select,td input{padding:9px;font-size:.82rem}.remove{width:32px;height:32px;border:0;border-radius:8px;background:#fff0ef;color:#b73a31;font-weight:900;cursor:pointer}.allocation-summary{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem;padding-top:15px}.notice{display:flex;gap:13px;padding:14px 17px;background:#fff9e8;border:1px solid #f3dda0;border-radius:12px;font-size:.82rem;color:#6c5b27}.notice span{width:24px;height:24px;border-radius:50%;background:var(--gold);display:grid;place-items:center;font-weight:900;flex:none}.notice p{margin:2px 0}.result-toolbar{background:var(--green);color:white;border-radius:15px;padding:17px 20px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center}.result-toolbar>div:first-child{display:grid;grid-template-columns:auto 1fr}.result-toolbar .success-dot{grid-row:1/3;align-self:center;background:var(--gold);width:10px;height:10px}.result-toolbar small{grid-column:2;color:#bad5ce;margin-top:2px}.toolbar-buttons{display:flex;gap:9px}.filters{display:flex;align-items:end;justify-content:space-between}.filters label{min-width:260px}.print-heading{display:flex;align-items:center;gap:13px;padding-bottom:16px;border-bottom:2px solid var(--green);margin-bottom:8px}.print-heading h2{margin:0;font-size:1.25rem}.print-heading p{margin-top:3px}.timetable th,.timetable td{text-align:center;border:1px solid var(--line);padding:10px}.timetable th{background:#eaf4f0;color:var(--green)}.timetable td:first-child{font-weight:800;background:#fafcfb}.subject{font-weight:800;color:var(--ink)}.teacher{font-size:.7rem;color:var(--muted);margin-top:3px}.free{color:#a1afab}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:15px;font-size:.72rem;color:var(--muted)}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px}.toast{position:fixed;right:24px;bottom:24px;background:#173d34;color:white;padding:13px 17px;border-radius:11px;box-shadow:0 12px 32px rgba(0,0,0,.2);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;font-size:.84rem}.toast.show{opacity:1;transform:none}@media(max-width:850px){.topbar{padding:0 16px}.save-state{display:none}.app-shell{display:block}.steps{padding:12px 14px;position:sticky;top:76px;z-index:8}.school-badge,.tip,.step small{display:none}.steps nav{grid-template-columns:repeat(4,1fr);margin:0;gap:4px}.step{padding:9px 5px;justify-content:center}.step>span{font-size:.7rem}.workspace{padding:24px 16px 60px}.progress-ring{display:none}.form-grid,.two-col{grid-template-columns:1fr}.wide{grid-column:auto}.days{grid-template-columns:repeat(3,1fr)}.muted{display:none}.result-toolbar,.filters{align-items:stretch;flex-direction:column;gap:13px}.toolbar-buttons{display:grid;grid-template-columns:1fr 1fr}.filters label{min-width:0}.brand small{display:none}}@media(max-width:520px){.top-actions .ghost{display:none}.workspace-head h1{font-size:1.7rem}.workspace-head>div{max-width:100%}.step b{display:none}.step{font-size:.64rem}.card{padding:16px}.days{grid-template-columns:repeat(2,1fr)}.stats-row{grid-template-columns:1fr}.panel-actions{gap:8px}.panel-actions .button{flex:1;padding:11px 8px}.allocation-card .card-title{display:grid}.allocation-summary{display:grid;gap:5px}}@media print{body{background:white}.topbar,.steps,.workspace-head,.result-toolbar,.filters,.panel-actions{display:none!important}.app-shell{display:block}.workspace{padding:0;max-width:none}.panel{display:none!important}#result{display:block!important}.card{box-shadow:none;border:0;padding:0}.timetable{font-size:10px}.timetable th,.timetable td{padding:7px}.teacher{font-size:8px}}
