@import "https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--green-50:#f0f7f3;--green-100:#d9ece2;--green-200:#a7d8c4;--green-300:#76c0a4;--green-400:#4aa183;--green-500:#1f6f5c;--green-600:#1a5d4d;--green-700:#15493d;--green-800:#0e3b30;--green-900:#082620;--neutral-0:#fff;--neutral-50:#f7f9f8;--neutral-100:#eef2f0;--neutral-200:#dfe5e2;--neutral-300:#c5cecb;--neutral-400:#9aa6a2;--neutral-500:#6f7c78;--neutral-600:#515c59;--neutral-700:#3a4340;--neutral-800:#262d2b;--neutral-900:#161b1a;--clay-400:#d98f6b;--clay-500:#c4684a;--amber-400:#e0a64b;--amber-500:#cf8a2b;--sky-400:#5aa9d6;--sky-500:#2f7db8;--moss-500:#7a8b3c;--success-500:var(--green-500);--success-50:var(--green-50);--warning-500:var(--amber-500);--warning-50:#fcf4e4;--danger-500:#c4503a;--danger-50:#fbedea;--info-500:var(--sky-500);--info-50:#e9f3fa;--text-strong:var(--neutral-900);--text-body:var(--neutral-700);--text-muted:var(--neutral-500);--text-subtle:var(--neutral-400);--text-inverse:var(--neutral-0);--text-brand:var(--green-600);--text-on-brand:#fff;--surface-page:var(--neutral-50);--surface-card:var(--neutral-0);--surface-sunken:var(--neutral-100);--surface-raised:var(--neutral-0);--surface-brand:var(--green-500);--surface-brand-subtle:var(--green-50);--surface-inverse:var(--green-900);--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--neutral-400);--border-brand:var(--green-500);--border-focus:var(--green-400);--action-primary:var(--green-500);--action-primary-hover:var(--green-600);--action-primary-active:var(--green-700);--action-ghost-hover:var(--green-50);--ring:0 0 0 3px color-mix(in srgb, var(--green-400) 45%, transparent);--viz-1:var(--green-500);--viz-2:var(--sky-500);--viz-3:var(--amber-500);--viz-4:var(--clay-500);--viz-5:var(--green-300);--viz-6:var(--moss-500);--font-sans:"Mulish", "IBM Plex Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:3rem;--text-5xl:3.75rem;--leading-tight:1.12;--leading-snug:1.3;--leading-normal:1.55;--leading-relaxed:1.7;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.04em;--type-display:var(--weight-extrabold) var(--text-5xl)/var(--leading-tight) var(--font-sans);--type-h1:var(--weight-bold) var(--text-3xl)/var(--leading-tight) var(--font-sans);--type-h2:var(--weight-bold) var(--text-2xl)/var(--leading-snug) var(--font-sans);--type-h3:var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);--type-body-lg:var(--weight-regular) var(--text-lg)/var(--leading-relaxed) var(--font-sans);--type-body:var(--weight-regular) var(--text-md)/var(--leading-normal) var(--font-sans);--type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);--type-label:var(--weight-semibold) var(--text-sm)/1.2 var(--font-sans);--type-caption:var(--weight-medium) var(--text-xs)/1.4 var(--font-sans);--type-mono:var(--weight-regular) var(--text-sm)/1.4 var(--font-mono);--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--container-max:1200px;--sidebar-width:248px;--topbar-height:64px;--control-sm:32px;--control-md:40px;--control-lg:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:999px;--radius-circle:50%;--shadow-xs:0 1px 2px #0e3b300f;--shadow-sm:0 2px 6px #0e3b3012;--shadow-md:0 6px 18px #0e3b3017;--shadow-lg:0 16px 40px #0e3b301f;--shadow-focus:var(--ring);--shadow-inset:inset 0 1px 2px #0e3b300f;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--transition-base:all var(--duration-base) var(--ease-out)}*,:before,:after{box-sizing:border-box}body{font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4,p{margin:0}a{color:var(--text-brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}::selection{background:var(--green-200);color:var(--green-900)}:focus-visible{box-shadow:var(--ring);border-radius:var(--radius-sm);outline:none}.eyebrow{font:var(--type-caption);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.tabular{font-variant-numeric:tabular-nums}@keyframes riseIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}#root{min-height:100vh}.app-shell{background:var(--surface-page);min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);gap:var(--space-2);padding:var(--space-6) var(--space-4);border-right:1px solid var(--border-subtle);background:#eaf2fb;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-5) var(--space-2);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition-base);display:flex}.app-brand:hover{background:var(--action-ghost-hover);text-decoration:none}.app-brand-name{font:var(--weight-bold) var(--text-md)/1.1 var(--font-sans);color:var(--text-strong);letter-spacing:var(--tracking-tight)}.app-brand-sub{font:var(--weight-semibold) var(--text-2xs)/1.2 var(--font-sans);color:var(--text-brand);letter-spacing:var(--tracking-wide)}.app-nav-item{align-items:center;gap:var(--space-3);width:100%;height:42px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--text-body);cursor:pointer;text-align:left;transition:var(--transition-base);font:var(--weight-medium) var(--text-sm)/1.2 var(--font-sans);background:0 0;border:none;text-decoration:none;display:flex}.app-nav-item:hover{background:var(--action-ghost-hover);text-decoration:none}.app-nav-item.active{background:var(--green-50);color:var(--green-700);font:var(--weight-semibold) var(--text-sm)/1.2 var(--font-sans)}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{align-items:center;gap:var(--space-4);height:var(--topbar-height);padding:0 var(--space-8);border-bottom:1px solid var(--border-subtle);z-index:20;background:#fbfdff;display:flex;position:sticky;top:0}.app-header-title{font:var(--weight-bold) var(--text-md)/1.2 var(--font-sans);color:var(--text-strong);letter-spacing:var(--tracking-tight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-search{align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-page);color:var(--text-muted);display:inline-flex}.app-content{padding:var(--space-8);flex:1}.app-content-inner{max-width:var(--container-max);gap:var(--space-6);animation:riseIn .24s var(--ease-out);flex-direction:column;margin:0 auto;display:flex}.app-bottomnav{z-index:20;background:var(--surface-card);border-top:1px solid var(--border-subtle);padding:var(--space-2) var(--space-2) var(--space-3) var(--space-2);display:none;position:sticky;bottom:0}.app-bottomnav-item{min-height:48px;color:var(--text-muted);cursor:pointer;font:var(--weight-medium) var(--text-2xs)/1 var(--font-sans);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;text-decoration:none;display:flex}.app-bottomnav-item.active{color:var(--green-600);font:var(--weight-semibold) var(--text-2xs)/1 var(--font-sans)}@media (width<=860px){.app-sidebar{display:none}.app-bottomnav{display:flex}.app-content{padding:var(--space-5) var(--space-4) var(--space-6)}.app-header{padding:0 var(--space-4)}}
