*{box-sizing:border-box}body{font-family:Inter,system-ui,sans-serif}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:18px;box-shadow:0 8px 30px rgba(15,23,42,.05)}.stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.stat span{display:block;font-size:12px;color:#64748b}.stat b{font-size:28px}.btn-primary,.btn-secondary,.quick{border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700}.btn-primary{background:#2563eb;color:#fff}.btn-secondary{background:#f8fafc;border:1px solid #e2e8f0;color:#334155}.quick{background:#f8fafc;border:1px solid #e2e8f0;text-align:left}.input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:9px 11px;outline:0;background:#fff}.input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa22}.field-label{display:block;font-size:11px;font-weight:700;color:#475569;margin-bottom:5px}.section-title{font-weight:800;font-size:16px}.modal{display:none;position:fixed;inset:0;background:#02061799;z-index:80;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-card{background:#fff;width:min(760px,100%);max-height:90vh;overflow:auto;border-radius:18px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h3{font-size:20px;font-weight:800}.modal-head button{font-size:30px;color:#64748b}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1050px}.day-head{padding:12px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#f8fafc}.day-head .d{font-size:12px;color:#64748b}.day-head .n{font-size:17px;font-weight:800}.day-cell{min-height:360px;padding:8px;border-right:1px solid #e2e8f0}.session{border-left:4px solid #2563eb;background:#eff6ff;border-radius:10px;padding:9px;margin-bottom:8px;cursor:pointer}.session:hover{background:#dbeafe}.session .time{font-weight:800;font-size:12px;color:#1d4ed8}.session .course{font-weight:800;font-size:13px}.session .meta{font-size:11px;color:#475569;margin-top:3px}.empty{height:80px;border:1px dashed #cbd5e1;border-radius:10px;display:grid;place-items:center;color:#94a3b8;font-size:12px;cursor:pointer}.pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;margin:3px}.free{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.busy{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}