:root{--primary:#1a1f2e;--primary-light:#252b3b;--primary-border:#2e3548;--accent:#00a651;--accent-dark:#008544;--accent-light:#e8f8ef;--secondary:#64748b;--text:#475569;--text-h:#0f172a;--text-soft:#94a3b8;--sidebar-text:#9ca3af;--sidebar-text-active:#fff;--bg:#f8fafc;--bg-light:#fff;--bg-muted:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--code-bg:#f1f5f9;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--shadow:0 12px 28px #0f172a14;--shadow-md:0 14px 30px #0f172a1f;--shadow-lg:0 16px 40px #0f172a29;--sans:"Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif;--heading:"Segoe UI", "Inter", "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, Consolas, monospace;--bg-card:#fff;--bg-table-header:#f8f7fb;--bg-row-alt:#fcfdff;--topbar-bg:#fffffff5;--bg-toolbar:#f8fafcfa;--bg-tab-strip:#ffffffb8;--bg-field-prefix:#f3f4f6;--border-soft:#e5e7eb;--text-muted:#888;--text-label:#374151;--text-subtle:#6b7280;font:16px/1.45 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#cbd5e1;--text-h:#f8fafc;--text-soft:#94a3b8;--sidebar-text:#94a3b8;--bg:#0f172a;--bg-light:#111827;--bg-muted:#162032;--border:#223046;--border-strong:#334155;--code-bg:#111827;--primary:#0b1220;--primary-light:#131c2d;--primary-border:#223046;--accent:#22c55e;--accent-dark:#16a34a;--accent-light:#22c55e26;--secondary:#94a3b8;--shadow:0 12px 28px #02061752;--shadow-md:0 18px 40px #02061766;--shadow-lg:0 24px 48px #0206177a;--bg-card:#1a2035;--bg-table-header:#1b1e2b;--bg-row-alt:#17182a;--topbar-bg:#0f172af5;--bg-toolbar:#111827fa;--bg-tab-strip:#0f172ab8;--bg-field-prefix:#1e2535;--border-soft:#2e3748;--text-muted:#94a3b8;--text-label:#cbd5e1;--text-subtle:#94a3b8}#root{width:100%;min-height:100vh}body{background:radial-gradient(circle at 8% -12%, #00a65114, transparent 38%), radial-gradient(circle at 92% 112%, #94a3b814, transparent 36%), var(--bg);margin:0;overflow:hidden}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:600}h1{margin:0 0 8px;font-size:1.75rem}h2{margin:0 0 6px;font-size:1.25rem;line-height:1.3}p{margin:0}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);background:#22c55e1a;padding:2px 6px;font-size:.875rem}.app-loading{color:#888;justify-content:center;align-items:center;min-height:100vh;font-size:.9rem;display:flex}.dev-banner{background:color-mix(in srgb, var(--accent) 12%, #fff);border-bottom:1px solid color-mix(in srgb, var(--accent) 24%, #fff);color:#166534;text-align:center;z-index:110;grid-area:1/1/auto/-1;padding:5px 16px;font-size:.78rem;font-weight:500}.app-shell{grid-template-rows:auto auto 1fr;grid-template-columns:220px 1fr;height:100vh;display:grid;overflow:hidden}.topbar{color:#fff;background:#2caa4a;border-bottom:none;grid-area:2/1/auto/-1;justify-content:space-between;align-items:center;height:72px;padding:0 20px;display:flex;box-shadow:0 2px 6px #0000002e}.topbar-logo{border-radius:3px;flex-shrink:0;width:auto;height:38px;margin:0 12px 0 8px}.topbar-menu-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:background .15s,border-color .15s;display:flex}.topbar-menu-btn:hover{background:#ffffff40;border-color:#ffffff80}.topbar-title{color:#fff;letter-spacing:.3px;flex:1;font-size:1.1rem;font-weight:700}.topbar-user{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-user-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;font-family:inherit;font-size:.85rem;transition:background .15s,border-color .15s;display:flex}.topbar-user-btn:hover{background:#ffffff47;border-color:#fff9}.topbar-user-name{text-overflow:ellipsis;white-space:nowrap;color:#fff;max-width:160px;overflow:hidden}.role-badge{white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:.68rem;font-weight:700;display:inline-block}.role-admin{color:#fff;background:#dc2626}.role-group-admin{color:#fff;background:#d97706}.role-data-owner{background:var(--accent);color:#fff}.role-viewer{background:var(--bg-muted);color:var(--text)}.topbar-user-menu{position:relative}.topbar-dropdown{background:var(--bg-card);border:1px solid var(--border);z-index:200;border-radius:8px;min-width:200px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000026}.topbar-dropdown-info{background:var(--bg-muted);border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.topbar-dropdown-info strong{color:var(--text-h);font-size:.875rem}.topbar-dropdown-info small{color:#888;font-size:.78rem}.topbar-dropdown hr{border:none;border-top:1px solid var(--border);margin:0}.topbar-dropdown-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;padding:10px 14px;font-family:inherit;font-size:.875rem;transition:background .12s;display:block}.topbar-dropdown-item:hover{background:var(--accent-light)}.sidebar{background:var(--primary);color:var(--sidebar-text);border-right:1px solid var(--primary-border);flex-direction:column;flex-shrink:0;grid-area:3/1;width:220px;display:flex;overflow:hidden auto}.sidebar-brand{border-bottom:1px solid var(--primary-border);flex-shrink:0;padding:18px 18px 14px}.sidebar-brand-text{color:var(--sidebar-text-active);letter-spacing:.3px;font-size:1rem;font-weight:700}.sidebar-nav{flex:1;margin:0;padding:8px 0;list-style:none}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:#9ca3af94;-webkit-user-select:none;user-select:none;padding:14px 14px 4px;font-size:.68rem;font-weight:700}.sidebar-link{color:var(--sidebar-text);white-space:nowrap;text-overflow:ellipsis;border-left:3px solid #0000;border-radius:10px;margin:2px 10px;padding:11px 14px;font-size:.95rem;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:block;overflow:hidden}.sidebar-link-home{align-items:center;gap:8px;margin-bottom:4px;font-weight:500;display:flex}.sidebar-link:hover{background:var(--primary-light);color:var(--sidebar-text-active)}.sidebar-link.active{background:var(--primary-light);color:var(--sidebar-text-active);border-left-color:var(--accent);font-weight:500;box-shadow:inset 0 0 0 1px #ffffff08}.app-shell.sidebar-collapsed{grid-template-columns:0 1fr}.app-shell.sidebar-collapsed .sidebar{width:0;overflow:hidden}.main-content{background:linear-gradient(180deg, #ffffff80, #fff0), var(--bg);flex-direction:column;grid-area:3/2;display:flex;overflow:hidden auto}.login-page{background:radial-gradient(circle at 20% 15%,#00a65114,#0000 30%),linear-gradient(#f8fafc 0%,#eef2f7 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:24px;flex-direction:column;gap:4px;width:100%;max-width:380px;padding:40px 36px 36px;display:flex}.login-title{color:var(--text-h);text-align:center;margin:0 0 4px;font-size:1.8rem;font-weight:700}.login-subtitle{color:var(--text-soft);text-align:center;margin:0 0 24px;font-size:.9rem}.login-card .form-field{margin-bottom:14px}.login-card .btn-full{margin-top:8px}.login-dev-notice{color:#166534;background:var(--accent-light);border:1px solid color-mix(in srgb, var(--accent) 28%, white);text-align:center;border-radius:12px;margin-top:16px;padding:8px 12px;font-size:.78rem}.dataset-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;padding:28px 32px;display:grid}.dataset-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:20px 22px;transition:box-shadow .2s,border-color .2s;display:flex;box-shadow:0 2px 8px #0000000d}.dataset-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 4px 16px #0000001a}.dataset-card-title{margin:0;font-size:1rem;font-weight:600}.dataset-card-title a{color:var(--text-h);text-decoration:none}.dataset-card-title a:hover{color:#185fa5;text-decoration:underline}.dataset-card-description{color:#888;margin:0;font-size:.875rem;line-height:1.5}.dataset-card-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:4px;display:flex}.dataset-tabs{border-bottom:1px solid var(--border);background:var(--bg-tab-strip);flex-shrink:0;gap:0;padding:0 24px;display:flex}.dataset-tab{color:var(--text-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-1px;padding:14px 18px;font-family:inherit;font-size:.875rem;font-weight:600;transition:color .15s,border-color .15s}.dataset-tab:hover{color:var(--text-h)}.dataset-tab--active{color:var(--text-h);border-bottom-color:var(--accent);font-weight:600}.dataset-detail-page [role=tabpanel]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.dataset-detail-page [role=tabpanel][hidden]{display:none}.loading{text-align:center;color:#888;padding:40px;font-size:.9rem}.error-message{color:#dc2626;padding:24px 32px;font-size:.9rem}.empty-message{text-align:center;color:#aaa;padding:48px 32px;font-size:.9rem}.dataset-detail-page{flex-direction:column;height:100%;padding:0;display:flex}.data-grid-container{background:var(--bg-light);border:1px solid var(--border);height:100%;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.data-grid-toolbar{border-bottom:1px solid var(--border);background:var(--bg-toolbar);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 14px;display:flex}.toolbar-left{align-items:center;gap:10px;display:flex}.toolbar-right{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.grid-dataset-name{color:var(--text);font-size:.95rem;font-weight:600}.grid-record-count{color:var(--secondary);background:var(--bg-muted);border-radius:999px;padding:8px 12px;font-size:.8rem;font-weight:500}:root[data-theme=dark] .grid-record-count{background:#2a2630}.grid-search-input{border:1.5px solid color-mix(in srgb, var(--accent) 58%, white);background:var(--bg-light);width:240px;min-height:44px;color:var(--text);border-radius:999px;padding:11px 16px;font-size:.85rem;box-shadow:inset 0 1px #ffffffa6}.grid-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.grid-loading-bar{background:linear-gradient(90deg, var(--accent) 0%, transparent 100%);background-size:200% 100%;height:3px;animation:1.2s linear infinite loading-sweep}@keyframes loading-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.grid-error{color:#d00;background:#fff0f0;border-bottom:1px solid #fcc;padding:12px 16px;font-size:.9rem}:root[data-theme=dark] .grid-error{color:#f88;background:#2a1010;border-color:#532}.grid-scroll-wrapper{flex:1;position:relative;overflow:auto}.data-table{border-collapse:collapse;table-layout:fixed;font-size:.875rem}.grid-th{background:var(--bg-table-header);border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;z-index:2;-webkit-user-select:none;user-select:none;padding:0;position:sticky;top:0}:root[data-theme=dark] .grid-th{background:var(--bg-table-header)}.grid-th:last-child{border-right:none}.th-content{text-transform:uppercase;letter-spacing:.03em;color:#64748b;white-space:nowrap;align-items:center;gap:4px;min-height:48px;padding:14px 20px 14px 16px;font-size:.82rem;display:flex;overflow:hidden}.grid-th.sortable .th-content{cursor:pointer}.grid-th.sortable .th-content:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.sort-icon{opacity:.6;font-size:.7em}.resize-handle{cursor:col-resize;z-index:3;background:0 0;width:5px;height:100%;position:absolute;top:0;right:0}.resize-handle:hover,.resize-handle.resizing{background:var(--accent);opacity:.5}.filter-row .grid-th,.filter-row .filter-cell{background:var(--bg-light);border-bottom:1px solid var(--border);z-index:2;padding:6px 8px;position:sticky;top:48px}:root[data-theme=dark] .filter-row .grid-th,:root[data-theme=dark] .filter-row .filter-cell{background:var(--bg-light)}.grid-filter-input,.grid-filter-select{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));background:var(--bg-light);width:100%;color:var(--text);box-sizing:border-box;border-radius:999px;padding:8px 12px;font-size:.8rem}.grid-filter-input:focus,.grid-filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}.grid-filter-range{gap:4px;width:100%;display:flex}.grid-filter-half{flex:1;min-width:0}.grid-filter-half[type=date]{min-width:120px;padding:8px 6px;font-size:.78rem}.grid-td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;color:var(--text);padding:14px 16px;overflow:hidden}.grid-td:last-child{border-right:none}.grid-row-alt .grid-td,:root[data-theme=dark] .grid-row-alt .grid-td{background:var(--bg-row-alt)}.grid-row-selected .grid-td{background:color-mix(in srgb, var(--accent) 12%, transparent)!important}.grid-row:hover .grid-td{background:color-mix(in srgb, var(--accent) 5%, var(--bg-light));cursor:pointer}.grid-empty-cell{text-align:center;color:#aaa;padding:48px 24px;font-size:.95rem}.grid-actions-cell{justify-content:center;gap:4px;display:flex}.btn-icon{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:.9rem;transition:background .15s}.btn-icon:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.btn-edit:hover{color:var(--accent)}.btn-delete:hover{color:#d00}.column-panel-anchor{position:relative}.column-panel{background:var(--bg-light);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:100;border-radius:16px;min-width:180px;max-height:320px;padding:6px 0;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.column-panel-item{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:6px 14px;font-size:.875rem;display:flex}.column-panel-item:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.column-panel-item input[type=checkbox]{accent-color:var(--accent)}.grid-pagination{border-top:1px solid var(--border);background:var(--bg-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px 18px;display:flex}.pagination-info{color:#888;min-width:200px;font-size:.82rem}.pagination-controls{align-items:center;gap:4px;display:flex}.pagination-page-input-wrap{align-items:center;gap:4px;font-size:.85rem;display:flex}.pagination-page-input{text-align:center;border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:var(--bg-light);width:52px;color:var(--text);border-radius:999px;padding:8px 10px;font-size:.85rem}.pagination-page-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}.pagination-page-input::-webkit-inner-spin-button{-webkit-appearance:none}.pagination-page-input::-webkit-outer-spin-button{-webkit-appearance:none}.pagination-page-input{appearance:textfield}.pagination-of{color:#888;white-space:nowrap}.pagination-size{align-items:center;gap:6px;font-size:.85rem;display:flex}.pagination-size-select{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:var(--bg-light);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 12px;font-size:.85rem}.pagination-size-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);border-color:var(--accent);outline:none}.toast-undo-btn{color:var(--accent);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.page-error{color:#d00;padding:32px;font-size:.95rem}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drawer-backdrop{z-index:200;background:#00000059;position:fixed;inset:0}.drawer-panel{background:var(--bg-card);z-index:201;outline:none;flex-direction:column;width:480px;max-width:100vw;height:100vh;transition:transform .28s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #00000026}.drawer-panel-open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--border-soft);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.drawer-title{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.drawer-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.shortcut-anchor{position:relative}.shortcut-panel{color:#f9fafb;z-index:10;background:#1f2937;border-radius:6px;width:250px;padding:.75rem 1rem;font-size:.8rem;position:absolute;top:2rem;right:0;box-shadow:0 4px 12px #00000040}.shortcut-panel p{margin:.25rem 0}.shortcut-panel kbd{background:#374151;border-radius:3px;padding:1px 5px;font-family:monospace;font-size:.78rem}.drawer-conflict-banner{background:#fffbcc;border-left:4px solid #f59e0b;flex-shrink:0;padding:.75rem 1.25rem;font-size:.875rem}.drawer-conflict-banner p{margin:0 0 .5rem}.drawer-conflict-actions{flex-wrap:wrap;gap:.5rem;display:flex}.drawer-error-banner{color:#7f1d1d;background:#fee2e2;border-left:4px solid #ef4444;flex-shrink:0;padding:.75rem 1.25rem;font-size:.875rem}.drawer-change-comment-notice{color:#1e40af;background:#eff6ff;border-left:4px solid #3b82f6;margin-bottom:.5rem;padding:.5rem 1rem;font-size:.8rem}.drawer-section{border:1px solid var(--border-soft);border-radius:6px;margin-bottom:1rem;padding:0}.drawer-section-legend{color:var(--text-label);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;width:100%;padding:.4rem 1rem;font-size:.8rem;font-weight:600;display:flex}.drawer-section-legend:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #3b82f6}.section-chevron{font-size:.85rem;transition:transform .2s}.section-chevron-collapsed{transform:rotate(-90deg)}.drawer-section-body{flex-direction:column;gap:.875rem;padding:.75rem 1rem 1rem;display:flex}.drawer-section-collapsed{display:none}.drawer-field{flex-direction:column;gap:.25rem;display:flex}.drawer-field-label{color:var(--text-label);font-size:.8125rem;font-weight:500}.required-star{color:#ef4444}.help-icon{color:#6b7280;cursor:help;font-size:.85rem}.drawer-input{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));width:100%;color:var(--text-h);background:var(--bg-light);box-sizing:border-box;border-radius:12px;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.drawer-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.drawer-input-error{box-shadow:0 0 0 3px #ef44441a;border-color:#ef4444!important}.drawer-textarea{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));width:100%;color:var(--text-h);background:var(--bg-light);resize:vertical;box-sizing:border-box;border-radius:12px;padding:.625rem .875rem;font-size:.875rem}.drawer-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.drawer-select{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));width:100%;color:var(--text-h);background:var(--bg-light);box-sizing:border-box;border-radius:12px;padding:.625rem .875rem;font-size:.875rem}.drawer-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.drawer-field-error{color:#ef4444;margin:0;font-size:.775rem}.drawer-field-readonly{background:var(--bg-muted);border:1px solid var(--border);color:var(--text-subtle);cursor:default;border-radius:12px;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.875rem;display:flex}.lock-icon{font-size:.75rem}.drawer-readonly-value{color:var(--text-label);font-weight:500}.drawer-amount-wrap{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--border));border-radius:12px;align-items:center;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.drawer-amount-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent)}.drawer-amount-wrap .drawer-input-error{border-color:#0000}.drawer-amount-prefix{background:var(--bg-field-prefix);color:var(--text-subtle);border-right:1px solid var(--border-soft);padding:.4375rem .5rem;font-size:.875rem}.drawer-input-amount{border-radius:0;box-shadow:none!important;border:none!important}.drawer-datepicker-wrap,.drawer-datepicker-wrap .react-datepicker-wrapper{width:100%}.drawer-toggle-wrap{align-items:center;gap:.625rem;display:flex}.drawer-toggle{cursor:pointer;background:#d1d5db;border:none;border-radius:9999px;width:2.5rem;height:1.375rem;padding:0;transition:background .2s;position:relative}.drawer-toggle.drawer-toggle-on{background:#3b82f6}.drawer-toggle-thumb{background:#fff;border-radius:50%;width:1rem;height:1rem;transition:left .2s;position:absolute;top:2px;left:2px}.drawer-toggle.drawer-toggle-on .drawer-toggle-thumb{left:calc(100% - 1.125rem)}.drawer-toggle:focus-visible{outline-offset:2px;outline:2px solid #3b82f6}.drawer-toggle-label{color:var(--text-subtle);font-size:.875rem}.drawer-lookup-wrap{position:relative}.drawer-lookup-spinner{border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;width:.875rem;height:.875rem;animation:.7s linear infinite spin;position:absolute;top:50%;right:2rem;transform:translateY(-50%)}@keyframes spin{to{transform:rotate(360deg)}}.drawer-footer{border-top:1px solid var(--border-soft);background:var(--bg-muted);flex-shrink:0;justify-content:flex-end;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.discard-overlay{z-index:210}.discard-confirm-modal{background:var(--bg-card);border-radius:8px;width:340px;padding:1.5rem;box-shadow:0 20px 60px #0003}.discard-title{color:var(--text-h);margin:0 0 .5rem;font-size:1rem;font-weight:600}.discard-body{color:var(--text-subtle);margin:0 0 1.25rem;font-size:.875rem}.discard-actions{justify-content:flex-end;gap:.75rem;display:flex}.conflict-diff-overlay{z-index:210}.conflict-diff-modal{background:var(--bg-card);border-radius:8px;outline:none;flex-direction:column;width:860px;max-width:98vw;max-height:90vh;display:flex;box-shadow:0 20px 60px #00000040}.conflict-diff-header{border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.conflict-diff-title{margin:0;font-size:1rem;font-weight:600}.conflict-diff-desc{color:#6b7280;margin:0;padding:.75rem 1.25rem 0;font-size:.875rem}.conflict-diff-scroll{flex:1;padding:.75rem 1.25rem 1.25rem;overflow:auto}.conflict-diff-table{border-collapse:collapse;width:100%;font-size:.875rem}.conflict-diff-table th{text-align:left;border-bottom:2px solid var(--border-soft);color:var(--text-h);background:var(--bg-muted);padding:.5rem .75rem;font-weight:600}.conflict-diff-table td{border-bottom:1px solid var(--border);vertical-align:top;word-break:break-word;padding:.5rem .75rem}.cdt-row-diff td{background:#fffbcc}.cdt-col-field,.cdt-cell-field{color:#374151;width:30%;font-weight:500}.cdt-col-server,.cdt-col-user,.cdt-cell-value{width:35%}.conflict-diff-footer{border-top:1px solid var(--border-soft);flex-shrink:0;justify-content:flex-end;padding:.75rem 1.25rem;display:flex}.modal-overlay{z-index:205;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border-radius:10px;flex-direction:column;width:480px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.undo-toast{z-index:9999;background:var(--bg-card);border-left:4px solid #a32d2d;border-radius:6px;align-items:center;gap:16px;min-width:260px;max-width:400px;padding:12px 16px 18px;display:flex;position:fixed;bottom:80px;right:24px;overflow:hidden;box-shadow:0 4px 16px #0000002e}.undo-toast-message{color:var(--text-h);flex:1;font-size:.875rem}.undo-toast-btn{color:#185fa5;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:.875rem;font-weight:600}.undo-toast-btn:hover{text-decoration:underline}.undo-toast-btn:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #185fa5}.undo-toast-progress{background:#185fa5;width:100%;height:3px;animation:linear forwards undo-deplete;position:absolute;bottom:0;left:0}@keyframes undo-deplete{0%{width:100%}to{width:0%}}.btn{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:.875rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,opacity .15s,box-shadow .15s,transform .12s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, #fff), var(--accent));color:#fff;box-shadow:0 12px 22px -14px #00a651e6}.btn-primary:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 88%, #000);transform:translateY(-1px)}.btn-secondary{background:var(--bg-light);color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 38%, white)}.btn-secondary:not(:disabled):hover{background:var(--accent-light);color:var(--accent-dark)}.btn-ghost{background:var(--bg-light);color:var(--text);border:1px solid var(--border);box-shadow:inset 0 1px #fffc}.btn-ghost:not(:disabled):hover{background:color-mix(in srgb, var(--accent) 6%, white);border-color:color-mix(in srgb, var(--accent) 34%, white)}.btn-danger{color:#fff;background:#dc2626}.btn-danger:not(:disabled):hover{background:#b91c1c}.btn-full{justify-content:center;width:100%}.btn-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload-wizard{max-width:920px;margin:0 auto;padding:28px 32px 40px}.wizard-title{color:var(--text-h);margin:0 0 24px;font-size:1.4rem;font-weight:700}.wizard-steps{align-items:center;gap:0;margin-bottom:32px;display:flex}.wizard-step-wrapper{flex:1;align-items:center;min-width:0;display:flex}.wizard-step-btn{cursor:default;border:2px solid #0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .2s,border-color .2s,color .2s;display:flex}.wizard-step-btn.pending{border-color:var(--border);color:#aaa;background:#f0edf5}.wizard-step-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.wizard-step-btn.completed{color:#fff;cursor:pointer;background:#22c55e;border-color:#22c55e}.wizard-step-btn.completed:hover{background:#16a34a}.wizard-step-label{color:#aaa;white-space:nowrap;margin-left:8px;font-size:.78rem}.wizard-step-label.active{color:var(--accent);font-weight:600}.wizard-step-label.completed{color:#22c55e}.wizard-step-connector{background:var(--border);border-radius:1px;flex:1;height:2px;margin:0 10px;transition:background .3s}.wizard-step-connector.filled{background:#22c55e}.wizard-section{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:28px 28px 22px}.wizard-section-title{color:var(--text-h);margin:0 0 20px;font-size:1.05rem;font-weight:600}.wizard-loading{color:#888;margin:12px 0;font-size:.9rem}.wizard-field{margin-bottom:16px}.wizard-label{color:var(--text);margin-bottom:5px;font-size:.85rem;font-weight:500;display:block}.wizard-select{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:var(--bg-light);width:100%;max-width:340px;color:var(--text);border-radius:999px;padding:11px 14px;font-size:.9rem}.wizard-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.schema-ref-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.schema-ref-name{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.schema-ref-desc{color:#888;margin:3px 0 0;font-size:.85rem}.schema-ref-table-wrapper{border:1px solid var(--border);border-radius:7px;margin-bottom:22px;overflow-x:auto}.schema-ref-table{border-collapse:collapse;width:100%;font-size:.85rem}.schema-ref-table th{background:var(--bg-table-header);text-align:left;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-weight:600}.schema-ref-table td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:8px 12px}.schema-ref-table tr:last-child td{border-bottom:none}.schema-ref-table code{font-family:var(--mono);background:var(--code-bg);border-radius:3px;padding:1px 5px;font-size:.8em}.field-name{color:var(--text-h);font-weight:500}.field-badge-unique{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);vertical-align:middle;border-radius:3px;margin-left:5px;padding:0 4px;font-size:.7rem;font-weight:700;display:inline-block}.field-type-tag{color:#185fa5;white-space:nowrap;background:#f0f8ff;border-radius:4px;padding:2px 7px;font-size:.8rem;font-weight:500}.req-yes{color:#dc2626;font-size:.82rem;font-weight:600}.req-no{color:#aaa;font-size:.82rem}.field-rules-cell{color:#666;font-size:.82rem}.field-example-cell{color:#555}.wizard-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;display:flex}.upload-dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:#f8fbff;border-radius:14px;outline:none;margin-bottom:20px;padding:48px 24px;transition:border-color .2s,background .2s,transform .12s}.upload-dropzone:hover,.upload-dropzone:focus-visible{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, #fff);transform:translateY(-1px)}.upload-dropzone.drag-over{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.upload-cloud-icon{color:#c4b5d9;width:56px;height:56px;margin:0 auto 12px;display:block}.dropzone-heading{color:var(--text-h);margin:0 0 4px;font-size:1rem;font-weight:600}.dropzone-sub{color:#888;margin:0 0 8px;font-size:.9rem}.dropzone-link{color:var(--accent);text-decoration:underline}.dropzone-hint{color:#aaa;margin:0;font-size:.8rem}.upload-file-card{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--text-h);background:#eff6ff;border-radius:12px;align-items:center;gap:12px;margin-bottom:20px;padding:12px 14px;display:flex;box-shadow:0 8px 16px -14px #1976d28c}.file-card-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.file-card-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:500;overflow:hidden}.file-card-size{color:#888;font-size:.8rem}.upload-error-box{color:#b91c1c;background:#fff0f0;border:1px solid #fca5a5;border-radius:7px;margin-bottom:16px;padding:12px 14px;font-size:.875rem}.missing-cols-list{margin:6px 0 8px;padding-left:20px;font-size:.875rem;line-height:1.7}.upload-error-box code{font-family:var(--mono);background:#00000012;border-radius:3px;padding:0 4px}:root[data-theme=dark] .upload-error-box{color:#fca5a5;background:#2a1010;border-color:#7f1d1d}.validation-banner{border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:.9rem;font-weight:500;display:flex}.validation-banner--ok{color:#166534;background:#f0fdf4;border:1px solid #86efac}.validation-banner--error{color:#b91c1c;background:#fff0f0;border:1px solid #fca5a5}.row-filter-group{border:1px solid var(--border);border-radius:7px;width:fit-content;margin-bottom:14px;display:flex;overflow:hidden}.row-filter-btn{background:var(--bg);color:var(--text);border:none;border-right:1px solid var(--border);cursor:pointer;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .15s,color .15s}.row-filter-btn:last-child{border-right:none}.row-filter-btn:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.row-filter-btn.active{background:var(--accent);color:#fff}.validation-table-wrapper{border:1px solid var(--border);border-radius:7px;max-height:420px;margin-bottom:16px;overflow:auto}.validation-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:.82rem}.validation-table th{background:var(--bg-table-header);text-align:left;color:var(--text);border-bottom:1px solid var(--border);z-index:1;white-space:nowrap;padding:8px 10px;font-weight:600;position:sticky;top:0}.validation-table td{border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:180px;padding:6px 10px;overflow:hidden}.validation-table tr:last-child td{border-bottom:none}.validation-pagination{color:#555;justify-content:space-between;align-items:center;padding:10px 0;font-size:.85rem;display:flex}.val-page-info{font-weight:500}.val-page-buttons{align-items:center;gap:4px;display:flex}.val-page-num{padding:0 8px;font-weight:600}.btn-sm{padding:4px 8px;font-size:.8rem}.col-row-num{text-align:center;color:#888;width:52px;font-weight:600}.col-status{width:120px}.vrow-error td{background:#fcebeb}.table-empty{text-align:center;color:#aaa;padding:28px;font-size:.9rem}.vcell-error{color:#b91c1c}.vcell-error-content{align-items:center;gap:4px;display:inline-flex}.vcell-warn-icon{flex-shrink:0}.vcell-error-text{color:#b91c1c;font-style:italic}.status-badge{white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:110px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block;overflow:hidden}.status-ok{color:#166534;background:#dcfce7}.status-err{color:#991b1b;cursor:help;background:#fee2e2}.diff-stat-row{flex-wrap:wrap;gap:16px;display:flex}.diff-stat{background:var(--bg-light);color:var(--text-h);min-width:88px;box-shadow:var(--shadow);border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;display:flex}.diff-stat--update{color:#1e40af;background:#eff6ff;border-color:#93c5fd}.diff-stat--remove{color:#9a3412;background:#fff7ed;border-color:#fdba74}.diff-stat-icon{opacity:.7;font-size:1.2rem}.diff-stat-value{font-size:1.8rem;font-weight:700;line-height:1}.diff-stat-label{opacity:.8;font-size:.8rem}.diff-info-banner{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:.875rem;display:flex}.upload-mode-block{border:1px solid var(--border);background:color-mix(in srgb, var(--accent) 3%, var(--bg-light));border-radius:12px;margin-bottom:14px;padding:12px}.upload-mode-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:.78rem;font-weight:700;display:block}.upload-mode-toggle{background:var(--bg-light);color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));border-radius:12px;display:inline-flex;overflow:hidden}.upload-mode-btn{color:var(--text);cursor:pointer;background:0 0;border:none;padding:7px 14px;font-weight:600}.upload-mode-btn+.upload-mode-btn{border-left:1px solid color-mix(in srgb, var(--accent) 18%, var(--border))}.upload-mode-btn.active{background:var(--accent);color:#fff}.upload-mode-help{color:#64748b;margin-top:8px;font-size:.82rem}.upload-mode-summary{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:inline-flex}.upload-success{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:56px 24px;display:flex}.success-check-icon{width:80px;height:80px}.upload-success-title{color:var(--text-h);max-width:440px;margin:0;font-size:1.15rem;font-weight:600}.upload-success-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.admin-page{flex-direction:column;gap:20px;padding:28px 32px 40px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header h1{margin:0 0 4px}.page-header p{color:#888;font-size:.9rem}.audit-filter-bar{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 16px;display:flex}.filter-field{flex-direction:column;gap:4px;min-width:140px;display:flex}.filter-field span{color:var(--text);font-size:.82rem;font-weight:500}.filter-field input,.filter-field select{border:1px solid color-mix(in srgb, var(--accent) 24%, var(--border));background:var(--bg-light);color:var(--text);border-radius:999px;padding:10px 14px;font-family:inherit;font-size:.875rem}.filter-field input:focus,.filter-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}.filter-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.table-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.admin-panel{max-width:1100px;padding:28px 32px 40px}.admin-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.admin-panel-title{color:var(--text-h);margin:0;font-size:1.4rem;font-weight:700}.admin-panel-desc{color:#888;max-width:740px;margin:0 0 20px;font-size:.9rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.admin-tab-bar{border-bottom:2px solid var(--border);gap:0;margin-bottom:20px;display:flex}.admin-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--text)}.admin-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.user-suggest-list{z-index:200;background:var(--bg);border:1px solid var(--border);border-radius:6px;min-width:300px;max-height:220px;margin:4px 0 0;padding:4px 0;list-style:none;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.user-suggest-item{cursor:pointer;flex-direction:column;padding:8px 14px;transition:background .1s;display:flex}.user-suggest-item:hover{background:var(--hover-bg)}.user-suggest-name{font-size:.875rem;font-weight:500}.user-suggest-email{margin-top:1px;font-size:.78rem}.find-user-identity{align-items:center;padding:10px 0 4px;font-size:.9rem;display:flex}.admin-search{border:1px solid var(--border);background:var(--bg);width:260px;color:var(--text);border-radius:6px;padding:7px 12px;font-size:.875rem}.admin-search:focus{border-color:var(--accent);outline:none}.admin-count{color:var(--text-muted);background:var(--bg-muted);border-radius:20px;padding:2px 10px;font-size:.82rem}.admin-loading{text-align:center;color:#888;padding:40px;font-size:.9rem}.admin-empty{text-align:center;color:#aaa;padding:40px 20px;font-size:.9rem}.admin-empty-state{text-align:center;color:#888;flex-direction:column;align-items:center;gap:16px;padding:56px 24px;display:flex}.admin-muted{color:#aaa;font-size:.85rem}.admin-table-name{color:var(--text-h);font-weight:500}.admin-table-mono{font-family:var(--mono);color:#666;font-size:.82rem}.admin-actions{align-items:center;gap:6px;display:flex}.admin-table{border-collapse:collapse;background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.admin-table th{background:var(--bg-table-header);text-align:left;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:.82rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:10px 14px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:color-mix(in srgb, var(--accent) 4%, transparent)}.badge{white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:.77rem;font-weight:600;display:inline-block}.badge-green{color:#166534;background:#dcfce7}.badge-grey{color:#6b7280;background:#f3f4f6}.badge-orange{color:#9a3412;background:#fff7ed}.badge-blue{color:#1e40af;background:#eff6ff}.badge-red{color:#b91c1c;background:#fef2f2}.pagination-bar{flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;display:flex}.pagination-info{color:#888;margin:0 4px;font-size:.82rem}.form-field{flex-direction:column;gap:4px;font-size:.875rem;display:flex}.form-field span{color:var(--text);font-size:.82rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);box-sizing:border-box;border-radius:6px;width:100%;padding:7px 10px;font-family:inherit;font-size:.875rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.form-field input:disabled,.form-field textarea:disabled{opacity:.55;cursor:not-allowed;background:#f5f5f5}.form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:.875rem}.field-error{color:#dc2626;margin-top:2px;font-size:.78rem}.required{color:#dc2626}.form-checkbox{cursor:pointer;color:var(--text);align-items:center;gap:6px;font-size:.875rem;display:flex}.form-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.admin-modal-overlay{z-index:205;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg);border-radius:10px;width:480px;max-width:95vw;padding:28px 32px;box-shadow:0 20px 60px #0003}.admin-modal-title{color:var(--text-h);margin:0 0 16px;font-size:1.1rem;font-weight:700}.admin-modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;display:flex}.schema-editor{max-width:900px}.schema-section{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;padding:22px 24px}.schema-section-title{color:var(--text-h);margin:0 0 16px;font-size:1rem;font-weight:600}.schema-section-hint{color:var(--text-muted);margin:-10px 0 14px;font-size:.82rem}.composite-key-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.composite-key-label{color:var(--text-muted);min-width:46px;font-size:.8rem;font-weight:600}.composite-key-select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:4px;min-width:180px;padding:5px 8px;font-size:.85rem}.schema-basic-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.schema-desc-field{grid-column:1/-1}.schema-fields-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.schema-field-card{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;transition:border-color .15s;overflow:hidden}.schema-field-card.expanded{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.schema-field-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-table-header);align-items:center;gap:10px;padding:10px 14px;display:flex}.schema-field-card.expanded .schema-field-header{background:color-mix(in srgb, var(--accent) 6%, transparent)}.schema-field-header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.schema-field-num{color:#6b7280;background:#e5e3ec;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:flex}.schema-field-summary{color:var(--text-h);flex:1;align-items:center;gap:6px;min-width:0;font-size:.875rem;font-weight:500;display:flex;overflow:hidden}.schema-field-type-badge{color:#185fa5;background:#e8f0fe;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:.72rem;font-weight:600}.schema-field-badge{border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:.7rem;font-weight:600}.schema-field-actions{flex-shrink:0;gap:4px;display:flex}.schema-field-body{border-top:1px solid var(--border);background:var(--bg);flex-direction:column;gap:14px;padding:16px 14px;display:flex}.schema-field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.schema-flags-row{flex-wrap:wrap;grid-column:1/-1;gap:20px;display:flex}.schema-rules-section{background:var(--bg-table-header);border:1px solid var(--border);border-radius:7px;padding:12px 14px}.schema-rules-title{color:#888;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:.8rem;font-weight:600}.schema-rules-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.schema-rules-full{grid-template-columns:1fr}.schema-field-rule{flex-direction:column;gap:3px;font-size:.82rem;display:flex}.schema-field-rule span{color:#6b7280;font-weight:500}.schema-field-rule input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:5px;padding:5px 8px;font-family:inherit;font-size:.82rem}.schema-field-rule input:focus{border-color:var(--accent);outline:none}.schema-editor-footer{justify-content:flex-end;gap:12px;padding:20px 0 8px;display:flex}.form-readonly-hint{color:#888;font-style:normal;font-weight:400}.modal-backdrop{z-index:300;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg);border-radius:10px;outline:none;flex-direction:column;width:560px;max-width:100%;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.modal-dialog--warning{border-top:4px solid #f59e0b}.modal-dialog--wide{width:860px}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem .75rem;display:flex}.modal-title{color:var(--text-h);margin:0;font-size:1.05rem;font-weight:700}.modal-body{color:var(--text);flex:1;padding:1.25rem;font-size:.9rem;line-height:1.6;overflow-y:auto}.modal-body p{margin-bottom:.75rem}.modal-body p:last-child{margin-bottom:0}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:.875rem 1.25rem;display:flex}.modal-warning-note{color:#78350f;background:#fffbcc;border-left:3px solid #f59e0b;border-radius:0 4px 4px 0;margin-top:10px;padding:8px 12px;font-size:.82rem}.snapshot-quote{background:#f8f7fb;border-left:3px solid #185fa5;border-radius:0 6px 6px 0;margin:10px 0;padding:10px 14px;font-size:.875rem;font-style:normal}.snapshot-panel{padding:24px 28px}.snapshot-panel__header{margin-bottom:20px}.snapshot-panel__title{color:var(--text-h);margin:0 0 4px;font-size:1.15rem;font-weight:700}.snapshot-panel__subtitle{color:#888;margin:0;font-size:.875rem}.snapshot-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.snapshot-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.snapshot-card--skeleton{opacity:.5}.snapshot-card__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.snapshot-card__label{color:var(--text-h);font-size:.9rem;font-weight:600}.snapshot-card__meta{color:#888;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:.82rem;display:flex}.snapshot-card__meta dt{color:var(--text);font-weight:600;display:inline}.snapshot-card__meta dd{margin-left:4px;display:inline}.snapshot-card__filename{font-family:var(--mono);color:#888;font-size:.78rem}.snapshot-empty{text-align:center;color:#aaa;padding:40px 24px;font-size:.9rem}.skeleton-line{background:linear-gradient(90deg,#f0edf5 25%,#e6e0ef 50%,#f0edf5 75%) 0 0/200% 100%;border-radius:4px;height:14px;margin-bottom:6px;animation:1.4s infinite shimmer}.skeleton-line--title{width:60%;height:18px}.skeleton-line--meta{width:80%;height:12px}.skeleton-line--short{width:45%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.breadcrumb{color:#888;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:.82rem;display:flex}.breadcrumb a{color:#185fa5;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-sep{color:#ccc}.tabs{border-bottom:2px solid var(--border);flex-wrap:wrap;margin-bottom:20px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;font-family:inherit;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text-h)}.tab-active{color:#185fa5;border-bottom-color:#185fa5;font-weight:600}.my-datasets-list{max-width:900px;padding:28px 32px}.my-datasets-list h2{margin:0 0 4px}.my-datasets-list .subtitle{color:#888;margin:0 0 24px;font-size:.9rem}.dataset-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.dataset-card-meta{flex-direction:column;gap:4px;display:flex}.dataset-card-table{font-family:var(--mono);color:#888;font-size:.78rem}.dataset-card-desc{color:#888;margin:0;font-size:.85rem;line-height:1.45}.dataset-card-stats{color:#aaa;flex-wrap:wrap;gap:12px;font-size:.78rem;display:flex}.access-overview{max-width:1100px;padding:24px 28px}.access-overview-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.access-overview-header h2{margin:0}.access-table{border-collapse:collapse;border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.access-table th{background:var(--bg-table-header);text-align:center;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:.82rem;font-weight:600}.access-table th:first-child,.access-table td:first-child{text-align:left}.access-table td{border-bottom:1px solid var(--border);text-align:center;color:var(--text);vertical-align:middle;padding:10px 14px}.access-table tbody tr:last-child td{border-bottom:none}.access-table tbody tr:hover td{background:color-mix(in srgb, var(--accent) 4%, transparent)}.access-table .actions-cell,.access-table .actions-cell .btn-link{white-space:nowrap}.perm-flag{font-size:.8rem}.perm-flag--on{color:#16a34a;font-weight:700}.perm-flag--off{color:#ccc}.perm-yes{color:#166534;font-weight:700}.perm-no{color:#9ca3af}.group-members-panel{max-width:800px;padding:24px 28px}.group-members-panel h2{margin:0 0 4px}.members-table{border-collapse:collapse;border:1px solid var(--border);border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.members-table th{background:var(--bg-table-header);text-align:left;color:var(--text);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.82rem;font-weight:600}.members-table td{border-bottom:1px solid var(--border);color:var(--text);padding:10px 14px}.members-table tbody tr:last-child td{border-bottom:none}.members-table tbody tr:hover td{background:#f5f3fa}.perm-change-log,.permission-change-log{max-width:1100px;padding:24px 28px}.permission-change-log .log-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.permission-change-log .log-header h3{margin:0}.permission-change-log .log-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.permission-change-log .result-count{color:#666;margin:0 0 10px;font-size:.86rem}.perm-log-table{border-collapse:collapse;border:1px solid var(--border);border-radius:8px;width:100%;font-size:.82rem;overflow:hidden}.perm-log-table th{background:var(--bg-table-header);text-align:left;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-weight:600}.perm-log-table td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:8px 12px}.perm-log-table tbody tr:last-child td{border-bottom:none}.perm-log-table tbody tr:hover td{background:#f5f3fa}.perm-val-old{color:#dc2626;font-weight:500;text-decoration:line-through}.perm-val-new{color:#16a34a;font-weight:500}.perm-log-table .val-true{color:#166534;font-weight:600}.perm-log-table .val-false{color:#b91c1c;font-weight:600}.audit-log-viewer{flex-direction:column;gap:0;padding:0;display:flex}.card-grid-toolbar{background:var(--bg-card);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:16px 20px 14px;display:flex}.audit-log-toolbar{gap:10px}.dataset-grid-wrapper{background:var(--bg-card);border-radius:0 0 8px 8px;min-height:120px;position:relative;overflow:auto visible}.dataset-table{border-collapse:collapse;width:100%;color:var(--text,#1e1e2e);table-layout:auto;font-size:.875rem}.dataset-table thead th{background:var(--bg-table-header);text-align:left;color:var(--text-muted,#6b6b80);border-bottom:2px solid var(--border,#e5e3f0);white-space:nowrap;z-index:1;padding:9px 14px;font-size:.8rem;font-weight:600;position:sticky;top:0}.dataset-table tbody td{border-bottom:1px solid var(--border,#e5e3f0);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;max-width:320px;padding:8px 14px;overflow:hidden}.dataset-table tbody tr:last-child td{border-bottom:none}.dataset-table tbody tr:hover td{background:#f5f3fa}.btn-link{color:var(--accent,#185fa5);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:500;text-decoration:underline}.btn-link:hover{color:#0c447c}.btn-link:focus-visible{outline:2px solid var(--accent,#185fa5);outline-offset:2px;border-radius:2px}.audit-diff-dialog{max-width:960px}.audit-diff-body{flex-direction:column;gap:16px;display:flex}.audit-diff-meta{color:#888;flex-wrap:wrap;gap:14px;font-size:.82rem;display:flex}.audit-diff-meta strong{color:var(--text-h)}.group-perm-page{max-width:1100px;padding:24px 28px}.group-perm-page h2{margin:0 0 4px}.perm-matrix-table{border-collapse:collapse;border:1px solid var(--border);border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.perm-matrix-table th{background:var(--bg-table-header);text-align:center;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:.82rem;font-weight:600}.perm-matrix-table th:first-child{text-align:left}.perm-matrix-table td{border-bottom:1px solid var(--border);color:var(--text);text-align:center;vertical-align:middle;padding:10px 12px}.perm-matrix-table td:first-child{text-align:left;font-weight:500}.perm-matrix-table tbody tr:last-child td{border-bottom:none}.perm-matrix-table tbody tr:hover td{background:#f5f3fa}.perm-toggle{appearance:none;cursor:pointer;accent-color:#185fa5;border:2px solid #d1d5db;border-radius:4px;width:18px;height:18px;transition:background .15s,border-color .15s;position:relative}.perm-toggle:checked{background:#185fa5;border-color:#185fa5}.perm-toggle:checked:after{content:"✓";color:#fff;font-size:.7rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.perm-toggle:focus-visible{outline-offset:2px;outline:2px solid #185fa5}.empty-state{text-align:center;color:#aaa;flex-direction:column;gap:8px;padding:48px 32px;font-size:.9rem;display:flex}.empty-state-create{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 0;display:flex}.empty-state-msg{color:#666;margin:0;font-size:.875rem}.empty-state-msg strong{color:#333}.optional-label{color:#999;margin-left:4px;font-size:.8rem;font-weight:400}.drawer-actions-inline{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.members-panel-page{max-width:1000px;padding:24px 32px 40px}.members-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.members-panel-title{color:var(--text-h);margin:0;font-size:1.3rem;font-weight:700}.members-panel-dataset{color:var(--text-soft);font-size:.95rem;font-weight:400}.add-member-form{background:var(--bg-light);border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:20px 24px}.add-member-label{color:var(--text);margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.search-field,.search-input-wrap{position:relative}.add-member-search-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:6px;padding:9px 38px 9px 12px;font-size:.875rem}.add-member-search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #00a6511a}.search-spinner{border:2px solid #e5e3f0;border-top-color:#185fa5;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.search-results{border:1px solid var(--border);background:var(--bg-light);border-radius:6px;max-height:240px;margin:4px 0 0;padding:0;list-style:none;overflow-y:auto;box-shadow:0 4px 12px #00000014}.search-results li{border-bottom:1px solid var(--border);cursor:pointer;padding:10px 14px;transition:background .15s}.search-results li:last-child{border-bottom:none}.search-results li:hover,.search-results li:focus{background:color-mix(in srgb, var(--accent) 8%, transparent);outline:none}.search-results strong{color:var(--text-h)}.search-email{color:var(--text-soft);margin-left:6px;font-size:.85rem}.search-no-results{color:var(--text-soft);margin:6px 2px 0;font-size:.85rem}.search-no-results p{margin:0 0 6px}.search-hint{color:var(--text-soft);margin:8px 2px 0;font-size:.82rem}.link-button{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--accent-dark,var(--accent))}.manual-add-form{flex-direction:column;gap:14px;display:flex}.manual-add-hint{color:var(--text-soft);margin:0;font-size:.85rem}.field-hint{color:var(--text-soft);margin-left:4px;font-size:.78rem;font-weight:400}.add-member-selected{flex-direction:column;gap:14px;display:flex}.selected-user-pill{background:color-mix(in srgb, var(--accent) 8%, var(--bg));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.selected-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.selected-user-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.selected-user-email{color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.selected-user-clear{width:26px;height:26px;color:var(--text-soft);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.selected-user-clear:hover{background:var(--danger,#dc2626);color:#fff;border-color:var(--danger,#dc2626)}.add-member-actions{justify-content:flex-end;gap:8px;display:flex}.members-list{margin-bottom:20px}.members-empty{text-align:center;color:#aaa;padding:40px;font-size:.9rem}.drawer-overlay{z-index:1000;background:#0006;justify-content:flex-end;align-items:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg-light);flex-direction:column;width:100%;max-width:420px;height:100vh;display:flex;box-shadow:-2px 0 12px #00000026}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.drawer-header h3{color:var(--text-h);margin:0;font-size:1.1rem}.btn-close{color:#999;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:1.5rem;transition:background .15s,color .15s;display:flex}.btn-close:hover{color:var(--text-h);background:#0000000d}.drawer-body{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-hint{color:#888;margin:0 0 8px;font-size:.8rem}.drawer-hint kbd{font-family:var(--mono);background:#f0f0f0;border:1px solid #ccc;border-radius:3px;padding:2px 6px;font-size:.75rem}.drawer-body fieldset{border:none;flex-direction:column;gap:12px;margin:0;padding:0;display:flex}.drawer-body legend{color:var(--text-h);margin-bottom:4px;font-weight:600}.toggle-row{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.toggle-row:hover:not(.toggle-disabled){background:#f5f3fa}.toggle-row.toggle-disabled{opacity:.6;cursor:not-allowed}.toggle-row span{color:var(--text);flex:1;font-size:.9rem;font-weight:500}.toggle-row input[type=checkbox]{width:18px;height:18px;cursor:inherit}.toggle-row .ceiling-hint{margin-left:4px;font-size:1rem}.notes-field{flex-direction:column;gap:6px;display:flex}.notes-field textarea{border:1px solid var(--border);font-family:var(--sans);background:var(--bg);color:var(--text);resize:vertical;border-radius:6px;padding:8px 12px;font-size:.875rem}.notes-field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #00a6511a}.drawer-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px 24px;display:flex}.drawer-footer .btn{min-width:100px}.topbar-theme-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-right:6px;font-size:1.1rem;transition:background .15s,border-color .15s;display:flex}.topbar-theme-btn:hover{background:#ffffff47;border-color:#ffffff8c}:root[data-theme=dark] body{background:radial-gradient(circle at 8% -12%, #22c55e0d, transparent 38%), radial-gradient(circle at 92% 112%, #94a3b80a, transparent 36%), var(--bg)}:root[data-theme=dark] .main-content{background:linear-gradient(180deg, #1a203580, #1a203500), var(--bg)}:root[data-theme=dark] .login-page{background:radial-gradient(circle at 20% 15%,#22c55e0f,#0000 30%),linear-gradient(#0f172a 0%,#111827 100%)}:root[data-theme=dark] .login-dev-notice{color:#86efac;background:#22c55e1a;border-color:#22c55e4d}:root[data-theme=dark] .dev-banner{color:#86efac;background:#22c55e1a;border-bottom-color:#22c55e33}:root[data-theme=dark] .topbar-dropdown{box-shadow:0 8px 24px #00000080}:root[data-theme=dark] .topbar-dropdown-info small{color:var(--text-muted)}:root[data-theme=dark] .badge-green{color:#86efac;background:#22c55e33}:root[data-theme=dark] .badge-grey{color:#94a3b8;background:#64748b33}:root[data-theme=dark] .badge-blue{color:#93c5fd;background:#3b82f633}:root[data-theme=dark] .badge-orange{color:#fdba74;background:#f9731633}:root[data-theme=dark] .badge-red{color:#fca5a5;background:#ef444433}:root[data-theme=dark] .status-ok{color:#86efac;background:#22c55e26}:root[data-theme=dark] .status-err{color:#fca5a5;background:#ef444426}:root[data-theme=dark] .vrow-error td{background:#ef444414}:root[data-theme=dark] .validation-banner--ok{color:#86efac;background:#22c55e1f;border-color:#22c55e4d}:root[data-theme=dark] .validation-banner--error{color:#fca5a5;background:#ef44441f;border-color:#ef44444d}:root[data-theme=dark] .drawer-conflict-banner{color:#fcd34d;background:#f59e0b26;border-color:#f59e0b}:root[data-theme=dark] .drawer-error-banner{color:#fca5a5;background:#ef44441f;border-color:#ef4444}:root[data-theme=dark] .drawer-change-comment-notice{color:#93c5fd;background:#3b82f61f;border-color:#3b82f6}:root[data-theme=dark] .diff-stat--update{color:#93c5fd;background:#3b82f61f;border-color:#3b82f64d}:root[data-theme=dark] .diff-stat--remove{color:#fdba74;background:#f973161f;border-color:#f973164d}:root[data-theme=dark] .diff-info-banner{color:#93c5fd;background:#3b82f61f;border-color:#3b82f64d}:root[data-theme=dark] .cdt-row-diff td{background:#f59e0b1a}:root[data-theme=dark] .upload-file-card{color:var(--text-h);background:#3b82f61a;border-color:#3b82f64d}:root[data-theme=dark] .upload-dropzone{background:var(--bg-muted);border-color:var(--border)}:root[data-theme=dark] .upload-dropzone:hover,:root[data-theme=dark] .upload-dropzone:focus-visible{background:color-mix(in srgb, var(--accent) 8%, var(--bg-muted))}:root[data-theme=dark] .upload-mode-summary{color:#86efac;background:#22c55e1f;border-color:#22c55e4d}:root[data-theme=dark] .field-type-tag,:root[data-theme=dark] .schema-field-type-badge{color:#93c5fd;background:#3b82f626}:root[data-theme=dark] .schema-field-num{color:#94a3b8;background:#64748b33}:root[data-theme=dark] .schema-rules-title{color:var(--text-muted)}:root[data-theme=dark] .schema-field-rule span{color:var(--text-subtle)}:root[data-theme=dark] .form-field input:disabled,:root[data-theme=dark] .form-field textarea:disabled{background:var(--bg-muted)}:root[data-theme=dark] .form-error{color:#fca5a5;background:#ef44441f;border-color:#ef44444d}:root[data-theme=dark] .modal-warning-note{color:#fcd34d;background:#f59e0b1a}:root[data-theme=dark] .snapshot-quote{background:#3b82f61a;border-color:#3b82f659}:root[data-theme=dark] .skeleton-line{background:linear-gradient(90deg,#1e2538 25%,#252f45 50%,#1e2538 75%) 0 0/200% 100%}:root[data-theme=dark] .breadcrumb a{color:#93c5fd}:root[data-theme=dark] .tab-active{color:#93c5fd;border-bottom-color:#93c5fd}:root[data-theme=dark] .btn-link{color:#93c5fd}:root[data-theme=dark] .btn-link:hover{color:#bfdbfe}:root[data-theme=dark] .dataset-card-title a:hover{color:#93c5fd}:root[data-theme=dark] .admin-table tbody tr:hover td,:root[data-theme=dark] .access-table tbody tr:hover td,:root[data-theme=dark] .perm-matrix-table tbody tr:hover td,:root[data-theme=dark] .perm-log-table tbody tr:hover td,:root[data-theme=dark] .members-table tbody tr:hover td,:root[data-theme=dark] .dataset-table tbody tr:hover td,:root[data-theme=dark] .search-results li:hover,:root[data-theme=dark] .toggle-row:hover:not(.toggle-disabled){background:color-mix(in srgb, var(--accent) 8%, var(--bg))}:root[data-theme=dark] .perm-toggle{border-color:#4b5563}:root[data-theme=dark] .perm-toggle:checked{background:#3b82f6;border-color:#3b82f6}:root[data-theme=dark] .perm-flag--off{color:#4b5563}:root[data-theme=dark] .perm-val-old{color:#fca5a5}:root[data-theme=dark] .perm-val-new{color:#86efac}:root[data-theme=dark] .undo-toast{border-color:#ef4444}:root[data-theme=dark] .undo-toast-btn{color:#22c55e}:root[data-theme=dark] .undo-toast-progress{background:#22c55e}:root[data-theme=dark] .toggle-row{background:var(--bg-muted)}:root[data-theme=dark] .drawer-hint{color:var(--text-muted)}:root[data-theme=dark] .drawer-hint kbd{background:var(--bg-muted);border-color:var(--border);color:var(--text)}:root[data-theme=dark] .btn-close:hover{background:#ffffff14}:root[data-theme=dark] .admin-table-mono{color:#94a3b8}:root[data-theme=dark] .admin-panel-desc,:root[data-theme=dark] .page-header p,:root[data-theme=dark] .snapshot-panel__subtitle,:root[data-theme=dark] .my-datasets-list .subtitle,:root[data-theme=dark] .dataset-card-description,:root[data-theme=dark] .dataset-card-desc,:root[data-theme=dark] .dataset-card-table,:root[data-theme=dark] .schema-ref-desc,:root[data-theme=dark] .permission-change-log .result-count{color:var(--text-muted)}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{content:"";border:3px solid #ccc;border-width:3px 3px 0 0;width:9px;height:9px;display:block;position:absolute;top:6px}.react-datepicker__sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.react-datepicker-wrapper{border:0;padding:0;display:inline-block}.react-datepicker{color:#000;font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;line-height:initial;background-color:#fff;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-right-radius:.375em;border-bottom-left-radius:.375em}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper--header-middle[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper--header-bottom[data-placement^=bottom] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker-popper--header-bottom[data-placement^=top] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select,.react-datepicker__header--middle,.react-datepicker__header--bottom){border-top-right-radius:.3rem}.react-datepicker__header--middle{border-top:1px solid #aeaeae;border-radius:0;margin-top:4px}.react-datepicker__header--bottom{border-top:1px solid #aeaeae;border-bottom:none;border-radius:0 0 .3rem .3rem}.react-datepicker__header-wrapper{position:relative}.react-datepicker__header-wrapper .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:2px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{margin:0 15px;display:inline-block}.react-datepicker__month-select,.react-datepicker__year-select,.react-datepicker__month-year-select{color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;background-color:#0000;border:1px solid #aeaeae;border-radius:.3rem;margin-top:5px;padding:2px 5px}.react-datepicker__month-select:focus-visible,.react-datepicker__year-select:focus-visible,.react-datepicker__month-year-select:focus-visible{outline:1px auto}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{color:#000;margin-top:0;font-size:.944rem;font-weight:700}h2.react-datepicker__current-month{margin:0;padding:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{text-align:center;cursor:pointer;z-index:1;text-indent:-999em;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex;position:absolute;top:2px;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{margin-left:auto;margin-right:auto;display:block;position:relative;top:0}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover :before{border-color:#a6a6a6}.react-datepicker__navigation-icon{width:0;font-size:20px;position:relative;top:-1px}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{left:-7px;transform:rotate(45deg)}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{right:-7px;transform:rotate(225deg)}.react-datepicker__month-container{float:left}.react-datepicker__year{text-align:center;margin:.5em}.react-datepicker__year-wrapper{flex-wrap:wrap;max-width:180px;display:flex}.react-datepicker__year .react-datepicker__year-text{width:5em;margin:2px;display:inline-block}.react-datepicker__month{text-align:center;margin:.5em}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{width:5em;margin:2px;display:inline-block}.react-datepicker__input-time-container{clear:both;float:left;text-align:left;width:100%;margin:5px 0 10px 15px}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{margin-left:10px;display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{border:1px solid #aeaeae;border-radius:.375em;display:inline;position:absolute;top:0;right:-87px}.react-datepicker__time-container .react-datepicker__time{background:#fff;border-bottom-right-radius:.375em;position:relative}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{text-align:center;border-bottom-right-radius:.375em;width:85px;margin:0 auto;overflow-x:hidden}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{box-sizing:content-box;width:100%;height:calc(195px + 1.0625em);margin:0;padding-left:0;padding-right:0;list-style:none;overflow-y:scroll}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{white-space:nowrap;height:30px;padding:5px 10px}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{color:#fff;background-color:#216ba5;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:#0000}.react-datepicker__week-number{color:#ccc;text-align:center;width:2.125em;margin:.208em;line-height:2.125em;display:inline-block}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__week-number--selected{color:#fff;background-color:#216ba5;border-radius:.3rem}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;text-align:center;width:2.125em;margin:.208em;line-height:2.125em;display:inline-block}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{background-color:#f0f0f0;border-radius:.3rem}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{color:#fff;background-color:#3dcc4a;border-radius:.3rem}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{color:#fff;background-color:#ff6803;border-radius:.3rem;position:relative}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{color:#fff;white-space:nowrap;visibility:hidden;opacity:0;background-color:#333;border-radius:4px;padding:4px;transition:visibility,opacity .3s ease-in-out;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{color:#fff;background-color:#216ba5;border-radius:.3rem}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{color:#000;background-color:#bad9f1;border-radius:.3rem}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{color:#fff;background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){color:#000;background-color:#f0f0f0}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{color:#fff;white-space:nowrap;visibility:hidden;opacity:0;background-color:#333;border-radius:4px;padding:4px;transition:visibility,opacity .3s ease-in-out;position:absolute;bottom:70%;left:50%;transform:translate(-50%)}.react-datepicker__input-container{width:100%;display:inline-block;position:relative}.react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:content-box;padding:.625em;position:absolute}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid #0000;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{top:0;right:-16px;transform:rotate(135deg)}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{z-index:1;text-align:center;background-color:#f0f0f0;border:1px solid #aeaeae;border-radius:.3rem;width:50%;position:absolute;top:30px;left:25%}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{width:100%;margin-left:auto;margin-right:auto;line-height:20px;display:block}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;user-select:none;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;vertical-align:middle;background-color:#0000;border:0;outline:0;height:100%;padding:0 6px 0 0;display:table-cell;position:absolute;top:0;right:0}.react-datepicker__close-icon:after{cursor:pointer;color:#fff;text-align:center;vertical-align:middle;content:"×";background-color:#216ba5;border-radius:50%;width:16px;height:16px;padding:2px;font-size:12px;line-height:1;display:table-cell}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{cursor:pointer;text-align:center;clear:left;background:#f0f0f0;border-top:1px solid #aeaeae;padding:5px 0;font-weight:700}.react-datepicker__portal{z-index:2147483647;background-color:#000c;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.react-datepicker__children-container{width:17.25em;height:auto;margin:.5em;padding-left:.25em;padding-right:.25em}.react-datepicker__aria-live{clip-path:circle(0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.react-datepicker__calendar-icon{vertical-align:-.125em;width:1em;height:1em}.react-datepicker-popper-offset{margin-top:-.7em}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
