:root{--font:"Pretendard", "Malgun Gothic", "맑은 고딕", "Noto Sans KR", "Noto Sans CJK KR", system-ui, sans-serif;--size-scale:1;--fs-body:calc(1.0625rem * var(--size-scale));--fs-small:calc(.9375rem * var(--size-scale));--fs-h1:calc(1.625rem * var(--size-scale));--fs-h2:calc(1.25rem * var(--size-scale));--fs-h3:calc(1.0625rem * var(--size-scale));--fs-stat:calc(1.5rem * var(--size-scale));--fw-regular:400;--fw-strong:600;--fw-bold:700;--lh-body:1.6;--lh-tight:1.3;--lh-table:1.4;--measure:40rem;--c-bg:#fff;--c-canvas:#f4f6f5;--c-surface:#f4f6f5;--c-sunken:#e9eeeb;--c-hover:#eef1ef;--c-pill:#d6ddd9;--c-text:#1a1d1c;--c-text-sub:#4a524e;--c-divider:#d9dedb;--c-border:#6b7570;--c-scrim:#1a1d1c73;--c-primary:#1f6f4a;--c-primary-dark:#17573a;--c-primary-tint:#e3f1e9;--c-on-primary:#fff;--c-error:#b3261e;--c-error-bg:#fdecea;--c-error-dark:#8f1e18;--c-warn:#8a5300;--c-warn-bg:#fff4e0;--c-info:#1f5fa8;--c-info-bg:#e8f1fb;--c-success:var(--c-primary);--c-success-bg:var(--c-primary-tint);--c-focus:#1f5fa8;--c-avatar-1:#d3dbd6;--c-avatar-2:#d5d9e0;--c-avatar-3:#ddd7cf;--c-avatar-4:#dad4dd;--c-avatar-5:#cfdbdb;--c-avatar-6:#dcdacb;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;--sp-8:2rem;--target:3rem;--row:3rem;--row-compact:2.5rem;--radius-sm:.25rem;--radius:.5rem;--radius-lg:.75rem;--radius-pill:999px;--shadow-raised:0 1px 4px #1a1d1c1f;--shadow-overlay:0 8px 16px #1a1d1c3d}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--c-text);background:var(--c-canvas);word-break:keep-all;overflow-wrap:anywhere;margin:0}h1{font-size:var(--fs-h1);line-height:var(--lh-tight);margin:0 0 var(--sp-4)}h2{font-size:var(--fs-h2);margin:var(--sp-6) 0 var(--sp-3);line-height:1.35}h3{font-size:var(--fs-h3);line-height:var(--lh-tight)}p{margin:0 0 var(--sp-3)}a{color:var(--c-primary)}time,.num{font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.prose{max-width:var(--measure)}.app{flex-direction:column;max-width:52rem;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:10;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--c-bg);color:var(--c-text);border-bottom:1px solid var(--c-divider);display:flex;position:sticky;top:0}.topbar .title{font-size:var(--fs-h2);font-weight:var(--fw-bold);flex:1;margin:0}main{padding:var(--sp-4);flex:1}.footer{padding:var(--sp-4);color:var(--c-text-sub);font-size:var(--fs-small);text-align:center}.app-nav{background:var(--c-bg)}.app-nav ul{margin:0;padding:0;list-style:none}.nav-item{align-items:center;gap:var(--sp-3);color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-strong);text-decoration:none;display:flex}.nav-pill .nav-icon{flex:none;width:1.5rem;height:1.5rem}.loading{color:var(--c-text-sub);padding:var(--sp-4) 0}.nav-item[aria-current=page]{color:var(--c-primary);font-weight:var(--fw-bold)}.nav-brand{padding:var(--sp-4);font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--c-text);margin:0}.app[data-layout=phone] .app-nav{z-index:10;border-top:1px solid var(--c-divider);padding-bottom:env(safe-area-inset-bottom);position:sticky;bottom:0}.app[data-layout=phone] .app-nav ul{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.app[data-layout=phone] .nav-item{min-height:3.5rem;padding:var(--sp-1) 0;text-align:center;flex-direction:column;justify-content:center;gap:2px;line-height:1.2;box-shadow:inset 0 3px #0000}.app[data-layout=phone] .nav-item[aria-current=page]{box-shadow:inset 0 3px 0 var(--c-primary)}.nav-pill{flex:none;justify-content:center;align-items:center;display:inline-flex}.app[data-layout=phone] .nav-pill{border-radius:var(--radius-pill);width:3.25rem;height:2rem}.app[data-layout=phone] .nav-item[aria-current=page] .nav-pill{background:var(--c-primary-tint)}.app[data-layout=phone] .update-banner{bottom:calc(4rem + var(--sp-2))}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--target);min-width:var(--target);padding:0 var(--sp-6);font:inherit;font-weight:var(--fw-bold);border-radius:var(--radius);cursor:pointer;border:2px solid var(--c-primary);background:var(--c-primary);color:var(--c-on-primary);text-decoration:none;display:inline-flex}.btn.secondary{background:var(--c-bg);color:var(--c-primary)}.btn.ghost{color:inherit;padding:0 var(--sp-3);background:0 0;border-color:#0000}.btn.block{width:100%}.btn.small{min-height:var(--target);padding:0 var(--sp-3);font-weight:var(--fw-regular);font-size:var(--fs-small);border:1px solid var(--c-border);background:var(--c-bg);color:var(--c-text)}.btn.small[aria-pressed=true]{border-color:var(--c-primary);background:var(--c-primary-tint);font-weight:var(--fw-bold)}.btn.danger{background:var(--c-error);border-color:var(--c-error)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.contents{display:contents}.narrow,.app[data-layout=pc] main>.narrow{max-width:32rem}.tag{padding:.125rem var(--sp-2);border-radius:var(--radius-sm);font-size:var(--fs-small);font-weight:var(--fw-bold);line-height:var(--lh-tight);white-space:nowrap;vertical-align:middle;border:1px solid;align-items:center;display:inline-flex}.tag.critical{color:var(--c-error);background:var(--c-error-bg)}.tag.warn{color:var(--c-warn);background:var(--c-warn-bg)}.tag.info{color:var(--c-info);background:var(--c-info-bg)}.tag.success{color:var(--c-success);background:var(--c-success-bg)}.tag.neutral{color:var(--c-text-sub);background:var(--c-hover)}.notice{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);margin:var(--sp-3) 0;border-left:6px solid}.notice.error{background:var(--c-error-bg);border-color:var(--c-error)}.notice.warn{background:var(--c-warn-bg);border-color:var(--c-warn)}.notice.info{background:var(--c-info-bg);border-color:var(--c-info)}.notice strong{display:block}.coach{padding:var(--sp-3) var(--sp-4);padding-right:calc(var(--target) + var(--sp-2));background:var(--c-bg);border:1px solid var(--c-divider);border-left:4px solid var(--c-info);border-radius:var(--radius-sm);margin-bottom:var(--sp-4);font-size:var(--fs-small);position:relative}.coach-title{align-items:center;gap:var(--sp-2);font-size:var(--fs-body);font-weight:var(--fw-bold);margin:0;display:flex}.coach-title .icon{color:var(--c-info)}.coach ol{margin:var(--sp-2) 0 0;color:var(--c-text-sub);padding-left:1.4em}.coach li+li{margin-top:var(--sp-1)}.coach .close{top:var(--sp-1);right:var(--sp-1);padding:0;position:absolute}.coach-reopen{margin:0 0 var(--sp-2);justify-content:flex-end;display:flex}.coach-reopen .btn{color:var(--c-primary);font-weight:var(--fw-strong)}.steps{counter-reset:step;margin:0;padding:0;list-style:none}.steps>li{counter-increment:step;padding:0 0 var(--sp-4) 3rem;position:relative}.steps>li:before{content:counter(step);background:var(--c-primary);width:2.25rem;height:2.25rem;color:var(--c-on-primary);font-weight:var(--fw-bold);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}table{border-collapse:collapse;width:100%;font-size:var(--fs-small);line-height:var(--lh-table);background:var(--c-bg);font-variant-numeric:tabular-nums}th,td{border:0;border-bottom:1px solid var(--c-divider);padding:var(--sp-2);height:var(--row);text-align:left;vertical-align:middle}th{background:var(--c-surface);border-bottom:2px solid var(--c-border);font-weight:var(--fw-strong)}td.num,th.num{text-align:right}.table-wrap{overflow-x:auto}fieldset{border:1px solid var(--c-divider);border-radius:var(--radius);background:var(--c-bg);padding:var(--sp-4);margin:0 0 var(--sp-4);max-width:var(--measure)}legend{font-size:var(--fs-h3);font-weight:var(--fw-bold);padding:0 var(--sp-2)}.choice{align-items:center;gap:var(--sp-3);min-height:var(--target);cursor:pointer;display:flex}.choice input{width:1.5rem;height:1.5rem}.shortcuts{gap:var(--sp-2) var(--sp-4);max-width:var(--measure);grid-template-columns:max-content 1fr;align-items:baseline;margin:0;display:grid}.shortcuts dt{white-space:nowrap}.shortcuts dd{margin:0}kbd{min-width:2em;padding:0 var(--sp-2);font:inherit;font-size:var(--fs-small);font-weight:var(--fw-strong);text-align:center;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-sm);display:inline-block}.update-banner{left:var(--sp-4);right:var(--sp-4);bottom:var(--sp-4);z-index:20;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-border);border-left:6px solid var(--c-info);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);flex-wrap:wrap;display:flex;position:fixed}.update-banner>.icon{color:var(--c-info)}.update-banner .update-text{flex:12rem;margin:0}.update-banner .update-text strong{display:block}.update-banner .update-text span{color:var(--c-text-sub);font-size:var(--fs-small)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.idle-layer{z-index:60;padding:var(--sp-4);background:var(--c-scrim);place-items:center;display:grid;position:fixed;inset:0}.idle-warning{gap:var(--sp-3);width:100%;max-width:26rem;padding:var(--sp-6);background:var(--c-bg);border-radius:var(--radius-lg);border-top:6px solid var(--c-warn);box-shadow:var(--shadow-overlay);justify-items:start;display:grid}.idle-warning .idle-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;margin:0}.idle-warning p{margin:0}.idle-warning .btn{width:100%}.login{gap:var(--sp-4);padding:var(--sp-4);display:grid}.app[data-layout=pc] .login{padding:var(--sp-6)}.login .field input{width:100%}.login>.hint{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.panel-foot{margin-top:var(--sp-4)}.password-row{gap:var(--sp-2);align-items:stretch;display:flex}.password-row input{flex:1;min-width:0}@media (hover:hover){.btn:hover{background:var(--c-primary-dark);border-color:var(--c-primary-dark)}.btn.secondary:hover{background:var(--c-hover);border-color:var(--c-primary)}.btn.ghost:hover{background:var(--c-hover);border-color:#0000}.btn.small:hover{background:var(--c-hover)}.btn.danger:hover{background:var(--c-error-dark);border-color:var(--c-error-dark)}.nav-item:hover{color:var(--c-text);background:var(--c-hover)}.nav-item[aria-current=page]:hover{color:var(--c-primary)}}.app[data-layout=pc]{--target:2.25rem;--row:var(--row-compact);grid-template:"nav top""nav main"minmax(0,1fr)"nav foot"/14rem minmax(0,1fr);max-width:none;height:100dvh;min-height:0;display:grid}.app[data-layout=pc] .app-nav{border-right:1px solid var(--c-divider);grid-area:nav;overflow-y:auto}.app[data-layout=pc] .app-nav ul{gap:var(--sp-1);padding:0 var(--sp-2);display:grid}.app[data-layout=pc] .nav-item{min-height:2.75rem;padding:0 var(--sp-3);border-radius:var(--radius);font-size:var(--fs-body);box-shadow:inset 3px 0 #0000}.app[data-layout=pc] .nav-item[aria-current=page]{background:var(--c-primary-tint);box-shadow:inset 3px 0 0 var(--c-primary)}.app[data-layout=pc] .topbar{padding:var(--sp-2) var(--sp-6);grid-area:top;position:static}.app[data-layout=pc] main{padding:var(--sp-6) var(--sp-8);grid-area:main;overflow-y:auto}.app[data-layout=pc] main>:not(.split){max-width:75rem}.app[data-layout=pc] main:has(>.split){flex-direction:column;padding:0;display:flex;overflow:hidden}.app[data-layout=pc] main:has(>.split)>.split{flex:1 1 0;height:auto;min-height:0}.app[data-layout=pc] main:has(>.split)>:not(.split){margin:var(--sp-3) var(--sp-4);flex:none}.app[data-layout=pc] .footer{padding:var(--sp-1) var(--sp-4);border-top:1px solid var(--c-divider);grid-area:foot}.app[data-layout=pc] .update-banner{left:calc(14rem + var(--sp-4))}.icon{vertical-align:middle;flex:none;display:inline-block}.icon-sm{width:1rem;height:1rem}.icon-md{width:1.25rem;height:1.25rem}.icon-lg{width:1.75rem;height:1.75rem}.page-header{margin:0 0 var(--sp-6)}.page-eyebrow{margin-bottom:var(--sp-3)}.page-header-row{justify-content:space-between;align-items:flex-end;gap:var(--sp-3) var(--sp-6);flex-wrap:wrap;display:flex}.page-heading{flex:18rem;min-width:0}.page-title{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:var(--lh-tight);margin:0}.page-subtitle{margin-top:var(--sp-1);color:var(--c-text-sub);align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.page-actions{align-items:flex-end;gap:var(--sp-2);flex-wrap:wrap;display:flex}.app[data-layout=phone] .page-title{font-size:var(--fs-h2)}.app[data-layout=phone] .page-actions{flex:100%}.app[data-layout=phone] .page-actions>.btn{flex:auto}.panel{background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);margin:0 0 var(--sp-4);min-width:0}.panel-head{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-divider);flex-wrap:wrap;display:flex}.panel-heading{flex:14rem;min-width:0}.panel-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-tight);align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0;display:flex}.panel-desc{margin:var(--sp-1) 0 0;color:var(--c-text-sub);font-size:var(--fs-small)}.panel-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.panel-body{padding:var(--sp-4)}.panel-body.flush{padding:0}.panel-body>:last-child{margin-bottom:0}.count-pill{padding:0 var(--sp-2);border-radius:var(--radius-pill);background:var(--c-hover);color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-strong);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:var(--lh-body);align-items:center;display:inline-flex}.section-grid{gap:0 var(--sp-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.app[data-layout=pc] .section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-row{gap:var(--sp-3);margin:0 0 var(--sp-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.app[data-layout=pc] .stat-row{grid-template-columns:repeat(auto-fit, minmax(calc(10rem * var(--size-scale)), 1fr))}.app[data-layout=pc] .stat-row.fixed{grid-template-columns:repeat(var(--stat-cols), minmax(0, 1fr))}.stat-tile.wide{grid-column:span 2}.stat-tile{align-items:flex-start;gap:var(--sp-1);min-width:0;padding:var(--sp-3);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);color:var(--c-text);font:inherit;text-align:left;flex-direction:column;display:flex;box-shadow:inset 4px 0 #0000}.stat-tile.critical{box-shadow:inset 4px 0 0 var(--c-error)}.stat-tile.warn{box-shadow:inset 4px 0 0 var(--c-warn)}.stat-tile.info{box-shadow:inset 4px 0 0 var(--c-info)}.stat-tile.success{box-shadow:inset 4px 0 0 var(--c-success)}.stat-tile.accent{box-shadow:inset 4px 0 0 var(--c-primary)}.stat-tile.is-button{cursor:pointer;border-color:var(--c-border)}.stat-tile.is-button[aria-pressed=true]{background:var(--c-primary-tint);border-color:var(--c-primary)}.stat-label{align-items:center;gap:var(--sp-1) var(--sp-2);color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-strong);line-height:var(--lh-tight);flex-wrap:wrap;display:flex}.stat-status{align-items:center;gap:var(--sp-1);font-weight:var(--fw-bold);white-space:nowrap;display:inline-flex}.stat-tile.critical .stat-status,.stat-tile.critical .stat-value{color:var(--c-error)}.stat-tile.warn .stat-status,.stat-tile.warn .stat-value{color:var(--c-warn)}.stat-tile.info .stat-status,.stat-tile.info .stat-value{color:var(--c-info)}.stat-tile.success .stat-status,.stat-tile.success .stat-value{color:var(--c-success)}.stat-value{max-width:100%;font-size:var(--fs-stat);font-weight:var(--fw-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal;text-overflow:ellipsis;display:block;overflow:hidden}.stat-unit{font-size:var(--fs-small);font-weight:var(--fw-strong);margin-left:.125rem}.stat-hint{color:var(--c-text-sub);font-size:var(--fs-small);line-height:var(--lh-tight)}.app[data-layout=phone] .stat-value{font-size:var(--fs-h2)}.alert{gap:var(--sp-3);margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);color:var(--c-text);border-left:6px solid;align-items:flex-start;display:flex}.alert.critical{background:var(--c-error-bg);border-color:var(--c-error)}.alert.warn{background:var(--c-warn-bg);border-color:var(--c-warn)}.alert.info{background:var(--c-info-bg);border-color:var(--c-info)}.alert.success{background:var(--c-success-bg);border-color:var(--c-success)}.alert-icon{margin-top:.125rem}.alert.critical .alert-icon{color:var(--c-error)}.alert.warn .alert-icon{color:var(--c-warn)}.alert.info .alert-icon{color:var(--c-info)}.alert.success .alert-icon{color:var(--c-success)}.alert-body{flex:1;min-width:0}.alert-title{font-weight:var(--fw-bold);margin:0}.alert-text{margin-top:var(--sp-1)}.alert-text p,.alert-text ul{margin:0}.alert-text ul{padding-left:1.25em}.alert-actions{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.tag .icon{margin-right:var(--sp-1)}.btn-group{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.btn-group.align-end{justify-content:flex-end}.btn-group.align-between{justify-content:space-between}.btn-group.stack{flex-direction:column;align-items:stretch;max-width:28rem}.chip-row{gap:var(--sp-2);margin:0 0 var(--sp-3);flex-wrap:wrap;display:flex}.chip-filter{align-items:center;gap:var(--sp-2);min-height:var(--target);padding:0 var(--sp-4);border:2px solid var(--c-border);border-radius:var(--radius-pill);background:var(--c-bg);color:var(--c-text);font:inherit;cursor:pointer;white-space:nowrap;display:inline-flex}.chip-filter[aria-pressed=true]{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary);font-weight:var(--fw-bold)}.chip-filter:disabled{cursor:not-allowed;opacity:.55}.chip-count{min-width:1.5rem;padding:0 var(--sp-1);border-radius:var(--radius-pill);background:var(--c-hover);color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;line-height:var(--lh-body);justify-content:center;align-items:center;display:inline-flex}.chip-filter[aria-pressed=true] .chip-count{background:var(--c-bg);color:var(--c-primary)}select,.field input,.field textarea{font:inherit;color:var(--c-text);background:var(--c-bg);border:2px solid var(--c-border);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3)}select{min-height:var(--target)}.field{gap:var(--sp-1);min-width:0;display:grid}.field label{font-weight:var(--fw-bold)}.field .hint{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.field-error{color:var(--c-error);font-weight:var(--fw-bold);margin:0}.field.has-error input,.field.has-error select{border-color:var(--c-error);border-width:3px}.field input{min-height:var(--target)}.field.inline{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.field.inline label{font-weight:var(--fw-strong);white-space:nowrap}.choice-list{gap:var(--sp-2);border:0;min-width:0;margin:0;padding:0;display:grid}.choice-list .choice{padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg)}.choice-list .choice:has(input:checked){background:var(--c-primary-tint);border-color:var(--c-primary);font-weight:var(--fw-strong)}.choice input{accent-color:var(--c-primary)}.stepper{align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.step{align-items:center;gap:var(--sp-2);display:flex}.step+.step:before{content:"";background:var(--c-border);flex:none;width:2rem;height:.125rem}.step-link{align-items:center;gap:var(--sp-2);min-height:var(--target);font:inherit;color:var(--c-text-sub);text-align:left;background:0 0;border:0;padding:0;display:inline-flex}button.step-link{cursor:pointer;color:var(--c-primary)}.step-mark{border:2px solid var(--c-border);background:var(--c-bg);width:1.75rem;height:1.75rem;color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.step-label{font-weight:var(--fw-strong);white-space:nowrap}.step.current .step-mark{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.step.current .step-link{color:var(--c-text)}.step.current .step-label{font-weight:var(--fw-bold)}.step.done .step-mark{background:var(--c-primary-tint);border-color:var(--c-primary);color:var(--c-primary)}.action-grid{gap:var(--sp-3);margin:0 0 var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}.app[data-layout=pc] .action-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.app[data-layout=pc] .action-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.action-card{gap:var(--sp-4);min-width:0;padding:var(--sp-4);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);color:var(--c-text);flex-direction:column;text-decoration:none;display:flex}.action-card.is-link{align-items:center;gap:var(--sp-3);border-color:var(--c-border);flex-direction:row;min-height:5.5rem}.action-top{align-items:flex-start;gap:var(--sp-3);display:flex}.action-foot{gap:var(--sp-2);margin-top:auto;display:grid}.action-icon{border-radius:var(--radius);background:var(--c-primary-tint);width:3rem;height:3rem;color:var(--c-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.action-text{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.action-title{font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.action-card.is-link .action-title{color:var(--c-primary)}.action-desc{color:var(--c-text-sub);font-size:var(--fs-small);line-height:var(--lh-body)}.action-extra{margin-top:var(--sp-1)}.action-chevron{color:var(--c-text-sub);flex:none}.app[data-layout=pc] .action-card:not(.is-link){padding:var(--sp-6)}.finding-list{gap:var(--sp-3);display:grid}.finding{gap:var(--sp-2);min-width:0;padding:var(--sp-3) var(--sp-4);background:var(--c-bg);border:1px solid var(--c-divider);border-left:4px solid var(--c-border);border-radius:var(--radius);display:grid}.finding.critical{border-left-color:var(--c-error)}.finding.warn{border-left-color:var(--c-warn)}.finding.info{border-left-color:var(--c-info)}.finding.success{border-left-color:var(--c-success)}.finding-head{align-items:center;gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;display:flex}.finding-meta{color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-strong)}.finding-title{font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:var(--lh-tight);margin:0}.finding-message{max-width:var(--measure);margin:0}.finding-action{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--c-canvas);max-width:var(--measure);gap:.125rem;display:grid}.finding-action-label{font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--c-text)}.finding-action p{margin:0}.finding-source{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.finding-source span{font-weight:var(--fw-bold)}.finding-group+.finding-group{margin-top:var(--sp-6)}.group-head{align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-3);font-size:var(--fs-h3);font-weight:var(--fw-bold);display:flex}.group-toggle{min-height:var(--target);cursor:pointer;border-bottom:1px solid var(--c-divider);list-style:none}.group-toggle::-webkit-details-marker{display:none}.group-toggle:after{content:"";border-right:2px solid var(--c-text-sub);border-bottom:2px solid var(--c-text-sub);flex:none;width:.625rem;height:.625rem;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.finding-group.is-collapsible[open]>.group-toggle{border-bottom-color:#0000}.finding-group.is-collapsible[open]>.group-toggle:after{transform:rotate(-135deg)}.finding-group.is-collapsible+.finding-group.is-collapsible{margin-top:var(--sp-2)}.disclosure>summary{align-items:center;gap:var(--sp-2);min-height:var(--target);width:fit-content;color:var(--c-primary);font-weight:var(--fw-strong);cursor:pointer;list-style:none;display:flex}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"";border-bottom:2px solid;border-right:2px solid;flex:none;width:.5rem;height:.5rem;transition:transform .15s;transform:rotate(-45deg)}.disclosure[open]>summary:before{transform:rotate(45deg)}.disclosure-body{padding:0 0 var(--sp-2)}.mini-list{gap:var(--sp-1);font-size:var(--fs-small);font-variant-numeric:tabular-nums;margin:0;padding:0;list-style:none;display:grid}.mini-list li{padding:var(--sp-1) 0;border-top:1px solid var(--c-divider)}.data-table-wrap{overflow-x:auto}.app[data-layout=pc] .data-table-wrap.sticky{overflow:visible}.data-table{width:100%}.data-table th,.data-table td{white-space:nowrap}.data-table td:first-child,.data-table th:first-child{padding-left:var(--sp-4)}.data-table td:last-child,.data-table th:last-child{padding-right:var(--sp-4)}.data-table-wrap.sticky thead th{z-index:1;position:sticky;top:0}.app[data-layout=pc] main:has(.data-table-wrap.sticky){scroll-padding-top:var(--row)}.data-table.zebra tbody tr:nth-child(2n)>td{background:var(--c-canvas)}.data-table tfoot td{font-weight:var(--fw-bold);background:var(--c-surface);border-top:2px solid var(--c-border);border-bottom:0}.data-table tr.is-open>td{background:var(--c-primary-tint)}.data-table .detail-row>td{padding:var(--sp-2) var(--sp-3) var(--sp-3);background:var(--c-canvas);white-space:normal;height:auto}.data-table .detail-row .data-table{border:1px solid var(--c-divider)}.data-table td.wrap{white-space:normal;overflow-wrap:normal;min-width:6rem}.row-toggle{align-items:center;gap:var(--sp-2);min-height:var(--target);color:var(--c-text);font:inherit;font-weight:var(--fw-bold);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.toggle-chevron{color:var(--c-primary);transition:transform .15s}.row-toggle[aria-expanded=true] .toggle-chevron{transform:rotate(90deg)}.data-cards{padding:var(--sp-3);gap:var(--sp-2);margin:0;list-style:none;display:grid}.data-card{min-width:0;padding:var(--sp-3) var(--sp-4);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius)}.data-card-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.data-card-title{font-weight:var(--fw-bold);min-width:0}.data-card-trailing{font-weight:var(--fw-bold);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}.data-card-meta{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.data-card-fields{margin:var(--sp-2) 0 0;font-size:var(--fs-small);display:grid}.data-card-fields>div{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) 0;border-top:1px solid var(--c-divider);display:flex}.data-card-fields dt{color:var(--c-text-sub)}.data-card-fields dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.data-card.total{background:var(--c-surface);border-color:var(--c-border)}.row-toggle.block{width:100%;margin-top:var(--sp-2);border-top:1px solid var(--c-divider);color:var(--c-primary);font-weight:var(--fw-strong);justify-content:center}.data-card-detail{padding-top:var(--sp-2)}.data-card-detail .data-cards{gap:0;padding:0}.data-card-detail .data-card{border:0;border-top:1px solid var(--c-divider);padding:var(--sp-2) 0;border-radius:0}.data-card-detail .data-card-title{font-weight:var(--fw-strong);white-space:nowrap;font-variant-numeric:tabular-nums}.data-card-detail .data-card-trailing{font-weight:var(--fw-strong)}.empty-state{justify-items:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-4);text-align:center;display:grid}.empty-icon{background:var(--c-hover);width:4rem;height:4rem;color:var(--c-primary);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.empty-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);margin:0}.empty-text{max-width:var(--measure);color:var(--c-text-sub)}.empty-text p{margin:0}.empty-action{margin-top:var(--sp-2)}.empty-action>.btn-group{justify-content:center}.error-screen{padding:0 var(--sp-4) var(--sp-4)}.error-screen>.alert{margin:0 0 var(--sp-3)}.diagnostics{padding:var(--sp-3);border-radius:var(--radius-sm);background:var(--c-canvas);color:var(--c-text);font-size:var(--fs-small);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.facts-list{margin:0;display:grid}.facts-list>div{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid var(--c-divider);display:flex}.facts-list>div:first-child{border-top:0;padding-top:0}.facts-list dt{color:var(--c-text-sub)}.facts-list dd{font-weight:var(--fw-bold);text-align:right;font-variant-numeric:tabular-nums;margin:0}.with-rail{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.app[data-layout=pc] .with-rail{gap:var(--sp-6);grid-template-columns:minmax(0,1fr) 18rem}.app[data-layout=pc] .rail{max-height:calc(100dvh - 8rem);position:sticky;top:0;overflow-y:auto}.rail>.panel:last-child{margin-bottom:0}.jump-list{margin:0;padding:0;list-style:none;display:grid}.jump-link{justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;min-height:var(--target);padding:0 var(--sp-2);border-radius:var(--radius-sm);color:var(--c-primary);font:inherit;font-weight:var(--fw-strong);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}@media (hover:hover){.stat-tile.is-button:hover{background:var(--c-hover)}.stat-tile.is-button[aria-pressed=true]:hover{background:var(--c-primary-tint)}.chip-filter:hover{background:var(--c-hover)}.chip-filter[aria-pressed=true]:hover{background:var(--c-primary-dark)}button.step-link:hover .step-label{text-decoration:underline}.action-card.is-link:hover{border-color:var(--c-primary);background:var(--c-hover)}.row-toggle:hover{color:var(--c-primary)}.data-table tbody tr:not(.detail-row):not(.is-open):hover>td{background:var(--c-hover)}.disclosure>summary:hover{text-decoration:underline}.jump-link:hover{background:var(--c-hover)}}.app[data-layout=phone] .panel-body,.app[data-layout=phone] .panel-head,.app[data-layout=phone] .finding{padding:var(--sp-3)}.app[data-layout=phone] .data-cards{padding:var(--sp-2)}.app[data-layout=phone] .data-card-detail .data-cards{padding:0}.split{grid-template-columns:minmax(18rem,26rem) minmax(0,1fr);height:100%;display:grid}.split-list,.split-detail{min-height:0;overflow-y:auto}.split-list{padding:var(--sp-4);background:var(--c-bg);border-right:1px solid var(--c-divider)}.split-detail{padding:0 var(--sp-4);background:var(--c-canvas);flex-direction:column;display:flex}.split-empty{text-align:center;max-width:24rem;color:var(--c-text-sub);margin:auto}.split-empty strong{color:var(--c-text);font-size:var(--fs-h2)}.list-detail .split-list{padding:var(--sp-4) var(--sp-4) var(--sp-6);background:var(--c-canvas)}.list-detail .split-detail{padding:0 var(--sp-6) var(--sp-6);display:block}.list-detail .split-empty{justify-items:center;gap:var(--sp-2);padding-top:var(--sp-8);display:grid}.subject-id-banner{align-items:center;gap:var(--sp-1) var(--sp-4);margin:0 0 var(--sp-4);padding:var(--sp-2) var(--sp-4);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius-sm);box-shadow:inset 4px 0 0 var(--c-text);flex-wrap:wrap;display:flex}.subject-id-banner.sticky{z-index:4;position:sticky;top:0}.app[data-layout=phone] .subject-id-banner.sticky{top:3.6rem}.subject-id-banner p{margin:0}.subject-id-main{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.subject-id-name{font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.subject-id-grade{color:var(--c-text-sub);font-weight:var(--fw-strong)}.subject-id-ids{gap:0 var(--sp-4);color:var(--c-text-sub);flex-wrap:wrap;display:flex}.subject-id-ids b{color:var(--c-text)}.subject-id-extra{gap:var(--sp-2);flex-wrap:wrap;margin-left:auto;display:flex}.dialog-banner .subject-id-banner{margin:0}.dialog{color:var(--c-text);background:var(--c-bg);border:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0}.dialog::backdrop{background:var(--c-scrim)}.app[data-layout=pc] .dialog{border:1px solid var(--c-border);border-radius:var(--radius-lg);width:min(40rem,100% - 4rem);height:auto;max-height:calc(100dvh - 4rem);margin:auto}.dialog-frame{flex-direction:column;min-height:100%;max-height:100dvh;display:flex}.app[data-layout=pc] .dialog-frame{max-height:calc(100dvh - 4rem)}.dialog-head{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--c-divider);display:flex}.dialog-title{font-size:var(--fs-h2);flex:1;margin:0}.dialog-banner{padding:var(--sp-3) var(--sp-4) 0}.dialog-body{padding:var(--sp-4);gap:var(--sp-4);flex:1;align-content:start;display:grid;overflow-y:auto}.dialog-body>*{margin-bottom:0}.dialog-foot{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-divider);background:var(--c-bg)}.period-nav{align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-4);flex-wrap:wrap;display:flex}.period-label{text-align:center;min-width:9rem;font-size:var(--fs-h3);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;margin:0}.period-step .icon{margin:0}.agenda{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.agenda-item{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);grid-template-columns:5.5rem minmax(0,1fr);display:grid}.agenda-time{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.agenda-body{gap:var(--sp-2);min-width:0;display:grid}.agenda-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);flex-wrap:wrap;display:flex}.agenda-title{min-width:0}.agenda-meta{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.agenda-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.agenda-item.muted .agenda-time,.agenda-item.muted .agenda-title{color:var(--c-text-sub)}.app[data-layout=phone] .agenda-item{gap:var(--sp-1);padding:var(--sp-3);grid-template-columns:minmax(0,1fr)}.agenda-actions>.btn{padding:0 var(--sp-3);white-space:nowrap}.app[data-layout=phone] .agenda-actions>.btn{flex:8rem}.agenda .alert{margin:0}.who-line{align-items:baseline;gap:0 var(--sp-2);flex-wrap:wrap;display:flex}.who-name{font-weight:var(--fw-bold)}.who-ids{color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-strong)}.week-grid-wrap{background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);overflow-x:auto}.week-grid{table-layout:fixed;min-width:64rem}.week-grid th,.week-grid td{vertical-align:top;border-right:1px solid var(--c-divider);height:auto;padding:var(--sp-2)}.week-grid thead th{text-align:center;white-space:nowrap}.week-grid .week-head-cell{z-index:1;background:var(--c-surface);text-align:left;width:12rem;position:sticky;left:0}.week-grid tbody .week-head-cell{background:var(--c-bg);font-weight:var(--fw-regular)}.week-grid .is-today{background:var(--c-primary-tint)}.week-cell{gap:var(--sp-1);display:grid}.visit-chip{width:100%;min-width:0;padding:var(--sp-1) var(--sp-2);text-align:left;font:inherit;font-size:var(--fs-small);line-height:var(--lh-tight);color:var(--c-text);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--radius-sm);min-height:var(--target);border-left-width:4px;gap:0;display:grid;overflow:hidden}button.visit-chip{cursor:pointer}.visit-chip.success{border-left-color:var(--c-success)}.visit-chip.warn{border-left-color:var(--c-warn);background:var(--c-warn-bg)}.visit-chip.muted{color:var(--c-text-sub);border-style:dashed}.chip-time{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.chip-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.chip-no{font-variant-numeric:tabular-nums;color:var(--c-text-sub);white-space:nowrap}.chip-status{color:var(--c-text-sub)}.add-slot{width:100%;min-height:var(--target);font:inherit;color:var(--c-primary);border:1px dashed var(--c-border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.cap-meter{align-items:baseline;gap:0 var(--sp-2);font-size:var(--fs-small);flex-wrap:wrap;display:inline-flex}.cap-label{color:var(--c-text-sub)}.cap-value{font-weight:var(--fw-bold)}.cap-of{color:var(--c-text-sub);font-weight:var(--fw-regular)}.cap-word{align-items:center;gap:var(--sp-1);font-weight:var(--fw-bold);display:inline-flex}.cap-meter.full .cap-word,.cap-meter.full .cap-value{color:var(--c-warn)}.cap-meter.near .cap-word{color:var(--c-info)}.choice-legend{font-size:var(--fs-body);font-weight:var(--fw-bold);margin-bottom:var(--sp-2);padding:0}.choice-text{gap:.125rem;display:grid}.choice-hint{color:var(--c-text-sub);font-size:var(--fs-small);font-weight:var(--fw-regular)}.practice-notice{align-items:center;gap:var(--sp-2) var(--sp-4);margin:0 0 var(--sp-4);padding:var(--sp-2) var(--sp-3);background:var(--c-warn-bg);border-left:6px solid var(--c-warn);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.practice-word{align-items:center;gap:var(--sp-2);color:var(--c-warn);flex:14rem;margin:0;display:flex}.practice-viewer{align-items:center;gap:var(--sp-2);font-weight:var(--fw-bold);min-width:0;display:flex}.practice-viewer select{flex:auto;min-width:0}.practice-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.app[data-layout=phone] .practice-viewer{flex-wrap:wrap;flex:100%}.app[data-layout=phone] .practice-viewer select{flex:14rem}.app[data-layout=phone] .practice-actions{flex:100%}.app[data-layout=phone] .practice-actions>.btn{white-space:nowrap;flex:auto}.toolbar{gap:var(--sp-3);margin:0 0 var(--sp-4);display:grid}.toolbar .field input,.toolbar select{width:100%}.app[data-layout=pc] .toolbar.wide{grid-template-columns:minmax(14rem,2fr) repeat(3,minmax(9rem,1fr));align-items:end}.filter-row{gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.row-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.row-link{align-items:center;gap:var(--sp-3);min-height:4.5rem;padding:var(--sp-3) var(--sp-4);color:var(--c-text);background:var(--c-bg);border:1px solid var(--c-divider);border-radius:var(--radius);text-decoration:none;display:flex}.row-link[aria-current=page]{background:var(--c-primary-tint);border-color:var(--c-primary);box-shadow:inset 4px 0 0 var(--c-primary)}.row-main{flex:1;gap:.125rem;min-width:0;display:grid}.row-meta{color:var(--c-text-sub);font-size:var(--fs-small)}.row-side{justify-items:end;gap:var(--sp-1);flex:none;display:grid}.kv-grid{gap:var(--sp-3) var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));margin:0;display:grid}.kv-grid>div{min-width:0}.kv-grid dt{color:var(--c-text-sub);font-size:var(--fs-small)}.kv-grid dd{font-weight:var(--fw-strong);margin:0}.guide-steps{gap:var(--sp-2);margin:0;padding-left:1.4em;display:grid}.guide-steps b{font-weight:var(--fw-bold)}@media (hover:hover){.row-link:hover{border-color:var(--c-primary);background:var(--c-hover)}.row-link[aria-current=page]:hover{background:var(--c-primary-tint)}button.visit-chip:hover{border-color:var(--c-primary)}.add-slot:hover{background:var(--c-hover)}}.cap-row{gap:var(--sp-2) var(--sp-6);margin:0 0 var(--sp-3);flex-wrap:wrap;display:flex}.cap-row:empty{display:none}.hint-text{color:var(--c-text-sub);margin:0}.plain-link{color:inherit;text-decoration:none}.week-person{gap:.125rem;display:grid}@media (hover:hover){.plain-link:hover .who-name{color:var(--c-primary);text-decoration:underline}}.grouped-list{margin:0;padding:0;list-style:none}.grouped-item{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-divider);gap:var(--sp-2);display:grid}.grouped-item:first-child{border-top:0}.grouped-label{font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--c-text-sub);margin:0}.grouped-row{align-items:baseline;gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;display:flex}.grouped-row a{min-height:var(--target);font-weight:var(--fw-strong);align-items:center;display:inline-flex}.panel-foot-link{padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--c-divider);margin:0}.panel-foot-link a{min-height:var(--target);font-weight:var(--fw-strong);align-items:center;display:inline-flex}.detail-stack{padding-top:var(--sp-4)}.app[data-layout=phone] .detail-stack{padding-top:0}.dialog-fields{gap:var(--sp-4);display:grid}.chip-row.scroll{padding-bottom:var(--sp-1);flex-wrap:nowrap;overflow-x:auto}.chip-row.scroll .chip-filter{flex:none}.nowrap{white-space:nowrap}.panel-body>*+.btn-group,.panel-body>.kv-grid+p{margin-top:var(--sp-4)}
