:root{--navy:#071f3e;--navy-2:#0b2f59;--blue:#1268f3;--blue-2:#0757dc;--cyan:#4ce5d1;--ink:#10213c;--muted:#64748b;--line:#dce4ef;--bg:#f4f7fb;--white:#fff;--green:#16a36a;--amber:#d98d0b;--red:#d33c4c;--violet:#7656d6;--radius:10px;--shadow:0 10px 30px rgba(15,35,65,.07)}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg)}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;line-height:1.15;margin-bottom:.4rem;letter-spacing:-.035em}h2{font-size:1.25rem}small{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:43px;padding:.68rem 1.1rem;border:1px solid transparent;border-radius:7px;font-weight:700;transition:.18s ease;background:#fff}.btn:hover{transform:translateY(-1px)}.btn.primary{color:#fff;background:var(--blue);box-shadow:0 6px 15px rgba(18,104,243,.22)}.btn.primary:hover{background:var(--blue-2)}.btn.secondary{border-color:#b9cdf3;color:#1454ba}.btn.dashed{border:1px dashed var(--blue);color:var(--blue);padding:.42rem .75rem;min-height:34px}.btn.wide{width:100%}.link{background:0;border:0;padding:0;color:var(--blue)}.danger{color:var(--red)!important}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--blue);font-size:.72rem;font-weight:800;margin-bottom:.55rem}.eyebrow.light{color:var(--cyan)}
label{display:flex;flex-direction:column;gap:.38rem;font-weight:700;font-size:.82rem}input,select,textarea{width:100%;border:1px solid #cfd9e7;background:#fff;border-radius:6px;padding:.67rem .75rem;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(18,104,243,.1)}input[readonly]{background:#f8fafc;color:#526078}textarea{resize:vertical}.form-grid{display:grid;gap:1rem}.form-grid.two{grid-template-columns:1fr 1fr}.span-two{grid-column:span 2}.stack-form{display:flex;flex-direction:column;gap:1rem}.wide-form{max-width:820px}.form-actions,.editor-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.2rem}.alert{padding:.85rem 1rem;border-radius:7px;margin-bottom:1rem;font-weight:650}.alert.error{color:#9f2636;background:#fff0f2;border:1px solid #ffcbd2}.alert.success{color:#0c7850;background:#eafbf3;border:1px solid #bdebd4}
.brand{display:flex;align-items:center;color:#fff;font-size:1.48rem;font-weight:800;letter-spacing:-.04em}.brand img{width:39px;height:39px;object-fit:cover;border-radius:9px;margin-right:.6rem}.brand>span>span,.preview-brand strong{color:#2480ff}.brand.large{font-size:1.8rem}.brand.large img{width:48px;height:48px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:225px;color:#fff;background:linear-gradient(180deg,#061e3d 0%,#07335e 100%);padding:1.35rem 1rem;display:flex;flex-direction:column;overflow-y:auto}.sidebar .brand{margin:0 .2rem 1.8rem}.create-button{width:100%;margin-bottom:1.35rem}.sidebar nav{display:flex;flex-direction:column;gap:.18rem}.sidebar nav a{display:flex;align-items:center;gap:.85rem;color:#eaf2ff;padding:.65rem .65rem;border-radius:7px;font-weight:600}.sidebar nav a span{font-size:1.15rem;width:21px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.1);color:#fff}.nav-section{display:block;margin:1rem .65rem .35rem;color:#79a6cf;text-transform:uppercase;font-size:.62rem;font-weight:800;letter-spacing:.1em}.member-card{margin-top:1.2rem;border:1px solid rgba(109,195,255,.28);border-radius:10px;padding:1rem;background:rgba(5,25,54,.34)}.member-card span{color:var(--cyan);font-weight:750}.member-card p{color:#afc3dc;font-size:.78rem;line-height:1.5;margin:.6rem 0 0}.logout-link{color:#b8c8db;padding:.8rem .5rem 0}.main-content{grid-column:2;min-width:0}.topbar{height:72px;padding:0 2rem;display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.82);border-bottom:1px solid #e6ebf2;position:sticky;top:0;z-index:10;backdrop-filter:blur(9px)}.top-spacer{flex:1}.bell{font-size:1.4rem}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800}.menu-toggle{display:none;border:0;background:transparent;font-size:1.5rem}.page-content{padding:2rem;max-width:1500px;margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.page-heading h1{margin-bottom:.35rem}.page-heading p:last-child{margin:0;color:var(--muted)}
.card,.panel{background:#fff;border:1px solid #dfe5ed;border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:1.35rem}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.2rem}.panel-heading h2{margin-bottom:.25rem}.panel-heading p{color:var(--muted);margin:0;font-size:.88rem}.form-panel{padding:1.8rem}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.4rem}.stat-card{background:#fff;border:1px solid #e0e7f0;border-radius:10px;padding:1.15rem;box-shadow:0 8px 22px rgba(15,35,65,.04)}.stat-card p{display:inline;color:var(--muted);font-weight:700}.stat-card strong{display:block;font-size:1.55rem;margin:.65rem 0 .2rem}.stat-card small{font-size:.75rem}.stat-icon{display:inline-grid;place-items:center;width:31px;height:31px;border-radius:7px;margin-right:.5rem}.stat-icon.blue{color:var(--blue);background:#eaf2ff}.stat-icon.green{color:var(--green);background:#e8f8f1}.stat-icon.amber{color:var(--amber);background:#fff5df}.stat-icon.violet{color:var(--violet);background:#f1ecff}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.88rem .75rem;border-bottom:1px solid #edf1f6;white-space:nowrap}th{text-transform:uppercase;font-size:.68rem;letter-spacing:.06em;color:#718096}td{font-size:.88rem}.strong-link{font-weight:800;color:var(--ink)}.status{display:inline-flex;padding:.27rem .55rem;border-radius:99px;font-size:.72rem;font-weight:800}.status.draft{color:#586577;background:#edf1f5}.status.sent{color:#1454ba;background:#eaf2ff}.status.paid{color:#0b7a4e;background:#e5f8ef}.status.overdue{color:#a32a38;background:#ffebed}.table-actions{display:flex;justify-content:flex-end;gap:.75rem}.table-actions form{display:inline}.empty-state{text-align:center;padding:3.5rem 1rem;color:var(--muted)}.empty-state>span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;margin:0 auto 1rem;background:#eef4ff;color:var(--blue);font-size:1.6rem}.empty-state h3{color:var(--ink);margin-bottom:.35rem}
.invoice-workspace{display:grid;grid-template-columns:minmax(570px,.95fr) minmax(500px,1.05fr);gap:1.8rem;align-items:start}.invoice-editor{padding:1.15rem}.editor-top{display:grid;grid-template-columns:220px 1fr;gap:1rem;margin-bottom:1rem}.field-label{font-weight:750;font-size:.78rem;margin-bottom:.45rem}.logo-upload-display{height:145px;border:1px dashed #b8c5d8;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:.72rem;gap:.4rem}.logo-upload-display img{width:55px;height:55px;object-fit:contain;border-radius:7px}.invoice-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.invoice-meta-grid label{font-size:.72rem}.billing-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:7px;margin-bottom:1rem}.billing-grid fieldset{border:0;margin:0;padding:.75rem}.billing-grid fieldset+fieldset{border-left:1px solid var(--line)}fieldset legend{font-weight:800;font-size:.8rem;padding:.2rem 0}.billing-grid input,.billing-grid select{padding:.49rem .55rem;margin-bottom:.38rem;font-size:.75rem}.billing-grid .split{display:grid;grid-template-columns:1fr 1fr;gap:.38rem}.line-items{border-top:1px solid #cad5e3}.line-head,.line-row{display:grid;grid-template-columns:minmax(130px,2fr) 58px 82px 70px 80px 28px;gap:.5rem;align-items:center}.line-head{padding:.65rem .15rem .35rem;font-size:.68rem;font-weight:800}.line-row{margin-bottom:.42rem}.line-row input,.line-row select{padding:.52rem .45rem;font-size:.74rem}.line-row output{font-size:.74rem;text-align:right}.remove-line{border:0;background:transparent;color:var(--navy);font-size:1rem}.invoice-bottom{display:grid;grid-template-columns:1fr 1fr 145px;gap:.7rem;margin-top:1rem}.invoice-bottom label{font-size:.72rem}.editor-totals{align-self:end;border:1px solid var(--line);border-radius:6px;padding:.7rem}.editor-totals div{display:flex;justify-content:space-between;font-size:.72rem;margin-bottom:.6rem}.editor-totals .grand{font-size:.9rem;border-top:1px solid var(--line);padding-top:.65rem;margin:0}.editor-totals .grand strong{font-size:1.18rem}.editor-actions{border-top:1px solid var(--line);padding-top:1rem}.editor-actions .secondary:first-child{margin-right:auto}
.invoice-preview{position:sticky;top:91px;min-height:865px;padding:2.1rem;color:#10213c}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-header h2{font-size:1.8rem;letter-spacing:.03em}.preview-brand{display:flex;align-items:center;gap:.5rem;font-size:1.25rem}.preview-brand img{width:42px;height:42px;object-fit:contain;border-radius:7px}.preview-meta{display:grid;grid-template-columns:1fr 1fr;margin:1.2rem 0}.preview-meta>div,.preview-bill{display:flex;flex-direction:column;gap:.28rem;font-size:.72rem}.preview-meta dl{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0;font-size:.72rem}.preview-meta dd{margin:0;text-align:right}.invoice-preview hr{border:0;border-top:1px solid #9cc1f7;margin:1rem 0 1.3rem}.preview-bill{min-height:140px}.preview-bill b,.preview-notes b{color:var(--blue);margin-bottom:.3rem}.preview-table{margin-top:.8rem;font-size:.68rem}.preview-row{display:grid;grid-template-columns:minmax(160px,2fr) 44px 60px 50px 72px;gap:.4rem;padding:.65rem .45rem;border-bottom:1px solid var(--line)}.preview-row span:not(:first-child){text-align:right}.preview-row.head{background:#f2f7ff;border:1px solid #c8d9f2;border-radius:4px;color:var(--blue);font-weight:800}.preview-totals{margin-left:auto;width:240px;padding-top:.8rem}.preview-totals>div{display:flex;justify-content:space-between;padding:.4rem .6rem;font-size:.72rem}.preview-totals .total-due{margin-top:.35rem;background:#f1f6ff;border-top:1px solid #779bd3;color:var(--blue);font-size:.9rem;font-weight:800}.preview-totals .total-due strong{font-size:1.25rem}.preview-notes{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem;font-size:.68rem}.preview-notes>div{display:flex;flex-direction:column;white-space:pre-line}.invoice-preview footer{position:absolute;left:2rem;right:2rem;bottom:2rem;border-top:1px solid var(--blue);padding-top:1rem;text-align:center;color:var(--muted);font-size:.66rem}
.customer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.customer-card{display:grid;grid-template-columns:50px 1fr auto;gap:1rem;align-items:center;border:1px solid var(--line);padding:1rem;border-radius:8px}.customer-avatar{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--blue);font-size:1.2rem;font-weight:800}.customer-card h3{margin-bottom:.2rem}.customer-card p{color:var(--muted);margin-bottom:.3rem}.customer-card span{font-size:.75rem;color:var(--muted)}.customer-actions{display:flex;gap:.7rem}.customer-actions form{display:inline}.profile-logo{display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:1.2rem}.profile-logo>div{width:90px;height:90px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center}.profile-logo img{width:72px;height:72px;object-fit:contain;border-radius:7px}
.auth-page{background:#fff}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.auth-visual{padding:4rem 8vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(145deg,#061e3d,#084176)}.auth-visual>div{max-width:620px}.auth-visual h1{font-size:3.4rem}.auth-visual p{color:#c8d8ec;font-size:1.12rem;line-height:1.6}.auth-visual ul{display:grid;grid-template-columns:1fr 1fr;gap:1rem;list-style:none;padding:0}.auth-visual li:before{content:'✓';color:var(--cyan);margin-right:.55rem;font-weight:800}.auth-card{display:flex;flex-direction:column;justify-content:center;max-width:480px;width:100%;padding:4rem;margin:auto}.auth-card h2{font-size:2rem;margin-bottom:.5rem}.auth-card>p{color:var(--muted)}.auth-switch{text-align:center;margin-top:1.2rem!important}.auth-switch a{font-weight:800}
.install-page{min-height:100vh;background:linear-gradient(180deg,#edf4ff,#f7f9fc)}.install-shell{max-width:850px;margin:auto;padding:3rem 1rem 5rem}.install-brand{display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:800;margin-bottom:1.4rem}.install-brand img{width:46px;height:46px;object-fit:contain;margin-right:.55rem;border-radius:8px}.install-brand span span{color:var(--blue)}.install-card{background:#fff;padding:2rem;border-radius:14px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(20,48,82,.1)}.install-card>h1,.install-card>p{text-align:center}.install-card h2{margin:1.6rem 0 .8rem}.requirements{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;background:#f6f8fb;padding:1rem;border-radius:8px;margin:1rem 0}.requirement{font-size:.8rem}.requirement.pass{color:var(--green)}.requirement.fail{color:var(--red)}.install-form{margin-top:1.5rem}.success-icon{width:70px;height:70px;margin:0 auto 1rem;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--green);font-size:2rem;font-weight:800}
.tax-year-switch label{flex-direction:row;align-items:center;gap:.65rem;white-space:nowrap}.tax-year-switch select{min-width:120px}.heading-actions{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}.tax-notice,.tax-disclaimer,.tax-record-tip{padding:.9rem 1rem;border:1px solid #bcd3f5;background:#edf5ff;border-radius:8px;color:#25456e;font-size:.82rem;margin-bottom:1rem}.tax-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;margin-bottom:1rem}.tax-liability-card{border-radius:12px;padding:1.5rem;color:#fff;background:linear-gradient(135deg,#09254b,#0c63d8);box-shadow:0 16px 32px rgba(8,61,127,.18)}.tax-liability-card>p{color:#bcd8fa;font-weight:700;margin-bottom:.5rem}.tax-liability-card>strong{display:block;font-size:2.55rem;letter-spacing:-.04em}.tax-liability-card>span{display:block;color:#c8dcf5;font-size:.78rem;margin:.35rem 0 1.5rem}.tax-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.tax-breakdown div{padding:.75rem;border-radius:7px;background:rgba(255,255,255,.1)}.tax-breakdown b,.tax-breakdown small{display:block}.tax-breakdown small{color:#c9ddf5;margin-top:.3rem}.tax-saving-card{padding:1.25rem}.tax-saving-card .panel-heading strong{font-size:1.5rem;color:var(--green)}.saving-progress{height:10px;background:#edf1f5;border-radius:20px;overflow:hidden}.saving-progress span{display:block;height:100%;background:linear-gradient(90deg,#19a56c,#45d0a0);border-radius:20px}.saving-labels{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);padding:.45rem 0 1rem}.quick-saving{display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem;align-items:end}.tax-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.tax-stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:1rem}.tax-stat span,.tax-stat small{display:block;color:var(--muted);font-size:.75rem}.tax-stat strong{display:block;font-size:1.45rem;margin:.45rem 0}.tax-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.action-tile{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid var(--line);padding:1rem;border-radius:9px;color:var(--ink);box-shadow:0 6px 18px rgba(15,35,65,.04)}.action-tile>span{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:9px;font-size:1.35rem;font-weight:800}.action-tile strong,.action-tile small{display:block}.action-tile small{color:var(--muted);margin-top:.2rem}.action-tile.income>span{background:#e5f8ef;color:var(--green)}.action-tile.expense>span{background:#ffebed;color:var(--red)}.action-tile.mileage>span{background:#fff2d8;color:#94610b}.action-tile.report>span{background:#eaf2ff;color:var(--blue)}.entry-type{padding:.25rem .55rem;border-radius:99px;font-size:.7rem;font-weight:800}.entry-type.income{color:#08774c;background:#e4f8ee}.entry-type.expense{color:#a42a38;background:#ffeaed}.tax-record-table td small,table td small{display:block;color:var(--muted);margin-top:.25rem}.tax-record-table .amount{font-weight:800;text-align:right}.tax-record-table .amount.income,.amount.income{color:var(--green)}.tax-record-table .amount.expense,.amount.expense{color:var(--red)}.receipt-link{font-weight:700}.muted{color:var(--muted)}.record-filter{display:flex;align-items:center;gap:.35rem;margin-bottom:1rem}.record-filter a{color:var(--muted);padding:.45rem .8rem;border-radius:6px;font-weight:700}.record-filter a.active{background:#dfeaff;color:var(--blue)}.record-filter span{margin-left:auto;color:var(--muted);font-size:.8rem}.entry-type-toggle{display:flex;background:#eef2f7;border-radius:8px;padding:.3rem;max-width:420px;margin-bottom:1.3rem}.entry-type-toggle a{flex:1;text-align:center;padding:.7rem;color:var(--muted);font-weight:800;border-radius:6px}.entry-type-toggle a.active.income{background:#fff;color:var(--green);box-shadow:0 2px 8px rgba(0,0,0,.08)}.entry-type-toggle a.active.expense{background:#fff;color:var(--red);box-shadow:0 2px 8px rgba(0,0,0,.08)}.tax-entry-panel{max-width:950px}.report-downloads{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.report-downloads.three{grid-template-columns:repeat(3,1fr)}.download-card{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem;color:var(--ink)}.download-card>span{display:grid;place-items:center;width:55px;height:55px;border-radius:8px;font-weight:900}.download-card.pdf>span{color:#b52d3c;background:#ffebed}.download-card.csv>span{color:#08774c;background:#e4f8ee}.download-card strong,.download-card small{display:block}.download-card small{color:var(--muted);margin-top:.25rem}.report-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-bottom:1rem}.report-summary>div{display:flex;justify-content:space-between;padding:.72rem;border-bottom:1px solid var(--line)}.report-summary .highlight{background:#f2f7ff;color:var(--blue)}.report-summary .total{font-size:1.05rem;color:var(--blue);border-top:2px solid #aac7f1}.category-list>div{display:grid;grid-template-columns:1fr auto;gap:.2rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.category-list small{grid-column:1/-1}.empty-mini{color:var(--muted);padding:2rem;text-align:center}.monthly-panel{margin-bottom:1rem}.monthly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.monthly-grid>div{padding:.8rem;border:1px solid var(--line);border-radius:7px}.monthly-grid strong,.monthly-grid span{display:block}.monthly-grid span{font-size:.75rem;margin-top:.35rem}.monthly-grid .income{color:var(--green)}.monthly-grid .expense{color:var(--red)}.rate-summary{background:#f5f8fc;border-radius:8px;padding:1rem;margin-top:.5rem}.rate-summary h3{font-size:.9rem}.rate-summary>div{display:grid;grid-template-columns:1fr auto 1fr auto;gap:1rem;color:var(--muted)}.rate-summary b{color:var(--ink)}.update-needed{text-align:center;padding:3rem}.update-needed>span{display:grid;place-items:center;width:65px;height:65px;border-radius:50%;margin:0 auto 1rem;color:#fff;background:var(--blue);font-size:1.7rem;font-weight:800}
.mileage-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.mileage-rates{margin-bottom:1rem}.mileage-rates>div:last-child{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.mileage-rates>div:last-child span{display:flex;justify-content:space-between;gap:.6rem;padding:.8rem;background:#f5f8fc;border-radius:7px;font-size:.78rem}.weekly-summary{margin-bottom:1rem}.weekly-summary>summary,.return-section>summary{cursor:pointer;font-weight:800;display:flex;justify-content:space-between;align-items:center;list-style:none}.weekly-summary>summary span,.return-section>summary span{font-size:.72rem;color:var(--muted);font-weight:600}.weekly-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-top:1rem}.weekly-summary-grid>div{padding:.75rem;border:1px solid var(--line);border-radius:7px}.weekly-summary-grid strong,.weekly-summary-grid span,.weekly-summary-grid small{display:block}.weekly-summary-grid span{font-size:.75rem;margin-top:.25rem}.weekly-summary-grid .income{color:var(--green)}.weekly-summary-grid .expense{color:var(--red)}
.return-guide{margin-bottom:1rem;border:1px solid #c9d8ec;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.return-guide-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.35rem;background:linear-gradient(135deg,#071f40,#0b4f92);color:#fff}.return-guide-heading h2{color:#fff}.return-guide-heading p{color:#c8dbef;margin:0}.return-guide-heading>span{display:grid;place-items:center;width:78px;height:78px;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:rgba(255,255,255,.1);font-size:1.15rem;font-weight:900}.return-warning{margin:1rem 1rem 0;padding:.8rem 1rem;border:1px solid #f0d18b;background:#fff8e7;border-radius:7px;color:#76520d;font-size:.8rem}.return-section{border-top:1px solid var(--line);padding:1rem 1.35rem}.return-section[open]>summary{color:var(--blue)}.return-section .table-wrap{margin-top:.9rem}.return-section td{white-space:normal}.return-section th:nth-child(1){width:70px}.return-section th:nth-child(3){width:210px}.prepared-value{font-weight:850;color:var(--blue)}.hmrc-links{display:flex;gap:1rem;padding:1rem 1.35rem;background:#f5f8fc;border-top:1px solid var(--line)}.hmrc-links a{font-weight:750}
.csv-upload-panel{margin-bottom:1rem}.csv-upload-form{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end}.csv-help{font-size:.78rem;margin-bottom:0}.import-history a{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--line);color:var(--ink)}.import-history a:last-child{border-bottom:0}.import-status,.rule-decision,.learned-badge{display:inline-flex;padding:.23rem .5rem;border-radius:99px;font-size:.67rem;font-weight:850}.import-status.mapping{background:#fff2d8;color:#8a5c0d}.import-status.review{background:#eaf2ff;color:var(--blue)}.import-status.completed{background:#e4f8ee;color:var(--green)}.learned-rules>div{position:relative;padding:.75rem 58px .75rem 0;border-bottom:1px solid var(--line)}.learned-rules strong,.learned-rules small{display:block;margin-top:.3rem}.learned-rules form{position:absolute;right:0;top:.8rem}.rule-decision.income{background:#e4f8ee;color:var(--green)}.rule-decision.expense{background:#ffeaed;color:var(--red)}.rule-decision.ignore{background:#edf1f5;color:#526072}.csv-preview{margin-top:1rem}.import-summary{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.import-summary span{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.7rem 1rem;color:var(--muted);font-size:.78rem}.import-summary b{color:var(--ink);margin-right:.25rem}.import-review-table td{white-space:normal;min-width:120px}.import-review-table td:nth-child(2){min-width:270px}.import-review-table select{min-width:260px}.learned-badge{margin-top:.4rem;background:#eaf2ff;color:var(--blue)}.remember-choice{flex-direction:row;align-items:center;gap:.4rem;font-size:.72rem;white-space:nowrap}.remember-choice input{width:auto}.import-actions{position:sticky;bottom:0;padding:1rem;background:rgba(247,249,252,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line)}
.keyword-review-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:rgba(4,20,42,.72);backdrop-filter:blur(5px)}.keyword-review-popup{position:relative;width:min(720px,100%);max-height:calc(100vh - 2.5rem);overflow-y:auto;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.keyword-popup-close{position:absolute;right:1rem;top:1rem;z-index:2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#edf2f8;color:var(--ink);font-size:1.4rem}.keyword-review-popup>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem 4rem 1.15rem 1.5rem;border-bottom:1px solid var(--line)}.keyword-review-popup>header h2{margin:0}.keyword-review-popup>header>span{flex:0 0 auto;padding:.55rem .8rem;border-radius:8px;background:#eaf2ff;color:var(--blue);font-size:.74rem}.keyword-review-popup>header>span b{font-size:1rem}.keyword-saved{margin:1rem 1.5rem 0;padding:.7rem .85rem;border-radius:7px;background:#e5f8ef;color:#08774c;font-size:.78rem;font-weight:700}.keyword-transaction{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1.2rem 1.5rem .8rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.keyword-transaction span,.keyword-transaction strong{display:block}.keyword-transaction span{color:var(--muted);font-size:.72rem;margin-bottom:.3rem}.keyword-transaction>.amount{font-size:1.25rem;white-space:nowrap}.detected-keyword{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0 1.5rem;padding:.75rem .9rem;border-radius:8px;background:#071f40;color:#fff}.detected-keyword span{color:#bcd2ea;font-size:.72rem}.detected-keyword strong{font-size:1.05rem;letter-spacing:.02em}.keyword-match-summary{margin:.8rem 1.5rem;padding:.8rem .9rem;border-left:4px solid var(--blue);background:#edf5ff;color:#25456e}.keyword-match-summary strong,.keyword-match-summary span,.keyword-match-summary small{display:block}.keyword-match-summary span,.keyword-match-summary small{margin-top:.25rem;font-size:.75rem}.keyword-review-form{padding:0 1.5rem 1.4rem}.keyword-decisions{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;border:0;padding:0;margin:1.1rem 0}.keyword-decisions legend{grid-column:1/-1;width:100%;margin-bottom:.25rem}.keyword-decision{position:relative;display:flex;flex-direction:row;align-items:center;gap:.65rem;padding:.8rem;border:1px solid var(--line);border-radius:9px;cursor:pointer;background:#fff}.keyword-decision>input{position:absolute;opacity:0;pointer-events:none}.keyword-decision>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;font-size:1.05rem;font-weight:900}.keyword-decision strong,.keyword-decision small{display:block}.keyword-decision small{color:var(--muted);font-size:.65rem;margin-top:.15rem;line-height:1.25}.keyword-decision.income>span{background:#e4f8ee;color:var(--green)}.keyword-decision.expense>span{background:#ffeaed;color:var(--red)}.keyword-decision.ignore>span{background:#edf1f5;color:#526072}.keyword-decision.is-selected,.keyword-decision:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 2px rgba(12,99,216,.14)}.keyword-category{margin-bottom:.9rem}.keyword-category[hidden]{display:none}.keyword-remember{flex-direction:row;align-items:flex-start;gap:.7rem;padding:.85rem;border-radius:8px;background:#f5f8fc}.keyword-remember input{width:auto;margin-top:.2rem}.keyword-remember strong,.keyword-remember small{display:block}.keyword-remember small{color:var(--muted);margin-top:.2rem}.keyword-review-form>footer{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.staged-review-popup{width:min(760px,100%)}.scope-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:.25rem 1.5rem 1rem}.scope-choice-grid form{display:flex}.scope-choice{display:flex;flex:1;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .7rem;border:1px solid var(--line);border-radius:10px;background:#fff}.scope-choice:hover{border-color:var(--blue);box-shadow:0 8px 20px rgba(15,50,95,.1)}.scope-choice>span{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;font-size:1.25rem;font-weight:900}.scope-choice small{line-height:1.3;text-align:center}.scope-choice.business>span{background:#eaf2ff;color:var(--blue)}.scope-choice.household>span{background:#e4f8ee;color:var(--green)}.scope-choice.ignore>span{background:#ffeaed;color:var(--red)}.popup-simple-footer{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem}.popup-simple-footer a{font-weight:800}.suggestion-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.25rem 1.5rem 1rem}.suggestion-actions form{display:flex}.category-choice-panel{margin:0 1.5rem 1rem;padding:1rem;border:1px solid #c9d8ec;border-radius:10px;background:#f8fafc}.category-choice-panel[hidden]{display:none}.category-choice-panel h3{margin-bottom:.75rem}.category-button-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.category-button-grid button{padding:.65rem;border:1px solid #bfd0e5;border-radius:7px;background:#fff;font-weight:700;text-align:left}.category-button-grid button:hover{border-color:var(--blue);color:var(--blue)}.new-category-inline{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}.new-category-inline summary{cursor:pointer;color:var(--blue);font-weight:800}.new-category-inline form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.7rem;margin-top:.8rem}.new-category-inline .inline-check{grid-column:1/-1}.inline-check{flex-direction:row;align-items:center;gap:.55rem}.inline-check input{width:auto}.btn.danger-button,.danger-button{color:#fff;background:#b5283b;border-color:#b5283b}.btn.danger-button:hover,.danger-button:hover{background:#941f30}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none}
.data-control-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;margin-bottom:1rem}.data-control-panel{min-width:0}.control-count{display:grid;place-items:center;min-width:36px;height:36px;padding:0 .55rem;border-radius:99px;background:#eaf2ff;color:var(--blue);font-weight:850}.category-settings-form{padding-bottom:1.2rem;border-bottom:1px solid var(--line)}.category-settings-form .btn{align-self:flex-start}.custom-category-list>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.custom-category-list strong,.custom-category-list small{display:block}.custom-category-list small{margin-top:.2rem}.data-note{margin:.8rem 0 0;color:var(--muted);font-size:.72rem}.data-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:1rem}.data-summary>div{padding:.75rem;border-radius:8px;background:#f5f8fc}.data-summary span,.data-summary strong{display:block}.data-summary span{font-size:.67rem;color:var(--muted)}.data-summary strong{margin-top:.25rem;font-size:1.15rem}.data-control-panel>p{color:var(--muted);font-size:.8rem;line-height:1.55}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-color:#efb7bf}.danger-zone>div{display:flex;align-items:flex-start;gap:1rem}.danger-zone>div>span{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#ffeaed;color:var(--red);font-size:1.2rem;font-weight:900}.danger-zone h2{margin-bottom:.3rem}.danger-zone p{max-width:900px;margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}.danger-text{color:var(--red)}body.modal-open{overflow:hidden}.simple-modal{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;padding:1rem;background:rgba(4,20,42,.72);backdrop-filter:blur(5px)}.simple-modal[hidden]{display:none}.simple-modal>section{position:relative;width:min(520px,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:1.5rem;border-radius:14px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.3)}.simple-modal>section>p{color:var(--muted);line-height:1.55}.modal-close{position:absolute;right:1rem;top:1rem;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:#edf2f8;font-size:1.25rem}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:.7rem;margin-top:1.2rem}.modal-actions form{display:flex}
.admin-badge,.role-badge,.you-badge{display:inline-flex;align-items:center;border-radius:99px;font-size:.65rem;font-weight:850}.admin-badge{padding:.28rem .55rem;background:#eaf2ff;color:var(--blue)}.role-badge{padding:.3rem .55rem}.role-badge.admin{background:#eaf2ff;color:var(--blue)}.role-badge.member{background:#edf1f5;color:#526072}.you-badge{margin-left:.4rem;padding:.15rem .4rem;background:#e4f8ee;color:#08774c}.admin-members-panel .table-actions .btn{min-height:34px;padding:.45rem .7rem;font-size:.72rem}.admin-members-panel td:first-child small{display:block;margin-top:.25rem}
.approval-badge{display:inline-flex;padding:.3rem .55rem;border-radius:99px;font-size:.65rem;font-weight:850}.approval-badge.approved{background:#e4f8ee;color:#08774c}.approval-badge.pending{background:#fff2d8;color:#80560d}.approval-badge.rejected{background:#ffeaed;color:#a42a38}.member-admin-actions{min-width:310px;flex-wrap:wrap}.site-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}.site-settings-grid aside{display:flex;flex-direction:column;gap:1rem}.site-settings-grid h2{margin:0 0 .9rem}.site-settings-grid .stack-form>h2:not(:first-of-type){margin-top:1rem;padding-top:1.25rem;border-top:1px solid var(--line)}.smtp-settings{margin-top:.5rem;padding:1rem;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.smtp-settings h3{margin-bottom:.25rem}.smtp-settings>p,.email-test-panel p,.site-settings-grid aside>.panel>p{color:var(--muted);font-size:.8rem;line-height:1.5}.email-test-panel strong{display:block;margin:.5rem 0 1rem;overflow-wrap:anywhere}.email-test-panel form{margin-top:.8rem}.email-link{color:var(--blue)!important;font-weight:800}.email-send-button{white-space:nowrap}
.invoice-delivery-history{margin-bottom:1rem}.invoice-delivery-history>summary{display:flex;justify-content:space-between;cursor:pointer;font-weight:800;color:var(--ink)}.invoice-delivery-history>summary span{color:var(--muted);font-size:.75rem}.invoice-delivery-history .table-wrap{margin-top:1rem}.invoice-delivery-history td:last-child{white-space:normal;min-width:260px}
.mileage-period-selector select{margin-top:.45rem;border-color:#a9c8ef;background:#f4f8ff}.mileage-period-selector small{margin-top:.45rem;color:#355f91}.mileage-period-badge{display:inline-block;margin-top:.35rem;padding:.2rem .45rem;border-radius:999px;background:#edf2f8;color:#526072;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.mileage-period-badge.week,.mileage-period-badge.month,.mileage-period-badge.year{background:#eaf2ff;color:var(--blue)}[data-mileage-date-field][hidden],[data-mileage-journey-field][hidden],[data-mileage-summary-field][hidden]{display:none}
.household-welcome{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:1.25rem;border-radius:12px;background:linear-gradient(135deg,#08254a,#176f68);color:#fff}.household-welcome>div{display:grid;grid-template-columns:52px 1fr;column-gap:1rem}.household-welcome>div>span{grid-row:1/4;display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:rgba(255,255,255,.12);font-size:1.5rem}.household-welcome h2{color:#fff}.household-welcome p{color:#d4e7e4}.household-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.household-stat{padding:1rem;border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:9px;background:#fff}.household-stat>span,.household-stat>small{display:block;color:var(--muted);font-size:.72rem}.household-stat>strong{display:block;margin:.45rem 0;font-size:1.4rem}.household-stat.income{border-top-color:var(--green)}.household-stat.expense,.household-stat.negative{border-top-color:var(--red)}.household-stat.positive,.household-stat.saving{border-top-color:#27a79b}.household-alert{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.85rem 1rem;border:1px solid #bcd3f5;border-radius:8px;background:#edf5ff;color:#25456e}.household-alert strong{white-space:nowrap}.household-alert.danger{border-color:#f0b8bf;background:#fff0f2;color:#8a2633}.household-alert.warning{border-color:#efd18b;background:#fff8e6;color:#76520d}.household-alert.info{align-items:flex-start}.household-main-grid{grid-template-columns:1fr 1fr}.emergency-panel>.panel-heading>strong{color:#08774c;font-size:1.05rem}.progress-track{height:10px;border-radius:99px;background:#e9eef4;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#0c63d8,#29b59f)}.panel-copy{margin:.8rem 0;color:var(--muted);font-size:.78rem}.emergency-panel details{border-top:1px solid var(--line);padding-top:.75rem}.emergency-panel summary,.payoff-schedule>summary{cursor:pointer;font-weight:800}.mini-settings-form{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.9rem}.mini-settings-form .btn{justify-self:start}.debt-capacity{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem}.debt-capacity>div{padding:.7rem;border-radius:7px;background:#f5f8fc}.debt-capacity span,.debt-capacity strong{display:block}.debt-capacity span{font-size:.67rem;color:var(--muted)}.debt-capacity strong{margin-top:.3rem}.capacity-warning{margin-bottom:1rem;padding:.7rem;border-radius:7px;background:#fff2d8;color:#80560d;font-size:.75rem}.spending-bars>div{display:grid;grid-template-columns:minmax(150px,1fr) 1.5fr auto;align-items:center;gap:.7rem;padding:.55rem 0}.spending-bars span,.spending-bars strong{font-size:.76rem}.spending-bars small{color:var(--muted)}.spending-bars>div>div{height:8px;border-radius:99px;background:#e9eef4;overflow:hidden}.spending-bars i{display:block;height:100%;border-radius:99px;background:#397bd1}.saving-opportunities>div{padding:.75rem 0;border-bottom:1px solid var(--line)}.saving-opportunities span,.saving-opportunities strong{display:block}.saving-opportunities strong{margin:.2rem 0;color:#08774c}.saving-opportunities p,.analysis-note{font-size:.72rem;color:var(--muted)}.analysis-note{margin-top:1rem}.finance-guidance{margin:1rem 0;padding:1rem;border:1px solid #d1dce9;border-radius:8px;background:#f8fafc;color:#526072;font-size:.78rem}.finance-guidance strong{color:var(--ink)}.household-type-toggle label{flex:1;padding:.7rem;text-align:center;border-radius:6px;color:var(--muted);font-weight:800;cursor:pointer}.household-type-toggle input{position:absolute;opacity:0}.household-type-toggle label.active{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.08)}.household-type-toggle label.active.income{color:var(--green)}.household-type-toggle label.active.expense{color:var(--red)}.checkbox-card{flex-direction:row!important;align-items:flex-start;gap:.7rem;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.checkbox-card input{width:auto;margin-top:.2rem}.checkbox-card span,.checkbox-card strong,.checkbox-card small{display:block}.essential-badge{display:inline-flex;padding:.2rem .45rem;border-radius:99px;font-size:.62rem;font-weight:800}.essential-badge.essential{background:#eaf2ff;color:var(--blue)}.essential-badge.flexible{background:#fff2d8;color:#80560d}.debt-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.debt-summary>div{padding:1rem;border-radius:9px;background:#09264b;color:#fff}.debt-summary span,.debt-summary strong{display:block}.debt-summary span{color:#bfd3e9;font-size:.72rem}.debt-summary strong{margin-top:.35rem;font-size:1.45rem}.debt-card-list{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.debt-card{padding:1rem;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.debt-card:hover{border-color:#9bbde8;box-shadow:0 8px 24px rgba(15,50,95,.08)}.debt-card-top{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.debt-card-top h3{margin:.45rem 0 .15rem}.debt-card-top>strong{font-size:1.25rem}.debt-status,.priority-badge{display:inline-flex;margin-right:.3rem;padding:.2rem .45rem;border-radius:99px;font-size:.62rem;font-weight:850;text-transform:uppercase}.debt-status.active{background:#e4f8ee;color:#08774c}.debt-status.paused{background:#fff2d8;color:#80560d}.debt-status.paid{background:#eaf2ff;color:var(--blue)}.priority-badge{background:#ffeaed;color:#a42a38}.debt-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.7rem;color:var(--muted);font-size:.7rem}.debt-detail-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem;margin-bottom:1rem}.debt-detail-stats>div{padding:.9rem;border:1px solid var(--line);border-radius:8px;background:#fff}.debt-detail-stats span,.debt-detail-stats strong{display:block}.debt-detail-stats span{font-size:.68rem;color:var(--muted)}.debt-detail-stats strong{margin-top:.35rem}.debt-payment-form{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.debt-payment-form label:nth-of-type(3){grid-column:1/-1}.debt-payment-form .btn{grid-column:1/-1;justify-self:start}.response-status-form{display:flex;gap:.7rem}.paid-celebration{padding:1rem;border-radius:8px;background:#e4f8ee;color:#08774c;font-weight:800}.payoff-schedule{margin-bottom:1rem}.payoff-schedule>summary{display:flex;justify-content:space-between}.payoff-schedule .table-wrap{margin-top:1rem;max-height:580px;overflow:auto}.debt-email-panel{max-width:900px}.email-field{display:flex;justify-content:space-between;margin-bottom:1rem;padding:.8rem;border-radius:7px;background:#f5f8fc}.email-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1rem}.mark-sent-form{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.mark-sent-form label{flex-direction:row;align-items:center}.mark-sent-form input{width:auto}
@media(max-width:1200px){.invoice-workspace{grid-template-columns:1fr}.invoice-preview{position:relative;top:auto;max-width:760px;width:100%;margin:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}.tax-stat-grid{grid-template-columns:repeat(2,1fr)}.tax-actions{grid-template-columns:repeat(2,1fr)}.report-downloads.three{grid-template-columns:1fr 1fr}.household-stat-grid{grid-template-columns:repeat(2,1fr)}.debt-detail-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:translateX(0);box-shadow:15px 0 30px rgba(0,0,0,.2)}.main-content{margin:0}.menu-toggle{display:block}.topbar{padding:0 1rem}.page-content{padding:1rem}.page-heading{align-items:flex-start;flex-direction:column}.auth-shell{grid-template-columns:1fr}.auth-visual{display:none}.auth-card{min-height:100vh}.customer-grid{grid-template-columns:1fr}.tax-hero-grid,.report-grid{grid-template-columns:1fr}.tax-actions{grid-template-columns:1fr}.monthly-grid,.weekly-summary-grid{grid-template-columns:repeat(2,1fr)}.mileage-stats{grid-template-columns:1fr}.mileage-rates>div:last-child{grid-template-columns:1fr}.csv-upload-form{grid-template-columns:1fr}.return-guide-heading{align-items:flex-start}.return-guide-heading>span{width:64px;height:64px;flex:0 0 64px}.debt-card-list{grid-template-columns:1fr}.debt-capacity{grid-template-columns:1fr}.household-alert{align-items:flex-start;flex-direction:column}.household-alert strong{white-space:normal}.household-welcome{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){html{font-size:14px}.page-content{padding:.75rem}.topbar strong,.bell{display:none}.form-grid.two,.billing-grid,.editor-top,.invoice-bottom,.customer-card{grid-template-columns:1fr}.span-two{grid-column:auto}.billing-grid fieldset+fieldset{border-left:0;border-top:1px solid var(--line)}.line-items{overflow-x:auto}.line-head,.line-row{min-width:540px}.invoice-preview{padding:1.25rem;min-height:760px;overflow:hidden}.preview-meta{grid-template-columns:1fr;gap:1rem}.preview-table{overflow-x:auto}.preview-row{min-width:520px}.preview-notes{grid-template-columns:1fr}.stat-grid,.tax-stat-grid,.household-stat-grid,.debt-summary,.debt-detail-stats{grid-template-columns:1fr}.customer-card{justify-items:start}.customer-actions{margin-left:65px}.auth-card{padding:2rem 1.2rem}.install-card{padding:1.25rem}.requirements{grid-template-columns:1fr}.editor-actions{flex-wrap:wrap}.editor-actions .secondary:first-child{margin-right:0}.editor-actions .btn{flex:1}.tax-breakdown,.quick-saving,.report-downloads,.report-downloads.three,.monthly-grid,.weekly-summary-grid,.mini-settings-form{grid-template-columns:1fr}.rate-summary>div{grid-template-columns:1fr auto}.heading-actions{align-items:stretch;flex-direction:column;width:100%}.heading-actions .btn{width:100%}.tax-year-switch label{justify-content:space-between}.download-card{grid-template-columns:50px 1fr auto}.hmrc-links{flex-direction:column}.return-guide-heading>span{display:none}.return-section{padding:.9rem}.import-history a{grid-template-columns:1fr auto}.import-history a>b{grid-column:1/-1}.import-actions{flex-wrap:wrap}.keyword-review-overlay{padding:.5rem;align-items:flex-start}.keyword-review-popup{max-height:calc(100vh - 1rem);border-radius:11px}.keyword-review-popup>header{align-items:flex-start;padding:1.1rem 3.5rem 1rem 1rem}.keyword-review-popup>header>span{display:none}.keyword-saved,.keyword-transaction,.detected-keyword,.keyword-match-summary{margin-left:1rem;margin-right:1rem}.keyword-transaction{align-items:flex-start}.keyword-review-form{padding-left:1rem;padding-right:1rem}.keyword-decisions{grid-template-columns:1fr}.keyword-review-form>footer{flex-direction:column-reverse}.keyword-review-form>footer .btn{width:100%}.household-welcome>div{grid-template-columns:1fr}.household-welcome>div>span{grid-row:auto}.spending-bars>div{grid-template-columns:1fr auto}.spending-bars>div>div{grid-column:1/-1;grid-row:2}.debt-payment-form{grid-template-columns:1fr}.debt-payment-form label:nth-of-type(3),.debt-payment-form .btn{grid-column:auto}.response-status-form,.email-actions,.mark-sent-form{align-items:stretch;flex-direction:column}.email-actions .btn{width:100%}}
@media(max-width:850px){.data-control-grid{grid-template-columns:1fr}.danger-zone{align-items:stretch;flex-direction:column}.danger-zone>.btn{align-self:flex-start}}
@media(max-width:1050px){.site-settings-grid{grid-template-columns:1fr}.site-settings-grid aside{display:grid;grid-template-columns:1fr 1fr}.site-settings-grid aside>.tax-disclaimer{grid-column:1/-1}}
@media(max-width:620px){.scope-choice-grid,.suggestion-actions,.category-button-grid,.data-summary{grid-template-columns:1fr}.scope-choice-grid,.suggestion-actions{padding-left:1rem;padding-right:1rem}.category-choice-panel{margin-left:1rem;margin-right:1rem}.popup-simple-footer{padding-left:1rem;padding-right:1rem}.new-category-inline form{grid-template-columns:1fr}.modal-actions{align-items:stretch;flex-direction:column-reverse}.modal-actions .btn,.modal-actions form{width:100%}.simple-modal{align-items:start;padding:.5rem}.simple-modal>section{max-height:calc(100vh - 1rem);border-radius:11px}}
@media(max-width:620px){.site-settings-grid aside{display:flex}.member-admin-actions{min-width:240px}}
.paye-welcome{background:linear-gradient(135deg,#09264b,#6046a8)}.paye-main-grid{grid-template-columns:1.15fr .85fr}.paye-job-projections{display:flex;flex-direction:column;gap:.75rem}.paye-job-projections article{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:9px;background:#fff}.paye-job-projections article>div>span,.paye-job-projections article>div>strong,.paye-job-projections article>div>small{display:block}.paye-job-projections article>div>span{color:var(--muted);font-size:.7rem}.paye-job-projections article>div>strong{margin:.2rem 0}.paye-job-projections dl{display:flex;gap:.5rem;margin:0}.paye-job-projections dl>div{min-width:88px;padding:.55rem;border-radius:7px;background:#f5f8fc}.paye-job-projections dt{font-size:.62rem;color:var(--muted)}.paye-job-projections dd{margin:.25rem 0 0;font-weight:800}.paye-job-projections .card-links{grid-column:1/-1;display:flex;gap:1rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:.75rem;font-weight:750}.paye-year-totals{grid-template-columns:repeat(2,1fr)}.paye-year-totals>div:last-child{grid-column:1/-1;background:#eaf7f2}.paye-jobs-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.paye-job-card{grid-template-columns:50px 1fr}.paye-job-card .customer-actions{grid-column:2;justify-content:flex-start}.paye-job-card small{display:block;margin-top:.35rem}.paye-job-card.inactive,.deduction-list article.inactive{opacity:.62}.danger-inline{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.paye-deduction-grid{grid-template-columns:1.2fr .8fr}.deduction-list{display:flex;flex-direction:column;gap:.65rem}.deduction-list article{display:flex;justify-content:space-between;gap:1rem;padding:.8rem;border:1px solid var(--line);border-radius:8px}.deduction-list article span,.deduction-list article strong,.deduction-list article small{display:block}.deduction-list article span{color:var(--blue);font-size:.66rem;font-weight:800;text-transform:uppercase}.deduction-list article strong{margin:.2rem 0}.deduction-list article>div:last-child{display:flex;align-items:center;gap:.8rem}.deduction-list article form{display:inline}.deduction-help p{color:var(--muted);font-size:.8rem;line-height:1.55}.paye-gross-preview{margin-top:1rem;padding:1rem;border-radius:8px;background:#edf5ff;color:#25456e}.paye-gross-preview strong{float:right;font-size:1.15rem}.paye-record-table td{vertical-align:top}.sidebar .create-button{white-space:normal;text-align:center}
@media(max-width:1200px){.paye-job-projections article{grid-template-columns:1fr}.paye-job-projections .card-links{grid-column:auto}.paye-job-projections dl{flex-wrap:wrap}}
@media(max-width:850px){.paye-jobs-grid{grid-template-columns:1fr}.paye-main-grid,.paye-deduction-grid{grid-template-columns:1fr}}
@media(max-width:620px){.paye-job-projections dl{display:grid;grid-template-columns:1fr}.paye-job-projections .card-links{flex-wrap:wrap}.paye-job-card{grid-template-columns:1fr}.paye-job-card .customer-actions{grid-column:auto;margin-left:0;flex-wrap:wrap}.deduction-list article{flex-direction:column}.paye-gross-preview strong{float:none;display:block;margin-top:.35rem}}

/* ========================================================================
   Invoicify — ValetFlow visual continuity layer
   Presentation-only update: no application, database or account logic.
   ======================================================================== */
:root{
    --navy:#0f172a;
    --navy-2:#111f38;
    --blue:#2563eb;
    --blue-2:#1d4ed8;
    --cyan:#38bdf8;
    --ink:#0f172a;
    --muted:#64748b;
    --line:#e2e8f0;
    --bg:#eef2ff;
    --white:#fff;
    --green:#16a34a;
    --amber:#f59e0b;
    --red:#dc2626;
    --violet:#7c3aed;
    --radius:20px;
    --shadow:0 18px 45px rgba(15,23,42,.08);
    --panel:rgba(255,255,255,.92);
    --panel-strong:rgba(255,255,255,.97);
}

html{min-height:100%;scroll-behavior:smooth}
body{
    min-height:100%;
    background:
        radial-gradient(circle at 10% -10%,rgba(37,99,235,.18),transparent 30rem),
        radial-gradient(circle at 95% 5%,rgba(14,165,233,.14),transparent 28rem),
        linear-gradient(180deg,#f8fafc 0%,#eef2ff 100%);
    color:var(--ink);
    letter-spacing:-.005em;
}
body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px);
    background-size:42px 42px;
    -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),transparent 55%);
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),transparent 55%);
}
.app-shell,.auth-shell,.install-shell{position:relative;z-index:1}
h1,h2,h3,h4,h5,h6{letter-spacing:-.025em}
h1{font-weight:850}
h2,h3{font-weight:800}
a{transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}

/* ValetFlow-style branded mark, without replacing invoice/document logos. */
.sidebar .brand img,.auth-visual .brand img{display:none}
.sidebar .brand::before,.auth-visual .brand::before,.install-brand::before{
    content:"IN";
    flex:0 0 auto;
    width:38px;
    height:38px;
    display:inline-grid;
    place-items:center;
    border-radius:12px;
    background:linear-gradient(135deg,#60a5fa,#2563eb);
    color:#fff;
    font-size:.8rem;
    font-weight:900;
    letter-spacing:.04em;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 25px rgba(37,99,235,.3);
}
.auth-visual .brand.large::before,.install-brand::before{
    width:48px;
    height:48px;
    border-radius:16px;
    font-size:.95rem;
}
.install-brand img{display:none}
.install-brand::before{margin-right:.65rem}
.brand{letter-spacing:-.025em}
.brand>span>span,.preview-brand strong{color:var(--blue)}

/* Navigation and application chrome. */
.app-shell{grid-template-columns:244px minmax(0,1fr)}
.sidebar{
    width:244px;
    padding:1.4rem 1.05rem;
    background:rgba(15,23,42,.96);
    border-right:1px solid rgba(255,255,255,.09);
    box-shadow:14px 0 38px rgba(15,23,42,.16);
    backdrop-filter:blur(18px);
}
.sidebar::after{
    content:"";
    position:absolute;
    width:190px;
    height:190px;
    right:-95px;
    top:-80px;
    border-radius:50%;
    background:rgba(37,99,235,.18);
    pointer-events:none;
}
.sidebar>*{position:relative;z-index:1}
.sidebar .brand{gap:.65rem;margin:.05rem .25rem 1.55rem;font-size:1.38rem}
.sidebar nav{gap:.2rem}
.sidebar nav a{
    min-height:42px;
    padding:.65rem .72rem;
    border:1px solid transparent;
    border-radius:12px;
    color:#dbeafe;
    font-weight:700;
}
.sidebar nav a span{color:#93c5fd}
.sidebar nav a:hover,.sidebar nav a.active{
    color:#fff;
    background:rgba(255,255,255,.1);
    border-color:rgba(255,255,255,.07);
    transform:translateX(2px);
}
.sidebar nav a.active span{color:#fff}
.nav-section{margin:1.15rem .72rem .38rem;color:#8193ad;letter-spacing:.095em}
.member-card{
    border-color:rgba(96,165,250,.25);
    border-radius:16px;
    background:rgba(30,41,59,.72);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.member-card span{color:#7dd3fc}
.member-card p{color:#b6c5da}
.logout-link{border-radius:12px;margin-top:.35rem}
.logout-link:hover{color:#fff;background:rgba(255,255,255,.08)}

.topbar{
    height:74px;
    padding:0 2rem;
    color:#fff;
    background:rgba(15,23,42,.92);
    border-bottom:1px solid rgba(255,255,255,.1);
    box-shadow:0 12px 35px rgba(15,23,42,.16);
    backdrop-filter:blur(18px);
}
.topbar strong{font-weight:750}
.topbar .bell{color:#bfdbfe}
.topbar .avatar{
    background:linear-gradient(135deg,#60a5fa,#2563eb);
    box-shadow:0 8px 18px rgba(37,99,235,.28),inset 0 1px 0 rgba(255,255,255,.3);
}
.topbar .menu-toggle{color:#fff}
.admin-badge{color:#dbeafe;background:rgba(37,99,235,.25);border:1px solid rgba(147,197,253,.22)}
.page-content{max-width:1540px;padding:2rem 2rem 3rem}
.page-heading{margin-bottom:1.45rem}
.page-heading p:last-child{max-width:850px;line-height:1.55}
.eyebrow{color:var(--blue);font-size:.7rem;letter-spacing:.13em}

/* Buttons and controls. */
.btn{
    min-height:42px;
    border-radius:13px;
    padding:.7rem 1.05rem;
    font-weight:750;
    box-shadow:none;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{
    color:#fff;
    border-color:transparent;
    background:linear-gradient(135deg,var(--blue),var(--blue-2));
    box-shadow:0 12px 24px rgba(37,99,235,.18);
}
.btn.primary:hover{background:linear-gradient(135deg,#2f6ff0,#1e45c4);filter:brightness(.99)}
.btn.secondary{
    color:var(--blue-2);
    border-color:rgba(37,99,235,.32);
    background:rgba(255,255,255,.72);
}
.btn.secondary:hover{background:#fff;border-color:var(--blue)}
.btn.dashed{border-radius:11px;background:rgba(37,99,235,.025)}
.create-button{min-height:46px;border-radius:14px}
.link{font-weight:700}

label{color:#475569;font-weight:750;font-size:.84rem}
input,select,textarea{
    border-radius:13px;
    border-color:#cbd5e1;
    padding:.72rem .9rem;
    background:rgba(255,255,255,.96);
}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input:focus,select:focus,textarea:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 .25rem rgba(37,99,235,.12);
}
input[readonly]{background:#f8fafc}
.inline-check input,.mark-sent-form input{box-shadow:none}

/* Glass panels and reusable content cards. */
.card,.panel,.stat-card,.action-tile,.customer-card,.download-card,.return-section,
.debt-detail-stats>div,.paye-job-projections article,.paye-deduction-grid article,
.deduction-list article,.category-choice-panel,.email-field{
    background:var(--panel);
    border-color:rgba(226,232,240,.92);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    backdrop-filter:blur(18px);
}
.panel{padding:1.4rem}
.form-panel{padding:1.7rem}
.panel-heading{padding-bottom:.1rem}
.panel-heading h2{margin-bottom:.25rem}
.panel-heading p{line-height:1.45}
.action-tile,.customer-card,.download-card,.return-section,
.debt-detail-stats>div,.paye-job-projections article,.deduction-list article{
    box-shadow:0 12px 30px rgba(15,23,42,.055);
}
.action-tile:hover,.customer-card:hover,.download-card:hover{
    border-color:rgba(37,99,235,.3);
    transform:translateY(-2px);
    box-shadow:0 18px 38px rgba(15,23,42,.085);
}
.action-tile>span,.customer-avatar,.empty-state>span{
    border-radius:13px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}

/* Dashboard figures use the same card language as ValetFlow. */
.stat-grid{gap:1.05rem}
.stat-card{
    position:relative;
    overflow:hidden;
    min-height:125px;
    padding:1.25rem;
}
.stat-card::after{
    content:"";
    position:absolute;
    width:94px;
    height:94px;
    right:-31px;
    top:-38px;
    border-radius:50%;
    background:rgba(37,99,235,.12);
}
.stat-card p{position:relative;z-index:1;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}
.stat-card strong{position:relative;z-index:1;font-size:2rem;line-height:1;margin-top:.85rem;letter-spacing:-.05em}
.stat-card small{position:relative;z-index:1}
.stat-card .stat-icon{position:relative;z-index:1;border-radius:11px}
.stat-card:has(.stat-icon.green)::after{background:rgba(22,163,74,.12)}
.stat-card:has(.stat-icon.amber)::after{background:rgba(245,158,11,.14)}
.stat-card:has(.stat-icon.violet)::after{background:rgba(124,58,237,.12)}
.tax-stat,.household-stat-grid>div,.debt-summary>div,.paye-year-totals>div{
    border-radius:18px!important;
    border-color:rgba(226,232,240,.92)!important;
    background:var(--panel)!important;
    box-shadow:0 12px 30px rgba(15,23,42,.055)!important;
}

/* Tables, labels and status pills. */
.table-wrap{
    border-radius:16px;
    border:1px solid rgba(226,232,240,.72);
    background:rgba(255,255,255,.42);
}
table{background:transparent}
th{
    color:#64748b;
    background:rgba(248,250,252,.86);
    border-bottom-color:var(--line);
    padding-top:.95rem;
    padding-bottom:.95rem;
}
td{border-bottom-color:rgba(226,232,240,.72);padding-top:.92rem;padding-bottom:.92rem}
tbody tr{transition:background .15s ease}
tbody tr:hover{background:rgba(37,99,235,.035)}
.status,.approval-badge,.role-badge,.you-badge,.mileage-period-badge,.import-status{
    border-radius:999px;
    padding:.4rem .65rem;
    font-weight:800;
}

.alert{border-radius:15px;padding:.9rem 1rem;box-shadow:0 10px 24px rgba(15,23,42,.045)}
.alert.error{color:#9f2636;background:rgba(255,240,242,.96);border-color:#fecdd3}
.alert.success{color:#0c7850;background:rgba(234,251,243,.96);border-color:#bbf7d0}

/* Feature hero cards retain their meaning while sharing the ValetFlow palette. */
.household-welcome,.paye-welcome,.tax-liability-card{
    position:relative;
    overflow:hidden;
    border-radius:22px;
    background:linear-gradient(135deg,#0f172a 0%,#1d4ed8 100%);
    box-shadow:0 18px 42px rgba(15,23,42,.2);
}
.household-welcome::after,.paye-welcome::after,.tax-liability-card::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    right:-85px;
    top:-115px;
    border-radius:50%;
    background:rgba(96,165,250,.2);
    pointer-events:none;
}
.household-welcome>*,.paye-welcome>*,.tax-liability-card>*{position:relative;z-index:1}
.household-welcome>div>span{border-radius:16px;background:rgba(255,255,255,.13)}
.tax-notice,.tax-disclaimer,.return-warning,.tax-record-tip,.csv-help{
    border-radius:16px;
    border-color:rgba(226,232,240,.9);
    box-shadow:0 10px 28px rgba(15,23,42,.05);
}

/* Invoice editor and preview. */
.invoice-editor{padding:1.35rem}
.invoice-preview{
    border-radius:22px;
    border:1px solid rgba(226,232,240,.95);
    box-shadow:0 24px 55px rgba(15,23,42,.11);
}
.logo-upload-display,.billing-grid,.editor-totals{
    border-radius:14px;
    border-color:#cbd5e1;
    background:rgba(248,250,252,.72);
}
.line-items{border-top-color:var(--line)}
.editor-actions{border-top-color:var(--line)}

/* Login and registration. */
.auth-page{background:transparent}
.auth-shell{
    min-height:100vh;
    max-width:1260px;
    margin:0 auto;
    padding:38px;
    gap:28px;
    grid-template-columns:1.08fr .92fr;
    align-items:stretch;
}
.auth-visual{
    position:relative;
    overflow:hidden;
    padding:3.5rem;
    border:1px solid rgba(255,255,255,.1);
    border-radius:30px;
    background:linear-gradient(145deg,rgba(15,23,42,.98),rgba(29,78,216,.92));
    box-shadow:0 24px 55px rgba(15,23,42,.22);
}
.auth-visual::after{
    content:"";
    position:absolute;
    width:360px;
    height:360px;
    right:-145px;
    bottom:-175px;
    border-radius:50%;
    background:rgba(96,165,250,.2);
}
.auth-visual>*{position:relative;z-index:1}
.auth-visual h1{font-size:clamp(2.45rem,4.2vw,3.65rem);line-height:1.03}
.auth-visual p{color:#cbd5e1}
.auth-visual ul{gap:.75rem 1rem}
.auth-visual li{padding:.75rem .85rem;border-radius:13px;background:rgba(255,255,255,.075)}
.auth-card{
    align-self:center;
    max-width:500px;
    min-height:unset;
    padding:2.5rem;
    border:1px solid rgba(226,232,240,.92);
    border-radius:30px;
    background:var(--panel);
    box-shadow:var(--shadow);
    backdrop-filter:blur(18px);
}
.auth-card h2{font-size:2rem}
.auth-card>p{line-height:1.55}
.auth-switch{padding-top:.25rem}

/* Installer and updater. */
.install-page{background:transparent}
.install-shell{max-width:900px;padding:3rem 1rem 5rem}
.install-brand{color:var(--ink);letter-spacing:-.025em}
.install-card{
    padding:2.25rem;
    border-radius:30px;
    border-color:rgba(226,232,240,.92);
    background:var(--panel);
    box-shadow:var(--shadow);
    backdrop-filter:blur(18px);
}
.requirement{border-radius:12px}
.success-icon{box-shadow:0 14px 30px rgba(22,163,74,.2)}

/* Popups and review flows. */
.keyword-review-popup,.simple-modal>section,.staged-review-popup{
    border-radius:24px;
    border:1px solid rgba(226,232,240,.92);
    box-shadow:0 26px 70px rgba(15,23,42,.22);
}
.keyword-review-popup>header,.simple-modal>section>header{
    background:rgba(248,250,252,.92);
    border-bottom-color:var(--line);
}
.keyword-transaction,.detected-keyword,.keyword-match-summary,.keyword-saved,
.scope-choice,.category-choice-panel,.popup-simple-footer{
    border-radius:16px;
}

/* Consistent scrollbar treatment inside the dark navigation. */
.sidebar{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.5) transparent}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(148,163,184,.42);border-radius:999px}

@media(max-width:1200px){
    .page-content{padding-left:1.35rem;padding-right:1.35rem}
}
@media(max-width:850px){
    .app-shell{display:block}
    .sidebar{width:244px}
    .topbar{padding:0 1rem}
    .page-content{padding:1.15rem 1rem 2.25rem}
    .auth-shell{grid-template-columns:1fr;max-width:620px;padding:24px}
    .auth-visual{display:none}
    .auth-card{min-height:unset;width:100%;margin:auto}
}
@media(max-width:620px){
    .page-content{padding:.85rem .7rem 2rem}
    .panel,.form-panel{padding:1.1rem}
    .stat-card{min-height:112px;padding:1.1rem}
    .auth-shell{padding:12px}
    .auth-card{padding:1.7rem 1.25rem;border-radius:24px}
    .install-shell{padding:1.25rem .7rem 3rem}
    .install-card{padding:1.35rem;border-radius:24px}
    .table-wrap{border-radius:13px}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Print only the finished invoice preview, preserving the on-screen design. */
@media print {
    @page { size: A4 portrait; margin: 0; }
    html, body {
        width: 210mm;
        min-height: 297mm;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }
    body * { visibility: hidden !important; }
    #invoice-preview,
    #invoice-preview * { visibility: visible !important; }
    #invoice-preview {
        position: absolute !important;
        inset: 0 auto auto 0 !important;
        width: 210mm !important;
        height: 297mm !important;
        min-height: 297mm !important;
        margin: 0 !important;
        padding: 15mm 16mm !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        color: #10213c !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    #invoice-preview .preview-row,
    #invoice-preview .preview-notes,
    #invoice-preview .preview-totals { break-inside: avoid; }
    #invoice-preview footer {
        left: 16mm !important;
        right: 16mm !important;
        bottom: 14mm !important;
    }
}

/* Member menu preferences. */
.fixed-preferences-label{margin-top:1.35rem!important}
.menu-preferences-intro{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.menu-preferences-intro p{margin:.3rem 0 0;color:var(--muted)}.menu-preferences-intro>span{padding:.45rem .7rem;border-radius:99px;background:#eaf2ff;color:var(--blue);font-size:.72rem;font-weight:800;white-space:nowrap}.menu-preferences-form{max-width:1050px}.menu-section-editor{display:flex;flex-direction:column;gap:1rem}.menu-section-card{border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,35,65,.05);overflow:hidden}.menu-section-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:1rem 1.1rem;background:#f8fafc;border-bottom:1px solid var(--line)}.menu-section-card h2{margin:0;font-size:1rem}.menu-section-card p{margin:.25rem 0 0;color:var(--muted);font-size:.75rem}.menu-drag-handle{display:grid;place-items:center;width:34px;height:38px;border:1px solid #d9e1eb;border-radius:9px;color:#64748b;background:#fff;cursor:grab;font-weight:900;letter-spacing:-.18em;user-select:none;box-shadow:0 3px 10px rgba(15,23,42,.06)}.menu-drag-handle:hover,.menu-drag-handle:focus{outline:none;border-color:#7aa7e8;background:#edf5ff;color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.menu-drag-handle:active{cursor:grabbing}.menu-visibility-toggle{flex-direction:row!important;align-items:center;gap:.45rem;font-size:.75rem;font-weight:800}.menu-visibility-toggle input,.menu-item-row input[type="checkbox"]{width:auto}.menu-item-editor{padding:.7rem}.menu-item-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:.7rem;padding:.65rem .7rem;border-radius:9px}.menu-item-row+ .menu-item-row{border-top:1px solid #edf1f5}.menu-item-row:hover{background:#f8fafc}.menu-item-row label{flex-direction:row;align-items:center;gap:.55rem;font-weight:750}.menu-item-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#eaf2ff;color:var(--blue);font-weight:900}[data-sortable-entry].is-dragging{opacity:.48;outline:2px dashed #4f8fe6;outline-offset:-3px}.is-sorting{background:rgba(234,242,255,.45);border-radius:12px}.sticky-menu-save{position:sticky;bottom:0;margin-top:1rem;padding:1rem;background:rgba(246,248,251,.94);border-top:1px solid var(--line);backdrop-filter:blur(8px);z-index:3}

/* Separate weekly forecast and dashboard saving summary. */
.forecast-saving-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:1.1rem;margin-bottom:1rem;padding:1.2rem 1.3rem;border:1px solid #b9d9cf;border-radius:20px;background:linear-gradient(135deg,#effbf6,#f8fffc);box-shadow:0 14px 34px rgba(15,118,79,.08)}.forecast-saving-banner.needs-forecast{border-color:#bfd3f2;background:linear-gradient(135deg,#edf5ff,#f8fbff)}.forecast-saving-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#0b8e5b,#17b978);font-size:1.55rem;font-weight:900;box-shadow:0 10px 24px rgba(15,118,79,.2)}.needs-forecast .forecast-saving-icon{background:linear-gradient(135deg,#1d4ed8,#3b82f6);box-shadow:0 10px 24px rgba(37,99,235,.2)}.forecast-saving-main>span{display:block;color:#35715f;font-size:.73rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.needs-forecast .forecast-saving-main>span{color:#3f6597}.forecast-saving-main>strong{display:block;margin:.25rem 0 .2rem;color:#075f3e;font-size:2rem;letter-spacing:-.04em}.needs-forecast .forecast-saving-main>strong{color:#174f9f;font-size:1.45rem}.forecast-saving-main>strong small{font-size:.82rem;letter-spacing:0;color:#477b6b}.forecast-saving-main p{margin:0;color:#587169;font-size:.76rem}.forecast-saving-metrics{display:flex;gap:.75rem}.forecast-saving-metrics>div{min-width:130px;padding:.75rem .9rem;border:1px solid rgba(15,118,79,.14);border-radius:13px;background:rgba(255,255,255,.72)}.forecast-saving-metrics span,.forecast-saving-metrics b{display:block}.forecast-saving-metrics span{color:#657a73;font-size:.68rem}.forecast-saving-metrics b{margin-top:.25rem;color:#0b6846;font-size:1rem}.forecast-saving-action{white-space:nowrap}.weekly-tax-estimator{margin-bottom:1rem}.estimate-badge{padding:.4rem .65rem;border-radius:99px;background:#fff2d8;color:#80560d;font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.weekly-tax-form{display:grid;grid-template-columns:1fr 1fr .8fr auto;gap:.75rem;align-items:end;padding:1rem;border-radius:14px;background:#f6f9fd}.weekly-tax-form .btn{height:42px}.forecast-page-panel{margin-bottom:1rem}.tax-forecast-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.tax-forecast-hero>div{position:relative;overflow:hidden;padding:1.25rem;border-radius:18px;color:#fff;background:linear-gradient(135deg,#0f172a,#1d4ed8);box-shadow:0 16px 34px rgba(15,23,42,.15)}.tax-forecast-hero>div:first-child{background:linear-gradient(135deg,#075f3e,#0da66b)}.tax-forecast-hero span,.tax-forecast-hero strong,.tax-forecast-hero small{display:block;position:relative;z-index:1}.tax-forecast-hero span{color:#d8e7fa;font-size:.72rem;font-weight:750}.tax-forecast-hero strong{margin:.45rem 0;font-size:2rem;letter-spacing:-.04em}.tax-forecast-hero small{color:#cfe1f6}.forecast-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.forecast-result-grid article{padding:1.1rem;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 12px 30px rgba(15,23,42,.055)}.forecast-result-grid span,.forecast-result-grid strong,.forecast-result-grid small{display:block}.forecast-result-grid span{color:var(--muted);font-size:.72rem}.forecast-result-grid strong{margin:.45rem 0;font-size:1.55rem;letter-spacing:-.025em}.forecast-result-grid small{color:var(--muted);font-size:.68rem}.forecast-result-grid .highlight{border-color:#abd4ca;background:#effaf6}.forecast-result-grid .highlight strong{color:#08774c}.forecast-explanation{display:flex;align-items:center;justify-content:space-between;gap:1rem}.forecast-explanation p{margin:.35rem 0 0;max-width:820px;color:var(--muted);line-height:1.55}.forecast-empty{margin-top:1rem}

@media(max-width:1050px){.forecast-saving-banner{grid-template-columns:auto minmax(0,1fr) auto}.forecast-saving-metrics{grid-column:2/-1}.tax-forecast-hero,.forecast-result-grid{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.menu-preferences-intro{align-items:flex-start;flex-direction:column}.menu-section-card>header{grid-template-columns:auto minmax(0,1fr)}.menu-section-card>header .menu-visibility-toggle{grid-column:2}.weekly-tax-form{grid-template-columns:1fr 1fr}.weekly-tax-form .btn{grid-column:1/-1}.forecast-saving-banner{grid-template-columns:auto minmax(0,1fr)}.forecast-saving-metrics{grid-column:1/-1}.forecast-saving-action{grid-column:1/-1;width:100%}.forecast-explanation{align-items:flex-start;flex-direction:column}.forecast-explanation .btn{width:100%}}
@media(max-width:620px){.menu-section-card>header{grid-template-columns:auto minmax(0,1fr)}.menu-item-row{grid-template-columns:auto auto minmax(0,1fr)}.weekly-tax-form,.tax-forecast-hero,.forecast-result-grid{grid-template-columns:1fr}.weekly-tax-form .btn{grid-column:auto}.forecast-saving-banner{grid-template-columns:1fr;text-align:center}.forecast-saving-icon{margin:auto}.forecast-saving-metrics{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;text-align:left}.forecast-saving-action{grid-column:auto}.forecast-saving-main>strong small{display:block;margin-top:.2rem}.tax-forecast-hero>div{text-align:center}}


/* 2.8.2 PAYE automatic deductions overview */
.paye-auto-summary{display:grid;grid-template-columns:1.35fr repeat(3,minmax(150px,1fr));gap:1px;margin:1rem 0;background:#cfd9e8;border:1px solid #cfd9e8;border-radius:12px;overflow:hidden;box-shadow:0 12px 28px rgba(15,23,42,.08)}
.paye-auto-summary>div{min-width:0;padding:1rem 1.1rem;background:#fff}
.paye-auto-summary .paye-auto-summary-main{padding:1.2rem 1.3rem;background:linear-gradient(135deg,#0d2752,#2759c7);color:#fff}
.paye-auto-summary span,.paye-auto-summary strong,.paye-auto-summary small{display:block}
.paye-auto-summary span{font-size:.7rem;font-weight:800;letter-spacing:.025em;text-transform:uppercase;color:#5d6c81}
.paye-auto-summary strong{margin:.3rem 0;font-size:1.45rem;line-height:1.05;color:#15233a}
.paye-auto-summary small{font-size:.7rem;line-height:1.4;color:#758398}
.paye-auto-summary .paye-auto-summary-main span,.paye-auto-summary .paye-auto-summary-main small{color:rgba(255,255,255,.76)}
.paye-auto-summary .paye-auto-summary-main strong{font-size:2rem;color:#fff}
.paye-job-projections.detailed article{grid-template-columns:1fr;padding:0;overflow:hidden}
.paye-job-projections.detailed .paye-job-heading{padding:1rem 1rem .75rem}
.paye-pay-breakdown{display:grid!important;grid-template-columns:repeat(5,minmax(92px,1fr));gap:1px!important;padding:0!important;background:#dce4ef}
.paye-pay-breakdown>div{min-width:0!important;padding:.75rem!important;border-radius:0!important;background:#f7f9fc!important}
.paye-pay-breakdown>div.tax,.paye-pay-breakdown>div.ni{background:#fff4f2!important}
.paye-pay-breakdown>div.net{background:#eaf8f0!important}
.paye-pay-breakdown dt{font-size:.64rem!important;font-weight:750;color:#66758b!important}
.paye-pay-breakdown dd{font-size:.92rem;color:#172238}
.paye-pay-breakdown .tax dd,.paye-pay-breakdown .ni dd{color:#a83a31}
.paye-pay-breakdown .net dd{color:#087a45}
.paye-annual-line{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 1rem;background:#f1f5fb;color:#4f6078;font-size:.72rem}
.paye-job-projections.detailed .card-links{margin:0;padding:.7rem 1rem}
.paye-job-preview{margin-top:1rem}
.paye-preview-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:.75rem}
.paye-preview-grid>div{padding:.85rem;border:1px solid var(--line);border-radius:9px;background:#f7f9fc}
.paye-preview-grid>div.take-home{background:#eaf8f0;border-color:#cbe8d8}
.paye-preview-grid span,.paye-preview-grid strong{display:block}
.paye-preview-grid span{font-size:.68rem;color:var(--muted)}
.paye-preview-grid strong{margin-top:.3rem;font-size:1.05rem}
.paye-preview-grid .take-home strong{color:#087a45}
@media(max-width:1100px){.paye-auto-summary{grid-template-columns:1fr 1fr}.paye-auto-summary .paye-auto-summary-main{grid-column:1/-1}.paye-pay-breakdown{grid-template-columns:repeat(3,1fr)}.paye-preview-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.paye-auto-summary{grid-template-columns:1fr}.paye-auto-summary .paye-auto-summary-main{grid-column:auto}.paye-pay-breakdown,.paye-preview-grid{grid-template-columns:1fr 1fr}.paye-annual-line{flex-direction:column;gap:.25rem}}
@media(max-width:430px){.paye-pay-breakdown,.paye-preview-grid{grid-template-columns:1fr}}

/* Version 2.9 household commitments, reminders and annual PAYE summary. */
.commitment-dashboard-card{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) auto;
    align-items:center;
    gap:1rem;
    margin:1rem 0;
    padding:1rem 1.15rem;
    border:1px solid rgba(191,219,254,.9);
    border-radius:18px;
    background:linear-gradient(135deg,#eff6ff,#fff);
    box-shadow:0 12px 30px rgba(37,99,235,.07);
}
.commitment-dashboard-card>div{display:flex;flex-direction:column;gap:.2rem}
.commitment-dashboard-card span{font-size:.72rem;font-weight:850;letter-spacing:.035em;text-transform:uppercase;color:#64748b}
.commitment-dashboard-card strong{font-size:1.45rem;letter-spacing:-.035em;color:#0f2f68}
.commitment-dashboard-card small{color:var(--muted);line-height:1.45}
.commitment-dashboard-card.empty{grid-template-columns:minmax(0,1fr) auto;background:linear-gradient(135deg,#f8fafc,#fff);border-color:var(--line)}
.commitment-stat-grid{margin-bottom:1rem}
.row-inactive{opacity:.58}
.household-reset-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-top:1rem;
    border-color:#fed7aa;
    background:linear-gradient(135deg,#fffaf3,#fff);
}
.household-reset-panel>div{display:flex;align-items:flex-start;gap:.9rem}
.household-reset-panel>div>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#fff1dc;color:#b45309;font-size:1.35rem;font-weight:900}
.household-reset-panel h2{margin:0 0 .35rem;font-size:1.05rem}
.household-reset-panel p{margin:0;color:var(--muted);line-height:1.5}
.paye-annual-income-card{
    display:grid;
    grid-template-columns:1.25fr 1fr 1fr;
    overflow:hidden;
    margin:1rem 0;
    border-radius:22px;
    background:linear-gradient(135deg,#0f172a,#1d4ed8);
    color:#fff;
    box-shadow:0 18px 42px rgba(15,23,42,.19);
}
.paye-annual-income-card>div{padding:1.25rem 1.35rem;border-left:1px solid rgba(255,255,255,.12)}
.paye-annual-income-card>div:first-child{border-left:0}
.paye-annual-income-card span{display:block;color:#bfdbfe;font-size:.73rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.paye-annual-income-card strong{display:block;margin:.55rem 0 .3rem;font-size:1.8rem;letter-spacing:-.045em}
.paye-annual-income-card small{color:#dbeafe;line-height:1.4}
.paye-annual-line{flex-wrap:wrap}
.reminder-settings-grid{align-items:start}
.reminder-status-list{display:grid;gap:.7rem}
.reminder-status-list>div{padding:.8rem;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.reminder-status-list span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.reminder-status-list strong{display:block;margin-top:.25rem;overflow-wrap:anywhere;font-size:.84rem;line-height:1.4}
.cron-panel input{width:100%;margin:.65rem 0 .35rem;font-size:.72rem}
.cron-panel small{display:block;color:var(--muted);line-height:1.45}
@media(max-width:900px){
    .commitment-dashboard-card{grid-template-columns:1fr 1fr}.commitment-dashboard-card .btn{grid-column:1/-1;justify-self:start}
    .paye-annual-income-card{grid-template-columns:1fr}.paye-annual-income-card>div{border-left:0;border-top:1px solid rgba(255,255,255,.12)}.paye-annual-income-card>div:first-child{border-top:0}
}
@media(max-width:650px){
    .commitment-dashboard-card,.commitment-dashboard-card.empty{grid-template-columns:1fr}
    .household-reset-panel{align-items:stretch;flex-direction:column}
    .household-reset-panel .btn{width:100%}
}

/* Version 3.0 paid-invoice tax linking */
.alert.warning{color:#76520d;background:#fff8e6;border:1px solid #efd18b}
.invoice-tax-link-notice{border-color:#bdebd4;background:#eafbf3;color:#0c6b49}
.tax-record-table td small,.table-wrap td small{display:block;margin-top:.22rem}
/* Invoicify identity and public pages */
:root{--blue:#165b4e;--blue-2:#104739;--navy:#143e35;--cyan:#bbec8b;--bg:#f5f7f5;--line:#dce6e1;--ink:#183a32;--radius:12px;--shadow:0 8px 30px rgba(24,58,50,.04)}
.btn.primary{box-shadow:0 5px 15px rgba(22,91,78,.14)}.btn.secondary{color:#165b4e;border-color:#c1d6cd}.sidebar{background:#123f35}.sidebar nav a{color:#e2eee7}.nav-section{color:#a5c6b3}.brand img{object-fit:contain;border-radius:0}.brand>span>span,.preview-brand strong{color:#165b4e}.member-card{background:#1b5143;border-color:#44795e}.member-card span{color:#c8f0a4}.member-card p{color:#d0e0d7}.stat-icon.blue{background:#e9f3ec;color:#165b4e}.logout-form{margin-top:.2rem}.logout-link{font-size:.85rem;text-align:left}.topbar{background:#fff}.page-content{max-width:1320px}.sidebar .brand{letter-spacing:-.04em}.preview-bill b,.preview-notes b{color:#165b4e}.preview-row.head,.preview-totals .total-due{background:#eff6f1;color:#165b4e;border-color:#c1d6cd}.invoice-preview hr{border-color:#bbd1c4}.approval-badge.approved{background:#e6f4ea;color:#165b4e}.settings-shortcut{margin-top:1rem}.smtp-help{color:#60736a;font-size:.85rem;line-height:1.7;margin-top:.8rem}.smtp-log-panel{margin-top:1.5rem}.log-detail{white-space:normal;max-width:350px;min-width:200px}.honeypot{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}.signup-note{color:#64776e;font-size:.75rem;line-height:1.6;margin:0}.recovery-page{min-height:100vh;display:grid;place-items:center;background:#f1f5ef;padding:2rem 1rem}.recovery-card{background:#fff;border:1px solid #dce6e1;border-radius:18px;max-width:480px;width:100%;padding:2.5rem}.recovery-card .brand{margin-bottom:2rem}.recovery-card h1{font-size:1.65rem}.recovery-card>p:last-child{margin-top:1.5rem}.auth-visual{background:#123f35}.auth-visual h1{font-size:clamp(2.5rem,4vw,4.5rem);font-weight:750;letter-spacing:-.055em}.auth-visual .public-brand{color:#fff}.auth-visual .free-pill{color:#d2f2b4;background:#245647;margin-bottom:1rem}.auth-card{padding-top:3rem;padding-bottom:3rem}.auth-card h2{font-size:1.9rem}.install-page{background:#eef4ef}.install-brand{color:#165b4e}.install-brand img{border-radius:0}.install-brand>span>span{color:#165b4e}
.public-page{background:#fcfdf9;color:#183a32}.public-container{max-width:1200px;margin:0 auto;padding:0 34px}.public-brand{color:#183a32;font-weight:800;font-size:1.7rem}.public-header{display:flex;justify-content:space-between;align-items:center;padding:27px 0;border-bottom:1px solid #e0e6db}.public-header nav{display:flex;align-items:center;gap:26px;font-size:.85rem;font-weight:650}.public-header nav>a:not(.btn){color:#385148}.public-header .btn{min-height:40px}.public-hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:65px;padding:83px 0 78px}.free-pill{display:inline-flex;align-items:center;gap:7px;background:#eaf3df;border:1px solid #dce9cd;color:#365c33;border-radius:50px;padding:7px 12px;font-size:.72rem;font-weight:750;letter-spacing:.01em}.free-pill i{width:6px;height:6px;border-radius:50%;background:#64903f}.public-hero h1{font-size:clamp(2.8rem,5vw,4.65rem);font-weight:750;line-height:1.05;letter-spacing:-.065em;margin:24px 0}.public-hero h1>span{color:#55916c}.public-hero>div>p{font-size:1rem;line-height:1.75;color:#64766c;max-width:450px}.hero-actions{display:flex;align-items:center;gap:11px;margin:25px 0 15px}.hero-actions .btn{padding:.85rem 1.15rem;min-height:48px}.public-hero>div>.hero-note{font-size:.73rem}.hero-document{background:#fff;border:1px solid #d7e3d7;border-radius:14px;padding:32px;box-shadow:0 30px 60px rgba(48,76,50,.08);position:relative;transform:rotate(2deg)}.sample-title{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4ece5;padding-bottom:27px}.sample-title>span{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:750}.sample-title img{width:28px}.sample-title>b{font-size:.85rem;letter-spacing:.12em}.sample-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}.sample-meta>div{display:flex;flex-direction:column;gap:7px}.sample-meta small,.sample-total small{font-size:.55rem;letter-spacing:.09em;font-weight:750;color:#74877a}.sample-meta strong{font-size:.79rem}.sample-meta span{font-size:.6rem;color:#7e8b80}.sample-row{display:flex;justify-content:space-between;border-bottom:1px solid #e5ece5;font-size:.78rem;padding:18px 10px}.sample-row.sample-heading{background:#f0f5ed;border-radius:5px;font-size:.59rem;text-transform:uppercase;letter-spacing:.09em;padding:12px 10px;color:#6a7c6c}.sample-total{margin:32px 0 24px;text-align:right;display:flex;flex-direction:column;gap:7px}.sample-total strong{font-size:2rem;font-weight:750;letter-spacing:-.04em}.sample-footer{border-top:1px solid #e5ece5;padding-top:20px;display:flex;justify-content:space-between;color:#6a7c6c;font-size:.6rem}.sample-tag{position:absolute;right:20px;bottom:-16px;border:1px solid #d5e4bf;background:#e5f2d3;color:#436934;font-size:.72rem;padding:10px 15px;transform:rotate(-5deg);border-radius:8px}.public-features{padding:50px 0 70px}.section-intro{margin-bottom:30px}.section-intro h2,.public-steps h2,.public-faq h2,.public-cta h2{font-size:2.05rem;font-weight:750;letter-spacing:-.04em}.section-intro p:last-child{color:#748277;font-size:.9rem}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-grid article{background:#fff;border:1px solid #e0e7dc;border-radius:12px;padding:25px}.feature-icon{display:grid;place-items:center;width:39px;height:39px;border:1px solid #dce8d5;border-radius:9px;background:#f2f7ed;color:#386042;font-size:1.25rem;margin-bottom:22px}.feature-grid h3{font-size:1rem;margin-bottom:10px}.feature-grid p{color:#718074;font-size:.8rem;line-height:1.8;margin:0}.public-steps{padding:45px;border-radius:15px;background:#eff5e9;display:grid;grid-template-columns:1fr 1fr;gap:35px}.public-steps h2{line-height:1.2;margin-bottom:0}.public-steps ol{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:25px;padding:0;margin:0}.public-steps li{counter-increment:step;position:relative;padding-left:45px;display:flex;flex-direction:column;gap:6px}.public-steps li:before{content:counter(step);position:absolute;left:0;top:0;background:#fff;border:1px solid #d8e5ce;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;font-size:.8rem;color:#426441;font-weight:750}.public-steps b{font-size:.9rem}.public-steps li>span{font-size:.77rem;line-height:1.7;color:#72806c}.public-faq{max-width:770px;margin:70px auto}.public-faq h2{margin-bottom:25px}.public-faq details{padding:18px 0;border-bottom:1px solid #dee6d8}.public-faq summary{cursor:pointer;font-size:.9rem;font-weight:700}.public-faq details p{font-size:.85rem;line-height:1.8;color:#72806c;margin:15px 0 0}.public-cta{background:#153f33;padding:35px 42px;display:flex;align-items:center;justify-content:space-between;color:#fff;border-radius:14px;gap:20px}.public-cta h2{margin-bottom:8px}.public-cta p{color:#c0d5c5;font-size:.85rem;margin:0}.public-cta .btn{background:#c8eea3;color:#173c2c;box-shadow:none}.public-footer{display:flex;align-items:center;gap:22px;margin:55px 0 0;padding:26px 0;border-top:1px solid #e2e8de}.public-footer .brand{font-size:1.1rem}.public-footer .brand img{width:26px;height:26px}.public-footer p{flex:1;margin:0;color:#819080;font-size:.68rem}.public-footer>a{font-size:.75rem;color:#456048}
@media(max-width:900px){.public-container{padding:0 22px}.public-hero{gap:30px;padding:55px 0}.feature-grid{grid-template-columns:repeat(2,1fr)}.public-steps{padding:32px}.hero-actions{flex-wrap:wrap}.sample-title{gap:12px}.hero-document{padding:23px}.public-hero h1{font-size:3.2rem}}
@media(max-width:650px){.public-header{padding:20px 0}.public-header nav{gap:13px}.public-header nav>a:first-child{display:none}.public-header .btn{font-size:.7rem;padding:.5rem .6rem}.public-brand{font-size:1.3rem}.public-brand img{width:32px;height:32px}.public-hero{grid-template-columns:1fr;gap:45px;padding:45px 0}.public-hero h1{font-size:3.5rem}.hero-document{max-width:420px;width:100%;margin:0 auto}.feature-grid{grid-template-columns:1fr}.public-features{padding:45px 0}.public-steps{grid-template-columns:1fr;gap:25px;padding:28px}.public-faq{margin:45px 0}.public-cta{flex-direction:column;align-items:flex-start;padding:27px}.public-footer{flex-wrap:wrap;gap:15px}.public-footer p{flex-basis:100%;order:3}.section-intro h2,.public-steps h2,.public-faq h2,.public-cta h2{font-size:1.7rem}.auth-card{padding:2rem 1.4rem}.recovery-card{padding:2rem}.smtp-log-panel{padding:1rem}}

/* Public feature guide */
html{scroll-behavior:smooth}.public-page section[id]{scroll-margin-top:24px}.public-header nav{gap:20px}.example-label{display:block;color:#6e8076;font-size:.65rem;margin-bottom:18px;letter-spacing:.03em}.public-about{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;padding:42px 0;border-top:1px solid #e0e6db;border-bottom:1px solid #e0e6db}.public-about h2{font-size:2.15rem;letter-spacing:-.04em;line-height:1.15;max-width:350px}.public-about>div>p:not(.eyebrow){font-size:.9rem;line-height:1.85;color:#607568;margin-bottom:15px}.public-about>div>p:last-child{margin-bottom:0}.public-audiences{padding:30px 0;display:flex;gap:28px;align-items:center}.public-audiences>span{font-size:.72rem;font-weight:750;color:#5e7565;max-width:130px}.public-audiences ul{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:0}.public-audiences li{padding:8px 12px;border-radius:6px;border:1px solid #dae6d4;background:#f5f8f0;font-size:.7rem;font-weight:650;color:#466148}.public-use-case{margin-top:65px}.use-case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.use-case-grid article{border-top:2px solid #cfdfc5;padding:20px 8px}.use-case-grid b{font-size:.7rem;color:#6b9765;letter-spacing:.1em}.use-case-grid h3{font-size:.95rem;line-height:1.4;margin:14px 0 9px}.use-case-grid p{font-size:.8rem;color:#6c7f70;line-height:1.8}.public-features .feature-grid article{padding:27px;display:flex;flex-direction:column}.public-features .feature-grid p{font-size:.82rem}.public-faq summary{line-height:1.5}.public-page a:focus-visible,.public-page summary:focus-visible{outline:3px solid #79a76a;outline-offset:5px}
@media(max-width:900px){.public-header nav{gap:12px}.public-header nav>a[href="#how-it-works"]{display:none}.public-about{gap:30px}.use-case-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.public-header nav>a[href^="#"]{display:none}.public-about{grid-template-columns:1fr;gap:12px;padding:30px 0}.public-about h2{font-size:1.85rem;margin-bottom:0}.public-audiences{align-items:flex-start;flex-direction:column;gap:12px}.public-audiences>span{max-width:none}.public-use-case{margin-top:40px}.use-case-grid{grid-template-columns:1fr 1fr;gap:10px}.use-case-grid article{padding:15px 0}.use-case-grid h3{font-size:.85rem}.public-features{padding-top:25px}.public-hero h1{font-size:clamp(2.7rem,11vw,3.5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.btn:hover{transform:none}}

/* Invoicify 1.0.3: visible, accessible mobile account navigation. */
.topbar{color:#193c33}.topbar .bell{color:#60736a}.topbar .admin-badge{color:#165b4e;background:#e9f3ec;border-color:#c1d6cd}.sidebar-menu-close{display:none}.topbar .menu-toggle{color:#165b4e;background:#eef5f0;border:1px solid #b8cebf;border-radius:10px;min-width:44px;min-height:44px;flex-shrink:0;align-items:center;justify-content:center;gap:7px;font-size:18px;font-weight:750;padding:7px 10px}.menu-toggle-label{font-size:13px}.topbar .menu-toggle:focus-visible,.sidebar-menu-close:focus-visible{outline:3px solid #89ad60;outline-offset:3px}
@media(max-width:850px){.topbar .menu-toggle{display:inline-flex}.sidebar{width:min(290px,calc(100vw - 40px));height:100dvh;overscroll-behavior:contain;padding-top:68px}.sidebar-menu-close{display:flex;align-items:center;justify-content:center;position:absolute;top:14px;right:14px;min-width:44px;min-height:44px;border:1px solid #7ca58c;border-radius:8px;background:#245c4d;color:#fff;font-size:23px}.topbar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .avatar{flex-shrink:0}.app-page.mobile-menu-open{overflow:hidden}}
@media(max-width:430px){.topbar .bell,.topbar .admin-badge{display:none}.topbar{gap:.55rem}.topbar .menu-toggle{padding:7px 9px}}

/* Invoicify 1.0.4: mobile forms and invoice item cards. */
.item-field{min-width:0}.item-field>span,.item-amount>span{display:none}.item-amount{min-width:0}.item-amount output{display:block}
.mobile-table-hint{font-size:.85rem;color:#526e60;margin:.5rem 0}.mobile-table-hint[hidden]{display:none}
@media screen and (max-width:650px){
  .page-content{padding:1rem .8rem}.panel,.form-panel{padding:1rem;min-width:0}.topbar{height:64px}
  input,select,textarea{font-size:16px!important;min-height:44px;max-width:100%}
  input[type=checkbox],input[type=radio]{min-height:24px;width:24px;height:24px;flex-shrink:0}
  .btn,.sidebar nav a,.table-actions a,.table-actions button,.customer-actions a,.customer-actions button{min-height:44px}
  .sidebar nav a{padding:.85rem .65rem}.sidebar .logout-link{min-height:44px;padding:.85rem .5rem}
  .form-actions,.editor-actions,.table-actions,.customer-actions{flex-wrap:wrap;gap:.6rem}.form-actions .btn{flex:1}
  .form-grid.two,.editor-top,.billing-grid,.invoice-bottom{grid-template-columns:minmax(0,1fr)}.span-two{grid-column:auto}
  .page-heading,.panel-heading{flex-direction:column;align-items:stretch}.page-heading h1{font-size:1.8rem}
  .customer-card{grid-template-columns:44px minmax(0,1fr);gap:.75rem;justify-items:stretch}.customer-avatar{width:44px;height:44px}.customer-actions{grid-column:1/-1;margin:0}.customer-card p,.customer-card span{overflow-wrap:anywhere}
  .line-items{overflow:visible;border-top:0}.line-head{display:none}.line-row{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:1rem;border:1px solid var(--line);border-radius:10px;margin:.75rem 0;background:#f8fbf9}
  .item-description{grid-column:1/-1}.item-field>span,.item-amount>span{display:block;font-size:.8rem;font-weight:700}.item-amount{align-self:center}.item-amount output{text-align:left;font-size:1rem;margin-top:.35rem;font-weight:750}.remove-line{min-height:44px;justify-self:end;min-width:44px;background:#fff0f0;border-radius:8px;color:#a52737}
  .simple-modal{padding:.6rem}.simple-modal>section{max-height:calc(100dvh - 1.2rem);overflow:auto;width:100%;padding:1.25rem}
  .table-wrap{max-width:100%;overscroll-behavior-x:contain}.table-wrap:focus-visible{outline:3px solid #89ad60;outline-offset:2px}.table-actions{justify-content:flex-start}.table-actions a,.table-actions button{display:inline-flex;align-items:center;padding:.4rem .5rem}
  .public-container{padding:0 18px}.public-header nav{gap:8px}.public-header .btn{min-height:44px}.public-header{flex-wrap:wrap;gap:14px}.public-brand{font-size:1.35rem}.hero-actions .btn{flex:1}.recovery-card{padding:1.5rem}
}
@media print{.item-field>span,.item-amount>span,.mobile-table-hint{display:none!important}}

.member-access-editor{margin:1rem 0;border:1px solid var(--line);border-radius:10px;padding:1rem}.member-access-editor summary{font-weight:750;cursor:pointer;min-height:44px;display:list-item;line-height:2.5}.member-access-editor>p{margin:.75rem 0;color:var(--muted);line-height:1.5}.member-access-editor .form-actions{margin:0;justify-content:flex-start}.member-access-editor [data-password-help][hidden]{display:none}

/* Invoicify 1.0.6: invoice actions stay inside the editor at every width. */
.invoice-editor .editor-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;min-width:0}
.invoice-editor .editor-secondary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;min-width:0}
.invoice-editor .editor-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;min-width:0}
.invoice-editor .editor-actions .btn{width:100%;min-width:0;min-height:46px;padding:.65rem .6rem;margin:0;white-space:normal;text-align:center;line-height:1.35}
@media screen and (max-width:400px){.invoice-editor .editor-actions,.invoice-editor .editor-secondary-actions,.invoice-editor .editor-primary-actions{gap:.5rem}.invoice-editor .editor-actions .btn{padding:.65rem .35rem;font-size:.9rem}}

/* Invoicify 1.0.7: mobile invoice cards, with all actions below the details. */
@media screen and (max-width:850px){
  .invoice-list-wrap{overflow:visible;width:100%;max-width:100%}
  .invoice-list-table,.invoice-list-table tbody{display:block;width:100%;min-width:0}
  .invoice-list-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .invoice-list-table tbody{display:grid;gap:1rem}
  .invoice-list-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}
  .invoice-list-table tbody td{display:block;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;font-size:.95rem;line-height:1.5}
  .invoice-list-table td[data-label]:before{content:attr(data-label);display:block;font-size:.72rem;font-weight:750;color:var(--muted);margin-bottom:.2rem}
  .invoice-list-table .invoice-cell-number,.invoice-list-table .invoice-cell-customer,.invoice-list-table .invoice-cell-status,.invoice-list-table .invoice-cell-actions{grid-column:1/-1}
  .invoice-list-table .invoice-cell-number a{display:inline-block;font-size:1.1rem;min-height:32px}
  .invoice-list-table .invoice-cell-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;border-top:1px solid var(--line);padding-top:.85rem;margin-top:.15rem}
  .invoice-list-table .invoice-cell-actions form{display:block;margin:0;min-width:0}
  .invoice-list-table .invoice-cell-actions>a,.invoice-list-table .invoice-cell-actions button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;padding:.6rem .5rem;border:1px solid #c1d6cd;border-radius:8px;background:#eef5f0;color:#165b4e;font-weight:750;line-height:1.35;text-align:center;white-space:normal}
  .invoice-list-table .invoice-cell-actions button.danger{background:#fff2f3;border-color:#efcbd0}
}

/* Budget planner: cards and stacked actions avoid mobile table scrolling. */
.budget-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem;margin-bottom:1.3rem}.budget-grid>.panel{min-width:0}.budget-list{display:grid;gap:.4rem}.budget-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--border,#e5e7eb);padding:1rem 0;overflow-wrap:anywhere}.budget-row>div:first-child{min-width:0}.budget-row small{display:block;margin-top:.3rem;color:var(--muted,#637185)}.budget-row-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.budget-row-actions form{margin:0}.budget-period{display:flex;flex-wrap:wrap;align-items:end;gap:.8rem;margin:1.2rem 0}.budget-period label{display:grid;gap:.4rem}.budget-period strong{align-self:center}.budget-tip{background:var(--soft,#f3f7ff);padding:1rem;border-radius:12px;margin-top:1rem}.budget-summary dl{margin:0 0 1rem}.budget-summary dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border,#e5e7eb)}.budget-summary dd{margin:0;font-weight:700;white-space:nowrap}.budget-summary dt{max-width:72%}.budget-net{font-weight:700;color:var(--primary,#2563eb)}.budget-balance{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}.budget-balance h2{font-size:2.2rem;margin:.4rem 0}.budget-account-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:1rem;margin-bottom:1rem}.budget-account-cards article{background:var(--soft,#f3f7ff);padding:1rem;border-radius:12px;display:grid;gap:.7rem;overflow-wrap:anywhere}.budget-account-cards strong{font-size:1.5rem}.budget-payment-form,.budget-history{margin-bottom:1.3rem}.budget-payment-form [hidden]{display:none!important}
@media(max-width:1000px){.budget-grid{grid-template-columns:1fr}}@media(max-width:600px){.budget-row,.budget-balance{align-items:flex-start;flex-direction:column}.budget-row-actions{justify-content:flex-start;width:100%}.budget-tabs>.btn{flex:1 1 42%;text-align:center;white-space:normal}.budget-period>label,.budget-period>button{width:100%}.budget-summary dl>div{flex-wrap:wrap}.budget-summary dt{max-width:100%}.budget-summary dd{margin-left:auto}.budget-payment-form .form-grid{grid-template-columns:1fr}.budget-payment-form .span-two{grid-column:auto}}
