:root{color:#1f2937;background-color:#f3f4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}:root{--page-bg:#f0f2f5;--surface:#fff;--border:#e8e9ef;--text:#1f2937;--text-muted:#6b7280;--accent:#2563eb;--accent-soft:#2563eb1a;--sidebar-w:248px;--sidebar-collapsed:76px;--toolbar-h:56px;--chrome-tabs-h:38px;--radius:10px;--shadow-soft:0 1px 3px #1018280f, 0 1px 2px #1018280a}*,:before,:after{box-sizing:border-box}.app-layout{background:var(--page-bg);min-height:100vh;color:var(--text);display:flex}.sidebar-shell{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);z-index:30;flex-direction:column;flex-shrink:0;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-shell.collapsed{width:var(--sidebar-collapsed)}.sidebar-brand{border-bottom:1px solid var(--border);min-height:var(--toolbar-h);align-items:center;gap:10px;padding:16px 14px;display:flex}.brand-logo-img{object-fit:contain;background:#fff;border:1px solid #dbe5f1;border-radius:10px;flex-shrink:0}.brand-logo-img--sidebar{width:38px;height:38px}.brand-logo-img--toolbar{width:30px;height:30px}.brand-logo-img--login{width:44px;height:44px}.sidebar-brand-mark{color:#fff;background:linear-gradient(145deg,#3b82f6,#1d4ed8);border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:.95rem;font-weight:700;display:grid}.sidebar-brand-text strong{font-size:.92rem;line-height:1.25;display:block}.sidebar-brand-text small{color:var(--text-muted);font-size:.72rem}.sidebar-shell.collapsed .sidebar-brand-text{display:none}.sidebar-nav{flex-direction:column;flex:1;gap:0;padding:12px 10px 16px;display:flex;overflow-y:auto}.nav-section{flex-direction:column;gap:2px;display:flex}.nav-section+.nav-section{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.nav-section-title{letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin:0 0 8px;padding:0 12px 2px;font-size:.65rem;font-weight:700;line-height:1.2}.nav-section-title-collapsed{background:linear-gradient(90deg, transparent, var(--border) 15%, var(--border) 85%, transparent);border:none;border-radius:1px;align-self:center;width:32px;height:1px;margin:6px 0 8px;display:block}.nav-section--attributes{background:linear-gradient(#f1f5f9a6 0%,#fff0 100%);border-radius:10px;padding:2px 0 4px}.sidebar-shell.collapsed .nav-section--attributes{background:0 0;padding:0}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group-toggle{color:#9ca3af;width:100%;font:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:8px 12px 6px;font-size:.68rem;font-weight:700;transition:background .15s,color .15s;display:flex}.nav-group-toggle:hover:not(.nav-group-toggle--open-locked){color:#6b7280;background:#f3f4f6}.nav-group-toggle--open-locked{cursor:default}.nav-group-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-group-toggle-label{text-align:left;flex:1}.nav-group-chevron{color:currentColor;opacity:.9;flex-shrink:0;place-items:center;transition:transform .2s;display:grid;transform:rotate(-90deg)}.nav-group-chevron svg{width:16px;height:16px}.nav-group-chevron-open{transform:rotate(0)}.nav-item.nav-sub{padding-left:22px;font-size:.82rem;font-weight:450}.sidebar-shell.collapsed .nav-item.nav-sub{padding-left:10px}.nav-item{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:#f3f4f6}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-icon{color:currentColor;opacity:.92;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.nav-icon svg{width:20px;height:20px}.sidebar-shell.collapsed .nav-item{justify-content:center;padding:10px}.sidebar-shell.collapsed .nav-label{display:none}.main-panel{min-width:0;margin-left:var(--sidebar-w);flex-direction:column;flex:1;display:flex}.sidebar-shell.collapsed+.main-panel{margin-left:var(--sidebar-collapsed)}.top-toolbar{height:var(--toolbar-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-soft);top:0;right:0;left:var(--sidebar-w);z-index:25;flex-shrink:0;align-items:center;gap:12px;padding:0 18px;display:flex;position:fixed}.sidebar-shell.collapsed+.main-panel .top-toolbar{left:var(--sidebar-collapsed)}.chrome-tabs-strip{top:var(--toolbar-h);left:var(--sidebar-w);height:var(--chrome-tabs-h);z-index:24;background:#dee1e6;border-bottom:1px solid #cdd0d6;flex-shrink:0;align-items:flex-end;gap:2px;padding:0 6px;display:flex;position:fixed;right:0}.sidebar-shell.collapsed+.main-panel .chrome-tabs-strip{left:var(--sidebar-collapsed)}.chrome-tabs-scroll{scrollbar-width:thin;flex:1;align-items:flex-end;gap:2px;min-width:0;padding-bottom:0;display:flex;overflow:auto hidden}.chrome-tabs-scroll::-webkit-scrollbar{height:4px}.chrome-tabs-scroll::-webkit-scrollbar-thumb{background:#0003;border-radius:999px}.chrome-tab-wrap{background:0 0;border-radius:8px 8px 0 0;flex-shrink:0;align-items:stretch;max-width:min(224px,38vw);display:flex}.chrome-tab-wrap--active{background:var(--surface);box-shadow:0 -1px 0 var(--surface) inset}.chrome-tab-wrap:not(.chrome-tab-wrap--active) .chrome-tab:hover{background:#ffffff85}.chrome-tab{cursor:pointer;min-width:0;color:var(--text);background:0 0;border:none;align-items:center;gap:6px;padding:6px 4px 6px 14px;font-size:.78rem;font-weight:500;display:inline-flex}.chrome-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chrome-tab--active .chrome-tab-label{color:var(--text);font-weight:600}.chrome-tab:not(.chrome-tab--active) .chrome-tab-label{color:var(--text-muted)}.chrome-tab-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chrome-tab-close{width:22px;color:var(--text-muted);cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-self:center;margin:0 4px 0 0;padding:0;font-size:1rem;line-height:1}.chrome-tab-wrap:hover .chrome-tab-close{opacity:1}.chrome-tab-close:hover{color:var(--text);background:#00000014}.chrome-tab-add{color:#334155;cursor:pointer;background:#ffffff8c;border:1px solid #c7cad1;border-radius:8px 8px 0 0;width:30px;height:28px;margin:0 2px 4px 6px;font-size:1.15rem;line-height:1}.chrome-tab-add:hover:not(:disabled){background:#ffffffe6}.chrome-tab-add:disabled{opacity:.45;cursor:not-allowed}.menu-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:40px;height:38px;color:var(--text-muted);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.menu-toggle:hover{color:var(--text);background:#f9fafb;border-color:#d1d5db}.toolbar-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.notify-btn{width:40px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid;position:relative}.notify-btn:hover{color:var(--text);background:#f3f4f6}.notify-wrap{position:relative}.notify-badge{color:#fff;background:#ef4444;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;display:grid;position:absolute;top:4px;right:4px}.notify-panel{border:1px solid var(--border);z-index:60;background:#fff;border-radius:10px;width:360px;max-width:min(92vw,360px);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 28px #0f172a24}.notify-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.notify-list{max-height:320px;overflow-y:auto}.notify-item{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #f1f5f9;gap:4px;width:100%;padding:10px 12px;display:grid}.notify-item:hover{background:#f8fafc}.notify-item.read{opacity:.65}.notify-item-title{font-size:.82rem;font-weight:600}.notify-item-detail{color:#64748b;font-size:.76rem}.notify-item.warning .notify-item-title{color:#b91c1c}.notify-item.info .notify-item-title{color:#1d4ed8}.notify-item.success .notify-item-title{color:#047857}.user-box{border:1px solid var(--border);background:#fafafa;border-radius:999px;align-items:center;gap:10px;padding:4px 8px 4px 4px;display:flex}.user-avatar{color:#fff;background:linear-gradient(145deg,#6366f1,#4338ca);border-radius:50%;place-items:center;width:32px;height:32px;font-size:.75rem;font-weight:700;display:grid}.user-meta{line-height:1.15}.user-meta span{color:var(--text);font-size:.8125rem;font-weight:600;display:block}.user-meta small{color:var(--text-muted);font-size:.7rem}.page-inner{padding:calc(var(--toolbar-h) + 18px) 22px 32px;flex-direction:column;flex:1;gap:16px;display:flex;overflow-y:auto}.main-panel--rental-workspace .page-inner{padding-top:calc(var(--toolbar-h) + var(--chrome-tabs-h) + 18px)}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-title-block h1{margin:0 0 4px;font-size:1.375rem;font-weight:600}.page-title-block p{color:var(--text-muted);margin:0;font-size:.875rem}.breadcrumb{color:var(--text-muted);margin-bottom:4px;font-size:.75rem}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:.8125rem;font-weight:600;box-shadow:0 1px 2px #2563eb33}.btn-primary:hover{filter:brightness(1.05)}.btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:9px 16px;font-size:.8125rem;font-weight:600;box-shadow:0 1px 2px #dc262640}.btn-danger:hover{filter:brightness(1.06)}.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:9px 14px;font-size:.8125rem;font-weight:600}.btn-ghost:hover{background:#f9fafb}.status-line{margin:4px 0 0;font-size:.8125rem;font-weight:600}.status-line.pending{color:var(--text-muted)}.status-line.flash{color:var(--accent)}.metrics-overview{flex-direction:column;gap:22px;padding:20px 22px 22px;display:flex}.metrics-intro{margin:0;line-height:1.55}.metrics-block{flex-direction:column;gap:12px;display:flex}.metrics-block__title{letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:0;font-size:.75rem;font-weight:700}.metrics-block__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;display:flex}.inventory-audit-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.inventory-audit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.inventory-audit-card{min-height:116px;box-shadow:none;padding:16px}.inventory-audit-card--store{background:linear-gradient(#fff 0%,#f0fdf9 100%);border-color:#a7f3d0}.inventory-audit-card--store strong{color:#047857}.inventory-audit-check{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px;display:flex}.inventory-audit-check__input{color:#475569;align-items:center;gap:8px;margin:0;font-size:.8125rem;font-weight:600;display:inline-flex}.inventory-audit-check__input input{width:176px;min-width:0;padding:8px 10px;font-size:.875rem}.inventory-audit-result{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex:240px;align-items:center;min-height:38px;padding:8px 12px;font-size:.8125rem;display:flex}.inventory-audit-result--ok{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.inventory-audit-result--warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.inventory-audit-table{max-height:280px}.inventory-code-list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;display:flex}.inventory-code-filter{flex-wrap:wrap;gap:8px;display:flex}.inventory-code-table{max-height:420px}.date-range-filter{background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 16px;display:flex}.date-range-filter__label{color:#334155;white-space:nowrap;font-size:.8125rem;font-weight:600}.date-range-filter label{color:#64748b;align-items:center;gap:8px;margin:0;font-size:.8125rem;font-weight:500;display:inline-flex}.date-range-filter label span{white-space:nowrap}.date-range-filter input[type=date]{min-width:148px;padding:7px 10px;font-size:.8125rem;line-height:1.25}.date-range-filter .btn-ghost{margin-left:2px}.date-range-filter__summary{color:#475569;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:999px;margin-left:auto;padding:6px 12px;font-size:.8125rem;font-weight:600}.content-filter-bar{background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 16px;display:flex}.content-filter-bar__label{color:#334155;white-space:nowrap;font-size:.8125rem;font-weight:600}.content-filter-bar__search{flex:240px;min-width:200px;padding:7px 12px;font-size:.8125rem}.content-filter-bar__field{color:#64748b;align-items:center;gap:8px;margin:0;font-size:.8125rem;font-weight:500;display:inline-flex}.content-filter-bar__field select{min-width:148px;padding:7px 10px;font-size:.8125rem}.content-filter-bar__summary{color:#475569;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:999px;margin-left:auto;padding:6px 12px;font-size:.8125rem;font-weight:600}.metrics-block--table{gap:14px}.history-summary-stats .stat-card strong,.catalog-summary-stats .stat-card strong{font-size:clamp(1.1rem,1.5vw,1.35rem)}.content-filter-bar--catalog .content-filter-bar__search--code,.content-filter-bar--catalog .content-filter-bar__search--attr{flex:180px;min-width:160px}.content-filter-bar__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.content-filter-bar__actions .import-label{margin:0}.dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.payment-revenue-stats{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.payment-revenue-stats:has(.stat-card--total){grid-template-columns:repeat(3,minmax(0,1fr))}.payment-revenue-stats:not(:has(.stat-card--total)){grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card--payment{border-width:1px}.stat-card--cash{background:linear-gradient(#fff 0%,#f0fdf9 100%);border-color:#a7f3d0}.stat-card--cash strong{color:#047857}.stat-card--transfer{background:linear-gradient(#fff 0%,#eff6ff 100%);border-color:#bfdbfe}.stat-card--transfer strong{color:#1d4ed8}.stat-card--total{background:linear-gradient(#fff 0%,#eef2ff 100%);border-color:#c7d2fe}.stat-card--total strong{color:#3730a3}.stat-card{background:var(--surface);border:1px solid var(--border);min-height:104px;box-shadow:var(--shadow-soft);border-radius:12px;flex-direction:column;padding:18px 20px;display:flex}.stat-card--tall{min-height:124px}.stat-card__label{color:var(--text-muted);margin-bottom:8px;font-size:.8125rem;line-height:1.35;display:block}.stat-card span.stat-card__label{margin-bottom:8px}.stat-card strong{word-break:break-word;font-size:clamp(1.05rem,1.6vw,1.25rem);font-weight:700;line-height:1.25}.stat-card__note{color:var(--text-muted);margin-top:auto;padding-top:10px;font-size:.75rem;line-height:1.45;display:block}.stat-card--payment .stat-card__note{padding-top:8px}.card-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft);overflow:hidden}.card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:16px 18px;display:flex}.card-head h2{margin:0;font-size:1rem;font-weight:600}.card-head__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-body{padding:18px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.form-grid.two-col{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}input,select,textarea{border:1px solid var(--border);font:inherit;border-radius:8px;padding:10px 12px;font-size:.875rem}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.submit-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.status-switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.status-switch--disabled{cursor:not-allowed;opacity:.65}.status-switch input{opacity:0;width:1px;height:1px;position:absolute}.status-switch-track{background:#cbd5e1;border-radius:999px;width:42px;height:24px;transition:background-color .2s;position:relative}.status-switch-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.status-switch input:checked+.status-switch-track{background:#16a34a}.status-switch input:checked+.status-switch-track:after{transform:translate(18px)}.status-switch-label{color:#475569;min-width:24px;font-size:.8rem}.item-builder{grid-column:1/-1;grid-template-columns:1fr auto;gap:10px;display:grid}.filter-panel{background:#fff;border:1px solid #e2e8f0;border-radius:18px;margin-bottom:18px;padding:18px;box-shadow:0 8px 24px #0f172a0f}.filter-panel__grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:12px 14px;display:grid}.filter-panel__summary{color:#0f172a;margin-top:12px;font-size:.95rem}.filter-panel input,.filter-panel select,.filter-panel button{box-sizing:border-box;width:100%}.filter-panel input,.filter-panel select{background:#f8fafc;border:1px solid #d1d5db;border-radius:14px;min-height:44px;padding:11px 14px}.filter-panel input:focus,.filter-panel select:focus{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #3b82f626}.filter-panel button{place-self:end start;min-width:140px}.sort-control{gap:6px;display:grid}.sort-control span{color:#475569;font-size:.82rem}.selected-items{background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;grid-column:1/-1;padding:12px}.selected-items p{margin:6px 0;font-size:.875rem}.selected-item-header{color:#64748b;border-bottom:1px dashed #d1d5db;grid-template-columns:120px 1.5fr 1fr 1fr auto;gap:10px;margin-bottom:8px;padding-bottom:8px;font-size:.78rem;font-weight:600;display:grid}.selected-item-row{border-bottom:1px dashed #e5e7eb;grid-template-columns:120px 1.5fr 1fr 1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.selected-item-row:last-child{border-bottom:none}.code-cell{color:#475569;font-weight:600}.attr-catalog-code{color:#475569;background:#f1f5f9;border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;font-weight:600}.rental-page .card-body{padding:20px}.rental-page-intro{gap:8px;margin-bottom:18px;display:grid}.rental-workspace-pill{background:var(--accent-soft);color:#1d4ed8;letter-spacing:.02em;border-radius:999px;align-items:center;width:fit-content;margin:0;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.rental-page-lead{max-width:62ch;line-height:1.5}.rental-layout{align-items:start;gap:18px;display:grid}@media (width>=1024px){.rental-layout{grid-template-columns:minmax(0,1fr) minmax(280px,320px)}}.rental-main{gap:14px;display:grid}.rental-step{border:1px solid var(--border);background:#fcfdff;border-radius:12px;overflow:hidden}.rental-step-head{border-bottom:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.rental-step-head h3{color:#1e293b;margin:0;font-size:.95rem}.rental-step-head .muted-text{margin-top:4px}.rental-step-badge{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.8125rem;font-weight:700;display:grid}.rental-step-body{gap:12px;padding:14px 16px 16px;display:grid}.rental-field{gap:6px;display:grid}.rental-field--full{grid-column:1/-1}.rental-field-label{color:#334155;font-size:.8125rem;font-weight:600}.rental-checkbox-field{gap:8px}.rental-checkbox-line{color:#0f172a;align-items:center;gap:8px;min-height:36px;font-weight:700;display:inline-flex}.rental-checkbox-line input{accent-color:#0f766e;width:18px;height:18px}.rental-schedule-grid{gap:12px;display:grid}@media (width>=640px){.rental-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.rental-phone-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rental-phone-row input[type=tel]{flex:1;min-width:180px}.rental-customer-hit{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin:0;padding:10px 12px;font-size:.875rem}.rental-name-match-list{flex-direction:column;gap:6px;max-height:240px;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow:auto}.rental-name-match-btn{text-align:left;border:1px solid var(--border);background:var(--panel-elevated,#fff);width:100%;font:inherit;cursor:pointer;border-radius:8px;padding:8px 10px;transition:background .12s,border-color .12s;display:block}.rental-name-match-btn:hover{background:var(--muted-bg,#f4f4f5);border-color:var(--border-strong,#d4d4d8)}.rental-name-match-empty{margin:6px 0 0;font-size:.875rem}.rental-new-customer-block{gap:6px;display:grid}.rental-auto-status-hint{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.rental-status-chip{border-radius:999px;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.rental-status-chip--active{color:#166534;background:#dcfce7}.rental-status-chip--reserved{color:#1d4ed8;background:#dbeafe}.rental-action-row{flex-wrap:wrap;gap:10px;display:flex}.rental-import-details{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:10px 12px}.rental-import-details summary{cursor:pointer;color:#475569;font-size:.8125rem;font-weight:600}.rental-import-toolbar{margin-top:10px}.rental-clear-lines{margin-left:auto}.rental-empty-panel{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:18px 14px}.rental-line-list{gap:10px;display:grid}.rental-line-card{border:1px solid var(--border);background:#fff;border-radius:10px;gap:10px;padding:12px;display:grid}@media (width>=720px){.rental-line-card{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}}.rental-line-card__main{gap:4px;display:grid}.rental-line-card__title{font-size:.9rem}.rental-line-card__money{white-space:nowrap;gap:4px;font-size:.8125rem;display:grid}.rental-line-card__price-pair{align-items:baseline;gap:6px;display:inline-flex}.rental-line-card--schedule-conflict{background:#fff7f7;border-color:#fca5a5}.rental-line-card__conflict{color:#b91c1c;margin:6px 0 0;font-size:.78rem;line-height:1.4}.rental-schedule-conflict-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-top:12px;padding:12px 14px}.rental-schedule-conflict-banner strong{color:#991b1b;margin-bottom:6px;font-size:.85rem;display:block}.rental-schedule-conflict-banner p{color:#7f1d1d;margin:0 0 8px;font-size:.8rem;line-height:1.45}.rental-schedule-conflict-banner ul{color:#991b1b;margin:0;padding-left:1.1rem;font-size:.78rem}.rental-schedule-conflict-banner li+li{margin-top:4px}.rental-laundry-banner{background:linear-gradient(#fffbeb 0%,#fef3c7 100%);border:1px solid #fde68a;border-radius:10px;margin-top:12px;padding:12px 14px}.rental-laundry-banner strong{color:#92400e;margin-bottom:6px;font-size:.85rem;display:block}.rental-laundry-banner p{color:#78350f;margin:0 0 8px;font-size:.8rem;line-height:1.45}.rental-laundry-banner ul{color:#92400e;margin:0;padding-left:1.1rem;font-size:.78rem}.rental-laundry-banner li+li{margin-top:4px}.rental-line-card--laundry-warn{background:linear-gradient(#fffbeb 0%,#fff 55%);border-color:#fcd34d}.rental-line-card__nearest{color:#1e40af;margin:6px 0 0;font-size:.78rem;line-height:1.4}.rental-line-card__nearest--pickup{color:#0f766e}.rental-line-card__laundry{color:#b45309;margin:6px 0 0;font-size:.78rem;line-height:1.4}.rental-pick-laundry-hint{color:#b45309;margin-top:6px;font-size:.78rem;line-height:1.4}.rental-pick-schedule-hint{color:#1e40af;margin-top:6px;font-size:.78rem;line-height:1.4}.rental-pick-schedule-hint--pickup{color:#0f766e}.muted-text{color:var(--text-muted);margin:0;font-size:.8rem}.login-page{background:linear-gradient(160deg,#e8f0ff 0%,#f8fafc 45%,#eef2ff 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--border,#e2e8f0);background:#fff;border-radius:14px;gap:16px;width:100%;max-width:400px;padding:28px 24px;display:grid;box-shadow:0 18px 50px #0f172a1a}.login-brand{align-items:center;gap:12px;display:flex}.login-brand .sidebar-brand-mark{width:44px;height:44px;font-size:.95rem}.login-brand strong{color:#0f172a;display:block}.login-hint{color:var(--text-muted,#64748b);margin:0;font-size:.85rem}.login-form{gap:12px;display:grid}.login-label{color:#334155;gap:6px;font-size:.8rem;font-weight:600;display:grid}.login-label input{border:1px solid var(--border,#e2e8f0);border-radius:8px;padding:10px 12px;font-size:.9rem;font-weight:400}.login-submit{width:100%;margin-top:4px}.rental-summary{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:linear-gradient(#f8fbff 0%,#fff 100%);border-radius:12px;gap:12px;padding:16px;display:grid}@media (width>=1024px){.main-panel--rental-workspace .rental-summary{top:calc(var(--toolbar-h) + var(--chrome-tabs-h) + 16px);width:min(320px,100vw - 44px);max-height:calc(100vh - (var(--toolbar-h) + var(--chrome-tabs-h) + 32px));overscroll-behavior:contain;z-index:10;position:fixed;right:22px;overflow-y:auto}}.rental-summary-title{margin:0;font-size:.95rem}.rental-summary-customer{border:1px solid var(--border);background:#fff;border-radius:10px;gap:4px;padding:12px;display:grid}.rental-summary-customer__name{font-size:.95rem}.rental-summary-customer__hint{font-size:.75rem}.rental-summary-customer-total{margin:0;font-size:.8125rem;line-height:1.45}.rental-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.rental-summary-metric{border:1px solid var(--border);background:#fff;border-radius:8px;gap:2px;padding:10px 12px;font-size:.8125rem;display:grid}.rental-summary-metric strong{font-size:1.05rem}.rental-summary-hint{margin:-4px 0 0}.rental-summary-breakdown{border-top:1px dashed var(--border);gap:8px;padding-top:4px;display:grid}.rental-summary-row{justify-content:space-between;align-items:baseline;gap:12px;font-size:.8125rem;display:flex}.rental-discount-details{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 12px}.rental-discount-details summary{cursor:pointer;font-size:.8125rem;font-weight:600}.rental-discount-panel{gap:10px;margin-top:10px;display:grid}.rental-discount-grid{grid-template-columns:minmax(120px,.9fr) minmax(0,1fr);gap:8px;display:grid}.rental-summary-note{color:#1d4ed8;margin:0;font-size:.8rem}.rental-payment-mode{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.payment-mode-picker{gap:8px;margin-top:8px;display:grid}.payment-mode-option{width:100%;color:var(--text);text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe3ef;border-radius:12px;padding:10px 12px;font-size:.8125rem;font-weight:600;transition:border-color .15s,background .15s;display:block}.payment-mode-option:hover:not(:disabled){background:#faf5ff;border-color:#c4b5fd}.payment-mode-option--active{background:linear-gradient(#faf5ff 0%,#f3e8ff 100%);border-color:#7c3aed;box-shadow:0 0 0 1px #7c3aed1f}.payment-mode-option:disabled{opacity:.45;cursor:not-allowed}.rental-hold-policy-note{color:#5b21b6;background:#faf5ff;border:1px solid #e9d5ff;border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:.8125rem;line-height:1.5}.rental-payment-method{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.payment-method-picker{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.payment-method-option{min-height:44px;color:var(--text);cursor:pointer;text-align:left;background:#fff;border:1px solid #dbe3ef;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.payment-method-option:hover{background:#f8fbff;border-color:#93c5fd}.payment-method-option--active{background:linear-gradient(#eff6ff 0%,#dbeafe 100%);border-color:#2563eb;box-shadow:0 0 0 1px #2563eb26}.payment-method-option__icon{background:#2563eb1a;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.95rem;font-weight:700;display:inline-grid}.payment-method-option--active .payment-method-option__icon{color:#fff;background:#2563eb}.payment-method-option__label{font-size:.875rem;font-weight:600;line-height:1.25}.payment-method-badge{border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.payment-method-badge--cash{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.payment-method-badge--transfer{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.payment-method-badge--unknown{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.rental-summary-total{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;gap:8px;padding:12px;display:grid}.rental-summary-total>div{justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem;display:flex}.rental-summary-total strong{color:#1e40af;font-size:1rem}.rental-summary-grand{border-top:1px solid #93c5fd;margin-top:4px;padding-top:10px;font-weight:600}.rental-summary-grand strong{font-size:1.1rem}.rental-summary-submit{width:100%}.rental-summary .btn-primary{justify-self:stretch}.money-line{background:#f3f8ff;border-radius:8px;margin:0;padding:11px 14px;font-size:.875rem}.money-line strong{color:#1e40af}.data-table-wrap{margin:-4px -2px;overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:.8125rem}.data-table thead th{text-align:left;color:#4b5563;border-bottom:1px solid var(--border);white-space:nowrap;background:#f9fafb;padding:10px 12px;font-weight:600}.data-table tbody td{vertical-align:middle;color:#374151;border-bottom:1px solid #f0f1f4;padding:12px}.data-table tbody tr:hover td{background:#fafbfc}.data-table tbody tr:last-child td{border-bottom:none}.th-actions{width:1%}.badge-inline{color:#1d4ed8;background:#eff6ff;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.badge-neutral{color:#4b5563;background:#f3f4f6}.badge-money--cash{color:#047857}.badge-money--transfer{color:#1d4ed8}.badge-money{color:#065f46;font-weight:600}.customer-tier-chip{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:.78rem;font-weight:600;line-height:1.4;display:inline-flex}.customer-tier-chip--new{color:#4b5563;background:#f3f4f6}.customer-tier-chip--bronze{color:#9a3412;background:#ffedd5}.customer-tier-chip--silver{color:#374151;background:#e5e7eb}.customer-tier-chip--gold{color:#92400e;background:#fef3c7}.customer-tier-chip--platinum{color:#5b21b6;background:#ede9fe}.qty-dot{color:#065f46;background:#d1fae5;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 6px;font-size:.8rem;font-weight:700;display:inline-grid}.empty{text-align:center;color:var(--text-muted);background:#f9fafb;border-radius:8px;margin:0;padding:24px;font-size:.875rem}.toolbar-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.rental-history-toolbar input[type=text]{flex:1;min-width:220px}.rental-history-phone{margin-top:2px;font-size:.78rem}.import-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.import-label{color:#334155;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.78rem;display:inline-flex}.import-label input[type=file]{max-width:220px;font-size:.75rem}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:4px;display:grid}.chart-card{border:1px solid var(--border);background:#fcfcff;border-radius:10px;padding:14px}.chart-card h3{margin:0 0 12px;font-size:.9rem}.status-bars{gap:10px;display:grid}.status-row-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;font-size:.8rem;display:flex}.track{background:#eceff3;border-radius:999px;width:100%;height:9px;overflow:hidden}.fill{background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:999px;height:100%}.fill.secondary{background:linear-gradient(90deg,#0ea5e9,#22d3ee)}.report-section{gap:10px;margin-bottom:18px;display:grid}.report-section h3{margin:0;font-size:.95rem}.table-pagination{justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;display:flex}.table-pagination-meta{font-size:.8125rem}.report-chart{margin-bottom:14px}.report-period-filter{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.report-period-filter__label{color:#475569;font-size:.8125rem;font-weight:600}.report-period-chip{border:1px solid var(--border);color:#475569;font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:6px 12px;font-size:.8125rem}.report-period-chip:hover{background:#f8fbff;border-color:#bfdbfe}.report-period-chip--on{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd;font-weight:600}.report-chart .column-group{grid-template-columns:1fr}.column-chart{background:#f8fafc;border-radius:8px;align-items:flex-end;gap:14px;min-height:190px;padding:12px 6px 2px;display:flex;overflow-x:auto}.column-group{grid-template-columns:1fr 1fr;place-items:end center;gap:6px;min-width:76px;display:grid}.column{border-radius:6px 6px 0 0;width:18px;min-height:4px}.column.revenue{background:#2563eb}.column.deposit{background:#14b8a6}.column-group span{color:var(--text-muted);grid-column:1/-1;font-size:.72rem}.chart-legend{gap:14px;margin-top:10px;font-size:.78rem;display:flex}.dot{border-radius:999px;width:10px;height:10px;margin-right:4px;display:inline-block}.dot.revenue{background:#2563eb}.dot.payment-cash{background:#059669}.dot.payment-transfer{background:#2563eb}.dot.deposit{background:#14b8a6}@media (width<=1200px){.dashboard-stats,:is(.payment-revenue-stats,.payment-revenue-stats:has(.stat-card--total),.payment-revenue-stats:not(:has(.stat-card--total))){grid-template-columns:repeat(2,minmax(0,1fr))}.date-range-filter__summary,.content-filter-bar__summary{text-align:center;width:100%;margin-left:0}.chart-grid{grid-template-columns:1fr}}.sidebar-backdrop{cursor:default;background:0 0;border:none;margin:0;padding:0;display:none;position:fixed;inset:0}@media (width<=980px){.app-layout{flex-direction:column}.sidebar-shell{top:var(--toolbar-h);z-index:45;background:var(--surface);border-right:1px solid var(--border);visibility:hidden;width:min(280px,80vw);max-width:100%;transition:transform .25s,visibility .25s;position:fixed;bottom:0;left:0;transform:translate(-100%);box-shadow:14px 0 38px #0f172a2e}.sidebar-shell:not(.collapsed){visibility:visible;transform:translate(0)}.sidebar-shell.collapsed{visibility:hidden;transform:translate(-100%)}.sidebar-backdrop{inset:0;top:var(--toolbar-h);z-index:40;background:#0f172a66;display:block;position:fixed}.sidebar-nav{flex-direction:column;align-items:stretch;gap:4px;padding:10px;display:flex;overflow-y:auto}.nav-item{justify-content:flex-start;width:100%;padding:12px 14px;font-size:.95rem}.nav-label{text-align:left;white-space:normal}.main-panel,.sidebar-shell.collapsed+.main-panel{margin-left:0}.top-toolbar,.sidebar-shell.collapsed+.main-panel .top-toolbar{z-index:35;width:100%;position:fixed;top:0;left:0;right:0}.chrome-tabs-strip,.sidebar-shell.collapsed+.main-panel .chrome-tabs-strip{top:calc(var(--toolbar-h) + var(--chrome-tabs-h));border-bottom:1px solid var(--border);z-index:30;background:#ebeef2;width:100%;padding:6px 6px 0;position:fixed;left:0;right:0}.page-inner{margin-top:calc(var(--toolbar-h) + var(--chrome-tabs-h));padding:14px 14px 20px}.sidebar-brand{border-bottom:1px solid var(--border);min-height:unset;padding:14px 12px}.user-meta,.nav-section-title,.nav-section-title-collapsed{display:none}.nav-section{flex-flow:column;align-items:stretch;gap:6px}.nav-section+.nav-section{border-top:1px solid var(--border);border-left:none;margin-top:12px;margin-left:0;padding-top:12px;padding-left:0}.nav-section--attributes,.nav-group{flex-direction:column;gap:6px}.nav-group-toggle{max-width:100%;padding:10px 12px}.nav-group-toggle-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media (width<=640px){.page-inner{padding:14px}.dashboard-stats,.item-builder{grid-template-columns:1fr}}.btn-sm{padding:6px 12px;font-size:.75rem}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.detail-card{border:1px solid var(--border);background:#fafbfc;border-radius:8px;padding:14px 16px}.detail-card h3{margin:0 0 12px;font-size:.9rem;font-weight:600}.detail-row{border-bottom:1px solid #f0f1f4;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;font-size:.8125rem;display:flex}.detail-row:last-child{border-bottom:none}.detail-row span:first-child{color:var(--text-muted)}.detail-row span:last-child{text-align:right;font-weight:500}.product-thumb{border:1px solid var(--border);object-fit:cover;background:#f8fafc;border-radius:8px;width:52px;height:52px}.product-thumb--clickable,.product-preview--clickable{cursor:zoom-in}.detail-row-image{align-items:flex-start}.product-preview-wrap{flex-direction:column;align-items:flex-end;gap:8px;display:inline-flex}.product-preview{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--border);background:#f8fafc;border-radius:10px;width:160px;max-width:100%}.product-gallery-wrap{justify-items:end;gap:8px;display:grid}.product-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:8px;max-width:360px;display:grid}.product-gallery-item{justify-items:center;gap:6px;display:grid}.variant-basic-row{cursor:pointer;width:100%;font:inherit;color:#0f172a;text-align:left;background:#f8fafc;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:10px;display:flex}.variant-basic-row:hover{background:#eef2ff}.variant-detail-modal{border-radius:14px;width:min(100%,560px)}.variant-detail-modal-head{align-items:center;padding-bottom:8px}.variant-detail-chip{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.variant-detail-modal-body{padding:0 18px 16px}.variant-price-line{background:#f8fafc;border:1px solid #dbe5f1;border-radius:10px;margin:0;padding:10px 12px}.variant-price-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.variant-price-cell{background:#f8fafc;border:1px solid #dbe5f1;border-radius:10px;gap:3px;padding:8px 10px;display:grid}.variant-price-cell span{color:#64748b;font-size:.74rem}.variant-price-cell strong{color:#0f172a;font-size:.84rem}.variant-price-note{margin:8px 0 0}.variant-action-row{margin-top:10px}.variant-gallery-wrap{justify-items:start;margin-top:10px}.variant-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));width:100%;max-width:100%}.variant-gallery-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px}.variant-qr-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;margin-bottom:10px;padding:10px}.variant-qr-image{background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:144px;height:144px;margin-top:6px}.variant-qr-code{background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-top:6px;padding:2px 6px;font-size:.78rem;display:inline-block}.qr-scan-modal{width:min(100%,430px)}.qr-scan-frame{background:#0f172a;border:1px solid #dbe5f1;border-radius:12px;overflow:hidden}.qr-scan-video{object-fit:cover;width:100%;height:300px;display:block}.qr-scan-error{color:#b91c1c;margin:10px 0 0;font-size:.86rem}@media (width<=640px){.variant-price-grid{grid-template-columns:1fr}}.image-zoom-backdrop{z-index:110;background:#020617c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.image-zoom-panel{max-width:min(92vw,980px);max-height:92vh;position:relative}.image-zoom-close{color:#fff;background:#0f172ab8;position:absolute;top:-10px;right:-10px}.image-zoom-content{object-fit:contain;background:#0f172a;border:1px solid #94a3b859;border-radius:12px;max-width:100%;max-height:92vh;display:block}.modal-backdrop{z-index:80;background:#0f172a73;place-items:center;padding:20px;animation:.15s modal-fade-in;display:grid;position:fixed;inset:0}.modal-backdrop--detail{z-index:85;align-items:flex-start;padding-top:max(20px,4vh);overflow-y:auto}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);width:min(100%,500px);max-height:min(88vh,720px);padding:0;overflow:auto;box-shadow:0 18px 48px #0f172a2e}.modal-panel--compact{width:min(100%,400px);max-height:none}.modal-backdrop--zalo{z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a85}.modal-panel--zalo{border:1px solid #c7dcff;flex-direction:column;width:min(100%,480px);max-height:min(90vh,760px);display:flex;overflow:hidden;box-shadow:0 24px 56px #0068ff24,0 12px 32px #0f172a1f}.zalo-modal-head{color:#fff;background:linear-gradient(135deg,#0068ff 0%,#3d8bff 55%,#5ba0ff 100%);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:18px 18px 14px;display:grid}.zalo-modal-brand{background:#fff3;border:1px solid #ffffff59;border-radius:14px;place-items:center;width:44px;height:44px;display:grid;box-shadow:inset 0 1px #ffffff40}.zalo-modal-brand__icon{letter-spacing:-.04em;font-size:1.25rem;font-weight:800;line-height:1}.zalo-modal-head__text h3{color:#fff;margin:0 0 4px;font-size:1.05rem;font-weight:700;line-height:1.3}.zalo-modal-head__text p{color:#ffffffe6;margin:0;font-size:.8125rem;line-height:1.45}.zalo-modal-head .modal-close{color:#ffffffeb;background:#ffffff24;border:1px solid #ffffff47}.zalo-modal-head .modal-close:hover{color:#fff;background:#ffffff3d}.zalo-modal-body{flex-direction:column;flex:1;min-height:0;padding:16px 18px 0;display:flex}.zalo-modal-label{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:600;display:block}.zalo-message-textarea{resize:vertical;width:100%;min-height:300px;max-height:min(52vh,420px);color:var(--text);white-space:pre-wrap;background:linear-gradient(#f8fbff 0%,#f1f6ff 100%);border:1px solid #dbeafe;border-radius:14px;flex:1;margin:0;padding:14px 16px;font-family:inherit;font-size:.875rem;line-height:1.55;box-shadow:inset 0 1px 2px #0f172a0a}.zalo-message-textarea:focus{outline-offset:1px;outline:2px solid #0068ff59}.zalo-modal-foot{border-top:1px solid var(--border);background:#fafcff;flex-wrap:wrap;gap:10px;padding:16px 18px 18px;display:flex}.zalo-copy-btn{background:linear-gradient(#0068ff 0%,#0052cc 100%);border-color:#0052cc;flex:180px;min-height:42px;box-shadow:0 4px 14px #0068ff47}.zalo-copy-btn:hover{background:linear-gradient(#1a75ff 0%,#0068ff 100%)}.modal-panel--detail{width:min(100%,960px);max-height:none;margin-bottom:24px}.modal-panel--rental-pick{width:min(100%,960px);max-height:min(92vh,900px)}.swap-modal-intro{border-bottom:1px solid var(--border);padding:0 18px 14px}.swap-modal-lead{color:var(--text-muted);margin:0 0 12px;font-size:.875rem;line-height:1.55}.modal-guide .swap-modal-lead{margin:0;padding-bottom:8px}.modal-guide .swap-help-cards{padding:0 12px 12px}.swap-help-cards{gap:10px;display:grid}.swap-help-card{background:linear-gradient(#fbfcff 0%,#f7f9fc 100%);border:1px solid #e8edf5;border-radius:12px;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;display:grid}.swap-help-card__step{color:#1d4ed8;background:#e8f0ff;border-radius:999px;place-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:inline-grid}.swap-help-card strong{color:var(--text);margin-bottom:2px;font-size:.8125rem;display:block}.swap-help-card p{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.45}.schedule-swap-body{gap:14px;padding-top:14px;display:grid}.swap-section{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #e8edf5;border-radius:14px;padding:14px}.swap-section--summary{background:linear-gradient(#fbfdff 0%,#f7faff 100%)}.swap-section--note{background:#fbfdff}.swap-section--note textarea{resize:vertical;min-height:86px}.swap-section--invalid{background:linear-gradient(#fff8f7 0%,#fff3f1 100%);border-color:#f2c7c0}.swap-section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.swap-section-head h3{margin:0;font-size:.95rem;font-weight:700}.swap-section-head p{color:var(--text-muted);margin:4px 0 0;font-size:.78rem;line-height:1.45}.swap-section-badge{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:999px;flex-shrink:0;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.swap-section-badge--deal{color:#047857;background:#ecfdf3}.swap-no-charge-toggle{color:#0f172a;align-items:center;gap:8px;font-size:.78rem;display:inline-flex}.swap-no-charge-toggle label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.swap-no-charge-toggle input{width:16px;height:16px}.swap-subheading{letter-spacing:.02em;text-transform:uppercase;color:#64748b;margin:0 0 10px;font-size:.78rem;font-weight:700}.swap-empty{text-align:center;color:var(--text-muted);background:#fafbfd;border:1px dashed #d7deea;border-radius:12px;margin:0;padding:18px 14px}.swap-draft-list{gap:10px;display:grid}.swap-draft-card{background:#fafbfd;border:1px solid #e8edf5;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.swap-draft-card--blocked{background:#fff7f7;border-color:#fecaca}.swap-draft-card--laundry{background:linear-gradient(#fffbeb 0%,#fafbfd 100%);border-color:#fcd34d}.swap-draft-card__schedule{margin:8px 0 0;font-size:.76rem;line-height:1.4}.swap-draft-card__schedule--error{color:#b91c1c}.swap-draft-card__schedule--laundry{color:#b45309}.swap-draft-card__main{min-width:0}.swap-draft-card__identity{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.swap-draft-card__identity strong{font-size:.875rem}.swap-draft-card__meta{color:var(--text-muted);flex-wrap:wrap;gap:8px 12px;font-size:.78rem;display:flex}.swap-draft-card__qty{color:#3730a3;background:#eef2ff;border-radius:999px;padding:2px 8px;font-weight:700}.swap-draft-card__actions{flex-shrink:0;gap:6px;display:flex}.swap-discount-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.swap-discount-strip>div,.swap-discount-card{background:#fff;border:1px solid #e8edf5;border-radius:10px;padding:10px 12px}.swap-discount-card{gap:4px;display:grid}.swap-discount-card small{color:#475569;font-size:.72rem}.swap-discount-strip span{color:var(--text-muted);margin-bottom:4px;font-size:.72rem;display:block}.swap-discount-strip strong{color:#1e40af;font-size:.9rem}.swap-category-grid{margin-bottom:12px}.swap-breakdown-lines{gap:10px;margin:0;padding:0;list-style:none;display:grid}.swap-category-card{background:#fff;border:1px solid #e8edf5;border-radius:12px;padding:12px}.swap-category-card--existing{border-left:3px solid #93c5fd}.swap-category-card--added{border-left:3px solid #86efac}.swap-category-card__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.swap-category-card__head strong{font-size:.875rem}.swap-category-card__body{color:var(--text);font-size:.8125rem;line-height:1.55}.swap-pill{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:999px;align-items:center;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.swap-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.swap-stat-card{background:#fff;border:1px solid #e8edf5;border-radius:10px;gap:4px;padding:10px 12px;display:grid}.swap-stat-card span{color:var(--text-muted);font-size:.72rem}.swap-stat-card strong{color:#0f172a;font-size:.9rem}.swap-stat-card small{color:#94a3b8;font-size:.68rem}.swap-stat-card--delta{background:#f8fafc}.swap-stat-card--up strong{color:#047857}.swap-stat-card--down strong{color:#b91c1c}.swap-due-banner{background:linear-gradient(#f0fdf4 0%,#ecfdf5 100%);border:1px solid #bbf7d0;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.swap-due-banner span{color:#166534;font-size:.75rem;font-weight:700}.swap-due-banner strong{color:#14532d;font-size:1.15rem}.swap-due-banner small{color:#15803d;font-size:.75rem}.swap-alert{border-radius:10px;padding:10px 12px;font-size:.8125rem;line-height:1.45}.swap-alert--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.swap-alert--neutral{color:var(--text-muted);background:#f8fafc;border:1px solid #e8edf5}.swap-filters{margin-bottom:12px}.swap-modal-footer{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;margin-top:0;padding:14px 18px 18px;position:sticky;bottom:0}@media (width>=720px){.swap-help-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=719px){.swap-discount-strip,.swap-stat-grid{grid-template-columns:1fr}.swap-draft-card{flex-direction:column;align-items:stretch}.swap-draft-card__actions{justify-content:flex-end}}.modal-detail-scroll{max-height:min(78vh,820px);padding:0 18px 20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 0;display:flex}.modal-head h2{margin:0;font-size:1.05rem;font-weight:700;line-height:1.35}.modal-close{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;font-size:1.35rem;line-height:1}.modal-close:hover{color:var(--text);background:#f3f4f6}.modal-desc{color:var(--text-muted);margin:0;padding:8px 18px 0;font-size:.8125rem;line-height:1.45}.modal-guide{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;margin:10px 18px 0}.modal-guide--flush{margin:0}.modal-guide summary{cursor:pointer;color:#475569;justify-content:space-between;align-items:center;gap:10px;min-height:38px;padding:8px 12px;font-size:.8125rem;font-weight:700;list-style:none;display:flex}.modal-guide summary::-webkit-details-marker{display:none}.modal-guide summary:after{content:"Mở";color:#334155;background:#e2e8f0;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.7rem;font-weight:700}.modal-guide[open] summary{border-bottom:1px solid #e2e8f0}.modal-guide[open] summary:after{content:"Thu nhỏ"}.modal-guide p{color:var(--text-muted);margin:0;padding:10px 12px 12px;font-size:.8125rem;line-height:1.5}.modal-message{color:var(--text);margin:0;padding:8px 18px 16px;font-size:.875rem;line-height:1.5}.modal-form{flex-direction:column;gap:12px;padding:14px 18px 18px;display:flex}.input-modal-live-hint{border-top:1px solid var(--border);margin:0 -18px;padding:12px 18px 0}.reschedule-money-preview{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;gap:10px;padding:12px;display:grid}.reschedule-money-preview__head{color:var(--text);justify-content:space-between;align-items:center;gap:12px;display:flex}.reschedule-money-preview__head span{color:var(--text-muted);font-size:.82rem;font-weight:700}.reschedule-money-preview__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.reschedule-money-preview__grid>div{background:#fff;border:1px solid #dbeafe;border-radius:8px;gap:3px;padding:10px;display:grid}.reschedule-money-preview span,.reschedule-money-preview em{color:var(--text-muted);font-size:.78rem;font-style:normal}.reschedule-money-preview b{color:#047857;font-size:.95rem}.reschedule-money-preview p{color:var(--text);margin:0;font-size:.86rem}.reschedule-live-hints__sub{color:var(--text);margin:10px 0 6px;font-size:.8rem;font-weight:600}.reschedule-line-hint-list{color:var(--text);margin:0;padding-left:1.1rem;font-size:.78rem}.reschedule-line-hint-item{margin-top:8px}.reschedule-line-hint-item:first-child{margin-top:0}.modal-field{color:var(--text);flex-direction:column;gap:6px;font-size:.8125rem;font-weight:600;display:flex}.modal-field span{color:var(--text-muted);font-weight:600}.modal-field input{border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-family:inherit;font-size:.875rem}.modal-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-field select{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;padding:9px 11px;font-family:inherit;font-size:.875rem}.modal-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 18px 18px;display:flex}.modal-panel--compact .modal-actions{padding-top:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.schedule-board .card-body{padding-top:14px}.schedule-board__head .schedule-board__subtitle{max-width:52rem;margin:6px 0 0;font-size:.82rem;line-height:1.45}.schedule-board__stats{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.schedule-stat-pill{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-width:88px;box-shadow:var(--shadow-soft);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.schedule-stat-pill__value{color:var(--text);font-size:1.25rem;font-weight:700;line-height:1.1}.schedule-stat-pill__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.68rem;font-weight:600}.schedule-stat-pill--reserved{background:linear-gradient(#eff6ff 0%,#fff 100%);border-color:#bfdbfe}.schedule-stat-pill--active{background:linear-gradient(#ecfdf5 0%,#fff 100%);border-color:#a7f3d0}.schedule-stat-pill--hold{background:linear-gradient(#faf5ff 0%,#fff 100%);border-color:#e9d5ff}.schedule-stat-pill--hold .schedule-stat-pill__value{color:#7c3aed}.schedule-stat-pill--muted .schedule-stat-pill__value{color:#4b5563}.schedule-stat-pill--alert{background:linear-gradient(#fef2f2 0%,#fff 100%);border-color:#fecaca}.schedule-stat-pill--pulse .schedule-stat-pill__value{animation:2s ease-in-out infinite schedule-stat-pulse}@keyframes schedule-stat-pulse{0%,to{color:#b91c1c}50%{color:#dc2626}}.schedule-board__hint{border:1px dashed var(--border);background:#f9fafb;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:.82rem}.schedule-board__hint summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-weight:600}.schedule-board__hint summary::-webkit-details-marker{margin-right:8px}.schedule-preserved-panel{box-shadow:none;border-style:dashed;margin-top:12px}.schedule-preserved-panel summary{cursor:pointer;min-height:48px;color:var(--text);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:0 18px;font-weight:700;display:flex}.schedule-preserved-panel summary::-webkit-details-marker{display:none}.schedule-preserved-panel summary:before{content:"▸";color:var(--text-muted);transition:transform .16s}.schedule-preserved-panel[open] summary:before{transform:rotate(90deg)}.schedule-preserved-panel summary span{flex:1}.schedule-preserved-panel summary strong{min-width:32px;height:28px;color:var(--text-muted);background:#f3f4f6;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:.85rem;display:inline-flex}.schedule-board__toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin-bottom:16px;display:flex}.schedule-chip-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-chip-group__title{text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-right:4px;font-size:.72rem;font-weight:700}.schedule-chip{appearance:none;border:1px solid var(--border);background:var(--surface);color:#4b5563;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:border-color .15s,background .15s}.schedule-chip:hover{background:#f8fafc;border-color:#cbd5e1}.schedule-chip--on{border-color:var(--accent);background:var(--accent-soft);color:#1e40af}.schedule-search{flex:1;min-width:200px;max-width:360px;margin-left:auto;position:relative}.schedule-search input{border:1px solid var(--border);border-radius:999px;width:100%;padding:9px 36px 9px 14px;font-family:inherit;font-size:.8125rem}.schedule-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.schedule-search-clear{color:#4b5563;cursor:pointer;background:#e5e7eb;border:none;border-radius:999px;place-items:center;width:24px;height:24px;font-size:1rem;line-height:1;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.schedule-search-clear:hover{background:#d1d5db}.schedule-empty-filtered{text-align:center;border:1px dashed var(--border);background:#f9fafb;border-radius:10px;padding:20px 16px}.schedule-empty-filtered .empty{background:0 0;padding-bottom:8px}.schedule-list-view{flex-direction:column;gap:12px;display:flex}.schedule-list-columns{text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;grid-template-columns:2rem minmax(0,1fr) minmax(10rem,12rem) 11rem;align-items:end;gap:16px;padding:0 14px 2px;font-size:.62rem;font-weight:700;display:grid}.schedule-list-columns__act{text-align:center}.schedule-card-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.schedule-card-item{background:linear-gradient(#fff 0%,#fafbfc 100%);border:1px solid #e9ebf2;border-radius:14px;grid-template-columns:2rem minmax(0,1fr) minmax(10rem,12rem) 11rem;align-items:stretch;gap:16px;padding:16px;display:grid;box-shadow:0 1px 2px #1118270a}.schedule-card-item--group-active{background:linear-gradient(#fff 0%,#ecfdf5 100%);border-color:#86efac;border-left-style:solid;border-left-width:5px}.schedule-card-item--group-reserved{background:linear-gradient(#fff 0%,#eff6ff 100%);border-color:#bfdbfe;border-left-style:solid;border-left-width:5px}.schedule-card-item--group-hold{background:linear-gradient(#fff 0%,#faf5ff 100%);border-color:#e9d5ff;border-left-style:solid;border-left-width:5px}.schedule-hold-strip{background:#faf5ff;border:1px solid #e9d5ff;border-radius:10px;gap:4px;margin-bottom:8px;padding:8px 10px;font-size:.75rem;line-height:1.4;display:grid}.schedule-hold-strip strong{color:#6d28d9;font-size:.8125rem}.schedule-hold-strip--expired{color:#b91c1c!important}.schedule-detail-hold-panel{background:#faf5ff;border:1px solid #e9d5ff;border-radius:12px;grid-column:1/-1;padding:12px 14px}.schedule-detail-hold-amounts{gap:8px;margin:10px 0 0;font-size:.8125rem;display:grid}.schedule-detail-hold-amounts dt{color:#6d28d9;margin-bottom:2px;font-weight:600}.schedule-detail-hold-amounts dd{margin:0}.schedule-card-item--overdue{background:linear-gradient(#fff 0%,#fff1f2 100%);border-color:#fecaca;border-left-color:#dc2626!important}.schedule-card-item__idx{color:var(--text-muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:flex-start;padding-top:4px;font-size:.8125rem;font-weight:700;display:flex}.schedule-card-item__main{min-width:0}.schedule-card-item__heading{flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:12px;display:flex}.schedule-card-code{font-size:.8rem!important}.schedule-card-name{font-size:.9rem;font-weight:700}.schedule-card-phone{flex-basis:100%;width:100%;margin-top:-2px;font-size:.78rem}.schedule-card-times{grid-template-columns:1fr 1fr;gap:10px 20px;display:grid}@media (width<=760px){.schedule-card-times{grid-template-columns:1fr}}.schedule-card-time-slot{background:#f9fafbd9;border:1px solid #eef0f5;border-radius:10px;padding:8px 10px}.schedule-card-time-slot--trail{background:#f0fdfa99;border-color:#a7f3d080}.schedule-card-time-label{text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:4px;font-size:.58rem;font-weight:700;display:block}.schedule-card-time-val{color:#374151;font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600;display:block}.schedule-card-time-note{color:var(--text-muted);margin-top:4px;font-size:.7rem;display:block}.schedule-card-open-detail{cursor:pointer;color:#1d4ed8;background:#fff;border:1px solid #2563eb59;border-radius:8px;align-self:flex-start;margin-top:12px;padding:7px 12px;font-family:inherit;font-size:.76rem;font-weight:600;transition:background .15s,border-color .15s}.schedule-card-open-detail:hover{background:var(--accent-soft);border-color:var(--accent)}.schedule-card-detail__empty{margin:0;font-size:.8rem}.schedule-card-line-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.schedule-card-line-list--modal{margin-bottom:4px}.schedule-card-line-item{background:#f9fafbe6;border:1px solid #eef0f5;border-radius:10px;flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 10px;display:flex}.schedule-card-line-desc{align-items:flex-start;gap:6px;min-width:0;display:flex}.schedule-card-line-info{flex-direction:column;gap:2px;min-width:0;display:flex}.schedule-card-line-main{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}.schedule-card-line-qty{color:#0f172a;font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:800}.schedule-card-line-name{color:#374151;font-size:.8rem;font-weight:600}.schedule-card-line-code{flex-shrink:0;border-radius:4px!important;padding:1px 5px!important;font-size:.72rem!important}.schedule-card-line-variant{color:#64748b;font-size:.74rem;font-weight:500}.schedule-card-line-money-cols{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.schedule-money-nowrap{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600}.schedule-money-nowrap--accent{color:#047857}.schedule-money-nowrap--muted{color:#6b7280;font-size:.72rem;font-weight:500}.price-before-discount{color:#94a3b8;font-size:.86em;font-weight:500;text-decoration:line-through;text-decoration-thickness:1px}@media (width<=640px){.schedule-card-line-item{flex-wrap:wrap;align-items:flex-start}.schedule-card-line-money-cols{flex-flow:wrap;align-items:flex-start;column-gap:14px;width:100%}}.schedule-card-order-note{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-top:12px;padding:8px 10px}.schedule-card-order-note__label{text-transform:uppercase;letter-spacing:.06em;color:#b45309;margin-bottom:4px;font-size:.58rem;font-weight:700;display:block}.schedule-card-order-note__text{color:#78350f;white-space:pre-wrap;margin:0;font-size:.8rem;line-height:1.4}.schedule-card-item__side{flex-direction:column;justify-content:space-between;gap:12px;min-height:100%;display:flex}.schedule-card-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.schedule-badge-soft{color:#334155;background:#f1f5f9;border-radius:999px;align-items:center;padding:4px 8px;font-size:.69rem;font-weight:600;display:inline-flex}.schedule-badge-soft--active{color:#065f46;background:#d1fae5}.schedule-badge-soft--reserved{color:#1d4ed8;background:#dbeafe}.schedule-badge-soft--hold{color:#6d28d9;background:#ede9fe}.schedule-mini-qty{color:#047857;background:#d1fae599;border-radius:6px;padding:3px 7px;font-size:.69rem;font-weight:600}.schedule-card-money{background:#f9fafbe6;border:1px solid #eef0f5;border-radius:10px;margin:0;padding:10px 12px}.schedule-card-money-row{flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.schedule-card-money-row+.schedule-card-money-row{border-top:1px dashed #e5e7eb;margin-top:8px;padding-top:8px}.schedule-card-money-row dt{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;flex-shrink:0;margin:0;font-size:.65rem;font-weight:700}.schedule-card-money-row dd{margin:0}.schedule-money-dd{color:#065f46;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;flex-shrink:0;margin:0;font-size:.85rem;font-weight:700}.schedule-card-item__toolbar{border-left:1px solid #eceef5;justify-content:center;align-items:stretch;padding-left:8px;display:flex}.schedule-toolbar-strip{flex-direction:column;justify-content:center;gap:7px;width:100%;max-width:10.5rem;display:flex}.schedule-act{appearance:none;cursor:pointer;border:1px solid #0000;border-radius:9px;padding:8px 10px;font-family:inherit;font-size:.75rem;font-weight:600;line-height:1.25;transition:transform 50ms,background .12s,border-color .12s}.schedule-act:active{transform:scale(.98)}.schedule-act:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--accent);outline:none}.schedule-act--primary{color:#fff;background:linear-gradient(#3b82f6 0%,#2563eb 100%);border-color:#1d4ed8;box-shadow:0 1px 2px #2563eb40}.schedule-act--primary:hover{filter:brightness(1.06)}.schedule-act-pair{grid-template-columns:1fr 1fr;gap:6px;display:grid}.schedule-act--soft{color:#334155;background:#fff;border-color:#e2e8f0}.schedule-act--soft:hover{background:#f8fafc;border-color:#cbd5e1}.schedule-act--muted{color:#94a3b8;background:0 0;border-color:#0000;padding-top:4px;padding-bottom:4px;font-size:.72rem;font-weight:500}.schedule-act--muted:hover{color:#475569;background:#f9fafbe6}.schedule-act--warn:hover{color:#b91c1c}@media (width<=1020px){.schedule-list-columns{display:none}.schedule-card-item{grid-template-columns:2rem minmax(0,1fr);grid-template-areas:"idx main""side side""act act";row-gap:14px}.schedule-card-item__idx{grid-area:idx}.schedule-card-item__main{grid-area:main}.schedule-card-item__side{flex-flow:wrap;grid-area:side;align-items:flex-start}.schedule-card-money{flex:1;min-width:min(280px,100%)}.schedule-card-item__toolbar{border-top:1px solid #eceef5;border-left:none;grid-area:act;padding-top:14px;padding-left:0}.schedule-toolbar-strip{flex-flow:wrap;justify-content:stretch;align-items:center;gap:8px;max-width:none}.schedule-act--primary{flex:1;min-width:140px}.schedule-act-pair{flex:2;grid-template-columns:1fr 1fr;min-width:min(340px,100%);display:grid}.schedule-act--muted{flex:auto}}@media (width<=520px){.schedule-toolbar-strip .schedule-act-pair{width:100%}}.schedule-pill{letter-spacing:.03em;text-transform:uppercase;border-radius:6px;align-items:center;padding:3px 8px;font-size:.65rem;font-weight:700;display:inline-flex}.schedule-pill--overdue{color:#991b1b;background:#fee2e2}.schedule-pill--due_today,.schedule-pill--pick_today{color:#9a3412;background:#fed7aa}.schedule-pill--due_soon,.schedule-pill--pick_soon{color:#854d0e;background:#fef9c3}.modal-panel--schedule-detail{width:min(100vw - 24px,520px);max-width:520px}.schedule-detail-modal-body{max-height:min(68vh,580px);padding-top:4px}.schedule-detail-summary{background:#f8fafc;border:1px solid #eef0f6;border-radius:12px;gap:14px;margin-bottom:18px;padding:14px;display:grid}.schedule-detail-k{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;margin-bottom:4px;font-size:.58rem;font-weight:700;display:block}.schedule-detail-v{color:var(--text);margin:0;font-size:.875rem;line-height:1.45}.schedule-detail-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-detail-two-cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=440px){.schedule-detail-two-cols{grid-template-columns:1fr}}.schedule-detail-section-title{text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0 0 6px;font-size:.72rem;font-weight:700}.schedule-detail-lead{margin:0 0 14px;font-size:.79rem;line-height:1.45}.schedule-detail-totals{background:#fff;border:1px solid #e8ebf4;border-radius:10px;margin:0;padding:11px 12px}.schedule-detail-totals-row{flex-wrap:nowrap;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.schedule-detail-totals-row+.schedule-detail-totals-row{border-top:1px dashed #e5e7eb;margin-top:10px;padding-top:10px}.schedule-detail-totals-row dt{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;flex-shrink:0;margin:0;font-size:.65rem;font-weight:700}.schedule-detail-totals-row dd{margin:0}.schedule-detail-totals-row--due dt{color:#b45309}.schedule-detail-totals-row--due dd{color:#b45309;font-weight:800}.schedule-detail-deposit-mode{gap:8px;display:grid}.schedule-deposit-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.schedule-deposit-mode-card{text-align:left;color:#0f172a;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:4px;min-height:86px;padding:10px 12px;display:grid}.schedule-deposit-mode-card:hover{border-color:#0f766e;box-shadow:0 8px 20px #0f766e1f}.schedule-deposit-mode-card span{font-size:.74rem;font-weight:800}.schedule-deposit-mode-card strong{font-size:.96rem}.schedule-deposit-mode-card em{color:#64748b;font-size:.72rem;font-style:normal}.schedule-deposit-mode-card--up em{color:#b45309;font-weight:800}@media (width<=560px){.schedule-deposit-mode-grid{grid-template-columns:1fr}}.schedule-card-item:hover{border-color:#dde1eb}@media (width<=1100px){.schedule-search{width:100%;max-width:none;margin-left:0}.schedule-board__toolbar{flex-direction:column;align-items:stretch}}.directory-root .card-body{padding-top:16px}.card-head--directory{flex-direction:column;align-items:flex-start;gap:12px}@media (width>=640px){.card-head--directory{flex-direction:row;justify-content:space-between;align-items:center}}.directory-tabs{background:#eef2f7;border:1px solid #e2e8f0;border-radius:11px;gap:3px;padding:4px;display:inline-flex}.directory-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.directory-tab:hover{color:#0f172a}.directory-tab--active{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0f172a14}.directory-page,.directory-body{flex-direction:column;gap:20px;display:flex}.card-lead{margin:4px 0 0;font-size:.8125rem}.directory-add-card{border:1px solid var(--border,#e5e7eb);background:linear-gradient(165deg,#fafbfc 0%,#f4f6f9 100%);border-radius:14px;padding:18px 20px;box-shadow:0 1px 2px #0f172a0a}.directory-section-title{color:#0f172a;margin:0 0 14px;font-size:.95rem;font-weight:700}.directory-form-grid{gap:12px}.directory-add-hint{margin:14px 0 0;font-size:.8125rem}.directory-list-block{flex-direction:column;gap:12px;display:flex}.directory-list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.directory-list-caption{margin:4px 0 0;font-size:.75rem}.directory-count-pill{color:#3730a3;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:999px;padding:6px 12px;font-size:.75rem;font-weight:700}.directory-search-strip{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:12px;padding:10px 12px 12px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #0f172a0a}.directory-search-strip:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f61f}.directory-search-strip__row{align-items:center;gap:10px;min-width:0;display:flex}.directory-search-strip__icon{color:#94a3b8;flex-shrink:0;align-items:center;display:flex}.directory-search-strip__input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:8px 4px;font-size:.9375rem}.directory-search-strip__clear{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;flex-shrink:0;padding:6px 12px;font-size:.75rem;font-weight:600}.directory-search-strip__clear:hover{background:#e2e8f0}.directory-search-strip__hint{color:#64748b;margin:8px 0 0 28px;font-size:.75rem;line-height:1.45}.directory-search-strip__active-meta{color:#475569;margin:8px 0 0 28px;font-size:.75rem}.directory-search-strip__active-meta strong{color:#0f172a}.data-table-wrap.directory-table-shell{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:12px;margin:0;overflow:hidden}.directory-help{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:2px 12px}.directory-help summary{cursor:pointer;color:#475569;padding:10px 4px;font-size:.8125rem;font-weight:600;list-style-position:outside}.directory-help-body{margin:0 0 12px;padding-left:4px;font-size:.8125rem;line-height:1.55}.directory-empty{margin-top:8px}.directory-tier-toolbar{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}@media (width>=720px){.directory-tier-toolbar{flex-flow:wrap;align-items:flex-end}.directory-tier-toolbar .directory-search-strip{flex:1;min-width:260px}}.directory-tier-picker{flex-direction:column;gap:6px;min-width:200px;display:flex}.directory-tier-picker__label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.72rem;font-weight:700}.directory-tier-picker__select{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:10px;padding:10px 12px;font-size:.875rem;font-weight:600}.directory-tier-intro{margin-bottom:4px}.directory-subheading{color:#0f172a;margin:8px 0;font-size:.95rem;font-weight:700}@media (width<=640px){.sidebar-brand{padding:10px 12px}.nav-item{min-width:62px;padding:8px 6px}.nav-label{font-size:.72rem}.page-inner{padding:10px}.metrics-overview{gap:18px;padding:14px}.date-range-filter{flex-direction:column;align-items:stretch;gap:12px}.date-range-filter label{justify-content:space-between;width:100%}.date-range-filter input[type=date]{flex:1;min-width:0}.date-range-filter .btn-ghost,.content-filter-bar .btn-ghost{width:100%;margin-left:0}.content-filter-bar{flex-direction:column;align-items:stretch;gap:12px}.content-filter-bar__search{width:100%;min-width:0}.content-filter-bar__field{justify-content:space-between;width:100%}.content-filter-bar__field select{flex:1;min-width:0}.content-filter-bar__actions{justify-content:stretch;width:100%}.content-filter-bar__actions .btn-ghost,.content-filter-bar__actions .import-label{flex:auto;justify-content:center}.card-head__actions{justify-content:space-between;width:100%}:is(.dashboard-stats,.inventory-audit-grid,.payment-revenue-stats,.payment-revenue-stats:has(.stat-card--total),.payment-revenue-stats:not(:has(.stat-card--total)),.chart-grid,.swap-help-cards,.schedule-card-times){grid-template-columns:1fr}.inventory-audit-check,.inventory-audit-check__input{flex-direction:column;align-items:stretch}.inventory-audit-check__input input{width:100%}.data-table thead th,.data-table tbody td{padding:10px 8px}.modal-panel{max-height:92vh}.modal-form{gap:10px;padding:12px 12px 16px}.modal-field{gap:4px}.modal-field input,.modal-field select{padding:10px}.status-pill,.badge-inline,.swap-section-badge,.swap-section-badge--deal{padding:4px 8px;font-size:.7rem}}@media (width<=520px){.modal-backdrop{padding:8px}.modal-actions{padding:12px 12px 16px}.page-inner{padding:8px}.sidebar-nav{justify-content:flex-start}.nav-section+.nav-section{margin-left:4px;padding-left:6px}.nav-item{min-width:56px;padding:8px 6px}.nav-icon svg{width:18px;height:18px}.card-panel{padding:14px}.data-table-wrap{margin:0 -8px;padding:0 8px}.modal-panel{max-height:95vh}}@media (width<=640px){.modal-backdrop{padding:10px 8px max(10px, env(safe-area-inset-bottom));background:#0f172a8f;place-items:end stretch}.modal-backdrop--detail{align-items:end;padding-top:10px}.modal-panel,.modal-panel--compact,.modal-panel--detail,.modal-panel--rental-pick,.modal-panel--schedule-detail{width:100%;max-width:none;max-height:calc(100dvh - 20px - env(safe-area-inset-bottom));border-radius:14px 14px 0 0;flex-direction:column;display:flex;overflow:hidden}.modal-head{z-index:3;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffffa;align-items:center;padding:12px 12px 10px;position:sticky;top:0}.modal-head h2{font-size:.98rem;line-height:1.3}.modal-close{background:#fff;border:1px solid #e5e7eb;width:40px;height:40px}.modal-desc,.modal-guide,.modal-message{padding-left:12px;padding-right:12px}.modal-guide{margin:10px 12px 0;padding-left:0;padding-right:0}.modal-guide--flush{margin:0}.modal-desc{padding-top:10px}.modal-detail-scroll,.schedule-detail-modal-body{overscroll-behavior:contain;flex:1;min-height:0;max-height:none;padding:12px 12px 16px;overflow-y:auto}.modal-actions,.swap-modal-footer{z-index:3;padding:10px 12px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffffa;grid-template-columns:1fr;gap:8px;display:grid;position:sticky;bottom:0}.modal-actions .btn-primary,.modal-actions .btn-ghost,.modal-actions .btn-danger,.swap-modal-footer .btn-primary,.swap-modal-footer .btn-ghost{width:100%;min-height:42px}.filter-block,.swap-filters{grid-template-columns:1fr;gap:8px}.filter-block input,.filter-block select{min-height:42px;font-size:.95rem}.table-pagination{justify-content:space-between;gap:8px;margin-top:10px}.table-pagination .btn-sm{min-width:86px;min-height:38px}.table-pagination-meta{text-align:center;flex:1}.swap-modal-intro{padding:10px 12px 12px}.swap-modal-lead{font-size:.8rem}.schedule-swap-body{gap:10px;padding-top:0}.swap-section{box-shadow:none;border-radius:10px;padding:12px}.swap-section-head{grid-template-columns:1fr;gap:8px;display:grid}.swap-no-charge-toggle,.swap-section-badge{justify-self:start}.swap-draft-card__actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.swap-draft-card__actions .btn-sm{min-height:36px;padding-left:8px;padding-right:8px}.modal-panel--rental-pick .data-table-wrap{margin:0;padding:0;overflow:visible}.modal-panel--rental-pick .data-table{min-width:0;font-size:.82rem;display:block}.modal-panel--rental-pick .data-table thead{display:none}.modal-panel--rental-pick .data-table tbody{gap:10px;display:grid}.modal-panel--rental-pick .data-table tr{background:#fff;border:1px solid #e5e7eb;border-radius:10px;gap:8px;padding:12px;display:grid}.modal-panel--rental-pick .data-table tbody td{border:none;grid-template-columns:minmax(88px,.34fr) minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:0;display:grid}.modal-panel--rental-pick .data-table tbody td:before{content:"";color:#64748b;text-transform:uppercase;font-size:.72rem;font-weight:700}.modal-panel--rental-pick .data-table tbody td:first-child:before{content:"Mã"}.modal-panel--rental-pick .data-table tbody td:nth-child(2):before{content:"Mẫu"}.modal-panel--rental-pick .data-table tbody td:nth-child(3):before{content:"Nhóm"}.modal-panel--rental-pick .data-table tbody td:nth-child(4):before{content:"Cọc"}.modal-panel--rental-pick .data-table tbody td:nth-child(5):before{content:"Thuê"}.modal-panel--rental-pick .data-table tbody td:nth-child(6){grid-template-columns:1fr;margin-top:2px}.modal-panel--rental-pick .data-table tbody td:nth-child(6):before{content:none}.modal-panel--rental-pick .data-table tbody td:nth-child(6) .btn-sm{width:100%;min-height:40px}.modal-panel--rental-pick .data-table tbody tr:hover td{background:0 0}}@media (width<=380px){.modal-panel--rental-pick .data-table tbody td{grid-template-columns:1fr;gap:4px}.swap-draft-card__actions{grid-template-columns:1fr}}.client-page{color:#101828;background:radial-gradient(circle at 14% 0,#14b8a621,#0000 32%),linear-gradient(#f8fafc 0%,#eef4f7 100%);min-height:100vh;padding:24px}.client-hero{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd6;border:1px solid #cbd5e1c7;border-radius:16px;justify-content:space-between;align-items:center;gap:18px;max-width:1180px;margin:0 auto 18px;padding:18px;display:flex;box-shadow:0 18px 48px #0f172a14}.client-header{align-items:center;gap:14px;min-width:0;display:flex}.client-header img{object-fit:contain;background:#fff;border:1px solid #dbe5f1;border-radius:14px;flex-shrink:0;width:62px;height:62px;box-shadow:0 12px 24px #0f172a14}.client-eyebrow{color:#0f766e;text-transform:uppercase;letter-spacing:.06em;margin:0 0 2px;font-size:.76rem;font-weight:800}.client-header h1{letter-spacing:0;margin:0;font-size:clamp(1.35rem,4vw,2rem);line-height:1.12}.client-header p:not(.client-eyebrow){color:#667085;max-width:56ch;margin:6px 0 0}.client-hero-stats{flex-shrink:0;grid-template-columns:repeat(2,minmax(108px,1fr));gap:10px;display:grid}.client-hero-stats div{background:#f8fafc;border:1px solid #dbe5f1;border-radius:12px;padding:12px 14px}.client-hero-stats span{color:#0f766e;font-size:1.25rem;font-weight:800;line-height:1;display:block}.client-hero-stats small{color:#667085;margin-top:5px;font-size:.75rem;font-weight:700;display:block}.client-filters{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffc7;border:1px solid #cbd5e1c7;border-radius:14px;grid-template-columns:minmax(240px,1.25fr) minmax(190px,.8fr) minmax(150px,auto) minmax(150px,auto);gap:10px;max-width:1180px;margin:0 auto 18px;padding:14px;display:grid;box-shadow:0 12px 30px #0f172a0e}.client-filters label{color:#475467;text-transform:uppercase;letter-spacing:.04em;gap:6px;min-width:0;font-size:.76rem;font-weight:800;display:grid}.client-filters input,.client-filters select{color:#101828;width:100%;min-height:42px;font:inherit;text-transform:none;letter-spacing:0;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:.9rem;transition:border-color .16s,box-shadow .16s}.client-filters input:focus,.client-filters select:focus{border-color:#0f766e;outline:none;box-shadow:0 0 0 4px #0f766e24}.client-search-field{grid-column:span 1}.client-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;max-width:1180px;margin:0 auto;display:grid}.client-card{cursor:pointer;background:#fffffff0;border:1px solid #dbe5f1;border-radius:14px;gap:12px;min-height:150px;padding:13px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;position:relative;overflow:hidden;box-shadow:0 14px 34px #0f172a0f}.client-card:before{content:"";background:#cbd5e1;width:4px;position:absolute;inset:0 auto 0 0}.client-card:hover,.client-card:focus-visible{border-color:#9fb3c8;outline:none;transform:translateY(-2px);box-shadow:0 18px 42px #0f172a1a}.client-card.free:before{background:linear-gradient(#14b8a6,#0f766e)}.client-card.busy:before{background:linear-gradient(#f97316,#dc2626)}.client-card-head{grid-template-columns:82px minmax(0,1fr);gap:12px;display:grid}.client-card-head img,.client-noimg{object-fit:cover;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;width:82px;height:82px}.client-noimg{color:#98a2b3;place-items:center;font-size:.72rem;font-weight:700;display:grid}.client-card-head h3{color:#101828;margin:0;font-size:1rem;line-height:1.28}.client-card-head p{color:#667085;margin:4px 0 0;font-size:.82rem}.client-card-status{flex-wrap:wrap;gap:8px;display:flex}.tag{border-radius:999px;align-items:center;min-height:26px;padding:4px 9px;font-size:.75rem;font-weight:800;display:inline-flex}.tag-free{color:#115e59;background:#ccfbf1}.tag-busy{color:#9a3412;background:#ffedd5}.busy-list{color:#9a3412;background:#fff7ed;border-radius:10px;margin:0;padding:10px 10px 10px 26px;font-size:.8rem}.busy-list li+li{margin-top:4px}.client-note{color:#475467;background:#fffc;border:1px solid #dbe5f1;border-radius:12px;max-width:1180px;margin:10px auto;padding:12px 14px}.client-note--error{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.client-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.client-modal{background:#fff;border:1px solid #dbe5f1;border-radius:16px;width:min(720px,100%);max-height:min(86vh,820px);padding:16px;position:relative;overflow:auto;box-shadow:0 24px 70px #0f172a3d}.client-modal-close{color:#475467;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;width:36px;height:36px;font-size:1.35rem;line-height:1;position:absolute;top:10px;right:10px}.client-modal-close:hover{background:#f8fafc}.client-modal-head{grid-template-columns:124px minmax(0,1fr);gap:14px;margin-bottom:12px;padding-right:44px;display:grid}.client-modal-head img,.client-modal-head .client-noimg{border-radius:14px;width:124px;height:124px}.client-modal-head h2{color:#101828;margin:0;font-size:1.35rem;line-height:1.2}.client-modal-head p{color:#667085;margin:5px 0 0}.client-gallery-row{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px;margin-bottom:12px;display:grid}.client-gallery-row img{aspect-ratio:3/4;object-fit:cover;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;width:100%}.client-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.client-detail-grid p{color:#344054;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:0;padding:10px 12px;font-size:.9rem}.client-detail-grid strong{color:#101828}@media (width<=900px){.client-page{padding:14px}.client-hero{flex-direction:column;align-items:stretch}.client-filters{grid-template-columns:1fr 1fr}.client-search-field{grid-column:1/-1}.client-detail-grid{grid-template-columns:1fr}}@media (width<=560px){.client-page{padding:10px}.client-hero{border-radius:14px;padding:14px}.client-header{align-items:flex-start}.client-header img{border-radius:12px;width:52px;height:52px}.client-hero-stats,.client-filters,.client-grid,.client-modal-head{grid-template-columns:1fr}.client-card-head{grid-template-columns:74px minmax(0,1fr)}.client-card-head img,.client-card-head .client-noimg{width:74px;height:74px}.client-modal-backdrop{align-items:end;padding:10px 8px 0}.client-modal{border-radius:16px 16px 0 0;width:100%;max-height:calc(100dvh - 16px)}.client-modal-head{padding-right:44px}.client-modal-head img,.client-modal-head .client-noimg{aspect-ratio:3/4;width:100%;height:auto}}
