@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap);:root{--color-purple-900:#2d1a47;--color-purple-800:#3a2159;--color-purple-700:#47286e;--color-purple-600:#553080;--color-purple-500:#6b3fa0;--color-purple-400:#8b6bb5;--color-purple-300:#a98fca;--color-purple-200:#c7b3df;--color-purple-100:#e5d9ef;--color-purple-50:#f3eef8;--color-purple:var(--color-purple-700);--color-pink:#db2777;--color-orange-900:#7a3b00;--color-orange-800:#9e4d00;--color-orange-700:#cc6300;--color-orange-600:#e56e00;--color-orange-500:#ff7b00;--color-orange-400:#ff9533;--color-orange-300:#ffb066;--color-orange-200:#ffca99;--color-orange-100:#ffe5cc;--color-orange-50:#fff5eb;--color-primary:var(--color-purple-700);--color-primary-hover:var(--color-purple-800);--color-primary-light:var(--color-purple-50);--color-primary-border:var(--color-purple-200);--color-accent:var(--color-orange-500);--color-accent-hover:var(--color-orange-600);--color-accent-light:var(--color-orange-50);--color-success:#059669;--color-success-light:#ecfdf5;--color-success-border:#a7f3d0;--color-success-hover:#047857;--color-success-dark:var(--color-success-hover);--color-warning:#d97706;--color-warning-light:#fffbeb;--color-warning-border:#fde68a;--color-warning-dark:#b45309;--color-danger:#dc2626;--color-danger-light:#fef2f2;--color-danger-border:#fecaca;--color-danger-hover:#b91c1c;--color-danger-dark:var(--color-danger-hover);--color-info:#2563eb;--color-info-light:#eff6ff;--color-info-border:#bfdbfe;--color-green-700:#15803d;--color-green-600:#16a34a;--color-green-500:#22c55e;--color-green-100:#dcfce7;--color-green-50:#f0fdf4;--color-green-border:#bbf7d0;--color-green-900:#065f46;--color-amber-800:#92400e;--color-amber-700:#b45309;--color-red-900:#991b1b;--color-red-300:#fca5a5;--color-orange-status-bg:#ffedd5;--color-orange-status-text:#c2410c;--color-purple-status-bg:#ede9fe;--color-purple-status-text:#6d28d9;--color-blue-200:#93c5fd;--color-blue-100:#e3f2fd;--color-blue-50:#f0f9ff;--color-emerald-100:#d1fae5;--color-emerald-200:#c8e6c9;--color-emerald-50:#e8f5e8;--color-spreadsheet-border:#333;--color-spreadsheet-bg:#f8f9fa;--color-spreadsheet-header:#e9ecef;--color-spreadsheet-highlight:#fff3cd;--color-spreadsheet-text:#333;--color-spreadsheet-text-secondary:#666;--color-spreadsheet-border-light:#ccc;--color-spreadsheet-focus:var(--color-info);--color-btn-save:var(--color-success);--color-btn-save-hover:var(--color-success-hover);--color-btn-secondary-legacy:var(--color-gray-500);--color-btn-secondary-legacy-hover:var(--color-gray-600);--color-btn-primary-legacy:var(--color-info);--color-btn-primary-legacy-hover:#1d4ed8;--color-btn-close:var(--color-danger);--color-btn-close-hover:var(--color-danger-hover);--color-gray-950:#0a0a0a;--color-gray-900:#171717;--color-gray-800:#262626;--color-gray-700:#404040;--color-gray-600:#525252;--color-gray-500:#737373;--color-gray-400:#a3a3a3;--color-gray-300:#d4d4d4;--color-gray-200:#e5e5e5;--color-gray-100:#f5f5f5;--color-gray-50:#fafafa;--color-white:#fff;--text-primary:var(--color-gray-900);--text-secondary:var(--color-gray-600);--text-muted:var(--color-gray-400);--text-inverse:var(--color-white);--text-link:var(--color-primary);--text-on-primary:var(--color-white);--text-on-accent:var(--color-white);--bg-page:var(--color-gray-100);--bg-surface:var(--color-white);--bg-surface-raised:var(--color-white);--bg-surface-sunken:var(--color-gray-50);--bg-sidebar:var(--color-purple-700);--bg-sidebar-from:var(--color-purple-800);--bg-sidebar-to:var(--color-purple-900);--bg-header:var(--color-white);--border-default:var(--color-gray-200);--border-strong:var(--color-gray-300);--border-focus:var(--color-purple-500);--font-heading:"Plus Jakarta Sans",sans-serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"SF Mono","Fira Code",monospace;--text-2xs:0.625rem;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--space-0:0;--space-0.5:0.125rem;--space-1:0.25rem;--space-1.5:0.375rem;--space-2:0.5rem;--space-2.5:0.625rem;--space-3:0.75rem;--space-3.5:0.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:16px;--radius-full:9999px;--shadow-xs:0 1px 2px #100c1e0d;--shadow-sm:0 1px 3px #100c1e14,0 1px 2px #100c1e0a;--shadow-md:0 4px 8px -2px #100c1e1a,0 2px 4px -2px #100c1e0f;--shadow-lg:0 12px 20px -6px #100c1e1f,0 4px 8px -4px #100c1e0f;--shadow-xl:0 24px 40px -12px #100c1e2e;--shadow-focus-ring:0 0 0 3px #47286e1a;--shadow-primary-glow:0 4px 12px #47286e4d;--shadow-primary-glow-lg:0 6px 16px #47286e66;--shadow-success-glow:0 4px 12px #0596694d;--shadow-success-glow-lg:0 6px 16px #05966966;--overlay-backdrop:#00000080;--overlay-heavy:#0009;--overlay-dark:#000c;--overlay-solid:#000000f2;--transition-fast:140ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--sidebar-w:248px;--topbar-h:64px;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500}:root[data-brand=cinnabon]{--color-primary:#6b4226;--color-primary-hover:#573419;--color-primary-light:#f3e8dd;--color-primary-border:#d9c3ab;--color-accent:#3fb0dc;--color-accent-hover:#2b98c2;--color-accent-light:#e8f6fc;--bg-sidebar:#6b4226;--bg-sidebar-from:#6b4226;--bg-sidebar-to:#4a2e1a}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-page);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);margin:0;padding:0}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--leading-tight)}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--color-primary-hover)}::selection{background:var(--color-purple-100);color:var(--color-purple-900)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}code,kbd,pre{font-family:var(--font-mono)}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-semibold);gap:var(--space-2);justify-content:center;line-height:1.2;padding:9px 16px;text-decoration:none;transition:all var(--transition-fast);white-space:nowrap}.btn svg{height:16px;width:16px}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-xs);color:var(--text-on-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-primary)}.btn-secondary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-outline{background:var(--bg-surface);border-color:var(--border-strong);color:var(--text-primary)}.btn-outline:hover{background:var(--color-gray-50);border-color:var(--color-gray-400)}.btn-ghost{background:#0000;border-color:#0000;color:var(--text-secondary)}.btn-ghost:hover{background:var(--color-gray-100);color:var(--text-primary)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-white)}.btn-danger:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-danger-outline{background:#0000;border-color:var(--color-danger-border);color:var(--color-danger)}.btn-danger-outline:hover{background:var(--color-danger-light);border-color:var(--color-danger)}.btn-success{background:var(--color-success);border-color:var(--color-success);color:var(--color-white)}.btn-success:hover{background:var(--color-success-hover)}.btn-sm{font-size:var(--text-sm);padding:6px 12px}.btn-lg{font-size:var(--text-md);padding:12px 22px}.btn-disabled,.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn-icon{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;padding:var(--space-2);transition:background-color var(--transition-fast)}.btn-icon svg{flex-shrink:0;height:20px;width:20px}.btn-icon:hover{background-color:var(--color-gray-100);color:var(--text-primary)}.form-group{margin-bottom:var(--space-4)}.form-label{color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);margin-bottom:var(--space-1)}.form-label-required:after{color:var(--color-danger);content:" *"}.form-hint{color:var(--text-muted)}.form-error-msg,.form-hint{font-size:var(--text-xs);margin-top:var(--space-1)}.form-error-msg{color:var(--color-danger)}.form-input,.form-select,.form-textarea{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-purple-100);outline:none}.form-input-error{border-color:var(--color-danger)!important;box-shadow:0 0 0 3px #dc26261a}.form-input:disabled{background:var(--color-gray-50);color:var(--text-muted);cursor:not-allowed}.form-textarea{min-height:80px;resize:vertical}.form-input-sm{font-size:var(--text-sm);padding:var(--space-1) var(--space-2)}.form-check{align-items:center;cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-2)}.form-check input[type=checkbox],.form-check input[type=radio]{accent-color:var(--color-primary);cursor:pointer;height:16px;width:16px}.toggle{display:inline-block;height:22px;position:relative;width:40px}.toggle input{height:0;opacity:0;width:0}.toggle-slider{background-color:var(--color-gray-300);border-radius:var(--radius-full);cursor:pointer;inset:0}.toggle-slider,.toggle-slider:before{position:absolute;transition:var(--transition-fast)}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:16px;left:3px;width:16px}.toggle input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translateX(18px)}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.card-body,.card-pad{padding:var(--space-5)}.card-header{border-bottom:1px solid var(--border-default);gap:var(--space-3);justify-content:space-between;padding:var(--space-4) var(--space-5)}.card-header,.card-title{align-items:center;display:flex}.card-title{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-md);font-weight:var(--weight-bold);gap:var(--space-2)}.card-title svg{color:var(--color-primary);height:18px;width:18px}.card-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-top:2px}.stat-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3)}.stat-card-label{color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);margin-bottom:2px}.stat-card-value{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-bold)}.stat-card-change{color:var(--text-secondary);font-size:var(--text-xs);margin-top:2px}.stat-card-change.positive{color:var(--color-success)}.stat-card-change.negative{color:var(--color-danger)}.stat-card-purple{border-left:3px solid var(--color-primary)}.stat-card-orange{border-left:3px solid var(--color-accent)}.stat-card-green{border-left:3px solid var(--color-success)}.stat-card-red{border-left:3px solid var(--color-danger)}.metric-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.metric-top{align-items:flex-start;display:flex;gap:var(--space-2);justify-content:space-between}.metric-icon{align-items:center;border-radius:var(--radius-lg);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.metric-icon svg{height:20px;width:20px}.metric-label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium)}.metric-value{color:var(--text-primary);font-family:var(--font-heading);font-size:1.75rem;font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1}.metric-delta{align-items:center;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-semibold);gap:4px}.metric-delta svg{height:14px;width:14px}.metric-delta.up{color:var(--color-success)}.metric-delta.down{color:var(--color-danger)}.metric-delta .muted{color:var(--text-muted);font-weight:var(--weight-regular)}.tint-purple{background:var(--color-purple-50);color:var(--color-purple-700)}.tint-orange{background:var(--color-orange-50);color:var(--color-orange-700)}.tint-green{background:var(--color-success-light);color:var(--color-success)}.tint-red{background:var(--color-danger-light);color:var(--color-danger)}.tint-blue{background:var(--color-info-light);color:var(--color-info)}.tint-gray{background:var(--color-gray-100);color:var(--color-gray-500)}.table-container{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;font-size:var(--text-base);width:100%}.table th{background:var(--color-gray-50);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.03em;text-align:left;text-transform:uppercase;white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--border-default);padding:var(--space-3) var(--space-4)}.table td{color:var(--text-primary)}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--transition-fast)}.table tr:hover td{background:var(--color-purple-50)}.table .text-right{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.table .text-center{text-align:center}.table .text-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.table-wrap{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);overflow:hidden}.table-scroll{overflow-x:auto}table.tbl{border-collapse:collapse;font-size:var(--text-base);width:100%}table.tbl th{background:var(--bg-surface-sunken);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;padding:11px var(--space-4);text-align:left;text-transform:uppercase;white-space:nowrap}table.tbl td,table.tbl th{border-bottom:1px solid var(--border-default)}table.tbl td{color:var(--text-primary);padding:13px var(--space-4);vertical-align:middle}table.tbl tbody tr:last-child td{border-bottom:none}table.tbl tbody tr{transition:background var(--transition-fast)}table.tbl tbody tr:hover td{background:var(--color-purple-50)}table.tbl-compact td{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}table.tbl-compact th{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}.tbl .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.tbl .strong,.tbl-name{font-weight:var(--weight-semibold)}.tbl-name{color:var(--text-primary)}.tbl-sub{color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}.row-check{accent-color:var(--color-primary);cursor:pointer;height:18px;width:18px}.table-foot{align-items:center;background:var(--bg-surface-sunken);border-top:1px solid var(--border-default);color:var(--text-secondary);display:flex;font-size:var(--text-sm);justify-content:space-between;padding:var(--space-3) var(--space-4)}.badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);gap:5px;line-height:1.4;padding:3px 9px;white-space:nowrap}.badge svg{height:12px;width:12px}.badge-purple{background:var(--color-purple-100);color:var(--color-purple-700)}.badge-orange{background:var(--color-orange-100);color:var(--color-orange-800)}.badge-green{background:var(--color-success-light);color:var(--color-success)}.badge-red{background:var(--color-danger-light);color:var(--color-danger)}.badge-yellow{background:var(--color-warning-light);color:var(--color-warning)}.badge-blue{background:var(--color-info-light);color:var(--color-info)}.badge-gray{background:var(--color-gray-100);color:var(--color-gray-600)}.badge-dot:before{background:currentColor;border-radius:50%;content:"";display:inline-block;height:6px;width:6px}.alert{align-items:flex-start;border:1px solid;border-radius:var(--radius-lg);display:flex;font-size:var(--text-base);gap:var(--space-3);padding:var(--space-3) var(--space-4)}.alert-icon{flex-shrink:0;margin-top:1px}.alert-success{background:var(--color-success-light);border-color:var(--color-success-border);color:var(--color-success)}.alert-warning{background:var(--color-warning-light);border-color:var(--color-warning-border);color:var(--color-warning)}.alert-danger{background:var(--color-danger-light);border-color:var(--color-danger-border);color:var(--color-danger)}.alert-info{background:var(--color-info-light);border-color:var(--color-info-border);color:var(--color-info)}.sidebar-nav{list-style:none}.sidebar-nav-item{align-items:center;color:var(--color-purple-200);cursor:pointer;display:flex;font-size:var(--text-base);font-weight:var(--weight-medium);gap:var(--space-3);padding:var(--space-2) var(--space-4);text-decoration:none;transition:all var(--transition-fast)}.sidebar-nav-item:hover{background:#ffffff14;color:var(--color-white)}.sidebar-nav-item.active{background:#ffffff1f;border-left:3px solid var(--color-accent);color:var(--color-white);padding-left:calc(var(--space-4) - 3px)}.sidebar-nav-section{color:var(--color-purple-400);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;padding:var(--space-3) var(--space-4) var(--space-1);text-transform:uppercase}.breadcrumb{align-items:center;color:var(--text-muted);display:flex;font-size:var(--text-sm);gap:var(--space-2)}.breadcrumb a{color:var(--text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--color-primary)}.breadcrumb-sep{color:var(--color-gray-300)}.breadcrumb-current{color:var(--text-primary);font-weight:var(--weight-medium)}.tabs{border-bottom:1px solid var(--border-default);display:flex;gap:0}.tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-medium);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.tab:hover{color:var(--text-primary)}.tab.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.modal-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:var(--z-modal)}.modal-content{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:480px;overflow:hidden;position:relative;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5)}.modal-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.modal-close{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;display:flex;font-size:var(--text-lg);height:32px;justify-content:center;width:32px}.modal-close:hover{background:var(--color-gray-100);color:var(--text-primary)}.modal-body{padding:var(--space-5)}.modal-footer{background:var(--color-gray-50);gap:var(--space-3);padding:var(--space-4) var(--space-5)}.toast{align-items:flex-start;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;gap:var(--space-3);max-width:400px;padding:var(--space-3) var(--space-4)}.toast-icon{flex-shrink:0;margin-top:2px}.toast-content{flex:1 1}.toast-title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.toast-message{color:var(--text-secondary);font-size:var(--text-sm);margin-top:2px}.spinner{animation:spin .6s linear infinite;border:2px solid var(--color-gray-200);border-radius:50%;border-top-color:var(--color-primary);height:20px;width:20px}.spinner-lg{border-width:3px;height:32px;width:32px}.spinner-accent{border-top-color:var(--color-accent)}.skeleton{animation:skeleton-pulse 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-50) 50%,var(--color-gray-100) 75%);border-radius:var(--radius-md)}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{padding:var(--space-12) var(--space-6);text-align:center}.empty-state-icon{align-items:center;background:var(--color-purple-50);border-radius:var(--radius-full);color:var(--color-primary);display:flex;font-size:var(--text-2xl);height:56px;justify-content:center;margin:0 auto var(--space-4);width:56px}.empty-state-title{font-family:var(--font-heading);font-size:var(--text-md);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.empty-state-desc{color:var(--text-secondary);font-size:var(--text-base);margin:0 auto var(--space-4);max-width:360px}.progress-bar{background:var(--color-gray-100)}.progress-bar,.progress-fill{border-radius:var(--radius-full)}.progress-fill-purple{background:var(--color-primary)}.progress-fill-orange{background:var(--color-accent)}.progress-fill-green{background:var(--color-success)}.pagination{gap:var(--space-1)}.pagination-btn{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-family:var(--font-body);font-size:var(--text-sm);height:32px;justify-content:center;min-width:32px;padding:0 var(--space-2);transition:all var(--transition-fast)}.pagination-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-primary)}.dropdown-menu{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--space-1)}.dropdown-item{align-items:center;border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;display:flex;font-size:var(--text-base);gap:var(--space-2);padding:var(--space-2) var(--space-3);transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--color-gray-50)}.dropdown-item-danger{color:var(--color-danger)}.dropdown-item-danger:hover{background:var(--color-danger-light)}.dropdown-divider{background:var(--border-default);height:1px;margin:var(--space-1) 0}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6)}.page-header-title{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);margin:0}.page-header-desc{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-1) 0 0}.page-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.app-header{background:var(--bg-header);border-bottom:1px solid var(--border-default);justify-content:space-between;padding:var(--space-3) var(--space-5)}.app-header,.avatar{align-items:center;display:flex}.avatar{background:var(--color-purple-100);border-radius:var(--radius-full);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);height:32px;justify-content:center;width:32px}.search-input-wrapper{align-items:center;display:inline-flex;position:relative}.search-input-wrapper .search-icon{color:var(--text-muted);left:var(--space-3);pointer-events:none;position:absolute}.search-input{padding-left:var(--space-8)}.tooltip-bubble{background:var(--color-gray-900);border-radius:var(--radius-md);bottom:calc(100% + 6px);color:var(--color-white);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);white-space:nowrap}.tooltip-bubble,.tooltip-bubble:after{left:50%;position:absolute;transform:translateX(-50%)}.tooltip-bubble:after{border:4px solid #0000;border-top:4px solid var(--color-gray-900);content:"";top:100%}.page-title{color:var(--text-primary);font-family:var(--font-heading);font-size:1.625rem;font-weight:var(--weight-bold);letter-spacing:-.01em;margin:0}.page-subtitle{color:var(--text-secondary);font-size:var(--text-base);margin:6px 0 0;max-width:60ch}.page-actions{flex-shrink:0}.page-actions,.toolbar{align-items:center;display:flex;gap:var(--space-3)}.toolbar{flex-wrap:wrap;margin-bottom:var(--space-5)}.toolbar-spacer{flex:1 1}.stack{display:flex;flex-direction:column;gap:var(--space-5)}.section-label{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.05em;margin-bottom:var(--space-3);text-transform:uppercase}.grid-cols-5{grid-template-columns:repeat(5,1fr)}@media (max-width:1100px){.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}.grid-cols-5{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.grid-cols-2,.grid-cols-3,.grid-cols-4,.grid-cols-5{grid-template-columns:1fr}}.segmented{background:var(--color-gray-100);border-radius:var(--radius-md);display:inline-flex;gap:2px;padding:3px}.segmented button{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-semibold);gap:6px;padding:6px 14px;transition:all var(--transition-fast)}.segmented button svg{height:15px;width:15px}.segmented button.active{background:var(--bg-surface);box-shadow:var(--shadow-xs);color:var(--color-primary)}.option-card{align-items:flex-start;background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-4);transition:all var(--transition-fast)}.option-card:hover{background:var(--color-purple-50);border-color:var(--color-purple-300)}.option-card.active{background:var(--color-purple-50);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-purple-100)}.option-card .oc-icon{align-items:center;background:var(--color-gray-100);border-radius:var(--radius-lg);color:var(--text-secondary);display:flex;flex-shrink:0;height:38px;justify-content:center;width:38px}.option-card.active .oc-icon{background:var(--color-primary);color:#fff}.option-card .oc-title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.option-card .oc-desc{color:var(--text-secondary);font-size:var(--text-xs);margin-top:2px}.callout{align-items:flex-start;border:1px solid;border-radius:var(--radius-lg);display:flex;font-size:var(--text-base);gap:var(--space-3);padding:var(--space-4)}.callout svg{flex-shrink:0;height:20px;margin-top:1px;width:20px}.callout-title{font-weight:var(--weight-semibold);margin-bottom:2px}.callout-warning{background:var(--color-warning-light);border-color:var(--color-warning-border);color:var(--color-warning-dark)}.callout-info{background:var(--color-info-light);border-color:var(--color-info-border);color:var(--color-info)}.callout-success{background:var(--color-success-light);border-color:var(--color-success-border);color:var(--color-success)}.callout-danger{background:var(--color-danger-light);border-color:var(--color-danger-border);color:var(--color-danger)}.field{flex-direction:column}.field,.field-label{display:flex;gap:6px}.field-label{align-items:center;color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.field-label svg{color:var(--text-muted);height:14px;width:14px}.field-hint{color:var(--text-muted);font-size:var(--text-xs)}.input,.select,.textarea{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:9px 12px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-purple-100);outline:none}.textarea{min-height:84px;resize:vertical}.select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;cursor:pointer;padding-right:34px}.toggle-track{background-color:var(--color-gray-300);border-radius:var(--radius-full);cursor:pointer;inset:0}.toggle-track,.toggle-track:before{position:absolute;transition:var(--transition-fast)}.toggle-track:before{background-color:#fff;border-radius:50%;bottom:3px;box-shadow:var(--shadow-sm);content:"";height:16px;left:3px;width:16px}.toggle input:checked+.toggle-track{background-color:var(--color-primary)}.toggle input:checked+.toggle-track:before{transform:translateX(18px)}.divider{background:var(--border-default);border:none;height:1px;margin:var(--space-5) 0}.mini-avatar{align-items:center;border-radius:50%;color:#fff;display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-bold);height:28px;justify-content:center;width:28px}.placeholder{flex-direction:column;padding:var(--space-16) var(--space-6);text-align:center}.placeholder,.placeholder-icon{align-items:center;display:flex;justify-content:center}.placeholder-icon{background:var(--color-purple-50);border-radius:var(--radius-2xl);color:var(--color-primary);height:64px;margin-bottom:var(--space-4);width:64px}.placeholder-icon svg{height:30px;width:30px}.muted{color:var(--text-secondary)}.mono{font-family:var(--font-mono)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos{color:var(--color-success)}.neg{color:var(--color-danger)}.step-card{color:inherit;display:block;position:relative;text-decoration:none;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.step-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.step-card.locked{opacity:.55;pointer-events:none}.step-icn{align-items:center;border-radius:var(--radius-lg);display:flex;height:44px;justify-content:center;width:44px}.step-icn svg{height:22px;width:22px}.stock-actions{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(4,1fr);margin-bottom:var(--space-5)}.stock-act{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;font-size:var(--text-base);font-weight:var(--weight-semibold);gap:8px;justify-content:center;padding:var(--space-5) var(--space-3);position:relative;transition:all var(--transition-fast)}.stock-act svg{height:24px;width:24px}.stock-act:hover{background:var(--color-purple-50);border-color:var(--color-purple-300);transform:translateY(-2px)}.stock-act .act-badge{align-items:center;background:var(--color-accent);border-radius:99px;color:#fff;display:flex;font-size:var(--text-xs);font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 6px;position:absolute;right:10px;top:10px}.stock-act.order svg{color:var(--color-primary)}.stock-act.receive svg{color:var(--color-success)}.stock-act.templates svg{color:var(--color-info)}.stock-act.transfer svg{color:var(--color-accent)}.feed-date{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.06em;margin:var(--space-4) 0 var(--space-2);text-transform:uppercase}.feed-row{background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-xs);gap:14px;margin-bottom:8px;padding:14px 16px}.feed-icn,.feed-row{align-items:center;border-radius:var(--radius-lg);display:flex}.feed-icn{flex-shrink:0;height:38px;justify-content:center;width:38px}.feed-icn svg{height:18px;width:18px}.recv-progress{background:var(--color-gray-100);border-radius:99px;height:10px;overflow:hidden}.recv-progress>span{background:var(--color-success);border-radius:99px;display:block;height:100%;transition:width var(--transition-base)}.qty-input{font-feature-settings:"tnum";border:1px solid var(--border-strong);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-md);font-variant-numeric:tabular-nums;padding:10px;text-align:center;width:84px}.qty-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-purple-100);outline:none}.qty-step{align-items:center;background:#fff;border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.qty-step:hover{background:var(--color-gray-50);color:var(--text-primary)}.stocktake-spreadsheet-interface .toolbar{margin-bottom:var(--space-3)}.sheet-wrap{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);overflow:auto}table.sheet{border-collapse:collapse;font-size:var(--text-sm);width:100%}table.sheet th{background:var(--bg-surface-sunken);border-bottom:1px solid var(--border-default);border-left:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.03em;padding:5px 10px;text-align:center;text-transform:uppercase;white-space:nowrap}table.sheet th:first-child{left:0;position:-webkit-sticky;position:sticky;text-align:left;z-index:2}table.sheet td{border-bottom:1px solid var(--border-default);border-left:1px solid var(--border-default);padding:2px 8px;text-align:center}table.sheet td:first-child{background:#fff;font-weight:var(--weight-medium);left:0;position:-webkit-sticky;position:sticky;text-align:left;z-index:1}table.sheet td.disabled{background:var(--color-gray-50);color:var(--text-muted)}table.sheet .sheet-input{font-feature-settings:"tnum";background:var(--bg-surface-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:inherit;font-variant-numeric:tabular-nums;padding:4px 5px;text-align:center;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:58px}table.sheet .sheet-input:hover{border-color:var(--color-primary)}table.sheet .sheet-input:focus{background:#fff;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--color-purple-100);outline:none}table.sheet .sheet-total{font-feature-settings:"tnum";background:var(--color-purple-50);font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}table.sheet tr.is-uncounted td:first-child{box-shadow:inset 3px 0 0 var(--color-warning)}table.sheet tr.is-uncounted td{background:var(--color-warning-light)}table.sheet tr.is-uncounted td.disabled{background:var(--color-gray-50)}.stocktake-walk{margin-top:var(--space-2)}.walk-chips{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);overflow-x:auto;padding-bottom:var(--space-2)}.walk-chip{background:var(--bg-surface);border:1.5px solid var(--border-default);border-radius:999px;color:var(--text-secondary);cursor:pointer;flex:0 0 auto;font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-4);white-space:nowrap}.walk-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.walk-chip--done:not(.walk-chip--active){background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-hover)}.walk-row{align-items:center;border-bottom:1px solid var(--border-default);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-2)}.walk-row--counted{background:var(--color-success-light);border-radius:var(--radius-md)}.walk-row__name{color:var(--text-primary);flex:1 1;font-weight:var(--weight-medium);min-width:0}.walk-row__total{color:var(--text-secondary);display:block;font-size:var(--text-xs);font-weight:var(--weight-regular)}.walk-row__inputs{align-items:center;display:flex;gap:var(--space-2)}.walk-row__field{align-items:center;display:flex;flex-direction:column;gap:2px}.walk-row__unit{color:var(--text-secondary);font-size:var(--text-xs)}.walk-input{border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-lg);padding:var(--space-3) var(--space-2);text-align:center;width:84px}.walk-input--loose{font-size:var(--text-base);width:72px}.period-picker{align-items:center;display:inline-flex;flex-wrap:wrap;gap:var(--space-2)}.period-picker__toggles{background:var(--bg-surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);display:inline-flex;padding:2px}.period-picker__toggle{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);gap:5px;padding:5px 10px}.period-picker__toggle.is-active{background:var(--bg-surface);box-shadow:0 1px 2px #0000000f;box-shadow:var(--shadow-xs,0 1px 2px #0000000f);color:var(--color-primary)}.period-picker__week{align-items:center;display:inline-flex;gap:var(--space-1)}.period-picker__arrow{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;height:30px;justify-content:center;width:30px}.period-picker__arrow svg{flex-shrink:0;height:18px;width:18px}.period-picker__toggle svg{flex-shrink:0}.period-picker__arrow:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.period-picker__arrow:disabled{cursor:not-allowed;opacity:.4}.period-picker__label{color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-semibold);min-width:150px;text-align:center;white-space:nowrap}.period-picker__today{background:#0000;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:4px 6px}.period-picker__range{align-items:center;display:inline-flex;gap:var(--space-2)}.period-picker__date{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);padding:6px 8px}.period-picker__dash{color:var(--text-muted)}.app{display:flex;flex-direction:column;min-height:100vh}.app-content{display:flex;flex:1 1}.main-content{flex:1 1;overflow-y:auto;padding:24px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);display:block;font-weight:500;margin-bottom:4px}.form-input,.form-label{font-size:var(--text-base)}.form-input{border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:8px 12px;transition:border-color var(--transition-base);width:100%}.form-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring);outline:none}.form-select{background-color:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);padding:8px 12px;width:100%}.grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.stat-label{color:var(--text-secondary);font-size:var(--text-xs);margin-bottom:2px}.stat-value{color:var(--text-primary);font-size:var(--text-lg);font-weight:600}.stat-change{color:var(--text-secondary);font-size:var(--text-xs);margin-top:2px}.stat-change.positive{color:var(--color-success)}.stat-change.negative{color:var(--color-danger)}.modal-backdrop,.modal-overlay{align-items:center;background-color:var(--overlay-backdrop);bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);margin:auto;max-height:90vh;max-width:600px;overflow-y:auto;position:relative;width:90%}.modal-header{border-bottom:1px solid var(--border-default);padding:24px}.modal-title{color:var(--text-primary);font-size:var(--text-xl);font-weight:600}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-default);display:flex;gap:12px;justify-content:flex-end;padding:24px}@media (max-width:768px){.main-content{padding:16px}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.card{padding:16px}}.loading-spinner{animation:spin 1s ease-in-out infinite;border:3px solid var(--bg-surface-sunken);border-radius:50%;border-top-color:var(--color-primary);display:inline-block;height:20px;width:20px}.alert-error{background-color:var(--color-danger-light);color:var(--color-red-900)}.tag{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:var(--text-xs);font-weight:500;padding:4px 12px}.tag-blue{background-color:var(--color-primary-light);color:var(--color-purple-900)}.tag-green{background-color:var(--color-emerald-100);color:var(--color-green-900)}.tag-red{background-color:var(--color-danger-light);color:var(--color-red-900)}.tag-yellow{background-color:var(--color-warning-light);color:var(--color-amber-800)}.skeleton{animation:loading 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.btn-loading{color:#0000;position:relative}.btn-loading:after{animation:spin .8s linear infinite;border:2px solid var(--color-white);border-radius:50%;border-top:2px solid #0000;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.stores-page{margin:0 auto;max-width:1400px}.header-content{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.header-content h1{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-lg);font-weight:700;gap:8px}.page-icon{color:var(--text-secondary)}.header-actions{display:flex;gap:12px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.filters-section{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:20px}.filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.search-box{flex:1 1;min-width:300px;position:relative}.search-icon{color:var(--text-secondary);left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{padding-left:40px}.filter-select{background-color:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);min-width:180px;padding:8px 12px}.checkbox-label{cursor:pointer;gap:8px}.checkbox-label,.filter-summary{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--text-base)}.filter-summary{flex-wrap:wrap;gap:12px;margin-top:16px}.filter-tag{align-items:center;background-color:var(--border-default);border-radius:var(--radius-xl);color:var(--text-secondary);display:inline-flex;font-size:var(--text-xs);padding:4px 12px}.data-table{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.data-table th{background-color:var(--bg-surface-sunken);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;padding:16px;text-align:left;text-transform:uppercase}.data-table th.sortable{cursor:pointer;transition:background-color var(--transition-base);-webkit-user-select:none;user-select:none}.data-table th.sortable:hover,.product-row:hover{background-color:var(--bg-surface-sunken)}.product-row:hover .table-actions{opacity:1!important}.quick-filter-btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.data-table td{border-bottom:1px solid var(--border-default);font-size:var(--text-base);padding:16px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background-color:var(--bg-surface-sunken)}.data-table tr.inactive{opacity:.6}.store-name{align-items:center;display:flex;font-weight:500;gap:8px}.inline-icon{display:inline-block;vertical-align:middle}.franchisee-info{align-items:center;display:flex;gap:6px}.contact-info .small{color:var(--text-secondary);font-size:var(--text-xs);line-height:1.4}.actions{display:flex;gap:8px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.badge-secondary{background-color:var(--border-default);color:var(--text-secondary)}.badge-info{background-color:var(--color-primary-light);color:var(--color-purple-900)}.pagination{justify-content:space-between;margin-top:24px;padding:16px 0}.pagination,.pagination-info{align-items:center;display:flex}.pagination-info{color:var(--text-secondary);font-size:var(--text-base);gap:8px}.items-per-page{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-base);padding:4px 8px}.pagination-controls{align-items:center;display:flex;gap:8px}.page-info{color:var(--text-secondary);font-size:var(--text-base);padding:0 16px}.distribution-section{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:32px;padding:24px}.distribution-section h3{color:var(--text-primary);font-size:var(--text-lg);font-weight:600;margin-bottom:20px}.distribution-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.distribution-card{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:16px}.distribution-name{color:var(--text-secondary);font-size:var(--text-base);font-weight:500;margin-bottom:4px}.distribution-count{color:var(--text-primary);font-size:var(--text-xl);font-weight:600;margin-bottom:8px}.distribution-bar{background-color:var(--bg-surface-sunken);border-radius:var(--radius-sm);height:8px;overflow:hidden}.distribution-fill{background-color:var(--color-primary);height:100%;transition:width var(--transition-slow)}.modal-content{background:var(--bg-surface);border-radius:var(--radius-lg);max-width:400px;padding:24px;width:90%}.modal-content h3{color:var(--text-primary);font-size:var(--text-lg);font-weight:600;margin-bottom:16px}.modal-content p{color:var(--text-secondary);margin-bottom:12px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.loading-container{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:48px}.form-input.error,.form-select.error{border-color:var(--color-danger)}.form-input.error:focus,.form-select.error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-border)}.error-text{color:var(--color-danger);display:block;font-size:var(--text-xs);margin-top:4px}.btn-icon-primary{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-primary);cursor:pointer;padding:8px;transition:all var(--transition-base)}.btn-icon-primary:hover{background-color:var(--color-primary-light);color:var(--color-primary-hover)}.btn-icon-danger{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-danger);cursor:pointer;padding:8px;transition:all var(--transition-base)}.btn-icon-danger:hover{background-color:var(--color-danger-light);color:var(--color-danger-hover)}.loading-spinner-sm{animation:spin .8s linear infinite;border:2px solid var(--border-default);border-radius:50%;border-top-color:var(--color-primary);display:inline-block;height:16px;width:16px}.loading-spinner-lg{animation:spin .8s linear infinite;border:4px solid var(--border-default);border-radius:50%;border-top-color:var(--color-primary);height:48px;width:48px}.override-badge{background-color:var(--color-primary);border-radius:var(--radius-sm);color:#fff;display:inline-block;font-size:10px;font-weight:600;margin-left:4px;padding:2px 6px;vertical-align:middle}.searchable-select{position:relative}.searchable-select-dropdown{animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.searchable-select .form-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring);outline:none}.stocktake-spreadsheet-interface{background:var(--bg-surface);display:flex;flex-direction:column;font-family:var(--font-body);min-height:100%}.spreadsheet-header{align-items:center;background:var(--color-spreadsheet-bg);border-bottom:2px solid var(--color-spreadsheet-border);display:flex;justify-content:space-between;padding:1rem 2rem}.header-left h1{color:var(--color-spreadsheet-text);font-size:var(--text-2xl);font-weight:700;margin:0}.header-left p{color:var(--color-spreadsheet-text-secondary);font-size:.9rem;margin:.25rem 0 0}.header-right{align-items:center;display:flex;gap:1rem}.header-right .search-input{border:1px solid var(--color-spreadsheet-border-light);border-radius:var(--radius-sm);padding:.5rem 1rem;width:250px}.spreadsheet-container{border:1px solid var(--color-spreadsheet-border);flex:1 1;margin:0 1rem;overflow:auto}.stocktake-spreadsheet{background:var(--bg-surface);border-collapse:collapse;font-size:11px;width:100%}.stocktake-spreadsheet thead{position:-webkit-sticky;position:sticky;top:0;z-index:10}.stocktake-spreadsheet th{background:var(--color-spreadsheet-header);border:1px solid var(--color-spreadsheet-border);color:var(--color-spreadsheet-text);font-size:10px;font-weight:700;padding:8px;text-align:center;text-transform:uppercase}.item-column{background:var(--color-spreadsheet-bg)!important;min-width:250px;text-align:left!important}.area-column{min-width:80px;width:100px}.total-column{background:var(--color-spreadsheet-highlight)!important;font-weight:700;width:100px}.stocktake-spreadsheet td{border:1px solid var(--color-spreadsheet-border-light);height:24px;padding:4px 6px;vertical-align:middle}.stocktake-spreadsheet tbody tr:nth-child(2n){background:var(--color-spreadsheet-bg)}.stocktake-spreadsheet tbody tr:hover{background:var(--color-blue-100)}.stocktake-spreadsheet tbody tr.has-data{background:var(--color-emerald-50)}.stocktake-spreadsheet tbody tr.has-data:hover{background:var(--color-emerald-200)}.item-cell{background:var(--color-spreadsheet-bg)!important;border-right:2px solid var(--color-spreadsheet-border)!important}.item-info{display:flex;flex-direction:column}.item-name{color:var(--color-spreadsheet-text);font-size:11px;font-weight:500;line-height:1.2}.item-unit{color:var(--color-spreadsheet-text-secondary);font-size:9px;text-transform:uppercase}.quantity-cell{min-width:180px;padding:2px!important}.quantity-input{background:#0000;border:none;color:var(--color-spreadsheet-text);font-family:inherit;font-size:11px;padding:4px}.quantity-input:focus{background:var(--color-blue-100);outline:2px solid var(--color-spreadsheet-focus)}.quantity-input::placeholder{color:var(--color-spreadsheet-border-light)}.total-cell{background:var(--color-spreadsheet-highlight)!important;border-left:2px solid var(--color-spreadsheet-border)!important;font-weight:700;text-align:center}.total-value{color:var(--color-spreadsheet-text);display:block;font-size:11px;font-weight:700}.total-unit{color:var(--color-spreadsheet-text-secondary);font-size:9px;text-transform:uppercase}.spreadsheet-footer{align-items:center;background:var(--color-spreadsheet-bg);border-top:2px solid var(--color-spreadsheet-border);display:flex;justify-content:space-between;padding:1rem 2rem}.footer-info{color:var(--color-spreadsheet-text-secondary);display:flex;font-size:.9rem;gap:2rem}.footer-info span{font-weight:500}.footer-actions .btn-primary,.footer-actions .btn-save-all,.footer-actions .btn-secondary{border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all var(--transition-base)}.btn-save-all{background:var(--color-btn-save)}.btn-save-all:hover:not(:disabled){background:var(--color-btn-save-hover)}.footer-actions .btn-secondary{background:var(--color-btn-secondary-legacy);color:#fff}.footer-actions .btn-secondary:hover{background:var(--color-btn-secondary-legacy-hover)}.footer-actions .btn-primary{background:var(--color-accent);color:var(--text-on-accent)}.footer-actions .btn-primary:hover{background:var(--color-accent-hover)}@media (max-width:1200px){.area-column{min-width:60px;width:80px}.stocktake-spreadsheet{font-size:10px}}@media (max-width:768px){.spreadsheet-header{align-items:stretch;flex-direction:column;gap:1rem}.header-right{justify-content:space-between}.area-column{min-width:50px;width:60px}.stocktake-spreadsheet{font-size:9px}.item-column{min-width:180px}}.stocktake-list-interface{background:var(--bg-surface-sunken);display:flex;flex-direction:column;height:100vh}.list-header{align-items:flex-start;background:var(--bg-surface);border-bottom:2px solid var(--border-default);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1.5rem}.header-info h2{color:var(--text-primary);font-size:var(--text-2xl);margin:0 0 .25rem}.header-info p{color:var(--text-secondary);margin:0}.header-controls{align-items:center;display:flex;gap:2rem}.progress-indicator span{color:var(--text-secondary);display:block;font-size:var(--text-base);margin-bottom:.5rem}.progress-bar{width:200px}.btn-save-all{border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background var(--transition-base)}.btn-save-all,.btn-save-all:hover:not(:disabled){background:var(--color-success)}.btn-save-all:disabled{cursor:not-allowed;opacity:.5}.list-controls{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border-default);display:flex;gap:2rem;padding:1rem 1.5rem}.search-input{flex:1 1;font-size:var(--text-md);max-width:400px;padding:.75rem 1rem}.auto-advance-toggle{align-items:center;cursor:pointer;display:flex;gap:.5rem;-webkit-user-select:none;user-select:none}.auto-advance-toggle input{cursor:pointer;height:18px;width:18px}.items-list{background:var(--bg-surface);flex:1 1;overflow-y:auto;padding:0 1.5rem}.stocktake-table{border-collapse:collapse;width:100%}.stocktake-table thead{background:var(--bg-surface);position:-webkit-sticky;position:sticky;top:0;z-index:10}.stocktake-table th{border-bottom:2px solid var(--border-default);color:var(--text-secondary);font-size:var(--text-base);font-weight:600;padding:1rem .5rem;text-align:left;text-transform:uppercase}.stocktake-table tbody tr{border-bottom:1px solid var(--bg-surface-sunken);transition:background var(--transition-base)}.stocktake-table tbody tr:hover{background:var(--bg-surface-sunken)}.stocktake-table tbody tr.completed{background:var(--color-green-50)}.stocktake-table td{padding:.75rem .5rem}.status-cell{text-align:center}.status-check{border-radius:50%;color:#fff;display:inline-block;font-weight:700;height:24px;line-height:24px;width:24px}.status-check.saved{background:var(--color-success)}.status-check.unsaved{background:var(--color-warning)}.name-cell{color:var(--text-primary);font-weight:500}.quantity-cell .quantity-input{border:2px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;padding:.5rem;text-align:center;width:100%}.quantity-cell .quantity-input:focus{background:var(--color-primary-light);border-color:var(--color-primary);outline:none}.quantity-cell .quantity-input::placeholder{color:var(--border-strong)}.unit-cell{color:var(--text-secondary);font-size:var(--text-base);text-transform:uppercase}.actions-cell{display:flex;gap:.5rem}.btn-action-edit,.btn-action-skip,.btn-action-zero{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);padding:.375rem .75rem;transition:all var(--transition-base)}.btn-action-zero:hover{background:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}.btn-action-skip:hover{background:var(--bg-surface-sunken);border-color:var(--text-secondary)}.btn-action-edit:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.list-footer{align-items:center;background:var(--bg-surface);border-top:2px solid var(--border-default);display:flex;justify-content:space-between;padding:1.5rem}.footer-stats{color:var(--text-secondary);display:flex;font-size:var(--text-base);gap:2rem}.footer-stats span{font-weight:600}.footer-actions{display:flex;gap:1rem}.stocktake-mobile-interface{background:var(--bg-surface-sunken);display:flex;flex-direction:column;height:100vh}.mobile-header{background:var(--bg-surface);border-bottom:2px solid var(--border-default);padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.mobile-header h2{color:var(--text-primary);font-size:var(--text-xl);margin:0 0 .75rem}.progress-bar-mini{background:var(--border-default);border-radius:var(--radius-sm);height:6px;margin-bottom:.25rem;overflow:hidden;width:100%}.mobile-search{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:1rem}.search-input-mobile{border:2px solid var(--border-strong);border-radius:var(--radius-lg);font-size:var(--text-md);padding:.875rem 1rem;width:100%}.mobile-cards{flex:1 1;overflow-y:auto;padding:1rem}.count-card{background:var(--bg-surface);border:2px solid #0000;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:1rem;padding:1rem;transition:all var(--transition-base)}.count-card.completed{background:var(--color-green-50);border-color:var(--color-success)}.count-card.pending{border-color:var(--border-default)}.count-card .card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.count-card .card-header .ingredient-name{color:var(--text-primary);font-size:var(--text-md);font-weight:600}.status-indicator{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;padding:.25rem .75rem}.status-indicator.done{background:var(--color-success);color:#fff}.status-indicator.pending{background:var(--bg-surface-sunken);color:var(--text-secondary)}.count-card .card-body{display:flex;flex-direction:column;gap:1rem}.unit-info{background:var(--bg-surface-sunken);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-base);padding:.5rem}.quantity-input-mobile{background:var(--bg-surface);border:2px solid var(--border-strong);border-radius:var(--radius-lg);font-size:var(--text-xl);font-weight:600;padding:1rem;text-align:center;width:100%}.quantity-input-mobile:focus{background:var(--color-primary-light);border-color:var(--color-primary);outline:none}.card-actions{display:flex;gap:.75rem}.btn-skip,.btn-zero{border:none;border-radius:var(--radius-lg);cursor:pointer;flex:1 1;font-weight:600;padding:.875rem;transition:all var(--transition-base)}.btn-skip{background:var(--bg-surface-sunken);color:var(--text-secondary)}.btn-skip:active{background:var(--border-default)}.btn-zero{color:var(--color-danger)}.btn-zero,.btn-zero:active{background:var(--color-danger-light)}.counted-value{background:var(--color-green-50);border:2px solid var(--color-success);border-radius:var(--radius-lg);color:var(--color-success);font-size:var(--text-xl);font-weight:600;padding:1rem;text-align:center}.btn-edit{border:2px solid var(--color-primary);border-radius:var(--radius-lg);color:var(--color-primary);cursor:pointer;font-weight:600;padding:.75rem}.btn-edit,.mobile-footer{background:var(--bg-surface)}.mobile-footer{border-top:2px solid var(--border-default);bottom:0;display:flex;gap:1rem;padding:1rem;position:-webkit-sticky;position:sticky}.btn-complete,.btn-save-exit{border:none;border-radius:var(--radius-lg);cursor:pointer;flex:1 1;font-weight:600;padding:1rem;transition:all var(--transition-base)}.btn-save-exit{background:var(--bg-surface-sunken);color:var(--text-secondary)}.btn-complete{background:var(--color-primary);color:#fff}.btn-complete:disabled{cursor:not-allowed;opacity:.5}@media (max-width:1024px){.header-controls{align-items:flex-start;flex-direction:column;gap:1rem}.progress-bar{width:300px}}.create-stocktake-form{max-width:100%}.area-selection{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.area-option{align-items:center;background:var(--bg-surface-sunken);border:2px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;display:flex;padding:1rem;transition:all var(--transition-base)}.area-option.selected,.area-option:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.area-option.selected{box-shadow:var(--shadow-focus-ring)}.area-icon{flex-shrink:0;font-size:2rem;margin-right:1rem}.area-info{flex:1 1}.area-name{color:var(--text-primary);font-weight:600;margin-bottom:.25rem}.area-description{color:var(--text-secondary);font-size:var(--text-base)}.area-checkbox{margin-left:1rem}.ingredients-preview{background:var(--bg-surface-sunken);border-radius:var(--radius-lg);margin-top:.5rem;padding:1rem}.ingredients-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.ingredient-chip{align-items:center;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);display:flex;font-size:var(--text-base);justify-content:space-between;padding:.5rem}.ingredient-chip.more{background:var(--border-default);font-weight:600;justify-content:center}.ingredient-name{font-weight:500}.ingredient-unit{font-size:var(--text-xs)}.info-section{background:var(--color-primary-light);border:1px solid var(--color-info-border);border-radius:var(--radius-lg);padding:1.5rem}.info-section h4{color:var(--color-purple-900);margin:0 0 1rem}.info-section ol{margin:0;padding-left:1.5rem}.info-section li{color:var(--text-secondary);margin-bottom:.5rem}.stocktake-counting-interface{background:var(--bg-surface-sunken);display:flex;flex-direction:column;height:100vh}.counting-header{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:1rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.stocktake-info h2{color:var(--text-primary);margin:0 0 .25rem}.stocktake-info p{color:var(--text-secondary);font-size:var(--text-base);margin:0}.progress-info{margin-top:1rem}.progress-bar{background:var(--border-default);border-radius:var(--radius-sm);height:8px;margin-bottom:.5rem;overflow:hidden;width:100%}.progress-fill{background:var(--color-success);height:100%;transition:width var(--transition-slow)}.progress-text{color:var(--text-secondary);font-size:var(--text-base)}.mode-toggle{background:var(--bg-surface);border-bottom:1px solid var(--border-default);display:flex;padding:0 1.5rem}.mode-btn{background:none;border:none;border-bottom:3px solid #0000;cursor:pointer;flex:1 1;font-weight:500;padding:1rem;transition:all var(--transition-base)}.mode-btn,.mode-btn:hover{color:var(--text-secondary)}.mode-btn:hover{background:var(--bg-surface-sunken)}.mode-btn.active{background:var(--color-primary-light);border-bottom-color:var(--color-primary);color:var(--color-primary)}.sequential-counting{flex:1 1;overflow-y:auto;padding:2rem}.ingredient-card{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);margin:0 auto;max-width:600px;padding:2rem}.ingredient-header{margin-bottom:2rem;text-align:center}.ingredient-header h3{color:var(--text-primary);font-size:1.75rem;margin:0 0 1rem}.ingredient-meta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.ingredient-meta span{background:var(--bg-surface-sunken);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-base);padding:.25rem .75rem}.outer-unit{background:var(--color-warning-light)!important;color:var(--color-amber-800)!important}.count-input-section{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:2fr 1fr;margin-bottom:1.5rem}.count-method-group label,.quantity-input-group label{color:var(--text-secondary);display:block;font-weight:600;margin-bottom:.5rem}.quantity-input{background:var(--bg-surface-sunken);border:2px solid var(--border-strong);border-radius:var(--radius-lg);font-size:var(--text-2xl);font-weight:600;padding:1rem;text-align:center;width:100%}.quantity-input:focus{background:var(--bg-surface);border-color:var(--color-primary);outline:none}.count-method-select{background:var(--bg-surface);border:2px solid var(--border-strong);border-radius:var(--radius-lg);padding:1rem;width:100%}.notes-section{margin-bottom:2rem}.notes-input{border:1px solid var(--border-strong);border-radius:var(--radius-lg);font-family:inherit;padding:.75rem;resize:vertical;width:100%}.counting-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.navigation-actions{align-items:center;border-top:1px solid var(--border-default);display:flex;justify-content:space-between;padding-top:1rem}.nav-btn{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);cursor:pointer;padding:.75rem 1.5rem;transition:all var(--transition-base)}.nav-btn:hover:not(:disabled){background:var(--bg-surface-sunken);border-color:var(--text-muted)}.nav-btn:disabled{cursor:not-allowed;opacity:.5}.position-indicator{color:var(--text-secondary);font-weight:600}.search-counting{flex:1 1;overflow-y:auto;padding:1.5rem}.search-input-section{background:var(--bg-surface-sunken);padding-bottom:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:50}.search-input{background:var(--bg-surface);border:2px solid var(--border-strong);border-radius:var(--radius-lg);font-size:1.1rem;padding:1rem;width:100%}.search-input:focus{border-color:var(--color-primary);outline:none}.ingredients-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.ingredient-row{align-items:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:flex;padding:1rem;transition:all var(--transition-base)}.ingredient-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.ingredient-row.counted{background:var(--color-green-50);border-color:var(--color-success)}.ingredient-info{align-items:center;display:flex;flex:1 1;gap:1rem}.ingredient-name{color:var(--text-primary);font-weight:600}.ingredient-unit{color:var(--text-secondary);font-size:var(--text-base)}.counted-indicator{background:var(--color-success);border-radius:var(--radius-full);color:#fff;font-size:var(--text-base);font-weight:500;padding:.25rem .75rem}.count-btn{background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background-color var(--transition-base)}.count-btn:hover{background:var(--color-primary-hover)}.bottom-actions{background:var(--bg-surface);border-top:1px solid var(--border-default);bottom:0;display:flex;gap:1rem;justify-content:center;padding:1.5rem;position:-webkit-sticky;position:sticky}.modal-overlay.full-screen{background:var(--overlay-solid)}.modal-content.full-screen,.modal-content.fullscreen{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;overflow:auto;padding:0;width:100%}@media (max-width:768px){.counting-header,.sequential-counting{padding:1rem}.ingredient-card{padding:1.5rem}.count-input-section{gap:1rem;grid-template-columns:1fr}.counting-actions,.navigation-actions{flex-direction:column}.navigation-actions{gap:1rem;text-align:center}.mode-toggle{padding:0 1rem}.search-counting{padding:1rem}.ingredient-info{align-items:flex-start;gap:.5rem}.bottom-actions,.ingredient-info{flex-direction:column}.area-selection .area-option{padding:.75rem}.area-icon{font-size:var(--text-2xl);margin-right:.75rem}.ingredients-grid{grid-template-columns:1fr}}.area-unit-hint{color:var(--color-spreadsheet-text-secondary);font-size:9px;font-weight:400;margin-top:2px}.quantity-input-wrapper{align-items:center;display:flex;gap:4px}.cell-unit{color:var(--text-muted);font-size:9px;white-space:nowrap}.btn-close{background:var(--color-btn-close);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:var(--text-base);margin-left:8px;padding:8px 16px}.btn-close:hover{background:var(--color-btn-close-hover)}.tap-target{min-height:48px;min-width:48px}.btn,a.btn,button,input[type=button],input[type=submit]{min-height:44px;padding:12px 16px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea{font-size:var(--text-md);min-height:44px;padding:12px}.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}.hide-mobile{display:none}.show-mobile{display:block}@media (max-width:640px){.card,.main-content{padding:12px}.card{border-radius:var(--radius-lg)}.card-header{align-items:flex-start;flex-direction:column;gap:12px}.card-title{font-size:var(--text-lg)}.btn-group{flex-direction:column;width:100%}.btn-group .btn{justify-content:center;width:100%}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.modal-content{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;width:100%}}@media (min-width:641px){.hide-mobile{display:block}.show-mobile{display:none}}@media (min-width:1024px){.main-content{padding:24px}}@media (hover:none){.btn:hover,a:hover,button:hover{opacity:1}.btn:active,button:active{opacity:.7;transform:scale(.98)}}.no-select{-webkit-user-select:none;user-select:none}.scroll-smooth{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}@media (display-mode:standalone){.browser-only{display:none}}@media (prefers-contrast:high){.btn{border:2px solid}.card{border:1px solid var(--color-gray-950)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.install-banner{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-hover) 100%);bottom:0;box-shadow:var(--shadow-xl);color:#fff;display:flex;justify-content:space-between;left:0;padding:16px 20px calc(16px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:1000}.install-banner-content{align-items:center;display:flex;gap:12px}.install-banner-icon{flex-shrink:0}.install-banner-text{display:flex;flex-direction:column}.install-banner-title{font-size:15px;font-weight:600;margin:0}.install-banner-subtitle{font-size:var(--text-sm);margin:2px 0 0;opacity:.85}.install-banner-actions{align-items:center;display:flex;gap:8px}.install-banner-btn{background:var(--bg-surface);border:none;border-radius:var(--radius-lg);color:var(--color-primary-hover);cursor:pointer;font-size:var(--text-base);font-weight:600;min-height:44px;padding:10px 20px;transition:all var(--transition-base)}.install-banner-btn:hover{background:var(--color-gray-100);transform:translateY(-1px)}.install-banner-btn:active{transform:translateY(0)}.install-banner-close{align-items:center;background:#ffffff26;border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;justify-content:center;min-height:44px;min-width:44px;padding:10px;transition:background var(--transition-base)}.install-banner-close:hover{background:#ffffff40}.ios-instructions-overlay{align-items:flex-end;background:var(--overlay-backdrop);display:flex;inset:0;justify-content:center;position:fixed;z-index:1001}.ios-instructions-modal{background:var(--bg-surface);border-radius:16px 16px 0 0;max-width:400px;padding:24px 24px calc(24px + env(safe-area-inset-bottom));width:100%}.ios-instructions-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.ios-instructions-title{color:var(--text-primary);font-size:var(--text-lg);font-weight:600;margin:0}.ios-instructions-close{background:var(--bg-surface-sunken);border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;padding:6px}.ios-instructions-close:hover{background:var(--border-default)}.ios-instructions-steps{color:var(--text-secondary);display:flex;flex-direction:column;gap:16px}.ios-instruction-step{align-items:flex-start;display:flex;gap:12px}.ios-step-number{align-items:center;background:var(--color-primary-light);border-radius:50%;color:var(--color-primary-hover);display:flex;flex-shrink:0;font-size:var(--text-base);font-weight:600;height:28px;justify-content:center;width:28px}.ios-step-text{line-height:1.5;padding-top:4px}.ios-step-text strong{color:var(--text-primary)}.ios-instructions-done-btn{background:var(--color-primary);border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-size:var(--text-md);font-weight:600;margin-top:24px;padding:14px;transition:background var(--transition-base);width:100%}.ios-instructions-done-btn:hover{background:var(--color-primary-hover)}@media (max-width:480px){.install-banner{flex-direction:column;gap:12px;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.install-banner-content{width:100%}.install-banner-actions{justify-content:stretch;width:100%}.install-banner-btn{flex:1 1}}.error-boundary{align-items:center;background:linear-gradient(135deg,var(--color-danger-light) 0,var(--color-danger-light) 100%);display:flex;justify-content:center;min-height:100vh;padding:20px}.error-boundary-content{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-width:500px;padding:40px;text-align:center}.error-boundary-icon{align-items:center;background:var(--color-danger-light);border-radius:50%;color:var(--color-danger-hover);display:flex;height:80px;justify-content:center;margin:0 auto 24px;width:80px}.error-boundary-title{color:var(--text-primary);font-size:var(--text-2xl);font-weight:600;margin-bottom:12px}.error-boundary-message{color:var(--text-secondary);font-size:var(--text-md);line-height:1.6;margin-bottom:32px}.error-boundary-actions{display:flex;flex-direction:column;gap:12px}.error-boundary-btn{align-items:center;border:none;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:var(--text-base);font-weight:500;gap:8px;justify-content:center;padding:12px 20px;transition:all var(--transition-base)}.error-boundary-btn-primary{background:var(--color-primary);color:#fff}.error-boundary-btn-primary:hover{background:var(--color-primary-hover)}.error-boundary-btn-secondary{background:var(--bg-surface-sunken);border:1px solid var(--border-strong);color:var(--text-secondary)}.error-boundary-btn-secondary:hover{background:var(--border-default)}.error-boundary-details{margin-top:24px;text-align:left}.error-boundary-details summary{color:var(--text-secondary);cursor:pointer;font-size:var(--text-base);margin-bottom:12px}.error-boundary-stack{background:var(--color-gray-800);border-radius:var(--radius-lg);color:var(--bg-surface-sunken);font-family:var(--font-mono);font-size:var(--text-xs);max-height:300px;overflow-x:auto;overflow-y:auto;padding:16px;white-space:pre-wrap;word-break:break-word}@media (min-width:480px){.error-boundary-actions{flex-direction:row;justify-content:center}}.ui-button{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:inherit;font-weight:var(--weight-medium);gap:var(--space-2);justify-content:center;outline:none;transition:all var(--transition-fast)}.ui-button:focus-visible{box-shadow:0 0 0 2px var(--color-white),0 0 0 4px var(--color-purple-100)}.ui-button:disabled{cursor:not-allowed;opacity:.5}.ui-button--small{font-size:var(--text-sm);height:32px;padding:0 var(--space-3)}.ui-button--medium{font-size:var(--text-base);height:40px;padding:0 var(--space-5)}.ui-button--large{font-size:var(--text-md);height:48px;padding:0 var(--space-8)}.ui-button--primary{background-color:var(--color-accent);color:var(--text-on-accent)}.ui-button--primary:hover:not(:disabled){background-color:var(--color-accent-hover)}.ui-button--secondary{background-color:var(--color-primary);color:var(--text-on-primary)}.ui-button--secondary:hover:not(:disabled){background-color:var(--color-primary-hover)}.ui-button--danger{background-color:var(--color-danger);color:var(--text-on-accent)}.ui-button--danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.ui-button--outline{background-color:initial;border:1px solid var(--border-strong);color:var(--color-primary)}.ui-button--outline:hover:not(:disabled){background-color:var(--bg-surface-sunken);border-color:var(--text-muted)}.ui-button--ghost{background-color:initial;color:var(--text-secondary)}.ui-button--ghost:hover:not(:disabled){background-color:var(--bg-surface-sunken);color:var(--text-primary)}.ui-button--full-width{width:100%}.ui-button__spinner{animation:spin 1s linear infinite}.ui-button__icon{flex-shrink:0}.ui-button__text{white-space:nowrap}.ui-modal__overlay{align-items:center;animation:fadeIn var(--transition-fast);background-color:var(--overlay-backdrop);display:flex;inset:0;justify-content:center;padding:var(--space-5);position:fixed;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ui-modal__content{animation:slideIn var(--transition-base);background-color:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:calc(100vh - 40px)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ui-modal__content--small{max-width:400px;width:100%}.ui-modal__content--medium{max-width:600px;width:100%}.ui-modal__content--large{max-width:800px;width:100%}.ui-modal__content--fullscreen{height:calc(100vh - 40px);max-height:none;max-width:none;width:calc(100vw - 40px)}.ui-modal__header{align-items:center;border-bottom:1px solid var(--border-default);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--space-4) var(--space-5)}.ui-modal__title{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0}.ui-modal__close{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:all var(--transition-fast);width:32px}.ui-modal__close svg{flex-shrink:0;height:20px;width:20px}.ui-modal__close:hover{background-color:var(--bg-surface-sunken);color:var(--text-primary)}.ui-modal__body{flex:1 1;overflow-y:auto;padding:var(--space-5)}.ui-modal__footer{align-items:center;border-top:1px solid var(--border-default);display:flex;flex-shrink:0;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-5)}@media (max-width:640px){.ui-modal__overlay{padding:10px}.ui-modal__content--large,.ui-modal__content--medium,.ui-modal__content--small{max-width:100%}}.ui-spinner{align-items:center;display:flex;flex-direction:column;gap:var(--space-3);justify-content:center;padding:var(--space-5)}.ui-spinner--small{gap:var(--space-2);padding:var(--space-2)}.ui-spinner--large{gap:var(--space-4);padding:var(--space-10)}.ui-spinner--fullpage{align-items:center;background-color:#ffffffe6;display:flex;inset:0;justify-content:center;position:fixed;z-index:999}.ui-spinner__container{align-items:center;display:flex;flex-direction:column;gap:var(--space-4)}.ui-spinner__icon{animation:spin 1s linear infinite;color:var(--color-primary)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui-spinner__message{color:var(--text-secondary);font-size:var(--text-base);margin:0}.ui-spinner--large .ui-spinner__message{font-size:var(--text-md)}.ui-empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center}.ui-empty-state__icon{color:var(--text-muted);margin-bottom:var(--space-4)}.ui-empty-state__title{color:var(--text-secondary);font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0 0 var(--space-2)}.ui-empty-state__description{color:var(--text-secondary);font-size:var(--text-base);margin:0 0 var(--space-6);max-width:300px}.ui-empty-state__action{margin-top:var(--space-2)}.ui-datatable{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.ui-datatable--empty{border:1px dashed var(--border-strong)}.ui-datatable__table{border-collapse:collapse;width:100%}.ui-datatable__table td,.ui-datatable__table th{border-bottom:1px solid var(--border-default);padding:var(--space-3) var(--space-4);text-align:left}.ui-datatable__table th{background-color:var(--color-gray-50);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap}.ui-datatable--compact .ui-datatable__table td,.ui-datatable--compact .ui-datatable__table th{padding:var(--space-2) var(--space-3)}.ui-datatable--compact .ui-datatable__table td{font-size:var(--text-sm)}.ui-datatable--compact .ui-datatable__table th{font-size:var(--text-xs)}.ui-datatable__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-datatable__th--sortable:hover{background-color:var(--bg-surface-sunken)}.ui-datatable__th-content{align-items:center;display:flex;gap:var(--space-1)}.ui-datatable__sort-icon--inactive{opacity:.3}.ui-datatable__table tbody tr:last-child td{border-bottom:none}.ui-datatable__table tbody tr:hover{background-color:var(--color-gray-50)}.ui-datatable__row--clickable{cursor:pointer}.ui-datatable__row--clickable:hover{background-color:var(--bg-surface-sunken)!important}.ui-datatable__table td{color:var(--text-primary);font-size:var(--text-base)}.ui-datatable__actions{align-items:center;display:flex;gap:var(--space-2)}.ui-datatable__skeleton-row td{padding:var(--space-4)}.ui-datatable__skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,var(--bg-surface-sunken) 25%,var(--border-default) 50%,var(--bg-surface-sunken) 75%);background-size:200% 100%;border-radius:var(--radius-sm);height:16px}.ui-datatable__skeleton--short{width:60px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:768px){.ui-datatable{overflow-x:auto}.ui-datatable__table{min-width:600px}.ui-datatable__table td,.ui-datatable__table th{font-size:var(--text-sm);padding:10px var(--space-3)}}.ui-summary-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-4);transition:all var(--transition-fast)}.ui-summary-card--clickable{cursor:pointer}.ui-summary-card--clickable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.ui-summary-card--default .ui-summary-card__icon{background-color:var(--bg-surface-sunken);color:var(--text-secondary)}.ui-summary-card--success .ui-summary-card__icon{background-color:var(--color-success-light);color:var(--color-success)}.ui-summary-card--warning .ui-summary-card__icon{background-color:var(--color-warning-light);color:var(--color-warning)}.ui-summary-card--danger .ui-summary-card__icon{background-color:var(--color-danger-light);color:var(--color-danger)}.ui-summary-card__header{align-items:center;display:flex;justify-content:space-between}.ui-summary-card__icon{align-items:center;border-radius:var(--radius-lg);display:flex;height:36px;justify-content:center;width:36px}.ui-summary-card__value{color:var(--text-primary);font-family:var(--font-heading);font-size:28px;font-weight:var(--weight-bold);line-height:1.2;margin-top:var(--space-2)}.ui-summary-card__label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium)}.ui-summary-card__trend{align-items:center;display:flex;font-size:var(--text-xs);font-weight:var(--weight-medium);gap:var(--space-1);margin-top:var(--space-1)}.ui-summary-card__trend--up{color:var(--color-success)}.ui-summary-card__trend--down{color:var(--color-danger)}.ui-summary-card__trend--neutral{color:var(--text-secondary)}@media (max-width:640px){.ui-summary-card{padding:var(--space-3)}.ui-summary-card__value{font-size:var(--text-2xl)}.ui-summary-card__icon{height:32px;width:32px}.ui-summary-card__icon svg{height:16px;width:16px}}.ui-operations-layout{display:flex;flex-direction:column;gap:var(--space-6)}.ui-operations-layout__cards{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(5,1fr)}.ui-operations-layout__content{display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width:1199px){.ui-operations-layout__cards{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.ui-operations-layout__cards{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.ui-operations-layout{gap:var(--space-4)}}@media (max-width:480px){.ui-operations-layout__cards{grid-template-columns:1fr 1fr}}
/*# sourceMappingURL=main.12659756.css.map*/