:root{--font-main:"Pretendard Variable",-apple-system,BlinkMacSystemFont,sans-serif;--c-bg:#f8f9fb;--c-surface:#fff;--c-surface-hover:#f1f3f7;--c-border:hsla(0,0%,100%,.08);--c-border-light:hsla(0,0%,100%,.06);--c-text:#1a1d24;--c-text-secondary:#6b7280;--c-text-muted:#9ca3af;--c-primary:#2563eb;--c-primary-hover:#1d4ed8;--c-primary-light:#eff4ff;--c-primary-text:#fff;--c-success:#059669;--c-success-bg:#ecfdf5;--c-warning:#d97706;--c-warning-bg:#fffbeb;--c-danger:#dc2626;--c-danger-bg:#fef2f2;--c-info:#2563eb;--c-info-bg:#eff6ff;--sidebar-w:260px;--sidebar-bg:#0f1729;--sidebar-text:#8b95a8;--sidebar-text-active:#fff;--sidebar-accent:#293143;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px rgba(0,0,0,.04);--shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,.06),0 2px 4px -2px rgba(0,0,0,.04);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.07),0 4px 6px -4px rgba(0,0,0,.04);--ease:cubic-bezier(.4,0,.2,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{height:100%}body{background:#eee;color:var(--c-text);font-family:var(--font-main);line-height:1.6;margin:0;padding:0}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.admin-layout{display:flex;min-height:100vh;overflow:hidden}.admin-sidebar{background:var(--sidebar-bg);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:transform .3s var(--ease);width:var(--sidebar-w);z-index:100}.sidebar-logo{align-items:center;display:flex;gap:12px;padding:28px 20px 20px}.sidebar-logo .logo-icon{align-items:center;background:var(--sidebar-accent);border-radius:var(--radius);color:#fff;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.sidebar-logo h1{color:#fff;font-size:15px;font-weight:700;letter-spacing:-.02em}.sidebar-logo .logo-sub{color:var(--sidebar-text);font-size:11px;font-weight:400;margin-top:2px;opacity:.7}.sidebar-nav{flex:1;overflow-y:auto;padding:20px 16px}.nav-label{color:#ffffff4d;font-size:10px;font-weight:700;letter-spacing:.08em;margin-top:8px;padding:8px 12px 6px;text-transform:uppercase}.nav-item{align-items:center;border-radius:10px;color:var(--sidebar-text);display:flex;font-size:14.5px;font-weight:500;gap:12px;margin-bottom:4px;padding:5px 10px;transition:all .2s var(--ease)}.nav-item i{font-size:20px;opacity:.65;text-align:center;width:22px}.nav-item:hover{background:#ffffff0d;color:var(--sidebar-text-active)}.nav-item:hover i{opacity:1}.nav-item.active{background:var(--sidebar-accent);color:#287eff;font-weight:600}.nav-item.active i{color:#287eff;opacity:1}.sidebar-user{border-top:1px solid hsla(0,0%,100%,.06);padding:16px 16px 20px}.sidebar-user-info{align-items:center;display:flex;gap:10px}.sidebar-avatar{align-items:center;background:#ffffff1a;border-radius:50%;display:flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.sidebar-avatar,.sidebar-user-name{color:#fff;font-size:13px;font-weight:600}.sidebar-user-role{color:var(--sidebar-text);font-size:11px;opacity:.7}.sidebar-logout{color:var(--sidebar-text);font-size:18px;margin-left:auto;opacity:.5;padding:4px;transition:all .2s}.sidebar-logout:hover{color:var(--c-danger);opacity:1}.admin-main{background:#0d1426;flex:1;margin-left:var(--sidebar-w);min-height:100vh;overflow-x:hidden;overflow-y:auto}.admin-header{align-items:center;background:#0d1426;border-bottom:1px solid var(--c-border-light);display:flex;height:60px;justify-content:space-between;padding:0 32px;position:relative}.admin-header h2{color:#fff;font-size:17px;font-weight:700;letter-spacing:-.02em}.admin-header .breadcrumb{align-items:center;color:var(--c-text-muted);display:flex;font-size:12.5px;gap:6px}.admin-header .breadcrumb span{color:var(--c-text);font-weight:600}.admin-content{overflow-x:hidden;padding:20px 32px 24px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.06);display:flex;gap:16px;justify-content:space-between;padding:20px 24px}.card-header h3{font-size:15px;font-weight:700;letter-spacing:-.01em}.card-body{padding:24px}.stats-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.stat-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 22px;transition:all .2s var(--ease)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card .stat-icon{align-items:center;border-radius:var(--radius);display:flex;font-size:18px;height:40px;justify-content:center;margin-bottom:14px;width:40px}.stat-card .stat-icon.blue{background:var(--c-info-bg);color:var(--c-info)}.stat-card .stat-icon.green{background:var(--c-success-bg);color:var(--c-success)}.stat-card .stat-icon.yellow{background:var(--c-warning-bg);color:var(--c-warning)}.stat-card .stat-icon.red{background:var(--c-danger-bg);color:var(--c-danger)}.stat-card .stat-value{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1;margin-bottom:4px}.stat-card .stat-label{color:var(--c-text-secondary);font-size:12.5px;font-weight:500}.btn{align-items:center;border-radius:var(--radius);display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:8px 16px;transition:all .15s var(--ease);white-space:nowrap}.btn i{font-size:16px}.btn-primary{background:var(--c-primary);color:var(--c-primary-text)}.btn-primary:hover{background:var(--c-primary-hover);box-shadow:var(--shadow)}.btn-secondary{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text)}.btn-secondary:hover{background:var(--c-surface-hover)}.btn-danger{background:var(--c-danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-ghost{color:var(--c-text-secondary);padding:6px 10px}.btn-ghost:hover{background:var(--c-surface-hover);color:var(--c-text)}.btn-sm{font-size:12px;padding:5px 10px}.btn:disabled{opacity:.5;pointer-events:none}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table thead th{background:var(--c-bg);border-bottom:1px solid var(--c-border);color:var(--c-text-muted);cursor:pointer;font-size:11.5px;font-weight:700;letter-spacing:.05em;padding:10px 16px;text-align:left;text-transform:uppercase;transition:color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.data-table thead th:hover{color:var(--c-text)}.data-table thead th.sorted{color:var(--c-primary)}.data-table tbody td{border-bottom:1px solid var(--c-border-light);font-size:13px;padding:12px 16px;vertical-align:middle}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:var(--c-surface-hover)}.data-table tbody tr:last-child td{border-bottom:none}.badge{align-items:center;border-radius:100px;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;letter-spacing:.01em;padding:3px 10px}.badge-active{background:var(--c-success-bg);color:var(--c-success)}.badge-inactive{background:var(--c-warning-bg);color:var(--c-warning)}.badge-suspended{background:var(--c-danger-bg);color:var(--c-danger)}.badge-admin{background:var(--c-info-bg);color:var(--c-info)}.badge-user{background:#f3f4f6;color:#6b7280}.badge:before{background:currentColor;border-radius:50%;content:"";height:5px;width:5px}.form-group{margin-bottom:20px}.form-label{color:var(--c-text-secondary);display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}.form-input,.form-select,.form-textarea{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text);font-size:13.5px;outline:none;padding:9px 12px;transition:all .15s var(--ease);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-light)}.form-input::-moz-placeholder{color:var(--c-text-muted)}.form-input::placeholder{color:var(--c-text-muted)}.form-textarea{min-height:80px;resize:vertical}.form-row{display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-error{color:var(--c-danger);font-size:12px;margin-top:4px}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.search-box{flex:1;min-width:200px;position:relative}.search-box i{color:var(--c-text-muted);font-size:16px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{padding-left:36px}.filter-select{min-width:130px}.pagination{align-items:center;border-top:1px solid var(--c-border-light);display:flex;justify-content:space-between;padding:16px 24px}.pagination-info{color:var(--c-text-secondary);font-size:12.5px}.pagination-buttons{align-items:center;display:flex;gap:4px}.pagination-btn{align-items:center;border-radius:var(--radius-sm);color:var(--c-text-secondary);display:flex;font-size:13px;font-weight:500;height:32px;justify-content:center;transition:all .15s;width:32px}.pagination-btn:hover:not(:disabled){background:var(--c-surface-hover);color:var(--c-text)}.pagination-btn.active{background:var(--c-primary);color:#fff}.pagination-btn:disabled{cursor:not-allowed;opacity:.3}.modal-overlay{align-items:center;animation:fadeIn .2s var(--ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.modal{animation:slideUp .25s var(--ease);background:var(--c-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:460px;width:90%}.modal-header{align-items:center;border-bottom:1px solid var(--c-border-light);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{font-size:16px;font-weight:700}.modal-body{padding:24px}.modal-footer{align-items:center;border-top:1px solid var(--c-border-light);display:flex;gap:8px;justify-content:flex-end;padding:16px 24px}.toast-container{display:flex;flex-direction:column;gap:8px;position:fixed;right:20px;top:20px;z-index:300}.toast{align-items:center;animation:slideInRight .3s var(--ease);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;font-size:13px;font-weight:500;gap:10px;min-width:280px;padding:12px 16px}.toast.success{border-left:3px solid var(--c-success)}.toast.error{border-left:3px solid var(--c-danger)}.toast.info{border-left:3px solid var(--c-info)}.toast i{font-size:18px}.toast.success i{color:var(--c-success)}.toast.error i{color:var(--c-danger)}.toast.info i{color:var(--c-info)}.login-page{align-items:center;background:var(--c-bg);display:flex;justify-content:center;min-height:100vh}.login-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);max-width:400px;padding:40px;width:100%}.login-logo{gap:12px;margin-bottom:32px}.login-logo,.login-logo .logo-icon{align-items:center;display:flex;justify-content:center}.login-logo .logo-icon{background:var(--c-primary);border-radius:var(--radius-lg);color:#fff;font-size:22px;height:44px;width:44px}.login-logo h1{font-size:20px;font-weight:800;letter-spacing:-.03em}.login-error{align-items:center;background:var(--c-danger-bg);border-radius:var(--radius);color:var(--c-danger);display:flex;font-size:12.5px;font-weight:500;gap:8px;margin-bottom:16px;padding:10px 14px}.login-btn{font-size:14px;padding:11px;width:100%}.login-hint{background:var(--c-bg);border-radius:var(--radius);color:var(--c-text-secondary);font-size:11.5px;line-height:1.7;margin-top:20px;padding:12px;text-align:center}.text-right{text-align:right}.text-center{text-align:center}.text-muted{color:var(--c-text-muted)}.text-sm{font-size:12px}.text-danger{color:var(--c-danger)}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.empty-state{color:var(--c-text-muted);padding:48px 24px;text-align:center}.empty-state i{font-size:48px;margin-bottom:12px;opacity:.3}.empty-state p{font-size:14px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.admin-sidebar{transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.admin-main{margin-left:0}.stats-grid{grid-template-columns:1fr}.filter-bar{align-items:stretch;flex-direction:column}.form-row{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto}}
