:root{--primary:#1a6b3a;--primary-light:#e8f5ee;--primary-mid:#2e8b57;--primary-dark:#144d2b;--accent:#f0a500;--danger:#dc3545;--warning:#f59e0b;--info:#0ea5e9;--success:#16a34a;--g50:#f9fafb;--g100:#f3f4f6;--g200:#e5e7eb;--g300:#d1d5db;--g400:#9ca3af;--g500:#6b7280;--g700:#374151;--g900:#111827;--shadow-sm:0 1px 3px #00000014;--shadow:0 2px 12px #0000001a;--shadow-lg:0 8px 40px #0003;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px;--radius:8px;--radius-sm:5px;--radius-md:6px;--radius-lg:10px;--font-family:"Segoe UI", system-ui, -apple-system, sans-serif;--font-size-xs:10px;--font-size-sm:11px;--font-size-base:13px;--font-size-md:14px;--font-size-lg:15px;--font-size-xl:16px;--font-size-2xl:21px;--font-size-3xl:22px;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--content-max-width:1920px;--sidebar-width:220px;--topbar-height:52px;--table-header-height:40px;--table-row-height:52px;--table-cell-x:14px;--table-cell-y:10px;--table-action-width:64px;--table-date-width:132px;--table-status-width:150px;--table-num-width:120px;--table-hover-bg:var(--g50);--table-border:var(--g100);--table-control-size:32px;--z-topbar:200;--z-popover:300;--z-modal:500;--z-select-popover:600}*,:before,:after{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);color:var(--g900);background-color:#f0f2f5;min-height:100vh;line-height:1.5}[data-lucide]{vertical-align:-.2em;display:inline-block}svg.lucide{stroke-width:2px;vertical-align:-.2em;flex-shrink:0;width:1.05em;height:1.05em}.status-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:6px;display:inline-block}.status-dot-red{background:var(--danger)}.status-dot-amber{background:var(--warning)}.status-dot-green{background:var(--success)}.status-dot-blue{background:var(--info)}.status-dot-purple{background:#7c3aed}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:var(--font-weight-extrabold)}p{margin-bottom:var(--spacing-md)}a{color:var(--primary);text-decoration:none;transition:color .15s}a:hover{color:var(--primary-dark)}a[href]{cursor:pointer}ul,ol{margin-bottom:var(--spacing-md);padding-left:var(--spacing-lg)}li{margin-bottom:var(--spacing-xs)}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font-family:inherit;font-size:inherit}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.text-muted{color:var(--g500)}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar{z-index:var(--z-topbar);height:var(--topbar-height);padding:0 var(--spacing-2xl);background-color:var(--primary);color:#fff;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000040}.topbar-brand{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);white-space:nowrap;display:flex}.topbar-brand svg{flex-shrink:0}.topbar-nav{align-items:center;gap:var(--spacing-xs);margin:0 var(--spacing-lg);display:flex}.nav-item{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:#ffffffbf;text-decoration:none;transition:all .15s;display:inline-block}.nav-item:hover{color:#fff;background-color:#ffffff1a}.nav-item.active{color:#fff;font-weight:var(--font-weight-semibold);background-color:#ffffff2e}.header-search{min-width:0;max-width:560px;margin:0 var(--spacing-xl);flex:auto;position:relative}.header-search-field{align-items:center;display:flex;position:relative}.header-search-icon{color:#ffffffb3;pointer-events:none;position:absolute;left:12px}.header-search-input{border-radius:var(--radius-md);color:#fff;width:100%;min-width:0;height:36px;font-size:var(--font-size-sm);text-overflow:ellipsis;background:#ffffff1f;border:1px solid #ffffff40;padding:0 64px 0 36px}.header-search-input::placeholder{color:#ffffffb3}.header-search-input:focus{background:#fff3;border-color:#fff9;outline:none;box-shadow:0 0 0 2px #ffffff2e}.header-search-kbd{color:#ffffffbf;pointer-events:none;border:1px solid #ffffff4d;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:11px;position:absolute;right:8px}.header-search-clear{color:#fffc;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px;display:flex;position:absolute;right:6px}.header-search-clear:hover{background:#ffffff26}.header-search-toggle{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:0 0;border:0;padding:6px;display:none}.header-search-toggle:hover{background:#ffffff26}.header-search-dropdown{width:100%;min-width:360px;max-width:calc(100vw - 24px);max-height:min(70vh,480px);color:var(--g900);border:1px solid var(--g200);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:300;background:#fff;padding:4px 0;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.hs-group+.hs-group{border-top:1px solid var(--g100)}.hs-group-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--g500);text-transform:uppercase;letter-spacing:.4px;align-items:center;gap:6px;padding:8px 14px 4px;display:flex}.hs-option{color:var(--g900);cursor:pointer;border-left:3px solid #0000;align-items:center;gap:10px;padding:6px 14px 6px 11px;text-decoration:none;display:flex}.hs-option.is-active{background:var(--primary-light);border-left-color:var(--primary)}.hs-option-icon{color:var(--g500);flex-shrink:0;display:flex}.hs-option-text{flex-direction:column;flex:1;min-width:0;display:flex}.hs-option-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hs-option-sub{font-size:var(--font-size-xs);color:var(--g500);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hs-option-badge{flex-shrink:0}.hs-hint,.hs-state{font-size:var(--font-size-sm);color:var(--g500);padding:12px 14px}.hs-state{flex-direction:column;gap:2px;min-height:20px;display:flex}.hs-state[role=status]:has(.hs-spin){flex-direction:row;align-items:center;gap:6px}.hs-state-hint{font-size:var(--font-size-xs);color:var(--g400)}.hs-state-error{color:var(--danger,#b91c1c);display:block}.hs-retry{color:var(--primary);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.hs-spin{animation:.8s linear infinite spinner-rotate}.topbar-right{align-items:center;gap:var(--spacing-lg);font-size:var(--font-size-sm);margin-left:auto;display:flex}.notif-btn{cursor:pointer;opacity:.85;transition:opacity .15s;position:relative}.notif-btn:hover{opacity:1}.notif-dot{border:1.5px solid var(--primary);background-color:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.avatar{width:30px;height:30px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);cursor:pointer;background-color:#ffffff40;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.avatar:hover{background-color:#ffffff59}.topbar-logout{color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;background-color:#ffffff1f;border:1px solid #ffffff5c;border-radius:999px;align-items:center;padding:6px 12px;transition:all .15s;display:inline-flex}.topbar-logout:hover{background-color:#fff3}.topbar-logout:focus-visible{outline-offset:2px;outline:2px solid #fffc}.layout{min-height:calc(100vh - var(--topbar-height));display:flex}.sidebar{top:var(--topbar-height);width:var(--sidebar-width);height:calc(100vh - var(--topbar-height));padding:var(--spacing-md) 0;border-right:1px solid var(--g200);background-color:#fff;flex-shrink:0;position:sticky;overflow-y:auto}.sidebar-section-label{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--g400);text-transform:uppercase;letter-spacing:.6px}.sidebar-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);color:var(--g700);cursor:pointer;border-left:3px solid #0000;text-decoration:none;transition:all .12s;display:flex}.sidebar-item:hover{background-color:var(--primary-light);color:var(--primary)}.sidebar-item.active{background-color:var(--primary-light);color:var(--primary);border-left-color:var(--primary);font-weight:var(--font-weight-bold)}.sidebar-item .icon{text-align:center;width:20px;font-size:var(--font-size-lg)}.sidebar-badge{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--primary);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);border-radius:10px;flex-shrink:0;margin-left:auto}.sidebar-badge.warn{background-color:#ef4444}.sidebar-item-toggle{justify-content:space-between}.submenu-caret{color:var(--g400);flex-shrink:0;margin-left:auto;transition:transform .15s}.sidebar-submenu.open .submenu-caret{transform:rotate(180deg)}.sidebar-submenu-list{max-height:0;transition:max-height .2s;overflow:hidden}.sidebar-submenu.open .sidebar-submenu-list{max-height:240px}.sidebar-subitem{padding-left:calc(var(--spacing-lg) + 20px + var(--spacing-md));font-size:var(--font-size-sm)}.sidebar-divider{border:none;border-top:1px solid var(--g200);margin:var(--spacing-sm) 0}.sidebar-logout{color:#b42318;display:none}.sidebar-logout:hover{color:#912018;background-color:#ffe5e3}.main{padding:var(--spacing-xl) var(--spacing-2xl) 40px;flex:1;min-width:0;overflow-y:auto}.page-container{max-width:var(--content-max-width);margin-inline:auto}.breadcrumb{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--g500);display:flex}.breadcrumb a{color:var(--primary);text-decoration:none}.page-header{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:flex-start;display:flex}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);color:var(--g900)}.page-sub{font-size:var(--font-size-xs);color:var(--g400);margin-top:3px}.header-actions{align-items:center;gap:var(--spacing-md);display:flex}@media (width<=1024px){.sidebar{z-index:100;width:280px;height:100%;transition:transform .3s;position:fixed;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.layout{min-height:100%}.sidebar-logout{display:flex}.topbar-logout{display:none}.header-search{margin:0 var(--spacing-md)}.header-search-kbd{display:none}.header-search-input{padding-right:32px}}@media (width<=768px){.topbar{padding:0 var(--spacing-lg)}.topbar-nav{display:none}.header-search{flex:none;margin:0 0 0 auto}.header-search-toggle{display:flex}.header-search:not(.is-expanded) .header-search-field{display:none}.header-search.is-expanded{top:8px;left:var(--spacing-lg);right:var(--spacing-lg);z-index:1;max-width:none;margin:0;position:absolute}.header-search.is-expanded .header-search-toggle{display:none}.header-search.is-expanded .header-search-input{background:var(--primary)}.header-search-dropdown{min-width:0}.main{padding:var(--spacing-lg)}.page-header{gap:var(--spacing-md);flex-direction:column}.header-actions{width:100%}}.cust-switch{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cust-switch-back{color:var(--g500);border-right:1px solid var(--g200);align-items:center;gap:4px;padding-right:8px;font-size:12px;text-decoration:none;display:inline-flex}.cust-switch-back:hover{color:var(--primary)}.cust-switch-item{color:var(--g600);background:var(--g100);border-radius:20px;padding:4px 14px;font-size:12.5px;font-weight:600;text-decoration:none;transition:all .12s}.cust-switch-item:hover{background:var(--primary-light);color:var(--primary)}.cust-switch-item.active{background:var(--primary);color:#fff}.card{border:1px solid var(--g200);border-radius:var(--radius);box-shadow:var(--shadow-sm);background-color:#fff;margin-bottom:18px;overflow:hidden}.card-header{align-items:center;gap:var(--spacing-md);padding:13px var(--spacing-xl);background-color:var(--g50);border-bottom:1px solid var(--g200);display:flex}.card-icon{border-radius:var(--radius-md);width:30px;height:30px;font-size:var(--font-size-lg);justify-content:center;align-items:center;display:flex}.card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold)}.card-sub{font-size:var(--font-size-xs);color:var(--g500);margin-top:1px}.card-body{padding:var(--spacing-xl)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);height:36px;padding:0 var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;border:none;border-radius:7px;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:32px;padding:0 var(--spacing-md);font-size:var(--font-size-xs)}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 2px 5px #1a6b3a40}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);box-shadow:0 4px 8px #1a6b3a59}.btn-outline{color:var(--g700);border:1.5px solid var(--g300);background-color:#fff}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn-ghost{color:var(--g500);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--g100);color:var(--g700)}.btn-back{border:1.5px solid var(--g300);width:26px;height:26px;color:var(--g600);cursor:pointer;background-color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.btn-back:hover{background-color:var(--g100);border-color:var(--g400);color:var(--g900)}.btn-link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.btn-link:hover{text-decoration:underline}.btn-back i{width:14px;height:14px}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-export{color:#fff;background-color:#0ea5e9}.btn-export:hover:not(:disabled){background-color:#0284c7}.btn-accent{background-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background-color:#d4920a}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover:not(:disabled){background-color:#15803d}.form-grid{grid-template-columns:repeat(3,1fr);gap:16px 20px;display:grid}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-4{grid-template-columns:repeat(4,1fr)}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-label{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--g700);display:flex}.required{color:var(--danger)}.form-control{height:38px;padding:0 var(--spacing-md);border:1.5px solid var(--g300);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--g900);background-color:#fff;width:100%;transition:border-color .15s,box-shadow .15s}.form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a6b3a1a}.form-control:disabled,.form-control.readonly{color:var(--g700);cursor:not-allowed;font-weight:var(--font-weight-semibold);background-color:#f0f4f8;border-style:dashed}.form-control.auto{color:#92400e;font-weight:var(--font-weight-bold);cursor:not-allowed;background-color:#fffbeb;border-style:dashed;border-color:#fcd34d}textarea.form-control{height:70px;padding:var(--spacing-sm) var(--spacing-md);resize:vertical}.form-hint{font-size:var(--font-size-xs);color:var(--g500)}.inp-group{position:relative}.inp-group .form-control{padding-right:40px}.inp-sfx{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--g400);pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}hr.divider{border:none;border-top:1px dashed var(--g300);margin:var(--spacing-sm) 0 var(--spacing-lg)}.stat-row{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{border:1px solid var(--g200);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;background-color:#fff;padding:14px 16px;transition:box-shadow .15s,transform .15s}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.stat-card.active-filter{border-color:var(--primary);box-shadow:0 0 0 2px #1a6b3a33}.stat-label{margin-bottom:var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--g500)}.stat-value{font-size:22px;font-weight:var(--font-weight-extrabold);color:var(--g900)}.stat-sub{font-size:var(--font-size-xs);color:var(--g400);margin-top:3px}.badge{align-items:center;gap:var(--spacing-xs);font-size:11.5px;font-weight:var(--font-weight-bold);white-space:nowrap;border-radius:20px;padding:3px 10px;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.badge-draft{color:#4b5563;background-color:#f3f4f6}.badge-draft .badge-dot{background-color:#9ca3af}.badge-pending{color:#92400e;background-color:#fef3c7}.badge-pending .badge-dot{background-color:#f59e0b}.badge-active{color:#065f46;background-color:#d1fae5}.badge-active .badge-dot{background-color:#10b981}.badge-delivering{color:#1d4ed8;background-color:#dbeafe}.badge-delivering .badge-dot{background-color:#3b82f6}.badge-completed{color:#065f46;background-color:#d1fae5}.badge-completed .badge-dot{background-color:#22c55e}.badge-cancelled{color:#991b1b;background-color:#fee2e2}.badge-neutral{color:#3730a3;background-color:#e0e7ff}.badge-cancelled .badge-dot{background-color:#ef4444}.badge-unpaid{color:#b91c1c;background-color:#fef2f2}.badge-unpaid .badge-dot{background-color:#ef4444}.badge-partial{color:#92400e;background-color:#fffbeb}.badge-partial .badge-dot{background-color:#f59e0b}.badge-paid{color:#166534;background-color:#f0fdf4}.badge-paid .badge-dot{background-color:#22c55e}.badge-overdue{color:#5b21b6;background-color:#f5f3ff}.badge-overdue .badge-dot{background-color:#7c3aed}.badge-inactive{color:#6b7280;background-color:#f3f4f6}.badge-inactive .badge-dot{background-color:#9ca3af}.type-tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);border-radius:4px;padding:2px 8px;display:inline-block}.type-ban{color:#1d4ed8;background-color:#dbeafe}.type-dieu{color:#9d174d;background-color:#fce7f3}.type-hoan{color:#991b1b;background-color:#fee2e2}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:10px 14px;font-size:12.5px;display:flex}.alert-info{color:#1d4ed8;background-color:#eff6ff;border:1px solid #bfdbfe}.alert-warn{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.alert-success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.action-bar{padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--g200);background-color:#fff;justify-content:flex-end;gap:10px;display:flex}.modal-overlay{z-index:var(--z-modal);background-color:#00000073;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background-color:#fff;width:600px;max-width:95vw;max-height:90vh;overflow-y:auto}.modal-header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--g200);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.modal-close{background-color:var(--g100);cursor:pointer;width:30px;height:30px;font-size:var(--font-size-xl);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:flex}.modal-close:hover{background-color:var(--g200)}.modal-body{padding:var(--spacing-xl)}.modal-footer{justify-content:flex-end;gap:var(--spacing-md);padding:14px var(--spacing-xl);border-top:1px solid var(--g200);display:flex}.chip{align-items:center;gap:var(--spacing-xs);background-color:var(--primary-light);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--primary);cursor:pointer;border:1px solid #1a6b3a40;border-radius:20px;padding:4px 10px;display:inline-flex}.chip-clear{color:var(--danger);background-color:#fef2f2;border-color:#fecaca}@media (width<=768px){.form-grid,.form-grid-2,.form-grid-4{grid-template-columns:1fr}.col-span-2,.col-span-3,.col-span-4{grid-column:span 1}.stat-row{grid-template-columns:repeat(2,1fr)}.action-bar{flex-direction:column}.btn{width:100%}}.dialog-heading{align-items:center;gap:10px;min-width:0;display:flex}.dialog-heading .modal-title{font-size:var(--font-size-lg,16px);margin:0}.dialog-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.dialog-icon-default{background-color:var(--primary-light);color:var(--primary)}.dialog-icon-warning{color:#b45309;background-color:#fef3c7}.dialog-icon-danger{color:#b91c1c;background-color:#fee2e2}.dialog-body{gap:var(--spacing-md);flex-direction:column;display:flex}.dialog-description{font-size:var(--font-size-sm);color:var(--g700,var(--g900));line-height:1.5}.dialog-details{border:1px solid var(--g200);border-radius:var(--radius-md);background-color:var(--g50,#f9fafb);margin:0;padding:10px 12px}.dialog-details-row{font-size:var(--font-size-sm);gap:12px;padding:2px 0;display:flex}.dialog-details-row dt{color:var(--g500);flex:0 0 96px}.dialog-details-row dd{min-width:0;font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;margin:0}.dialog-error{border-radius:var(--radius-md);color:#b91c1c;font-size:var(--font-size-sm);background-color:#fee2e2;margin:0;padding:8px 10px}.dialog-note{font-size:var(--font-size-xs);color:var(--g500);margin:0}.export-section{gap:var(--spacing-sm);flex-direction:column;display:flex}.export-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.4px;text-transform:uppercase;color:var(--g500);margin:0}.export-checkbox{cursor:pointer;font-size:var(--font-size-sm);align-items:center;gap:8px;display:inline-flex}.export-summary{border-radius:var(--radius-md);background-color:var(--primary-light);font-size:var(--font-size-sm);padding:10px 12px}.export-summary p{margin:0}.export-summary p+p{margin-top:4px}.export-summary-scope{color:var(--g500);font-size:var(--font-size-xs)}.export-warning{border-radius:var(--radius-md);color:#92400e;font-size:var(--font-size-xs);background-color:#fef3c7;padding:6px 8px}.table-card{border:1px solid var(--g200);border-radius:var(--radius);background-color:#fff;overflow:hidden}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table-fixed{table-layout:fixed;min-width:var(--dt-min,0)}.data-table thead tr{background-color:var(--primary);color:#fff}.data-table thead th{height:var(--table-header-height);padding:4px var(--table-cell-x);font-size:12.5px;font-weight:var(--font-weight-semibold);text-align:left;white-space:normal;overflow-wrap:break-word;line-height:1.25}.data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th.sortable:hover{background-color:var(--primary-dark)}.th-sort-btn{width:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.data-table thead th.col-num .th-sort-btn{justify-content:flex-end}.th-sort-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.th-sort-idle{opacity:.55}.data-table tbody tr{border-bottom:1px solid var(--table-border);transition:background-color .1s}.data-table tbody tr:hover{background-color:var(--table-hover-bg)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody td{height:var(--table-row-height);padding:var(--table-cell-y) var(--table-cell-x);font-size:var(--font-size-base);color:var(--g900);vertical-align:middle}.data-table tbody tr.is-selected{background-color:var(--primary-light)}.data-table.is-refreshing tbody{opacity:.55;transition:opacity .12s}.data-table .col-num{text-align:right;font-variant-numeric:tabular-nums;text-overflow:clip;overflow-wrap:normal;word-break:keep-all;overflow:visible}.data-table .col-action{text-align:center;padding-left:0;padding-right:0}.data-table .col-check{text-align:center}.cell-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-table .cell-wrap,.data-table tbody .cell-truncate{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35;overflow:visible}.cell-nowrap{white-space:nowrap}.cell-muted{color:var(--g500);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.cell-primary{font-weight:var(--font-weight-semibold);color:var(--g900)}.cell-secondary{color:var(--g500);font-size:12px;display:block}.cell-identity{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.data-table .cell-identity .img-badge{width:32px;height:32px;font-size:13px}.cell-identity-text{min-width:0}.cell-identity-sub{font-size:12px;font-weight:var(--font-weight-normal);color:var(--g500);margin-top:1px;display:block}.data-table thead th:first-child,.data-table tbody td:first-child{padding-left:18px}.data-table thead th:last-child:not(.col-action),.data-table tbody td:last-child:not(.col-action){padding-right:18px}.data-table-fixed thead th.col-action,.data-table-fixed tbody td.col-action{z-index:1;position:sticky;right:0}.data-table-fixed thead th.col-action{background-color:var(--primary)}.data-table-fixed tbody td.col-action{box-shadow:inset 1px 0 0 var(--table-border);background-color:#fff}.data-table-fixed tbody tr:hover td.col-action{background-color:var(--table-hover-bg)}.data-table-fixed tbody tr.is-selected td.col-action{background-color:var(--primary-light)}.data-table-fixed thead th.col-sticky,.data-table-fixed tbody td.col-sticky{z-index:1;position:sticky;left:0}.data-table-fixed thead th.col-sticky{background-color:var(--primary)}.data-table-fixed tbody td.col-sticky{box-shadow:inset -1px 0 0 var(--table-border);background-color:#fff}.data-table-fixed tbody tr:hover td.col-sticky{background-color:var(--table-hover-bg)}.table-scroll-y{max-height:var(--table-scroll-max-height,calc(100vh - 220px));overflow:auto}.table-scroll-y .data-table thead th{z-index:2;background-color:var(--primary);position:sticky;top:0}.table-scroll-y .data-table-fixed thead th.col-action,.table-scroll-y .data-table-fixed thead th.col-sticky{z-index:3}@media (width<=1799px){.data-table .col-p2{display:none}.data-table-fixed{min-width:var(--dt-min-compact,var(--dt-min,0))}}.th-check{width:40px;padding-left:14px!important}input[type=checkbox]{cursor:pointer;width:15px;height:15px;accent-color:var(--primary)}.row-acts{opacity:0;align-items:center;gap:4px;transition:opacity .15s;display:flex}.data-table tbody tr:hover .row-acts{opacity:1}.act-btn{width:var(--table-control-size);height:var(--table-control-size);color:var(--g400);font-size:var(--font-size-sm);cursor:pointer;background-color:#0000;border:none;border-radius:5px;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.act-btn:hover{background-color:var(--g100);color:var(--g700)}.act-btn.view:hover{color:#1d4ed8;background-color:#dbeafe}.act-btn.edit:hover{color:#9d174d;background-color:#fce7f3}.act-btn.del:hover{color:#991b1b;background-color:#fee2e2}.act-btn.print:hover{color:#065f46;background-color:#d1fae5}.toolbar{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:var(--spacing-md);display:flex}.result-count{font-size:var(--font-size-sm);color:var(--g500)}.filter-select{border:1.5px solid var(--g300);border-radius:var(--radius-md);height:38px;font-size:var(--font-size-base);color:var(--g900);cursor:pointer;background-color:#fff;padding:0 10px;transition:border-color .15s}.filter-select:focus{border-color:var(--primary);outline:none}input.filter-select{cursor:text}.filter-select-sm{border:1.5px solid var(--g300);border-radius:var(--radius-md);height:30px;font-size:var(--font-size-sm);color:var(--g900);cursor:pointer;background-color:#fff;padding:0 8px}.filter-tabs{flex-wrap:wrap;gap:4px;display:flex}.ftab{align-items:center;gap:var(--spacing-xs);border:1.5px solid var(--g200);border-radius:var(--radius-md);color:var(--g700);font-size:12.5px;font-weight:var(--font-weight-semibold);cursor:pointer;background-color:#fff;padding:6px 13px;transition:all .12s;display:flex}.ftab:hover{border-color:var(--primary);color:var(--primary)}.ftab.active{background-color:var(--primary);border-color:var(--primary);color:#fff}.ftab-count{font-size:var(--font-size-xs);background-color:#0000001a;border-radius:10px;padding:1px 6px}.ftab.active .ftab-count{background-color:#ffffff40}.table-footer{justify-content:space-between;align-items:center;gap:var(--spacing-md);background-color:var(--g50);border-top:1px solid var(--g100);flex-wrap:wrap;padding:10px 16px;display:flex}.table-footer-left{align-items:center;gap:var(--spacing-lg);color:var(--g500);font-size:12.5px;display:flex}.page-size-select{border:1px solid var(--g300);height:32px;font-size:var(--font-size-xs);cursor:pointer;background-color:#fff;border-radius:5px;padding:0 8px}.pagination{align-items:center;gap:4px;display:flex}.pg-btn{min-width:var(--table-control-size);height:var(--table-control-size);border:1px solid var(--g200);color:var(--g600);font-size:12.5px;font-weight:var(--font-weight-semibold);cursor:pointer;background-color:#fff;border-radius:5px;justify-content:center;align-items:center;padding:0 8px;transition:all .12s;display:flex}.pg-btn:hover{border-color:var(--primary);color:var(--primary)}.pg-btn.active{background-color:var(--primary);border-color:var(--primary);color:#fff}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-ellipsis{text-align:center;min-width:20px;color:var(--g400)}.pg-btn.disabled{opacity:.4;cursor:not-allowed}.items-table{border-collapse:collapse;width:100%;min-width:900px}.items-table thead tr{background-color:var(--primary);color:#fff}.items-table thead th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:left;white-space:nowrap;padding:9px 10px}.items-table tbody tr{border-bottom:1px solid var(--g100)}.items-table tbody tr:hover{background-color:#f0fdf4}.items-table tbody td{vertical-align:middle;padding:7px 8px}.tbl-input{border:1.5px solid var(--g300);width:100%;height:33px;font-size:var(--font-size-xs);background-color:#fff;border-radius:5px;padding:0 8px;transition:border-color .15s}.tbl-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a6b3a1a}.tbl-input.auto{color:#92400e;font-weight:var(--font-weight-bold);cursor:not-allowed;background-color:#fffbeb;border-style:dashed;border-color:#fcd34d}.tbl-input.readonly{cursor:not-allowed;background-color:#f0f4f8;border-style:dashed}select.tbl-input{cursor:pointer}.btn-remove{width:27px;height:27px;color:var(--danger);cursor:pointer;background-color:#fee2e2;border:none;border-radius:5px;justify-content:center;align-items:center;margin:0 auto;font-size:14px;transition:background-color .15s;display:flex}.btn-remove:hover{background-color:#fca5a5}.btn-add-row{align-items:center;gap:var(--spacing-sm);border:1.5px dashed var(--primary);border-radius:var(--radius-md);background-color:var(--primary-light);color:var(--primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;margin-top:12px;padding:7px 14px;transition:background-color .15s;display:inline-flex}.btn-add-row:hover{background-color:#d1edd9}.summary-row td{font-weight:var(--font-weight-extrabold);color:var(--primary);background-color:#f0fdf4}.amount{text-align:right;font-variant-numeric:tabular-nums}.amount.bold{font-weight:var(--font-weight-bold)}.tam-trigger{width:var(--table-control-size);height:var(--table-control-size);border-radius:var(--radius-sm);color:var(--g500);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.tam-trigger:hover,.tam-trigger[aria-expanded=true]{background-color:var(--g100);color:var(--g900)}.tam-trigger:focus-visible,.tam-item:focus-visible,.act-btn:focus-visible,.pg-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.tam-menu{z-index:var(--z-popover);border:1px solid var(--g200);border-radius:var(--radius);text-align:left;background:#fff;width:max-content;min-width:220px;max-width:min(320px,100vw - 16px);padding:6px;position:fixed;box-shadow:0 8px 24px #0000001f}.tam-item{border-radius:var(--radius-md);width:100%;min-height:34px;color:var(--g700);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:7px 12px 7px 10px;font-size:12.5px;text-decoration:none;display:flex}.tam-item:hover,.tam-item:focus{background-color:var(--g50);outline:none}.tam-item>svg{color:var(--g500);flex-shrink:0}.tam-item.danger>svg{color:inherit}.tam-label{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.35}.tam-item.danger{color:var(--danger)}.tam-divider{background-color:var(--g100);height:1px;margin:4px 0}@media (width<=768px){.table-wrap{-webkit-overflow-scrolling:touch}.toolbar{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.filter-tabs{width:100%}.table-footer{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.row-acts{opacity:1}}.tab-bar{margin-bottom:var(--spacing-xl);border-bottom:2px solid var(--g200);display:flex}.tab{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--g500);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;transition:all .12s}.tab:hover{color:var(--primary)}.tab.active{border-bottom-color:var(--primary);color:var(--primary)}.tab-count{font-size:var(--font-size-xs);background-color:var(--g200);border-radius:10px;margin-left:4px;padding:1px 6px}.tab.active .tab-count{background-color:var(--primary-light);color:var(--primary)}.step-indicator,.workflow-bar{margin-bottom:var(--spacing-xl);align-items:center;gap:0;display:flex}.step,.wf-step{align-items:center;gap:var(--spacing-sm);border:1px solid var(--g200);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--g500);background-color:#fff;padding:10px 18px;display:flex;position:relative}.step:first-child,.wf-step:first-child{border-radius:7px 0 0 7px}.step:last-child,.wf-step:last-child{border-radius:0 7px 7px 0}.step.done,.wf-step.done{background-color:var(--primary-light);color:var(--primary);border-color:#1a6b3a4d}.step.current,.wf-step.current{background-color:var(--primary);color:#fff;border-color:var(--primary)}.step-num,.wf-step-num{width:20px;height:20px;font-size:var(--font-size-xs);font-weight:var(--font-weight-extrabold);background-color:#0000001f;border-radius:50%;justify-content:center;align-items:center;display:flex}.wf-step-num{width:22px;height:22px}.step.done .step-num,.wf-step.done .wf-step-num{background-color:var(--primary);color:#fff}.step.current .step-num,.wf-step.current .wf-step-num{color:#fff;background-color:#ffffff40}.wf-arrow{color:var(--g300);z-index:1;align-items:center;margin:0 -1px;font-size:14px;display:flex}.totals-grid{gap:var(--spacing-md);grid-template-columns:repeat(4,1fr);display:grid}.total-box{text-align:right;border:1px solid;border-radius:8px;padding:14px 16px}.total-box.en{background-color:#eff6ff;border-color:#bfdbfe}.total-box.eo{background-color:#fef9c3;border-color:#fde68a}.total-box.ep{background-color:#dcfce7;border-color:#86efac}.total-box.eq{background-color:#fee2e2;border-color:#fca5a5}.total-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--g700);margin-bottom:4px;display:block}.total-value{font-size:20px;font-weight:var(--font-weight-extrabold)}.total-sub{font-size:var(--font-size-xs);color:var(--g500);margin-top:2px}.gp-row{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 16px;display:flex}.gp-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#15803d}.gp-value{font-size:18px;font-weight:var(--font-weight-extrabold);color:#15803d}.gpm-badge{margin-left:var(--spacing-md);color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background-color:#15803d;border-radius:20px;padding:2px 10px}.cust-card{align-items:center;gap:var(--spacing-md);display:flex}.cust-avatar{background-color:var(--primary-light);width:38px;height:38px;font-size:16px;font-weight:var(--font-weight-bold);color:var(--primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.cust-info .name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.cust-info .sub{font-size:var(--font-size-xs);color:var(--g400)}.detail-grid{gap:var(--spacing-md);grid-template-columns:repeat(3,1fr);display:grid}.detail-item label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--g400);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;display:block}.detail-item span{font-size:var(--font-size-sm);color:var(--g900);font-weight:500}.detail-row{border-bottom:1px solid var(--g100);flex-direction:column;gap:3px;padding:10px 0;display:flex}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-row:first-child{padding-top:0}.detail-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--g400);text-transform:uppercase;letter-spacing:.3px}.detail-value{font-size:var(--font-size-sm);color:var(--g900);font-weight:500}.search-area{border:1px solid var(--g200);border-radius:var(--radius);box-shadow:var(--shadow-sm);background-color:#fff;margin-bottom:16px;overflow:hidden}.quick-search-bar{border-bottom:1px solid var(--g200);flex-wrap:wrap;align-items:center;gap:10px;padding:13px 16px;display:flex}.search-wrap{flex:260px;min-width:240px;max-width:480px;position:relative}.search-wrap input{border:1.5px solid var(--g300);width:100%;height:38px;font-size:var(--font-size-sm);color:var(--g900);background-color:#fff;border-radius:7px;padding:0 38px 0 36px;transition:border-color .15s,box-shadow .15s}.search-wrap>svg{color:var(--g400);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-wrap input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a6b3a1a}.ico-s{font-size:var(--font-size-lg);color:var(--g400);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.adv-panel{padding:var(--spacing-lg);background-color:var(--g50);border-bottom:1px solid var(--g200)}.adv-grid{margin-bottom:var(--spacing-lg);grid-template-columns:repeat(4,1fr);gap:12px 16px;display:grid}.adv-group{flex-direction:column;gap:4px;display:flex}.adv-label{font-size:11.5px;font-weight:var(--font-weight-semibold);color:var(--g700)}.adv-input{border:1.5px solid var(--g300);border-radius:var(--radius-md);background-color:#fff;width:100%;height:35px;padding:0 10px;font-size:12.5px;transition:border-color .15s}.adv-input:focus{border-color:var(--primary);outline:none}.due-warn{color:#b91c1c;font-weight:var(--font-weight-bold)}.due-soon{color:#92400e}.due-ok{color:var(--g400)}.badge-failed{color:#b91c1c;background-color:#fef2f2}.badge-failed .badge-dot{background-color:#dc2626}.subtab-bar{margin:var(--spacing-lg) 0 var(--spacing-md);border-bottom:1px solid var(--g200);gap:4px;display:flex}.subtab{font-size:12.5px;font-weight:var(--font-weight-semibold);color:var(--g500);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-1px;padding:8px 14px}.subtab:hover{background:var(--g100,#f3f4f6);color:var(--primary)}.subtab.active{border-bottom-color:var(--primary);color:var(--primary);background:var(--primary-light)}.subtab .tab-count{margin-left:4px}.status-pair{gap:var(--spacing-xl);flex-wrap:wrap;display:flex}.status-pair-item{flex-direction:column;gap:4px;display:flex}.status-pair-label{text-transform:uppercase;letter-spacing:.03em;color:var(--g500);font-size:11px;font-weight:var(--font-weight-bold)}.progress-bar{background:var(--g200);border-radius:4px;width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:var(--primary-mid,#2e8b57);border-radius:4px;height:100%}.progress-bar-fill.is-complete{background:#22c55e}.progress-label{color:var(--g500);margin-top:4px;font-size:12px}.kpi-row{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(5,1fr);display:grid}.kpi-card{align-items:flex-start;gap:var(--spacing-md);border:1px solid var(--g200);border-radius:var(--radius);box-shadow:var(--shadow-sm);background-color:#fff;padding:16px;display:flex}.kpi-icon{border-radius:var(--radius-md);background-color:var(--g100);width:40px;height:40px;color:var(--g500);flex-shrink:0;justify-content:center;align-items:center;display:flex}.kpi-icon.kpi-blue{color:#1d4ed8;background-color:#dbeafe}.kpi-icon.kpi-amber{color:#92400e;background-color:#fef3c7}.kpi-icon.kpi-purple{color:#6d28d9;background-color:#ede9fe}.kpi-icon.kpi-red{color:#b91c1c;background-color:#fee2e2}.kpi-icon.kpi-green{background-color:var(--primary-light);color:var(--primary)}.kpi-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--g500);margin-bottom:2px}.kpi-value{font-size:22px;font-weight:var(--font-weight-extrabold);color:var(--g900);line-height:1.2}.kpi-sub{color:var(--g400);align-items:center;gap:3px;margin-top:2px;font-size:11px;display:flex}.kpi-sub i{width:11px;height:11px}.kpi-sub.up{color:var(--success)}.kpi-sub.down,.kpi-sub.bad{color:var(--danger)}.dash-date{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--g700);white-space:nowrap;align-items:center;gap:6px;display:flex}.dash-date-sub{color:var(--g400);text-align:right;margin-top:2px;font-size:11.5px}.dash-row-2{gap:var(--spacing-lg);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;min-width:0;display:grid}.dash-row-2>.card{min-width:0}.dash-grid-2{gap:var(--spacing-lg);grid-template-columns:2fr 1fr;align-items:start;display:grid}.dash-zone-c{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.dash-stack{gap:var(--spacing-lg);flex-direction:column;min-width:0;display:flex}.dash-stack>.card{margin-bottom:0}.dash-table{table-layout:fixed}.dash-table th,.dash-table td{white-space:nowrap;text-overflow:ellipsis;padding:7px 6px;font-size:12.5px;overflow:hidden}.dash-table thead th{font-size:11px}.dash-table td[style*=text-align\:right]{text-overflow:clip;overflow:visible}.gh-col-so{width:23%}.gh-col-driver{width:4%}.gh-col-plate{width:17%}.gh-col-inv{width:7%}.gh-col-pkg{width:9%}.gh-col-kg{width:11%}.gh-col-status{width:22%}.gh-col-act{width:7%}@media (width>=1440px){.gh-col-so{width:21%}.gh-col-driver{width:11%}.gh-col-plate{width:15%}.gh-col-status{width:20%}.gh-col-act{width:6%}}.dash-table .badge{padding:2px 8px;font-size:11px}.dash-table .mini-progress{min-width:0}.task-list{flex-direction:column;display:flex}.task-item{align-items:center;gap:var(--spacing-md);padding:12px var(--spacing-xl);border-left:3px solid var(--g300);border-bottom:1px solid var(--g100);color:inherit;text-decoration:none;transition:background-color .12s;display:flex}.task-item:last-child{border-bottom:none}.task-item:hover{background-color:var(--g50)}.task-item.warn{border-left-color:var(--danger)}.task-item.info{border-left-color:var(--info)}.task-item.amber{border-left-color:var(--warning)}.task-item-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--g900)}.task-item-sub{color:var(--g500);font-size:11.5px}.task-count{color:#b91c1c;min-width:24px;height:24px;font-size:12px;font-weight:var(--font-weight-bold);background-color:#fee2e2;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;display:inline-flex}.task-item-link{color:var(--g400);white-space:nowrap;flex-shrink:0;font-size:12px}.mini-progress{align-items:center;gap:8px;min-width:110px;display:flex}.mini-progress .progress-bar{flex:1}.mini-progress-label{color:var(--g500);white-space:nowrap;font-size:11.5px}.rbac-grid{gap:var(--spacing-lg);grid-template-columns:minmax(480px,560px) 1fr;align-items:start;display:grid}.role-row{cursor:pointer}.role-row:hover{background-color:var(--g50)}.role-row.active{background-color:var(--primary-light)}.role-row.active td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.perm-panel-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);border-bottom:1px solid var(--g200);flex-wrap:wrap;padding:14px 20px;display:flex}.perm-summary-pills{flex-shrink:0;gap:8px;display:flex}.perm-summary-pill{background-color:var(--g100);font-size:12.5px;font-weight:var(--font-weight-semibold);color:var(--g700);white-space:nowrap;border-radius:20px;padding:6px 14px}.perm-summary-pill strong{color:var(--primary)}.perm-info-strip{background-color:var(--g50);border-bottom:1px solid var(--g200);grid-template-columns:repeat(5,1fr);gap:16px;padding:14px 20px;display:grid}.perm-info-strip .detail-item span{align-items:center;gap:6px;display:flex}.perm-toolbar{border-bottom:1px solid var(--g200);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 20px;display:flex}.filter-pill{border:1.5px solid var(--g300);font-size:12.5px;font-weight:var(--font-weight-semibold);color:var(--g600);cursor:pointer;white-space:nowrap;background-color:#fff;border-radius:20px;padding:7px 14px;transition:all .12s}.filter-pill:hover{border-color:var(--primary);color:var(--primary)}.filter-pill.active{background-color:var(--primary);border-color:var(--primary);color:#fff}.perm-group-grid{grid-template-columns:repeat(3,1fr);gap:16px;padding:20px;display:grid}.perm-group-card{border:1px solid var(--g200);border-radius:var(--radius);background-color:#fff;overflow:hidden}.perm-group-head{background-color:var(--g50);border-bottom:1px solid var(--g200);cursor:pointer;align-items:center;gap:10px;padding:12px 14px;display:flex}.perm-group-icon{border-radius:var(--radius-md);background-color:var(--primary-light);width:32px;height:32px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.perm-group-title{font-size:13px;font-weight:var(--font-weight-bold);color:var(--g900)}.perm-group-count{color:var(--g500);font-size:11px}.perm-group-chevron{color:var(--g400);margin-left:auto;transition:transform .15s}.perm-group-card.collapsed .perm-group-chevron{transform:rotate(-90deg)}.perm-group-card.collapsed .perm-group-body{display:none}.perm-group-body{padding:10px 14px}.perm-item{cursor:pointer;align-items:flex-start;gap:9px;padding:7px 0;display:flex}.perm-item input[type=checkbox]{flex-shrink:0;margin-top:2px}.perm-item-label{font-size:12.5px;font-weight:var(--font-weight-semibold);color:var(--g900);line-height:1.3}.perm-item-code{color:var(--g400);font-family:Cascadia Code,Consolas,monospace;font-size:11px}.perm-item.is-hidden{display:none}.rbac-footer{border-top:1px solid var(--g200);background-color:#fff;justify-content:flex-end;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;bottom:0}.rbac-unsaved-hint{color:var(--warning);font-size:12.5px;font-weight:var(--font-weight-semibold);align-items:center;gap:6px;margin-right:auto;display:none}.rbac-unsaved-hint.show{display:flex}.rbac-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed;background-color:var(--g300);border-color:var(--g300)}.region-badge{border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.region-badge.region-south{color:#1d4ed8;background:#dbeafe}.region-badge.region-north{color:#92400e;background:#fef3c7}.region-badge.region-central{color:#6d28d9;background:#f3e8ff}.chip-count{color:#1d4ed8;min-width:26px;font-size:12px;font-weight:var(--font-weight-bold);background-color:#dbeafe;border-radius:12px;justify-content:center;align-items:center;padding:3px 10px;display:inline-flex}.img-badge{font-weight:var(--font-weight-bold);color:var(--primary);background-color:var(--primary-light);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.img-badge img{object-fit:cover;width:100%;height:100%;display:block}.img-badge.badge-round{border-radius:50%}.img-badge.badge-square{border-radius:var(--radius-md)}.img-badge.size-xs{width:24px;height:24px;font-size:10px}.img-badge.size-sm{width:28px;height:28px;font-size:11px}.img-badge.size-md{width:38px;height:38px;font-size:14px}.img-badge.size-lg{border-radius:var(--radius);width:64px;height:64px;font-size:20px}.img-badge.size-xl{border-radius:var(--radius);width:96px;height:96px;font-size:28px}.img-badge.tone-0{color:#166534;background-color:#dcfce7}.img-badge.tone-1{color:#115e59;background-color:#ccfbf1}.img-badge.tone-2{color:#155e75;background-color:#cffafe}.img-badge.tone-3{color:#1e40af;background-color:#dbeafe}.img-badge.tone-4{color:#3730a3;background-color:#e0e7ff}.img-badge.tone-5{color:#5b21b6;background-color:#ede9fe}.img-badge.tone-6{color:#86198f;background-color:#fae8ff}.img-badge.tone-7{color:#9f1239;background-color:#ffe4e6}.img-badge.tone-8{color:#92400e;background-color:#fef3c7}.img-badge.tone-9{color:#3f6212;background-color:#ecfccb}.detail-identity{align-items:center;gap:8px;display:inline-flex}.img-badge.product-thumb.is-default{background-color:#fdf6e3;box-shadow:inset 0 0 0 1px #f0e2bd}.rice-bag-art{width:86%;height:86%;display:block}.barcode-preview{border:1px solid var(--g200);background-color:#fff;border-radius:4px;align-items:flex-end;gap:1px;height:44px;padding:4px;display:inline-flex}.barcode-preview span{background-color:var(--g900);width:2px;height:100%;display:block}.barcode-preview span:nth-child(3n){width:3px}.barcode-preview span:nth-child(5n){background-color:var(--g100)}.empty-state{text-align:center;color:var(--g500);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 20px;display:flex}.empty-state-icon{background-color:var(--g100);width:56px;height:56px;color:var(--g400);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-state-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--g700)}.empty-state-sub{font-size:var(--font-size-xs);color:var(--g500);max-width:360px}.state-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 20px;display:flex}.state-error .empty-state-icon{color:var(--danger);background-color:#fee2e2}.skeleton-bar{background:linear-gradient(90deg, var(--g100) 25%, var(--g200) 37%, var(--g100) 63%);background-size:400% 100%;border-radius:4px;height:12px;animation:1.4s infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.loading-spinner{color:var(--primary);animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.page-loading,.section-loading{color:var(--g500);font-size:var(--font-size-sm,13px);justify-content:center;align-items:center;gap:10px;display:flex}.page-loading{padding:64px 24px}.section-loading{padding:24px}.loading-overlay{color:var(--g700);font-size:var(--font-size-sm,13px);z-index:5;border-radius:inherit;background:#ffffffb8;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.btn-loading-content{align-items:center;gap:6px;display:inline-flex}.toast-viewport{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius);min-width:240px;max-width:360px;box-shadow:var(--shadow);font-size:var(--font-size-sm,13px);color:#fff;padding:12px 16px;animation:.15s toast-in}.toast-success{background:#16a34a}.toast-error{background:var(--danger,#dc2626)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn-dropdown{display:inline-block;position:relative}.btn-dropdown>summary{cursor:pointer;list-style:none}.btn-dropdown>summary::-webkit-details-marker{display:none}.btn-dropdown-menu{border:1px solid var(--g200);border-radius:var(--radius);z-index:30;background:#fff;min-width:190px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001a}.btn-dropdown-menu a,.btn-dropdown-menu button{text-align:left;width:100%;font-size:var(--font-size-sm);cursor:pointer;color:var(--g700);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;display:flex}.btn-dropdown-menu a:hover,.btn-dropdown-menu button:hover{background-color:var(--g50)}.btn-dropdown-menu button.danger{color:var(--danger)}.data-table.table-head-accent thead tr{background-color:var(--primary)}.data-table.table-head-accent thead th{color:#fff}@media (width<=1100px){.rbac-grid{grid-template-columns:1fr}.perm-group-grid{grid-template-columns:repeat(2,1fr)}.perm-info-strip{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.perm-group-grid{grid-template-columns:1fr}.perm-info-strip{grid-template-columns:repeat(2,1fr)}}@media (width<=1100px){.kpi-row{grid-template-columns:repeat(3,1fr)}.dash-grid-2,.dash-row-2,.dash-zone-c{grid-template-columns:1fr}}@media (width<=768px){.kpi-row,.totals-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.adv-grid{grid-template-columns:repeat(2,1fr)}.tab-bar,.subtab-bar{-webkit-overflow-scrolling:touch;overflow-x:auto}.status-pair{gap:var(--spacing-md)}.step-indicator,.workflow-bar{-webkit-overflow-scrolling:touch;overflow-x:auto}}.ob-customer-group{border:1px solid var(--g200);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.ob-customer-group-header{background-color:var(--g50);align-items:center;gap:8px;padding:10px 14px;font-weight:700;display:flex}.ob-invoice-group{border-top:1px solid var(--g200);padding:10px 14px}.ob-invoice-group-header{margin-bottom:6px;font-size:13px;font-weight:600}.selection-summary-bar{background-color:var(--primary-light);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--primary);z-index:5;box-shadow:var(--shadow-md,0 4px 12px #00000014);border:1px solid #1a6b3a40;flex-direction:column;gap:10px;margin:12px 0;padding:10px 16px;font-weight:600;display:flex;position:sticky;bottom:12px}.selection-summary-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;display:flex}.selection-summary-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.selected-count-btn{border:1.5px solid var(--primary);color:var(--primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);cursor:pointer;background-color:#fff;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.selected-count-btn:disabled{border-color:var(--g300);color:var(--g400);cursor:default}.ob-row-selected{background-color:var(--primary-light)}.ob-sticky-summary{border:1px solid var(--g200);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--g700);background-color:#fff;flex-wrap:wrap;gap:18px;margin-top:10px;padding:10px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 8px #0000000a}.ob-qty-input.has-error{border-color:var(--danger);background-color:#fef2f2}.ob-qty-error{color:var(--danger);font-size:var(--font-size-xs);margin-top:4px}.ob-row-highlight{outline:2px solid var(--warning);background-color:#fffbeb}.drawer-overlay{z-index:var(--z-modal,1000);background-color:#0f172a59;display:none;position:fixed;inset:0}.drawer-overlay.open{justify-content:flex-end;display:flex}.drawer{width:420px;max-width:92vw;height:100%;box-shadow:var(--shadow-lg,-4px 0 24px #00000026);background-color:#fff;flex-direction:column;animation:.18s ease-out obDrawerSlideIn;display:flex}@keyframes obDrawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--g200);justify-content:space-between;align-items:center;display:flex}.drawer-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.drawer-body{padding:var(--spacing-lg) var(--spacing-xl);flex:1;overflow-y:auto}.drawer-footer{padding:14px var(--spacing-xl);border-top:1px solid var(--g200);justify-content:flex-end;gap:var(--spacing-md);display:flex}.drawer-empty{text-align:center;color:var(--g500);font-size:var(--font-size-sm);padding:40px 10px}.drawer-item{border:1px solid var(--g200);border-radius:var(--radius);margin-bottom:10px;padding:12px 14px}.drawer-item-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.drawer-item-code{font-size:13.5px;font-weight:700}.drawer-item-remove{flex-shrink:0}.drawer-item .detail-grid{grid-template-columns:1fr 1fr;gap:8px 14px}.ob-toast{background-color:var(--g900,#1f2937);color:#fff;border-radius:var(--radius);font-size:var(--font-size-sm);box-shadow:var(--shadow-lg,0 8px 24px #0003);z-index:1100;opacity:0;pointer-events:none;padding:10px 20px;transition:opacity .18s,transform .18s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(12px)}.ob-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.ob-timeline{flex-direction:column;gap:0;display:flex}.ob-timeline-item{border-left:2px solid var(--g200);padding:0 0 20px 26px;position:relative}.ob-timeline-item:last-child{border-left-color:#0000;padding-bottom:0}.ob-timeline-item:before{content:"";background-color:var(--g300);width:12px;height:12px;box-shadow:0 0 0 2px var(--g200);border:2px solid #fff;border-radius:50%;position:absolute;top:2px;left:-7px}.ob-timeline-item.done:before{background-color:var(--primary);box-shadow:0 0 0 2px #1a6b3a40}.ob-timeline-item.current:before{background-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e940}.ob-timeline-item.failed:before{background-color:var(--danger);box-shadow:0 0 0 2px #dc354533}.ob-timeline-item.cancelled:before{background-color:var(--g500);box-shadow:0 0 0 2px var(--g200)}.ob-timeline-item.partial:before{background-color:var(--warning);box-shadow:0 0 0 2px #f59e0b40}.ob-timeline-label{font-size:var(--font-size-sm);color:var(--g900);font-weight:600}.ob-timeline-time{font-size:var(--font-size-xs);color:var(--g500);margin-top:2px}.change-history-item{border-bottom:1px solid var(--g100);padding:14px 16px}.change-history-item:last-child{border-bottom:none}.change-history-meta{font-size:var(--font-size-xs);color:var(--g500);align-items:center;gap:8px;margin-bottom:4px;display:flex}.change-history-action{font-weight:var(--font-weight-bold);font-size:var(--font-size-md);align-items:center;gap:6px;margin-bottom:8px;display:flex}.change-history-action.add{color:var(--success)}.change-history-action.remove{color:var(--danger)}.change-history-field{flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:3px 0;font-size:12.5px;display:flex}.change-history-field-label{min-width:150px;color:var(--g500);font-weight:var(--font-weight-semibold)}.change-history-old{color:var(--g500);text-decoration:line-through}.change-history-arrow{color:var(--g400)}.change-history-new{color:var(--primary);font-weight:var(--font-weight-bold)}.image-picker{align-items:flex-start;gap:var(--spacing-lg);display:flex}.image-picker-preview{flex-shrink:0}.image-picker-body{gap:var(--spacing-sm);flex-direction:column;min-width:0;display:flex}.image-picker-input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.image-picker-input:focus-visible~.header-actions .btn:first-child{outline:2px solid var(--primary);outline-offset:2px}.work-queue-view-bar{flex-direction:column;gap:8px;margin:0 0 12px;display:flex}.work-queue-chips{flex-wrap:wrap;gap:6px;display:flex}.work-queue-banner{flex-wrap:wrap;align-items:center;gap:10px;margin:0;display:flex}.work-queue-banner>span{flex:1;min-width:0}.dash-header{flex-wrap:wrap;align-items:center;gap:16px}.dash-quick-actions{flex-wrap:wrap;gap:8px;display:flex}.attention-strip{flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;margin-bottom:18px;display:flex}.attention-chip{border:1px solid var(--g200);height:34px;color:var(--g700);white-space:nowrap;background-color:#fff;border-radius:17px;align-items:center;gap:7px;padding:0 14px;font-size:13px;text-decoration:none;transition:border-color .12s,background-color .12s;display:inline-flex}.attention-chip strong{color:var(--g900);font-size:14px}.attention-chip:hover{border-color:var(--primary-mid)}.attention-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.attention-chip.is-exception{color:#92400e;background-color:#fffbeb;border-color:#f5c46b}.attention-chip.is-exception strong{color:#92400e}.attention-chip.is-draft{height:30px;color:var(--g500);background-color:#0000;border-style:dashed;padding:0 12px;font-size:12.5px}.attention-chip.is-draft strong{color:var(--g700);font-size:13px}.attention-clear{color:var(--primary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.dash-layout{grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:start;gap:18px;margin-bottom:18px;display:grid}.dash-stack{flex-direction:column;gap:18px;min-width:0;display:flex}.dash-card{margin-bottom:0}.dash-card-header{border-bottom:1px solid var(--g100);padding:14px 20px 12px}.dash-card-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.dash-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--g900);align-items:center;gap:8px;display:inline-flex}.dash-card-sub{color:var(--g500);margin-top:2px;font-size:12px}.dash-empty{color:var(--primary-mid);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;display:flex}.dash-empty p{color:var(--g500);margin:0;font-size:13px}.dash-empty-compact{padding:16px 20px}.dq-rows{margin:0;padding:6px 0;list-style:none}.dq-row{border-radius:var(--radius);grid-template-columns:28px minmax(160px,240px) minmax(0,1fr) 168px;align-items:center;column-gap:14px;min-height:58px;margin:0 8px;padding:8px 12px;transition:background-color .12s;display:grid}.dq-row+.dq-row{box-shadow:inset 0 1px 0 var(--g100)}.dq-row:hover{background-color:var(--g50)}.dq-row.is-warning{box-shadow:inset 3px 0 0 var(--warning);background-color:#fffbeb}.dq-doc{flex-direction:column;min-width:0;display:flex}.dq-number{font-size:13.5px;font-weight:var(--font-weight-bold);color:var(--g900);white-space:nowrap;text-decoration:none}.dq-number:hover{color:var(--primary);text-decoration:underline}.dq-customer{color:var(--g500);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.dq-reason{min-width:0;color:var(--g700);align-items:flex-start;gap:6px;font-size:13px;display:flex}.dq-row.is-warning .dq-reason{color:#92400e}.dq-reason-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dq-reason-icon{flex-shrink:0;margin-top:2px}.dq-action{justify-content:flex-end;display:flex}.dq-next{white-space:nowrap;width:100%}.dq-footer{border-top:1px solid var(--g100);color:var(--g500);margin:0;padding:10px 20px 14px;font-size:12px}.backlog{flex-direction:column;gap:4px;padding:10px 12px 14px;display:flex}.backlog-row{border-radius:var(--radius);color:inherit;grid-template-columns:112px minmax(0,1fr) 32px;align-items:center;gap:10px;padding:8px;text-decoration:none;display:grid}.backlog-row:hover{background-color:var(--g50)}.backlog-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.backlog-label{color:var(--g700);font-size:13px}.backlog-track{background-color:var(--g100);border-radius:6px;height:12px;overflow:hidden}.backlog-fill{background-color:var(--primary-mid);border-radius:0 6px 6px 0;height:100%;display:block}.backlog-value{font-size:15px;font-weight:var(--font-weight-bold);color:var(--g900);text-align:right;font-variant-numeric:tabular-nums}.backlog-row.is-zero .backlog-value{color:var(--g400)}.backlog-exception{border-radius:var(--radius);color:#92400e;background-color:#fffbeb;align-items:flex-start;gap:6px;margin:6px 8px 0;padding:8px 10px;font-size:12.5px;line-height:1.45;text-decoration:none;display:flex}.backlog-exception svg{flex-shrink:0;margin-top:2px}.recent-list{margin:0;padding:6px 8px;list-style:none}.recent-item{border-radius:var(--radius);color:inherit;grid-template-columns:16px auto auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 12px;text-decoration:none;display:grid}.recent-item:hover{background-color:var(--g50)}.recent-icon{color:var(--g400);display:flex}.recent-label{font-size:13px;font-weight:var(--font-weight-semibold);color:var(--g900);white-space:nowrap}.recent-sub{color:var(--g500);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.range-switch{border-radius:var(--radius);background-color:var(--g100);padding:3px;display:inline-flex}.range-switch button{border-radius:var(--radius-md);height:28px;color:var(--g500);font-size:12.5px;font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:none;padding:0 12px}.range-switch button.is-active{color:var(--g900);box-shadow:var(--shadow-sm);background-color:#fff}.range-switch button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.activity-body{grid-template-columns:290px minmax(0,1fr);gap:24px;padding:16px 20px 18px;transition:opacity .12s;display:grid}.activity-body.no-chart{grid-template-columns:minmax(0,1fr)}.activity-body.is-refreshing{opacity:.6}.activity-stats{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:14px 16px;display:grid}.activity-body.no-chart .activity-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.activity-stat{flex-direction:column-reverse;justify-content:flex-end;gap:4px;display:flex}.activity-label{color:var(--g500);align-items:center;gap:6px;font-size:12px;line-height:1.35;display:inline-flex}.activity-value{font-size:24px;font-weight:var(--font-weight-extrabold);color:var(--g900);line-height:1.1}.activity-stat.is-zero .activity-value{color:var(--g400)}.activity-stat.is-warning .activity-value,.activity-stat.is-warning .activity-label{color:#b45309}.activity-note{color:var(--g500);grid-column:1/-1;margin:0;font-size:12px}.trend-key{border-radius:2px;flex-shrink:0;width:12px;height:3px;display:inline-block}.trend-chart{min-width:0;position:relative}.trend-chart svg{display:block;overflow:visible}.trend-grid{stroke:var(--g100);stroke-width:1px}.trend-axis{fill:var(--g500);font-variant-numeric:tabular-nums;font-size:11px}.trend-crosshair{stroke:var(--g300);stroke-width:1px}.trend-empty{fill:var(--g400);font-size:12.5px}.trend-tooltip{border:1px solid var(--g200);border-radius:var(--radius);min-width:170px;box-shadow:var(--shadow);pointer-events:none;background-color:#fff;padding:8px 10px;font-size:12px;position:absolute;top:0;transform:translate(-50%)}.trend-tooltip-date{font-weight:var(--font-weight-semibold);color:var(--g900);margin-bottom:4px}.trend-tooltip-row{color:var(--g700);grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.trend-tooltip-row strong{color:var(--g900);font-variant-numeric:tabular-nums}@media (width<=1440px){.dash-layout{grid-template-columns:minmax(0,1fr) 320px}.dq-row{grid-template-columns:28px minmax(150px,200px) minmax(0,1fr) 156px}.dq-next{padding-inline:10px}}@media (width<=1180px){.dash-layout,.activity-body{grid-template-columns:minmax(0,1fr)}.activity-stats,.activity-body.no-chart .activity-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=768px){.dash-header{align-items:flex-start}.dash-quick-actions .btn{flex:none;width:auto}}@media (width<=720px){.dq-row{grid-template-columns:28px minmax(0,1fr);row-gap:6px}.dq-reason,.dq-action{grid-column:2}.dq-action{justify-content:flex-start}.dq-next{width:auto}.activity-stats,.activity-body.no-chart .activity-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-title svg{vertical-align:-3px}.report-filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.report-customer{min-width:240px;max-width:360px}.report-filter-hint{color:#b45309;font-size:12px}.report-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:start;gap:18px;margin-bottom:22px;display:grid}.report-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stat-card-link{color:inherit;text-decoration:none;transition:border-color .12s}.stat-card-link:hover{border-color:var(--primary-mid)}.stat-hint{color:var(--g400);margin-top:2px;font-size:11.5px}button.backlog-row,button.backlog-exception{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none}button.backlog-exception{background-color:#fffbeb}.backlog-row.is-selected{background-color:var(--primary-light);box-shadow:inset 3px 0 0 var(--primary)}.backlog-exception.is-selected{box-shadow:inset 3px 0 0 var(--warning)}.report-drafts{flex-wrap:wrap;gap:8px;margin:8px 8px 0;display:flex}button.attention-chip{font:inherit;cursor:pointer}.attention-chip.is-draft.is-selected{border-style:solid;border-color:var(--primary);color:var(--primary)}.report-activity{grid-template-columns:220px minmax(0,1fr)}.report-activity-stats{grid-template-columns:minmax(0,1fr);gap:12px}.report-table-section{margin-bottom:22px}.report-table-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.report-table-head .dq-group-link{margin-left:0}.report-status{flex-wrap:wrap;gap:4px;display:inline-flex}.reason-table{border-collapse:collapse;width:100%;font-size:13px}.reason-table th{font-size:12px;font-weight:var(--font-weight-semibold);color:var(--g500);text-align:left;padding:10px 20px 6px}.reason-table td{border-top:1px solid var(--g100);vertical-align:top;padding:8px 20px}.reason-table .col-num{text-align:right;font-variant-numeric:tabular-nums;width:90px}.reason-bar{background-color:var(--g100);border-radius:2px;height:4px;margin-top:6px;display:block}.reason-bar>span{background-color:#d97706;border-radius:2px;height:100%;display:block}@media (width<=1180px){.report-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.report-activity{grid-template-columns:minmax(0,1fr)}.report-customer{width:100%;min-width:0}}.attention-chip.is-priority{font-weight:var(--font-weight-semibold)}.attention-chip.is-selected{border-color:var(--primary);background-color:var(--primary-light);color:var(--primary-dark);box-shadow:0 0 0 1px var(--primary)}.attention-chip.is-selected strong{color:var(--primary-dark)}.attention-chip.is-exception.is-selected{color:#92400e;background-color:#fef3c7;border-color:#b45309;box-shadow:0 0 0 1px #b45309}.attention-chip.is-exception.is-selected strong{color:#92400e}.attention-chip-note{border-left:1px solid var(--g300);color:var(--g600);align-items:center;gap:3px;margin-left:6px;padding-left:6px;font-size:11.5px;display:inline-flex}.today-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px 16px 14px;display:grid}.today-stat{border:1px solid var(--g200);border-radius:var(--radius);color:inherit;flex-direction:column;gap:2px;padding:8px 10px;text-decoration:none;display:flex}a.today-stat:hover{background-color:var(--g50)}.today-label{color:var(--g600);font-size:12px}.today-value{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--g900)}.today-stat.is-good .today-value{color:#15803d}.today-stat.is-warning{border-color:#fcd34d}.today-stat.is-warning .today-value{color:#b45309}.today-stat.is-critical{border-color:#fca5a5}.today-stat.is-critical .today-value{color:#b91c1c}.today-note{color:#92400e;grid-column:1/-1;align-items:flex-start;gap:6px;margin:2px 0 0;font-size:12px;display:flex}.activity-delta{color:var(--g500);font-size:11px}.report-result-split{border-top:1px dashed var(--g200);gap:8px;padding-top:8px;display:grid}.active-filters{flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 10px;display:flex}.active-filters-label{font-size:var(--font-size-sm);color:var(--g500);font-weight:var(--font-weight-semibold)}.active-filters-list{margin:0;padding:0;list-style:none;display:contents}.filter-chip{max-width:100%;min-height:26px;font-size:var(--font-size-sm);border:1px solid;border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 10px;line-height:1.3;display:inline-flex}.filter-chip-text{overflow-wrap:anywhere}.filter-chip-text strong{font-weight:var(--font-weight-semibold)}.filter-chip-entity{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.filter-chip-status{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.filter-chip-discount{color:#6b21a8;background:#faf5ff;border-color:#e9d5ff}.filter-chip-date{color:#92400e;background:#fffbeb;border-color:#fde68a}.filter-chip-search{background:var(--g50);border-color:var(--g200);color:var(--g700)}.filter-chip-remove{width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.filter-chip-remove:hover{background:#00000014}.filter-chip-remove:focus-visible{outline-offset:1px;outline:2px solid}.active-filters-clear{min-height:26px}.filter-footnote{font-size:var(--font-size-sm);color:var(--g500);margin:-4px 0 10px}.search-select{min-width:0;position:relative}.search-select>input{text-overflow:ellipsis;width:100%;padding-right:52px}.search-select-icons{color:var(--g500);pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.search-select-clear{width:20px;height:20px;color:var(--g500);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:28px;transform:translateY(-50%)}.search-select-clear:hover{background:var(--g100)}.search-select-popover{z-index:var(--z-select-popover);overscroll-behavior:contain;border:1px solid var(--g200);border-radius:var(--radius);max-width:calc(100vw - 16px);max-height:320px;box-shadow:var(--shadow);background:#fff;position:fixed;overflow:auto}.search-select-list{margin:0;padding:4px 0;list-style:none}.search-select-option{cursor:pointer;font-size:var(--font-size-base);flex-direction:column;gap:1px;padding:6px 12px;display:flex}.search-select-option.is-active{background:var(--g100)}.search-select-option.is-selected .search-select-label{font-weight:var(--font-weight-semibold);color:var(--primary)}.search-select-hint{color:var(--g500);font-size:12px}.search-select-status:not(:empty){font-size:var(--font-size-sm);color:var(--g500);padding:6px 12px}.search-select-more{margin:4px 12px 8px;display:block}.pkg-breakdown{flex-direction:column;gap:4px;min-width:280px;font-size:12.5px;line-height:1.35;display:flex}.pkg-breakdown-title{font-size:11.5px;font-weight:var(--font-weight-semibold);color:var(--g500);text-transform:uppercase;letter-spacing:.02em}.pkg-breakdown-row{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.pkg-breakdown-icon{color:var(--primary);flex:none}.pkg-breakdown-main{flex:180px;min-width:0}.pkg-breakdown-qty{flex:none;gap:4px;display:inline-flex}.pkg-breakdown-total{border-top:1px dashed var(--g200);padding-top:4px}.pkg-breakdown-warning{color:#b45309;flex-basis:100%}.pkg-breakdown-weight{color:var(--g500);font-weight:var(--font-weight-normal)}.pkg-chip{font-size:11.5px;font-weight:var(--font-weight-semibold);white-space:nowrap;border-radius:999px;padding:1px 7px;display:inline-block}.pkg-chip-paid{background:var(--primary-light);color:var(--primary)}.pkg-chip-free{color:#92400e;background:#fef3c7}.pkg-chip-zero{background:var(--g100);color:var(--g500)}.paid-free-cell{white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.data-table tbody tr:has(+tr.so-line-sub-row){border-bottom-color:#0000}.data-table tbody tr.so-line-sub-row:hover{background-color:#0000}.data-table .so-entry-name{word-break:normal;overflow-wrap:normal;min-width:200px}.data-table .so-entry-paid{min-width:120px}.line-composition{flex-wrap:wrap;align-items:flex-start;gap:8px 32px;display:flex}.print-page{background:var(--g100,#f1f3f5);min-height:100svh;padding:24px 16px 48px}.print-toolbar{align-items:center;gap:12px;max-width:860px;margin:0 auto 16px;display:flex}.print-toolbar .print-toolbar-title{color:var(--g700,#495057);font-weight:600}.print-doc{color:#111;background:#fff;max-width:860px;margin:0 auto;padding:40px 48px;font-size:13px;line-height:1.5;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.print-doc-header{border-bottom:2px solid #222;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.print-doc-system-name{letter-spacing:.02em;color:#444;text-transform:uppercase;font-size:12px;font-weight:700}.print-doc-title{letter-spacing:.02em;margin:4px 0 0;font-size:20px;font-weight:800}.print-doc-meta{text-align:right;font-size:13px}.print-doc-status{letter-spacing:.03em;text-transform:uppercase;border:1.5px solid #444;border-radius:4px;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.print-doc-status.is-draft{color:#8a6d00;background:#fff8e1;border-color:#8a6d00}.print-doc-status.is-confirmed{color:#1b5e20;background:#e8f5e9;border-color:#1b5e20}.print-doc-status.is-cancelled{color:#b71c1c;background:#ffebee;border-color:#b71c1c}.print-doc-status.is-successful{color:#1b5e20;background:#e8f5e9;border-color:#1b5e20}.print-doc-status.is-partial{color:#8a6d00;background:#fff8e1;border-color:#8a6d00}.print-doc-status.is-failed{color:#b71c1c;background:#ffebee;border-color:#b71c1c}.print-doc-section{margin-bottom:16px}.print-doc-section h2{text-transform:uppercase;letter-spacing:.03em;color:#333;border-bottom:1px solid #ccc;margin:0 0 8px;padding-bottom:4px;font-size:13px;font-weight:700}.print-doc-grid{grid-template-columns:1fr 1fr;gap:6px 24px;font-size:13px;display:grid}.print-doc-grid dt{color:#555;white-space:nowrap;flex-shrink:0;display:inline}.print-doc-grid dd{margin:0 0 0 6px;font-weight:600;display:inline}.print-doc-grid>div{gap:4px;display:flex}.print-doc table{border-collapse:collapse;width:100%;font-size:12px}.print-doc table th,.print-doc table td{text-align:left;border:1px solid #999;padding:5px 6px}.print-doc table thead th{background:#eee;font-weight:700}.print-doc table td.num{text-align:right;white-space:nowrap}.print-doc-totals{width:280px;margin-top:10px;margin-left:auto;font-size:13px}.print-doc-totals-row{justify-content:space-between;padding:3px 0;display:flex}.print-doc-totals-row.is-grand{border-top:1.5px solid #333;margin-top:4px;padding-top:6px;font-size:15px;font-weight:800}.print-doc.print-doc-wide{max-width:960px}.print-doc-wide table{font-size:11.5px}.print-doc-banner{border:2px solid #111;border-radius:4px;flex-direction:column;gap:2px;margin:0 0 14px;padding:8px 12px;font-size:12px;display:flex}.print-doc-banner strong{letter-spacing:.02em;font-size:15px}.print-doc-banner.is-draft{color:#7c2d12;border-style:dashed;border-color:#b45309}.print-doc-banner.is-cancelled{color:#7f1d1d;border-color:#b91c1c}.print-doc-hint{color:#555;margin:4px 0 0;font-size:11px}.print-doc-disclaimer{color:#333;border-left:3px solid #999;margin:8px 0 0;padding:6px 10px;font-size:11.5px}.print-cell-sub{color:#555;font-size:10.5px}.print-signatures.print-signatures-compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.print-signatures-compact .print-signature-hint{margin-bottom:36px}.print-doc-audit{border-top:1px solid #ddd;gap:2px;padding-top:6px;display:grid}.print-doc-subtitle{color:#444;margin-top:2px;font-size:12px}.print-doc-grid>.print-doc-grid-wide{grid-column:1/-1}.print-doc table tfoot td{color:#333;border-top:1px solid #999;padding-top:6px;font-size:12px}.print-source{border:1px solid #ccc;border-radius:4px;padding:8px 12px}.print-source h2{font-size:11px}.print-source .print-doc-grid{font-size:12px}.print-history{margin:0;padding:0;font-size:12px;list-style:none}.print-history li{border-bottom:1px dotted #ccc;grid-template-columns:120px 150px minmax(0,1fr);gap:10px;padding:3px 0;display:grid}.print-history li.is-current{font-weight:700}.print-history-summary{color:#333;margin:6px 0 0;font-size:12px}.print-signatures{text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px;display:grid}.print-signatures-2{grid-template-columns:repeat(2,minmax(0,1fr))}.print-signature{min-height:96px}.print-signature-role{text-transform:uppercase;font-size:12px;font-weight:700}.print-signature-hint{color:#555;font-size:11px;font-style:italic}.print-signature-name{margin-top:56px;font-size:12px}.print-format-switch{gap:6px;display:inline-flex}.print-doc-footer{color:#666;margin-top:28px;font-size:11px}.print-labels-mode-toggle{gap:6px;display:flex}.print-labels-qty-input{color:var(--g600,#495057);align-items:center;gap:6px;font-size:12.5px;display:flex}.print-labels-qty-input input{border:1px solid var(--g300,#ced4da);border-radius:4px;width:64px;padding:4px 6px}.print-labels-item-config{border:1px solid var(--g200,#dee2e6);background:#fff;border-radius:6px;max-width:1100px;margin:0 auto 16px;padding:12px 16px}.print-labels-item-config-grid{flex-direction:column;gap:8px;display:flex}.print-labels-item-config-row{border-bottom:1px solid var(--g100,#f1f3f5);color:var(--g700,#495057);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:6px 0;font-size:12.5px;display:flex}.print-labels-item-config-row:last-child{border-bottom:none}.print-labels-item-config-name{min-width:220px;font-weight:600}.print-labels-item-config-fields{align-items:center;gap:16px;display:flex}.print-labels-item-config-fields label{align-items:center;gap:6px;display:flex}.print-labels-item-config-fields input{border:1px solid var(--g300,#ced4da);border-radius:4px;width:72px;padding:3px 6px}.print-labels-grid{gap:10px;max-width:1100px;margin:0 auto;display:grid}.print-labels-grid.size-sm{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.print-labels-grid.size-md{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.print-labels-grid.size-lg{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.print-label{color:#111;break-inside:avoid;background:#fff;border:1.5px dashed #999;border-radius:4px;padding:10px;font-size:11px;line-height:1.4}.print-label-barcode{text-align:center;margin-bottom:6px}.print-label-barcode svg{width:100%;max-height:44px}.print-label-barcode-text{letter-spacing:.04em;color:#444;font-size:10px}.print-label-title{margin-bottom:2px;font-size:12.5px;font-weight:800}.print-label-line{color:#333}.print-label-seq{text-align:right;margin-top:6px;font-weight:700}@media print{@page{size:A4;margin:14mm 12mm}html,body{background:#fff!important}.print-toolbar,.print-labels-item-config,.app-shell-topbar,.sidebar{display:none!important}.print-page{background:#fff!important;padding:0!important}.print-doc{max-width:none;padding:0;box-shadow:none!important}.print-doc table thead{display:table-header-group}.print-doc table tfoot{display:table-row-group}.print-doc table tr,.print-keep,.print-signatures,.print-history li{break-inside:avoid;page-break-inside:avoid}.print-doc-section h2{break-after:avoid;page-break-after:avoid}}.price-line{scrollbar-width:thin;align-items:center;padding:112px 12px;display:flex;overflow-x:auto}.price-line-segment{background:var(--g300);flex:32px;min-width:24px;height:2px}.price-line-point{flex:none;width:190px;height:16px;position:relative}.price-line-point:before,.price-line-today:before{content:"";background:var(--g300);height:2px;position:absolute;inset:50% 0 auto;transform:translateY(-50%)}.price-line-dot{border:2px solid var(--g400);background:var(--g100);border-radius:50%;width:14px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.price-line-point--past .price-line-dot{border-color:var(--g400);background:var(--g200)}.price-line-point--current .price-line-dot{border-color:var(--success);background:var(--success);width:16px;height:16px;box-shadow:0 0 0 4px var(--primary-light)}.price-line-point--future .price-line-dot{border-color:var(--info);background:#fff;border-style:dashed}.price-line-label{text-align:center;flex-direction:column;gap:2px;width:max-content;max-width:190px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.price-line-label--above{bottom:calc(100% + 10px)}.price-line-label--below{top:calc(100% + 10px)}.price-line-label-date{font-size:var(--font-size-xs);color:var(--g500)}.price-line-label-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.03em;color:var(--g500)}.price-line-point--current .price-line-label-badge{color:var(--primary-dark)}.price-line-point--future .price-line-label-badge{color:var(--info)}.price-line-label-price{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--g900)}.price-line-point--past .price-line-label-price{color:var(--g500);font-weight:var(--font-weight-semibold)}.price-line-label-meta{font-size:var(--font-size-xs);color:var(--g500);line-height:1.5}.price-line-today{flex:none;width:150px;height:16px;position:relative}.price-line-today-tick{border-left:2px dashed var(--success);height:28px;position:absolute;top:-6px;left:50%}.price-line-today-label{white-space:nowrap;width:150px;color:var(--success);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.price-line-today-caption{white-space:normal;text-align:center;font-weight:var(--font-weight-normal);color:var(--g500)}.price-line-end{color:var(--g400);flex:none;padding-left:4px;font-size:18px;line-height:1}.price-line--sm{padding:112px 8px}.price-line--sm .price-line-label{max-width:190px}.price-line--sm .price-line-label-price{font-size:var(--font-size-sm)}.price-line-end--bounded{width:120px;font-size:var(--font-size-xs);line-height:1.5}.dialog:has(#price-update-form,#edit-period-form){flex-direction:column;width:min(880px,95vw);max-height:90dvh;display:flex;overflow:hidden}.dialog:has(#price-update-form,#edit-period-form)>.modal-body{min-height:0;overflow-y:auto}:is(.dialog:has(#price-update-form,#edit-period-form)>.modal-header,.dialog:has(#price-update-form,#edit-period-form)>.modal-footer){flex-shrink:0}@media (width<=600px){#price-update-form .form-grid,#edit-period-form .form-grid{grid-template-columns:minmax(0,1fr)}#price-update-form .col-span-2,#edit-period-form .col-span-2{grid-column:auto}#price-update-form .form-grid>div:empty{display:none}}.price-summary-header{background:var(--g50);border:1px solid var(--g200);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.price-summary-header-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg)}.price-summary-header-amounts{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.price-summary-header-amounts>div{flex-direction:column;gap:2px;display:flex}.price-summary-header-amounts strong{font-size:var(--font-size-md)}.price-schedule-preview{border:1px solid var(--g200);border-radius:var(--radius);background:var(--g50);margin-top:16px;padding:12px 14px}.price-schedule-preview-title{font-size:var(--font-size-md);margin:0 0 4px}.price-schedule-checklist{font-size:var(--font-size-sm);color:var(--g700);flex-direction:column;gap:4px;margin:8px 0 4px;padding-left:18px;display:flex}.price-confirm-checkbox{border:1px solid var(--warning);border-radius:var(--radius);font-size:var(--font-size-sm);cursor:pointer;background:#f59e0b14;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 12px;font-weight:400;display:flex}.price-confirm-checkbox input{margin-top:3px}*{box-sizing:border-box}html,body,#root{min-height:100svh;margin:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--g900);background:var(--g50)}.login-page{color:#132033;background:radial-gradient(circle at 12% 14%,#0f8f8329,#0000 42%),radial-gradient(circle at 90% 85%,#ff884c2e,#0000 46%),linear-gradient(140deg,#f7fbff,#fffaf3);place-items:center;min-height:100svh;padding:clamp(16px,4vw,32px);font-family:Be Vietnam Pro,Segoe UI,Tahoma,sans-serif;display:grid}.login-shell{background:#ffffffeb;border:1px solid #ffffffad;border-radius:24px;grid-template-columns:1.12fr .88fr;width:min(100%,920px);display:grid;overflow:hidden;box-shadow:0 18px 48px #13203324}.login-brand-panel{color:#f4fffd;background:linear-gradient(150deg,#0f8f83f2,#0b756bf2);flex-direction:column;justify-content:space-between;gap:20px;padding:clamp(28px,5vw,48px);display:flex;position:relative}.login-brand-tag{letter-spacing:.08em;text-transform:uppercase;background:#ffffff2e;border-radius:999px;width:fit-content;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.login-brand-title{margin:14px 0 12px;font-family:Sora,Be Vietnam Pro,sans-serif;font-size:clamp(28px,4vw,38px);line-height:1.2}.login-brand-note{color:#f4fffdeb;max-width:38ch;margin:0;font-size:15px;line-height:1.7}.login-brand-foot{color:#f4fffdd1;font-size:13px}.login-form-panel{align-items:center;padding:clamp(26px,5vw,44px);display:flex}.login-form{width:100%}.login-form-title{margin:0 0 8px;font-family:Sora,Be Vietnam Pro,sans-serif;font-size:clamp(24px,3.8vw,30px)}.login-form-sub{color:#607085;margin:0 0 24px;font-size:14px;line-height:1.65}.login-field{margin-bottom:16px}.login-field label{margin-bottom:8px;font-size:14px;font-weight:600;display:inline-block}.login-field input{width:100%;height:48px;font:inherit;color:#132033;background:#fff;border:1px solid #121e331f;border-radius:14px;padding:0 14px}.login-field input:focus{border-color:#0f8f83;outline:none;box-shadow:0 0 0 4px #0f8f8338}.login-error{color:#b91c1c;background:#fef2f2;border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:13.5px;line-height:1.5}.btn-login{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0f8f83,#0b756b);border:0;border-radius:14px;width:100%;height:50px;font:600 15px/1 Be Vietnam Pro,sans-serif;box-shadow:0 10px 24px #0f8f8342}.btn-login:disabled{opacity:.65;cursor:not-allowed}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:200px}}
