:root{--ink:#172033;--muted:#748096;--line:#e8ebf1;--soft:#f7f8fb;--primary:#315cf5;--primary-dark:#2346c9;--green:#12a875;--red:#df5260;--orange:#e69524;--purple:#8b5cf6;--shadow:0 10px 30px rgba(28,39,74,.06)}*{box-sizing:border-box}body{margin:0;background:var(--soft);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:#111827;color:#aeb8ca;display:flex;flex-direction:column;padding:25px 16px;flex:none}.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:#fff;font-size:18px;letter-spacing:-.4px}.brand-mark{background:linear-gradient(135deg,#6381ff,#315cf5);border-radius:10px;color:#fff;display:inline-grid;place-items:center;width:37px;height:37px;font-size:12px;letter-spacing:-1px}.sidebar-label{font-size:10px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:#67738a;margin:42px 12px 10px}.sidebar-label-bottom{margin-top:auto}.side-nav{display:grid;gap:4px}.side-nav a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:9px;font-weight:600;transition:.2s}.side-nav a span{width:20px;text-align:center;font-size:18px;color:#7e8ba5}.side-nav a:hover,.side-nav a.active{background:#1e293b;color:#fff}.side-nav a.active span{color:#6f8bff}.sidebar-footer{border-top:1px solid #273246;margin-top:24px;padding:17px 10px 0;display:grid;gap:4px}.sidebar-footer strong{color:#fff;font-size:12px}.sidebar-footer small{font-size:11px;color:#71809a;overflow:hidden;text-overflow:ellipsis}.main-area{flex:1;min-width:0}.topbar{height:91px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.topbar h1{font-size:20px;line-height:1.2;margin:3px 0 0;letter-spacing:-.5px}.eyebrow{font-size:10px;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:1.1px}.menu-toggle{display:none;border:0;background:transparent;font-size:22px}.avatar{height:36px;width:36px;border-radius:50%;background:#e8edff;color:var(--primary);display:grid;place-items:center;font-weight:800}.content{max-width:1440px;margin:auto;padding:36px 42px}.footer{text-align:center;color:#9aa4b5;font-size:11px;padding:0 42px 28px}.hero-row,.page-actions,.panel-heading,.form-submit,.status-panel,.action-group{display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-row{margin-bottom:32px}.hero-row h2,.page-actions h2{margin:5px 0 0;font-size:27px;letter-spacing:-1px}.muted{color:var(--muted);margin:6px 0;line-height:1.55}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:25px}.stat-card,.panel,.quote-sheet{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.stat-card{padding:20px;display:flex;align-items:flex-start;gap:14px}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:11px}.stat-card strong{display:block;font-size:22px;margin:7px 0 5px;letter-spacing:-.7px}.stat-icon{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#fff}.stat-icon.blue{background:#5274ef}.stat-icon.purple{background:var(--purple)}.stat-icon.orange{background:var(--orange)}.stat-icon.green{background:var(--green)}.panel{padding:23px;margin-bottom:20px}.panel-heading{margin-bottom:22px}.panel-heading h3{margin:0;font-size:15px}.panel-heading p{font-size:12px}.btn{border:0;border-radius:8px;padding:11px 16px;font-weight:700;display:inline-flex;justify-content:center;align-items:center;gap:8px;white-space:nowrap;transition:.2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-light{background:#f0f2f6;color:#4c576c}.btn-light:hover{background:#e6e9f0}.btn-sm{font-size:12px;padding:8px 12px}.btn-block{width:100%}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:700px}th{text-align:left;color:#8a95a8;font-size:10px;text-transform:uppercase;letter-spacing:.65px;font-weight:800;padding:12px 13px;border-bottom:1px solid var(--line)}td{padding:15px 13px;border-bottom:1px solid #f0f2f6;color:#5d687b;vertical-align:middle}td strong{color:var(--ink)}tbody tr:last-child td{border-bottom:0}.table-sub{display:block;font-size:11px;color:#a0a9b8;margin-top:4px}.table-action{border:0;background:none;color:var(--primary);font-size:12px;font-weight:700;padding:4px}.actions-cell{display:flex;gap:5px}.badge,.status-select{border-radius:99px;font-weight:700;font-size:11px}.badge{padding:6px 9px}.status-select{border:0;padding:7px 26px 7px 10px;font-weight:700;outline:0}.neutral{background:#eef0f4;color:#707b8e}.info{background:#e8efff;color:#4164d5}.success{background:#e4f8f0;color:#118c63}.danger{background:#ffeaed;color:#c44350}.danger-text{color:var(--red)!important}.empty-state{text-align:center;padding:42px 20px;color:var(--muted)}.empty-state.compact{padding:25px}.empty-state>div{font-size:28px;color:#a7b1c3}.empty-state h3{color:var(--ink);margin:10px 0 0}.empty-state p{margin:8px 0 18px}.two-columns{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(400px,1.2fr);gap:20px;margin-top:25px}.stack{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid.three{grid-template-columns:repeat(3,1fr)}label{display:grid;gap:7px;color:#536075;font-size:12px;font-weight:700}input,select,textarea{width:100%;border:1px solid #dfe4ed;border-radius:7px;background:#fff;color:var(--ink);padding:11px 12px;outline:0;transition:.2s}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#7790ff;box-shadow:0 0 0 3px #eaf0ff}.optional{font-weight:500;color:#a4adbb;font-size:11px}.category-list,.supplier-list{display:grid;gap:2px}.category-item,.supplier-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #f0f2f6}.category-item:last-child,.supplier-item:last-child{border-bottom:0}.category-symbol,.supplier-avatar{width:34px;height:34px;border-radius:9px;background:#edf1ff;color:var(--primary);display:grid;place-items:center;font-weight:800;flex:none}.category-info,.supplier-info{display:grid;gap:4px;min-width:0;flex:1}.category-info strong,.supplier-info strong{font-size:13px}.category-info small,.supplier-info small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count-pill{font-size:10px;color:#7b879a;background:#f2f4f7;border-radius:99px;padding:5px 8px}.icon-btn{background:none;border:0;font-size:21px;line-height:1;padding:3px}.filter-bar{display:flex;gap:10px;margin-bottom:20px}.filter-bar select{max-width:210px}.search-input{position:relative;flex:1}.search-input span{position:absolute;left:12px;top:10px;font-size:22px;color:#8994a7}.search-input input{padding-left:37px}.form-layout{display:grid;gap:0;max-width:1000px;margin-top:25px}.form-submit{padding:0 2px 25px}.form-submit .btn{margin-left:auto}.check-label{display:flex;align-items:center;display:flex;gap:8px}.check-label input{width:17px;height:17px}.calc-box{background:#effcf7;border:1px solid #d5f6e9;border-radius:7px;display:grid;align-content:center;padding:0 14px}.calc-box span{font-size:11px;color:#529b7e;font-weight:700}.calc-box strong{font-size:20px;color:var(--green);margin-top:3px}.quote-item{display:grid;grid-template-columns:minmax(180px,1fr) 110px 80px 110px 28px;align-items:center;gap:10px;margin-bottom:10px}.unit-price,.line-total{font-size:12px;color:#69758a}.line-total{font-weight:800;color:var(--ink);text-align:right}.quote-summary{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:30px;margin-top:20px;padding-top:18px}.quote-summary>div{display:grid;gap:5px}.quote-summary span{font-size:11px;color:var(--muted)}.quote-summary strong{font-size:16px}.quote-summary>div:last-child strong{font-size:20px;color:var(--primary)}.quote-summary label{display:flex;align-items:center;gap:8px}.quote-summary input{width:100px}.quote-sheet{padding:44px;max-width:1000px;margin:25px 0}.quote-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:32px;border-bottom:1px solid var(--line)}.quote-meta{text-align:right;display:grid;gap:5px}.quote-meta strong{font-size:18px;letter-spacing:1.5px}.quote-meta span{font-weight:800;color:var(--primary)}.quote-meta small{font-size:11px;color:var(--muted)}.quote-client{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:25px;padding:28px 0}.quote-client div{display:grid;align-content:start;gap:6px}.quote-client span,.quote-notes>span{font-size:9px;color:#9aa4b5;letter-spacing:1px;font-weight:800}.quote-client strong{font-size:14px}.quote-client small{color:#69758a}.quote-bottom{display:grid;grid-template-columns:1fr 270px;gap:40px;padding-top:28px}.quote-notes p{color:#69758a;line-height:1.6;margin:10px 0}.quote-notes small{color:#9aa4b5}.totals{display:grid;gap:12px}.totals div{display:flex;justify-content:space-between;color:#69758a}.totals strong{color:var(--ink)}.totals .total-line{border-top:1px solid var(--line);padding-top:14px;color:var(--ink);font-size:16px}.totals .total-line strong{color:var(--primary);font-size:21px}.status-panel{padding:18px 22px}.status-panel h3{margin:0;font-size:14px}.inline-form{display:inline}.alert{border-radius:9px;padding:13px 16px;margin-bottom:18px;font-size:13px;font-weight:600}.alert.success{color:#117c59}.alert.danger{color:#b33c48}.auth-page,.install-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 0,#eaf0ff,transparent 40%),var(--soft)}.auth-card{width:min(420px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:18px;padding:42px;box-shadow:var(--shadow)}.brand-centered{justify-content:center;margin-bottom:35px}.auth-card h1{font-size:25px;text-align:center;margin:0 0 8px}.auth-card>.muted{text-align:center;margin-bottom:28px}.auth-help{text-align:center;color:var(--muted);font-size:12px;margin:24px 0 0}.auth-help a{color:var(--primary);font-weight:700}.install-wrap{width:min(920px,calc(100% - 32px));padding:40px 0}.install-wrap>.brand{justify-content:center;margin-bottom:28px}.install-intro{text-align:center;margin-bottom:25px}.install-intro h1{margin:8px 0;font-size:30px}.install-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.install-form .btn-block,.install-form~.install-foot{grid-column:1/-1}.install-success{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);text-align:center;padding:50px 25px}.success-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 15px;background:#e4f8f0;color:var(--green);font-size:27px;border-radius:50%}.install-success h2{margin:0 0 7px}.install-success .btn{margin-top:20px}.install-foot{text-align:center;color:#a2abba;font-size:11px;margin-top:25px}@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.content{padding:30px 25px}.topbar{padding:0 25px}}@media(max-width:760px){.sidebar{position:fixed;z-index:10;left:-260px;top:0;bottom:0;transition:.25s}.sidebar.open{left:0}.menu-toggle{display:block;margin-right:12px}.topbar{justify-content:flex-start;gap:10px}.topbar>div:nth-child(2){flex:1}.topbar-actions{display:none}.content{padding:24px 16px}.footer{padding:0 16px 24px}.hero-row,.page-actions{align-items:flex-start;flex-direction:column}.hero-row .btn,.page-actions>.btn,.page-actions>.action-group{width:100%}.page-actions>.action-group{display:flex}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px 12px;gap:9px}.stat-card strong{font-size:18px}.stat-card small{font-size:10px}.stat-icon{width:32px;height:32px;font-size:11px}.two-columns,.install-form{grid-template-columns:1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.panel{padding:18px}.filter-bar{flex-wrap:wrap}.filter-bar .search-input{flex-basis:100%}.filter-bar select{max-width:none;flex:1}.quote-item{grid-template-columns:1fr 80px 70px 25px}.quote-item .unit-price{grid-column:1}.quote-item .line-total{text-align:left}.quote-summary{gap:15px;flex-wrap:wrap;justify-content:space-between}.quote-summary>div:last-child{margin-left:auto}.quote-sheet{padding:23px 16px}.quote-client,.quote-bottom{grid-template-columns:1fr;gap:18px}.quote-header{padding-bottom:22px}.quote-header .brand{font-size:15px}.quote-meta strong{font-size:13px}.status-panel{align-items:flex-start;flex-direction:column}.status-panel .action-group{width:100%}.status-panel select{flex:1}.install-wrap{padding:30px 0}.install-form .panel{margin-bottom:0}.auth-card{padding:32px 23px}}@media print{body{background:#fff}.sidebar,.topbar,.footer,.no-print{display:none!important}.content{padding:0}.quote-sheet{box-shadow:none;border:0;margin:0;max-width:none}.quote-sheet .table-wrap{overflow:visible}table{min-width:0}.quote-sheet{padding:20px}.quote-header{padding-top:15px}}
 
.modal-backdrop{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(17,24,39,.58);backdrop-filter:blur(4px);overflow-y:auto}.modal-backdrop.open{display:flex}.modal{width:min(620px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;border:1px solid #e3e7ef;border-radius:18px;padding:27px;box-shadow:0 24px 70px rgba(10,18,39,.22);animation:modal-in .18s ease-out}.modal-wide{width:min(760px,100%)}.modal-xl{width:min(980px,100%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-header h3{font-size:21px;margin:5px 0 0;letter-spacing:-.5px}.modal-close{border:0;background:#f1f3f7;color:#69758a;width:32px;height:32px;border-radius:50%;font-size:23px;line-height:1}.modal-close:hover{background:#e6eaf1;color:var(--ink)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:7px}.modal-section-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:8px;margin-bottom:8px}.modal-section-title strong,.modal-section-title small{display:block}.modal-section-title small{font-size:11px;color:var(--muted);margin-top:4px}.modal-open{overflow:hidden}.logo-preview{min-height:108px;border:1px dashed #d7deea;border-radius:12px;background:#fafbfe;display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px;padding:15px}.logo-preview img{max-width:230px;max-height:75px;object-fit:contain}.logo-preview span{height:48px;width:48px;border-radius:12px;background:linear-gradient(135deg,#6381ff,#315cf5);display:grid;place-items:center;color:#fff;font-weight:800}.logo-preview small{color:var(--muted)}.profile-submit{display:flex;align-items:end}.quote-logo{max-width:120px;max-height:37px;object-fit:contain}.quote-header .quote-logo+.brand-mark{display:none}@keyframes modal-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.modal-backdrop{padding:12px}.modal{max-height:calc(100vh - 24px);padding:20px;border-radius:15px}.modal-header{margin-bottom:19px}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.modal-section-title{align-items:flex-start;flex-direction:column}.modal-section-title .btn{width:100%}.profile-submit{align-items:stretch}.profile-submit .btn{width:100%}.quote-logo{max-width:85px;max-height:30px}}
 
.btn-success{background:#12a875;color:#fff}.btn-success:hover{background:#0d8c60}.menu-logo{width:40px;height:40px;object-fit:contain;border-radius:9px;background:#fff;padding:3px}.brand-menu{margin-bottom:2px}.login-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 auto 32px;color:var(--ink);font-size:18px;text-align:center}.auth-logo{display:block;max-width:200px;max-height:86px;object-fit:contain}.stock-stats{grid-template-columns:repeat(2,minmax(0,280px))}.alert-panel{border-color:#ffe2b7}.low-stock-list{display:flex;flex-wrap:wrap;gap:10px}.low-stock-list span{background:#fff7e9;border:1px solid #ffe5ba;color:#825a16;border-radius:8px;padding:10px 12px;font-size:12px}.low-stock-list small{color:#aa7c2b}@media(max-width:760px){.stock-stats{grid-template-columns:1fr}.auth-logo{max-width:150px;max-height:66px}.menu-logo{width:36px;height:36px}}
