: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));--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;--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-icon{flex:none;width:1.5rem;height:1.5rem}.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-template-columns:repeat(4,minmax(0,1fr));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.5rem;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:disabled{opacity:.55;cursor:not-allowed}.row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.card-list{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.card{padding:var(--sp-4);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg);color:inherit;min-height:6rem;text-decoration:none;display:block}.card .card-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);margin-bottom:var(--sp-1);display:block}a.card .card-title{color:var(--c-primary)}.card.disabled{opacity:.7}.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);border:1px solid;display:inline-block}.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-4);padding-right:calc(var(--target) + var(--sp-2));background:var(--c-info-bg);border:1px solid var(--c-info);border-radius:var(--radius);margin-bottom:var(--sp-4);position:relative}.coach ol{margin:var(--sp-2) 0 0;padding-left:1.4em}.coach .close{top:var(--sp-1);right:var(--sp-1);position:absolute}.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-text);color:var(--c-on-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);flex-wrap:wrap;display:flex;position:fixed}.update-banner p{flex:1;margin:0}.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:24rem;padding:var(--sp-4);background:var(--c-bg);border-radius:var(--radius-lg);border-top:6px solid var(--c-warn);box-shadow:var(--shadow-overlay);display:grid}.idle-warning strong{color:var(--c-warn);font-size:var(--fs-h2)}.idle-warning p{margin:0}.login{gap:var(--sp-4);max-width:28rem;display:grid}.login .field input{width:100%;min-height:var(--target)}.login>.hint{color:var(--c-text-sub);font-size:var(--fs-small);margin:0}.password-row{gap:var(--sp-2);align-items:stretch;display:flex}.password-row input{flex:1;min-width:0}.account{gap:var(--sp-1) var(--sp-4);margin:0 0 var(--sp-3);grid-template-columns:max-content 1fr;display:grid}.account dt{font-weight:var(--fw-bold)}.account dd{margin:0}.stat-value{font-size:var(--fs-h1);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;display:block}@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}a.card:hover{border-color:var(--c-primary);background:var(--c-hover)}.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){padding:0;overflow:hidden}.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))}.app[data-layout=pc] .mc-top{gap:var(--sp-8);grid-template-columns:minmax(20rem,26rem) minmax(0,1fr);align-items:start;display:grid}.app[data-layout=pc] .mc-top h2{margin-top:0}.app[data-layout=pc] .mc-top .card-list{grid-template-columns:repeat(2,minmax(0,1fr))}
