:root{font-family:Avenir Next,Segoe UI,sans-serif;color:#132238;background:radial-gradient(circle at top left,rgba(238,144,64,.2),transparent 28%),radial-gradient(circle at top right,rgba(25,85,164,.14),transparent 34%),linear-gradient(180deg,#f4f0e8,#eef3f7);line-height:1.5;font-weight:400;--panel: rgba(255, 255, 255, .78);--panel-border: rgba(19, 34, 56, .08);--ink-soft: rgba(19, 34, 56, .68);--accent: #1955a4;--accent-soft: rgba(25, 85, 164, .12);--warn: #f08d21;--danger: #8d4a00;--success: #2d8b57;--shadow: 0 22px 60px rgba(19, 34, 56, .09)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea{font:inherit}button{border:0;border-radius:999px;padding:.8rem 1.2rem;background:linear-gradient(135deg,#1955a4,#256dcd);color:#fff;cursor:pointer;transition:transform .16s ease,opacity .16s ease}button:hover{transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button.secondary{background:#13223814;color:#132238}input,textarea{width:100%;border:1px solid rgba(19,34,56,.12);border-radius:16px;padding:.9rem 1rem;background:#ffffffdb;color:#132238}textarea{resize:vertical}label{display:grid;gap:.45rem;color:var(--ink-soft);font-size:.95rem}pre{margin:0;white-space:pre-wrap;font-family:SF Mono,Fira Code,monospace}.app-shell{padding:2rem}.hero{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-size:.78rem;margin:0 0 .3rem}.hero h1{font-size:clamp(2.2rem,5vw,4rem);line-height:.95;margin:0}.hero-copy{max-width:60rem;color:var(--ink-soft);margin:.75rem 0 0}.hero-meta{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.meta-chip,.cdd-chip,.attendance-pill{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.4rem .8rem;background:#13223814;color:#132238;font-size:.85rem}.cdd-chip.overdue{background:#f08d212e;color:var(--danger)}.cdd-chip.today{background:#5d47a42e;color:#5d47a4}.cdd-chip.upcoming{background:#2d8b5729;color:var(--success)}.layout-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:1rem}.panel{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow);border-radius:28px;padding:1.2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.settings-panel{grid-row:span 2}.panel-heading{margin-bottom:1rem}.panel-heading h2,.student-card h3{margin:0}.panel-heading p,.student-card p,.meta-note,.status-text,.warning-text,.error-text{margin:.35rem 0 0;color:var(--ink-soft)}.split-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.actions-row{display:flex;gap:.6rem;flex-wrap:wrap}.checkbox-row{display:flex;align-items:center;gap:.75rem}.checkbox-row input{width:auto}.warning-text{color:#7f5208}.error-text{color:#9d2437}.table-scroll{overflow:auto}.table-scroll table{width:100%;border-collapse:collapse}.table-scroll th,.table-scroll td{padding:.85rem .6rem;border-bottom:1px solid rgba(19,34,56,.08);text-align:left;vertical-align:top}.table-scroll td span{display:block;color:var(--ink-soft);font-size:.9rem}.selected-row{background:#1955a414}.session-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.75rem;margin-bottom:1rem}.session-card{border-radius:22px;padding:.95rem;min-height:96px;text-align:left;background:#ffffffdb;color:#132238;border:1px solid rgba(19,34,56,.08)}.session-card.active{background:linear-gradient(135deg,#1955a429,#f08d2129)}.session-card.overdue{box-shadow:inset 0 0 0 1px #f08d2166}.session-card span,.session-card small{display:block}.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.85rem}.student-card{background:#ffffffb8;border-radius:22px;padding:1rem;border:1px solid rgba(19,34,56,.08)}.student-card__header{display:flex;justify-content:space-between;gap:1rem}.attendance-pill.ok{background:#2d8b5724;color:var(--success)}.attendance-pill.muted{background:#13223814}.comment-snippet{min-height:3.4rem}.preview-box{margin-top:.9rem;padding:.9rem;border-radius:18px;background:#1322380a}.preview-title{font-weight:700;color:#132238}@media(max-width:1080px){.layout-grid{grid-template-columns:1fr}.settings-panel{grid-row:auto}}@media(max-width:760px){.app-shell{padding:1rem}.hero,.split-heading{flex-direction:column}.hero-meta{justify-content:flex-start}}
