:root{--color-primary: #5B4CF5;--color-primary-hover: #4A3DE0;--color-primary-light: #EEF0FF;--color-secondary: #10B981;--color-secondary-light: #ECFDF5;--color-danger: #EF4444;--color-danger-hover: #DC2626;--color-danger-light: #FEF2F2;--color-warning: #F59E0B;--color-warning-light: #FFFBEB;--color-bg: #FFFFFF;--color-bg-subtle: #F9FAFB;--color-bg-muted: #F3F4F6;--color-border: #E5E7EB;--color-border-strong: #D1D5DB;--color-text: #111827;--color-text-secondary: #6B7280;--color-text-muted: #9CA3AF;--color-text-inverse: #FFFFFF;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--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;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .25s ease;--sidebar-width: 240px;--header-height: 60px;--content-max-width: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}.container{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:0 var(--space-6)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-width);min-height:100vh;border-right:1px solid var(--color-border);background:var(--color-bg);display:flex;flex-direction:column;position:fixed;top:0;left:0}.app-main{flex:1;margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-height);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-6);gap:var(--space-4);position:sticky;top:0;background:var(--color-bg);z-index:10}.app-content{flex:1;padding:var(--space-8) var(--space-8)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.form-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);transition:border-color var(--transition-fast);outline:none}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:100px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-muted)}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}
