:root,[data-theme=dark]{--bg-primary: #0a0d14;--bg-secondary: #121824;--bg-tertiary: #1a2232;--bg-card: rgba(18, 24, 36, .85);--bg-input: #0e141f;--bg-hover: #1e2738;--bg-active: #253147;--border-color: #242f42;--border-subtle: #1a2332;--border-hover: #3d4f6e;--border-glow: rgba(88, 166, 255, .4);--text-main: #f0f6fc;--text-muted: #8b99ad;--text-subtle: #5f6e82;--accent-color: #238636;--accent-hover: #2ea043;--primary-color: #2f81f7;--primary-hover: #388bfd;--primary-glow: rgba(47, 129, 247, .25);--link-color: #58a6ff;--danger-color: #f85149;--danger-bg: rgba(248, 81, 73, .12);--warning-color: #d29922;--warning-bg: rgba(210, 153, 34, .12);--success-color: #3fb950;--success-bg: rgba(63, 185, 80, .12);--info-color: #58a6ff;--info-bg: rgba(88, 166, 255, .12);--card-shadow: 0 8px 28px rgba(0, 0, 0, .45);--card-shadow-hover: 0 12px 36px rgba(0, 0, 0, .55);--topbar-bg: rgba(18, 24, 36, .92);--sidebar-bg: #0f1520;--modal-backdrop: rgba(4, 7, 12, .8)}[data-theme=light]{--bg-primary: #f6f8fb;--bg-secondary: #ffffff;--bg-tertiary: #edf1f7;--bg-card: rgba(255, 255, 255, .95);--bg-input: #ffffff;--bg-hover: #f1f4f9;--bg-active: #e2e8f0;--border-color: #d6dde7;--border-subtle: #e5ebf2;--border-hover: #9bb0c9;--border-glow: rgba(9, 105, 218, .3);--text-main: #1c222b;--text-muted: #576475;--text-subtle: #7d8b9d;--accent-color: #1f883d;--accent-hover: #1a7f37;--primary-color: #0969da;--primary-hover: #0860c5;--primary-glow: rgba(9, 105, 218, .2);--link-color: #0969da;--danger-color: #cf222e;--danger-bg: rgba(207, 34, 46, .1);--warning-color: #9a6700;--warning-bg: rgba(154, 103, 0, .1);--success-color: #1a7f37;--success-bg: rgba(26, 127, 55, .1);--info-color: #0969da;--info-bg: rgba(9, 105, 218, .1);--card-shadow: 0 4px 20px rgba(18, 24, 36, .08);--card-shadow-hover: 0 8px 28px rgba(18, 24, 36, .12);--topbar-bg: rgba(255, 255, 255, .92);--sidebar-bg: #ffffff;--modal-backdrop: rgba(15, 23, 42, .55)}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "Noto Sans", Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--transition-fast: all .15s ease-in-out;--transition-normal: all .25s cubic-bezier(.4, 0, .2, 1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100vh;font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease}a{color:var(--link-color);text-decoration:none;transition:var(--transition-fast)}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid transparent;transition:var(--transition-normal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13.5px;font-weight:500;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-main);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;box-shadow:0 1px 2px #0000000d}.btn:hover{background:var(--bg-hover);border-color:var(--border-hover);text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn.btn-primary{background:linear-gradient(180deg,var(--accent-hover),var(--accent-color));border-color:#00000026;color:#fff;box-shadow:0 2px 6px #23863640}.btn.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 12px #23863659}.btn.btn-blue{background:linear-gradient(180deg,var(--primary-hover),var(--primary-color));border-color:#00000026;color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn.btn-blue:hover{background:var(--primary-hover);box-shadow:0 4px 14px var(--primary-glow)}.btn.btn-danger{background:var(--danger-bg);color:var(--danger-color);border-color:#f851494d}.btn.btn-danger:hover{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn.btn-sm{padding:5px 10px;font-size:12px;border-radius:5px}.btn.btn-lg{padding:12px 22px;font-size:15px;border-radius:var(--radius-md);font-weight:600}.btn.btn-block{width:100%}.input-control,.select-control,.textarea-control{width:100%;padding:9px 12px;font-size:14px;font-family:inherit;background-color:var(--bg-input);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-sm);outline:none;transition:var(--transition-fast);box-shadow:inset 0 1px 2px #0000000a}.input-control::placeholder,.select-control::placeholder,.textarea-control::placeholder{color:var(--text-subtle)}.input-control:focus,.select-control:focus,.textarea-control:focus{border-color:var(--link-color);box-shadow:0 0 0 3px var(--primary-glow)}.input-control:disabled,.select-control:disabled,.textarea-control:disabled{opacity:.6;background-color:var(--bg-tertiary);cursor:not-allowed}.select-control{cursor:pointer}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:22px;box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:var(--transition-normal)}.page-container{max-width:1440px;margin:0 auto;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-header h2{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text-main);display:flex;align-items:center;gap:10px}.page-header .subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}.page-header .header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600;letter-spacing:.02em}.badge.badge-success{background:var(--success-bg);color:var(--success-color);border:1px solid rgba(63,185,80,.35)}.badge.badge-warning{background:var(--warning-bg);color:var(--warning-color);border:1px solid rgba(210,153,34,.35)}.badge.badge-danger{background:var(--danger-bg);color:var(--danger-color);border:1px solid rgba(248,81,73,.35)}.badge.badge-info{background:var(--info-bg);color:var(--info-color);border:1px solid rgba(88,166,255,.35)}.badge.badge-neutral{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm)}.table-responsive::-webkit-scrollbar{height:6px}.table-responsive::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.table-responsive::-webkit-scrollbar-track{background:transparent}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:13.5px}.data-table th,.data-table td{padding:13px 16px;border-bottom:1px solid var(--border-color)}.data-table th{background:var(--bg-tertiary);color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.data-table tbody tr{transition:background .15s ease}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody tr:last-child td{border-bottom:none}.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;transition:var(--transition-normal)}.theme-toggle-btn:hover{background:var(--bg-hover);border-color:var(--border-hover);transform:rotate(15deg) scale(1.05)}.theme-toggle-btn svg{width:18px;height:18px;fill:currentColor}.alert-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-radius:var(--radius-md);margin-bottom:20px;font-size:13.5px;flex-wrap:wrap}.alert-banner.alert-warning{background:linear-gradient(90deg,#d2992226,#d299220d);border:1px solid rgba(210,153,34,.4);color:var(--text-main)}.alert-banner.alert-info{background:linear-gradient(90deg,#58a6ff26,#58a6ff0d);border:1px solid rgba(88,166,255,.4);color:var(--text-main)}.alert-banner .banner-content{display:flex;align-items:center;gap:12px}.alert-banner .banner-actions{display:flex;align-items:center;gap:10px}@media (max-width: 1024px){.page-container{padding:0 4px}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header .header-actions,.page-header .header-actions .btn{width:100%}.card{padding:16px;border-radius:var(--radius-sm)}.data-table th,.data-table td{padding:10px 12px}}
