*{box-sizing:border-box}body{color:#17202a;background:#f5f7fa;margin:0;font-family:Inter,Arial,sans-serif}.login{place-items:center;min-height:100vh;display:grid}.loginbox{background:#fff;border-radius:14px;width:410px;padding:38px;box-shadow:0 20px 60px #0002}.loginbox input{border:1px solid #d7dce2;border-radius:7px;width:100%;margin:8px 0;padding:13px}.loginbox button,header button{color:#fff;cursor:pointer;background:#1d4ed8;border:0;border-radius:7px;padding:11px 18px}.loginbox button{width:100%;margin-top:10px}.muted{color:#667085;font-size:13px}.layout{min-height:100vh;display:flex}aside{color:#fff;background:#111827;flex-direction:column;gap:4px;width:245px;padding:20px;display:flex;overflow:auto}aside h2{margin:5px 0}.role{color:#aeb8c7;margin-bottom:12px;font-size:12px}aside button{color:#dbe2ea;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:10px}aside button:hover,aside button.active{color:#fff;background:#263349}.logout{margin-top:15px}main{flex:1;padding:26px;overflow:auto}header{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}header h1{margin:0 0 5px}.grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.stat,.panel{background:#fff;border-radius:10px;box-shadow:0 2px 12px #0000000d}.stat{padding:22px}.stat strong{font-size:28px;display:block}.stat span{text-transform:capitalize;color:#667085}.panel{padding:15px}.table{overflow:auto}.table table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;white-space:nowrap;border-bottom:1px solid #edf0f3;padding:10px 12px}.table th{background:#f8fafc}.empty{text-align:center;color:#667085;padding:35px}@media (width<=800px){aside{width:190px}main{padding:15px}}.toolbar{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.primary{cursor:pointer;border:0;border-radius:7px;padding:10px 16px;color:#fff!important;background:#1d4ed8!important}.error{color:#b42318;background:#fee4e2;border:1px solid #fecdca;border-radius:8px;margin-bottom:16px;padding:12px 15px}.modal{z-index:20;background:#11182799;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.formcard{background:#fff;border-radius:12px;width:min(760px,96vw);max-height:92vh;padding:22px;overflow:auto;box-shadow:0 20px 70px #0005}.formcard.wide{width:min(1100px,96vw)}.formhead{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.formhead h2{margin:0}.formhead button{cursor:pointer;background:0 0;border:0;font-size:26px}.formgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.formgrid label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.formgrid input,.formgrid select{background:#fff;border:1px solid #d0d5dd;border-radius:7px;padding:10px;font-size:14px}.formactions button{cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:7px;padding:10px 16px}.lines{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.line{grid-template-columns:100px 1fr 90px 110px 90px auto;gap:7px;display:grid}.line input{border:1px solid #d0d5dd;border-radius:6px;padding:9px}.line button{color:#b42318;background:#fee4e2;border:0;border-radius:6px;padding:5px 9px}.totals{text-align:right;border-top:1px solid #ddd;width:300px;margin-top:18px;margin-left:auto;padding-top:12px;line-height:1.8}.totals b{font-size:16px}@media (width<=800px){.formgrid{grid-template-columns:1fr}.line{grid-template-columns:1fr 1fr}.totals{width:100%}}.license-assignment{border-top:1px solid #eaecf0;margin-top:22px;padding-top:18px}.assign-row{border-bottom:1px solid #eaecf0;grid-template-columns:1.2fr 1fr 2fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.assign-row select{border:1px solid #d0d5dd;border-radius:7px;padding:9px}@media (width<=800px){.assign-row{grid-template-columns:1fr}.invoice-line{grid-template-columns:1fr 1fr}}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.toolbar-actions button{color:#172033;cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:7px;padding:9px 13px}.toolbar-actions .add-btn{color:#fff;background:#198754;border-color:#198754}.toolbar-actions .add-btn:disabled{cursor:not-allowed;background:#98a2b3;border-color:#98a2b3}.alter{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1px solid #2563eb;border-radius:6px;margin-right:6px;padding:6px 10px}.delete{color:#b42318;cursor:pointer;background:#fff;border:1px solid #d92d20;border-radius:6px;padding:6px 10px}.table-wrap{overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;min-width:760px}.table-wrap th,.table-wrap td{text-align:left;white-space:nowrap;border-bottom:1px solid #eaecf0;padding:10px 12px}.table-wrap th{text-transform:uppercase;background:#f8fafc;font-size:12px}.assignment{background:#f8fafc;border:1px solid #eaecf0;border-radius:9px;margin-bottom:16px;padding:14px}.assign-row{border-bottom:1px solid #eaecf0;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 0;display:flex}.assign-row:last-child{border-bottom:0}.assign-row span{color:#667085}.assign-row select{border:1px solid #d0d5dd;border-radius:6px;min-width:240px;padding:8px}.full{width:100%}@media print{aside,header,.toolbar,.no-print,.error,.assignment{display:none!important}main{margin:0!important;padding:0!important}.layout{display:block!important}.panel{box-shadow:none!important;border:0!important}.table-wrap{overflow:visible}.table-wrap table{min-width:0;font-size:10px}.table-wrap th,.table-wrap td{white-space:normal}.empty{display:none}}.invoice-line select{border:1px solid #d0d5dd;border-radius:6px;min-width:150px;padding:9px}.wide{width:min(1100px,96vw)}.logo-row{align-items:center;gap:20px;margin-bottom:18px;display:flex}.company-logo{object-fit:contain;background:#fff;border:1px solid #ddd;border-radius:8px;width:120px;height:80px}.logo-empty{color:#777;border:1px dashed #aaa;border-radius:8px;justify-content:center;align-items:center;width:120px;height:80px;display:flex}.file-btn{cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:7px;padding:10px 14px;display:inline-block}.hint{color:#475467;background:#f8fafc;border:1px solid #e5e7eb;border-radius:7px;margin-top:14px;padding:10px;font-size:13px}.gst-box{text-align:right;border-top:1px solid #ddd;width:340px;margin:18px 0 0 auto;padding-top:10px;line-height:1.9}.gst-box .grand{border-top:2px solid #111;margin-top:5px;padding-top:5px;font-size:17px}.print-modal{z-index:50;background:#fff;position:fixed;inset:0;overflow:auto}.invoice-paper{color:#111;background:#fff;max-width:900px;margin:0 auto;padding:35px}.print-actions{justify-content:flex-end;gap:10px;margin-bottom:20px;display:flex}.print-company{align-items:flex-start;gap:18px;display:flex}.print-company img{object-fit:contain;width:110px;height:75px}.print-company h1{margin:0 0 5px}.invoice-paper table{border-collapse:collapse;width:100%;margin-top:18px}.invoice-paper th,.invoice-paper td{border:1px solid #aaa;padding:7px;font-size:12px}.invoice-meta{justify-content:space-between;margin:15px 0;display:flex}.print-totals{text-align:right;width:320px;margin-top:18px;margin-left:auto;line-height:1.8}.invoice-footer{text-align:center;color:#667085;margin-top:45px;font-size:11px}.alter{margin-right:5px}.delete{margin-left:5px}.top-actions button{margin-left:8px}@media print{body{background:#fff!important}.no-print{display:none!important}.print-modal{position:static;overflow:visible}.invoice-paper{max-width:none;padding:0}.invoice-paper .print-actions{display:none}.layout{display:block}.layout aside,.layout main>header,.layout main>.panel,.layout main>.error{display:none!important}}.print-report{display:none}.print-header{border-bottom:2px solid #111;align-items:flex-start;gap:18px;margin-bottom:18px;padding-bottom:12px;display:flex}.print-header img{object-fit:contain;width:90px;height:65px}.print-header h1{margin:0 0 4px}.print-report table{border-collapse:collapse;width:100%}.print-report th,.print-report td{border:1px solid #aaa;padding:6px;font-size:11px}.print-report h2{margin:12px 0}@media print{body{background:#fff!important}.layout aside,.layout main>header,.layout main>.panel,.layout main>.error{display:none!important}.print-report{display:block!important}.print-report table{page-break-inside:auto}.print-report tr{page-break-inside:avoid;page-break-after:auto}.print-report th{font-weight:700}.print-report{font-family:Arial,sans-serif}.print-modal{background:#fff!important;position:static!important}}.import-page{max-width:1200px}.import-card{background:#fff;border:1px solid #ddd;border-radius:14px;padding:22px;box-shadow:0 3px 14px #0000000d}.import-card h2{margin-top:0}.file-btn.big{margin:18px 0;padding:12px 16px;display:inline-block}.file-btn input{display:none}.file-name{background:#f4f6f8;border-radius:8px;margin-bottom:18px;padding:10px 12px}.mapping{grid-template-columns:repeat(2,minmax(250px,1fr));gap:12px;display:grid}.mapping label{flex-direction:column;gap:6px;display:flex}.mapping select{padding:9px}.preview{max-height:360px;overflow:auto}.import-result{background:#eef8ee;border:1px solid #b9ddb9;border-radius:8px;margin-top:18px;padding:14px}.import-result.warn{background:#fff8e5;border-color:#e4ca75}.import-result pre{white-space:pre-wrap;max-height:250px;overflow:auto}.hint{background:#f6f7f8;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:13px}.formactions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}@media (width<=800px){.mapping{grid-template-columns:1fr}}
