:root{--color-primary: #0284c7;--color-primary-hover: #0369a1;--color-primary-light: rgba(2, 132, 199, .12);--color-secondary: #0d9488;--color-accent: #6366f1;--color-bg: #0b1120;--color-surface: #1e293b;--color-surface-hover: #334155;--color-surface-subtle: #0f172a;--color-border: #334155;--color-border-focus: #38bdf8;--color-text: #f8fafc;--color-text-muted: #94a3b8;--color-text-dim: #64748b;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #3b82f6;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading: "Outfit", "Inter", sans-serif;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .2), 0 2px 4px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .15);--shadow-glow: 0 0 15px rgba(2, 132, 199, .3);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}[data-theme=light]{--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-hover: #f8fafc;--color-surface-subtle: #f1f5f9;--color-border: #e2e8f0;--color-border-focus: #0284c7;--color-text: #0f172a;--color-text-muted: #475569;--color-text-dim: #94a3b8}*{margin:0;padding:0;box-sizing:border-box}html{font-size:87.5%;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;font-size:.9375rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;color:var(--color-text);letter-spacing:-.01em}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-surface-subtle)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}.glass-panel{background:#1e293bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md)}.datagrid-container{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.grid-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border)}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:8px}.grid-table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.grid-table th{background:var(--color-surface-subtle);color:var(--color-text-muted);font-weight:600;padding:10px 14px;border-bottom:2px solid var(--color-border);-webkit-user-select:none;user-select:none;cursor:pointer;white-space:nowrap}.grid-table th:hover{color:var(--color-text);background:var(--color-surface-hover)}.grid-table td{padding:12px 14px;border-bottom:1px solid var(--color-border);color:var(--color-text)}.grid-table tbody tr:nth-child(2n){background-color:var(--color-surface)}.grid-table tbody tr:nth-child(odd){background-color:var(--color-surface-hover)}.grid-table tbody tr:hover{background-color:#0284c726}.grid-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--color-surface-subtle);border-top:1px solid var(--color-border);font-size:.875rem;color:var(--color-text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:9999px;font-size:.75rem;font-weight:600}.badge-success{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-warning{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-danger{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.badge-info{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-text-dim)}.btn-sm{padding:5px 10px;font-size:.775rem}.btn-icon{padding:6px;border-radius:var(--radius-sm)}.input-control{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:8px 12px;border-radius:var(--radius-sm);outline:none;font-size:.875rem;transition:border-color .2s ease}.input-control:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-primary-light)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .25s ease-out forwards}.float-menu-panel{position:fixed;top:50%;left:14px;height:72vh;width:255px;z-index:99999;display:flex;flex-direction:column;background:var(--color-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:2px solid var(--color-border);border-radius:16px;box-shadow:0 8px 40px #00000059,0 0 0 1px #ffffff0d inset;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .25s ease;transform:translateY(-50%) translate(0);opacity:1;overflow:hidden;color:var(--color-text)}.float-menu-panel.hidden{transform:translateY(-50%) translate(calc(-100% - 20px));opacity:0;pointer-events:none}.menu-tab-collapsed{position:fixed;top:50%;left:0;transform:translateY(-50%);z-index:99998;width:32px;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:10px 0;background:var(--color-surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:2px solid var(--color-border);border-left:none;border-radius:0 10px 10px 0;box-shadow:4px 0 20px #00000040;cursor:pointer;transition:background .2s,box-shadow .2s,border-color .2s;-webkit-user-select:none;user-select:none}.menu-tab-collapsed:hover{background:var(--color-surface-hover);border-color:var(--color-primary);box-shadow:4px 0 24px #0284c766}.menu-tab-label-top{font-size:8px;font-weight:800;color:var(--color-primary);letter-spacing:.05em;margin-bottom:8px;padding-bottom:3px;border-bottom:1px solid var(--color-border);width:70%;text-align:center;line-height:1}.menu-tab-text{writing-mode:vertical-rl;transform:rotate(180deg);text-orientation:mixed;display:flex;align-items:center;justify-content:center;width:100%;text-align:center;color:var(--color-text);font-size:10px;font-weight:700;letter-spacing:.1em}.float-nav-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;font-size:.8125rem;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s;color:var(--color-text-muted);background:transparent;width:100%;text-align:left;border:none}.float-nav-btn:hover{background:var(--color-surface-hover);color:var(--color-primary)}.float-nav-btn.active{background:var(--color-primary)!important;color:#fff!important}.float-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:99990;transition:opacity .2s ease}@media print{body{background:#fff!important;color:#000!important}.no-print{display:none!important}}
