:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;color:#102445;background:#f3f7fd}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:10px;background:#096ce5;color:#fff;padding:12px 18px;font-weight:700}button:hover{filter:brightness(1.09)}button.secondary{background:#eaf1fc;color:#17385c}button.danger{background:#ffe7e9;color:#a31f31}a{color:#0673dc;text-decoration:none}input,textarea,select{width:100%;padding:12px;border:1px solid #d8e2f1;border-radius:9px;background:#fff;color:#102445}textarea{min-height:80px}label{display:block;font-size:12px;font-weight:700;color:#506481;margin:0 0 6px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#176fd2,#05152f 70%)}.login-card{width:min(420px,92vw);background:#fff;padding:36px;border-radius:24px;box-shadow:0 20px 80px #0003;display:grid;gap:15px}.login-card img{width:220px;max-height:140px;object-fit:contain}.login-card h1{margin:0}.shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#071b3c;color:#c5d8f5;padding:26px 18px;flex-shrink:0}.sidebar img{width:185px;max-height:120px;object-fit:contain;margin:0 0 30px}.nav{display:block;width:100%;text-align:left;background:transparent;color:#c5d8f5;margin:7px 0;padding:15px}.nav.active,.nav:hover{background:#123a70;color:#fff}.main{flex:1;min-width:0;padding:34px;max-width:1500px}.topline{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.topline h1{font-size:29px;margin:0}.muted{color:#71829c}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:25px 0}.stat,.panel{background:#fff;border:1px solid #e4eaf4;border-radius:18px;padding:22px;box-shadow:0 7px 22px #102b5310}.stat small{color:#69809e}.stat strong{display:block;font-size:26px;margin-top:12px}.panel{margin-top:22px}.panel h2{margin-top:0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:#70829c;font-size:12px;text-transform:uppercase;letter-spacing:.07em}td,th{padding:15px;border-bottom:1px solid #e8edf5}td .actions{display:flex;gap:7px;flex-wrap:wrap}td button{padding:8px 10px;font-size:12px}.pill{padding:5px 9px;border-radius:30px;background:#e7eef9;font-size:12px;font-weight:700}.pill.paid{background:#d9f9e6;color:#157f49}.pill.sent{background:#e0f1ff;color:#1166ac}.pill.cancelled{background:#ffe4e4;color:#9a3434}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.full{grid-column:1/-1}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.item-grid{display:grid;grid-template-columns:3fr .8fr 1.1fr auto;gap:10px;align-items:end;margin-bottom:10px}.checklist{display:flex;gap:18px;flex-wrap:wrap}.checklist label{font-size:14px}.checklist input{width:auto}.loading{padding:40px}.error{background:#ffe9eb;color:#a11e31;padding:12px;border-radius:10px;margin:15px 0}.notice{background:#e6f7ed;color:#137246;padding:12px;border-radius:10px;margin:15px 0}.invoice-page{background:#eaf0f8;padding:30px 15px}.invoice-actions{max-width:900px;margin:0 auto 15px;display:flex;justify-content:space-between;align-items:center}.paper{background:#fff;max-width:900px;margin:auto;min-height:1100px;padding:50px 55px;position:relative;box-shadow:0 15px 55px #15365b1c;overflow:hidden}.paper-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.paper-top img{width:240px;max-height:170px;object-fit:contain}.paper-top>div{text-align:right}.paper-top strong{font-size:42px;color:#061d49;letter-spacing:.06em}.paper-top p{margin:6px 0;color:#6b7e96}.accent-bar{height:9px;background:linear-gradient(90deg,#17c75d,#04b6ff,#0058d3,#08265a);margin:30px -55px}.bill-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:32px 0 38px}.bill-right{text-align:right}.bill-grid small,.invoice-bottom small{color:#0781d9;font-weight:800;letter-spacing:.12em}.bill-grid h3{margin:10px 0}.bill-grid p{color:#61738d;margin:5px 0}.invoice-table thead{background:#072e69;color:#fff}.invoice-table th{color:#fff}.invoice-table tbody tr:nth-child(even){background:#f3f8fe}.invoice-table td{font-size:14px}.invoice-bottom{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:30px}.invoice-bottom p{color:#697b94;line-height:1.6;white-space:normal}.totals>div{display:flex;justify-content:space-between;gap:15px;padding:12px;border-bottom:1px solid #e5eaf2}.totals .grand{background:#063a7d;color:#fff;padding:19px;font-size:19px;border-radius:8px}.paybox{margin-top:40px;background:#f1f8ff;border-left:5px solid #09bc78;padding:20px;border-radius:9px}.paybox div{margin:13px 0;white-space:pre-wrap}.paid-watermark{position:absolute;top:47%;left:22%;transform:rotate(-23deg);font-size:130px;font-weight:900;color:#15a8651e;border:12px solid #15a8651e;padding:5px 35px;pointer-events:none}.paid-message{color:#14844e;font-weight:800;margin:35px 0}footer{margin-top:70px;padding-top:20px;border-top:1px solid #d9e4f3;color:#778ba7;text-align:center;font-size:12px}@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}.sidebar{width:180px}.main{padding:20px}}@media(max-width:650px){.shell{display:block}.sidebar{width:auto;padding:10px 15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sidebar img{width:95px;margin:0}.nav{width:auto;margin:0;padding:10px}.cards,.form-grid,.bill-grid,.invoice-bottom{grid-template-columns:1fr}.item-grid{grid-template-columns:1fr 1fr}.item-grid>div:first-child{grid-column:1/-1}.paper{padding:22px}.paper-top img{width:125px}.paper-top strong{font-size:25px}.accent-bar{margin:20px -22px}.bill-right{text-align:left}.invoice-table-wrap{overflow:auto}.paid-watermark{font-size:55px;left:10%}}@media print{@page{size:A4;margin:10mm}.invoice-page{background:#fff;padding:0}.invoice-actions{display:none}.paper{box-shadow:none;max-width:none;min-height:0;padding:12mm}.paybox,.invoice-table tr,.invoice-bottom{break-inside:avoid}.accent-bar{print-color-adjust:exact;-webkit-print-color-adjust:exact}.invoice-table thead,.totals .grand{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
