*{box-sizing:border-box;margin:0;padding:0}body{background:#f4f6f9;width:100%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{width:100%;min-height:100vh}:root{--bg:#f4f6f9;--surface:#fff;--surface-2:#f8fafc;--surface-hover:#f1f5f9;--surface-sunk:#eef2f7;--text:#0f172a;--text-muted:#475569;--text-subtle:#94a3b8;--text-inverse:#fff;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#4f46e5;--accent-hover:#4338ca;--accent-soft:#eef2ff;--accent-border:#c7d2fe;--success:#059669;--success-soft:#ecfdf5;--warning:#d97706;--warning-soft:#fffbeb;--danger:#dc2626;--danger-hover:#b91c1c;--danger-soft:#fef2f2;--info:#1565c0;--info-soft:#e8f4fd;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:999px;--t-xs:11px;--t-sm:12px;--t-base:13px;--t-md:14px;--t-lg:16px;--t-xl:20px;--t-2xl:26px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a24;--ring:0 0 0 3px #4f46e52e;--header-h:60px;--row-h:44px;--card-gap:10px;--card-pitch:111px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1120;--surface:#131c2e;--surface-2:#18223a;--surface-hover:#1e2942;--surface-sunk:#0f172a;--text:#e8edf7;--text-muted:#9fb0cc;--text-subtle:#64748b;--border:#26324a;--border-strong:#35425e;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-soft:#1e1b4b;--accent-border:#3730a3;--success:#34d399;--success-soft:#052e23;--warning:#fbbf24;--warning-soft:#2e1f05;--danger:#f87171;--danger-hover:#ef4444;--danger-soft:#2c0f0f;--info:#60a5fa;--info-soft:#0c1e33;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000073;--shadow-lg:0 12px 32px #0009;--ring:0 0 0 3px #818cf840;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}body{background:var(--bg);color:var(--text);font-size:var(--t-md);-webkit-font-smoothing:antialiased}:where(button,input,select,textarea){font:inherit;color:inherit}input,select,textarea{background:var(--surface);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--text-subtle)}:where(button):focus-visible,:where(input,select,textarea):focus-visible,:where(a):focus-visible{box-shadow:var(--ring);border-color:var(--accent);outline:none}.btn{justify-content:center;align-items:center;gap:var(--s-2);padding:9px var(--s-4);font-size:var(--t-base);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text-muted)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-sm{padding:6px var(--s-3);font-size:var(--t-sm)}.btn-icon{border-radius:var(--r-md);padding:7px}.input,.select{width:100%;padding:9px var(--s-3);font-size:var(--t-md);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--text-subtle)}.input:hover,.select:hover{border-color:var(--text-subtle)}.label{font-size:var(--t-xs);letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--s-1);font-weight:700;display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.app-header{z-index:40;height:var(--header-h);align-items:center;gap:var(--s-3);padding:0 var(--s-5);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.badge{padding:3px var(--s-2);font-size:var(--t-xs);border-radius:var(--r-full);background:var(--surface-sunk);color:var(--text-muted);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table thead th{z-index:10;padding:var(--s-3) var(--s-4);text-align:left;font-size:var(--t-xs);letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:700;position:sticky;top:0}.data-table tbody td{padding:var(--s-3) var(--s-4);font-size:var(--t-base);color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr{height:var(--row-h);cursor:pointer;transition:background .12s}.data-table tbody tr[aria-hidden]{cursor:default}.data-table tbody tr[aria-hidden]:hover{background:0 0}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table tbody tr[data-selected=true]{background:var(--accent-soft)}.data-table tbody tr:last-child td{border-bottom:none}.contact-card{padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;height:calc(var(--card-pitch) - var(--card-gap));margin-bottom:var(--card-gap);box-sizing:border-box;transition:border-color .15s,box-shadow .15s;overflow:hidden}.contact-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-sm)}.panel{z-index:60;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s ease-out panel-in;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes panel-in{0%{opacity:.6;transform:translate(16px)}to{opacity:1;transform:none}}.panel-header{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-5);border-bottom:1px solid var(--border);display:flex}.panel-body{padding:var(--s-5);flex:1;overflow-y:auto}.panel-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);gap:var(--s-2);display:flex}.overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a52;position:fixed;inset:0}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--s-1);overflow:hidden}.menu-item{align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);font-size:var(--t-base);text-align:left;border-radius:var(--r-sm);color:var(--text);cursor:pointer;background:0 0;border:none;display:flex}.menu-item:hover{background:var(--surface-hover)}.menu-item[data-danger=true]{color:var(--danger)}.skeleton{background:linear-gradient(90deg, var(--surface-sunk) 25%, var(--surface-hover) 37%, var(--surface-sunk) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.3s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.skeleton-text{height:12px}.skeleton-row{border-radius:var(--r-md);height:44px}@media (prefers-reduced-motion:reduce){.skeleton,.panel{animation:none}*{transition-duration:.01ms!important}}.empty-state{justify-content:center;align-items:center;gap:var(--s-3);padding:var(--s-10) var(--s-5);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty-state h3{font-size:var(--t-lg);color:var(--text);font-weight:700}.empty-state p{font-size:var(--t-base);max-width:380px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-track{background:0 0}.col-type-selector{display:inline-block;position:relative}.col-type-trigger{background:var(--color-background-secondary);border:1px solid var(--color-border-secondary);cursor:pointer;color:var(--color-text-secondary);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:3px 8px 3px 6px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.col-type-trigger:hover{border-color:var(--color-border-primary);color:var(--color-text-primary)}.type-icon{opacity:.7;text-align:center;min-width:14px;font-size:11px;font-weight:600}.type-label{font-size:11px}.type-caret{opacity:.4;font-size:10px;display:inline-block;transform:rotate(90deg)}.col-type-backdrop{z-index:99;position:fixed;inset:0}.col-type-dropdown{z-index:100;background:var(--color-background-primary);border:1px solid var(--color-border-secondary);border-radius:10px;flex-direction:column;gap:1px;min-width:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 20px #0000001f}.col-type-option{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;transition:background .1s;display:flex}.col-type-option:hover{background:var(--color-background-secondary)}.col-type-option.active{background:var(--color-background-info)}.opt-icon{text-align:center;min-width:18px;color:var(--color-text-secondary);font-size:13px;font-weight:600}.opt-info{flex-direction:column;flex:1;gap:1px;display:flex}.opt-label{color:var(--color-text-primary);font-size:13px;font-weight:500}.opt-desc{color:var(--color-text-tertiary);font-size:11px}.opt-check{color:var(--color-text-info);font-size:12px}.th-cell{text-align:left;border-bottom:1px solid var(--color-border-tertiary);white-space:nowrap;vertical-align:bottom;padding:8px 10px 4px;position:relative}.th-cell.th-filtered{background:var(--color-background-info)}.th-inner{align-items:center;gap:4px;display:flex}.th-name{color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;flex:1;font-size:12px;font-weight:500}.th-name.th-sortable{cursor:pointer}.th-name.th-sortable:hover{color:var(--color-text-primary)}.th-actions{align-items:center;gap:2px;display:flex}.sort-btn{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;border-radius:4px;padding:2px 3px;font-size:12px;line-height:1;transition:color .15s,background .15s}.sort-btn:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.sort-btn.sort-active{color:var(--color-text-info)}.sort-idle{opacity:.4;font-size:11px}.filter-anchor{position:relative}.filter-btn{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;border-radius:4px;padding:2px 3px;font-size:12px;line-height:1;transition:color .15s,background .15s}.filter-btn:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.filter-btn.filter-active{color:var(--color-text-info)}.type-badge{letter-spacing:.04em;text-transform:uppercase;opacity:.65;border-radius:4px;margin-top:2px;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.type-badge--number{color:#1a5fa0;background:#e8f4ff}.type-badge--date{color:#1a6b31;background:#edf7ed}.type-badge--datetime{color:#1a6b55;background:#edf7f3}.type-badge--boolean{color:#5b34b0;background:#f5f0ff}.type-badge--status{color:#945a00;background:#fff4e0}.type-badge--text{background:var(--color-background-secondary);color:var(--color-text-tertiary)}@media (prefers-color-scheme:dark){.type-badge--number{color:#6bb3f8;background:#0d2a45}.type-badge--date{color:#72cc88;background:#0d2e14}.type-badge--datetime{color:#72ccb2;background:#0d2e26}.type-badge--boolean{color:#b89ff0;background:#22134d}.type-badge--status{color:#f0b84e;background:#352300}}.filter-panel{z-index:200;background:var(--color-background-primary);border:1px solid var(--color-border-secondary);border-radius:10px;min-width:240px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 6px 24px #00000024}.filter-panel-header{border-bottom:1px solid var(--color-border-tertiary);justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.filter-panel-title{color:var(--color-text-secondary);font-size:12px;font-weight:500}.filter-panel-close{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px}.filter-panel-close:hover{color:var(--color-text-primary);background:var(--color-background-secondary)}.filter-panel-body{padding:10px 12px}.filter-row{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.filter-row:last-child{margin-bottom:0}.filter-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.filter-input{border:1px solid var(--color-border-secondary);background:var(--color-background-secondary);color:var(--color-text-primary);border-radius:6px;outline:none;padding:6px 8px;font-size:13px;transition:border-color .15s}.filter-input:focus{border-color:var(--color-border-info)}.filter-range{flex-direction:column;gap:6px;display:flex}.filter-pills{flex-wrap:wrap;gap:6px;display:flex}.filter-pill{border:1px solid var(--color-border-secondary);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:20px;padding:5px 12px;font-size:12px;transition:all .15s}.filter-pill:hover{border-color:var(--color-border-primary);color:var(--color-text-primary)}.filter-pill.active{background:var(--color-background-info);border-color:var(--color-border-info);color:var(--color-text-info)}.filter-panel-footer{border-top:1px solid var(--color-border-tertiary);padding:6px 12px 10px}.filter-clear-btn{color:var(--color-text-danger);cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:12px}.filter-clear-btn:hover{text-decoration:underline}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.filter-bar-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:11px;font-weight:500}.filter-chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.filter-chip{background:var(--color-background-info);border:1px solid var(--color-border-info);border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:flex}.chip-col{color:var(--color-text-info);font-weight:500}.chip-sep{color:var(--color-text-tertiary)}.chip-val{color:var(--color-text-secondary)}.chip-remove{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;margin-left:2px;padding:0 0 0 2px;font-size:10px;line-height:1}.chip-remove:hover{color:var(--color-text-danger)}.filter-clear-all{color:var(--color-text-danger);border:1px solid var(--color-border-danger);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:3px 10px;font-size:12px;transition:background .15s}.filter-clear-all:hover{background:var(--color-background-danger)}
