:root{--ink:#1f2937;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc;--card:#fff;--brand:#4f46e5;--brand-dark:#4338ca;--danger:#b91c1c;--warn-bg:#fef3c7;--warn-ink:#78350f}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{margin:0 0 .5rem;font-size:1.6rem;line-height:1.2}h2{margin:0 0 .75rem;font-size:1.15rem}p{margin:0 0 1rem}.brand,a{color:var(--brand)}.page{max-width:28rem;margin:0 auto;padding:2rem 1rem}.brand{font-size:1.1rem;font-weight:700;text-decoration:none}.hint,.lead{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:1rem;padding:1.25rem}label{margin-bottom:.9rem;font-size:.9rem;font-weight:600}.hint,input,label,select{display:block}.hint{font-size:.85rem;font-weight:400}input,select{width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:8px;margin-top:.3rem;padding:.65rem .75rem;font-weight:400}a:focus-visible,button:focus-visible,input:focus,select:focus{outline:2px solid var(--brand);outline-offset:1px}.check{align-items:flex-start;gap:.6rem;font-weight:400;display:flex}.check input{width:auto;margin-top:.3rem}.button,button{font:inherit;text-align:center;color:#fff;background:var(--brand);border:1px solid var(--brand);cursor:pointer;border-radius:8px;padding:.65rem 1rem;font-weight:600;text-decoration:none;display:inline-block}.button:hover,button:hover{background:var(--brand-dark)}button:disabled{opacity:.55;cursor:not-allowed}.wide{width:100%;display:block}.ghost{color:var(--brand);background:0 0;border-color:#c7d2fe}.ghost:hover,.secret{background:#eef2ff}.row{flex-wrap:wrap;gap:.5rem;display:flex}.error{color:var(--danger);font-size:.95rem}.secret{word-break:break-all;border-radius:8px;margin:.5rem 0 1rem;padding:.9rem;font:600 1.15rem ui-monospace,Menlo,Consolas,monospace;display:block}.foot,.secret{text-align:center}.foot{color:var(--muted);padding:1rem;font-size:.8rem}.foot a{color:inherit}.topbar{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.link,.topbar .who{color:var(--muted);font-size:.85rem}.link{background:0 0;border:0;padding:.25rem .4rem;font-weight:400;text-decoration:underline}.link:hover{color:var(--ink);background:0 0}.agenda{max-width:72rem;margin:0 auto;padding:.75rem 1rem 1rem}.notes,.pills{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.pill{color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:.3rem .75rem;font-size:.9rem;font-weight:500}.pill:hover{background:#f1f5f9}.pill[aria-pressed=true]{color:#fff;background:var(--pill,var(--ink));border-color:var(--pill,var(--ink))}.fc,.notes{font-size:.85rem}.note{background:#e0e7ff;border-radius:6px;padding:.2rem .6rem}.note.warn{color:var(--warn-ink);background:var(--warn-bg)}.calendar-box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.5rem}.fc{--fc-button-bg-color:#fff;--fc-button-text-color:var(--ink);--fc-button-border-color:#cbd5e1;--fc-button-hover-bg-color:#f1f5f9;--fc-button-hover-border-color:#cbd5e1;--fc-button-active-bg-color:var(--brand);--fc-button-active-border-color:var(--brand);--fc-today-bg-color:#eef2ff}.fc .fc-button,.fc .fc-event-title{font-weight:500}.fc .fc-button-active{color:#fff!important}.fc .fc-toolbar-title{text-transform:capitalize;font-size:1.05rem}.fc .fc-toolbar.fc-header-toolbar{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.fc .fc-bg-event{opacity:.55}.nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.25rem;display:flex}.nav a{color:var(--muted);padding:.25rem .4rem;font-size:.85rem}.note button{color:inherit;font-size:inherit;border:0;margin-left:.35rem;padding:0;font-weight:400;text-decoration:underline}.note button,.note button:hover{background:0 0}.add{z-index:5;border-radius:999px;padding:.75rem 1.1rem;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 14px #0f172a40}dialog{width:calc(min(32rem,100vw - 1.5rem));max-height:calc(100dvh - 1.5rem);color:inherit;border:0;border-radius:12px;padding:1.25rem;box-shadow:0 20px 50px #0f172a4d}dialog::backdrop{background:#0f172a73}.grid2{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.child,.spread{justify-content:space-between}.danger{color:var(--danger);background:0 0;border-color:#fecaca}.danger:hover{background:#fef2f2}fieldset{border:1px solid var(--line);border-radius:8px;margin:0 0 .9rem;padding:.6rem .8rem}legend{padding:0 .25rem;font-size:.9rem;font-weight:600}.choices{flex-wrap:wrap;gap:.25rem .9rem;display:flex}.choices label{align-items:center;gap:.35rem;margin:0;font-weight:400;display:flex}.choices input{width:auto;margin:0}.meta{color:var(--muted);font-size:.85rem}.wide-page{max-width:56rem;margin:0 auto;padding:1rem}.child{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.dot{border-radius:50%;width:.8rem;height:.8rem;margin-right:.4rem;display:inline-block}input[type=color]{height:2.6rem;padding:.15rem}.lesson-line{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:.6rem;padding:.75rem}.lesson-line.alert{background:#fffbeb;border-color:#f59e0b}.lesson-line label{margin-bottom:.5rem;font-size:.8rem}.lesson-line input,.lesson-line select{padding:.4rem .5rem}.lesson-grid{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:0 .5rem;display:grid}.lesson-grid .subject{grid-column:span 2}.alert-text{color:var(--warn-ink);margin:0 0 .4rem;font-size:.85rem}.sticky{background:var(--bg);padding:.6rem 0;position:sticky;bottom:0}@media print{.no-print{display:none!important}}
