:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-display:"Oswald", "Segoe UI", sans-serif;--font-body:"Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Menlo, monospace;--bg:#1e1c1a;--surface:#2a2724;--surface-2:#26221d;--border:#3a3733;--border-soft:#3a352c;--border-input:#4a473f;--ink:#f1ece1;--ink-dim:#c9c0ac;--ink-soft:#b8af9e;--ink-muted:#8a8375;--accent:#e2871a;--accent-on:#1e1c1a;--accent-tint:#e2871a14;--danger:#c1401c;--danger-tint:#c1401c1a;--success:#5b8c5a;--success-tint:#5b8c5a1f}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 20% 15%,#e2871a0d,#0000 45%);margin:0;font-size:13px}.ledger{max-width:480px;margin:0 auto;padding:20px 16px 32px}.ledger.has-actionbar{padding-bottom:92px}.ledger-header{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.ledger-logo{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);font-size:28px;font-weight:700}.ledger-subtitle{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:10px;font-weight:500}.ledger-tagline{color:var(--ink-muted);opacity:.5;margin-bottom:18px;font-size:9px;font-style:italic}.project-row{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:8px;margin-bottom:16px;font-size:10px;display:flex}.project-row input{border:1px solid var(--border-input);background:var(--bg);color:var(--ink);font-family:var(--font-mono);border-radius:4px;flex:1;padding:7px 9px;font-size:12px}.project-row input:focus{border-color:var(--accent);outline:none}.context-note{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-dim);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:4px;margin-bottom:12px;padding:7px 10px;font-size:10px}.context-note strong{color:var(--ink)}.banner{border-radius:4px;margin-bottom:16px;padding:10px 12px;font-size:12px;line-height:1.5}.banner-error{background:var(--danger-tint);border:1px solid var(--danger);color:#e8a08a}.banner-success{background:var(--success-tint);border:1px solid var(--success);color:#9fd39e}.banner-success a,.banner-success a:visited{color:#9fd39e;font-weight:600}.loading,.empty{font-family:var(--font-mono);color:var(--ink-muted);text-align:center;letter-spacing:.05em;padding:40px 0;font-size:12px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;display:flex}.tab{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 10px;font-size:11px;font-weight:700}.tab:hover{color:var(--ink-dim)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{background:var(--border);min-width:16px;color:var(--ink-dim);text-align:center;border-radius:8px;padding:0 4px;font-size:10px;display:inline-block}.tab.active .tab-count{background:var(--accent-tint);color:var(--accent)}.list-hint{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-muted);margin-bottom:8px;font-size:10px}.ticket-list{flex-direction:column;gap:8px;display:flex}.ticket-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:12px 14px;transition:border-color .12s}.ticket-card:hover{border-color:var(--border-input)}.ticket-card.checked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-tint)}.ticket-card.readonly .ticket-amount{color:var(--ink-dim)}.ticket-card-header{align-items:center;gap:8px;display:flex}.ticket-card.readonly .ticket-meta{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.ticket-check{cursor:pointer;align-items:center;display:flex}.ticket-check input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.ticket-number{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;color:var(--ink);flex:1;font-size:15px;font-weight:600}.ticket-amount{font-family:var(--font-mono);color:var(--accent);font-size:13px;font-weight:700}.ticket-description{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;overflow:hidden}.ticket-meta{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-muted);margin-top:6px;font-size:10px}.unlinked-warning{color:#e8a08a;border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:11px;font-weight:600;line-height:1.4}.no-timecard-tag{font-family:var(--font-mono);color:var(--danger);font-size:10px;font-weight:700}.line-items{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;display:flex}.line-item{grid-template-columns:1fr auto auto;align-items:baseline;gap:8px;font-size:12px;display:grid}.line-item-detail{font-family:var(--font-mono);color:var(--ink-muted);font-size:10px}.line-item-amount{font-family:var(--font-mono);color:var(--ink);font-weight:700}.action-bar{z-index:50;max-width:480px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface-2);border-top:1px solid var(--border-soft);flex-direction:column;gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0006}.action-bar-summary{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);font-size:11px}.action-bar-summary strong{color:var(--accent)}.action-bar-buttons{gap:8px;display:flex}.action-bar-buttons .generate-btn,.action-bar-buttons .draft-btn{flex:1}.generate-btn,.draft-btn{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:9px 12px;font-size:11px;font-weight:700}.generate-btn{background:var(--accent);color:var(--accent-on);border:1px solid var(--accent)}.draft-btn{color:var(--ink-soft);border:1px solid var(--border);background:0 0}.generate-btn:disabled,.draft-btn:disabled{opacity:.5;cursor:default}.generate-btn:not(:disabled):hover{filter:brightness(1.08)}.draft-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.ticket-links{border-top:1px solid var(--border);gap:12px;margin-top:8px;padding-top:8px;display:flex}.ticket-links a,.ticket-links button{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:10px;font-weight:700;text-decoration:none}.ticket-links a:hover,.ticket-links button:hover{color:var(--accent)}.details{border-top:1px solid var(--border);margin-top:20px;padding-top:10px}.details>summary{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);cursor:pointer;font-size:10px;list-style:none}.details>summary::-webkit-details-marker{display:none}.details>summary:before{content:"▸ "}.details[open]>summary:before{content:"▾ "}.details-grid{font-family:var(--font-mono);grid-template-columns:auto 1fr;gap:4px 12px;margin-top:8px;font-size:10px;display:grid}.details-grid dt{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.details-grid dd{color:var(--ink-dim);word-break:break-all;margin:0}.modal-backdrop{z-index:100;background:#0009;justify-content:center;align-items:flex-start;padding:24px 12px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg);border:1px solid var(--border-soft);border-radius:6px;width:100%;max-width:460px;box-shadow:0 12px 40px #00000080}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.modal-title{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;color:var(--ink);font-size:18px;font-weight:700}.modal-close{border:1px solid var(--border);width:26px;height:26px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:4px;font-size:12px}.modal-close:hover{color:var(--accent);border-color:var(--accent)}.modal-body{padding:14px}.modal-meta{font-family:var(--font-mono);letter-spacing:.03em;color:var(--ink-muted);flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:10px;display:flex}.chip{background:var(--accent-tint);color:var(--accent);text-transform:uppercase;border-radius:3px;padding:1px 6px}.modal-desc{color:var(--ink-soft);white-space:pre-wrap;margin:0 0 14px;font-size:12px;line-height:1.5}.modal-lines{flex-direction:column;gap:8px;display:flex}.modal-line{border:1px solid var(--border);border-radius:4px;padding:8px 10px}.modal-line.is-billed{opacity:.6}.modal-line-main{justify-content:space-between;gap:8px;font-size:12px;display:flex}.modal-line-worker{color:var(--ink);font-weight:500}.modal-line-amount{font-family:var(--font-mono);color:var(--ink);font-weight:700}.modal-line-sub{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-muted);flex-wrap:wrap;gap:6px 10px;margin-top:4px;font-size:9.5px;display:flex}.modal-line-class{color:var(--ink-soft)}.tag{text-transform:uppercase;border-radius:3px;padding:1px 5px}.tag-billed{background:var(--success-tint);color:#9fd39e}.tag-draft{color:#d8bd6a;background:#c9a22724}.tag-open{background:var(--accent-tint);color:var(--accent)}.modal-attachments{flex-direction:column;gap:4px;margin-top:14px;display:flex}.modal-section-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:9px}.modal-attachments a{font-family:var(--font-mono);color:var(--ink-dim);font-size:11px}.modal-attachments a:hover{color:var(--accent)}.modal-totals{border-top:1px solid var(--border);font-family:var(--font-mono);margin-top:14px;padding-top:10px;font-size:11px}.modal-totals>div{color:var(--ink-muted);justify-content:space-between;padding:2px 0;display:flex}.modal-totals strong{color:var(--ink-dim)}.modal-total-grand{border-top:1px solid var(--border);margin-top:4px;padding-top:6px}.modal-total-grand span{color:var(--ink);text-transform:uppercase}.modal-total-grand strong{color:var(--accent)}.modal-procore-link{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin-top:14px;font-size:10px;font-weight:700;text-decoration:none;display:inline-block}.modal-procore-link:hover{color:var(--accent)}
