/* App navigation, feature layouts, and invoice print rules. Shared controls: ui.css. */
.eyebrow {font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:700}
.sidebar {width:244px;position:fixed;inset:0 auto 0 0;background:#121b28;border-right:1px solid var(--border);padding:30px 20px;color:#ecf1f7;overflow-y:auto;z-index:10}
.brand {display:flex;gap:12px;align-items:center;font-weight:700;font-size:19px;color:#fff;margin-bottom:32px}
.brand small {display:block;color:#a7b4c7;font-size:11px;font-weight:400;max-width:155px;overflow-wrap:anywhere}
.brand-mark {display:grid;place-content:center;background:#7ce3c2;color:#10382e;border-radius:12px;width:43px;height:43px;font-size:24px}
.nav-label {font-size:11px;color:#98a7bb;letter-spacing:1px;margin:22px 10px 8px}
.nav-group + .nav-group {border-top:1px solid #2b3849;margin-top:16px;padding-top:2px}
.sidebar .nav-label {font-size:12px;font-weight:700;color:#c5d5e8;letter-spacing:.04em}
.sidebar nav a {display:flex;align-items:center;gap:10px;color:#b6c3d5;padding:10px 12px;border-radius:8px;margin:3px 0;font-size:14px}
.sidebar nav a:hover, .sidebar nav a.current {color:#a7f3db;background:#223c3c;text-decoration:none}
.side-footer {font-size:11px;color:#98a7bb;margin:36px 10px 0}
.status-dot {display:inline-block;border-radius:50%;width:7px;height:7px;background:#7ce3c2;margin-right:8px}
.shell {margin-left:244px}
.anonymous {margin:0}
.topbar {min-height:73px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:15px 36px;color:var(--muted);font-size:12px;gap:15px}
.user-menu {display:flex;align-items:center;gap:15px}
.user-menu form {margin:0}
.user-menu a {color:var(--muted)}
main {max-width:1520px;margin:auto;padding:30px 36px 42px}
.quick-actions {display:flex;gap:12px;margin:4px 0 26px}
.grid-two {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px}
.chart {height:230px;display:flex;gap:12px;align-items:flex-end;padding:15px 5px 27px;overflow-x:auto}
.chart-column {flex:1;min-width:24px;height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.chart-column span {font-size:10px;color:var(--muted)}
.chart-column small {position:absolute;bottom:-25px;font-size:10px;white-space:nowrap}
.bar {width:80%;max-width:44px;min-height:3px;background:linear-gradient(#7ce3c2,#367f72);border-radius:5px 5px 0 0}
.timeline>div {display:flex;align-items:center;gap:16px;border-top:1px solid var(--border);padding:14px 0;font-size:13px}
.timeline time {margin-left:auto;color:var(--muted)}
.filters button {margin-bottom:0}
.login-card {max-width:450px;margin:8vh auto;background:var(--surface);padding:40px;border-radius:18px;border:1px solid var(--border)}
.help-card {align-self:start}
.step {display:grid;place-content:center;border:1px solid var(--accent);color:var(--accent);border-radius:50%;width:28px;height:28px;margin:12px 0}
.total-preview {background:var(--surface2);border-radius:9px;padding:18px;margin-bottom:20px}
.total-preview strong {font-size:26px;color:var(--accent);margin-left:15px}
.review-row {border:1px solid var(--border);padding:20px;border-radius:9px;margin-bottom:18px}
.form-grid>div {min-width:0}
.form-grid select {font-size:13px}
pre {white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;background:var(--input);padding:20px;border-radius:8px}
.confirm-box {margin-top:22px;padding:18px;background:var(--surface2);border-radius:9px}
.master-list {list-style:none;padding:0}
.master-list li {padding:12px 0;border-bottom:1px solid var(--border)}
.master-list small {display:block;color:var(--muted)}
.mono {font-family:monospace;max-width:170px;overflow-wrap:anywhere}
.prose {max-width:950px}
.prose h2 {margin-top:28px}
.prose li {margin:10px 0}
.invoice-paper {max-width:1000px;background:#fff;color:#172234;margin:0 auto 25px;padding:45px;border-radius:3px}
.invoice-paper th {color:#536275;border-color:#cbd5e1}
.invoice-paper td {border-color:#e0e5ed}
.invoice-top {display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #172234;padding-bottom:20px;margin-bottom:25px}
.invoice-top h1 {font-size:29px}
.invoice-top small {margin-left:12px}
.invoice-parties {display:grid;grid-template-columns:1fr 1fr;gap:35px}
.invoice-total {background:#eef5f3;border-bottom:2px solid #238269;padding:20px;margin:20px 0}
.invoice-total strong {font-size:30px;margin:0 20px}
.invoice-sums {max-width:340px;margin:24px 0 24px auto}
.invoice-sums p {display:flex;justify-content:space-between;border-bottom:1px solid #ddd;padding:8px 0}
.bank {border:1px solid #cbd5e1;padding:18px}
.footer {font-size:11px;color:var(--muted);padding:10px 36px 25px}
.skip {position:absolute;top:-100px}
.skip:focus {top:10px;left:260px;background:var(--surface);padding:10px;z-index:100}
@media(min-width:1600px) {
main {padding-top:40px}
}
@media(max-width:1150px) {
.sidebar {width:205px;padding:25px 14px}
.shell {margin-left:205px}
.anonymous {margin:0}
main {padding:25px 22px}
.topbar {padding:15px 22px}
.topbar>span {display:none}
.grid-two {grid-template-columns:1fr}
}
@media(max-width:700px) {
.sidebar {position:static;width:100%;padding:15px 18px}
.brand {margin-bottom:8px}
.sidebar nav {display:flex;gap:5px;overflow-x:auto;white-space:nowrap}
.sidebar nav a {font-size:12px;padding:8px}
.side-footer {display:none}
.sidebar .nav-label {display:block;margin:12px 4px 4px}
.nav-group + .nav-group {margin-top:6px;padding-top:0}
.sidebar nav a {flex-shrink:0;min-height:40px}
.sidebar .paused-nav {flex-shrink:0}
.shell {margin:0}
.topbar {padding:10px 16px;min-height:55px}
.user-menu {gap:9px;flex-wrap:wrap;font-size:11px}
.user-menu .subtle {font-size:11px;padding:3px 6px}
main {padding:22px 16px}
.quick-actions {flex-direction:column;gap:8px}
.chart {height:190px}
.review-row {padding:12px}
.invoice-paper {padding:22px 16px}
.invoice-parties {grid-template-columns:1fr;gap:10px}
.invoice-total strong {font-size:25px;margin:0 8px}
.timeline>div {gap:8px;flex-wrap:wrap}
.login-card {padding:25px;margin:3vh auto}
.footer {padding-left:16px}
.invoice-top {align-items:flex-start;gap:10px}
.invoice-top>div {font-size:11px}
}
@media print {
.sidebar, .topbar, .footer, .no-print {display:none!important}
.shell {margin:0}
main {padding:0;max-width:none}
.invoice-paper {padding:0;margin:0;color:#000;max-width:none}
tr {break-inside:avoid}
.invoice-sums, .bank {break-inside:avoid}
@page {size:A4;margin:15mm}
}
.form-fields>.field-quantity, .form-grid>.field-quantity {flex-basis:100px}
.form-fields>.field-trips, .form-grid>.field-trips {flex-basis:76px}
.form-fields>.field-billing_unit, .form-grid>.field-billing_unit, .form-fields>.field-default_unit, .form-fields>.field-code, .form-fields>.field-decimal_places {flex-basis:104px}
.form-fields>.form-field:has(input[type=number]) {flex-basis:144px}
.form-fields>.form-field:has(input[type=date]), .form-grid>.field-date {flex-basis:160px}
.form-fields>.form-field:has(input[type=month]) {flex-basis:210px}
.form-fields>.form-field:has(input[type=time]), .form-grid>.field-time {flex-basis:120px}
.form-fields>.field-vehicle, .form-grid>.field-vehicle {flex-basis:230px}
.form-grid>.field-soil, .form-grid>.field-site {flex-basis:168px}
.form-grid>.field-action {flex-basis:156px}
.form-grid>.field-target {flex:1 1 280px}
.form-fields>.form-field:has(textarea), .form-fields>.form-field:has(input[type=file]), .form-fields>.form-field:has(input[type=url]), .form-fields>.field-address, .form-fields>.field-backup_directory, .form-fields>.field-backup_extra_directory, .form-grid>.field-note, .form-grid>.field-extras, .form-grid>.field-reason {flex-basis:100%}
.form-fields>.checkbox-field, .form-grid>.field-acknowledged, .form-grid>.field-DELETE {flex:0 1 auto;align-self:center}
.checkbox-field label, .field-acknowledged label, .field-DELETE label {display:inline-block;margin-right:6px}
.form-fields input[type=checkbox], .form-grid input[type=checkbox] {vertical-align:middle;margin:0 5px 0 0}
.filters>.form-fields {display:contents}
.filters>.form-fields>.form-field {flex:0 1 260px;align-self:flex-end}
.filters>.form-fields>.field-month {flex-basis:210px}
.filters>label:has(input[type=date]) {flex:0 1 160px;min-width:0}
.filters>label:has(select[name=unit]) {flex:0 1 104px;min-width:0}
.filters>label:has(input[name=q]) {flex:2 1 280px}
.inline input[type=month] {width:190px;max-width:100%}
input[name=reason] {max-width:720px}
input[name=passphrase], input[name=passphrase_confirm] {max-width:360px}
.login-card .form-fields>.form-field {flex-basis:100%}
.review-row {padding:12px 14px;margin-bottom:10px}
.review-row h3 {font-size:14px;margin:0 0 8px;line-height:1.5}
.review-row .form-grid {gap:8px 10px}
.review-row .form-field label {font-size:12px}
.review-row input:not([type=checkbox]), .review-row select, .review-row textarea {min-height:34px;padding:5px 7px;margin-top:3px;font-size:14px;line-height:1.5}
.review-row details {margin:6px 0 0}
.review-row summary {padding:2px 0;font-size:12px}
.review-row details[open]>summary {margin-bottom:8px}
.review-row .field-billing_unit {flex-basis:80px}
.review-row .field-trips {flex-basis:68px}
.review-row .field-date {flex-basis:146px}
.review-row .field-time {flex-basis:108px}
.review-row .field-vehicle {flex-basis:210px}
.review-row .field-soil, .review-row .field-site {flex-basis:150px}
.entry-sheet th.field-quantity {width:100px}
.entry-sheet th.field-trips {width:76px}
.entry-sheet th.field-billing_unit {width:88px}
.entry-sheet th.field-billing_item {width:180px}
.entry-sheet th.field-time {width:112px}
.entry-sheet th.field-soil, .entry-sheet th.field-site {width:168px}
.entry-sheet th.field-note {width:220px}
.form-fields>.field-billing_item, .form-grid>.field-billing_item {flex-basis:180px}
@media(max-width:700px) {
.form-fields>.form-field:has(input[type=checkbox]), .form-grid>.field-acknowledged, .form-grid>.field-DELETE {flex-basis:100%}
.review-row .form-grid>.field-quantity, .review-row .form-grid>.field-trips, .review-row .form-grid>.field-billing_unit {flex:1 1 70px}
.review-row .form-grid>.field-vehicle, .review-row .form-grid>.field-target {flex-basis:100%}
.review-row input:not([type=checkbox]), .review-row select, .review-row textarea {min-height:44px;font-size:16px}
.filters>.form-fields>.form-field {flex-grow:1}
}
.form-fields>.form-field:has(.helptext) {flex-basis:100%}
.form-fields>.form-field:has(.helptext)>input:not([type=checkbox]):not([type=file]), .form-fields>.form-field:has(.helptext)>select {max-width:360px}
.form-fields>.field-default_unit>select {max-width:104px!important}
.form-fields>.form-field:has(input[type=date])>input {max-width:160px}
.form-fields>.field-mirror_directory {flex-basis:100%}
.form-fields>.field-decimal_places {flex-basis:130px}
.form-grid>.form-field:has(.helptext), .form-grid>.form-field:has(small) {flex-basis:260px}
.form-grid>.field-quantity>input {max-width:100px}
.form-fields>.form-field>input[type=number] {max-width:144px!important}
.form-fields>.field-unit {flex-basis:104px}
.form-fields>.field-unit>select {max-width:104px}
.form-fields>.field-number {flex-basis:144px}
.form-fields>.field-start_date, .form-fields>.field-base {flex:1 1 180px}
.form-fields>.field-source {flex:1 1 240px}
.form-fields>.field-company:has(.helptext) {flex-basis:100%}
.filters>.form-fields>.form-field {align-self:flex-start}
.form-field>label {overflow-wrap:anywhere}
.form-fields>.field-backup {flex-basis:100%}
.yard-date {display:inline-flex;position:relative;align-items:center;width:100%;max-width:230px;gap:4px;vertical-align:middle}
.yard-date input.date-native {position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0;left:0;bottom:0;pointer-events:none}
.yard-date input.date-text {width:100%;min-width:0!important;margin:0!important;padding-right:4px}
.yard-date .date-picker {flex:0 0 30px;min-width:30px;padding:4px;margin:0;height:36px;font-size:16px}
.form-fields>.form-field:has(input.date-native) {flex-basis:230px;min-width:205px}
.entry-sheet th:nth-child(2) {width:205px!important}
.input-steps {display:flex;gap:8px;list-style:none;padding:0;margin:0 0 22px;flex-wrap:wrap}
.input-steps li {padding:10px 18px;background:var(--surface2);border-radius:8px;color:var(--muted)}
.input-steps .active {background:#176b5e;color:white;font-weight:700}
.intake-layout {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:20px;align-items:start}
.intake-layout .card {margin:0}
.intake-layout textarea {width:100%;min-height:330px;font-size:16px;line-height:1.8;margin-top:10px}
.intake-options {display:grid;grid-template-columns:1fr 1fr;gap:18px}
.intake-options .helptext {display:block;font-size:12px;line-height:1.6;color:var(--muted);margin-top:5px}
.intake-options select {width:100%}
.shared-grid {display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px;margin-bottom:14px}
.shared-grid label {display:flex;flex-direction:column;gap:6px}
.shared-grid select {width:100%}
.shared-settings #shared-date {margin:0}
.input-table-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.input-table-heading input {width:auto;min-height:0}
.input-actions {position:sticky;bottom:8px;z-index:4;display:flex;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 4px 20px #0003}
.input-actions p {width:100%;margin:0}
.simple-entry .field-time, .simple-entry .field-note, .simple-entry [class*="field-extra_"] {display:none}
.simple-entry .entry-sheet {min-width:1170px}
.entry-sheet .line-total-heading {width:110px}
.entry-sheet .line-total {font-weight:700;white-space:nowrap;padding-top:16px}
.entry-sheet .duplicate-row {font-size:12px;padding:4px;min-height:28px;margin-bottom:6px}
.entry-sheet th:last-child {width:70px}
.entry-sheet .field-quantity, .entry-sheet .field-trips, .entry-sheet .field-billing_unit {width:80px}
.entry-sheet .field-site, .entry-sheet .field-soil, .entry-sheet .field-billing_item {width:130px}
.review-tools {display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px;background:var(--surface2);border-radius:8px;margin-bottom:14px}
.review-tools p {width:100%;margin:0}
.review-tools input {width:auto;min-height:0}
.review-row {border-left:4px solid #176b5e;padding-left:14px}
.review-row.review-pending {border-left-color:#db9e32}
.review-row:focus {outline:2px solid #5fa9dc;outline-offset:2px}
.review-row[hidden] {display:none}
.review-row .field-acknowledged {background:var(--surface2);border-radius:6px;padding:8px}
.paused-nav summary {padding:12px;color:#b6c3d5;cursor:pointer}
.review-save {position:sticky;bottom:12px;z-index:3}
@media(max-width:1000px) {
.intake-layout {grid-template-columns:1fr}
.shared-grid {grid-template-columns:1fr 1fr}
.intake-layout textarea {min-height:220px}
}
@media(max-width:600px) {
.intake-options, .shared-grid {grid-template-columns:1fr}
.input-steps li {font-size:12px;padding:8px}
.input-actions {position:static}
.intake-options .yard-date {max-width:100%}
}
.input-actions.card {padding:12px 16px;gap:8px 14px}
.input-actions .total-preview {padding:6px 12px;margin:0}
.input-actions p {font-size:12px}
.review-save {position:static;margin-top:16px}
.entry-sheet th.field-billing_item {width:130px}
.entry-sheet th.field-soil, .entry-sheet th.field-site {width:130px}
.entry-sheet th.field-quantity, .entry-sheet th.field-billing_unit {width:80px}
.intake-layout {grid-template-columns:minmax(0,1.2fr) minmax(430px,1fr)}
.intake-options label {display:block;margin-bottom:6px}
.intake-options .yard-date {max-width:100%}
.intake-options input, .intake-options select {margin-top:0}
@media(max-width:1100px) {
.intake-layout {grid-template-columns:1fr}
}
.admin-workspace {display:grid;grid-template-columns:minmax(340px,1fr) minmax(360px,1.15fr);gap:20px;align-items:start}
.admin-workspace>.card {min-width:0}
.admin-field-group {border:1px solid var(--border);border-radius:9px;margin:0 0 18px;padding:16px;min-width:0}
.admin-field-group legend, .admin-field-group summary {font-weight:bold;padding:0 8px}
.admin-field-group summary {cursor:pointer;margin-bottom:12px}
.admin-field-group .form-fields {margin-top:8px;gap:14px}
.admin-field-group .form-field {flex:1 1 180px}
.admin-field-group .field-name, .admin-field-group .field-address, .admin-field-group .field-official_name {flex-basis:100%}
.admin-search label:first-child {flex:1 1 180px}
.admin-search label {min-width:0}
.admin-search input, .admin-search select {width:100%}
.admin-records li {display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 8px}
.admin-records li>div {min-width:0}
.admin-records a {font-weight:700;overflow-wrap:anywhere}
.admin-records small {display:block;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
.selected-record {background:var(--surface2);border-left:3px solid var(--accent)}
.field-holiday_weekdays {flex-basis:100%!important}
#id_holiday_weekdays {display:flex;gap:12px;flex-wrap:wrap}
#id_holiday_weekdays label {display:flex;align-items:center;gap:5px;padding:6px 9px;background:var(--surface2);border-radius:6px}
#id_holiday_weekdays input {margin:0}
.admin-workspace input, .admin-workspace select {max-width:100%}
@media(max-width:1150px) {
.admin-workspace {grid-template-columns:1fr}
.admin-register {order:-1}
.admin-records {max-height:420px;overflow:auto}
}
@media(max-width:600px) {
.admin-field-group {padding:12px}
.admin-search label {flex:1 1 140px}
}
.draft-banner {border:1px solid var(--border);border-left:4px solid #3788b8;border-radius:8px;padding:12px 16px;margin:12px 0 20px;background:var(--surface2)}
.draft-banner strong, .draft-banner small {display:block}
.draft-banner small {margin-top:5px;opacity:.8}
.draft-banner button {margin:8px 8px 0 0}
.draft-banner [hidden] {display:none!important}
.draft-error {border-left-color:var(--danger)}
.connection-steps {display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.connection-steps>div {padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
.connection-steps small, .connection-steps strong, .connection-steps span {display:block}
.connection-steps strong {margin:7px 0}
.connection-steps span {font-size:13px;opacity:.85}
.source-workspace {display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.65fr);gap:20px;align-items:start}
.source-panel {position:sticky;top:14px;max-height:80vh;overflow:auto;padding-right:8px}
.source-message {border:1px solid var(--border);border-radius:8px;padding:14px;margin:12px 0;background:var(--surface2);scroll-margin-top:20px}
.source-message h3 {margin:0;font-size:15px}
.source-message pre {white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:14px;line-height:1.7;background:var(--surface);padding:10px;max-height:320px;overflow:auto}
.source-message.needs-review {border-left:4px solid #d49a39}
.source-message:target, .source-details .review-row:target {outline:3px solid #569bce;outline-offset:2px}
.source-message select {max-width:100%;font-size:14px}
.source-message a {display:inline-block;margin:2px 8px 2px 0}
.unread-text {font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;padding:4px 0}
.source-ref {display:inline-block;font-size:13px;margin-bottom:10px}
.source-details {min-width:0}
.source-details .review-row {scroll-margin-top:24px}
.source-details .review-row>.form-grid {grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
.source-details .field-vehicle {grid-column:span 2}
@media(max-width:1000px) {
.source-workspace {display:block}
.source-panel {position:static;max-height:50vh;margin-bottom:20px;border-bottom:2px solid var(--border)}
}
.invoice-print-options {display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.invoice-print-options fieldset {border:1px solid var(--border);border-radius:8px;padding:12px 18px}
.invoice-print-options label {display:block}
.invoice-print-options input[type=checkbox] {width:auto;display:inline-block;margin-right:6px}
.invoice-detail-table td:first-child {overflow-wrap:anywhere}
.invoice-detail-table .num {white-space:normal;overflow-wrap:anywhere}
@media print {
.invoice-annex {break-before:page}
.invoice-detail-table thead {display:table-header-group}
}
.invoice-detail-table .invoice-subtotal td {background:#edf5f1;border-top:1px solid #64748b;font-weight:600;color:#172234}
.invoice-parties .invoice-issuer {justify-self:end;text-align:right;max-width:100%}
.invoice-issuer-name {display:flex;align-items:center;justify-content:flex-end;gap:3mm}
.invoice-issuer-name strong {overflow-wrap:anywhere}
.invoice-pdf-preview .heading h2 {margin-bottom:5px}
.invoice-pdf-page {max-width:1000px;margin:0 auto 24px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)}
.invoice-pdf-page img {display:block;width:100%;height:auto}
.invoice-pdf-page figcaption {text-align:center;padding:8px;color:#536275;font-size:12px}
.invoice-quantity-totals {display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px;padding:16px 0;border-bottom:1px solid #cbd5e1}
.invoice-preview-error[hidden] {display:none}
@media print {
body:has(.invoice-pdf-preview) .skip, body:has(.invoice-pdf-preview) .notice {display:none!important}
body:has(.invoice-pdf-preview) .invoice-pdf-page {width:210mm;max-width:none;height:297mm;margin:0;border:0;box-shadow:none;break-inside:avoid;break-after:page}
body:has(.invoice-pdf-preview) .invoice-pdf-page:last-child {break-after:auto}
body:has(.invoice-pdf-preview) .invoice-pdf-page img {width:210mm;height:297mm}
body:has(.invoice-pdf-preview) {color:#000}
body:has(.invoice-pdf-preview) main {padding:0}
@page invoicePreview {size:A4;margin:0}
.invoice-pdf-preview {page:invoicePreview}
}
.payment-summary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:12px 0 18px}
.payment-summary span {display:block;color:var(--muted);font-size:13px}
.payment-summary strong {font-size:24px;font-variant-numeric:tabular-nums}
.payment-track {height:8px;overflow:hidden;background:var(--surface2);border-radius:10px;border:1px solid var(--border)}
.payment-track>span {display:block;height:100%;background:var(--accent);border-radius:10px}
.payment-actions {display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin:20px 0 0}
.payment-actions+details {margin-top:18px}
.weekly-payments>div+div {margin-top:15px}
.weekly-label {display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px;font-size:13px;margin-bottom:5px}
.weekly-label strong {font-variant-numeric:tabular-nums}
.invoice-create>summary {color:var(--accent)}
.invoice-create .card, .card>.connection-status {padding:0;border:0;box-shadow:none;background:transparent}
.draft-delete {margin-top:20px;margin-bottom:0}
.draft-delete[open] label {display:block;margin:15px 0}
.row-action {margin:8px 0 0;min-width:130px}
.row-action summary {font-size:12px;font-weight:400}
.row-action[open] {min-width:250px}
.row-action form {margin-top:10px}
.invoice-payment .card-heading h2 {display:flex;align-items:center;gap:12px}
.quick-actions {flex-wrap:wrap}
.table-wrap a {display:inline-block;min-height:28px}
@media(max-width:850px) {
.payment-summary strong {font-size:20px}
}
@media(max-width:600px) {
.payment-summary {grid-template-columns:1fr;gap:8px}
.payment-summary>div {display:flex;justify-content:space-between;align-items:center;gap:12px}
.payment-actions {align-items:flex-start;flex-direction:column}
.weekly-label {font-size:12px}
}

/* Keep the corrected row visible when returning to the same search. */
[data-entry-row]:target, [data-entry-row]:focus {outline:2px solid var(--accent, #62cbb0);outline-offset:-2px;scroll-margin-top:100px}
.invoice-month-summary {flex-basis:100%;grid-column:1 / -1;margin:0 0 1rem}
.invoice-month-summary strong {font-size:1.15em}
.invoice-month-summary [data-month-difference] {display:block;margin-top:.4rem}
.invoice-month-summary [hidden] {display:none}

.filters > .entry-list-option {flex:0 1 160px;min-width:0}

.entry-sort-heading {display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.entry-sort-arrows {display:inline-flex;gap:2px}
.entry-sort {display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:30px;padding:2px;border-radius:5px;border:1px solid var(--border);font-size:11px;color:var(--muted);text-decoration:none}
.entry-sort-icon {display:block;width:16px;height:16px;flex:0 0 16px;pointer-events:none}
.entry-sort.is-active {color:var(--positive-ink);background:var(--positive-bg);border-color:var(--accent)}
.entry-sort:focus-visible {outline:2px solid var(--accent, #62cbb0);outline-offset:2px}
.entry-summary summary {display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;cursor:pointer;font-weight:700}
.entry-summary summary::before {content:'▾';font-size:12px}
.entry-summary details:not([open])>summary::before {content:'▸'}
.entry-summary-site {margin:12px 0;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.entry-summary-site>summary {background:var(--info-bg);color:var(--info-ink)}
.entry-summary-node {margin:0 10px 10px 14px;border-left:2px solid var(--border)}
.entry-summary-totals {display:inline-flex;flex-wrap:wrap;gap:8px 16px;font-weight:400;font-size:14px}
.entry-summary-table {font-variant-numeric:tabular-nums}
.entry-summary-table thead,.entry-summary-table .subtotal {background:var(--surface2)}
.entry-summary-table .subtotal {font-weight:700}
.entry-summary-footer {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:12px;background:var(--surface2);border-top:1px solid var(--border)}
.entry-summary-table .entry-summary-group th {text-align:left;background:var(--surface);padding-top:16px}
.entry-summary-actions {display:flex;flex-wrap:wrap;gap:6px}
.filters>[hidden] {display:none!important}
@media(max-width:700px){.entry-summary summary{padding:10px}.entry-summary-totals{font-size:12px}.entry-summary-node{margin-left:8px}.entry-summary-table td,.entry-summary-table th{padding:8px}}

/* Decorative local SVGs follow the link text color, including current/focus states. */
.sidebar .nav-icon {display:block;width:20px;height:20px;flex:0 0 20px}
.sidebar nav a > span {min-width:0}
.sidebar nav a:focus-visible {outline:2px solid #a7f3db;outline-offset:2px}
/* Invoice lists come before totals and the creation panel. */
.invoice-list-page [hidden]{display:none!important}
.invoice-list-page .invoice-list-heading{align-items:center;gap:12px;margin-bottom:16px}
.invoice-list-page .invoice-list-search{display:grid;grid-template-columns:minmax(200px,1fr) 170px 170px auto;gap:8px 16px;padding:14px 18px;margin-bottom:16px}
.invoice-list-search label{font-size:13px}
.invoice-list-search input,.invoice-list-search select{margin-top:4px}
.invoice-list-page .invoice-list-results{padding:18px;margin-bottom:16px}
.invoice-list-results .card-heading{margin-bottom:8px}
.invoice-list-results th{padding-top:8px;padding-bottom:8px}
.invoice-list-results td{padding-top:10px;padding-bottom:10px}
.invoice-list-page .invoice-list-totals{padding:16px 18px}
.invoice-list-totals .card-heading{margin-bottom:8px}
.invoice-list-totals h2{font-size:15px}
.invoice-list-totals dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.invoice-list-totals dt{font-size:13px;color:var(--muted)}
.invoice-list-totals dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.invoice-total-remaining{color:var(--accent)}
.invoice-panel-ready .invoice-create:not([open]){display:none}
.invoice-list-page .invoice-create{scroll-margin-top:24px}
.invoice-list-page .invoice-create>details:last-child{margin-bottom:0}
@media(max-width:1100px){
  .invoice-list-page .invoice-list-search{grid-template-columns:minmax(160px,1fr) 150px 150px}
  .invoice-list-search .search-actions{grid-column:1/-1}
  .invoice-list-search .live-filter-status{grid-column:2/-1;grid-row:2;align-self:center;text-align:right}
}
@media(max-width:700px){
  .invoice-list-page .invoice-list-heading{align-items:flex-start}
  .invoice-list-page .invoice-list-search{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:8px 12px}
  .invoice-list-search>label:first-child{grid-column:1/-1}
  .invoice-list-search .search-actions{grid-column:auto}
  .invoice-list-search .live-filter-status{grid-row:auto;grid-column:auto;text-align:left}
  .invoice-list-page .invoice-list-results{padding:12px}
  .invoice-list-totals dl{grid-template-columns:1fr}
  .invoice-list-totals dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
}
/* Work queues and review cues share the light/dark theme tokens. */
.task-list {list-style:none;padding:0;margin:0}
.task-row {display:flex;align-items:center;gap:16px;padding:15px 12px;border-top:1px solid var(--border);color:var(--text);border-radius:6px}
.task-row:hover {background:var(--surface2);text-decoration:none}
.task-icon svg {width:24px;height:24px}
.task-copy {flex:1;min-width:0}
.task-copy>small {display:block;color:var(--muted)}
.task-count {display:inline-flex;gap:4px;margin-left:10px;padding:0 10px;border-radius:16px;background:var(--surface2)}
.task-pending .task-count {background:var(--warning-bg);color:var(--warning-ink)}
.task-action {white-space:nowrap;color:var(--accent)}
.task-clear {color:var(--muted)}
.review-legend {display:flex;flex-wrap:wrap;gap:10px;font-size:13px}
.review-legend span,.review-badge {border:1px solid currentColor;border-radius:5px;padding:2px 7px}
.legend-warning,.review-row-warning>.review-badge {color:var(--warning-ink);background:var(--warning-bg)}
.legend-error,.review-row-error>.review-badge {color:var(--danger);background:var(--negative-bg)}
.legend-edited,.review-edited>.review-badge {color:var(--info-ink);background:var(--info-bg)}
.review-row.review-row-warning {border-left:4px solid var(--warning-ink)}
.review-row.review-row-error {border-left:4px solid var(--danger)}
.review-row.review-edited {border-left-color:var(--info-ink)}
.review-badge {display:inline-block;margin:0 0 10px 8px;font-size:12px}
.review-control-warning {border:2px solid var(--warning-ink)!important;background:var(--warning-bg)!important}
.review-field-warning .date-text {border:2px solid var(--warning-ink)!important;background:var(--warning-bg)!important}
.review-field-error .date-text {border:2px solid var(--danger)!important;background:var(--negative-bg)!important}
.review-control-error {border:2px solid var(--danger)!important;background:var(--negative-bg)!important}
.review-field-hint {line-height:1.5;margin-top:5px;font-size:12px}
.review-field-warning .review-field-hint {color:var(--warning-ink)}
.review-field-error .review-field-hint {color:var(--danger)}
.bank-review-table {min-width:900px}
.bank-review-table td {vertical-align:top}
.bank-review-table td:nth-child(4) {min-width:290px}
.bank-review-table td:last-child {max-width:300px;min-width:200px}
.bank-review-table td:last-child p {margin:4px 0}
.bank-review-table input[type=checkbox] {width:20px;height:20px}
.bank-warning {background:var(--warning-bg)}
.bank-error {background:var(--negative-bg)}
.bank-match {color:var(--positive-ink);font-weight:700}
@media(max-width:650px){.task-row{flex-wrap:wrap;gap:8px}.task-action{margin-left:40px}.home-tasks{padding:16px}.task-copy strong{font-size:14px}}

.quantity-notice{font-size:13px;line-height:1.5;overflow-wrap:anywhere;margin:8px 0;padding:10px}.quantity-notice strong{display:block}.quantity-notice a{display:inline-block;margin:2px 0 6px}.quantity-notice.warning{border-left:4px solid #c88a16}

/* Lucide actions always retain their visible text labels. */
.action-icon{display:inline-block;width:16px;height:16px;vertical-align:-3px;margin-right:5px;flex-shrink:0;pointer-events:none}.page-exports{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.pdf-export{display:inline-flex;flex-direction:column;gap:3px}.pdf-export small{font-size:11px;text-align:center}.report-actions{display:flex;justify-content:flex-end;margin:8px 0}
