:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f2ee;--surface:#fff;--surface-muted:#eeeae5;--text:#303038;--muted:#6b6a70;--border:#25477024;--border-strong:#25477047;--accent:#ac162c;--on-accent:#fff;--brand-blue:#254770;--brand-gold:#dbb783;--ok-bg:#e5f2dc;--ok-text:#2c5c0e;--ok-border:#b4d79a;--warn-bg:#fcefd6;--warn-text:#7a4705;--warn-border:#efc16f;--bad-bg:#fbe5e4;--bad-text:#922121;--bad-border:#eda3a0;--radius:12px;--tabbar-height:0px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:linear-gradient(180deg, #fff 0, var(--bg) 28rem);margin:0}body.sheet-open{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}.muted,.row-detail,.meta,.hint,.footer-note,.status-line{color:var(--muted)}.text-ok{color:var(--ok-text)}.text-warn{color:var(--warn-text)}.grow{flex:1;min-width:0}.app{flex-direction:column;min-height:100dvh;display:flex}.app.has-tabs{--tabbar-height:calc(64px + env(safe-area-inset-bottom))}.topbar{z-index:20;padding:calc(9px + env(safe-area-inset-top)) 16px 9px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:5px solid var(--accent);border-bottom:1px solid var(--border);background:#ffffffeb;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;min-width:0;font-weight:600;display:flex}.kcs-lockup{width:min(250px,76vw);height:auto;display:block}.kcs-lockup.compact{flex:0 132px;width:132px;min-width:0}.product-name{border-left:1px solid var(--border-strong);color:var(--brand-blue);white-space:nowrap;padding-left:12px;font-family:Georgia,serif;font-size:16px}.product-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700}.topbar-actions{align-items:center;gap:6px;display:flex}.tools-link{color:var(--brand-blue);white-space:nowrap;padding:6px 4px;font-size:13px;font-weight:700;text-decoration:none}.tools-link:hover{text-decoration:underline}.topbar-actions .chip{white-space:nowrap;flex-shrink:0}@media (width<=440px){.kcs-lockup.compact{display:none}.product-name{border-left:0;padding-left:0;font-size:15px}.topbar{gap:8px}.tools-link{padding:6px 2px;font-size:12.5px}}@media (width<=380px){.kcs-lockup.compact{display:none}.product-name{border-left:0;padding-left:0}}.content{width:100%;max-width:720px;padding:12px 16px calc(var(--tabbar-height) + 24px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.tabbar{z-index:20;padding:6px 8px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);justify-content:center;display:flex;position:fixed;inset:auto 0 0}.tabbar button{max-width:160px;min-height:56px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.tabbar button.on{color:var(--accent);font-weight:700}.centered{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;max-width:420px;min-height:100dvh;margin:0 auto;padding:32px 24px;display:flex}.centered h1{color:var(--brand-blue);font-family:Georgia,serif;font-size:28px}.screen{flex-direction:column;gap:12px;display:flex}.screen-title{color:var(--brand-blue);letter-spacing:-.01em;font-family:Georgia,serif;font-size:28px;font-weight:700}.section-title{color:var(--muted);text-transform:none;margin:12px 2px -4px;font-size:14px;font-weight:600}.button{border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-weight:500;text-decoration:none;display:inline-flex}.button.primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.button.danger{color:var(--bad-text);border-color:var(--bad-border);background:var(--bad-bg)}.button.ghost{color:var(--muted);background:0 0;border-color:#0000}.button.small{min-height:34px;padding:0 12px;font-size:14px}.button.block{width:100%}.icon-button{width:40px;height:40px;color:var(--text);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-button:not(:disabled):active{background:var(--surface-muted)}.chip{border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;min-height:34px;padding:0 12px;font-size:14px}.chip.on{background:var(--accent);color:var(--on-accent);border-color:#0000}.chip-row{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.back-button,.link-button{text-align:left;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.back-button{color:var(--muted);align-self:flex-start;min-height:32px;font-size:15px}.link-button{color:inherit;min-width:0}.segmented{background:var(--surface-muted);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;font-weight:500}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.search{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:16px}.switch{background:var(--border-strong);border:0;border-radius:999px;flex:none;width:52px;height:32px;transition:background .15s;position:relative}.switch.on{background:#3b8a2a}.switch-thumb{background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on .switch-thumb{transform:translate(20px)}.badge,.pill,.grade-tag{white-space:nowrap;background:var(--surface-muted);color:var(--muted);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge.ok,.pill.ok{background:var(--ok-bg);color:var(--ok-text)}.badge.warn,.pill.warn{background:var(--warn-bg);color:var(--warn-text)}.badge.bad,.pill.bad{background:var(--bad-bg);color:var(--bad-text)}.pill{padding:4px 10px;font-size:13px}.grade-tag{font-weight:500}.banner{border-radius:var(--radius);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.banner.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.banner.bad{background:var(--bad-bg);color:var(--bad-text);border-color:var(--bad-border)}.empty{text-align:center;color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:20px}.status-line{text-align:center;padding:24px 0}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stats.four{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=520px){.stats.four{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.stat.ok .stat-value{color:var(--ok-text)}.stat.warn .stat-value{color:var(--warn-text)}.stat.bad .stat-value{color:var(--bad-text)}.toast-region{z-index:60;pointer-events:none;left:0;right:0;bottom:calc(var(--tabbar-height,0px) + 88px + env(safe-area-inset-bottom));justify-content:center;display:flex;position:fixed}.toast{background:var(--accent);max-width:calc(100% - 32px);color:var(--on-accent);border-radius:999px;padding:10px 16px;font-size:14px;box-shadow:0 6px 20px #0003}.toast.error{background:var(--bad-text);color:#fff}.date-bar{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:6px;display:flex}.date-label{background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:44px;display:flex;position:relative}.date-main{font-size:17px;font-weight:600}.date-sub{color:var(--muted);font-size:13px}.date-input{opacity:0;pointer-events:none;position:absolute;inset:0}.list{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);margin:0;padding:0;list-style:none;overflow:hidden}.list>li+li{border-top:1px solid var(--border)}.list>li.off{opacity:.6}.row-top{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.row-detail{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.row-button{text-align:left;background:0 0;border:0;flex-direction:column;gap:4px;width:100%;padding:12px 14px;display:flex}.plain-row{flex-direction:column;gap:6px;display:flex}.plain-row:not(:has(.row-button)){padding:12px 14px}.student-name{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;font-weight:600;display:inline-flex}.student-name .cn{color:var(--muted);font-weight:400}.check-row{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.check-row.flagged{background:color-mix(in srgb, var(--warn-bg) 35%, transparent)}.check-actions{grid-template-columns:1fr 1fr 48px;gap:8px;display:grid}.toggle{white-space:nowrap;border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:46px;padding:0 8px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.toggle.ok{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-border)}.toggle.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.toggle.bad{background:var(--bad-bg);color:var(--bad-text);border-color:var(--bad-border)}.toggle.square{color:var(--muted);padding:0}.toggle.wide{grid-column:span 2}.toggle.has-comment{color:var(--text);border-color:var(--accent)}.toggle:not(:disabled):active{transform:scale(.97)}.consequences{flex-wrap:wrap;gap:6px;display:flex}.consequence{border-radius:6px;padding:2px 8px;font-size:13px;font-weight:600}.consequence.warn{background:var(--warn-bg);color:var(--warn-text)}.consequence.bad{background:var(--bad-bg);color:var(--bad-text)}.comment-preview{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.grade-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}.grade-button{border:1px solid var(--border-strong);background:var(--surface);border-radius:16px;min-height:104px;font-size:20px;font-weight:600}.grade-button:active{transform:scale(.98)}.sticky-footer{bottom:calc(var(--tabbar-height) + 8px);z-index:10;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:6px;padding:10px;display:flex;position:sticky}.footer-note{text-align:center;font-size:13px}.owed-row{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.owed-row.done{background:color-mix(in srgb, var(--surface-muted) 50%, transparent)}.outcome-actions{grid-template-columns:1.4fr 1fr 1fr;gap:8px;display:grid}.toggle.primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.outcome-done{border-radius:10px;align-items:center;gap:8px;min-height:46px;padding:4px 6px 4px 12px;font-size:14px;display:flex}.outcome-done.ok{background:var(--ok-bg);color:var(--ok-text)}.outcome-done.warn{background:var(--warn-bg);color:var(--warn-text)}.outcome-text{overflow-wrap:anywhere;flex:1;min-width:0}.text-button{min-height:38px;color:inherit;text-underline-offset:3px;background:0 0;border:0;border-radius:8px;flex:none;padding:0 10px;font-weight:600;text-decoration:underline}.group-row{justify-content:space-between;gap:12px;padding:12px 14px;font-size:15px;display:flex}.filter-field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.group{flex-direction:column;display:flex}.group-title{justify-content:space-between;align-items:baseline;gap:12px;margin:8px 2px 6px;font-size:15px;font-weight:600;display:flex}.group-title span{color:var(--bad-text);white-space:nowrap;font-size:13px;font-weight:500}.row-end{flex:none;align-items:center;gap:6px;display:inline-flex}.assign-row{cursor:pointer;align-items:center;gap:12px;padding:10px 14px;display:flex}.assign-row input{width:22px;height:22px;accent-color:var(--accent);flex:none}.assign-text{flex-direction:column;gap:2px;min-width:0;display:flex}.footer-count{color:var(--muted);align-self:center;margin-right:auto;font-size:14px}.sheet-footer{flex-wrap:wrap;align-items:center}.sheet-footer .footer-count{flex:100%;order:-1}@media (width>=480px){.sheet-footer .footer-count{flex:1;order:0}}.date-row{align-items:center;gap:8px;padding-right:14px;display:flex}.date-row .row-button{flex:1}.date-row-day{align-items:center;gap:8px;font-weight:600;display:flex}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline li{border-top:1px solid var(--border);grid-template-columns:96px 1fr;gap:10px;padding:10px 0;display:grid}.timeline-date{color:var(--muted);padding-top:2px;font-size:13px}.timeline-body{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.sheet-backdrop{z-index:50;background:#0006;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;flex-direction:column;animation:.2s ease-out rise;display:flex}@media (width>=640px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}.sheet-header{justify-content:space-between;align-items:center;gap:12px;padding:14px 12px 6px 18px;display:flex}.sheet-header h2{font-size:18px}.sheet-body{flex-direction:column;gap:12px;padding:8px 18px 16px;display:flex;overflow-y:auto}.sheet-body>*{flex-shrink:0}.sheet-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.sheet-footer .button{flex:1;max-width:220px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.6;transform:translateY(24px)}}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:14px;display:flex}.field.nested{margin-left:30px}.input,.textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:44px;color:var(--text);border-radius:10px;padding:10px 12px;font-size:16px}.textarea{resize:vertical}.input:disabled{background:var(--surface-muted)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field-error{color:var(--bad-text);font-size:14px}.fieldset{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;margin:0;padding:8px 12px 12px;display:flex}.fieldset legend{color:var(--muted);padding:0 4px;font-size:14px}.check-field{align-items:flex-start;gap:10px;display:flex}.check-field input{width:20px;height:20px;accent-color:var(--accent);margin-top:2px}.check-field span{flex-direction:column;display:flex}.check-field small{color:var(--muted);font-size:13px}.room-button{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.room-button small,.room-code{color:var(--muted);font-size:12px;font-weight:600}.steps{grid-template-columns:1fr 1fr;gap:6px;margin:12px 0 14px;padding:0;list-style:none;display:grid}.steps button{border:1px solid var(--border,#d9dee5);width:100%;min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.steps b{background:var(--muted);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;display:inline-grid}.steps li.active button{border-color:var(--accent,#254770);color:var(--accent,#254770);box-shadow:inset 0 -3px 0 var(--accent,#254770)}.steps li.active b{background:var(--accent,#254770)}.steps li.done b{background:var(--ok-text)}.steps button:disabled{opacity:.55;cursor:not-allowed}.attendance-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.attendance-actions .toggle{justify-content:center}.toggle.plain{color:var(--muted);background:#fff}.toggle.muted{color:#5b4a78;background:#ece8f3;border-color:#cfc3e3}.toggle.selected{font-weight:800}.toggle.ok.selected{background:var(--ok-text);color:#fff;border-color:var(--ok-text)}.toggle.warn.selected{color:#fff;background:#c98a12;border-color:#c98a12}.toggle.bad.selected{background:var(--bad-text);color:#fff;border-color:var(--bad-text)}.toggle.muted.selected{color:#fff;background:#6d55a0;border-color:#6d55a0}.room-screen{--tt-navy:#17243b;--tt-ink:#22364f;--tt-red:#b51e35;--tt-red-deep:#971c31;--tt-line:#dce3e9;--tt-soft:#f4f6f9;--tt-muted:#6f7d8e;--tt-gold:#e6b722;gap:14px}.app:has(.room-screen){background:#f2f5f7}.room-screen .eyebrow,.quick-from{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;font-size:11px;font-weight:800}.room-hero{border:1px solid var(--tt-line);background:#fff;border-radius:18px;flex-direction:column;gap:8px;padding:16px 18px 18px;display:flex;box-shadow:0 12px 35px #1824370f}.room-hero .back-button{margin:-4px 0 2px}.room-hero .screen-title{color:var(--tt-ink);letter-spacing:-.035em;font-family:inherit;font-size:30px;line-height:1.1}.room-hero .date-bar{background:var(--tt-soft);border-color:#0000;margin-top:6px}.room-hero .date-main{color:var(--tt-ink)}.room-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.room-card{text-align:left;min-height:118px;color:var(--tt-ink);background:#fff;border:2px solid #dbe2e8;border-radius:15px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;transition:border-color .15s,background .15s,transform .1s;display:flex}.room-card:hover,.room-card:focus-visible{border-color:var(--tt-red);background:#fffafb}.room-card:active{transform:scale(.98)}.room-card strong{letter-spacing:-.02em;font-size:19px}.room-card small{color:var(--tt-red-deep);align-items:center;gap:2px;margin-top:auto;font-size:13px;font-weight:700;display:inline-flex}.room-code-pill{color:#9e1c31;background:#f7e8eb;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800}.room-code-pill.quiet{color:var(--tt-muted);background:#eef2f6}.room-screen .steps{gap:8px;margin:0}.room-screen .steps button{border:1px solid var(--tt-line);min-height:48px;color:var(--tt-muted);background:#fff;border-radius:12px;padding:4px 8px;line-height:1.15;box-shadow:0 4px 14px #1824370a}.room-screen .steps li.active button{border-color:var(--tt-navy);background:var(--tt-navy);color:#fff;box-shadow:0 8px 20px #17243b38}.room-screen .steps li.active b{color:var(--tt-navy);background:#fff}.room-screen .meta,.room-screen .hint{padding:0 2px;font-size:14px}.room-screen .list{background:0 0;border:0;border-radius:0;gap:10px;display:grid;overflow:visible}@media (width>=700px){.room-screen .list{grid-template-columns:1fr 1fr}}.room-screen .list>li+li{border-top:0}.student-card{border:1px solid var(--tt-line);background:#fff;border-radius:14px;gap:11px;padding:13px 14px;transition:box-shadow .18s,border-color .18s,background .18s;box-shadow:0 4px 14px #1824370a}.student-card .row-top{justify-content:flex-start;gap:10px}.initials{background:linear-gradient(145deg, #2c4a72, var(--tt-navy));color:#fff;letter-spacing:.02em;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:grid}.card-name{flex-direction:column;min-width:0;display:flex}.card-name .student-name{color:var(--tt-ink);font-size:16px}.card-name small{color:var(--tt-muted);font-size:12.5px}.room-screen .attendance-actions{gap:7px}.room-screen .attendance-actions .toggle{border-radius:10px;min-height:44px;font-size:13.5px;font-weight:800}.room-screen .toggle[data-choice=intime]{color:#27704a;background:#eaf6ee;border-color:#c5e3cf}.room-screen .toggle[data-choice=late]{color:#8a621a;background:#fff5dd;border-color:#f0dba6}.room-screen .toggle[data-choice=absent]{color:var(--tt-red-deep);background:#fdecef;border-color:#f1c5cd}.room-screen .toggle[data-choice=personal]{color:#3d5a8c;background:#eaf1fb;border-color:#c6d6ee}.room-screen .toggle[data-choice=intime].selected{color:#fff;background:#2f8a5b;border-color:#2f8a5b}.room-screen .toggle[data-choice=late].selected{color:#fff;background:#d29a22;border-color:#d29a22}.room-screen .toggle[data-choice=absent].selected{color:#fff;background:#c0364c;border-color:#c0364c}.room-screen .toggle[data-choice=personal].selected{color:#fff;background:#4a6fb0;border-color:#4a6fb0}.student-card[data-status=intime]{background:#f3faf5;border-color:#2f8a5b;box-shadow:0 0 0 2px #2f8a5b40,0 0 14px #2f8a5b38}.student-card[data-status=late]{background:#fffaec;border-color:#d29a22;box-shadow:0 0 0 2px #d29a2240,0 0 14px #d29a2238}.student-card[data-status=absent]{background:#fef5f6;border-color:#c0364c;box-shadow:0 0 0 2px #c0364c38,0 0 14px #c0364c33}.student-card[data-status=personal],.student-card[data-status=illness]{background:#f4f7fd;border-color:#4a6fb0;box-shadow:0 0 0 2px #4a6fb038,0 0 14px #4a6fb033}.room-screen .check-actions .toggle{border-radius:10px;min-height:46px;font-weight:800}.room-screen .check-actions .toggle.ok{color:#27704a;background:#eaf6ee;border-color:#c5e3cf}.room-screen .check-actions .toggle.warn{color:#fff;background:#d29a22;border-color:#d29a22}.room-screen .check-actions .toggle.bad{color:#fff;background:#c0364c;border-color:#c0364c}.room-screen .check-actions .toggle.square{border-color:var(--tt-line);color:var(--tt-muted);background:#fff}.room-screen .check-actions .toggle.has-comment{border-color:var(--tt-navy);color:var(--tt-navy);background:#eef2f8}.room-screen .student-card.flagged{background:#fef5f6;border-color:#f1c5cd;box-shadow:0 0 0 2px #c0364c24}.room-screen .consequence{border-radius:999px;padding:3px 10px;font-size:12.5px}.room-screen .comment-preview{background:var(--tt-soft);border-left:3px solid var(--tt-navy);color:#3b4d63;border-radius:9px;padding:8px 10px;font-size:13.5px}.room-screen .sticky-footer{border-color:var(--tt-line);background:#fffffff0;border-radius:16px;box-shadow:0 -6px 28px #1824371f}.room-screen .sticky-footer .button.primary{background:var(--tt-navy);min-height:48px;font-weight:800}.room-screen .sticky-footer .button:not(.primary){color:var(--tt-ink);font-weight:700}.quick-pair{border:1px solid var(--tt-line,#dce3e9);background:#fff;border-radius:999px;flex:none;margin-left:auto;display:inline-flex;overflow:hidden;box-shadow:0 2px 6px #1824370f}.quick-pair button{background:0 0;border:0;width:38px;height:34px;font-size:19px;font-weight:800;line-height:1}.quick-plus{color:#8a6a06}.quick-plus:hover,.quick-plus:focus-visible{background:#fff6d8}.quick-minus{color:#b51e35;border-left:1px solid #dce3e9!important}.quick-minus:hover,.quick-minus:focus-visible{background:#fdecef}.quick-from{color:#7a8799;margin-top:-6px}.quick-tabs{background:#eef2f6;border-radius:13px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.quick-tabs button{color:#536279;background:0 0;border:0;border-radius:10px;min-height:42px;font-weight:800}.quick-tabs button.on[data-tab=house]{color:#fff;background:#17243b;box-shadow:0 6px 16px #17243b40}.quick-tabs button.on[data-tab=conduct]{color:#fff;background:#b51e35;box-shadow:0 6px 16px #b51e3540}.house-tiles{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.house-tile{color:#fff;background:#17243b;border:2px solid #d6dee5;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:92px;transition:background .15s,border-color .15s,transform .1s;display:flex}.house-tile svg{color:#efbe2e}.house-tile strong{font-size:24px;line-height:1}.house-tile span{color:#d5dce7;font-size:12px}.house-tile:hover{background:#253655}.house-tile.on{background:#253655;border-color:#e6b722;box-shadow:0 0 0 3px #e6b72259}.house-tile:active{transform:scale(.97)}.conduct-tiles{grid-template-columns:1fr 1fr;gap:9px;display:grid}.conduct-tile{text-align:left;color:#172033;background:#fff;border:2px solid #dbe2e8;border-radius:14px;min-height:84px;padding:12px;position:relative}.conduct-tile strong{padding-right:44px;font-size:14px;line-height:1.25;display:block}.conduct-tile .point-badge{color:#9e1c31;text-align:center;background:#f7e8eb;border-radius:999px;min-width:36px;padding:4px 7px;font-size:12.5px;font-weight:900;position:absolute;top:9px;right:9px}.conduct-tile:hover{background:#fffafb;border-color:#b51e35}.conduct-tile.on{background:#fff1f3;border-color:#b51e35;box-shadow:0 0 0 3px #b51e3526}.conduct-tile.on .point-badge{color:#fff;background:#b51e35}.quick-note-label{color:#526075;margin-bottom:-6px;font-size:13px;font-weight:800}.quick-note{border:2px solid #cad3dd;border-radius:11px}.quick-note:focus{border-color:#b51e35;outline:0;box-shadow:0 0 0 4px #b51e3521}.button.full-flow{color:#254770;font-weight:700}.button.give-button{color:#fff;white-space:nowrap;border:0;padding:0 12px;font-weight:800}.sheet-footer .button.full-flow,.sheet-footer .button.give-button{min-height:48px}.button.give-button.house{background:#17243b}.button.give-button.conduct{background:#b51e35}
