:root{--navy:#111c2f;--navy-2:#192842;--green:#76c043;--green-dark:#4c9228;--blue:#3d78d8;--paper:#f4f7f5;--card:#fff;--ink:#17211c;--muted:#6c766f;--line:#dfe6e1;--soft:#eef3ef;--danger:#c5453b;--warning:#d89525;--shadow:0 12px 34px rgba(17,28,47,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:14px/1.45 Inter,Segoe UI,Arial,sans-serif;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h2{font-size:19px;margin-bottom:4px}h3{font-size:15px}small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.num{text-align:right!important;white-space:nowrap}.erp-body{min-height:100vh}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#d7dfdc;display:flex;flex-direction:column;z-index:40}.brand{height:84px;padding:18px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand b{display:block;color:#fff;font-size:15px}.brand small{color:#91a09a;margin:1px 0 0}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:linear-gradient(145deg,var(--green),#4b9c2d);color:#fff;font-weight:900;letter-spacing:-1px;box-shadow:0 8px 24px rgba(118,192,67,.2)}.brand-mark.large{width:60px;height:60px;border-radius:16px;font-size:20px}.side-nav{padding:14px 10px;overflow:auto}.side-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;margin:3px 0;border-radius:9px;color:#afbbb6;transition:.15s}.side-nav a:hover{color:#fff;background:rgba(255,255,255,.06)}.side-nav a.active{color:#fff;background:rgba(118,192,67,.15);box-shadow:inset 3px 0 var(--green)}.nav-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:rgba(255,255,255,.07);font-size:11px;font-weight:800}.side-nav a.active .nav-icon{background:var(--green);color:#12200e}.sidebar-foot{margin-top:auto;padding:17px 20px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-foot span{display:block;color:#fff;font-weight:700}.sidebar-foot a{display:inline-block;margin-top:8px;color:#9faaa5;font-size:12px}.workspace{min-width:0}.workspace-head{height:84px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:30}.workspace-head h1{font-size:22px;margin:0}.eyebrow{display:block;font-size:9px;font-weight:900;letter-spacing:1.5px;color:var(--green-dark);margin-bottom:3px}.head-actions{margin-left:auto}.menu-toggle{display:none;border:0;background:var(--soft);width:40px;height:40px;border-radius:9px}.content{padding:25px;max-width:1680px;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:39px;padding:9px 15px;border:1px solid transparent;border-radius:8px;font-weight:750;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--green);color:#10200d}.btn-primary:hover{background:#68b33a}.btn-soft{background:var(--soft);color:var(--ink);border-color:var(--line)}.btn-plain{background:transparent;border-color:var(--line)}.btn-block{width:100%}.button-row,.head-actions{display:flex;gap:8px;align-items:center}.icon-btn{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.danger-text{color:var(--danger)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 2px 3px rgba(17,28,47,.015);margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-head h2{margin-bottom:2px}.panel-head p{margin:0;color:var(--muted);font-size:12px}.panel-head>a{color:var(--green-dark);font-weight:700;font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px}.stats-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{min-height:125px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 2px 3px rgba(17,28,47,.015)}.stat-card.accent{background:linear-gradient(145deg,var(--navy),var(--navy-2));color:#fff;border:0}.stat-card span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}.stat-card.accent span,.stat-card.accent small{color:#b7c2bd}.stat-card strong{font-size:20px;margin:8px 0 1px;letter-spacing:-.4px}.stat-card.action-card{align-items:center;text-align:center}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px}.split-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr);gap:18px}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 10px;border-bottom:1px solid #e9eeeb;text-align:left;vertical-align:middle}th{font-size:10px;letter-spacing:.45px;text-transform:uppercase;color:var(--muted);font-weight:850;background:#fafcfb}tbody tr:hover{background:#fbfdfb}tbody tr:last-child td{border-bottom:0}.table-link{font-weight:800;color:#285eab}.tag{display:inline-flex;padding:4px 7px;background:#edf1f6;border-radius:5px;color:#526174;font-size:10px;text-transform:capitalize}.tag-green{background:#e9f6e3;color:#3f7e23}.status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:capitalize;background:#edf0ee;color:#5f6963}.status-paid,.status-completed,.status-active{background:#e6f5de;color:#37781b}.status-partial,.status-pending,.status-in_progress,.status-claim{background:#fff1d8;color:#986413}.status-unpaid,.status-expired,.status-void,.status-cancelled{background:#fbe6e3;color:#a33b32}.status-planned{background:#e7eefb;color:#3866a6}.amount-due{color:var(--danger)!important}.empty{text-align:center!important;color:var(--muted);padding:28px!important}.selected-row{background:#f1f8ed}.form-grid{display:grid;gap:13px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;color:#4d5751}input,select,textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid #ccd7d0;border-radius:7px;background:#fff;color:var(--ink);outline:none}textarea{resize:vertical;min-height:80px}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(118,192,67,.12)}.check-label{display:flex;flex-direction:row;align-items:center;gap:8px;padding-top:20px}.check-label input{width:17px;min-height:17px}.check-stack{display:flex;flex-direction:column;justify-content:center}.check-stack .check-label{padding:4px 0}.search-row{display:flex;gap:8px;margin-bottom:15px}.search-row input{max-width:440px}.page-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--line)}.page-tabs a{padding:10px 14px;color:var(--muted);font-weight:700;border-bottom:2px solid transparent}.page-tabs a.active{color:var(--ink);border-color:var(--green)}.segmented{display:flex;padding:3px;background:var(--soft);border-radius:8px}.segmented a{padding:6px 9px;font-size:10px;border-radius:6px;color:var(--muted)}.segmented a.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.07)}.flash{position:relative;padding:13px 42px 13px 14px;margin-bottom:17px;border-radius:9px;font-weight:650}.flash button{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:20px}.flash-success{background:#e9f6e3;color:#356f1c;border:1px solid #cde9bf}.flash-error{background:#fce8e5;color:#943b33;border:1px solid #f2c7c1}.app-dialog{width:min(620px,94vw);border:0;border-radius:14px;padding:0;box-shadow:0 30px 90px rgba(17,28,47,.28)}.app-dialog.wide{width:min(900px,94vw)}.app-dialog::backdrop{background:rgba(17,28,47,.6);backdrop-filter:blur(3px)}.app-dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:18px}.dialog-head p{font-size:12px;color:var(--muted);margin:0}.app-dialog .btn-block{margin-top:18px}.document-head{border-top:3px solid var(--green)}.document-badge{padding:7px 10px;border-radius:6px;background:#e7f5df;color:#39751d;font-size:10px;font-weight:900;letter-spacing:.7px}.document-badge.blue{background:#e8effb;color:#315e9e}.document-table select{min-width:230px}.document-table input{min-width:82px}.document-table th,.document-table td{padding:8px 6px}.document-bottom{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.totals-card>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.totals-card .grand-total{padding:15px 0;border:0}.grand-total strong{font-size:22px}.payment-panel h2{margin-bottom:15px}.barcode-box{display:flex;align-items:end;gap:15px;background:#f0f5f1;padding:12px;border-radius:9px;margin-bottom:16px}.barcode-box label{flex:1}.barcode-box span{font-size:11px;color:var(--muted);padding-bottom:10px}.bar-chart{height:190px;display:flex;gap:10px;align-items:end;justify-content:space-around;padding:18px 6px 0}.bar-item{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px;min-width:38px}.bar{width:min(38px,70%);min-height:4px;background:linear-gradient(180deg,var(--green),#4c9228);border-radius:7px 7px 2px 2px}.bar-value{font-size:9px;color:var(--muted);white-space:nowrap}.account-list>div,.alert-list>div,.component-list>div,.mini-ledger>div,.report-lines>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.account-list>div:last-child,.alert-list>div:last-child,.component-list>div:last-child,.mini-ledger>div:last-child{border-bottom:0}.party-hero{display:flex;align-items:center;gap:13px;padding-bottom:18px;border-bottom:1px solid var(--line)}.party-hero h2{margin:0}.party-hero p{margin:2px 0 0;color:var(--muted)}.avatar{width:46px;height:46px;border-radius:13px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900}.detail-list{margin:15px 0}.detail-list>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0}.detail-list dt{color:var(--muted);font-size:11px}.detail-list dd{margin:0;text-align:right}.empty-state{text-align:center;padding:50px 20px;color:var(--muted)}.empty-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:var(--soft);margin:0 auto 15px;color:var(--green-dark);font-weight:900;font-size:20px}.warehouse-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.warehouse-cards article{border:1px solid var(--line);border-radius:9px;padding:14px}.warehouse-code{font-size:10px;font-weight:900;color:var(--green-dark)}.warehouse-cards h3{margin:6px 0 3px}.warehouse-cards p{margin:0;color:var(--muted);font-size:11px}.line-stack{margin:16px 0 10px}.transfer-line{display:grid;grid-template-columns:1fr 140px 34px;gap:8px;margin-bottom:8px}.bom-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bom-cards article{border:1px solid var(--line);border-radius:10px;padding:14px}.bom-cards h3{margin:8px 0 2px}.bom-cards p{color:var(--muted);font-size:11px}.bom-cards dl{display:flex;justify-content:space-between;margin:13px 0 0;padding-top:10px;border-top:1px solid var(--line)}.bom-cards dl div{text-align:right}.bom-cards dt{font-size:9px;text-transform:uppercase;color:var(--muted)}.bom-cards dd{margin:2px 0 0;font-weight:800}.inline-form{display:flex;align-items:center;gap:5px}.inline-form select{min-width:85px}.inline-complete{display:flex;gap:5px;margin-top:5px}.inline-complete input{width:85px;min-height:34px}.inline-complete .btn{min-height:34px;padding:6px 9px}.report-filter form{display:flex;align-items:end;gap:10px}.report-filter label{max-width:180px}.report-lines .report-total{padding-top:15px;border-top:2px solid var(--ink);font-size:16px}.notice-box{padding:12px;background:#fff5e5;border:1px solid #f2dfbb;border-radius:8px;color:#79551b;font-size:11px;margin:15px 0 0}.role-list>div{padding:10px 0;border-bottom:1px solid var(--line)}.role-list b{display:block;text-transform:capitalize}.role-list span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.auth-body{min-height:100vh;background:var(--navy);display:grid;place-items:center;padding:30px}.auth-wrap{width:min(1000px,100%);display:grid;grid-template-columns:1.1fr .8fr;align-items:center;gap:70px}.auth-intro{color:#fff}.auth-intro h1{font-size:46px;line-height:1.08;max-width:650px;letter-spacing:-1.7px;margin:14px 0}.auth-intro>p:last-child{color:#afbbb6;font-size:17px;max-width:540px}.auth-card{background:#fff;padding:34px;border-radius:17px;box-shadow:0 30px 90px rgba(0,0,0,.26)}.auth-card h2{font-size:25px;margin:0}.auth-card>p{color:var(--muted);margin:4px 0 18px}.auth-card label{margin:14px 0}.auth-card small{text-align:center;margin-top:13px}.print-page{background:#e8ece9;padding:30px}.print-sheet{width:min(900px,100%);margin:auto;background:#fff;padding:45px;box-shadow:var(--shadow)}.print-head{display:flex;justify-content:space-between;gap:30px;border-bottom:2px solid var(--navy);padding-bottom:20px}.print-brand h1{color:var(--green-dark);margin:0}.print-meta{text-align:right}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:25px 0}.print-total{margin-left:auto;width:min(360px,100%)}.print-total>div{display:flex;justify-content:space-between;padding:7px 0}.print-total .grand{border-top:2px solid var(--ink);font-size:18px;margin-top:7px;padding-top:12px}.print-actions{width:min(900px,100%);margin:0 auto 12px;display:flex;gap:8px}.receipt{width:80mm;margin:20px auto;background:#fff;padding:5mm;font-size:12px}.receipt h2{text-align:center;margin:0}.receipt .receipt-meta{text-align:center}.receipt-line{padding:7px 0;border-bottom:1px dashed #bbb}.receipt-row{display:flex;justify-content:space-between;gap:10px}.receipt-total{font-size:16px;font-weight:900}.receipt-actions{display:flex;gap:5px;margin-top:15px}.receipt-actions .btn{flex:1}.install-card{width:min(760px,94vw);margin:36px auto;padding:34px;background:#fff}.install-card h1{margin:0;color:var(--green-dark)}
.warranty-result{margin-top:18px;padding:17px;border-radius:10px;border:1px solid var(--line)}.warranty-result h3{margin:12px 0 5px}.warranty-result p{margin:0;line-height:1.8}.warranty-valid{background:#f1faec;border-color:#cfe8c3}.warranty-expired{background:#fff1ef;border-color:#efcbc6}
@media(max-width:1250px){.stats-grid{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:248px;transition:.2s;box-shadow:20px 0 50px rgba(0,0,0,.2)}.sidebar.open{left:0}.menu-toggle{display:block}.content{padding:18px}.dashboard-grid,.two-column,.split-layout,.document-bottom{grid-template-columns:1fr}.workspace-head{padding:0 18px}.head-actions{display:none}.party-detail{order:-1}.auth-wrap{grid-template-columns:1fr;gap:30px;max-width:520px}.auth-intro h1{font-size:35px}.auth-intro>p:last-child{display:none}.auth-intro{text-align:center}.brand-mark.large{margin:auto}}
@media(max-width:650px){.stats-grid,.stats-grid.compact{grid-template-columns:repeat(2,1fr)}.stat-card{min-height:105px;padding:14px}.stat-card strong{font-size:17px}.form-grid.two,.form-grid.three,.form-grid.four{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.panel{padding:15px;border-radius:9px}.content{padding:12px}.workspace-head{height:72px}.workspace-head h1{font-size:18px}.page-tabs{overflow:auto}.segmented{display:none}.panel-head{align-items:flex-start}.panel-head .button-row{flex-direction:column;align-items:stretch}.search-row{flex-wrap:wrap}.document-table{margin:0 -15px;width:calc(100% + 30px)}.document-table table{min-width:900px}.warehouse-cards,.bom-cards{grid-template-columns:1fr}.transfer-line{grid-template-columns:1fr 100px 34px}.report-filter form{flex-wrap:wrap}.auth-body{padding:16px}.auth-intro h1{font-size:28px}.auth-card{padding:24px}.print-page{padding:0}.print-sheet{padding:20px}.print-grid{grid-template-columns:1fr}.print-head{flex-direction:column}.print-meta{text-align:left}}
@media print{.sidebar,.workspace-head,.page-tabs,.flash,.print-actions,.no-print,.btn{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.panel{box-shadow:none;break-inside:avoid}.print-page{background:#fff;padding:0}.print-sheet{box-shadow:none;width:100%;padding:0}.receipt{width:72mm;margin:0;padding:0}body{background:#fff}}
