:root{color-scheme:light dark;--space-3xs: 2px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--space-3xl: 96px;--space-4xl: 144px;--text-xs: .8125rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.266rem;--text-2xl: 1.424rem;--text-3xl: 1.602rem;--text-display-s: 1.424rem;--text-display: 1.602rem;--text-section: 1.125rem;--text-title: 1rem;--text-lead: 1rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--dur-decay: 1.2s;--container: 1120px;--container-narrow: 30rem;--gutter: 40px;--gap-columns: 24px;--z-base: 1;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-sticky-nav: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--control-h: 40px;--control-h-s: 32px;--hit: 44px;--radius-card: 6px;--radius-control: 4px;--radius-pill: 999px;--rule-hair: 1px;--shadow-card: none;--tracking-display: -.01em;--font-body: "IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", ui-sans-serif, sans-serif;--font-display: var(--font-body);--font-outlier: "Hahmlet", "Nanum Myeongjo", ui-serif, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--decay: 0%;--fresh-paper: oklch(97.6% .007 120);--fresh-paper-2: oklch(95.2% .01 122);--fresh-paper-3: oklch(92.4% .013 124);--fresh-ink: oklch(21% .022 145);--fresh-ink-2: oklch(35% .018 140);--fresh-muted: oklch(49% .014 135);--fresh-rule: oklch(86.5% .012 125);--fresh-accent: oklch(44% .115 143);--fresh-signal: oklch(80% .15 92);--rot-paper: oklch(85% .014 68);--rot-paper-2: oklch(81.5% .016 64);--rot-paper-3: oklch(77.5% .018 60);--rot-ink: oklch(19% .014 40);--rot-ink-2: oklch(31% .016 40);--rot-muted: oklch(42% .016 45);--rot-rule: oklch(70% .02 55);--rot-accent: oklch(42% .125 28);--rot-signal: oklch(66% .11 60);--accent-ink: oklch(98.5% .006 110);--grade-1-bg: oklch(99% .022 100);--grade-1-ink: oklch(22% .02 100);--grade-2-bg: oklch(41% .125 140);--grade-2-ink: oklch(98% .01 140);--grade-3-bg: oklch(27% .11 268);--grade-3-ink: oklch(97% .01 268);--grade-staff-bg: var(--color-paper-3);--grade-staff-ink: var(--color-ink);--fresh-error: oklch(50% .19 27);--rot-error: oklch(45% .17 25);--fresh-success: oklch(46% .11 150);--rot-success: oklch(44% .06 120)}[data-mode=dark]{--fresh-paper: oklch(17% .012 145);--fresh-paper-2: oklch(20.5% .014 145);--fresh-paper-3: oklch(24% .016 145);--fresh-ink: oklch(93% .01 120);--fresh-ink-2: oklch(82% .012 125);--fresh-muted: oklch(68% .014 130);--fresh-rule: oklch(31% .016 140);--fresh-accent: oklch(72% .12 143);--fresh-signal: oklch(82% .13 92);--rot-paper: oklch(12.5% .009 40);--rot-paper-2: oklch(15.5% .011 40);--rot-paper-3: oklch(18.5% .013 38);--rot-ink: oklch(84% .014 60);--rot-ink-2: oklch(74% .014 55);--rot-muted: oklch(62% .014 50);--rot-rule: oklch(27% .016 40);--rot-accent: oklch(66% .125 30);--rot-signal: oklch(70% .1 60);--accent-ink: oklch(16% .02 140);--fresh-error: oklch(70% .15 27);--rot-error: oklch(68% .14 25);--fresh-success: oklch(72% .11 150);--rot-success: oklch(68% .06 120)}@media(prefers-color-scheme:dark){:root:not([data-mode]){--fresh-paper: oklch(17% .012 145);--fresh-paper-2: oklch(20.5% .014 145);--fresh-paper-3: oklch(24% .016 145);--fresh-ink: oklch(93% .01 120);--fresh-ink-2: oklch(82% .012 125);--fresh-muted: oklch(68% .014 130);--fresh-rule: oklch(31% .016 140);--fresh-accent: oklch(72% .12 143);--fresh-signal: oklch(82% .13 92);--rot-paper: oklch(12.5% .009 40);--rot-paper-2: oklch(15.5% .011 40);--rot-paper-3: oklch(18.5% .013 38);--rot-ink: oklch(84% .014 60);--rot-ink-2: oklch(74% .014 55);--rot-muted: oklch(62% .014 50);--rot-rule: oklch(27% .016 40);--rot-accent: oklch(66% .125 30);--rot-signal: oklch(70% .1 60);--accent-ink: oklch(16% .02 140);--fresh-error: oklch(70% .15 27);--rot-error: oklch(68% .14 25);--fresh-success: oklch(72% .11 150);--rot-success: oklch(68% .06 120)}}[data-stage="0"],[data-stage="1"]{--decay: 0%}[data-stage="2"]{--decay: 8%}[data-stage="3"]{--decay: 16%}[data-stage="4"]{--decay: 26%}[data-stage="5"]{--decay: 40%}[data-stage="6"]{--decay: 52%}[data-stage="7"]{--decay: 64%}[data-stage="8"]{--decay: 76%}[data-stage="9"]{--decay: 88%}[data-stage="10"],[data-stage="11"],[data-stage="12"]{--decay: 100%}:root,[data-mode],[data-stage]{--color-paper: color-mix(in oklch, var(--fresh-paper), var(--rot-paper) var(--decay));--color-paper-2: color-mix(in oklch, var(--fresh-paper-2), var(--rot-paper-2) var(--decay));--color-paper-3: color-mix(in oklch, var(--fresh-paper-3), var(--rot-paper-3) var(--decay));--color-ink: color-mix(in oklch, var(--fresh-ink), var(--rot-ink) var(--decay));--color-ink-2: color-mix(in oklch, var(--fresh-ink-2), var(--rot-ink-2) var(--decay));--color-muted: color-mix(in oklch, var(--fresh-muted), var(--rot-muted) var(--decay));--color-rule: color-mix(in oklch, var(--fresh-rule), var(--rot-rule) var(--decay));--color-accent: color-mix(in oklch, var(--fresh-accent), var(--rot-accent) var(--decay));--color-signal: color-mix(in oklch, var(--fresh-signal), var(--rot-signal) var(--decay));--color-accent-ink: var(--accent-ink);--color-focus: var(--color-accent);--color-error: color-mix(in oklch, var(--fresh-error), var(--rot-error) var(--decay));--color-success: color-mix(in oklch, var(--fresh-success), var(--rot-success) var(--decay))}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.55;-webkit-font-smoothing:antialiased;caret-color:var(--color-accent)}::selection{background:color-mix(in oklab,var(--color-accent) 22%,transparent);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.16em}h1,h2,h3{margin:0;font-family:var(--font-display);font-synthesis:none;overflow-wrap:break-word;min-width:0;text-wrap:balance}p{margin:0;text-wrap:pretty}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);box-sizing:border-box}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}[data-slot]{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--color-paper-2, var(--color-paper)),var(--color-paper-3, var(--color-paper)))}[data-slot]>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media(max-width:60rem){:root{--gutter: 24px;--section-gap-s: 80px;--section-gap: 96px;--section-gap-l: 120px}}@media(max-width:40rem){:root{--gutter: 16px;--section-gap-s: 56px;--section-gap: 72px;--section-gap-l: 96px;--gap-columns: 16px}}@media(prefers-reduced-motion:reduce){*:not(.keep-motion),*:not(.keep-motion):before,*:not(.keep-motion):after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{min-height:100dvh;display:flex;flex-direction:column;transition:background-color var(--dur-decay) var(--ease-in-out),color var(--dur-decay) var(--ease-in-out)}#root{flex:1;display:flex;flex-direction:column}.container{padding-inline:var(--gutter)}.narrow{max-width:var(--container-narrow);margin-inline:auto;width:100%}.topbar{position:sticky;top:0;z-index:var(--z-sticky-nav);background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule)}.topbar__inner{display:flex;align-items:center;gap:var(--space-md);min-height:64px}.wordmark{display:flex;align-items:baseline;gap:var(--space-xs);text-decoration:none;color:var(--color-ink);min-width:0;min-height:var(--hit);padding-block:var(--space-xs)}.wordmark__school{font-family:var(--font-outlier);font-weight:700;font-size:var(--text-xl);letter-spacing:var(--tracking-display);white-space:nowrap}.wordmark__app{font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap}.topbar__clock{font-size:var(--text-sm);color:var(--color-ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.topbar__spacer{flex:1}.topbar__actions{display:flex;align-items:center;gap:var(--space-2xs)}.navlinks{display:flex;gap:var(--space-2xs);overflow-x:auto;scrollbar-width:none}.navlink{display:inline-flex;align-items:center;min-height:var(--hit);padding-inline:var(--space-sm);color:var(--color-ink-2);text-decoration:none;font-size:var(--text-sm);border-radius:var(--radius-control);white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.navlink:hover{background:var(--color-paper-2);color:var(--color-ink)}.navlink[aria-current=page]{color:var(--color-accent);background:var(--color-paper-2)}.subnav{border-bottom:var(--rule-hair) solid var(--color-rule);background:var(--color-paper)}@media(max-width:40rem){.topbar__inner{min-height:56px;gap:var(--space-xs)}.wordmark__app{display:none}.wordmark__school{font-size:var(--text-lg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--control-h);padding:0 var(--space-md);border-radius:var(--radius-control);border:var(--rule-hair) solid transparent;font-size:var(--text-sm);font-weight:600;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;position:relative;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.btn:after{content:"";position:absolute;inset:calc((var(--control-h) - var(--hit)) / 2) 0}.btn--primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn--primary:hover,.btn--primary.is-hover{background:color-mix(in oklch,var(--color-accent),var(--color-ink) 18%)}.btn--secondary{background:transparent;color:var(--color-ink);border-color:var(--color-rule)}.btn--secondary:hover,.btn--secondary.is-hover{background:var(--color-paper-2);border-color:var(--color-muted)}.btn--quiet{background:transparent;color:var(--color-ink-2)}.btn--quiet:hover,.btn--quiet.is-hover{background:var(--color-paper-2);color:var(--color-ink)}.btn--danger{background:transparent;color:var(--color-error);border-color:color-mix(in oklch,var(--color-error),var(--color-paper) 55%)}.btn--danger:hover{background:color-mix(in oklch,var(--color-error),var(--color-paper) 90%)}.btn:active,.btn.is-active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn[aria-busy=true]{cursor:progress}.btn--small{min-height:var(--control-h-s);padding:0 var(--space-sm)}.btn--block{width:100%}.field{display:grid;gap:var(--space-2xs)}.field__label{font-size:var(--text-sm);font-weight:600;color:var(--color-ink)}.field__help{font-size:var(--text-xs);color:var(--color-muted);min-height:1lh}.field__help--error{color:var(--color-error)}.input,.select,.textarea{width:100%;min-height:var(--control-h);padding:var(--space-xs) var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-md);transition:border-color var(--dur-micro) var(--ease-out)}.input:hover,.select:hover,.textarea:hover{border-color:var(--color-muted)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px}.input[aria-invalid=true]{border-color:var(--color-error)}.input:disabled,.select:disabled{opacity:.55;cursor:not-allowed}.input--num{width:5.5rem;font-variant-numeric:tabular-nums}.checkbox{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:var(--hit);cursor:pointer;font-size:var(--text-sm)}.checkbox input{width:18px;height:18px;accent-color:var(--color-accent)}.checkbox input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(max-width:40rem){.btn{min-height:var(--hit)}}.page{padding-block:var(--space-xl) var(--space-2xl);display:grid;gap:var(--space-xl);align-content:start}.page__head{display:grid;gap:var(--space-xs)}.page__title{font-size:var(--text-2xl);font-weight:700;line-height:1.25}.page__lead{color:var(--color-ink-2);max-width:60ch}.section{display:grid;gap:var(--space-md);align-content:start}.section__title{font-size:var(--text-section);font-weight:700}.row{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.row--end{justify-content:flex-end}.stack{display:grid;gap:var(--space-md)}.muted{color:var(--color-muted)}.small{font-size:var(--text-sm)}.well{background:var(--color-paper-2);border-radius:var(--radius-card);padding:var(--space-lg)}.panel{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);padding:var(--space-lg);background:var(--color-paper)}.notice{border:var(--rule-hair) solid var(--color-rule);padding:var(--space-sm) var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-control);font-size:var(--text-sm)}.notice--error{border-color:color-mix(in oklch,var(--color-error),var(--color-paper) 40%);color:var(--color-error)}.code{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:600;letter-spacing:.08em;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:var(--space-2xs);border-bottom:var(--rule-hair) solid var(--color-rule);overflow-x:auto;scrollbar-width:none}button.tab{background:none;border:0;border-bottom:2px solid transparent;font:inherit;font-size:var(--text-sm);cursor:pointer}.tab{display:inline-flex;gap:var(--space-2xs);align-items:center;min-height:var(--hit);padding-inline:var(--space-md);color:var(--color-ink-2);text-decoration:none;font-size:var(--text-sm);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.tab:hover{color:var(--color-ink)}.tab[aria-current=page]{color:var(--color-ink);border-bottom-color:var(--color-accent);font-weight:600}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-weight:600;color:var(--color-muted);padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);white-space:nowrap}.table td{padding:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);vertical-align:middle}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tr:hover td{background:color-mix(in oklch,var(--color-paper-2),transparent 40%)}@media(max-width:48rem){.table--stack thead{display:none}.table--stack tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2xs) var(--space-sm);padding:var(--space-sm) 0;border-bottom:var(--rule-hair) solid var(--color-rule)}.table--stack td{border:0;padding:0}.table--stack td[data-label]:not(.cell-primary):not(.cell-actions):before{content:attr(data-label) " ";color:var(--color-muted)}.table--stack td.cell-primary{grid-column:1;font-weight:600}.table--stack td.cell-actions{grid-column:2;grid-row:1 / span 4;align-self:center}.table--stack td:not(.cell-primary):not(.cell-actions){grid-column:1;font-size:var(--text-xs);text-align:left}}.skeleton{display:grid;gap:var(--space-sm)}.skeleton__bar{height:14px;border-radius:var(--radius-control);background:var(--color-paper-3);animation:pulse 1.6s var(--ease-in-out) infinite}.skeleton__bar:nth-child(2n){width:70%}@keyframes pulse{50%{opacity:.45}}.tag{display:inline-flex;align-items:center;min-height:22px;padding:0 var(--space-xs);border-radius:var(--radius-control);font-size:var(--text-xs);font-weight:600;white-space:nowrap;border:var(--rule-hair) solid var(--color-rule)}.tag--g1{background:var(--grade-1-bg);color:var(--grade-1-ink)}.tag--g2{background:var(--grade-2-bg);color:var(--grade-2-ink);border-color:transparent}.tag--g3{background:var(--grade-3-bg);color:var(--grade-3-ink);border-color:transparent}.tag--staff{background:var(--grade-staff-bg);color:var(--grade-staff-ink)}.tag--state{background:transparent;color:var(--color-ink-2)}.tag--warn{background:transparent;color:var(--color-error);border-color:color-mix(in oklch,var(--color-error),var(--color-paper) 50%)}.portal{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-xl) var(--space-2xl);padding-block:var(--space-xl) var(--space-2xl)}.portal__motto{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule)}.portal__motto h1{font-family:var(--font-outlier);font-size:clamp(var(--text-2xl),4vw,2.6rem);font-weight:700;line-height:1.2}.portal__motto p{color:var(--color-ink-2)}.boardlist{list-style:none;margin:0;padding:0}.boardlist li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:var(--rule-hair) solid var(--color-rule)}.boardlist li:first-child{border-top:var(--rule-hair) solid var(--color-ink)}.boardlist__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boardlist__date{color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.schedule{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-xs) var(--space-md);margin:0;font-size:var(--text-sm)}.schedule>div{display:contents}.schedule dt{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-ink)}.schedule dd{margin:0;color:var(--color-ink-2)}.portal__side{display:grid;gap:var(--space-xl);align-content:start}.footer{margin-top:auto;border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-lg);font-size:var(--text-sm);color:var(--color-muted)}.footer__inner{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-lg);align-items:center;justify-content:space-between}.footer a{color:var(--color-ink-2)}@media(max-width:52rem){.portal,.portal__motto{grid-template-columns:minmax(0,1fr)}}.auth{padding-block:var(--space-2xl)}.auth__card{display:grid;gap:var(--space-lg)}.auth__title{font-size:var(--text-2xl);font-weight:700}.form{display:grid;gap:var(--space-md)}.idcard{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-lg);align-items:start}.idcard__photo{width:96px;aspect-ratio:3 / 4;border-radius:var(--radius-control);background:var(--color-paper-3);overflow:hidden;display:grid;place-items:center;color:var(--color-muted);font-size:var(--text-xs)}.idcard__photo img{width:100%;height:100%;object-fit:cover}.idcard__name{font-size:var(--text-2xl);font-weight:700;line-height:1.2}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;border-top:var(--rule-hair) solid var(--color-rule)}.stats>div{padding:var(--space-sm) var(--space-sm) 0;border-left:var(--rule-hair) solid var(--color-rule)}.stats>div:first-child{border-left:0;padding-left:0}.stats dt{font-size:var(--text-xs);color:var(--color-muted)}.stats dd{margin:0;font-size:var(--text-xl);font-weight:600;font-variant-numeric:tabular-nums}.stats dd small{font-size:var(--text-sm);color:var(--color-muted);font-weight:400}@media(max-width:40rem){.stats{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--space-sm)}.stats>div:nth-child(4){border-left:0;padding-left:0}.idcard__photo{width:72px}}.infection{display:grid;gap:var(--space-2xs)}.infection__bar{height:6px;border-radius:var(--radius-pill);background:var(--color-paper-3);overflow:hidden}.infection__fill{height:100%;width:100%;background:var(--color-error);transform-origin:left;transform:scaleX(var(--fill, 0));transition:transform var(--dur-long) var(--ease-out)}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:var(--space-md)}.statline{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md)}.toast{position:fixed;bottom:var(--space-lg);left:50%;transform:translate(-50%);z-index:var(--z-toast);background:var(--color-ink);color:var(--color-paper);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-control);font-size:var(--text-sm);max-width:calc(100% - 2 * var(--space-md));animation:toast-in var(--dur-short) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.dialog{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);padding:var(--space-lg);background:var(--color-paper);color:var(--color-ink);width:min(40rem,calc(100% - 2 * var(--space-md)));max-height:calc(100dvh - 2 * var(--space-lg))}.dialog::backdrop{background:color-mix(in oklch,var(--color-ink),transparent 55%)}.fieldset-plain{border:0;padding:0;margin:0;min-width:0}.sprite{flex-shrink:0;image-rendering:pixelated}.sprite--empty{display:inline-block;border:var(--rule-hair) dashed var(--color-rule);border-radius:var(--radius-control)}.item-name{display:inline-flex;align-items:center;gap:var(--space-xs)}.disclosure>summary{cursor:pointer;min-height:var(--hit);display:flex;align-items:center;color:var(--color-ink-2);font-size:var(--text-sm)}.disclosure>summary:hover{color:var(--color-ink)}.disclosure>summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.disclosure[open]>summary{margin-bottom:var(--space-sm)}.point{display:grid;gap:var(--space-sm);padding-block:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule)}.point__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-sm)}.point__label{font-size:var(--text-lg);font-weight:700}.result{background:var(--color-paper-2);border-radius:var(--radius-card);padding:var(--space-md)}.result__effects{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md)}@media(max-width:48rem){.result__effects{grid-template-columns:minmax(0,1fr)}}.effects-read{margin:0;padding:var(--space-sm);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-control);font-family:var(--font-body);font-size:var(--text-sm);white-space:pre-wrap;min-height:100%}.textarea{resize:vertical;line-height:1.5}.textarea--code,.input--code{font-family:var(--font-mono);font-size:var(--text-sm)}.field--grow{flex:1;min-width:min(100%,14rem)}.result .input,.result .textarea,.result .select{background:var(--color-paper)}.room{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - 109px);max-width:52rem;margin-inline:auto}.room__head{display:grid;gap:var(--space-xs);padding-block:var(--space-md) var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule)}.room__where{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-sm)}.room__title{font-size:var(--text-xl);font-weight:700}.room__members{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-xs) var(--space-md);overflow-x:auto;scrollbar-width:none;font-size:var(--text-sm)}.member{display:inline-flex;align-items:center;gap:var(--space-2xs);white-space:nowrap}.member__name{font-weight:600}.member__hp{color:var(--color-muted)}.member--down{opacity:.55;text-decoration:line-through}.room__log{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm);padding-block:var(--space-md);overscroll-behavior:contain}.room__empty{text-align:center}.msg{display:grid;gap:var(--space-3xs);max-width:40rem}.msg__author{font-size:var(--text-sm);font-weight:600;color:var(--color-ink-2)}.msg__meta{display:flex;gap:var(--space-2xs)}.msg__body{white-space:pre-wrap;overflow-wrap:anywhere;max-width:none}.msg--mine .msg__author{color:var(--color-accent)}.msg--action .msg__body{color:var(--color-ink-2)}.msg--narration{max-width:none;padding:var(--space-sm) var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-card)}.msg--system{max-width:none;color:var(--color-muted);font-size:var(--text-sm);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.msg--result{padding:var(--space-sm) var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card)}.msg--combat{padding:var(--space-sm) var(--space-md);border:var(--rule-hair) solid color-mix(in oklch,var(--color-error),var(--color-paper) 40%);color:var(--color-error);border-radius:var(--radius-card);font-weight:600}.msg--arrive{max-width:none;padding:var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-card);gap:var(--space-sm)}.msg--staff{opacity:.8}.msg__points,.dock-points,.chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.chip{display:inline-flex;align-items:center;min-height:var(--control-h-s);padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-sm);cursor:pointer;position:relative;transition:background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.chip:after{content:"";position:absolute;inset:calc((var(--control-h-s) - var(--hit)) / 2) 0}.chip:hover{background:var(--color-paper-3);border-color:var(--color-muted)}.chip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.chip[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.chip:disabled{opacity:.55;cursor:not-allowed}.room__dock{display:grid;gap:var(--space-xs);padding-block:var(--space-sm) calc(var(--space-sm) + env(safe-area-inset-bottom));border-top:var(--rule-hair) solid var(--color-rule);background:var(--color-paper)}.dock-status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-paper-2);border-radius:var(--radius-control);font-size:var(--text-sm)}.dock-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.dock-points{flex:1 1 100%}.composer{display:grid;gap:var(--space-2xs)}.composer__modes{display:flex;flex-wrap:wrap;gap:var(--space-2xs);align-items:center}.seg{min-height:var(--control-h-s);padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-control);background:transparent;color:var(--color-ink-2);font-size:var(--text-sm);cursor:pointer;position:relative}.seg:after{content:"";position:absolute;inset:calc((var(--control-h-s) - var(--hit)) / 2) 0}.seg[aria-checked=true]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.seg:disabled{opacity:.55;cursor:not-allowed}.seg:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.composer__row{display:flex;gap:var(--space-xs);align-items:flex-end}.composer__input{flex:1;min-height:var(--control-h);max-height:10rem}.select--small{width:auto;min-height:var(--control-h-s);padding-block:0;font-size:var(--text-sm)}.room-staffbar{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center;padding-top:var(--space-sm);max-width:52rem;margin-inline:auto}@media(max-width:40rem){.room{height:calc(100dvh - 101px)}.room__title{font-size:var(--text-lg)}}.sheet{width:min(36rem,calc(100% - 2 * var(--space-md)))}@media(max-width:40rem){.sheet{margin:auto 0 0;width:100%;max-width:100%;border-radius:var(--radius-card) var(--radius-card) 0 0;max-height:85dvh}}.sheet__actions{position:sticky;bottom:0;background:var(--color-paper);padding-top:var(--space-xs)}.bag{list-style:none;margin:0;padding:0;display:grid}.bag__item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-sm);align-items:center;padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule)}.bag__text{display:grid;gap:var(--space-3xs);min-width:0}.bag__name{font-weight:600}.bag__actions{display:flex;flex-wrap:wrap;gap:var(--space-2xs);justify-content:flex-end}@media(max-width:40rem){.bag__item{grid-template-columns:auto minmax(0,1fr)}.bag__actions{grid-column:1 / -1;justify-content:flex-start}}.qcard{display:grid;gap:var(--space-sm);padding:var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card)}.qcard--row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.qcard__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-xs) var(--space-sm)}.qcard__said{font-weight:600}.qcard__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md)}@media(max-width:48rem){.qcard__grid{grid-template-columns:minmax(0,1fr)}}.qcard__facts{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2xs) var(--space-sm);font-size:var(--text-sm);align-content:start}.qcard__facts dt{color:var(--color-muted)}.qcard__facts dd{margin:0}.qcard__chat{list-style:none;margin:0;padding:var(--space-xs) var(--space-sm);background:var(--color-paper-2);border-radius:var(--radius-control);display:grid;gap:var(--space-3xs)}.field--inline{display:inline-flex;align-items:center;gap:var(--space-xs)}.notifs{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-xs)}.notifs li{padding:var(--space-sm) var(--space-md);background:var(--color-paper-2);border-radius:var(--radius-control)}.notifs li.unread{border:var(--rule-hair) solid var(--color-accent)}
