:root{--f45-red:#e31e24;--f45-blue:#002a5c;--f45-gray:#6b7280;--f45-white:#fff;--bg:#f8fafc;--text:#1f2937;--wknd-bg:color-mix(in srgb, var(--f45-blue) 8%, white);--card-bg:#fff;--card-border:color-mix(in srgb, var(--f45-gray) 25%, white);--muted:color-mix(in srgb, var(--f45-gray) 55%, white)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.header{z-index:20;border-bottom:1px solid var(--card-border);background:var(--bg);justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.actions{align-items:center;gap:8px;display:flex}.week{grid-template-columns:repeat(7,1fr);gap:8px;padding:12px;display:grid}.day{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;flex-direction:column;min-height:70vh;display:flex}.day.wknd{background:var(--wknd-bg)}.day .title{border-bottom:1px solid var(--card-border);padding:8px 10px;font-weight:600}.day .list{flex-direction:column;gap:8px;padding:8px;display:flex}.card{border:1px solid var(--card-border);background:#fff;border-radius:10px;flex-direction:column;gap:4px;padding:8px;display:flex}.card.alert{background:color-mix(in srgb, var(--f45-red) 8%, white);border-color:color-mix(in srgb, var(--f45-red) 40%, white);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--f45-red) 12%, transparent)}.card.subreq{background:color-mix(in srgb, var(--f45-blue) 6%, white);border-color:color-mix(in srgb, var(--f45-blue) 35%, white)}.card .meta{color:var(--muted);font-size:12px}.card .name{font-weight:600}.card .teacher{font-size:13px}.card .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}button,input,select{border:1px solid var(--card-border);color:var(--text);background:#fff;border-radius:8px;padding:6px 8px}button{cursor:pointer}button.primary{border-color:var(--f45-blue)}.badge{box-sizing:border-box;border:1px solid var(--card-border);height:24px;color:var(--text);background:#fff;border-radius:999px;align-items:center;padding:2px 6px;font-size:11px;line-height:1;display:inline-flex}.badge.warn{border-color:color-mix(in srgb, var(--f45-red) 45%, white);background:color-mix(in srgb, var(--f45-red) 8%, white)}.badge.info{border-color:color-mix(in srgb, var(--f45-blue) 45%, white);background:color-mix(in srgb, var(--f45-blue) 8%, white)}
