:root{--color-background-primary:#ffffff;--color-background-secondary:#f8fafc;--color-background-tertiary:#f3f6fb;--color-border-secondary:#dbe4ee;--color-border-tertiary:#e2e8f0;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--font-sans:Inter,"Segoe UI",Arial,sans-serif;--border-radius-lg:5px;--border-radius-md:3px;--shadow-soft:0 6px 16px rgba(15,23,42,.05);--color-success-bg:#eaf7ee;--color-success-text:#196c2e;--color-success-border:#b8e0c3;--color-warning-bg:#fff4e5;--color-warning-text:#9a5a00;--color-warning-border:#f1cf9b}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100%;overflow-x:hidden}body{font-family:var(--font-sans);font-size:14px;color:var(--color-text-primary);background:#eef3f9;padding:18px}.app-shell{display:flex;min-height:calc(100vh - 36px);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);overflow:hidden;background:var(--color-background-tertiary);position:relative}.sidebar-backdrop{display:none}.sidebar{width:240px;background:var(--color-background-primary);border-right:.5px solid var(--color-border-tertiary);display:flex;flex-direction:column;flex-shrink:0;min-height:100%}.sidebar-logo{padding:18px 16px;border-bottom:.5px solid var(--color-border-tertiary)}.logo-text{font-size:14px;font-weight:700;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.logo-sub{font-size:11px;color:var(--color-text-secondary);margin-top:4px}.nav-section{padding:8px 0}.nav-label{font-size:10px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding:6px 14px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;cursor:pointer;color:var(--color-text-secondary);border-left:3px solid transparent;text-decoration:none}.nav-item i{font-size:16px}.nav-item.active{color:#185FA5;border-left-color:#185FA5;background:#E6F1FB;font-weight:600}.nav-item.active i{color:#185FA5}.nav-item:hover:not(.active){background:var(--color-background-secondary)}.sidebar-footer{margin-top:auto;padding:14px;border-top:.5px solid var(--color-border-tertiary);display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:#B5D4F4;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#0C447C;flex-shrink:0}.user-info .name{font-size:13px;font-weight:600}.user-info .role{font-size:11px;color:var(--color-text-secondary);margin-top:2px}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{background:var(--color-background-primary);border-bottom:.5px solid var(--color-border-tertiary);padding:18px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:14px;box-shadow:0 4px 14px rgba(15,23,42,.03)}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:0 0 auto}.topbar-center{display:flex;align-items:center;justify-content:center;gap:14px;min-width:0;flex:1;text-align:center}.topbar-title{font-size:17px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.topbar-logo-title{font-size:30px;letter-spacing:.02em;font-weight:800}.topbar-subtitle{font-size:11px;color:var(--color-text-secondary);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex:0 0 auto}.menu-toggle{display:none;width:48px;height:48px;border:1px solid #d7e3ef;border-radius:4px;background:#fff;color:#185FA5;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px rgba(24,95,165,.05)}.menu-toggle i{font-size:22px}.menu-toggle-mobile{position:relative;z-index:3}.topbar-logo-mark{width:52px;height:52px;border:1px solid #d7e3ef;border-radius:4px;display:flex;align-items:center;justify-content:center;background:#f8fbff;color:#185FA5;flex-shrink:0}.topbar-logo-mark i{font-size:26px}.topbar-refresh,.topbar-icon-btn{border:1px solid #d7e3ef;background:#fff;min-width:116px;box-shadow:0 4px 12px rgba(15,23,42,.04)}.topbar-refresh-strong{font-weight:700;min-width:118px}.topbar-icon-btn i{color:#185FA5}.topbar-refresh span,.topbar-icon-btn span{display:inline-block}.btn{font-size:13px;padding:9px 12px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);cursor:pointer;background:var(--color-background-primary);color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;min-height:40px}.btn-primary{background:#185FA5;color:#fff;border-color:#185FA5}.btn i{font-size:14px}.content{flex:1;overflow-y:auto;padding:16px 20px}.tabs{display:flex;gap:0;border-bottom:.5px solid var(--color-border-tertiary);margin-bottom:16px;overflow:auto}.tab{padding:10px 16px;font-size:13px;cursor:pointer;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-.5px;display:inline-flex;text-decoration:none;white-space:nowrap}.tab.active{color:#185FA5;border-bottom-color:#185FA5;font-weight:600;text-decoration:none}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px;min-width:0}.check-group{justify-content:flex-end}.form-label{font-size:12px;color:var(--color-text-secondary)}.form-input,.form-select,textarea.form-input{padding:10px 12px;border:.5px solid var(--color-border-secondary);border-radius:var(--border-radius-md);font-size:14px;background:var(--color-background-primary);color:var(--color-text-primary);width:100%;min-height:42px}.section-card{background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow-soft)}.section-title{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px}.section-title i{font-size:16px;color:var(--color-text-secondary)}.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.metric{background:var(--color-background-secondary);border-radius:4px;padding:12px}.metric-label{font-size:11px;color:var(--color-text-secondary);margin-bottom:4px}.metric-value{font-size:18px;font-weight:700;color:var(--color-text-primary);word-break:break-word}.metric-value.highlight{color:#185FA5}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:4px}.price-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px}.price-table th{text-align:left;padding:9px 8px;font-size:11px;font-weight:700;color:var(--color-text-secondary);border-bottom:.5px solid var(--color-border-tertiary);white-space:nowrap}.price-table td{padding:9px 8px;border-bottom:.5px solid var(--color-border-tertiary);color:var(--color-text-primary);vertical-align:top}.price-table tr:last-child td{border-bottom:none}.price-table .total-row td{font-weight:700;color:#185FA5}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:99px;font-size:11px;font-weight:700}.badge-success{background:#EAF3DE;color:#3B6D11}.badge-warning{background:#FAEEDA;color:#854F0B}.badge-info{background:#E6F1FB;color:#185FA5}.alert-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;border:1px solid transparent;border-radius:4px;box-shadow:var(--shadow-soft);font-weight:600}.alert-banner i{font-size:18px;flex-shrink:0}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.alert-floating{position:sticky;top:0;z-index:8}.alert-close{margin-left:auto;border:none;background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.alert-close i{font-size:18px}.alert-banner.is-hiding{opacity:0;transform:translateY(-6px);transition:.35s ease}.save-toast{position:fixed;right:18px;top:82px;z-index:999999;pointer-events:none;opacity:1;transform:translateY(0) scale(1);transition:.3s ease}.save-toast:not(.is-visible){opacity:0;transform:translateY(-10px) scale(.98)}.save-toast.is-visible{opacity:1;transform:translateY(0) scale(1)}.save-toast-inner{min-width:320px;max-width:420px;background:#111827;color:#fff;border-radius:10px;box-shadow:0 20px 50px rgba(15,23,42,.32);padding:14px 16px;display:flex;align-items:flex-start;gap:10px;pointer-events:auto;border:1px solid rgba(255,255,255,.08)}.save-toast-inner i{font-size:18px;color:#86efac;flex-shrink:0;margin-top:2px}.save-toast-title{font-size:13px;font-weight:700;margin-bottom:2px}.save-toast-text{font-size:12px;line-height:1.45;color:#e5e7eb}.save-toast-close{margin-left:auto;border:none;background:transparent;color:#cbd5e1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.save-toast-close i{font-size:16px}.divider{height:.5px;background:var(--color-border-tertiary);margin:12px 0}.summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.summary-note{font-size:12px;color:var(--color-text-secondary)}.summary-note strong{color:var(--color-text-primary)}.summary-actions{display:flex;gap:8px;flex-wrap:wrap}.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.save-feedback{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:10px 12px;border-radius:4px}.save-feedback.success{background:#eaf7ee;color:#196c2e;border:1px solid #b8e0c3}.save-feedback.error{background:#fff4e5;color:#9a5a00;border:1px solid #f1cf9b}.dashboard-grid,.config-grid,.settings-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}.quick-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-link-card{display:block;padding:14px;border:1px solid var(--color-border-tertiary);border-radius:4px;background:var(--color-background-secondary);text-decoration:none;color:inherit}.quick-link-card strong{display:block;margin-bottom:4px}.quick-link-card span,.plain-copy,.muted,.mini-label{color:var(--color-text-secondary)}.brand-mini-logo{width:22px;height:22px;object-fit:contain;display:inline-block;vertical-align:middle}.topbar-logo-image{width:34px;height:34px;object-fit:contain;display:block}.brand-preview-card{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--color-border-tertiary);border-radius:4px;background:var(--color-background-secondary)}.brand-preview-mark{width:64px;height:64px;border:1px solid var(--color-border-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;background:#fff;color:#185FA5;overflow:hidden;flex-shrink:0}.brand-preview-mark img{width:100%;height:100%;object-fit:contain}.brand-preview-mark i{font-size:28px}.brand-preview-title{font-size:16px;font-weight:700}.brand-preview-sub{font-size:13px;color:var(--color-text-secondary);margin-top:4px}.brand-preview-meta{font-size:12px;color:var(--color-text-secondary);margin-top:3px}.brand-cover-preview{margin-bottom:12px;border:1px solid var(--color-border-tertiary);border-radius:4px;overflow:hidden;background:#fff}.brand-cover-preview img{display:block;width:100%;max-height:180px;object-fit:cover}.quote-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inner-card{margin-bottom:0;box-shadow:none;background:var(--color-background-secondary)}.status-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#E6F1FB;color:#185FA5}.status-pill.status-nháp{background:#fff4e5;color:#9a5a00}.status-pill.status-đã-gửi{background:#e8f1ff;color:#185FA5}.status-pill.status-đã-chốt{background:#eaf7ee;color:#196c2e}.status-pill.status-hủy{background:#fdeaea;color:#a52222}.mobile-quote-list{display:none}.mobile-quote-card{border:1px solid var(--color-border-tertiary);border-radius:4px;padding:12px;background:var(--color-background-secondary);margin-bottom:10px}.mobile-quote-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.desktop-quote-table{display:block}.plain-list{padding-left:18px;line-height:1.8;color:var(--color-text-secondary)}.customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.customer-card .customer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.customer-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.customer-stats div{background:var(--color-background-secondary);padding:10px 12px;border-radius:4px}.customer-stats strong{display:block;margin-top:4px}.status-list{display:grid;gap:10px}.status-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--color-background-secondary);border-radius:4px}.subheading{font-size:14px;font-weight:600;margin:16px 0 8px}.mini-subheading{font-size:12px;font-weight:600;color:var(--color-text-secondary);margin:10px 0 6px}.compact-table{margin-bottom:12px}.compact-table td,.compact-table th{font-size:11px}.check-group label{margin-top:28px;display:inline-flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.login-screen{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 36px)}.login-main{width:100%;max-width:520px;padding:24px}.login-card{padding:20px}.login-card .form-actions .btn{width:100%}@media (max-width:1024px){.app-shell{min-height:calc(100vh - 24px)}.form-grid,.result-grid,.customer-grid,.dashboard-grid,.config-grid,.settings-grid{grid-template-columns:1fr 1fr}.quick-links-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){body{padding:0}.app-shell{min-height:100vh;border:none;border-radius:0}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:.25s ease;z-index:20}.sidebar{position:fixed;left:0;top:0;bottom:0;width:82%;max-width:290px;transform:translateX(-100%);transition:.25s ease;z-index:30;box-shadow:var(--shadow-soft)}body.sidebar-open .sidebar{transform:translateX(0)}body.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.menu-toggle{display:inline-flex;box-shadow:0 8px 22px rgba(24,95,165,.18);background:#185FA5;color:#fff;border-color:#185FA5}.menu-toggle i{color:#fff}.topbar{padding:14px 14px;align-items:center;gap:10px}.topbar-left{gap:10px}.topbar-center{gap:10px}.topbar-logo-title{font-size:20px}.topbar-left,.topbar-right{flex:0 0 auto}.topbar-center{flex:1;min-width:0}.topbar-page-icon,.topbar-logo-mark{width:38px;height:38px;border-radius:4px}.topbar-page-icon i,.topbar-logo-mark i{font-size:18px}.topbar-subtitle{font-size:10px}.topbar-right{width:auto;display:flex;gap:6px}.topbar-icon-btn{display:none}.topbar-refresh{min-width:auto;padding:10px 12px;border-radius:4px;background:#185FA5;color:#fff;border-color:#185FA5}.topbar-refresh i{color:#fff}.topbar-refresh span{display:inline-block}.content{padding:14px}.form-grid,.result-grid,.customer-grid,.dashboard-grid,.config-grid,.settings-grid,.quick-links-grid,.quote-overview-grid{grid-template-columns:1fr}.section-card{padding:14px}.summary-row{flex-direction:column;align-items:flex-start}.form-actions .btn{width:100%}.price-table{min-width:560px}.price-table td .form-input,.price-table td .form-select{min-width:140px}.desktop-quote-table{display:none}.mobile-quote-list{display:block}.save-toast{left:12px;right:12px;top:72px}.save-toast-inner{min-width:0;max-width:none;width:100%}.sidebar-footer{padding-bottom:calc(14px + env(safe-area-inset-bottom))}.login-screen{min-height:100vh;padding:12px}.login-main{padding:12px;max-width:100%}}@media (max-width:480px){.topbar-title{font-size:14px;max-width:135px}.topbar-logo-title{font-size:18px;max-width:140px}.topbar-subtitle{max-width:140px}.topbar-page-icon,.topbar-logo-mark{width:34px;height:34px;border-radius:3px}.topbar-page-icon i,.topbar-logo-mark i{font-size:16px}.logo-text{font-size:13px}.nav-item{font-size:14px;padding:11px 14px}.btn{width:100%}.topbar-right{flex-direction:row;align-items:center}.menu-toggle{width:44px;height:44px;border-radius:4px}.topbar-refresh{min-width:auto;padding:0 12px;min-height:44px}.metric-value{font-size:16px}.section-title{font-size:13px}.price-table{min-width:520px}.login-card{padding:16px}.form-label{font-size:11px}.metric{padding:10px}.section-card .plain-copy{font-size:13px}}