:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary: #0b0f17;--bg-secondary: #111827;--bg-card: #1f2937;--bg-hover: #374151;--bg-input: #111827;--border-color: #374151;--border-subtle: #2d3748;--text-primary: #f9fafb;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent-indigo: #6366f1;--accent-indigo-hover: #4f46e5;--accent-emerald: #10b981;--accent-rose: #f43f5e;--accent-amber: #f59e0b;--accent-cyan: #06b6d4;--badge-active-bg: rgba(16, 185, 129, .15);--badge-active-text: #34d399;--badge-expired-bg: rgba(244, 63, 94, .15);--badge-expired-text: #fb7185;--badge-amber-bg: rgba(245, 158, 11, .15);--badge-amber-text: #fbbf24;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .5);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px}[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-hover: #f1f5f9;--bg-input: #f8fafc;--border-color: #e2e8f0;--border-subtle: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--accent-indigo: #4f46e5;--accent-indigo-hover: #4338ca;--accent-emerald: #059669;--accent-rose: #e11d48;--accent-amber: #d97706;--accent-cyan: #0891b2;--badge-active-bg: #d1fae5;--badge-active-text: #047857;--badge-expired-bg: #ffe4e6;--badge-expired-text: #be123c;--badge-amber-bg: #fef3c7;--badge-amber-text: #b45309;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .12)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}.num-tabular,.cell-number,.stat-value,.summary-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{height:64px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:40}.brand-section{display:flex;align-items:center;gap:12px}.brand-logo{width:34px;height:34px;background:linear-gradient(135deg,var(--accent-indigo),#818cf8);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;box-shadow:0 2px 8px #6366f166}.brand-title{font-size:18px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.header-center{flex:1;max-width:400px;margin:0 24px}.search-wrapper{position:relative;width:100%}.search-input{width:100%;padding:8px 12px 8px 36px;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--accent-indigo);box-shadow:0 0 0 3px #6366f126}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:16px;height:16px}.header-actions{display:flex;align-items:center;gap:12px}.currency-strip{display:flex;align-items:center;gap:16px;padding:6px 14px;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:13px}.curr-item{display:flex;align-items:center;gap:6px}.curr-label{color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase}.curr-val{font-weight:600;color:var(--accent-emerald)}.btn-icon{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-icon:hover{background-color:var(--bg-hover);color:var(--text-primary)}.btn-primary{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:var(--accent-indigo);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:14px;cursor:pointer;transition:background-color .2s,transform .1s}.btn-primary:hover{background-color:var(--accent-indigo-hover)}.btn-secondary{display:flex;align-items:center;gap:8px;padding:8px 14px;background-color:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-weight:500;font-size:13px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:var(--bg-hover)}.app-body{display:flex;flex:1;min-height:0}.app-sidebar{width:220px;flex-shrink:0;background-color:var(--bg-secondary);border-right:1px solid var(--border-color);padding:20px 12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.nav-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;border:none;background:transparent;width:100%;text-align:left}.nav-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background-color:#6366f126;color:var(--accent-indigo);font-weight:600}.nav-item-left{display:flex;align-items:center;gap:10px}.nav-badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:12px;background-color:var(--bg-input);color:var(--text-muted)}.nav-item.active .nav-badge{background-color:var(--accent-indigo);color:#fff}.app-content{flex:1;min-width:0;padding:24px;overflow-x:auto;overflow-y:auto}.dashboard-grid{display:flex;flex-direction:column;gap:24px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.kpi-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.kpi-title{font-size:13px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.kpi-value-row{display:flex;align-items:baseline;justify-content:space-between}.kpi-value{font-size:26px;font-weight:700;color:var(--text-primary)}.kpi-subtext{font-size:12px;color:var(--text-secondary)}.kpi-accent-bar{position:absolute;top:0;left:0;right:0;height:3px}.kpi-accent-bar.indigo{background-color:var(--accent-indigo)}.kpi-accent-bar.emerald{background-color:var(--accent-emerald)}.kpi-accent-bar.rose{background-color:var(--accent-rose)}.kpi-accent-bar.amber{background-color:var(--accent-amber)}.dash-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title{font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.chart-container{width:100%;height:240px;position:relative}.chart-svg{width:100%;height:100%;overflow:visible}.timeline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.timeline-card{padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-card);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:transform .15s,border-color .15s}.timeline-card:hover{transform:translateY(-2px);border-color:var(--accent-indigo)}.timeline-card.urgent{border-left:4px solid var(--accent-rose)}.timeline-card.warning{border-left:4px solid var(--accent-amber)}.timeline-card.normal{border-left:4px solid var(--accent-emerald)}.timeline-domain{font-weight:600;font-size:14px;color:var(--text-primary)}.timeline-meta{font-size:12px;color:var(--text-secondary)}.days-badge{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:700}.days-badge.urgent{background-color:var(--badge-expired-bg);color:var(--badge-expired-text)}.days-badge.warning{background-color:var(--badge-amber-bg);color:var(--badge-amber-text)}.days-badge.normal{background-color:var(--badge-active-bg);color:var(--badge-active-text)}.chart-scroll-wrapper{position:relative;width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;padding-bottom:4px}.chart-scroll-wrapper::-webkit-scrollbar{height:6px}.chart-scroll-wrapper::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.chart-tooltip-floating{position:absolute;pointer-events:none;z-index:100;background:#111827f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--accent-indigo);border-radius:var(--radius-md);padding:10px 14px;box-shadow:0 12px 30px -5px #000000b3;color:var(--text-primary);font-size:12px;min-width:190px;transition:opacity .1s ease;transform:translate(-50%,-100%) translateY(-12px)}.chart-tooltip-title{font-weight:700;font-size:13px;margin-bottom:6px;color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:4px;display:flex;justify-content:space-between;align-items:center}.chart-tooltip-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:12px}.chart-tooltip-row:last-child{margin-bottom:0}.chart-bar-group{cursor:pointer;transition:opacity .15s ease}.chart-bar-group:hover rect{filter:brightness(1.2)}.table-container-wrapper{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.table-toolbar{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.toolbar-left{display:flex;align-items:center;gap:12px}.table-title{font-size:18px;font-weight:700}.chip-filters{display:flex;align-items:center;gap:6px}.chip-btn{padding:4px 10px;border-radius:14px;border:1px solid var(--border-color);background-color:var(--bg-input);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.chip-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.chip-btn.active{background-color:var(--accent-indigo);color:#fff;border-color:var(--accent-indigo)}.table-scroll-container{overflow-x:auto;max-width:100%}.excel-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.excel-table th{background-color:var(--bg-input);color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer}.excel-table th:hover{color:var(--text-primary)}.excel-table td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);white-space:nowrap;height:38px;vertical-align:middle}.excel-table tr:hover td{background-color:var(--bg-hover)}.cell-editable{cursor:pointer;position:relative}.cell-editable:hover{background-color:#6366f114!important}.cell-input{width:100%;height:30px;background-color:var(--bg-primary);border:2px solid var(--accent-indigo);border-radius:var(--radius-sm);color:var(--text-primary);padding:2px 8px;font-size:13px;font-family:inherit;outline:none}.cell-select{width:100%;height:30px;background-color:var(--bg-primary);border:2px solid var(--accent-indigo);border-radius:var(--radius-sm);color:var(--text-primary);padding:2px 4px;font-size:13px;font-family:inherit;outline:none}.pinned-add-row td{background-color:#6366f10a}.pinned-add-row input,.pinned-add-row select{width:100%;padding:4px 8px;background-color:var(--bg-input);border:1px dashed var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;outline:none}.pinned-add-row input:focus,.pinned-add-row select:focus{border-color:var(--accent-indigo);border-style:solid}.form-select option,.pinned-add-row select option{background-color:var(--bg-secondary);color:var(--text-primary)}.table-summary-strip{padding:12px 20px;background-color:var(--bg-input);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:capitalize}.badge.active{background-color:var(--badge-active-bg);color:var(--badge-active-text)}.badge.expired{background-color:var(--badge-expired-bg);color:var(--badge-expired-text)}.badge.yes{background-color:var(--badge-active-bg);color:var(--badge-active-text)}.badge.no{background-color:var(--bg-hover);color:var(--text-muted)}.log-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.log-badge.create{background-color:var(--badge-active-bg);color:var(--badge-active-text)}.log-badge.update{background-color:#6366f126;color:var(--accent-indigo)}.log-badge.delete{background-color:var(--badge-expired-bg);color:var(--badge-expired-text)}.log-badge.duplicate{background-color:var(--badge-amber-bg);color:var(--badge-amber-text)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;display:flex;justify-content:flex-end}.drawer-content{width:440px;max-width:100%;background-color:var(--bg-secondary);height:100%;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideInRight .25s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.drawer-body{padding:20px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.form-input,.form-select,.form-textarea{width:100%;padding:8px 12px;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none}.form-textarea{min-height:100px;resize:vertical}.drawer-footer{padding:16px 20px;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:flex-end;gap:12px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:60;display:flex;flex-direction:column;gap:8px}.toast{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 18px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:14px;font-size:13px;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-btn{background-color:var(--accent-indigo);color:#fff;border:none;padding:4px 10px;border-radius:var(--radius-sm);font-weight:600;font-size:12px;cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center}.modal-card{width:360px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:20px}.login-title{font-size:20px;font-weight:700;text-align:center}a.table-link{color:var(--accent-indigo);text-decoration:none}a.table-link:hover{text-decoration:underline}
