:root{--color-bg:#f5f5f4;--color-bg-deep:#f0f0ee;--color-surface:#fff;--color-ink:#1c1917;--color-ink-muted:#78716c;--color-line:#e7e5e4;--color-accent:#0f766e;--color-accent-ink:#fff;--color-chart-1:#0f766e;--color-chart-2:#c2410c;--color-chart-3:#0369a1;--color-chart-4:#a16207;--color-chart-5:#57534e;--color-chart-6:#be123c;--color-danger:#b91c1c;--font-sans:"Pretendard", "IBM Plex Sans KR", sans-serif;--font-display:"Noto Serif KR", "Source Serif 4", serif;--text-body:1rem;--text-title:1.375rem;--text-display:1.75rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-control:12px;--touch-min:44px;--shell-max:28rem;--ease-out:cubic-bezier(.22, 1, .36, 1);font-family:var(--font-sans);font-size:var(--text-body);color:var(--color-ink);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background-color:var(--color-bg);background-image:radial-gradient(120% 70% at 50% -20%, color-mix(in srgb, var(--color-ink) 5%, transparent), transparent 55%), linear-gradient(180deg, #f7f7f6 0%, var(--color-bg) 42%, var(--color-bg-deep) 100%);background-attachment:fixed;min-height:100svh;margin:0}#app{min-height:100svh}button{font:inherit;cursor:pointer}button:focus,a:focus,select:focus,input:focus,textarea:focus{outline:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn{min-height:var(--touch-min);border-radius:var(--radius-control);padding:var(--space-3) var(--space-4);transition:background-color .16s var(--ease-out), border-color .16s var(--ease-out), color .16s var(--ease-out), transform .12s var(--ease-out), opacity .16s var(--ease-out);border:1px solid #0000;font-size:.9375rem;font-weight:600}.btn--primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 86%, #000);border-color:color-mix(in srgb, var(--color-accent) 86%, #000)}.btn--secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-line)}.btn--danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--color-danger) 86%, #000);border-color:color-mix(in srgb, var(--color-danger) 86%, #000)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.app-mark{letter-spacing:.14em;color:var(--color-ink);opacity:.7;margin:0;font-size:.75rem;font-weight:600}.app-year{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-ink-muted);margin:0;font-size:.9375rem;font-weight:600}@keyframes app-enter{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes ink-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){.home,.gate,.login,.account,.elog{animation:app-enter .28s var(--ease-out)}.elog__chip,.elog__day{transition:border-color .18s var(--ease-out), background-color .18s var(--ease-out), color .18s var(--ease-out), transform .12s var(--ease-out)}.elog__chip:active:not(:disabled),.elog__day:active:not(:disabled){transform:scale(.97)}}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
