:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#122033;background:#f4f5f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f4f5f4}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{width:100%;border:1px solid #d9dfdf;border-radius:9px;background:#fff;color:#122033;padding:.68rem .75rem;outline:none;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:5.7rem;line-height:1.4}input:focus,select:focus,textarea:focus{border-color:#578a7f;box-shadow:0 0 0 3px #377d711f}.app-shell{display:flex;min-height:100vh}.login-shell{display:grid;min-height:100vh;padding:1.5rem;place-items:center;background:linear-gradient(135deg,#eef3f1,#f7f8f7 48%,#e7efea)}.login-card{width:min(100%,400px);padding:2.25rem;border:1px solid #dce5e1;border-radius:16px;background:#fff;box-shadow:0 18px 46px #1127241f}.login-card h1{margin:0;color:#071b21;font-size:1.48rem;letter-spacing:-.04em}.login-card>p:not(.eyebrow):not(.login-error){margin:.55rem 0 1.65rem;color:#60716e;font-size:.88rem;line-height:1.5}.login-card form{display:grid;gap:.85rem}.login-card form .button{width:100%;margin-top:.2rem}.login-card>small{display:block;margin-top:1.4rem;color:#7a8986;font-size:.7rem;text-align:center}.login-error{margin:0;color:#a32929;font-size:.78rem;line-height:1.4}.login-loading{display:grid;min-height:160px;place-items:center}.side-nav{display:flex;position:fixed;z-index:4;inset:0 auto 0 0;flex-direction:column;width:236px;padding:1.65rem 1rem 1.25rem;color:#ecf0ed;background:#000311}.brand{display:grid;grid-template-columns:28px auto;align-items:center;width:100%;padding:0;border:0;text-align:center;column-gap:.65rem;color:#fff;background:transparent;font-weight:850;font-size:1.02rem;line-height:.88;letter-spacing:.06em}.brand:focus-visible{outline:2px solid #bada1e;outline-offset:5px}.brand em{color:#bada1e;font-style:normal}.brand small{grid-column:2;margin-top:.35rem;color:#8d9999;font-size:.58rem;font-weight:650;letter-spacing:.16em}.brand-mark{position:relative;width:27px;height:27px;border:3px solid #bada1e;border-radius:50%}.brand-mark:after{content:"";position:absolute;inset:5px -6px auto auto;width:14px;height:3px;background:#bada1e;transform:rotate(-38deg)}.side-nav nav{display:grid;gap:.35rem;margin-top:3.6rem}.nav-item{display:flex;align-items:center;gap:.8rem;width:100%;padding:.8rem .85rem;border:0;border-radius:9px;color:#aab4b6;background:transparent;font-size:.9rem;font-weight:650;text-align:left}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#00120e;background:#bada1e}.side-footer{display:flex;align-items:center;gap:.45rem;margin-top:auto;padding:.85rem;color:#7d898b;font-size:.72rem}.status-dot{width:7px;height:7px;border-radius:50%;background:#bada1e;box-shadow:0 0 0 4px #bada1e1c}.workspace{width:calc(100% - 236px);min-height:100vh;margin-left:236px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:106px;padding:1.75rem 3.2rem 1.3rem;border-bottom:1px solid #e4e8e6;background:#ffffffd4}.eyebrow{margin:0 0 .35rem;color:#78918c;font-size:.63rem;font-weight:800;letter-spacing:.15em}.topbar h1,.editor-heading h2{margin:0;color:#071b21;font-size:clamp(1.42rem,2vw,1.8rem);letter-spacing:-.045em}.topbar-end{display:flex;align-items:center;gap:.65rem;color:#52605e;font-size:.82rem;font-weight:650}.sign-out{display:inline-flex;align-items:center;gap:.38rem;padding:.38rem .5rem;border:0;border-radius:7px;color:#52605e;background:transparent;font-size:.74rem}.sign-out:hover{color:#173a35;background:#edf4f1}.admin-dot{display:grid;width:32px;height:32px;place-items:center;border:1px solid #d7e0dd;border-radius:50%;color:#175b50;background:#e7f1ed;font-size:.7rem}.mobile-menu,.mobile-nav-close{display:none}.notice{display:flex;align-items:center;justify-content:space-between;max-width:1220px;margin:1.4rem auto -.25rem;padding:.8rem 1rem;border-radius:10px;font-size:.88rem}.notice button{border:0;background:transparent}.notice.success{color:#175b50;background:#e3f4ea}.notice.error{color:#8d2b2b;background:#feeaea}.page-stack{display:grid;gap:1.35rem;max-width:1220px;margin:0 auto;padding:2.35rem 3.2rem 3.5rem}.hero-row,.page-actions,.editor-top,.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.hero-row{padding:1.4rem 1.5rem;border:1px solid #e0e7e4;border-radius:13px;background:linear-gradient(100deg,#f8fbf8,#ecf3ef)}.hero-row p,.page-copy{margin:0 0 .2rem;color:#243538;font-weight:750}.hero-row span{color:#657472;font-size:.83rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:38px;padding:.62rem .9rem;border:1px solid transparent;border-radius:9px;font-size:.82rem;font-weight:760;transition:transform .15s,background .15s;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{color:#fff;background:#064c43;box-shadow:0 4px 10px #064c4329}.button.primary:hover{background:#003d35}.button.secondary{border-color:#cdd9d6;color:#185e53;background:#fff}.button.secondary:hover{background:#f0f6f3}.button.quiet{min-height:32px;padding:.4rem .25rem;color:#49635e;background:transparent}.button.danger{color:#9c2828;border-color:#f1caca;background:#fff8f8}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.panel{border:1px solid #e0e5e3;border-radius:13px;background:#fff;box-shadow:0 3px 9px #11272406}.metric{display:flex;position:relative;min-height:142px;flex-direction:column;padding:1.25rem;overflow:hidden}.metric:after{content:"";position:absolute;right:-50px;bottom:-75px;width:85px;height:85px;border:34px solid currentColor;border-radius:50%;opacity:.12}.metric p{margin:0;color:#6a7c79;font-size:.77rem;font-weight:700}.metric strong{margin:.28rem 0 .15rem;color:#132c30;font-size:2rem;letter-spacing:-.06em}.metric span{color:#879391;font-size:.72rem}.metric.overdue{color:#ce6d3d}.metric.paid{color:#4b8c70}.metric.draft{color:#7a8993}.grid-two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:1.35rem}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.3rem 1.35rem 1rem}.panel-head h2,.panel-head h3{margin:0;color:#172b2f;font-size:1.02rem;letter-spacing:-.025em}.panel-head>span{color:#6d7d7a;font-size:.8rem}.live-tag{padding:.3rem .55rem;border-radius:99px;color:#367467!important;background:#e9f5ee;font-weight:700}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:.6rem 1.35rem;border-top:1px solid #e7ece9;border-bottom:1px solid #e7ece9;color:#71807e;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}td{padding:.8rem 1.35rem;border-bottom:1px solid #eef1ef;color:#53625f;font-size:.78rem;white-space:nowrap}tbody tr{cursor:pointer}tbody tr:hover{background:#fafcfb}.invoice-number{color:#145d52;font-weight:800}.icon-button,.line-actions button,.row-actions button{display:inline-grid;width:27px;height:27px;place-items:center;border:0;border-radius:6px;color:#64716f;background:transparent}.icon-button:hover,.line-actions button:hover,.row-actions button:hover{color:#145d52;background:#eaf2ef}.badge{display:inline-flex;padding:.25rem .48rem;border:1px solid transparent;border-radius:99px;font-size:.62rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}.badge.draft{color:#5d6b75;background:#eef1f3}.badge.sent{color:#226a87;background:#e8f4f9}.badge.overdue{color:#a94720;background:#fff0e8}.badge.paid,.badge.active{color:#22654c;background:#e5f4ea}.badge.void,.badge.paused{color:#7a5361;background:#f4eaed}.table-wrap .badge.draft{border-color:#cbd4d8}.table-wrap .badge.sent{border-color:#8ac9dd}.table-wrap .badge.overdue{border-color:#eea17d}.table-wrap .badge.paid{border-color:#82c9a1}.table-wrap .badge.void{border-color:#d7b1bd}.invoice-table-actions{width:1%;padding-left:.6rem}.invoice-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}.table-view-button{display:inline-flex;align-items:center;gap:.2rem;padding:.36rem .45rem .36rem .58rem;border:1px solid #d4dfdc;border-radius:7px;color:#365451;background:#fff;font-size:.68rem;font-weight:700}.table-payment-button{display:inline-flex;align-items:center;gap:.35rem;padding:.36rem .52rem;border:1px solid #9bcdbc;border-radius:7px;color:#176047;background:#eff9f3;font-size:.68rem;font-weight:700}.table-payment-button:hover{border-color:#62a98d;background:#e2f3e9}.table-view-button:hover{border-color:#9eb8b2;color:#145d52;background:#f4f8f6}.alert-row,.calm-state{display:flex;align-items:flex-start;gap:.8rem;margin:.25rem 1.35rem 1.35rem;padding:.95rem;border-radius:9px}.alert-row{color:#9a4327;background:#fff2ea}.alert-row strong,.calm-state strong{display:block;margin-bottom:.18rem;font-size:.82rem}.alert-row p,.calm-state p{margin:0;font-size:.75rem}.calm-state{color:#2b7061;background:#f0f8f3}.loading,.empty{display:grid;place-items:center;padding:3.8rem 1.5rem;color:#72817f;text-align:center}.loading{display:flex;align-items:center;justify-content:center;gap:.6rem}.loading svg{animation:spin 1s linear infinite}.empty-icon{display:grid;width:43px;height:43px;place-items:center;margin-bottom:.7rem;border-radius:11px;color:#297267;background:#eaf3ee}.empty h3{margin:0 0 .25rem;color:#293b3c;font-size:.95rem}.empty p{max-width:300px;margin:0 0 1rem;font-size:.8rem}.filter-row,.page-actions>div{display:flex;gap:.7rem}.search{display:flex;align-items:center;min-width:min(380px,50vw);padding:0 .7rem;border:1px solid #d9dfdf;border-radius:9px;color:#74817e;background:#fff}.search input{border:0;box-shadow:none}.page-actions select{width:auto}.editor-top{min-height:38px}.editor-actions,.more-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.editor-heading{align-items:flex-start}.editor-heading .badge{margin-top:.65rem}.sent-edit-warning{display:flex;align-items:center;gap:.7rem;margin:0 0 1rem;padding:.8rem 1rem;border:1px solid #edb48e;border-left:4px solid #d96936;border-radius:9px;color:#7c371b;background:#fff5ed;font-size:.78rem}.sent-edit-warning strong{white-space:nowrap}.invoice-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:1.35rem}.editor-fields{display:grid;gap:1.35rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:0 1.35rem 1.35rem}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:.35rem;color:#4d5e5c;font-size:.74rem;font-weight:700}.field>span{color:#6a7c79;font-size:.66rem;letter-spacing:.035em}.counter-reset-warning{color:#8a6116;font-size:.67rem;font-weight:400;line-height:1.35}.resend-control{display:flex;align-items:flex-start;flex-direction:column;gap:.35rem;padding:.9rem;background:#fff7e8}.totals-panel .resend-control .button{width:auto;min-height:32px;padding:.4rem .65rem;font-size:.76rem}.resend-warning{color:#8a6116;font-size:.68rem;font-weight:400;line-height:1.35}.toggle{display:flex;align-items:center;gap:.55rem;min-height:38px;color:#50615e;font-size:.76rem;font-weight:600}.toggle input{display:none}.toggle span{display:block;position:relative;width:31px;height:18px;border-radius:99px;background:#cad3d1}.toggle span:after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .2s}.toggle input:checked+span{background:#288573}.toggle input:checked+span:after{transform:translate(13px)}.line-editor{padding:0 1.35rem 1.35rem}.line-head,.line-row{display:grid;grid-template-columns:minmax(180px,1.65fr) .42fr .65fr .6fr .62fr 45px;gap:.55rem;align-items:start}.line-head{padding:0 .15rem .4rem;color:#71807e;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.line-row{padding:.7rem 0;border-top:1px solid #edf0ef}.line-row textarea{field-sizing:content;min-height:42px;font-size:.77rem;line-height:1.35;overflow-y:hidden;resize:none}.line-row input,.line-row select{padding:.55rem .5rem;font-size:.77rem}.line-row strong{padding-top:.62rem;color:#203436;font-size:.77rem;text-align:right}.line-actions{display:flex;padding-top:.37rem}.totals-panel{display:grid;position:sticky;top:1rem;gap:.8rem}.totals-panel .panel:first-child{padding:1.35rem}.totals-panel h3{margin:0 0 .9rem;color:#172e30;font-size:1rem}.total-lines{display:grid;gap:.62rem;margin:1rem 0 1.2rem}.total-lines>div{display:flex;justify-content:space-between;color:#61706e;font-size:.78rem}.total-lines strong{color:#213436}.total-lines .amount-due{margin-top:.15rem;padding-top:.85rem;border-top:1px solid #dce4e0;color:#003f37;font-size:.88rem;font-weight:800}.amount-due strong{color:#003f37;font-size:1.1rem}.totals-panel .button{width:100%}.security-note{display:flex;gap:.55rem;padding:.9rem;color:#52736c;background:#edf5f0;font-size:.72rem;line-height:1.45}.security-note p{margin:0}.security-note svg{flex:0 0 auto}.contact-list,.stack-list{display:grid}.contact-row,.list-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.85rem;width:100%;padding:1rem 1.35rem;border:0;border-top:1px solid #ecf0ee;color:#253839;background:#fff;text-align:left}.contact-row:hover{background:#fbfcfb}.avatar{display:grid;width:33px;height:33px;place-items:center;border-radius:50%;color:#216557;background:#e6f1ec;font-size:.67rem;font-weight:800}.contact-row strong,.list-row strong{display:block;color:#233a3b;font-size:.81rem}.contact-row small,.list-row p{display:block;margin-top:.22rem;color:#75827f;font-size:.7rem}.contact-meta{color:#778582;font-size:.72rem}.list-row{grid-template-columns:1fr auto}.row-actions{display:flex;align-items:center;gap:.45rem}.hint{padding:0 1.35rem;color:#667775;font-size:.76rem}.hint code{padding:.15rem .25rem;border-radius:3px;color:#185e53;background:#eff6f2}.modal-backdrop{display:grid;position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;place-items:center;padding:1.25rem;background:#0003118c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(650px,100%);max-height:calc(100vh - 2.5rem);overflow:auto;border-radius:14px;background:#fff;box-shadow:0 24px 80px #0000004d}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.35rem;border-bottom:1px solid #e6ece9}.modal-head h2{margin:0;color:#172e30;font-size:1.1rem}.modal-head button{border:0;color:#71807d;background:transparent}.modal-intro{margin:1.15rem 1.35rem;color:#63716f;font-size:.8rem;line-height:1.45}.modal .form-grid{padding-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem;padding:1rem 1.35rem 1.25rem;border-top:1px solid #e9eeec}.mail-review{display:grid;gap:.9rem;padding:0 1.35rem}.mail-review>div:first-child{display:flex;justify-content:space-between;padding:.7rem .8rem;border-radius:8px;color:#52615f;background:#f4f7f5;font-size:.75rem}.attachment{display:flex;align-items:center;gap:.55rem;padding:.75rem;border:1px dashed #cbd7d3;border-radius:8px;color:#356a60;font-size:.78rem}.page-copy{color:#61716f;font-size:.8rem}.contact-details-panel .form-grid{padding-top:1.35rem}.contact-notes-panel{padding:1.35rem}.field{align-content:start}.field input,.field select,.field textarea{font-weight:400}.line-head,.line-row{grid-template-columns:minmax(160px,1.65fr) 64px 108px 84px 94px 118px}.line-head.is-readonly,.line-row.is-readonly{grid-template-columns:minmax(160px,1.65fr) 64px 108px 84px minmax(94px,.62fr)}.invoice-layout input:disabled,.invoice-layout select:disabled,.invoice-layout textarea:disabled{cursor:not-allowed}.brand{grid-template-columns:1fr;gap:.55rem}.brand img{display:block;width:100%;max-width:202px;height:auto}.brand small{grid-column:auto;margin-top:0}.modal.template-modal{width:min(930px,100%)}.template-line-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.35rem 1.35rem 1rem}.template-line-heading h3{margin:0;color:#172b2f;font-size:1.02rem;letter-spacing:-.025em}.template-line-editor{padding:0 1.35rem .65rem;overflow-x:auto}.template-line-editor .line-head,.template-line-editor .line-row{min-width:700px}.template-line-editor .line-actions{gap:.2rem}.template-notes{margin-top:1.15rem;border-top:1px solid #edf0ef}.template-notes .form-grid,.invoice-notes{grid-template-columns:1fr}.organisation-logo-preview{display:block;max-width:100%;max-height:96px;margin-top:.35rem;padding:.45rem;border:1px solid #d9dfdf;border-radius:9px;background:#f7f9f8;object-fit:contain;object-position:left center}.logo-preview-loading{margin-top:.35rem;color:#6a7c79;font-size:.7rem;font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1050px){.metric-grid,.form-grid.three{grid-template-columns:repeat(2,1fr)}.invoice-layout{grid-template-columns:1fr}.totals-panel{position:static;grid-template-columns:1fr 1fr}.side-nav{width:205px}.workspace{width:calc(100% - 205px);margin-left:205px}.topbar,.page-stack{padding-right:2rem;padding-left:2rem}}@media(max-width:760px){.side-nav{width:245px;transform:translate(-102%);transition:transform .2s}.side-nav.is-open{transform:translate(0);box-shadow:16px 0 45px #00000040}.workspace{width:100%;margin:0}.topbar{min-height:80px;padding:1rem 1.15rem;gap:.8rem}.topbar h1{font-size:1.32rem}.topbar-end{display:none}.mobile-menu{display:grid;width:34px;height:34px;place-items:center;border:1px solid #dce4e1;border-radius:8px;color:#35514c;background:#fff}.mobile-nav-close{display:grid;position:absolute;top:.8rem;right:-44px;width:32px;height:32px;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff;background:#000311;opacity:0;pointer-events:none;transition:opacity .15s}.side-nav.is-open .mobile-nav-close{opacity:1;pointer-events:auto}.mobile-nav-close:hover{background:#15202f}.topbar>div:first-of-type{flex:1}.page-stack{padding:1.2rem 1rem 2.2rem}.hero-row,.page-actions,.editor-top,.editor-heading{align-items:stretch;flex-direction:column}.hero-row .button,.page-actions .button{width:100%}.filter-row,.page-actions>div{display:grid;grid-template-columns:1fr}.search{min-width:0}.metric-grid,.grid-two,.totals-panel,.form-grid,.form-grid.three{grid-template-columns:1fr}.editor-actions,.more-actions{justify-content:flex-start}.line-editor{overflow-x:auto}.line-head,.line-row{min-width:650px}.contact-row{grid-template-columns:auto 1fr auto}.contact-meta{display:none}.table-wrap{max-width:calc(100vw - 2rem)}.notice{margin:1rem 1rem 0}.modal-backdrop{padding:.5rem}.modal{max-height:calc(100vh - 1rem)}}
