:root{--nav:#172032;--blue:#2759d7;--ink:#182033;--muted:#6e7788;--line:#e2e6ec;--bg:#f4f6fa;--white:#fff;--green:#18805a;--red:#c83f49;--amber:#b26c00}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}aside{position:fixed;inset:0 auto 0 0;width:238px;background:var(--nav);color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:8}.logo{display:flex;align-items:center;gap:11px;padding:0 8px 25px}.logo>span{height:42px;width:42px;border-radius:10px;background:linear-gradient(145deg,#4d79ec,#2147a8);display:grid;place-items:center;font-weight:800}.logo b,.logo small{display:block}.logo small{color:#aab4ca;margin-top:3px}nav{display:grid;gap:5px}nav button{border:0;background:none;color:#bbc5d9;text-align:left;padding:12px 14px;border-radius:8px;font:14px inherit;cursor:pointer}nav button:hover,nav button.active{background:#ffffff13;color:#fff}nav button.active{box-shadow:inset 3px 0 #5f8cff}.aside-foot{margin-top:auto;border-top:1px solid #ffffff19;padding:18px 8px 0;color:#c9d1e2;font-size:12px}.aside-foot small{color:#7f8ba4}main{margin-left:238px;padding:28px 34px 50px;min-height:100vh}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}header h1{font-size:27px;margin:0}header p{color:var(--muted);margin:5px 0 0;font-size:13px}#menu{display:none}.primary{background:var(--blue);border-color:var(--blue);color:#fff}button,.btn{border:1px solid var(--line);border-radius:8px;padding:9px 13px;background:#fff;color:var(--ink);cursor:pointer;font:inherit}.danger{color:var(--red)}.grid{display:grid;gap:17px}.stats{grid-template-columns:repeat(4,1fr)}.two{grid-template-columns:1.6fr 1fr}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:19px;box-shadow:0 4px 18px #21345508}.stat small,.label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.stat strong{display:block;margin:9px 0 3px;font-size:25px}.good{color:var(--green)}.warn{color:var(--amber)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.section-head h2{font-size:17px;margin:0}.actions{display:flex;gap:7px;flex-wrap:wrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:10px 8px;border-bottom:1px solid var(--line)}td{padding:12px 8px;border-bottom:1px solid #edf0f4}tbody tr:last-child td{border:0}.badge{padding:4px 8px;border-radius:30px;background:#e8f3ee;color:var(--green);font-size:11px}.empty{text-align:center;color:var(--muted);padding:48px 10px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#536074;font-weight:600}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #d5dae3;border-radius:7px;font:inherit;color:var(--ink);background:#fff}textarea{resize:vertical;min-height:68px}.fieldset{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:16px}.fieldset legend{font-weight:700;padding:0 7px;color:#344056}.line-toolbar{display:flex;align-items:center;justify-content:space-between;margin:10px 0}.line-table input,.line-table select{min-width:75px;padding:7px}.line-table .desc{min-width:210px}.line-table .amount{font-weight:700;white-space:nowrap}.remove{color:var(--red);border:0;padding:5px}.bill-summary{margin:15px 0 0 auto;width:min(360px,100%);display:grid;grid-template-columns:1fr auto;gap:7px;font-size:13px}.bill-summary .grand{font-size:16px;font-weight:800;border-top:1px solid;padding-top:8px}dialog{width:min(1050px,96vw);border:0;border-radius:14px;padding:0;box-shadow:0 18px 70px #11182755}dialog::backdrop{background:#101522b8}.modal-head,.modal-actions{display:flex;justify-content:space-between;align-items:center;padding:17px 21px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:21px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.close{border:0;font-size:25px;padding:2px 7px}.modal-actions{justify-content:flex-end;gap:8px;border:0;border-top:1px solid var(--line)}#modalBody{padding:18px 21px;max-height:72vh;overflow:auto}#toast{position:fixed;right:22px;bottom:22px;background:var(--nav);color:#fff;padding:12px 17px;border-radius:9px;opacity:0;transform:translateY(8px);transition:.2s;z-index:20;pointer-events:none}#toast.show{opacity:1;transform:none}.muted{color:var(--muted)}.bar{height:8px;background:#e9edf3;border-radius:9px;overflow:hidden}.bar span{height:100%;display:block;background:var(--blue)}.report-line{display:grid;grid-template-columns:110px 1fr 105px;gap:12px;align-items:center;margin:15px 0}.notice{background:#eef3ff;color:#315294;border:1px solid #d7e2ff;border-radius:8px;padding:11px;font-size:12px}.file-btn{display:inline-block;border:1px solid var(--line);padding:9px 13px;border-radius:8px;cursor:pointer}
.line-actions{display:flex;align-items:center;gap:4px}.duplicate{color:var(--blue);padding:5px 7px;font-size:11px}.customize-panels{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.customize-panels details{border:1px solid var(--line);border-radius:9px;background:#fafbfc}.customize-panels summary{padding:10px 12px;font-weight:700;cursor:pointer}.customize-panels details>div{padding:0 12px 12px}.customize-panels h4{margin:10px 0 5px}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.config-row{display:flex;align-items:center;gap:6px}.config-row>input{min-width:0}.config-row label{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px}.config-row label input{width:auto}.unit-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.unit-chips span{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:20px;background:#fff}.unit-chips button{border:0;padding:0;color:var(--red);background:none}
#toast{top:14px;left:50%;right:auto;bottom:auto;margin:0;min-width:min(440px,calc(100vw - 28px));max-width:min(680px,calc(100vw - 28px));background:#173d2d;border:1px solid #2f7154;box-shadow:0 8px 28px #11182735;text-align:center;font-weight:700;transform:translate(-50%,-12px);z-index:100}#toast:popover-open{display:block}#toast.warning{background:#713b00;border-color:#a65d0b}#toast.show{transform:translate(-50%,0)}.config-grid{grid-template-columns:1fr}.config-row{display:grid;grid-template-columns:minmax(130px,1fr) auto auto;align-items:center;gap:6px;padding:6px;border:1px solid #e3e7ed;border-radius:8px;background:#fff}.order-actions{display:flex;gap:4px}.order-actions button{padding:6px 9px;font-weight:800}.column-type{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase}.info-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) auto;gap:6px;align-items:center;margin-bottom:6px}.info-row.standard{grid-template-columns:minmax(160px,1fr) auto}.info-row input{min-width:0}.info-row label{display:flex;align-items:center;gap:4px;white-space:nowrap}.info-row label input{width:auto}
@media(max-width:950px){.stats{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}
@media(max-width:680px){aside{transform:translateX(-100%);transition:.2s}aside.open{transform:none}main{margin:0;padding:18px 13px}#menu{display:block}.stats{grid-template-columns:1fr 1fr;gap:10px}.card{padding:14px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}header .primary{font-size:13px;padding:8px}.report-line{grid-template-columns:75px 1fr 78px}.customize-panels,.config-grid{grid-template-columns:1fr}}
.company-switcher{margin:-10px 0 18px;padding:10px 8px;border-top:1px solid #ffffff19;border-bottom:1px solid #ffffff19}.company-switcher label{display:block;color:#8f9bb2;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.company-switcher-row{display:flex;gap:5px}.company-switcher select{min-width:0;padding:8px;background:#222d42;border-color:#3a465c;color:#fff;font-size:12px}.company-switcher button{padding:7px 10px;background:#ffffff12;border-color:#ffffff26;color:#fff}.company-list{display:grid;gap:8px}.company-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:9px}.company-item.active{border-color:#7e9ce8;background:#f2f6ff}.company-item h3{margin:0 0 3px;font-size:15px}.company-item small{color:var(--muted)}.company-manager{margin-bottom:17px}.company-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:20px;background:#dce7ff;color:#214aaf;font-size:10px}@media(max-width:680px){.company-item{grid-template-columns:1fr}.company-item .actions{justify-content:flex-start}}

@media(max-width:680px){
body{min-width:0;min-height:100dvh}
body:has(aside.open)::after{content:"";position:fixed;inset:0;z-index:7;background:#10152280}
aside{width:min(290px,88vw);overflow-y:auto;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom));box-shadow:12px 0 34px #10152233}
main{min-width:0;min-height:100dvh;padding:14px 10px calc(64px + env(safe-area-inset-bottom))}
header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:16px}
header>div{min-width:0}
header h1{overflow:hidden;font-size:21px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
header p{overflow:hidden;margin-top:3px;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
#menu{display:inline-grid;place-items:center;min-width:42px;min-height:42px;padding:0;font-size:20px}
header .primary{min-height:42px;max-width:132px;padding:7px 10px;line-height:1.15;white-space:normal}
.card{min-width:0}
.section-head{align-items:flex-start}
.section-head>*{min-width:0}
.section-head h2{line-height:1.25}
.actions button,.file-btn{min-height:42px}
.table-wrap{max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.table-wrap>table{min-width:620px}
.table-wrap>.line-table{min-width:880px}
.line-toolbar{align-items:flex-start;gap:10px}
.line-toolbar>.actions{justify-content:flex-end}
dialog{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 16px);margin:auto;border-radius:11px}
dialog form{display:flex;max-height:calc(100dvh - 16px);flex-direction:column}
.modal-head{align-items:flex-start;padding:14px 15px}
.modal-head>div{min-width:0}
.modal-head h2{font-size:19px}
#modalBody{min-height:0;max-height:none;flex:1;padding:14px 15px;overscroll-behavior:contain}
.modal-actions{padding:11px 15px calc(11px + env(safe-area-inset-bottom))}
.modal-actions button{min-height:42px}
#toast{top:max(10px,env(safe-area-inset-top));max-width:calc(100vw - 20px);min-width:0;width:max-content;padding:11px 14px}
}

@media(max-width:420px){
main{padding-inline:9px}
header{grid-template-columns:auto minmax(0,1fr)}
header .primary{grid-column:1/-1;width:100%;max-width:none}
.stats{grid-template-columns:1fr}
.section-head{display:grid;grid-template-columns:1fr}
.section-head>button{width:100%;min-height:42px}
.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
.actions>button,.actions>.file-btn{width:100%;text-align:center}
.report-line{grid-template-columns:1fr auto}
.report-line .bar{grid-row:2;grid-column:1/-1}
.fieldset{padding:11px}
.line-toolbar{display:grid;grid-template-columns:1fr}
.line-toolbar>.actions{justify-content:stretch}
}

.bill-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;min-width:38px;padding:0;border-color:#d8dee8;background:#fff;color:#344056}
.icon-btn:hover{border-color:#9eb1dc;background:#f2f6ff;color:var(--blue)}
.icon-btn:focus-visible{outline:3px solid #8eadff;outline-offset:2px}
.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-btn.danger{border-color:#efc9cd;background:#fff8f8;color:var(--red)}
.icon-btn.danger:hover{border-color:#df969d;background:#fff0f0;color:#a92f39}

@media(max-width:420px){
.bill-actions{gap:5px}
.icon-btn{width:40px;height:40px;min-width:40px}
}

.logo .brand-logo,.auth-brand-logo .brand-logo{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:10px;flex-shrink:0}

.hsn-picker{position:fixed;z-index:9999;overflow:auto;background:#fff;border:1px solid #ccd5e4;border-radius:9px;box-shadow:0 8px 28px #17203235;color:#182033}.hsn-picker[hidden]{display:none}.hsn-picker-note{padding:9px 12px;font-size:12px;color:#64748b;background:#f4f6fa}.hsn-picker button{display:grid;grid-template-columns:85px 1fr;gap:12px;text-align:left;width:100%;border:0;border-bottom:1px solid #edf0f5;border-radius:0;padding:10px 12px;background:white;font-size:12px;white-space:normal}.hsn-picker button:hover,.hsn-picker button[aria-selected=true]{background:#eaf0ff}.hsn-picker button span{overflow-wrap:anywhere}
