:root{--ink:#132033;--muted:#6b7280;--line:#dcd8d0;--paper:#f5f2ec;--card:#fff;--nav:#101b2a;--gold:#c5964e;--green:#167c62;--red:#b44e49;--blue:#2d6f9f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.rail{background:var(--nav);color:white;padding:30px 18px;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;gap:12px;padding:0 8px 30px}.wordmark>span{width:38px;height:38px;border:1px solid #74839a;display:grid;place-items:center;font:700 22px Georgia;color:var(--gold)}.wordmark div{display:flex;flex-direction:column}.wordmark strong{font:700 19px Georgia;letter-spacing:.13em}.wordmark small{color:#9da8b6;font-size:10px;letter-spacing:.1em}.rail nav{display:grid;gap:5px}.rail nav a{color:#aeb7c4;text-decoration:none;padding:11px 12px;border-radius:6px;display:flex;gap:11px;align-items:center}.rail nav a:hover,.rail nav a.active{background:#203047;color:white}.rail nav a.active{box-shadow:inset 3px 0 var(--gold)}.rail nav span{width:20px;text-align:center}.local-note{margin-top:auto;padding:15px 9px;border-top:1px solid #2a394d;display:flex;align-items:center;gap:10px}.local-note i{width:8px;height:8px;border-radius:50%;background:#43c696;box-shadow:0 0 0 4px #183c39}.local-note div{display:flex;flex-direction:column}.local-note small{color:#91a0b2}main{min-width:0}header{height:82px;background:#fff;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between}header>div{display:flex;flex-direction:column}header small{color:#8a7560;font-size:10px;letter-spacing:.13em}header strong{font:600 19px Georgia}.workspace{padding:34px 38px;max-width:1440px}.button,.file-button{border:0;border-radius:5px;background:var(--nav);color:#fff;padding:11px 17px;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.button:hover,.file-button:hover{background:#24364d}.button:disabled{opacity:.4;cursor:not-allowed}.intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.intro span{font-size:10px;letter-spacing:.14em;color:#8a6a40}.intro h1{font:400 34px/1.1 Georgia;margin:5px 0 6px}.intro p,.panel>p{margin:0;color:var(--muted)}.intro>b{font-weight:500;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:19px;display:flex;flex-direction:column;box-shadow:0 3px 13px #23334b0a}.metric>span{color:var(--muted);font-size:12px}.metric>strong{font:400 26px Georgia;margin:8px 0}.metric>small{color:var(--muted)}.metric.warning{border-top:3px solid var(--red)}.columns,.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.import-grid{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr)}.panel,.empty{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px;box-shadow:0 3px 13px #23334b0a}.panel h2{font:500 20px Georgia;margin:0 0 3px}.empty{text-align:center;padding:70px 20px}.empty>span{font-size:32px;color:var(--gold)}.empty h2{font:400 27px Georgia;margin:10px}.empty p{color:var(--muted);margin:0 auto 20px;max-width:570px}.event-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #eeeae4}.event-row:last-child{border:0}.event-row>div{display:flex;flex-direction:column;min-width:0}.event-row small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-icon{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#e7f3ef;color:var(--green)}.event-icon.outflow{background:#faeae9;color:var(--red)}.event-row strong.inflow{color:var(--green)}.event-row strong.outflow{color:var(--red)}.quiet{padding:28px 4px;color:var(--green)}.connector-picker{display:flex;flex-wrap:wrap;gap:8px;margin:7px 0 20px}.connector-picker button{background:#f6f4ef;border:1px solid var(--line);border-radius:6px;padding:9px 12px;display:flex;align-items:center;gap:7px;cursor:pointer}.connector-picker button b{background:#e7e0d4;padding:4px;border-radius:3px}.connector-picker button.selected{border-color:var(--gold);background:#fffaf0}.panel label{display:block;color:var(--muted);font-weight:700;font-size:12px}textarea{width:100%;height:265px;resize:vertical;margin-top:7px;border:1px solid #cbc5bb;border-radius:6px;padding:13px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.actions small{color:var(--muted)}.preview-empty{min-height:190px;display:grid;place-items:center;color:var(--muted);text-align:center}.preview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:15px 0}.preview-stats b{background:#f6f3ee;padding:10px;display:flex;flex-direction:column;font:500 18px Georgia}.preview-stats small{font:10px system-ui;color:var(--muted);text-transform:uppercase}.wide{width:100%;margin-top:15px}.error,.success{padding:10px 12px;border-radius:4px;margin-top:10px}.error{background:#fce9e7;color:#8a332e}.success{background:#e4f5ee;color:#126148}.delete{border:0;background:transparent;color:#aaa;font-size:20px;cursor:pointer}.connector-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.connector-card{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:20px;text-decoration:none;display:flex;gap:14px}.connector-card>b{width:40px;height:40px;background:#e9e1d5;display:grid;place-items:center;border-radius:4px}.connector-card h2{font:500 19px Georgia;margin:0}.connector-card p{color:var(--muted);margin:3px 0 8px}.connector-card small{color:#8a6a40}.architecture{text-align:center;border:1px dashed #bbb2a5;border-radius:6px;padding:16px;margin-top:20px;color:var(--muted)}.architecture b{color:var(--gold);padding:0 10px}.range{display:flex;gap:4px}.range button{border:1px solid var(--line);background:#fff;padding:8px 11px;cursor:pointer}.range button.active{background:var(--nav);color:#fff}.chart{height:230px;display:flex;gap:20px;align-items:end;padding:20px 10px 0}.week{flex:1;text-align:center;color:var(--muted);font-size:11px}.week>div{height:180px;display:flex;justify-content:center;align-items:end;gap:4px}.bar{width:17px;display:block;border-radius:3px 3px 0 0}.bar.in{background:var(--green)}.bar.out{background:var(--gold)}.file-button input{display:none}.event-list{max-width:960px}@media(max-width:900px){.shell{grid-template-columns:1fr}.rail{padding:15px}.wordmark{padding-bottom:12px}.rail nav{display:flex;overflow:auto}.rail nav a{white-space:nowrap}.local-note{display:none}header{padding:0 20px}.workspace{padding:25px 20px}.metrics{grid-template-columns:1fr 1fr}.columns,.import-grid{grid-template-columns:1fr}.connector-cards{grid-template-columns:1fr 1fr}}@media(max-width:560px){header .button{display:none}.metrics,.connector-cards{grid-template-columns:1fr}.intro{align-items:flex-start;gap:10px}.intro h1{font-size:28px}.workspace{padding:20px 14px}.rail nav a{padding:9px}.rail nav a span{display:none}}
/* Clerk authentication shell */
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px; background: #f4f7f9; }
.auth-card { width: min(100%, 520px); padding: 36px; background: #fff; border: 1px solid #d9e2e8; border-top: 4px solid #f36f21; border-radius: 12px; box-shadow: 0 18px 50px rgba(16, 27, 42, .12); }
.auth-card h1 { margin: 8px 0 10px; color: #10263b; }
.terms-acceptance{width:min(100%,720px)}.terms-acceptance>p{color:#607286}.terms-summary{margin:20px 0;padding:18px 20px;background:#f4f7f9;border:1px solid #d9e3ea;border-radius:9px}.terms-summary strong{color:#10263b}.terms-summary ul{margin:9px 0 0;padding-left:21px}.terms-summary li{margin:7px 0}.agreement-check{display:flex!important;align-items:flex-start;gap:11px;margin:13px 0;color:#24364d!important;font-size:14px!important;line-height:1.5}.agreement-check input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.agreement-check a{color:#145f8c}.terms-actions{display:flex;gap:10px;align-items:center;margin-top:20px}.primary-button,.secondary-button{border:0;border-radius:6px;padding:11px 16px;font-weight:750;cursor:pointer}.primary-button{background:#10263b;color:#fff}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{background:#e8eef2;color:#10263b}.terms-version{margin:16px 0 0!important;font-size:12px}.terms-acceptance .error[hidden]{display:none}@media(max-width:560px){.terms-actions{align-items:stretch;flex-direction:column}.terms-actions button{width:100%}}

/* Hosted operations: visible progress plus duplicate-click protection. */
body.forge-processing::before {
  content: "";
  position: fixed;
  z-index: 10000;
  inset: 0 auto auto 0;
  width: 38%;
  height: 4px;
  background: linear-gradient(90deg, #f36f21, #2d6f9f);
  box-shadow: 0 1px 8px rgba(45, 111, 159, .35);
  animation: forge-request-progress 1.15s ease-in-out infinite;
}

button.is-processing, .button.is-processing, .file-button.is-processing {
  position: relative;
  cursor: wait;
  opacity: .78;
  pointer-events: none;
}

button.is-processing::after, .button.is-processing::after, .file-button.is-processing::after {
  content: "";
  width: 13px;
  height: 13px;
  margin-left: 9px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: forge-button-spin .7s linear infinite;
}

@keyframes forge-request-progress {
  0% { transform: translateX(-105%); }
  55% { transform: translateX(110%); }
  100% { transform: translateX(265%); }
}

@keyframes forge-button-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  body.forge-processing::before { width: 100%; animation: none; }
  button.is-processing::after, .button.is-processing::after, .file-button.is-processing::after { animation-duration: 1.4s; }
}

[hidden] { display: none !important; }

.quickbooks-exclusions{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.quickbooks-sync-summary{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(270px,1.2fr) minmax(260px,1fr);gap:0;padding:0!important;overflow:hidden}.quickbooks-sync-summary>div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-right:1px solid var(--line)}.quickbooks-sync-summary>div:last-child{border-right:0}.quickbooks-sync-summary span{color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.quickbooks-sync-summary strong{font-size:13px}.quickbooks-sync-summary>.error{grid-column:1/-1;margin:0;border-radius:0}
.quickbooks-schedule{display:flex;align-items:center;gap:18px;margin-top:14px;padding:12px;background:#f6f8f9;border:1px solid var(--line);border-radius:6px}.quickbooks-schedule label{display:flex;align-items:center;gap:7px}.quickbooks-schedule select{margin-left:4px}.quickbooks-schedule small{color:var(--muted)}
.quickbooks-exclusion-form{display:grid;grid-template-columns:180px minmax(240px,1fr) auto;gap:10px;align-items:end;margin-top:10px}
.quickbooks-exclusion-form input{width:100%;margin-top:5px;padding:10px;border:1px solid var(--line);border-radius:5px}
.quickbooks-exclusion-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #eeeae4}
.quickbooks-exclusion-row>div{display:flex;flex-direction:column}.quickbooks-exclusion-row small{color:var(--muted)}
@media(min-width:901px){.shell{height:100vh;min-height:0;overflow:hidden}.rail{height:100vh;min-height:0;overflow:hidden}.rail .wordmark,.rail .local-note{flex:0 0 auto}.rail nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-color:#526176 transparent;scrollbar-width:thin}.rail nav::-webkit-scrollbar{width:7px}.rail nav::-webkit-scrollbar-thumb{background:#526176;border-radius:10px}.rail nav::-webkit-scrollbar-track{background:transparent}.shell>main{height:100vh;min-height:0;overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:900px){.quickbooks-sync-summary{grid-template-columns:1fr}.quickbooks-sync-summary>div{border-right:0;border-bottom:1px solid var(--line)}.quickbooks-sync-summary>div:last-child{border-bottom:0}}
@media(max-width:700px){.quickbooks-schedule{align-items:flex-start;flex-direction:column;gap:8px}.quickbooks-exclusion-form{grid-template-columns:1fr}.quickbooks-exclusion-form .button{width:100%}}
/* Paged record lists keep large ledgers responsive without changing the data. */
.pagination { display:flex; align-items:center; justify-content:center; gap:1rem; margin:1rem 0 0; }
.pagination a { border:1px solid var(--line); border-radius:.55rem; padding:.55rem .8rem; text-decoration:none; color:var(--ink); background:var(--surface); }
.pagination a[aria-disabled="true"] { opacity:.4; pointer-events:none; }
.pagination span { color:var(--muted); font-size:.88rem; }

/* Initial startup feedback is independent from page rendering so it appears immediately. */
.forge-initial-loader {
  position: fixed;
  z-index: 20000;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 18px;
  padding: 24px;
  color: #10263b;
  background: #f4f7f9;
  opacity: 1;
  transition: opacity .24s ease, visibility .24s ease;
}
.forge-initial-loader.is-complete { opacity: 0; visibility: hidden; }
.forge-initial-loader__mark {
  --forge-load-progress: 6;
  position: relative;
  width: 112px;
  height: 112px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(#f36f21 calc(var(--forge-load-progress) * 1%), #dbe5eb 0);
  box-shadow: 0 16px 40px rgba(16, 38, 59, .13);
  transition: background .22s ease;
}
.forge-initial-loader__mark::before {
  content: "";
  position: absolute;
  inset: 9px;
  border-radius: 50%;
  background: #fff;
}
.forge-initial-loader__mark strong { position: relative; font: 700 24px Georgia, serif; }
.forge-initial-loader__copy { display: grid; gap: 4px; text-align: center; }
.forge-initial-loader__copy b { font: 600 22px Georgia, serif; }
.forge-initial-loader__copy span { color: #607286; }
.forge-initial-loader progress { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.forge-initial-loader.is-error .forge-initial-loader__mark{background:conic-gradient(#b44e49 calc(var(--forge-load-progress) * 1%),#f0d9d7 0)}
.forge-initial-loader__copy button{margin-top:16px;border:0;border-radius:7px;background:#10263b;color:#fff;padding:11px 17px;font-weight:750;cursor:pointer}

@media(max-width:900px){
  .rail nav[data-primary-nav]{scrollbar-width:none;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}
  .rail nav[data-primary-nav]::-webkit-scrollbar{display:none}
  .rail nav[data-primary-nav] a{scroll-snap-align:center;flex:0 0 auto}
}

@media (prefers-reduced-motion: reduce) {
  .forge-initial-loader { transition: none; }
  .forge-initial-loader__mark { transition: none; }
  .rail nav[data-primary-nav] { scroll-behavior: auto; }
}
