:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg:#f6f8fb;--surface:#fff;--surface-soft:#f3f4f6;--border:#e5e7eb;--text:#374151;--heading:#111827;--muted:#6b7280;--accent:#2563eb;--error:#ef4444;--error-light:#fef2f2;--success:#10b981;--success-light:#ecfdf5;--warning:#f59e0b;--warning-light:#fffbeb;--info:#2563eb;--info-light:#eff6ff;--selected-bg:#dbeafe;--selected-text:#1e40af;--hover-bg:#f3f4f6;--muted-light:#9ca3af;--divider:#d1d5db;--fs-xs:10px;--fs-sm:11px;--fs-base:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:18px;--fs-2xl:22px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-drawer:400;--z-modal:500;--z-toast:600;background:#f6f8fb;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg)}h1,h2,h3,p{margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app-shell{max-width:100vw;min-height:100vh;display:flex;overflow-x:clip}.sidebar{border-right:1px solid var(--border);box-sizing:border-box;flex-shrink:0;width:168px;min-width:168px;max-width:168px;padding:20px 12px}@media (width<=1024px){.sidebar{display:none}}.brand{justify-content:center;align-items:center;margin-bottom:22px;display:flex}.brand p{color:var(--muted);margin-top:4px;font-size:13px}.brand-logo-button{background:0 0;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;min-height:52px;padding:0;display:flex}.brand-logo-button:hover{background:var(--surface-soft);filter:none}.brand-logo{object-fit:cover;border:1px solid var(--border);border-radius:12px;width:48px;height:48px;display:block}.brand-mark{background:var(--accent);width:48px;height:48px;color:var(--surface);border-radius:12px;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex}.nav{gap:6px;display:grid}.nav-item{color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;min-width:0;padding:9px 10px;text-decoration:none;display:flex}.nav-item.active,.nav-item:hover{background:var(--surface-soft);color:var(--heading)}.nav-icon{background:var(--surface-soft);width:22px;height:22px;color:var(--muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.nav-item.active .nav-icon,.nav-item:hover .nav-icon{color:#1d4ed8;background:#dbeafe}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav-badge{background:var(--error);color:var(--surface);border-radius:10px;flex-shrink:0;padding:1px 6px;font-size:11px}.content{box-sizing:border-box;flex:1;min-width:0;padding:24px;overflow-x:clip}.page-section{grid-template-columns:minmax(0,1fr);gap:16px;max-width:100%;display:grid;overflow-x:clip}.section-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.topbar-search{flex:1;justify-content:center;display:flex}.topbar-user{flex-shrink:0;align-items:center;gap:4px;display:flex}.topbar-icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;align-items:center;line-height:1;transition:all .15s;display:flex;position:relative}.topbar-icon-btn:hover{background:var(--surface-soft);color:var(--heading);filter:none}.topbar-badge{background:var(--error);color:var(--surface);text-align:center;border-radius:10px;min-width:14px;padding:0 4px;font-size:10px;line-height:14px;position:absolute;top:2px;right:2px}.topbar-user-name{color:var(--heading);background:var(--surface-soft);border-radius:8px;margin-left:4px;padding:6px 10px;font-size:13px}.eyebrow,.subtitle{display:none}.notice-banner{border:1px solid var(--border);color:#9a3412;background:#fff7ed;border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:14px}.hero-card,.panel,.stat-card{border:1px solid var(--border);background:var(--surface);border-radius:16px}.hero-card{justify-content:space-between;gap:20px;margin-bottom:24px;padding:24px;display:flex}.hero-actions{align-items:center;gap:12px;display:flex}button{background:var(--accent);color:var(--surface);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;min-height:32px;padding:6px 18px;font-size:13px;font-weight:600}button.secondary{background:var(--surface-soft);color:var(--heading)}.action-button{padding:5px 14px;font-size:12px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{padding:20px}.stat-card span{color:var(--muted);margin-bottom:10px;font-size:14px;display:block}.stat-card strong{color:var(--heading);margin-bottom:8px;font-size:28px;display:block}.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.panel{padding:20px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-header h3{align-items:center;gap:8px;display:flex}.panel-header h3 small{color:var(--muted);font-size:13px;font-weight:500}.panel-header a{color:var(--accent);text-decoration:none}.todo-list{color:var(--text);gap:10px;margin:0;padding-left:18px;display:grid}.todo-list li{gap:4px;display:grid}.todo-list li strong{color:var(--heading)}.todo-list li span{color:var(--muted);font-size:14px}.pool-tabs{border-bottom:2px solid var(--border);flex-wrap:wrap;align-items:center;gap:0;margin-bottom:16px;padding-right:12px;display:flex}.pool-tab{min-width:auto;color:var(--muted);text-align:center;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-2px;padding:10px 20px;font-size:14px}.pool-tab.active{border-color:var(--accent);color:var(--accent);background:0 0;font-weight:600}.pool-tab strong{font-weight:inherit;display:inline}.pool-tab span{display:none}.pool-tabs-spacer{flex:1}.search-filters{grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:10px 16px;padding:10px 0;display:grid}.search-filters .filter-label{color:var(--muted);white-space:nowrap;font-size:13px}.search-filters input,.search-filters select{border:1px solid var(--border);width:100%;font:inherit;background:var(--surface);border-radius:8px;padding:7px 10px;font-size:13px}.advanced-filters{background:var(--surface-soft);border:1px dashed var(--border);border-radius:10px;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:10px 16px;margin-bottom:12px;padding:10px 14px;display:grid}.advanced-filters .filter-label{color:var(--muted);white-space:nowrap;font-size:13px}.section-divider{border:none;border-top:2px solid var(--border);margin:4px 0 14px}.col-config-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;display:flex}.col-config-dropdown-arrow:after{content:" ▾";font-size:10px}.col-config-dropdown{background:var(--surface);border:1px solid var(--border);z-index:30;border-radius:10px;min-width:200px;margin-top:4px;padding:8px 0;position:absolute;top:100%;right:0;box-shadow:0 4px 16px #0000001a}.col-config-dropdown label,.col-config-dropdown>button,.col-config-dropdown button.dropdown-item{cursor:pointer;text-align:left;background:var(--surface);width:100%;color:var(--text);box-shadow:none;border:none;border-radius:0;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.col-config-dropdown label:hover,.col-config-dropdown>button:hover,.col-config-dropdown button.dropdown-item:hover{background:var(--surface-soft)}button.dropdown-item:hover{background:var(--surface-soft)!important}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;padding-right:22px;position:relative}.data-table th.sortable:after{content:"▲▼";color:#bbb;font-size:9px;font-weight:600;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.data-table th.sortable.asc:after{content:"▲";color:var(--accent);font-size:10px}.data-table th.sortable.desc:after{content:"▼";color:var(--accent);font-size:10px}.data-table th.draggable{cursor:grab;padding-left:10px}.data-table th.draggable:before{content:"⋮";color:var(--border);opacity:.5;margin-right:4px;font-size:12px}.data-table th.draggable:active{cursor:grabbing}.data-table th.sortable.draggable:after{right:4px}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;table-layout:auto;white-space:nowrap}.data-table th,.data-table td{text-align:left;white-space:nowrap;padding:8px 10px;font-size:13px}.data-table th{color:var(--muted);font-weight:600}.empty-cell{color:var(--muted);text-align:center!important}.empty-tip{color:var(--muted)}.row-actions{gap:8px;display:flex}.detail-grid{grid-template-columns:1.1fr .9fr;gap:16px;display:grid}.detail-list{gap:14px;display:grid}.detail-list div{gap:4px;display:grid}.detail-list strong{color:var(--heading);font-size:14px}.detail-list span{color:var(--text)}.mobile-nav{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;padding:12px 16px;display:none}.mobile-nav select{border:1px solid var(--border);font:inherit;background:var(--surface);color:var(--text);border-radius:10px;flex:1;padding:10px 12px;font-size:14px}@media (width<=1024px){.mobile-nav{display:flex}.sidebar{display:none}.content{padding:12px}.topbar{flex-wrap:wrap;margin-bottom:16px}.topbar-search{order:3;width:100%}.topbar-user{order:1;margin-left:auto}.hero-card{flex-direction:column}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-grid,.detail-grid{grid-template-columns:1fr}.drawer-panel{width:100vw;left:0}.pool-filter-grid,.pool-filter-grid.advanced{grid-template-columns:repeat(2,minmax(0,1fr))}.pool-search-bar{grid-template-columns:1fr 1fr}.pool-common-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.pool-tabs{gap:0}.pool-tab{padding:8px 14px;font-size:13px}.section-header{flex-direction:column;align-items:flex-start}.settings-edit-grid{grid-template-columns:1fr}.search-filters{grid-template-columns:1fr 1fr}}@media (width<=640px){.stats-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;width:100%}.hero-actions button{width:100%}.pool-search-bar,.pool-common-filters,.pool-filter-grid,.pool-filter-grid.advanced{grid-template-columns:1fr}.pool-tabs{flex-direction:column}.pool-tab{min-width:auto}.batch-toolbar{flex-wrap:wrap;gap:6px}.batch-toolbar input,.batch-toolbar select{width:100%}.import-modal{width:96vw;max-height:90vh;padding:12px}.row-actions{flex-wrap:wrap}}.login-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:14px;width:min(420px,100%);padding:24px;display:grid}.login-card p{color:var(--muted)}.field{gap:6px;display:grid}.field span{color:var(--heading);font-size:14px}input,select,textarea{border:1px solid var(--border);font:inherit;color:var(--text);background:var(--surface);box-sizing:border-box;border-radius:8px;padding:8px 12px;font-size:13px}.field input{width:100%}.field select{border:1px solid var(--border);width:100%;font:inherit;color:var(--text);background:var(--surface);border-radius:10px;padding:10px 12px}.settings-edit-form{border:1px dashed var(--border);border-radius:12px;gap:12px;margin-bottom:14px;padding:14px;display:grid}.settings-edit-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.settings-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.save-tip{color:#166534;background:#ecfdf5;border:1px solid #86efac;border-radius:10px;margin-bottom:10px;padding:8px 10px;font-size:14px}.pool-filter-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.pool-search-bar{grid-template-columns:180px 1fr auto auto auto;gap:10px;margin-bottom:10px;display:grid}.pool-search-bar input,.pool-search-bar select{border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;padding:8px 10px}.pool-common-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.pool-common-filters label{color:var(--muted);gap:6px;font-size:13px;display:grid}.pool-common-filters select{border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;padding:8px 10px}.pool-filter-grid.advanced{grid-template-columns:repeat(5,minmax(0,1fr))}.pool-filter-grid input,.pool-filter-grid select{border:1px solid var(--border);width:100%;font:inherit;border-radius:10px;padding:8px 10px}.pool-column-bar{margin-bottom:12px}.pool-column-bar>span{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.column-chip-list{flex-wrap:wrap;gap:8px;display:flex}.column-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 10px;font-size:12px}.column-chip.muted{color:var(--muted);border-style:dashed}.batch-toolbar{align-items:center;gap:10px;margin-bottom:12px;display:flex}.batch-toolbar.active{border:1px solid var(--border);background:var(--surface-soft);border-radius:12px;padding:10px}.batch-toolbar span{color:var(--muted);font-size:13px}.batch-toolbar select,.batch-toolbar input{border:1px solid var(--border);font:inherit;border-radius:10px;padding:7px 10px}.customer-name-cell{flex-wrap:nowrap;align-items:center;gap:6px;min-width:120px;display:flex}.customer-name-cell small{color:var(--muted);font-size:12px}.link-like{color:var(--accent);text-align:left;background:0 0;border:none;width:fit-content;padding:0}.drawer-panel{background:var(--surface);border-left:1px solid var(--border);z-index:40;width:min(1110px,62vw);height:100vh;padding:20px;animation:.25s ease-out slideInRight;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #0f172a14}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-overlay{z-index:39;background:#0f172a33;animation:.2s ease-out fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pagination{justify-content:center;align-items:center;gap:4px;padding:14px 0;font-size:13px;display:flex}.pagination button{min-width:32px;padding:5px 12px;font-size:13px}.pagination .page-active{background:var(--accent);color:var(--surface)}.pagination .page-info{color:var(--muted);margin:0 8px;font-size:12px}.drawer-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.drawer-header p{color:var(--muted);margin-top:4px}.drawer-list{padding-left:0;list-style:none}.import-modal-mask{z-index:50;background:#0f172a59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.import-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;gap:12px;width:min(760px,92vw);max-height:82vh;padding:18px;display:grid;overflow:visible}.import-modal-body{max-height:calc(82vh - 36px);overflow-y:auto}.import-modal .row-actions{flex-wrap:wrap}.import-modal input[type=file]{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:8px 10px}.import-entry{gap:6px;display:flex;position:relative}.daterange-close-btn{background:var(--border);width:16px;min-width:16px;max-width:16px;height:16px;min-height:16px;max-height:16px;color:var(--muted);cursor:pointer;border:none;border-radius:3px;flex-shrink:0;padding:0;font-size:10px;line-height:16px}.import-caret{width:40px;min-width:40px;padding:10px 0}.import-dropdown{border:1px solid var(--border);background:var(--surface);z-index:20;border-radius:10px;padding:8px;position:absolute;top:44px;right:0;box-shadow:0 8px 18px #0f172a14}@keyframes form-field-error-flash{0%,to{background-color:#fff1f2;border-color:#f87171}25%,75%{background-color:#fecaca;border-color:#ef4444}50%{background-color:#fff1f2;border-color:#f87171}}.form-field-error-wrap.form-field-error-flash>input,.form-field-error-wrap.form-field-error-flash>select,.form-field-error-wrap.form-field-error-flash>textarea,.form-field-error-wrap.form-field-error-flash .form-field-error-target,.form-field-error-wrap.form-field-error-flash input,.form-field-error-wrap.form-field-error-flash select,.form-field-error-wrap.form-field-error-flash textarea{animation:.8s ease-in-out form-field-error-flash}.form-field-error-wrap>input,.form-field-error-wrap>select,.form-field-error-wrap>textarea,.form-field-error-wrap .form-field-error-target,.form-field-error-wrap input,.form-field-error-wrap select,.form-field-error-wrap textarea{background:#fff1f2!important;border:1.5px solid #f87171!important}
