:root{--brand-50: #fff7ed;--brand-100: #ffedd5;--brand-200: #fed7aa;--brand-300: #fdba74;--brand-500: #e76615;--brand-600: #c95510;--brand-700: #a8450d;--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--border: #e5e8ee;--border-strong: #cfd6e0;--text: #0f172a;--text-2: #334155;--text-3: #64748b;--text-4: #94a3b8;--success-bg: #ecfdf5;--success-border: #a7f3d0;--success-fg: #047857;--warning-bg: #fffbeb;--warning-border: #fde68a;--warning-fg: #b45309;--danger-bg: #fff1f2;--danger-border: #fecdd3;--danger-fg: #be123c;--danger-solid: #dc2626;--info-bg: #eff6ff;--info-border: #bfdbfe;--info-fg: #1d4ed8;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .07), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 6px 16px -4px rgba(15, 23, 42, .1), 0 2px 6px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 24px 48px -12px rgba(15, 23, 42, .18);--ring: 0 0 0 3px rgba(231, 102, 21, .18);--sidebar-w: 256px;--content-max: 1360px;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-size:14px}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.5;margin:0}h1,h2,h3,h4,p{margin:0}h1{font-size:22px;font-weight:600;letter-spacing:-.01em}h2{font-size:18px;font-weight:600;letter-spacing:-.01em}h3{font-size:15px;font-weight:600}h4{font-size:13px;font-weight:600;color:var(--text-2)}p{color:var(--text-3)}strong{font-weight:600}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--font-mono);font-size:12.5px}code{background:var(--surface-3);border-radius:4px;color:var(--text-2);padding:1px 5px}.muted{color:var(--text-4)}.hint{color:var(--text-4);font-size:12px}.text-sm{font-size:13px}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}button,input,select,textarea{font:inherit;letter-spacing:0;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:none;box-shadow:var(--ring)}button:focus-visible,a:focus-visible{border-radius:var(--radius)}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);min-height:38px;padding:8px 11px;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;width:100%}input::placeholder,textarea::placeholder{color:var(--text-4)}input:hover,select:hover,textarea:hover{border-color:#b8c1ce}input:focus,select:focus,textarea:focus{border-color:var(--brand-500);box-shadow:var(--ring);outline:none}input:disabled,select:disabled{background:var(--surface-2);color:var(--text-3)}input[type=checkbox],input[type=radio]{accent-color:var(--brand-500);height:16px;width:16px;min-height:0;padding:0;margin:0}select{-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' fill='none' stroke='%2364748b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}input[type=date]{min-width:150px}.btn,.primary-button,.secondary-button,.ghost-button,.danger-button,.icon-button{align-items:center;border:1px solid transparent;border-radius:var(--radius);display:inline-flex;font-weight:500;gap:8px;justify-content:center;line-height:1;min-height:38px;padding:0 14px;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,transform 80ms ease;white-space:nowrap;text-decoration:none}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.ghost-button:active:not(:disabled),.danger-button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(.5px)}.primary-button{background:var(--brand-500);box-shadow:var(--shadow-xs);color:#fff}.primary-button:hover:not(:disabled){background:var(--brand-600)}.secondary-button{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-xs);color:var(--text-2)}.secondary-button:hover:not(:disabled){background:var(--surface-2);border-color:#b8c1ce}.ghost-button{background:transparent;color:var(--text-2)}.ghost-button:hover:not(:disabled){background:var(--surface-3)}.danger-button{background:var(--danger-solid);color:#fff}.danger-button:hover:not(:disabled){background:#b91c1c}.btn-sm{min-height:32px;padding:0 10px;font-size:13px}.btn-lg{min-height:44px;padding:0 18px;font-size:15px}.btn-block{width:100%}.icon-button{background:transparent;color:var(--text-3);height:34px;min-height:34px;width:34px;padding:0}.icon-button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-button.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-fg)}.icon-button.bordered{border-color:var(--border-strong);background:var(--surface)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.segmented{background:var(--surface-3);border-radius:var(--radius);display:inline-flex;gap:2px;padding:3px}.segmented button{background:transparent;border:0;border-radius:6px;color:var(--text-3);font-size:13px;font-weight:500;min-height:30px;padding:0 12px}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);box-shadow:var(--shadow-xs);color:var(--text)}.field{display:grid;gap:6px}.field>span:first-child,.field-label{color:var(--text-2);font-size:13px;font-weight:500}.field .hint{font-weight:400}.field-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.field-error{color:var(--danger-fg);font-size:12px}.field-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.field-full{grid-column:1 / -1}.input-group{position:relative;display:flex;align-items:center}.input-group input{padding-right:40px}.input-group .icon-button{position:absolute;right:3px;height:30px;width:30px;min-height:30px}.input-with-icon{position:relative}.input-with-icon svg{color:var(--text-4);left:11px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-with-icon input{padding-left:34px}.form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.form-actions.start{justify-content:flex-start}.check-chip{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-2);cursor:pointer;display:flex;font-size:13px;gap:8px;min-width:0;padding:8px 10px;transition:border-color .12s ease,background .12s ease}.check-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-chip:hover{border-color:var(--brand-300)}.check-chip.selected{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-700)}.chip-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.toggle-card{align-items:flex-start;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;gap:10px;padding:12px}.toggle-card.on{background:var(--brand-50);border-color:var(--brand-300)}.toggle-card input{margin-top:2px}.toggle-card strong{display:block;color:var(--text);font-size:13px}.toggle-card .hint{display:block;margin-top:2px}.alert{align-items:flex-start;border:1px solid;border-radius:var(--radius);display:flex;font-size:13.5px;gap:10px;line-height:1.45;padding:11px 13px}.alert svg{flex:0 0 auto;margin-top:1px}.alert>div{flex:1;min-width:0}.alert strong{display:block;margin-bottom:1px}.alert.danger,.error-box{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg)}.alert.success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}.alert.warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.alert.info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.alert.info>div,.alert.warning>div{color:var(--text-2)}.alert.info strong,.alert.warning strong{color:inherit}.alert.info>div strong{color:var(--info-fg)}.alert.warning>div strong{color:var(--warning-fg)}.error-box{border:1px solid var(--danger-border);border-radius:var(--radius);padding:11px 13px;font-size:13.5px}.badge{align-items:center;border:1px solid transparent;border-radius:999px;display:inline-flex;font-size:12px;font-weight:500;gap:5px;line-height:1;padding:4px 9px;white-space:nowrap}.badge:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px;opacity:.85}.badge.no-dot:before{display:none}.badge-green{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}.badge-red{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg)}.badge-amber{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.badge-blue{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.badge-gray{background:var(--surface-3);border-color:var(--border);color:var(--text-3)}.badge-brand{background:var(--brand-50);border-color:var(--brand-200);color:var(--brand-700)}.tag{background:var(--surface-3);border-radius:6px;color:var(--text-2);display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.2;padding:4px 8px}.tag.muted{color:var(--text-4)}.tag .icon-button{height:18px;width:18px;min-height:18px}.tags{display:flex;flex-wrap:wrap;gap:4px}.toast-stack{bottom:20px;display:grid;gap:8px;pointer-events:none;position:fixed;right:20px;width:min(380px,calc(100vw - 40px));z-index:1000}.toast{align-items:flex-start;animation:toast-in .18s ease-out;background:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;display:flex;font-size:13.5px;gap:10px;line-height:1.45;padding:12px 12px 12px 14px;pointer-events:auto}.toast svg{flex:0 0 auto;margin-top:1px}.toast.success svg{color:#34d399}.toast.error svg{color:#fb7185}.toast.info svg{color:#93c5fd}.toast>span{flex:1;min-width:0;word-break:break-word}.toast .icon-button{color:#fff9;height:24px;width:24px;min-height:24px;margin:-3px -4px -3px 0}.toast .icon-button:hover{background:#ffffff1f;color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-overlay{align-items:center;animation:fade-in .14s ease-out;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:900}.modal{animation:modal-in .16s ease-out;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - 40px);width:100%;max-width:520px}.modal.lg{max-width:760px}.modal.sm{max-width:440px}.modal-head{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:18px 20px 14px}.modal-head p{font-size:13px;margin-top:3px}.modal-body{display:grid;gap:16px;overflow:auto;padding:18px 20px}.modal-foot{border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding:14px 20px}.modal-icon{align-items:center;border-radius:999px;display:inline-flex;height:40px;justify-content:center;width:40px;flex:0 0 auto}.modal-icon.danger{background:var(--danger-bg);color:var(--danger-fg)}.modal-icon.warning{background:var(--warning-bg);color:var(--warning-fg)}.modal-icon.brand{background:var(--brand-50);color:var(--brand-600)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.panel{padding:18px 20px}.panel-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.panel-head p{font-size:13px;margin-top:2px}.panel-head .actions{display:flex;gap:8px;flex-wrap:wrap}.panel.flush{padding:0;overflow:hidden}.panel.flush .panel-head{padding:16px 20px 0;margin-bottom:12px}.panel.subtle{background:var(--surface-2);box-shadow:none}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);display:grid;gap:6px;padding:16px 18px;min-width:0}.stat-card .stat-label{align-items:center;color:var(--text-3);display:flex;font-size:12px;font-weight:500;gap:6px;justify-content:space-between;letter-spacing:.02em;text-transform:uppercase}.stat-card .stat-label svg{color:var(--text-4)}.stat-card .stat-value{color:var(--text);font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}.stat-card .stat-sub{color:var(--text-4);font-size:12px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:auto}.panel.flush .table-wrap,.table-wrap.plain{border:0;border-radius:0;box-shadow:none}table{border-collapse:separate;border-spacing:0;width:100%}table.wide{min-width:860px}th,td{border-bottom:1px solid var(--border);padding:11px 14px;text-align:left;vertical-align:middle}th{background:var(--surface-2);color:var(--text-3);font-size:12px;font-weight:500;letter-spacing:.02em;position:sticky;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}th:first-child{border-top-left-radius:var(--radius-lg)}th:last-child{border-top-right-radius:var(--radius-lg)}td{color:var(--text);font-size:13.5px}tbody tr{transition:background .1s ease}tbody tr:hover td{background:#fafbfc}tbody tr:last-child td{border-bottom:0}tbody tr.active td{background:var(--brand-50)}tbody tr.clickable{cursor:pointer}tbody tr.row-muted td>*:not(.actions){opacity:.55}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}th.actions-col,td.actions{text-align:right;width:1%;white-space:nowrap}td.actions .actions-cell{justify-content:flex-end;flex-wrap:nowrap}td:first-child .cell-primary{min-width:160px}td .cell-inline-input{background:transparent;border-color:transparent;min-height:32px;padding:4px 8px;margin-left:-8px;width:auto;min-width:140px}td .cell-inline-input:hover{border-color:var(--border-strong);background:var(--surface)}td .cell-inline-input:focus{background:var(--surface)}td select.cell-select{min-height:32px;padding:4px 28px 4px 8px;font-size:13px;width:auto}.cell-primary{display:grid;gap:1px}.cell-primary strong{font-weight:500;color:var(--text)}.cell-primary span{color:var(--text-4);font-size:12px}.cell-user{align-items:center;display:flex;gap:10px;min-width:0}.cell-mono{align-items:center;display:inline-flex;gap:4px}.cell-mono code{font-size:12px}.empty-row td{color:var(--text-4);padding:32px 14px;text-align:center}.avatar{align-items:center;background:var(--brand-100);border-radius:50%;color:var(--brand-700);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:600;height:32px;justify-content:center;width:32px;letter-spacing:.02em}.avatar.sm{height:26px;width:26px;font-size:11px}.avatar.gray{background:var(--surface-3);color:var(--text-2)}.empty-state{align-items:center;color:var(--text-3);display:grid;gap:6px;justify-items:center;padding:44px 20px;text-align:center}.empty-state .empty-icon{align-items:center;background:var(--surface-3);border-radius:12px;color:var(--text-4);display:inline-flex;height:44px;justify-content:center;margin-bottom:6px;width:44px}.empty-state strong{color:var(--text-2);font-size:14px}.empty-state p{font-size:13px;max-width:360px}.empty-state .actions{margin-top:8px;display:flex;gap:8px}.skeleton{animation:shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,var(--surface-3) 25%,#e9edf2 37%,var(--surface-3) 63%);background-size:400% 100%;border-radius:6px;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.loading-screen{align-items:center;color:var(--text-3);display:grid;gap:12px;justify-items:center;min-height:100vh;align-content:center;font-size:13px}.loading-screen .brand-mark{margin-bottom:4px}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:2px}.checklist li{align-items:flex-start;border-radius:var(--radius);display:flex;font-size:13.5px;gap:10px;padding:8px 10px}.checklist li:hover{background:var(--surface-2)}.checklist li svg{flex:0 0 auto;margin-top:2px}.checklist li .content{display:grid;gap:1px;min-width:0;flex:1}.checklist li .content span{color:var(--text-3);font-size:12.5px}.checklist li .content strong{font-weight:500}.status-ok{color:#16a34a}.status-warn{color:#d97706}.status-bad{color:#dc2626}.tabs{border-bottom:1px solid var(--border);display:flex;gap:4px;overflow-x:auto}.tabs button{align-items:center;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-3);display:inline-flex;font-size:13.5px;font-weight:500;gap:8px;margin-bottom:-1px;min-height:40px;padding:0 12px;white-space:nowrap;border-radius:0}.tabs button:hover{color:var(--text)}.tabs button.active{border-bottom-color:var(--brand-500);color:var(--text)}.tabs button .count{background:var(--surface-3);border-radius:999px;color:var(--text-3);font-size:11px;font-weight:600;line-height:1;padding:3px 7px}.tabs button.active .count{background:var(--brand-50);color:var(--brand-700)}.dl{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.dl>div{display:grid;gap:2px}.dl dt{color:var(--text-4);font-size:12px;text-transform:uppercase;letter-spacing:.02em}.dl dd{margin:0;color:var(--text);font-size:14px;font-weight:500}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;padding:16px 14px;position:sticky;top:0;width:var(--sidebar-w);flex:0 0 var(--sidebar-w)}.sidebar-brand{align-items:center;display:flex;gap:10px;padding:4px 8px 16px}.brand-mark{align-items:center;background:linear-gradient(135deg,var(--brand-500),#f59e0b);border-radius:10px;box-shadow:0 4px 12px -2px #e7661573;color:#fff;display:inline-flex;flex:0 0 auto;height:34px;justify-content:center;width:34px}.sidebar-brand>div strong{display:block;font-size:14px;line-height:1.2}.sidebar-brand>div span{color:var(--text-4);display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.sidebar nav{display:grid;gap:2px}.nav-section{color:var(--text-4);font-size:11px;font-weight:600;letter-spacing:.06em;margin:14px 0 6px;padding:0 10px;text-transform:uppercase}.nav-section:first-child{margin-top:4px}.sidebar nav a,.sidebar nav button{align-items:center;background:transparent;border:0;border-radius:var(--radius);color:var(--text-2);display:flex;font-size:13.5px;font-weight:500;gap:10px;min-height:36px;padding:0 10px;text-align:left;text-decoration:none;width:100%;position:relative}.sidebar nav a svg,.sidebar nav button svg{color:var(--text-4);flex:0 0 auto}.sidebar nav a:hover,.sidebar nav button:hover{background:var(--surface-3);color:var(--text)}.sidebar nav a.active,.sidebar nav button.active{background:var(--brand-50);color:var(--brand-700)}.sidebar nav a.active svg,.sidebar nav button.active svg{color:var(--brand-600)}.sidebar-footer{display:grid;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.admin-chip{align-items:center;display:flex;gap:10px;padding:6px 8px;min-width:0}.admin-chip>div{min-width:0;flex:1}.admin-chip strong{display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-chip span{color:var(--text-4);display:block;font-size:11.5px;text-transform:capitalize}.main-content{flex:1;min-width:0}.work-area{display:grid;gap:20px;margin:0 auto;max-width:var(--content-max);padding:28px 32px 40px;align-content:start}.page-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}.page-header .page-title{display:grid;gap:3px;min-width:0}.page-header .page-title h1{display:flex;align-items:center;gap:10px}.page-header .page-title p{font-size:13.5px}.page-header .page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.breadcrumb{align-items:center;color:var(--text-4);display:inline-flex;font-size:13px;gap:6px;margin-bottom:4px}.breadcrumb button{background:none;border:0;color:var(--text-3);padding:0;display:inline-flex;align-items:center;gap:4px;font-weight:500}.breadcrumb button:hover{color:var(--brand-600)}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.toolbar .filters{flex:1}.filters,.actions-cell,.inline-form{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.filters input:not([type=checkbox]),.filters select{width:auto;min-width:150px}.filters .search{flex:1;min-width:200px;max-width:360px}.filters .search input{width:100%}.filters .filters-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.result-count{color:var(--text-4);font-size:12.5px;white-space:nowrap}.inline-form input,.inline-form select{flex:1;min-width:180px;width:auto}.chart-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.chart-box{height:280px;min-width:0}.chart-legend{display:flex;gap:14px;font-size:12.5px;color:var(--text-3)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{display:inline-block;height:8px;width:8px;border-radius:2px}.recharts-tooltip-wrapper{outline:none}.chart-tooltip{background:var(--text);border-radius:var(--radius);box-shadow:var(--shadow-md);color:#fff;font-size:12.5px;padding:8px 10px;display:grid;gap:4px}.chart-tooltip strong{font-weight:500;color:#ffffffb3}.chart-tooltip div{display:flex;justify-content:space-between;gap:16px}.chart-tooltip i{display:inline-block;height:8px;width:8px;border-radius:2px;margin-right:6px}.two-col{display:grid;gap:16px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}.stack{display:grid;gap:16px}.stack-sm{display:grid;gap:8px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.divider{border:0;border-top:1px solid var(--border);margin:4px 0}.login-shell{align-items:center;background:radial-gradient(ellipse at 20% 0%,rgba(231,102,21,.14),transparent 45%),radial-gradient(ellipse at 100% 100%,rgba(245,158,11,.1),transparent 45%),linear-gradient(180deg,#faf9f7,#f3f4f6);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:grid;gap:22px;max-width:420px;overflow:hidden;padding:36px 32px 28px;position:relative;width:100%}.login-accent{background:linear-gradient(90deg,var(--brand-600),var(--brand-500),#f59e0b);height:4px;inset:0 0 auto 0;position:absolute}.login-heading{display:grid;gap:8px;justify-items:center;text-align:center}.login-logo{height:40px;max-width:200px;object-fit:contain;width:auto;margin-bottom:8px}.login-heading h1{font-size:20px}.login-heading p{font-size:13.5px}.login-form{display:grid;gap:16px}.login-footer{color:var(--text-4);display:grid;font-size:12px;gap:2px;justify-items:center;text-align:center;margin-top:2px}.login-footer p{color:inherit}.apikey-reveal{background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-lg);display:grid;gap:12px;padding:16px 18px}.apikey-reveal-head{align-items:center;color:var(--success-fg);display:flex;font-weight:500;gap:8px}.apikey-reveal small{color:#059669}.apikey-code-row{align-items:center;background:var(--surface);border:1px solid #d1fae5;border-radius:var(--radius);display:flex;gap:4px;padding:4px 4px 4px 12px}.apikey-code{color:var(--text);flex:1;font-family:var(--font-mono);font-size:13px;letter-spacing:.3px;min-width:0;overflow-x:auto;white-space:nowrap}.platform-card{display:grid;gap:12px}.platform-card .platform-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.platform-card .platform-head h3{display:flex;align-items:center;gap:8px;text-transform:capitalize}.platform-badge{align-items:center;border-radius:8px;display:inline-flex;height:28px;justify-content:center;width:28px;color:#fff;font-size:12px;font-weight:700}.platform-badge.facebook{background:#1877f2}.platform-badge.google{background:#34a853}.platform-badge.tiktok{background:#111}.project-summary{display:flex;gap:12px;flex-wrap:wrap;align-items:center}@media(max-width:1100px){.two-col{grid-template-columns:1fr}}@media(max-width:900px){.app-shell{display:block}.sidebar{border-bottom:1px solid var(--border);border-right:0;flex-direction:row;align-items:center;gap:10px;height:auto;padding:10px 12px;position:sticky;top:0;width:100%;z-index:50;box-shadow:var(--shadow-xs)}.sidebar-brand{padding:0}.sidebar-brand span{display:none}.sidebar nav{display:flex;gap:2px;overflow-x:auto;flex:1;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.sidebar nav a,.sidebar nav button{width:auto;padding:0 10px}.nav-section{display:none}.sidebar-footer{border:0;margin:0;padding:0;display:flex}.admin-chip{display:none}.work-area{padding:18px 16px 32px;gap:16px}.field-grid,.chart-grid{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.filters .filters-right{margin-left:0}.modal{max-height:calc(100vh - 24px)}.modal-overlay{padding:12px;align-items:flex-end}}@media(max-width:600px){.sidebar nav a span,.sidebar nav button span{display:none}.sidebar nav a,.sidebar nav button{justify-content:center;width:38px;padding:0}.page-header .page-actions{width:100%}.page-header .page-actions>*{flex:1}}.token-wrap{position:relative}.token-field{align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:text;display:flex;flex-wrap:wrap;gap:6px;min-height:38px;padding:6px 8px;transition:border-color .14s ease,box-shadow .14s ease}.token-field:hover{border-color:#b8c1ce}.token-field.focused{border-color:var(--brand-500);box-shadow:var(--ring)}.token-field.has-invalid{border-color:var(--danger-border)}.token-field.has-invalid.focused{box-shadow:0 0 0 3px #dc262624}.token-field.disabled{background:var(--surface-2);cursor:default}.token{align-items:center;background:var(--surface-3);border:1px solid transparent;border-radius:999px;color:var(--text-2);display:inline-flex;font-size:12.5px;gap:6px;line-height:1;max-width:100%;padding:3px 4px}.token.warn{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.token.invalid{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg);padding-left:8px}.token.invalid svg{flex:0 0 auto}.token-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-avatar{align-items:center;background:var(--brand-100);border-radius:50%;color:var(--brand-700);display:inline-flex;flex:0 0 auto;font-size:9.5px;font-weight:600;height:20px;justify-content:center;width:20px}.token.warn .token-avatar{background:#fde68a;color:var(--warning-fg)}.token .icon-button{color:inherit;height:20px;min-height:20px;opacity:.6;width:20px}.token .icon-button:hover{background:#0f172a1a;opacity:1}.token-input{background:transparent;border:0;flex:1;min-height:26px;min-width:160px;padding:0 4px;width:auto}.token-input:focus{border:0;box-shadow:none;outline:none}.token-input:hover{border:0}.suggest{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);left:0;list-style:none;margin:4px 0 0;max-height:260px;overflow:auto;padding:4px;position:absolute;right:0;top:100%;z-index:40}.suggest-item{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:7px 8px}.suggest-item.active{background:var(--brand-50)}.suggest-text{display:grid;flex:1;gap:1px;min-width:0}.suggest-text strong{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-text span{color:var(--text-4);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owner-list{display:grid;gap:2px}.owner-row{align-items:center;border-radius:var(--radius);display:flex;gap:9px;padding:6px 8px}.owner-row:hover{background:var(--surface-2)}.owner-row .owner-text{display:grid;gap:1px;flex:1;min-width:0}.owner-row .owner-text strong{font-size:13px;font-weight:500}.owner-row .owner-text span{color:var(--text-4);font-size:12px}
