: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));--c-bg:#fff;--c-surface:#f4f6f5;--c-text:#1a1d1c;--c-text-sub:#4a524e;--c-primary:#1f6f4a;--c-primary-dark:#17573a;--c-border:#8a948f;--c-error:#b3261e;--c-error-bg:#fdecea;--c-warn:#8a5300;--c-warn-bg:#fff4e0;--c-info:#1f5fa8;--c-info-bg:#e8f1fb;--c-focus:#1f5fa8;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-6:1.5rem;--sp-8:2rem;--radius:.75rem;--target:3rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-body);color:var(--c-text);background:var(--c-bg);word-break:keep-all;overflow-wrap:anywhere;margin:0;line-height:1.6}h1{font-size:var(--fs-h1);margin:0 0 var(--sp-4);line-height:1.3}h2{font-size:var(--fs-h2);margin:var(--sp-6) 0 var(--sp-3);line-height:1.35}p{margin:0 0 var(--sp-3)}a{color:var(--c-primary)}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.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-primary);color:#fff;display:flex;position:sticky;top:0}.topbar .title{font-size:var(--fs-h2);flex:1;margin:0;font-weight:700}.topbar a,.topbar button{color:#fff}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}.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;border-radius:var(--radius);cursor:pointer;border:2px solid var(--c-primary);background:var(--c-primary);color:#fff;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--c-primary-dark)}.btn.secondary{color:var(--c-primary);background:#fff}.btn.secondary:hover{background:var(--c-surface)}.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:2px solid var(--c-border);border-radius:var(--radius);color:inherit;background:#fff;min-height:6rem;text-decoration:none;display:block}a.card:hover{border-color:var(--c-primary);background:var(--c-surface)}.card .card-title{font-size:var(--fs-h2);color:var(--c-primary);margin-bottom:var(--sp-1);font-weight:700;display:block}.card.disabled{opacity:.7}.badge{font-size:var(--fs-small);padding:0 var(--sp-2);background:var(--c-surface);color:var(--c-text-sub);border:1px solid var(--c-border);border-radius:999px;display:inline-block}.notice{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);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:2px 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);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-weight:700;display:flex;position:absolute;top:0;left:0}table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}th,td{border:1px solid var(--c-border);padding:var(--sp-2);text-align:left;vertical-align:top}th{background:var(--c-surface)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}fieldset{border:2px solid var(--c-border);border-radius:var(--radius);padding:var(--sp-4);margin:0 0 var(--sp-4)}legend{padding:0 var(--sp-2);font-weight:700}.choice{align-items:center;gap:var(--sp-3);min-height:var(--target);cursor:pointer;display:flex}.choice input{width:1.5rem;height:1.5rem}.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:#fff;border-radius:var(--radius);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:#1a1d1c73;place-items:center;display:grid;position:fixed;inset:0}.idle-warning{gap:var(--sp-3);width:100%;max-width:24rem;padding:var(--sp-4);border-radius:var(--radius);border-top:6px solid var(--c-warn);background:#fff;display:grid;box-shadow:0 8px 24px #00000040}.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:700}.account dd{margin:0}
