:root{font-family:Arial,sans-serif;color:#0f172a;background:#f8fafc;font-size:14px;line-height:1.5;--blue:#1445b8;--border:#e2e8f0}*{box-sizing:border-box}body{margin:0}a{color:var(--blue)}button,input,select{font:inherit;border:1px solid #cbd5e1;background:white;border-radius:0;padding:10px 12px;color:inherit}button{cursor:pointer;font-weight:600}button:hover{background:#f1f5f9}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:#1035a0}input,select{max-width:100%;width:100%}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:white;border-right:1px solid var(--border);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:24px;text-decoration:none;font-size:11px;letter-spacing:2px;font-weight:800;border-bottom:1px solid var(--border)}.brand img{width:38px;max-height:48px;object-fit:contain}nav{padding:20px 12px}nav a{display:block;padding:14px 12px;color:#475569;text-decoration:none;font-size:12px;font-weight:bold}nav .active{background:#eef3ff;color:var(--blue);border-right:3px solid var(--blue)}.account{margin-top:auto;border-top:1px solid var(--border);padding:20px;display:grid;gap:14px}.account span{font-size:12px;color:#475569;overflow-wrap:anywhere}main{margin-left:244px;padding:40px;max-width:1800px}.page-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:28px}.eyebrow,label,.stat>span{font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:bold}.eyebrow{color:var(--blue);margin:0 0 8px}h1{font-size:28px;line-height:1.25;margin:0 0 10px}h2{font-size:18px}.muted,.footnote,.sync-note{color:#475569;font-size:13px}.read-only{border:1px solid #bbd5c8;color:#066347;background:#f0fdf4;padding:6px 10px;font-size:10px;letter-spacing:1px;white-space:nowrap}.panel{border:1px solid var(--border);background:white;padding:24px}.narrow{max-width:480px}label{display:grid;gap:8px}label input,label select{font-size:14px;letter-spacing:0;text-transform:none;font-weight:normal}form label{margin:18px 0}.connection{display:grid;grid-template-columns:minmax(180px,330px) 1fr;gap:12px 24px;align-items:center}.actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.sync-note{grid-column:1/-1;margin:0}.summary{display:grid;grid-template-columns:1fr 1fr 2fr;gap:1px;background:var(--border);border:1px solid var(--border);margin:24px 0}.stat{padding:20px;background:white;display:flex;flex-direction:column;gap:6px}.stat>span{color:#64748b}.stat>strong{font-family:monospace;font-size:32px}.totals>div{display:flex;gap:12px 24px;flex-wrap:wrap;font:600 21px monospace}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end}.filters button{margin-bottom:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#64748b;background:#f8fafc}th,td{padding:15px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.number{text-align:right;font-family:monospace;white-space:nowrap}td small{display:block;color:#64748b;margin-top:4px}.badge{display:inline-block;font-size:11px;padding:3px 8px;background:#f1f5f9;color:#475569}.badge.warning{background:#fff7ed;color:#92400e}.notice{padding:16px;border:1px solid #fcd34d;background:#fffbeb;color:#78350f}.notice.success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.empty{padding:32px 12px;text-align:center;color:#64748b}.footnote{max-width:960px;line-height:1.7}dialog{border:1px solid #94a3b8;padding:28px;width:min(760px,calc(100vw - 32px));max-height:85vh;overflow:auto}dialog::backdrop{background:#0f172a66}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-top h2{margin:0}.detail-section{border-top:1px solid var(--border);margin-top:24px;padding-top:16px}.detail-section h3{font-size:12px;text-transform:uppercase;letter-spacing:1px}dl{display:grid;grid-template-columns:150px 1fr;gap:10px}dt{color:#64748b}dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}.issues{padding:16px 16px 16px 32px;background:#fffbeb;color:#78350f}.issues li{margin:8px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1050px){main{padding:24px;margin-left:200px}.sidebar{width:200px}.filters{grid-template-columns:1fr 1fr}.connection{grid-template-columns:1fr}.actions{justify-content:flex-start}}@media(max-width:700px){.sidebar{position:static;width:100%;border-bottom:1px solid var(--border)}.brand{padding:12px 20px}.brand img{width:28px}nav{display:flex;overflow:auto;padding:4px}nav a{white-space:nowrap;padding:10px}.account{padding:12px 20px;display:flex;align-items:center;gap:14px}.account button{margin-left:auto;padding:6px 10px}.account span{display:none}main{margin:0;padding:24px 16px}.page-header{gap:12px}h1{font-size:24px}.panel{padding:16px}.summary{grid-template-columns:1fr 1fr}.totals{grid-column:1/-1}.filters{grid-template-columns:1fr}.actions button{flex:1}.stat{padding:16px}dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:12px}}
:root .table-scroll{position:relative}

.payment-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:20px}.payment-actions span{margin-right:auto}input[type="checkbox"]{width:18px;height:18px;cursor:pointer}.payment-reference{border-top:1px solid var(--border);padding:16px 0}.payment-reference select,.payment-reference input{margin-top:8px}#payment-errors{margin:16px 0}#payment-review{width:min(960px,calc(100vw - 32px))}
/* Shared Invoice → PAIN sidebar appearance, scoped to avoid changing the bill table. */
.sidebar{width:256px;z-index:50;height:100dvh;overflow-y:auto;font-family:Manrope,Arial,sans-serif}
.sidebar .brand{padding:16px 20px;gap:12px;font-size:11px;letter-spacing:1.1px;line-height:1.25;min-height:65px}
.sidebar .brand img{width:auto;height:32px;max-width:44px;object-fit:contain}
.sidebar .material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';flex-shrink:0}
.sidebar .sidebar-tools{flex:1;padding:16px;display:block}
.sidebar .sidebar-tools a{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;line-height:1.5}
.sidebar a{text-decoration:none}
.sidebar .sidebar-tools a:hover,.sidebar-section a:hover,.sidebar-footer a:not(.sidebar-login):hover,.sidebar-footer button:hover{background:#f8fafc}
.sidebar .sidebar-tools .active{background:#1445b81a;color:#1445b8;border-right:4px solid #1445b8}
.sidebar .sidebar-tools .reporting-link{align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;color:#b45309;margin-top:12px;gap:10px}
.sidebar .reporting-link>span:nth-child(2){min-width:0;font-size:11px;font-weight:800}
.sidebar .reporting-link small{display:block;font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;color:#b45309b3;margin-top:2px;white-space:normal}
.sidebar .reporting-link .external-icon{font-size:14px;margin-left:auto}
.sidebar .sidebar-section{border-top:1px solid var(--border);padding:12px 16px}
.sidebar-section a,.sidebar-footer a,.sidebar-footer button{display:flex;align-items:center;gap:12px;padding:8px 12px;color:#475569;font-size:12px;font-weight:500;width:100%;text-align:left}
.sidebar .sidebar-footer{margin-top:auto;padding:16px;border-top:1px solid var(--border)}
.sidebar-footer button{border:0;background:transparent;font-family:inherit}
.sidebar .sidebar-credits{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f8fafc;border:1px solid var(--border);margin-bottom:8px;color:#64748b;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.sidebar-credits strong{font-family:monospace;font-size:12px;color:#1445b8}
.sidebar .sidebar-login{justify-content:center;background:#1445b8;color:white;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:10px 12px}
.sidebar .sidebar-login:hover{background:#1035a0}
main{margin-left:256px}
@media(max-width:700px){.sidebar{position:static;width:100%;height:auto;overflow:visible}.sidebar .sidebar-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:4px}.sidebar .sidebar-tools a{white-space:normal;margin:0}.sidebar .sidebar-tools .reporting-link{margin:0}.sidebar .sidebar-section{display:flex;flex-wrap:wrap;padding:8px}.sidebar-section a{width:auto}.sidebar .sidebar-footer{padding:12px 16px}.sidebar #sidebar-account-links{display:flex}.sidebar-footer #logout{width:auto}main{margin-left:0}}
.sidebar .menu-icon{width:20px;height:20px;flex:0 0 20px}.sidebar .menu-icon.external-icon{width:14px;height:14px;flex-basis:14px;margin-left:auto}
@media(max-width:700px){.sidebar #sidebar-account-links>a{width:auto;flex:1;min-width:0}.sidebar .sidebar-tools a{min-width:0;gap:8px;padding:10px 8px}.sidebar .sidebar-tools a>span{min-width:0;overflow-wrap:anywhere}.sidebar .reporting-link .external-icon{display:none}}
/* Blocking problems read as errors, not warnings, and each bill carries its own. */
#company-readiness{margin:0 0 24px}#payment-errors,[data-bill-errors]{border-color:#fca5a5;background:#fef2f2;color:#7f1d1d}[data-bill-errors]{margin-top:12px}.notice ul{margin:8px 0 0;padding-left:20px}.notice li{margin:4px 0}.notice p{margin:8px 0 0}.notice a{display:inline-block;margin-top:10px;color:inherit}
.selected-total{margin:10px 0 0;font:600 15px monospace;color:var(--blue);display:flex;gap:8px 18px;flex-wrap:wrap}.selected-total b{font-weight:600}.selected-total .selected-label{font:bold 11px Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#64748b;align-self:center}

/* The gated invoice review keeps evidence and choices within the details dialog. */
#detail-content section{overflow-wrap:anywhere} .document-review-table td,.document-review-table th{white-space:normal;vertical-align:top;overflow-wrap:anywhere}.document-review-table input,.document-review-table select{width:100%;min-width:0;box-sizing:border-box}#detail-content textarea{display:block;width:100%;min-height:72px;box-sizing:border-box}#detail-content label{margin:10px 0}#detail-content select{max-width:100%}
@media(max-width:700px){.document-review-table tr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #cbd5e1}.document-review-table tr:first-child{display:none}.document-review-table td:first-child,.document-review-table td:last-child{grid-column:1/-1}.document-review-table td:nth-child(2):before{content:"Xero: ";font-weight:bold}.document-review-table td:nth-child(3):before{content:"Document: ";font-weight:bold}}
/* Invoice comparison keeps the document actions and exceptions together. */
.bill-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px 0}.bill-detail-summary span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.bill-detail-summary strong{font-size:14px;font-weight:500}@media(max-width:700px){.bill-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
#detail{width:min(1000px,calc(100vw - 32px))}.document-toolbar,.document-originals{display:flex;gap:10px;flex-wrap:wrap}.document-toolbar{padding:18px 0;border-bottom:1px solid var(--border)}#detail-content details{margin:14px 0}#detail-content summary{cursor:pointer;color:var(--blue);font-weight:600}.document-review-table td:first-child{width:22%;font-weight:600}.document-review-table td:nth-child(2){width:30%}.document-review-table p{margin:0 0 8px}.document-review-table button{font-size:12px;padding:6px 10px}.document-review-table details{font-size:12px}.review-confirmation{padding:16px;background:#f8fafc;border:1px solid var(--border)}
@media(max-width:700px){.document-review-table td:first-child,.document-review-table td:nth-child(2){width:auto}.document-review-table td:last-child{grid-column:auto}.document-review-table td:nth-child(3):before{content:""}.document-toolbar>button,.document-originals{flex:1}.document-originals button{width:100%}}
/* Destructive account actions use an application dialog instead of a browser prompt. */
#detail .document-review-table .review-source-choice input[type="text"]{width:100%;height:auto;flex:1 1 auto;min-width:0;margin:0;padding:8px;font-size:13px}.document-review-table td:nth-child(2){width:26%}@media(max-width:700px){.document-review-table td:last-child{grid-column:1/-1}.document-review-table td:last-child:before{content:"Manual input: ";font-weight:bold}}
.badge.reviewed{background:#dcfce7;color:#166534;border:1px solid #86efac;font-weight:700}@keyframes review-confirmed-pulse{0%{background:#bbf7d0;box-shadow:0 0 0 0 rgba(34,197,94,.45)}55%{background:#f0fdf4;box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{background:transparent;box-shadow:none}}td.review-pulse{animation:review-confirmed-pulse 1.35s ease-out} @media(prefers-reduced-motion:reduce){td.review-pulse{animation:none}}
.document-review-table th[scope="row"]{width:22%;font-size:13px;text-transform:none;letter-spacing:0;font-weight:600;color:#334155;background:white}.document-review-table td{transition:background-color .12s}.document-review-table td.source-selected{background:#edf4ff;box-shadow:inset 3px 0 #1445b8}#detail-content .review-source-choice{display:flex;align-items:flex-start;gap:10px;margin:0;cursor:pointer;font-size:13px;letter-spacing:0;text-transform:none;font-weight:normal;min-height:24px}.document-review-table .review-source-choice input{width:18px;height:18px;flex:0 0 18px;margin:1px 0;accent-color:#1445b8}.review-source-choice span{white-space:pre-wrap;overflow-wrap:anywhere}.document-review-table th small{display:block;font-weight:normal;margin-top:6px;color:#64748b}@media(max-width:700px){.document-review-table th[scope="row"]{grid-column:1/-1;width:auto}.document-review-table td:nth-child(2),.document-review-table td:last-child{grid-column:auto;width:auto}.document-review-table td:nth-child(3):before{content:"Scanned: ";font-weight:bold}}
#disconnect-confirm{width:min(520px,calc(100vw - 32px))}#disconnect-confirm p{margin:24px 0;color:#334155;line-height:1.7}.confirmation-actions{border-top:1px solid var(--border);padding-top:20px}.danger{background:#b42318;border-color:#b42318;color:#fff}.danger:hover{background:#912018}
.notice.progress{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
button:disabled{cursor:not-allowed}button[aria-busy="true"]{cursor:wait}.document-unavailable{display:block;align-self:center;color:#64748b;font-size:12px;overflow-wrap:anywhere}
.document-status{display:block;margin-top:7px;padding:4px 7px;font-size:11px;line-height:1.4;border:1px solid #cbd5e1;border-radius:4px;background:#f8fafc;color:#475569;white-space:normal;text-align:left}.document-status.saved{background:#f0fdf4;border-color:#86efac;color:#166534}.document-status:focus-visible{outline:2px solid #1445b8;outline-offset:2px}

.ready-tag{display:inline-block;margin:0 0 12px;font-size:13px;padding:6px 12px}.payment-summary{display:grid;gap:4px}.payment-total{font:700 20px monospace;color:#0f172a}
.badge.paid{background:#dbeafe;color:#1e3a8a;border:1px solid #93c5fd;font-weight:700;margin-left:6px}.badge.exported{background:#f5f3ff;color:#5b21b6;margin-left:6px}.paid-warning{border-width:2px;border-color:#f59e0b;font-size:15px}.paid-warning strong{display:block;margin-bottom:6px}.payment-history{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
