@tailwind utilities;:root{color-scheme:light;--bg: #f0f2f5;--panel: rgba(255, 255, 255, .72);--panel-2: rgba(241, 245, 249, .8);--panel-solid: #ffffff;--text: #1d1d1f;--text-secondary: #6e6e73;--text-tertiary: #86868b;--muted: #8e8e93;--accent: #1e3a5f;--accent-hover: #162d4d;--accent-glow: rgba(30, 58, 95, .3);--on-accent: #ffffff;--primary: #1e3a5f;--primary-hover: #162d4d;--text-primary: #1d1d1f;--border: rgba(0, 0, 0, .08);--border-input: rgba(120, 120, 130, .4);--header: rgba(255, 255, 255, .85);--input-bg: rgba(255, 255, 255, .9);--hover-bg: rgba(0, 0, 0, .04);--success: #30d158;--warning: #ff9f0a;--error: #ff453a;--info: #0a84ff;--btn-bg: rgba(240, 240, 245, .9);--btn-border: rgba(0, 0, 0, .12);--btn-text: #374151;--btn-bg-hover: rgba(230, 230, 235, 1);--btn-danger-bg: rgba(255, 69, 58, .12);--btn-danger-border: rgba(255, 69, 58, .25);--btn-danger-text: #dc2626;--btn-danger-bg-hover: rgba(255, 69, 58, .2);--btn-ghost-bg: transparent;--btn-ghost-text: #4b5563;--btn-ghost-bg-hover: rgba(0, 0, 0, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--shadow: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-md: 0 8px 24px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .08);--font-sans: "Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--glass-border: rgba(255, 255, 255, .18);--glass-highlight: rgba(255, 255, 255, .5);--blur-sm: blur(12px);--blur-md: blur(24px);--saturate: saturate(1.8);--aurora-1: rgba(120, 119, 198, .12);--aurora-2: rgba(255, 119, 198, .08);--aurora-3: rgba(64, 156, 255, .1);--form-height-sm: 32px;--form-height-md: 40px;--form-height-lg: 48px;--btn-min-width: 64px;--form-radius: 8px;--form-font-sm: .6875rem;--form-font-md: .8125rem;--form-font-lg: .9375rem;--fs-page-title: 16px;--fs-modal-title: 15px;--fs-section: 11px;--fs-label: 12px;--fs-form: 13px;--fs-grid: 13px;--fs-grid-header: 12px;--fs-button: 13px;--fs-body: 13px;--resizer: rgba(0, 0, 0, .1)}[data-theme=dark]{color-scheme:dark;--bg: #0a0a0c;--panel: rgba(30, 30, 35, .72);--panel-2: rgba(45, 45, 55, .6);--panel-solid: #1a1a1f;--text: #f5f5f7;--text-secondary: #a1a1a6;--text-tertiary: #86868b;--muted: #8e8e93;--accent: #4a7fb5;--accent-hover: #3d6d9e;--accent-glow: rgba(74, 127, 181, .4);--on-accent: #ffffff;--primary: #4a7fb5;--primary-hover: #3d6d9e;--text-primary: #f5f5f7;--border: rgba(255, 255, 255, .08);--border-input: rgba(140, 140, 150, .5);--header: rgba(20, 20, 25, .85);--input-bg: rgba(30, 30, 35, .9);--hover-bg: rgba(255, 255, 255, .06);--success: #30d158;--warning: #ff9f0a;--error: #ff453a;--info: #0a84ff;--btn-bg: rgba(255, 255, 255, .08);--btn-border: rgba(255, 255, 255, .1);--btn-text: #f5f5f7;--btn-bg-hover: rgba(255, 255, 255, .12);--btn-danger-bg: rgba(255, 69, 58, .15);--btn-danger-border: rgba(255, 69, 58, .3);--btn-danger-text: #ff6961;--btn-danger-bg-hover: rgba(255, 69, 58, .25);--btn-ghost-bg: transparent;--btn-ghost-text: #f5f5f7;--btn-ghost-bg-hover: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .12);--blur-sm: blur(12px);--blur-md: blur(24px);--saturate: saturate(1.8);--aurora-1: rgba(120, 119, 198, .15);--aurora-2: rgba(255, 119, 198, .1);--aurora-3: rgba(64, 156, 255, .12);--resizer: rgba(255, 255, 255, .1)}*{box-sizing:border-box}button,input,select,textarea{color:inherit;font:inherit}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.form-label{font-size:var(--fs-label);font-weight:600;color:var(--text-secondary);line-height:1.4}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#7878801a;border-radius:5px}::-webkit-scrollbar-thumb{background:#78788080;border-radius:5px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#787880b3;background-clip:padding-box}*{scrollbar-width:thin;scrollbar-color:rgba(120,120,128,.5) rgba(120,120,128,.1)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 20% 40%,var(--aurora-1),transparent),radial-gradient(ellipse 60% 40% at 80% 60%,var(--aurora-2),transparent),radial-gradient(ellipse 50% 30% at 50% 20%,var(--aurora-3),transparent);pointer-events:none;z-index:-1;animation:auroraShift 20s ease-in-out infinite alternate}@keyframes auroraShift{0%{opacity:.6;transform:scale(1) rotate(0)}50%{opacity:.8;transform:scale(1.05) rotate(.5deg)}to{opacity:.6;transform:scale(1) rotate(-.5deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:var(--form-height-md);min-width:var(--btn-min-width);border-radius:var(--form-radius);font-size:var(--form-font-md);font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid transparent;white-space:nowrap}.btn-sm{height:var(--form-height-sm);font-size:var(--form-font-sm)}.btn-lg{height:var(--form-height-lg);font-size:var(--form-font-lg)}.btn-primary{background:var(--accent);color:var(--on-accent);border:1.5px solid rgba(255,255,255,.12);border-radius:999px;padding:0 1.75rem;gap:.25rem;box-shadow:0 0 12px var(--accent-glow),inset 0 1px #ffffff0f;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 20px var(--accent-glow),inset 0 1px #ffffff14}.btn-secondary{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-border)}.btn-secondary:hover:not(:disabled){background:var(--btn-bg-hover)}.btn-danger{background:var(--btn-danger-bg);color:var(--btn-danger-text);border-color:var(--btn-danger-border)}.btn-danger:hover:not(:disabled){background:var(--btn-danger-bg-hover)}.btn-ghost{background:var(--btn-ghost-bg);color:var(--btn-ghost-text)}.btn-ghost:hover:not(:disabled){background:var(--btn-ghost-bg-hover)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.25rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}.input{width:100%;height:var(--form-height-md);padding:0 .75rem;background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--form-radius);font-size:var(--form-font-md);color:var(--text);transition:border-color .15s}.input-sm{height:var(--form-height-sm);font-size:var(--form-font-sm)}.input-lg{height:var(--form-height-lg);font-size:var(--form-font-lg)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),0 0 16px var(--accent-glow);transition:border-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.select{height:var(--form-height-md);padding:0 2rem 0 .75rem;background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--form-radius);font-size:var(--form-font-md);color:var(--text);cursor:pointer;transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}.select-sm{height:var(--form-height-sm);font-size:var(--form-font-sm)}.select-lg{height:var(--form-height-lg);font-size:var(--form-font-lg)}.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),0 0 16px var(--accent-glow);transition:border-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1)}.form-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.form-row>.input,.form-row>.select{width:auto}.form-row--sm>.btn,.form-row--sm>.input,.form-row--sm>.select{height:var(--form-height-sm);font-size:var(--form-font-sm)}.form-row--lg>.btn,.form-row--lg>.input,.form-row--lg>.select{height:var(--form-height-lg);font-size:var(--form-font-lg)}.login-page-root{position:relative;width:100vw;height:100vh;overflow:hidden}.login-page-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.login-page-container{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;padding:1rem}.login-page-content{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:28px;opacity:0;transform:translateY(20px);transition:all .8s cubic-bezier(.16,1,.3,1)}.login-page-content--mounted{opacity:1;transform:translateY(0)}.login-brand{text-align:center}.login-brand__symbol{width:72px;height:72px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 60%,transparent),color-mix(in srgb,var(--accent) 40%,#4f46e5));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px var(--accent-glow),0 0 80px color-mix(in srgb,var(--accent) 12%,transparent);position:relative}.login-brand__orbit{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);animation:login-orbit-pulse 5s ease-in-out infinite}.login-brand__orbit--outer{top:-14px;right:-14px;bottom:-14px;left:-14px;border-color:color-mix(in srgb,var(--accent) 8%,transparent);animation-delay:1.5s}.login-brand__title{font-size:27px;font-weight:700;margin:0 0 8px;letter-spacing:-.03em;background:linear-gradient(135deg,var(--text) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-brand__subtitle{font-size:13px;color:var(--accent);margin:0;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.login-form{width:100%;background:color-mix(in srgb,var(--panel-solid) 35%,transparent);backdrop-filter:blur(60px) saturate(180%);-webkit-backdrop-filter:blur(60px) saturate(180%);border-radius:22px;border:1px solid var(--glass-border);padding:34px 30px;box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-highlight)}.login-form__heading{font-size:18px;font-weight:600;color:var(--text);margin:0 0 24px;text-align:center;letter-spacing:-.01em}.login-form__field{margin-bottom:16px}.login-form__field--last{margin-bottom:22px}.login-form__label{display:block;font-size:11px;font-weight:500;color:var(--text-tertiary);margin-bottom:6px;letter-spacing:.05em;text-transform:uppercase}.login-form__input-wrap{border-radius:var(--form-radius);border:1px solid var(--border);background:var(--hover-bg);transition:all .3s cubic-bezier(.16,1,.3,1)}.login-form__input-wrap--focus{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:0 0 0 3px var(--accent-glow),0 0 20px color-mix(in srgb,var(--accent) 6%,transparent)}.login-form__input{width:100%;height:var(--form-height-lg);padding:0 16px;border:none;background:transparent;outline:none;color:var(--text);font-size:14px;font-family:inherit}.login-form__input::placeholder{color:var(--muted)}.login-form__input-wrap--password{position:relative}.login-form__input-wrap--password .login-form__input{padding-right:48px}.login-form__eye-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--form-radius);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:color .15s}.login-form__eye-btn:hover{color:var(--text)}.login-form__error-area{min-height:40px}.login-form__submit{width:100%;height:var(--form-height-lg);border-radius:var(--form-radius);border:none;background:linear-gradient(135deg,var(--accent),var(--primary),color-mix(in srgb,var(--accent) 70%,#4f46e5));color:var(--on-accent);font-size:14.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 24px var(--accent-glow),0 1px 3px #0003;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px}.login-form__submit:hover:not(:disabled){box-shadow:0 8px 32px var(--accent-glow),0 2px 4px #0003;transform:translateY(-1px)}.login-form__submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.login-form__spinner{animation:login-spin .8s linear infinite}.login-footer{display:flex;align-items:center;gap:12px}.login-footer__theme-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--hover-bg);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all .2s}.login-footer__theme-btn:hover{background:var(--accent);color:var(--on-accent)}.login-footer__text{font-size:11px;color:var(--text-tertiary);letter-spacing:.05em}@keyframes login-orbit-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.06)}}@keyframes login-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-layout{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.app-header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--header);backdrop-filter:blur(20px) saturate(1.8);-webkit-backdrop-filter:blur(20px) saturate(1.8);border-bottom:1px solid var(--border);z-index:100}.app-header__left{display:flex;align-items:center;gap:12px}.app-header__logo{font-size:15px;font-weight:700;color:var(--text)}.app-header__right{display:flex;align-items:center;gap:8px}.app-header__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.app-header__icon-btn:hover,.app-header__icon-btn.active{background:var(--hover-bg);color:var(--text)}.app-header__user-menu{position:relative;margin-left:8px}.app-header__user-trigger{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;transition:all .15s ease;color:var(--text);font:inherit}.app-header__user-trigger:hover,.app-header__user-trigger.active{background:var(--hover-bg);border-color:var(--border)}.app-header__avatar{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.app-header__user-name{font-size:12px;font-weight:500;color:var(--text)}.app-header__chevron{color:var(--text-tertiary);transition:transform .2s ease}.app-header__chevron.open{transform:rotate(180deg)}.app-header__dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--panel);backdrop-filter:var(--blur-md) var(--saturate);-webkit-backdrop-filter:var(--blur-md) var(--saturate);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px;z-index:200;animation:slidedown .15s ease}.app-header__dropdown-header{padding:10px 12px}.app-header__dropdown-name{font-size:12px;font-weight:600;color:var(--text)}.app-header__dropdown-email{font-size:11px;color:var(--text-tertiary);margin-top:2px}.app-header__dropdown-divider{height:1px;background:var(--border);margin:4px 8px}.app-header__dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .12s ease}.app-header__dropdown-item:hover{background:var(--hover-bg);color:var(--text)}.app-header__dropdown-item--danger:hover{background:var(--btn-danger-bg);color:var(--btn-danger-text)}.resizable-container{position:relative;display:flex;flex:1;width:100%;overflow:hidden}.resizable-container .col{height:100%;overflow:auto}.resizable-container .left{background:var(--panel);backdrop-filter:var(--blur-md) var(--saturate);-webkit-backdrop-filter:var(--blur-md) var(--saturate);border-right:1px solid var(--border);box-shadow:inset -1px 0 0 var(--glass-highlight);flex-shrink:0}.resizable-container .center{background:var(--panel-2);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);flex:1 1 auto;min-width:100px;overflow-y:auto;padding:8px 4px}.resizable-container .right{background:var(--panel);backdrop-filter:var(--blur-md) var(--saturate);-webkit-backdrop-filter:var(--blur-md) var(--saturate);border-left:1px solid var(--border);box-shadow:inset 1px 0 0 var(--glass-highlight);min-width:200px;flex-shrink:0}.resizer{width:8px;background:transparent;cursor:col-resize;position:relative;flex-shrink:0;z-index:10;transition:background .15s ease}.resizer:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:48px;background:var(--border);border-radius:2px;opacity:1;transition:opacity .15s ease,background .15s ease}.resizer:hover:before{background:var(--text-secondary)}.resizer.active:before{background:var(--accent)}.side-nav{padding:12px 0}.side-nav__list,.side-nav__sub-list{list-style:none;margin:0;padding:0}.side-nav__item{display:flex;align-items:center;gap:10px;padding:8px 16px;color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;border-radius:8px;margin:2px 8px;transition:background .15s ease,color .15s ease;cursor:pointer}.side-nav__item:hover{background:var(--hover-bg);color:var(--text)}.side-nav__item.active{background:var(--accent);color:var(--on-accent)}.side-nav__item.sub{padding-left:40px;font-size:12px}.side-nav__icon{display:inline-flex;align-items:center;flex-shrink:0}.side-nav__label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-nav__group-toggle{width:100%;border:none;background:none;font:inherit;text-align:left}.side-nav__chevron{flex-shrink:0;opacity:.5;margin-left:auto}.side-nav__loading,.side-nav__error{padding:16px;font-size:12px;color:var(--text-tertiary);text-align:center}.side-nav__error{color:var(--error)}.side-nav__separator{border:none;border-top:1px solid var(--border);margin:8px 16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slidedown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes scalein{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fadein{animation:fadein .4s cubic-bezier(.16,1,.3,1) both}.animate-slideup{animation:slideup .5s cubic-bezier(.16,1,.3,1) both}.animate-slidedown{animation:slidedown .5s cubic-bezier(.16,1,.3,1) both}.animate-scalein{animation:scalein .3s cubic-bezier(.16,1,.3,1) both}.delay-1{animation-delay:.05s}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.delay-4{animation-delay:.2s}.delay-5{animation-delay:.25s}.hover-lift{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-lift:active{transform:translateY(0)}.alert{padding:10px 14px;border-radius:10px;font-size:12px;display:flex;align-items:center;gap:8px}.alert-error{background:#ff453a14;border:1px solid rgba(255,69,58,.15);color:var(--error)}.alert-warning{background:#ff9f0a14;border:1px solid rgba(255,159,10,.15);color:var(--warning)}.alert-info{background:#0a84ff14;border:1px solid rgba(10,132,255,.15);color:var(--info)}.alert-success{background:#30d15814;border:1px solid rgba(48,209,88,.15);color:var(--success)}@media(max-width:640px){.resizable-container .left{position:fixed;top:56px;left:0;bottom:0;z-index:50;box-shadow:var(--shadow-lg)}.resizable-container .right,.resizer{display:none}}@media(min-width:641px)and (max-width:1024px){.resizable-container .right{display:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}
