:root{--ink:#182b35;--muted:#75828a;--green:#126b58;--line:#e5eae7;--bg:#f6f8f7}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #73ba9d;outline-offset:4px}.brand{display:flex;align-items:center;font-size:27px;font-weight:750;letter-spacing:-1px;gap:10px}.brand-dot{color:var(--green);margin-left:-10px}.logo{display:grid;place-items:center;width:36px;height:38px;border-radius:11px;background:var(--green);color:white;font-size:23px}.shell{display:flex;min-height:100vh}.sidebar{width:248px;background:white;border-right:1px solid var(--line);padding:36px 22px;display:flex;flex-direction:column;flex-shrink:0}.sidebar .brand{margin:0 10px 54px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#8e999f;margin:0 15px 14px}nav{display:grid;gap:7px}nav a{padding:13px 16px;border-radius:9px;font-size:14px;color:#66747c;display:flex;align-items:center;gap:14px}nav a span{font-size:22px;width:23px}nav a:hover{background:#f6f8f7}nav a.active{background:#eaf4ef;color:var(--green);font-weight:650}.sidebar-bottom{margin-top:auto;padding:55px 14px 0;color:#7c8b83;font-size:12px}.status-dot{display:inline-block;background:#67a689;width:7px;height:7px;border-radius:50%;margin-right:8px}.workspace{flex:1;min-width:0}header{height:88px;background:white;border-bottom:1px solid var(--line);padding:0 44px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.account{display:flex;align-items:center;gap:12px}.account strong{font-size:13px;color:var(--ink)}.avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#efece1;color:#847444}.logout{border:0;background:none;color:#67766e;margin-left:16px;cursor:pointer}.content{max-width:1260px;margin:auto;padding:44px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.8px;margin:12px 0}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:18px;margin:23px 0 9px}.muted{color:var(--muted);font-size:14px;line-height:1.8}.eyebrow{color:#749383;font-size:10px;font-weight:700;letter-spacing:2px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.date{font-size:12px;color:#718278;background:white;border:1px solid var(--line);padding:10px 15px;border-radius:7px}.welcome-banner{background:#e8f1ec;border:1px solid #dce9e1;border-radius:14px;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:36px}.banner-tag{font-size:9px;letter-spacing:1.7px;color:#52816a}.welcome-banner h2{font-size:23px;max-width:460px;line-height:1.35;margin:12px 0}.welcome-banner p{font-size:13px;color:#6e8778;margin:0}.banner-symbol{font-size:76px;line-height:1;color:#8aac96;padding:0 25px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-heading h2{font-size:18px;margin:0}.section-heading>span{font-size:12px;color:var(--muted)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.menu-card{position:relative;background:white;border:1px solid var(--line);border-radius:12px;padding:25px;transition:transform .15s,border-color .15s}.menu-card:hover{transform:translateY(-3px);border-color:#90b7a0;box-shadow:0 8px 24px #214c3010}.card-icon{width:44px;height:44px;border-radius:12px;background:#eaf3ec;display:grid;place-items:center;font-size:25px;color:#43805b}.tone-1{background:#fbefe5;color:#bc8b64}.tone-2{background:#edf0fa;color:#7d84b4}.tone-3{background:#f4edfa;color:#9479b0}.tone-4{background:#e9f2f7;color:#6a98af}.tone-5{background:#f1f1eb;color:#959677}.card-arrow{position:absolute;top:30px;right:25px;color:#adbab1}.menu-card p{font-size:12px;color:var(--muted);line-height:1.7;min-height:40px}.card-open{font-size:11px;color:#678d75}footer{padding:8px 44px 28px;color:#96a29c;font-size:11px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:#133f35;color:white;padding:48px 12%;display:flex;flex-direction:column;justify-content:space-between;gap:60px;overflow:hidden}.auth-story .brand{color:white}.auth-story .logo{background:#37715d}.auth-story h1{font-size:46px;line-height:1.18;letter-spacing:-1.5px;margin:22px 0}.auth-story p{color:#a4c0b1;font-size:14px;line-height:1.9}.auth-story .eyebrow{color:#97bca5}.auth-story small{font-size:9px;letter-spacing:2px;color:#91b09d}.story-art{max-width:340px;transform:rotate(-3deg);border:1px solid #5c897555;border-radius:14px;margin:40px 0 10px;padding:23px;background:#ffffff08}.art-top{display:flex;justify-content:space-between;font-size:12px;color:#c3d6ca;margin-bottom:25px}.art-bar{height:7px;background:#73978155;width:40%;border-radius:4px;margin:10px 0}.art-bar.long{width:65%}.art-cards{display:flex;gap:10px;margin-top:25px}.art-cards i{height:57px;flex:1;background:#aacbb215;border:1px solid #aacbb230;border-radius:7px}.art-line{height:3px;background:#9ec5a2;width:70%;margin-top:25px}.auth-panel{display:flex;align-items:center;justify-content:center;background:#fbfcfa;padding:48px}.auth-card{width:100%;max-width:390px}.step{color:#6e967e;letter-spacing:2px;font-size:10px;font-weight:650}.auth-card h2{font-size:29px;line-height:1.3;margin:16px 0 12px}.auth-card form{margin-top:28px}label{display:block;font-size:12px;font-weight:600;margin:20px 0 9px}input{display:block;width:100%;border:1px solid #dce3de;border-radius:7px;background:white;padding:14px 15px;outline:none;color:var(--ink);font-size:14px}input:focus{border-color:#498565;box-shadow:0 0 0 3px #49856515}input::placeholder{color:#a6aea9}.primary{width:100%;border:0;border-radius:7px;background:var(--green);color:white;padding:15px 18px;margin-top:28px;display:flex;justify-content:space-between;cursor:pointer}.primary:hover{background:#0b5646}.auth-note{margin-top:24px;color:#8b9890;font-size:11px;text-align:center;line-height:1.8}.validation{color:#ab3e3e;font-size:12px;line-height:1.6}.validation ul{padding-left:18px}.validation-summary-valid{display:none}.notice{padding:14px;background:#e8f2e9;color:#357247;border-radius:7px;font-size:13px}.back-link{font-size:13px;color:var(--green);display:inline-block;margin-bottom:24px}.empty-state{background:white;border:1px solid var(--line);border-radius:14px;text-align:center;padding:70px 25px}.empty-state .card-icon{margin:0 auto 24px}.empty-state p{color:var(--muted);font-size:14px;line-height:1.8}@media(min-width:1500px){.auth-story{padding-left:20%;padding-right:16%}}@media(max-width:1100px){.menu-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:220px}.content{padding:30px}.auth-story{padding:40px 10%}.auth-story h1{font-size:38px}}@media(max-width:720px){.auth-shell{grid-template-columns:1fr}.auth-story{padding:26px;gap:0}.auth-story>div,.auth-story>small{display:none}.auth-panel{padding:40px 24px}.shell{flex-direction:column}.sidebar{width:100%;padding:20px;border:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0 0 22px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;overflow-x:auto;gap:5px}nav a{white-space:nowrap;padding:10px;font-size:12px}nav a span{display:none}header{height:70px;padding:0 22px}header>span{display:none}.account{width:100%}.account form{margin-left:auto}.content{padding:28px 20px}.menu-grid{gap:12px}.menu-card{padding:18px}.menu-card p{min-height:60px}.date{display:none}h1{font-size:26px}.welcome-banner{padding:24px}.welcome-banner h2{font-size:21px}.banner-symbol{display:none}footer{padding:15px 20px}}@media(max-width:380px){.menu-grid{grid-template-columns:1fr}}
/* Inventory */
.stock-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.stock-summary>div{background:white;border:1px solid var(--line);border-radius:12px;padding:23px}.stock-summary span{font-size:12px;color:var(--muted);display:block}.stock-summary strong{display:block;font-size:30px;margin-top:10px}.stock-panel{background:white;border:1px solid var(--line);border-radius:12px;padding:26px;margin-bottom:22px;min-width:0;scroll-margin-top:25px}.stock-panel h2{font-size:19px}.stock-button{display:inline-block;border:0;border-radius:7px;background:var(--green);color:white;padding:12px 18px;font-size:13px;cursor:pointer;white-space:nowrap}.stock-button:hover{background:#0b5646}.stock-filter{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}.stock-filter label{margin-top:0}.search-field{flex:1;min-width:180px}.stock-filter .back-link{margin:0 0 12px}.stock-check{display:flex;gap:9px;align-items:center;min-height:44px;margin:0;cursor:pointer}.stock-check input{width:17px;height:17px;accent-color:var(--green)}.stock-forms{display:grid;grid-template-columns:1fr 1fr;gap:22px}.stock-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.stock-panel select{width:100%;font:inherit;font-size:14px;padding:13px 12px;border:1px solid #dce3de;border-radius:7px;background:white;color:var(--ink);min-height:47px}.stock-panel select:focus{outline:2px solid #73ba9d;outline-offset:1px}.stock-help{font-size:11px;line-height:1.7;color:var(--muted);margin:16px 0 0}.stock-table{border-collapse:collapse;width:100%;font-size:13px}.stock-table th{font-weight:500;font-size:11px;color:var(--muted);background:#f7f9f7;padding:13px;text-align:left;white-space:nowrap}.stock-table td{padding:16px 13px;border-bottom:1px solid var(--line);line-height:1.5}.stock-table tbody tr:last-child td{border-bottom:0}.stock-table td.numeric,.stock-table th.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.table-scroll{overflow:auto}.stock-badge{background:#eaf4ef;color:#397854;border-radius:5px;padding:5px 8px;font-size:10px;white-space:nowrap}.stock-low{background:#fff1df;color:#956024}.stock-empty{padding:35px 15px;text-align:center;color:var(--muted);line-height:1.8;font-size:14px}.stock-link{color:var(--green);white-space:nowrap}.stock-code{display:block;color:var(--muted);margin-top:3px}.product-code{font-family:Consolas,monospace}.nowrap{white-space:nowrap}.stock-note{min-width:140px;max-width:260px;overflow-wrap:anywhere}.stock-errors.validation-summary-errors{background:#fff0ee;padding:10px 20px;border-radius:8px;margin-bottom:20px}.stock-panel .primary{margin-top:20px}.stock-panel strong{overflow-wrap:anywhere}@media(max-width:1050px){.stock-forms{grid-template-columns:1fr}.stock-summary{gap:10px}.stock-summary>div{padding:18px}}@media(max-width:720px){.page-heading{flex-wrap:wrap;gap:12px}.stock-panel{padding:18px}.stock-summary span{font-size:10px}.stock-summary strong{font-size:25px}.stock-summary>div{padding:14px 11px}.stock-filter{gap:12px}.stock-check{font-size:11px}.stock-fields{grid-template-columns:1fr;gap:0}}
.import-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:-5px 0 25px}.import-tabs a{padding:11px 17px;font-size:13px;border-radius:7px;border:1px solid var(--line);background:white}.import-tabs a.selected{background:#eaf4ef;color:var(--green);border-color:#b8d7c3;font-weight:650}.import-columns{border-radius:7px;background:#f0f5f2;padding:15px;margin:18px 0 24px;color:#4c6e5e;font-size:12px;line-height:1.9}.import-help{font-size:12px;color:var(--muted);line-height:1.9}.import-help summary{cursor:pointer;color:var(--green);font-weight:600}.import-help li{margin:8px 0}.import-preview{max-height:550px;margin-top:22px}.import-preview th{position:sticky;top:0;z-index:1}.import-confirm{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:24px}.import-confirm strong{font-size:18px}.section-heading>span{overflow-wrap:anywhere}.stock-summary strong{overflow-wrap:anywhere}.tone-6{background:#f1f1eb;color:#959677}.sidebar{align-self:stretch}.sidebar nav{gap:3px}.sidebar nav a{padding:9px 12px;font-size:13px}.sidebar .brand{margin-bottom:30px}.stock-panel form:not([hidden])+form:not([hidden]){border-top:1px solid var(--line);padding-top:16px}.stock-panel input[type=checkbox]{flex-shrink:0}.notice{margin-bottom:20px}.menu-card form{margin:0}.stock-table td{max-width:420px;overflow-wrap:anywhere}.stock-panel button{margin-top:10px}
.invoice-source-scroll{max-height:65vh;margin:18px 0 30px;border:1px solid var(--line);border-radius:8px;overscroll-behavior:contain}
.invoice-source-table{width:max-content;min-width:100%}.invoice-source-table caption{text-align:left;padding:12px;background:#f7f9f7;font-weight:600}.invoice-source-table th{position:sticky;top:0;z-index:1;white-space:normal;min-width:120px;max-width:240px;font-size:12px}.invoice-source-table td{min-width:120px;max-width:340px;white-space:pre-wrap;vertical-align:top;font-variant-numeric:tabular-nums}.invoice-source-table th:first-child,.invoice-source-table td:first-child{min-width:55px;max-width:70px}.invoice-source-table th:nth-child(3),.invoice-source-table td:nth-child(3){min-width:250px}.invoice-source-heading h3{margin-bottom:6px}.invoice-source-heading p{margin-bottom:6px}
.invoice-column-label{display:flex;flex-direction:column;gap:8px}
.invoice-column-label input{box-sizing:border-box;width:100%;min-width:70px;padding:8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#172d25;font:inherit;font-weight:400}
.invoice-column-label input:focus{outline:2px solid #26745b;outline-offset:1px}
.invoice-column-form .invoice-source-table th:first-child,.invoice-column-form .invoice-source-table td:first-child{min-width:95px;max-width:110px}
.invoice-column-form{margin-top:14px}
.invoice-choice{margin-top:7px;font-weight:400;white-space:normal}
.invoice-choice summary{cursor:pointer;border:1px solid var(--line);border-radius:5px;padding:7px;background:#f3f7f4;list-style:none}
.invoice-choice[open]{min-width:260px}
.invoice-choice-panel{padding:10px;margin-top:5px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 4px 14px #172d2515}
.invoice-choice-panel .choice-search{box-sizing:border-box;width:100%;padding:7px;border:1px solid var(--line);border-radius:4px}
.choice-actions{display:flex;gap:10px;margin:9px 0}
.choice-actions button{cursor:pointer;background:none;border:0;padding:3px;color:#21644f;font:inherit;text-decoration:underline}
.choice-options{max-height:180px;overflow:auto;text-align:left}
.choice-option{display:flex;align-items:flex-start;gap:7px;padding:5px 0;overflow-wrap:anywhere}
.choice-option[hidden],.choice-empty[hidden]{display:none}
.choice-option input{flex:0 0 auto;width:16px;height:16px;margin:0;accent-color:#26745b}
.invoice-choice-panel .stock-button{margin-top:10px;padding:7px 12px;font-size:12px}
.invoice-source-table th:has(.invoice-choice[open]){min-width:280px}
.invoice-source-table tfoot .invoice-totals>*{position:sticky;top:auto;bottom:0;background:#e8f2eb;border-top:2px solid #26745b;font-weight:700;z-index:2;padding:12px;white-space:nowrap}
.invoice-source-table tfoot .invoice-total-number{text-align:right;font-variant-numeric:tabular-nums}

/* Debtor ledger: headers remain visible when scrolling, amounts align by column. */
.debtors-grid{max-height:65vh;border:1px solid var(--line);border-radius:8px}.debtors-grid table{min-width:1100px}.debtors-grid thead th{position:sticky;top:0;z-index:2;background:#edf3ef;white-space:normal;min-width:110px}.debtors-grid td,.debtors-grid th{border-right:1px solid var(--line)}.debtors-grid th:first-child{min-width:48px}.debtors-grid td:nth-child(2){white-space:nowrap}.debtors-grid td:nth-child(n+4),.debtors-grid thead th:nth-child(n+4),.debtors-grid tfoot td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.debtors-grid tbody tr:nth-child(even){background:#f8faf9}.debtors-grid tbody tr:hover{background:#edf5ef}.debtors-grid tfoot{background:#edf3ef;font-weight:700}.debtors-panel .stock-filter label{flex:1 1 180px}.debtors-panel .stock-filter{align-items:flex-end}.debtor-export{background:#245e85}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.debtors-grid thead tr:first-child th{height:44px;box-sizing:border-box;z-index:3}.debtors-grid thead tr:nth-child(2) th{top:44px;text-align:right}.debtors-grid thead th[colspan]{text-align:center;background:#dcebe2}.debtors-grid tbody td.debt-balance{font-weight:700;background:#f0f6f2}
.deposit-return-forms,.stock-panel form[hidden]{display:none!important;margin:0!important;padding:0!important;border:0!important}
.debtor-actions{display:flex;align-items:center;gap:14px;margin-bottom:16px}.debtors-grid thead th{vertical-align:top}.debtors-grid thead tr:first-child th[colspan]{height:44px}.debtors-grid thead tr:nth-child(2) th{white-space:normal}.debtors-grid .invoice-choice{white-space:normal;text-align:left}.debtors-grid th:has(.invoice-choice[open]){z-index:8}.debtors-grid th[rowspan] input[type=date]{min-width:150px}
.return-amount{display:block;font-weight:700;margin:6px 0}[data-return-pending],[data-return-summary-pending]{display:block;color:#8a5a12;margin-top:6px}[data-return-pending][hidden],[data-return-summary-pending][hidden],[data-return-partial][hidden]{display:none!important}

/* Distinguish VAT headings in the shared debtor/creditor table. */
.debtors-grid table.stock-table thead th{text-align:center}
.debtors-grid table.stock-table thead th.debtor-vat-heading{background:#dceafb;color:#163f6b}
.debtors-grid table.stock-table thead th[colspan].debtor-vat-heading{background:#245e85;color:#fff}

.stock-table tr.bank-row-dirty>td{background:#fff4cc}.stock-table tr.bank-row-dirty>td:first-child{box-shadow:inset 4px 0 #b77900}.bank-save-toolbar{position:sticky;top:0;z-index:9;background:#fff;padding:12px;border:1px solid #e5eae7;border-radius:8px}.bank-row-status{display:block;font-size:12px;margin-top:5px}
.stock-panel input.pdf-field-changed{background:#fff4cc;border:2px solid #b77900}.stock-panel input.pdf-field-changed:focus{box-shadow:0 0 0 3px #b7790030}

/* Login outcomes retain text labels as well as contrasting row colors. */
.login-history-table tbody tr.login-success > td { background-color: #ecfdf5; color: #166534; }
.login-history-table tbody tr.login-failure > td { background-color: #fef2f2; color: #991b1b; }
.login-history-table .login-result { font-weight: 700; }
.bank-operations-scroll{max-height:65vh;overflow:auto;scrollbar-gutter:stable;border:1px solid var(--line);border-radius:8px}
.bank-history-scroll{max-height:400px;overflow:auto;scrollbar-gutter:stable}
.bank-operations-scroll thead th,.bank-history-scroll thead th{position:sticky;top:0;z-index:3;background:#f7f9f7}
.bank-operations-scroll:focus-visible,.bank-history-scroll:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.turnover-warning{margin-bottom:22px;padding:18px 22px;border:1px solid #e7b54b;border-left:5px solid #b45309;border-radius:8px;background:#fffbeb;color:#78350f;line-height:1.6}
.turnover-warning p{margin:8px 0}
.turnover-warning a{color:#78350f;text-decoration:underline;font-weight:600}