:root{color:#f5f3ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}a{color:inherit}:root{--md-bg:#f0f2f5;--md-surface:#fff;--md-surface-soft:#f8f9fb;--md-border:#e2e5ea;--md-border-strong:#cdd2d9;--md-text:#1a1d23;--md-muted:#6b7280;--md-primary:#2563eb;--md-primary-hover:#1d4ed8;--md-primary-soft:#eff6ff;--md-danger:#dc2626;--md-danger-soft:#fef2f2;--md-success:#16a34a;--md-success-soft:#f0fdf4;--md-warning:#ca8a04;--md-warning-soft:#fefce8;--md-info:#0284c7;--md-info-soft:#f0f9ff;--md-shadow-sm:0 1px 2px #0f172a0a;--md-shadow:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--md-shadow-lg:0 4px 12px #0f172a0f, 0 1px 3px #0f172a0a;--md-radius:10px;--md-radius-lg:14px;--md-radius-xl:18px;--md-font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--md-font);color:var(--md-text);background:var(--md-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}html,#root{min-height:100%}button,input,select,textarea{font:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--md-primary)}.master-shell{background:var(--md-bg);min-height:100vh;display:flex}.sidebar-backdrop{z-index:16;opacity:0;pointer-events:none;background:#0f172a80;transition:opacity .18s;position:fixed;inset:0}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.master-sidebar{background:var(--md-surface);border-right:1px solid var(--md-border);z-index:20;flex-direction:column;flex:0 0 260px;gap:20px;width:260px;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0;overflow:clip}.sidebar-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sidebar-close{border:1px solid var(--md-border);border-radius:var(--md-radius);width:36px;height:36px;color:var(--md-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:none}.sidebar-brand{align-items:center;gap:12px;display:flex}.brand-mark{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-primary-soft);width:38px;height:38px;color:var(--md-primary);letter-spacing:-.03em;place-items:center;font-size:15px;font-weight:800;display:grid}.sidebar-brand strong{color:var(--md-text);font-size:15px;font-weight:700;display:block}.sidebar-brand span{color:var(--md-muted);font-size:12px;display:block}.sidebar-nav{flex:1;gap:16px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.nav-group{gap:8px;display:grid}.nav-group-toggle{width:100%;color:var(--md-muted);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0 2px;font-size:11px;font-weight:700;display:flex}.nav-chevron{width:14px;height:14px;color:var(--md-muted);transition:transform .18s}.nav-chevron.is-open{transform:rotate(180deg)}.nav-group-body{opacity:0;gap:4px;max-height:0;transition:max-height .22s,opacity .22s;display:grid;overflow:hidden}.nav-group-body.is-open{opacity:1;max-height:4000px}.nav-item{border-radius:var(--md-radius);width:100%;min-height:40px;color:var(--md-text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;transition:background .16s,border-color .16s,color .16s;display:flex}.nav-item:hover{background:#f3f4f6}.nav-item.active{background:var(--md-primary-soft);color:var(--md-primary);border-color:#bfdbfe;font-weight:600}.nav-icon{width:18px;height:18px;color:inherit;flex:0 0 18px;justify-content:center;align-items:center;display:inline-flex}.master-icon{flex:0 0 18px;width:18px;height:18px}.nav-label{flex:1;font-size:14px}.sidebar-footer{border-top:1px solid var(--md-border);flex-shrink:0;gap:12px;margin-top:auto;padding-top:16px;display:grid}.profile-card{border:1px solid var(--md-border);border-radius:var(--md-radius-lg);background:var(--md-surface-soft);align-items:center;gap:10px;padding:10px 12px;display:flex}.profile-card strong{font-size:14px;display:block}.profile-card span{color:var(--md-muted);font-size:12px;display:block}.profile-card-button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer}.profile-card-button:hover:not(:disabled){background:var(--md-surface-hover,var(--md-border))}.profile-card-button:disabled{cursor:default}.avatar{border-radius:var(--md-radius);background:var(--md-primary-soft);width:36px;height:36px;color:var(--md-primary);place-items:center;font-size:13px;font-weight:800;display:grid}.sidebar-signout{width:100%}.master-content{flex-direction:column;flex:1;gap:20px;min-width:0;padding:24px 28px 40px;display:flex}.page-topbar{display:none}.mobile-sidebar-toggle{border:1px solid var(--md-border);background:var(--md-surface);width:fit-content;color:var(--md-text);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;display:none}.page-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.page-copy{flex:1;min-width:0}.breadcrumb{color:var(--md-muted);letter-spacing:.01em;margin-bottom:4px;font-size:12px}.page-copy h1{letter-spacing:-.03em;color:var(--md-text);margin:0;font-size:28px;font-weight:700;line-height:1.15}.page-copy p{color:var(--md-muted);margin:4px 0 0;font-size:14px}.page-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.page-actions>*{flex:none}.search-card{background:var(--md-surface);border:1px solid var(--md-border);border-radius:var(--md-radius-lg);box-shadow:var(--md-shadow);padding:16px 20px}.search-toolbar{z-index:10;position:relative}.toolbar-grid{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.toolbar-field{flex-direction:column;gap:4px;min-width:0;display:flex}.toolbar-field label{color:var(--md-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.toolbar-field-search{flex:240px}.toolbar-field-sort,.toolbar-field-filter{flex:0 200px}.toolbar-input-wrap{position:relative}.toolbar-input-icon{color:#94a3b8;pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.toolbar-field input,.toolbar-field select{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:100%;height:38px;color:var(--md-text);box-sizing:border-box;outline:none;padding:0 12px;font-size:14px;transition:border-color .16s,box-shadow .16s}.toolbar-field input{padding-left:36px}.toolbar-field input:focus,.toolbar-field select:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.master-button{border-radius:var(--md-radius);border:1px solid var(--md-border);background:var(--md-surface);min-height:38px;color:var(--md-text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:600;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.master-button:hover{background:#f3f4f6}.master-button:disabled{cursor:not-allowed;opacity:.5}.master-button-primary{background:var(--md-primary);border-color:var(--md-primary);color:#fff}.master-button-primary:hover{background:var(--md-primary-hover)}.master-button-secondary{background:var(--md-surface);border-color:var(--md-border);color:var(--md-text)}.master-button-secondary:hover{background:#f3f4f6;border-color:#d1d5db}.master-button-danger{color:var(--md-danger);background:0 0;border-color:#fca5a5}.master-button-danger:hover{background:var(--md-danger-soft);border-color:#f87171}.button-icon{flex:0 0 16px;width:16px;height:16px}.status-banner{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);padding:10px 14px;font-size:14px}.status-banner-error{background:var(--md-danger-soft);color:var(--md-danger);border-color:#fecaca}.status-banner-success{background:var(--md-success-soft);color:var(--md-success);border-color:#bbf7d0}.status-banner-autodismiss{animation:3s forwards statusBannerFadeOut}@keyframes statusBannerFadeOut{0%,83%{opacity:1}to{opacity:0}}.status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-badge-success{background:var(--md-success-soft);color:var(--md-success)}.status-badge-danger{background:var(--md-danger-soft);color:var(--md-danger)}.status-badge-warning{background:var(--md-warning-soft);color:var(--md-warning)}.status-badge-info{background:var(--md-info-soft);color:var(--md-info)}.status-badge-default{color:var(--md-primary);background:#eff6ff}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.kpi-card{background:var(--md-surface);border:1px solid var(--md-border);border-radius:var(--md-radius-lg);box-shadow:var(--md-shadow);align-items:flex-start;gap:14px;padding:16px 18px;transition:box-shadow .16s;display:flex}.kpi-card:hover{box-shadow:var(--md-shadow-lg)}.kpi-icon{border-radius:var(--md-radius);background:var(--md-primary-soft);width:40px;height:40px;color:var(--md-primary);flex:0 0 40px;place-items:center;display:grid}.kpi-icon-success{background:var(--md-success-soft);color:var(--md-success)}.kpi-icon-warning{background:var(--md-warning-soft);color:var(--md-warning)}.kpi-icon-danger{background:var(--md-danger-soft);color:var(--md-danger)}.kpi-icon-info{background:var(--md-info-soft);color:var(--md-info)}.kpi-copy span{color:var(--md-muted);font-size:12px;font-weight:600;display:block}.kpi-copy strong{letter-spacing:-.04em;margin:2px 0;font-size:28px;line-height:1;display:block}.kpi-copy small{color:var(--md-muted);font-size:12px;display:block}.dashboard-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:20px;display:grid}.dashboard-chart-legend{color:var(--md-muted);gap:20px;margin-bottom:16px;font-size:13px;display:flex}.dashboard-chart-legend-item{align-items:center;gap:6px;display:flex}.dashboard-chart-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.dashboard-chart-swatch-sales{background:var(--md-primary)}.dashboard-chart-swatch-expenses{background:var(--md-warning)}.dashboard-chart-bars{align-items:flex-end;gap:12px;height:220px;padding:0 4px;display:flex}.dashboard-chart-column{flex-direction:column;flex:1;align-items:center;gap:8px;height:100%;display:flex}.dashboard-chart-bar-pair{flex:1;justify-content:center;align-items:flex-end;gap:5px;width:100%;display:flex}.dashboard-chart-bar{border-radius:4px 4px 0 0;flex:1;max-width:28px;min-height:2px;transition:height .26s}.dashboard-chart-bar-sales{background:var(--md-primary)}.dashboard-chart-bar-expenses{background:var(--md-warning)}.dashboard-chart-month-label{color:var(--md-muted);white-space:nowrap;font-size:12px}.dashboard-chart-swatch-cash-in{background:var(--md-success)}.dashboard-chart-swatch-cash-out{background:var(--md-danger)}.dashboard-chart-bar-cash-in{background:var(--md-success)}.dashboard-chart-bar-cash-out{background:var(--md-danger)}.dashboard-hbar-list{flex-direction:column;gap:10px;display:flex}.dashboard-hbar-row{grid-template-columns:96px 1fr 90px;align-items:center;gap:10px;font-size:13px;display:grid}.dashboard-hbar-label{color:var(--md-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dashboard-hbar-track{background:var(--md-border);border-radius:5px;height:10px;overflow:hidden}.dashboard-hbar-fill{border-radius:5px;min-width:2px;height:100%;transition:width .26s}.dashboard-hbar-fill-accent{background:var(--md-primary)}.dashboard-hbar-fill-warning{background:var(--md-warning)}.dashboard-hbar-fill-danger{background:var(--md-danger)}.dashboard-hbar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--md-text);font-weight:600}.table-section{flex-direction:column;gap:0;display:flex}.table-headline{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.table-headline h2{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:600}.table-headline p{color:var(--md-muted);margin:2px 0 0;font-size:13px}.table-card{background:var(--md-surface);border:1px solid var(--md-border);border-radius:var(--md-radius-lg);box-shadow:var(--md-shadow)}.table-shell{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:700px}thead th{z-index:2;text-transform:uppercase;letter-spacing:.04em;color:var(--md-muted);border-bottom:1px solid var(--md-border);text-align:left;white-space:nowrap;background:#f8f9fb;padding:12px 16px;font-size:12px;font-weight:600;position:sticky;top:0}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #f0f1f3;padding:12px 16px;font-size:14px}tbody tr{transition:background .12s}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}.action-head,.action-cell{width:70px;text-align:center!important}.select-head,.select-cell{width:44px;text-align:center!important}.select-head input,.select-cell input{cursor:pointer;width:16px;height:16px;margin:0}.action-cell{position:relative}.row-actions{justify-content:center;align-items:center;display:inline-flex;position:relative}.row-menu-trigger{border-radius:var(--md-radius);width:34px;height:34px;color:var(--md-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;transition:background .16s,border-color .16s;display:inline-grid}.row-menu-trigger:hover{border-color:var(--md-border);background:#f3f4f6}.dropdown-menu-portal{z-index:1000;pointer-events:none;position:fixed;inset:0}.dropdown-menu{background:var(--md-surface);border:1px solid var(--md-border);border-radius:var(--md-radius);z-index:1000;pointer-events:auto;gap:2px;min-width:170px;padding:6px;animation:.14s dropdownEnter;display:grid;position:fixed;box-shadow:0 8px 24px #0f172a1f}.dropdown-menu-list{gap:2px;display:grid}.dropdown-menu-item{border-radius:var(--md-radius);width:100%;color:var(--md-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.dropdown-menu-item:hover{background:#f3f4f6}.dropdown-menu-item.danger{color:var(--md-danger)}.dropdown-menu-item.active{color:var(--md-primary);background:#eff6ff;font-weight:600}.menu-icon{width:15px;height:15px}.searchable-select-trigger{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:100%;min-width:160px;height:38px;color:var(--md-text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;padding:0 10px;font-size:14px;display:flex}.searchable-select-trigger:disabled{cursor:not-allowed;opacity:.6}.searchable-select-trigger:focus{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #2563eb1f}.searchable-select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.searchable-select-placeholder{min-width:0;color:var(--md-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.searchable-select-chevron{width:14px;height:14px;color:var(--md-muted);flex-shrink:0}.searchable-select-panel{min-width:0;max-width:none;padding:8px}.searchable-select-search{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-bg);align-items:center;gap:6px;margin-bottom:6px;padding:6px 8px;display:flex}.searchable-select-search-icon{width:14px;height:14px;color:var(--md-muted);flex-shrink:0}.searchable-select-search input{color:var(--md-text);background:0 0;border:0;outline:none;flex:1;font-size:13px}.searchable-select-options{gap:2px;max-height:280px;display:grid;overflow-y:auto}.searchable-select-empty{color:var(--md-muted);padding:10px 12px;font-size:13px}.skeleton-row td{padding:14px 16px}.skeleton-line{background:linear-gradient(90deg,#e5e7eb 25%,#f8fafc 37%,#e5e7eb 63%) 0 0/400% 100%;border-radius:999px;height:12px;animation:1.3s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.empty-state{text-align:center;justify-items:center;gap:12px;padding:48px 24px;display:grid}.empty-illustration{width:100px;height:100px;position:relative}.empty-ring{background:radial-gradient(circle at 30% 30%,#dbeafe,#eff6ff);border-radius:50%;position:absolute;inset:14px}.empty-card{border:1px solid var(--md-border-strong);background:#fff;border-radius:16px;position:absolute;inset:8px}.empty-card-a{opacity:.55;transform:rotate(-10deg)translate(-8px,6px)}.empty-card-b{opacity:.8;transform:rotate(4deg)}.empty-card-c{transform:rotate(10deg)translate(8px,8px)}.empty-state h3{letter-spacing:-.03em;margin:0;font-size:20px}.empty-state p{color:var(--md-muted);margin:0;font-size:14px}.pagination-bar{border-top:1px solid var(--md-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.pagination-summary{color:var(--md-muted);white-space:nowrap;font-size:13px}.pagination-controls{align-items:center;gap:8px;display:flex}.pagination-size{align-items:center;gap:6px;display:inline-flex}.pagination-size span{color:var(--md-muted);white-space:nowrap;font-size:13px}.pagination-size select{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:auto;min-width:64px;height:34px;color:var(--md-text);outline:none;padding:0 8px;font-size:13px}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;place-items:center;padding:24px;animation:.18s fadeIn;display:grid;position:fixed;inset:0}.modal-card{background:var(--md-surface);border:1px solid var(--md-border);border-radius:var(--md-radius-xl);flex-direction:column;width:min(560px,100vw - 48px);max-width:640px;max-height:min(90vh,880px);padding:28px 32px;animation:.18s modalEnter;display:flex;overflow:clip;box-shadow:0 20px 60px #0f172a26}.modal-dropdown-layer{z-index:1000;pointer-events:none;position:fixed;inset:0}.modal-wide{width:min(820px,100vw - 48px);max-width:880px}.modal-full{width:min(1080px,100vw - 48px);max-width:1180px}.modal-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.modal-heading{gap:4px;display:grid}.modal-heading h2{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:700;line-height:1.2}.modal-heading p{color:var(--md-muted);margin:0;font-size:14px}.modal-close{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:36px;height:36px;color:var(--md-muted);cursor:pointer;flex:0 0 36px;place-items:center;transition:background .16s,color .16s;display:grid}.modal-close:hover{color:var(--md-text);background:#f3f4f6}.modal-body{min-height:0;overflow:auto}.modal-form{gap:20px;display:grid}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field-full{grid-column:1/-1}.form-field>label{color:var(--md-text);font-size:13px;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:100%;height:40px;color:var(--md-text);box-sizing:border-box;outline:none;padding:0 12px;font-size:14px;transition:border-color .16s,box-shadow .16s}.form-field textarea{resize:vertical;min-height:90px;padding:10px 12px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.field-error{min-height:16px;color:var(--md-danger);font-size:12px;line-height:1.3}.checkbox-field{cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;min-height:36px;padding:0;display:inline-flex}.checkbox-field input{width:16px;height:16px;margin:0}.modal-footer{flex-shrink:0;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:4px;display:flex}.bulk-price-apply-row{background:var(--md-surface-soft);border:1px solid var(--md-border);border-radius:var(--md-radius);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.bulk-price-apply-row .form-field{flex:1;min-width:140px}.bulk-price-table{border:1px solid var(--md-border);border-radius:var(--md-radius-lg);overflow-x:auto}.bulk-price-table table{min-width:640px}.bulk-price-table td{vertical-align:middle}.bulk-price-table input,.bulk-price-table select{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:100%;height:36px;color:var(--md-text);box-sizing:border-box;outline:none;padding:0 10px;font-size:14px}.bulk-price-table input:focus,.bulk-price-table select:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.picker-list-search{margin-bottom:8px}.picker-list{border:1px solid var(--md-border);border-radius:var(--md-radius);max-height:220px;overflow-y:auto}.picker-list-item{border-bottom:1px solid var(--md-border);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:background .16s;display:flex}.picker-list-item:last-child{border-bottom:none}.picker-list-item:hover{background:var(--md-surface-soft)}.picker-list-empty{color:var(--md-muted);padding:10px;font-size:13px}.permission-picker{gap:24px;display:grid}.permission-loading{color:var(--md-muted);padding:16px 0}.permission-group{gap:10px;display:grid}.permission-group-header{border-bottom:1px solid var(--md-border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:6px;display:flex}.permission-group-header h3{text-transform:uppercase;letter-spacing:.04em;color:var(--md-muted);margin:0;font-size:13px;font-weight:700}.permission-group-toggle{color:var(--md-primary);cursor:pointer;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.record-summary-header{background:var(--md-surface-soft);border:1px solid var(--md-border);border-radius:var(--md-radius-lg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.record-summary-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.record-summary-date{color:var(--md-muted);font-size:13px}.record-summary-amount{text-align:right}.record-summary-amount-label{text-transform:uppercase;letter-spacing:.04em;color:var(--md-muted);font-size:12px;font-weight:600;display:block}.record-summary-amount-value{letter-spacing:-.02em;color:var(--md-text);font-size:22px;font-weight:700;display:block}.detail-grid{grid-template-columns:repeat(2,1fr);gap:16px 24px;display:grid}.detail-item{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-item-full{grid-column:1/-1}.detail-label{text-transform:uppercase;letter-spacing:.04em;color:var(--md-muted);font-size:12px;font-weight:600}.detail-value{color:var(--md-text);word-break:break-word;font-size:14px;font-weight:500}.stat-tile-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.stat-tile{background:var(--md-surface-soft);border:1px solid var(--md-border);border-radius:var(--md-radius);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.stat-tile-label{color:var(--md-muted);font-size:12px;font-weight:600}.stat-tile-value{letter-spacing:-.02em;color:var(--md-text);font-size:18px;font-weight:700}.stat-tile-success .stat-tile-value{color:var(--md-success)}.stat-tile-warning .stat-tile-value{color:var(--md-warning)}.stat-tile-danger .stat-tile-value{color:var(--md-danger)}.progress-meter{flex-direction:column;gap:6px;margin-top:12px;display:flex}.progress-meter-track{background:var(--md-primary-soft);border-radius:999px;height:8px;overflow:hidden}.progress-meter-fill{border-radius:999px;height:100%;transition:width .24s}.progress-meter-fill-accent{background:var(--md-primary)}.progress-meter-fill-success{background:var(--md-success)}.progress-meter-caption{color:var(--md-muted);font-size:12px}.payment-complete{background:var(--md-success-soft);border-radius:var(--md-radius-lg);border:1px solid #bbf7d0;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.payment-complete-icon{background:var(--md-success);color:#fff;border-radius:999px;flex:0 0 36px;place-items:center;width:36px;height:36px;display:grid}.payment-complete-icon svg{width:18px;height:18px}.payment-complete-copy{flex-direction:column;gap:2px;display:flex}.payment-complete-copy strong{color:var(--md-text);font-size:14px}.payment-complete-copy span{color:var(--md-muted);font-size:13px}.confirm-title{align-items:center;gap:10px;display:flex}.confirm-icon{border-radius:999px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.confirm-icon-danger{background:var(--md-danger-soft);color:var(--md-danger)}.confirm-icon-svg{width:18px;height:18px}@media (width<=640px){.detail-grid,.stat-tile-row{grid-template-columns:1fr}.record-summary-header{flex-direction:column;align-items:flex-start}.record-summary-amount{text-align:left}}.permission-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.permission-item{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .16s,background .16s;display:flex}.permission-item:hover{border-color:#bfdbfe}.permission-item.is-selected{background:var(--md-primary-soft);border-color:#bfdbfe}.permission-item input{margin-top:2px}.permission-copy{gap:2px;display:grid}.permission-copy strong{font-size:14px;font-weight:600}.permission-copy small{color:var(--md-muted);font-size:12px}@keyframes modalEnter{0%{opacity:0;transform:scale(.98)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes dropdownEnter{0%{opacity:0;transform:scale(.97)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width<=1200px){.toolbar-grid{gap:10px}.toolbar-field-search{flex:200px}.toolbar-field-sort,.toolbar-field-filter{flex:0 170px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.page-header{flex-direction:column}.page-actions{justify-content:flex-start}}@media (width<=1023px){.master-shell{display:block}.master-sidebar{width:min(280px,88vw);height:100dvh;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:0 20px 50px #0f172a2e}.master-sidebar.is-open{transform:translate(0)}.sidebar-close{display:inline-flex}.page-topbar{display:flex}.mobile-sidebar-toggle{display:inline-flex}.master-content{gap:16px;padding:16px 20px 32px}}@media (width<=767px){.master-content{gap:14px;padding:12px 16px 24px}.page-copy h1{font-size:24px}.page-actions{flex-direction:column;align-items:stretch;width:100%}.page-actions>*{width:100%}.search-card{padding:12px 14px}.toolbar-grid{flex-direction:column;align-items:stretch}.toolbar-field-search,.toolbar-field-sort,.toolbar-field-filter{flex:auto;width:100%}.toolbar-actions{justify-content:stretch}.toolbar-actions .master-button{flex:1}.kpi-grid{grid-template-columns:1fr}.table-headline{flex-direction:column;align-items:flex-start}.pagination-bar{flex-direction:column;align-items:flex-start;gap:10px}.pagination-controls{flex-wrap:wrap;width:100%}.pagination-size{justify-content:space-between;width:100%}.table-card{border-radius:var(--md-radius-lg)}.modal-backdrop{align-items:stretch;padding:0}.modal-card{border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:20px}.modal-footer{background:var(--md-surface);padding-top:12px;padding-bottom:8px;position:sticky;bottom:0}}:root{--login-primary:#aa3bff;--login-primary-hover:#9016eb;--login-bg-1:#16171d;--login-bg-2:#1f2028;--login-card-bg:#1f202866;--login-card-border:#ffffff1a;--login-text:#f3f4f6;--login-text-muted:#9ca3af;--login-input-bg:#0003}@media (prefers-color-scheme:light){:root{--login-bg-1:#f4f3ec;--login-bg-2:#fff;--login-card-bg:#fff9;--login-card-border:#0000001a;--login-text:#08060d;--login-text-muted:#6b6375;--login-input-bg:#fffc}}.login-wrapper{background:linear-gradient(135deg, var(--login-bg-1), var(--login-bg-2));justify-content:center;align-items:center;width:100vw;height:100vh;margin:0;padding:0;font-family:system-ui,-apple-system,sans-serif;display:flex;position:relative;overflow:hidden}.bg-shape{filter:blur(80px);z-index:0;animation:15s ease-in-out infinite alternate float;position:absolute}.shape-1{background:var(--login-primary);opacity:.3;border-radius:50%;width:400px;height:400px;animation-delay:0s;top:-100px;left:-100px}.shape-2{opacity:.2;background:#00d2ff;border-radius:40% 60% 70% 30%/40% 50% 60%;width:300px;height:500px;animation-delay:-5s;bottom:-150px;right:-50px}.shape-3{opacity:.2;background:#ff3b8f;border-radius:50%;width:200px;height:200px;animation-delay:-10s;bottom:20%;left:20%}@keyframes float{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-30px)scale(1.05)}to{transform:translateY(20px)scale(.95)}}.login-container{z-index:10;box-sizing:border-box;width:100%;max-width:420px;padding:20px;position:relative}.login-card{background:var(--login-card-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--login-card-border);opacity:0;border-radius:24px;padding:48px 40px;animation:.8s cubic-bezier(.16,1,.3,1) forwards slideUpFade;transform:translateY(30px);box-shadow:0 25px 50px -12px #00000040}@keyframes slideUpFade{to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.login-header h2{color:var(--login-text);letter-spacing:-.5px;margin:0 0 8px;font-size:28px;font-weight:700}.login-header p{color:var(--login-text-muted);margin:0;font-size:15px}.login-form{flex-direction:column;gap:24px;display:flex}.input-group{width:100%;position:relative}.input-group input{width:100%;color:var(--login-text);background:var(--login-input-bg);border:1px solid var(--login-card-border);box-sizing:border-box;border-radius:12px;outline:none;padding:16px 16px 12px;font-size:16px;transition:all .3s}.input-group input:hover{background:#ffffff0d}.input-group input:focus{border-color:var(--login-primary);background:0 0}.input-group label{color:var(--login-text-muted);pointer-events:none;font-size:16px;transition:all .2s;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.input-group input:focus~label,.input-group.has-val label{text-transform:uppercase;letter-spacing:.5px;color:var(--login-primary);font-size:11px;font-weight:600;top:8px}.form-actions{justify-content:space-between;align-items:center;font-size:14px;display:flex}.checkbox-wrap{color:var(--login-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.checkbox-wrap input{display:none}.checkmark{border:1px solid var(--login-text-muted);border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;transition:all .2s;display:inline-flex}.checkbox-wrap input:checked~.checkmark{background:var(--login-primary);border-color:var(--login-primary)}.checkbox-wrap input:checked~.checkmark:after{content:"✓";color:#fff;font-size:12px;font-weight:700}.forgot-link{color:var(--login-primary);font-weight:500;text-decoration:none;transition:opacity .2s}.forgot-link:hover{opacity:.8;text-decoration:underline}.btn-login{background:var(--login-primary);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:100%;height:54px;margin-top:8px;padding:16px;font-size:16px;font-weight:600;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #aa3bff4d}.btn-login:hover{background:var(--login-primary-hover);transform:translateY(-2px);box-shadow:0 8px 25px #aa3bff66}.btn-login:active{transform:translateY(0)}.btn-login.loading{background:var(--login-bg-2);color:var(--login-text-muted);pointer-events:none;border:1px solid var(--login-card-border);box-shadow:none}.btn-spinner{border:2px solid var(--login-text-muted);border-top-color:#0000;border-radius:50%;width:20px;height:20px;margin-left:12px;animation:.8s linear infinite spin;display:none}.btn-login.loading .btn-spinner{display:block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.login-wrapper{align-items:stretch;padding:16px}.login-container{justify-content:center;align-items:center;padding:0;display:flex}.login-card{border-radius:20px;width:100%;padding:32px 24px}.login-header h2{font-size:24px}.form-actions{flex-direction:column;align-items:flex-start;gap:10px}}.procurement-shell{flex-direction:column;gap:1.5rem;display:flex}.procurement-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.procurement-actions{flex-wrap:wrap;gap:.5rem;display:flex}.report-filter-field{flex:0 240px;min-width:220px}.procurement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.procurement-grid .form-field-full{grid-column:1/-1}.procurement-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:1.25rem 1.25rem .5rem;overflow:hidden;box-shadow:0 10px 30px #0f172a0a}.procurement-card .procurement-toolbar{margin-bottom:1rem}.procurement-card .procurement-toolbar strong{color:#0f172a;letter-spacing:-.01em;font-size:15px;font-weight:700}.procurement-items-table-wrap{overflow-x:auto}.procurement-items-table{border-collapse:separate;border-spacing:0;width:100%}.procurement-items-table.has-lot-expiry{min-width:900px}.procurement-items-table.has-warehouse-lot-expiry{min-width:950px}.procurement-items-table thead th{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;text-align:left;background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:.7rem .75rem;font-size:12px;font-weight:700;position:sticky;top:0}.procurement-items-table thead th:first-child{border-radius:10px 0 0}.procurement-items-table thead th:last-child{border-radius:0 10px 0 0}.procurement-items-table tbody tr{transition:background .16s}.procurement-items-table tbody tr:hover{background:#f8fbff}.procurement-items-table tbody td{vertical-align:middle;border-bottom:1px solid #f1f3f5;padding:.75rem;font-size:14px}.procurement-items-table tbody tr:last-child td{border-bottom:none}.procurement-items-table th:first-child,.procurement-items-table td:first-child{width:32%;min-width:220px}.procurement-items-table th:last-child,.procurement-items-table td:last-child{width:48px}.procurement-items-table th.col-warehouse,.procurement-items-table td.col-warehouse{width:160px;min-width:150px}.procurement-items-table th.col-qty,.procurement-items-table td.col-qty{width:100px;min-width:100px}.procurement-items-table th.col-price,.procurement-items-table td.col-price{width:130px;min-width:130px}.procurement-items-table th.col-lot,.procurement-items-table td.col-lot{width:120px;min-width:120px}.procurement-items-table th.col-expiry,.procurement-items-table td.col-expiry{width:160px;min-width:160px}.procurement-items-table th.col-subtotal,.procurement-items-table td.col-subtotal{width:110px;min-width:110px}.procurement-items-table select,.procurement-items-table input[type=number],.procurement-items-table input[type=text],.procurement-items-table input[type=date]{color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:10px;outline:none;width:100%;height:38px;padding:0 10px;font-size:14px;transition:border-color .16s,box-shadow .16s}.procurement-items-table select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.procurement-items-table select:focus,.procurement-items-table input[type=number]:focus,.procurement-items-table input[type=text]:focus,.procurement-items-table input[type=date]:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.procurement-items-table .item-subtotal{color:#0f172a;font-variant-numeric:tabular-nums;font-weight:600}.link-button{font:inherit;color:var(--md-primary,#2563eb);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;margin:0;padding:0;text-decoration:underline}.link-button:hover{color:var(--md-info,#0284c7)}.item-remove-btn{border:1px solid var(--md-border);border-radius:var(--md-radius);background:var(--md-surface);width:36px;height:36px;color:var(--md-danger);cursor:pointer;justify-content:center;align-items:center;transition:background .16s,border-color .16s;display:inline-flex}.item-remove-btn:hover{background:var(--md-danger-soft);border-color:#fecaca}.field-hint{color:#6b7280;margin-top:4px;font-size:12px}.procurement-summary{box-sizing:border-box;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;gap:.5rem;width:100%;max-width:360px;margin-left:auto;padding:1rem 1.25rem;display:grid}.procurement-summary-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.procurement-summary-row span{color:#6b7280;font-size:14px;font-weight:500}.procurement-summary-row strong{color:#0f172a;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.procurement-summary-edit{gap:.5rem}.summary-input-group{align-items:center;gap:4px;display:flex}.summary-currency{color:#6b7280;font-size:14px;font-weight:600}.summary-input{color:#0f172a;text-align:right;font-variant-numeric:tabular-nums;box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;border-radius:8px;outline:none;width:100px;height:32px;padding:0 8px;font-size:14px;font-weight:600;transition:border-color .16s,box-shadow .16s}.summary-input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.summary-input::placeholder{color:#cbd5e1}.procurement-summary-net{border-top:1px solid #e5e7eb;margin-top:.25rem;padding-top:.6rem}.procurement-summary-net span{color:#0f172a;font-size:15px;font-weight:700}.procurement-summary-net strong{color:#2563eb;font-size:18px}@media (width<=768px){.procurement-grid{grid-template-columns:1fr}.procurement-items-table thead{display:none}.procurement-items-table tbody,.procurement-items-table tbody tr{display:block}.procurement-items-table tbody tr{background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin-bottom:.75rem;padding:.85rem}.procurement-items-table tbody tr:hover{background:#f8fbff}.procurement-items-table tbody td{border-bottom:none;flex-wrap:wrap;align-items:center;gap:10px;padding:.4rem 0;display:flex}.procurement-items-table tbody td:first-child,.procurement-items-table tbody td:last-child{width:auto;min-width:0}.procurement-items-table tbody td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.03em;color:#6b7280;flex-shrink:0;min-width:80px;font-size:12px;font-weight:700}.procurement-items-table tbody td:last-child{justify-content:flex-end}.procurement-items-table select,.procurement-items-table input[type=number],.procurement-items-table input[type=text],.procurement-items-table input[type=date],.procurement-items-table .searchable-select-trigger{flex:1;min-width:0}.procurement-items-table td.col-warehouse,.procurement-items-table td.col-qty,.procurement-items-table td.col-price,.procurement-items-table td.col-lot,.procurement-items-table td.col-expiry,.procurement-items-table td.col-subtotal{width:auto;min-width:0}.procurement-summary{max-width:100%}}@media (width<=480px){.procurement-card{padding:1rem 1rem .25rem}.procurement-summary{padding:.85rem 1rem}}.payment-form-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;margin-top:16px;padding:16px}.payment-form-header{color:#0f172a;margin:0 0 12px;font-size:14px;font-weight:700}.payment-history-empty{color:#6b7280;padding:8px 0;font-size:14px}.app-shell{min-height:100vh}
