*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:#253247;font:14px/1.5 Inter,Arial,sans-serif}.sidebar{width:245px;background:#14263f;color:#fff;position:fixed;inset:0 auto 0 0;padding:27px 18px;display:flex;flex-direction:column}.brand{font-size:25px;font-weight:800;letter-spacing:-1px;color:#fff}.brand span{color:#c8a96b}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#aab9cb;font-weight:600}.brand.dark{color:#14263f}.brand.dark small{color:#748196}.sidebar nav{margin-top:40px;display:grid;gap:7px}.sidebar nav a,.sidebottom a{color:#cbd5e1;text-decoration:none;padding:12px;border-radius:8px}.sidebar nav a:hover{background:#263e5c;color:white}.sidebottom{margin-top:auto;color:#b8c5d5;padding:10px}.sidebottom a{display:block;padding-left:0}.main{margin-left:245px;min-height:100vh}.topbar{height:66px;background:white;border-bottom:1px solid #e7ebf1;display:flex;justify-content:space-between;align-items:center;padding:0 32px;font-weight:700}.topbar span{font-size:12px;color:#8490a1;font-weight:400}.content{padding:28px 32px;max-width:1450px;margin:auto}footer{padding:18px 32px;color:#9aa4b2;font-size:11px}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.welcome h1{margin:0;font-size:25px}.welcome p{color:#7d8999;margin:5px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat,.panel{background:#fff;border:1px solid #e8edf3;border-radius:12px;padding:20px;box-shadow:0 3px 12px #24354b08}.stat span{display:block;color:#7e8a9b;font-size:12px}.stat b{display:block;font-size:24px;margin:8px 0;color:#14263f}.stat small,.sub{display:block;color:#9aa4b2;font-size:11px}.panel{margin-bottom:20px}.panel h3{margin:0 0 18px;font-size:16px}.panelhead{display:flex;align-items:center;justify-content:space-between}.panelhead a,.tablewrap a{color:#1b5d91;text-decoration:none;font-weight:600}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:520px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid #edf0f4;font-size:12px}th{color:#7f8b9c;font-weight:600;background:#fafbfd}td{color:#344256}.pill{display:inline-block;background:#eef3f8;color:#3f5d7b;border-radius:20px;padding:4px 9px;font-size:10px}.btn{display:inline-block;border:0;border-radius:8px;background:#173653;color:white;padding:11px 16px;text-decoration:none;font-weight:700;cursor:pointer;font-size:12px}.btn:hover{background:#244b70}.btn.light{background:#edf2f7;color:#34475d}.grid2{display:grid;grid-template-columns: minmax(280px, .8fr) minmax(400px,1.2fr);gap:18px}.formwide{max-width:900px}label{display:block;font-size:12px;font-weight:700;color:#536176;margin:13px 0 6px}input,select,textarea{width:100%;border:1px solid #dce3eb;border-radius:7px;padding:11px;background:white;color:#27364a;font:13px Arial}textarea{min-height:75px;resize:vertical}form .btn{margin-top:18px}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.itemrow{display:grid;grid-template-columns:2fr .6fr 1fr 38px;gap:8px;margin:10px 0}.itemrow input,.itemrow select{min-width:0}.alert{padding:12px;border-radius:8px;margin-bottom:15px}.success{background:#e8f6ee;color:#20633d}.danger{background:#fff0ef;color:#a33c35}.empty{text-align:center;color:#9aa4b2;padding:30px}.loginbody{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#14263f,#244867)}.loginbox{background:white;width:min(420px,calc(100% - 30px));padding:36px;border-radius:16px;box-shadow:0 20px 60px #08172a55}.loginbox h2{margin:28px 0 4px}.loginbox p,.muted{color:#8793a3;font-size:12px}.invoicepaper{max-width:850px;background:white;margin:0 auto 24px;padding:48px;box-shadow:0 5px 25px #24354b12}.invhead{display:flex;justify-content:space-between;gap:20px}.invhead p{font-size:12px;color:#788496}.right{text-align:right}.right h1{letter-spacing:3px;color:#14263f}.totalbox{width:min(360px,100%);margin:22px 0 22px auto}.totalbox div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #edf0f4}.totalbox .grand{font-weight:800;color:#14263f}.sign{text-align:right;margin-top:35px}.actions{display:flex;gap:10px;margin-bottom:15px}.inlineform{display:flex;gap:14px;align-items:end}.inlineform>div{width:220px}@media(max-width:900px){.sidebar{width:190px}.main{margin-left:190px}.content{padding:20px}.stats{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}@media(max-width:620px){.sidebar{position:static;width:auto;padding:14px}.sidebar nav{display:flex;overflow:auto;margin-top:12px}.sidebar nav a{white-space:nowrap;font-size:11px;padding:8px}.sidebottom{display:none}.main{margin:0}.topbar{padding:0 18px}.content{padding:15px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:13px}.stat b{font-size:18px}.welcome{align-items:flex-start;gap:10px;flex-direction:column}.formgrid{grid-template-columns:1fr}.invoicepaper{padding:22px}.invhead{flex-direction:column}.right{text-align:left}.inlineform{flex-direction:column;align-items:stretch}.inlineform>div{width:100%}}@media print{body{background:white}.sidebar,.topbar,footer,.no-print{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.invoicepaper{box-shadow:none;margin:0;padding:10mm;max-width:none}.invoicepaper table{min-width:0}th,td{font-size:10pt}}

.qris-setting{display:flex;gap:22px;align-items:flex-start;padding:15px;border:1px solid #e8edf3;border-radius:10px;background:#fafbfd}.qris-setting img{width:120px;max-width:100%;height:auto;object-fit:contain;border:1px solid #e3e8ee;border-radius:8px;background:white}.qris-setting>div{flex:1;min-width:0}.invoice-qris{margin:28px 0;text-align:center;page-break-inside:avoid}.invoice-qris h3{margin-bottom:10px;color:#14263f}.invoice-qris img{display:block;width:210px;max-width:65%;height:auto;margin:0 auto;border:1px solid #e5e9ef;padding:6px}.invoice-qris p{font-size:10pt;color:#667386}@media(max-width:620px){.qris-setting{flex-direction:row;gap:12px;align-items:flex-start}.qris-setting img{max-width:120px;width:120px;flex:0 0 120px}}@media print{.invoice-qris img{width:48mm;max-width:48mm}}

/* V5: fixed compact thumbnail in settings only */
.qris-setting #qris-preview{display:block!important;width:100px!important;max-width:100px!important;height:auto!important;flex:0 0 100px!important;object-fit:contain!important}

.itemblock{margin:12px 0 18px;padding:12px;border:1px solid #e8edf3;border-radius:9px;background:#fcfdff}.itemblock .itemrow{margin:0}.item-description label{margin:9px 0 5px}.item-description textarea{min-height:48px}.item-invoice-description{margin-top:4px;white-space:normal;font-size:11px;line-height:1.45}
