.main:has(.qe){padding:0;overflow:hidden;background:#f3f1ec}.qe{--qe-navy: #174a7c;--qe-ink: #2f2e2e;--qe-muted: #605e5e;--qe-line: #e3dfd6;--qe-paper: #f3f1ec;--qe-bad: #8f1d1d;--qe-green: #5c8727;flex:1;min-height:0;display:flex;flex-direction:column;color:var(--qe-ink);background:var(--qe-paper);font-family:Inter,Barlow,Segoe UI,sans-serif;font-size:15px;line-height:1.45}.qe *{box-sizing:border-box}.qe-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;min-height:64px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--qe-line)}.qe-back,.qe button,.qe input,.qe textarea,.qe summary{font:inherit;color:inherit}.qe-back{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--qe-line);border-radius:12px;background:#fff;cursor:pointer}.qe-title{min-width:0;display:flex;align-items:center;gap:8px}.qe-title h1{margin:0;font-size:18px;font-weight:600;letter-spacing:0}.qe-save{margin:0 0 0 auto;color:var(--qe-muted);font-size:14px;white-space:nowrap}.qe-save[data-mode=error]{color:var(--qe-bad)}.qe-actions{display:flex;gap:8px}.qe-btn{min-height:40px;padding:8px 16px;border-radius:12px;border:1px solid var(--qe-line);background:#fff;cursor:pointer}.qe-btn.primary{background:var(--qe-navy);border-color:var(--qe-navy);color:#fff;font-weight:600}.qe-btn:disabled{opacity:.45;cursor:not-allowed}.qe-btn.danger{color:var(--qe-bad)}.pill{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;background:#f1f1f1;color:var(--qe-ink)}.pill-published,.pill-sent,.pill-viewed{background:#e7eef6;color:var(--qe-navy)}.pill-accepted{background:#eef3e6;color:#345216}.pill-countersigned,.pill-won{background:var(--status-won-bg, #e4f2d4);color:var(--status-won-ink, #17330c)}.pill-lost,.pill-declined{background:#fde8ef;color:var(--status-lost-ink, #9f1239)}.pill-on_hold{background:#fff4cc;color:#5c5200}.pill-revised,.pill-expired,.pill-void,.pill-draft{background:#f1f1f1;color:var(--qe-ink)}.quote-row-won td{background:var(--status-won-bg, #e4f2d4);color:var(--status-won-ink, #17330c)}.quote-row-lost td,.quote-row-declined td{color:var(--status-lost-ink, #9f1239)}.quotes-toolbar .btn{display:inline-flex;align-items:center;gap:6px}.quotes-toolbar h1{margin:0}.show-closed{display:flex;align-items:center;gap:8px;font-size:14px}.quote-actions{display:flex;flex-wrap:wrap;gap:6px}.quote-actions .btn{display:inline-flex;align-items:center;gap:6px}.quote-wizard{display:flex;flex-direction:column;gap:16px;max-width:760px}.quote-wizard .choices{display:flex;flex-direction:column;gap:8px}.quote-wizard label.choice{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--qe-line, #e3dfd6);border-radius:10px;padding:10px 12px}.quote-wizard input[type=text],.quote-wizard input[type=email],.quote-wizard input[type=search]{width:100%;padding:8px 10px;border:1px solid var(--qe-line, #e3dfd6);border-radius:8px;font:inherit}.confirm-card textarea.fit{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}.qe-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;padding:12px 20px;background:#fff8e8;border-bottom:1px solid #ead9a4;color:var(--qe-ink)}.qe-banner button{min-height:32px}.qe-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr)}.qe-form,.qe-preview{min-height:0;overflow:auto}.qe-form{padding:24px;display:flex;flex-direction:column;gap:16px}.qe-preview{background:#e7e4dc;border-left:1px solid var(--qe-line);display:flex;flex-direction:column}.qe-preview header{padding:16px 16px 8px;font-size:13px;font-weight:600;color:var(--qe-muted)}.qe-preview iframe{flex:1;width:100%;border:0;background:#f1f1f1;min-height:480px}.qe-body.preview-off{grid-template-columns:1fr}.qe-body.preview-off .qe-preview{display:none}.qe-card{background:#fff;border:1px solid var(--qe-line);border-radius:12px;padding:8px 20px 20px}.qe-card summary{cursor:pointer;list-style:none;min-height:48px;display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:600;color:var(--qe-navy)}.qe-card summary::-webkit-details-marker{display:none}.qe-card summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--qe-navy);border-bottom:2px solid var(--qe-navy);transform:rotate(45deg)}.qe-card[open] summary:after{transform:rotate(225deg);margin-top:4px}.qe-card .card-body{display:flex;flex-direction:column;gap:16px}.qe-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.wide{grid-column:1 / -1}.field span{font-size:13px;font-weight:600}.field input,.field textarea,.qe-inline,.amt,.chip-entry input,.block textarea{width:100%;border:1px solid var(--qe-line);border-radius:8px;background:#fff;padding:8px 12px;min-height:40px}.qe textarea.fit{resize:none;overflow:hidden;line-height:1.45}.hint{color:var(--qe-muted);font-size:13px}.hint.bad,.field[data-invalid=true] .hint{color:var(--qe-bad)}.field[data-invalid=true] input,.field[data-invalid=true] textarea{border-color:#e3b4b4}.block{border:1px solid var(--qe-line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}.block-head{display:flex;gap:8px;align-items:center}.block-head input{flex:1}.handle{width:32px;height:40px;border:0;background:transparent;cursor:grab;color:var(--qe-muted)}.row-actions,.mini{display:flex;gap:8px;flex-wrap:wrap}.mini button,.chip button,.icon-x{min-height:32px;border:1px solid var(--qe-line);background:#fff;border-radius:8px;padding:4px 8px;cursor:pointer}.empty{margin:0;padding:16px;border:1px dashed var(--qe-line);border-radius:12px;color:var(--qe-muted);background:#faf9f6}.money-table{width:100%;border-collapse:collapse}.money-table th{text-align:left;font-size:13px;color:var(--qe-muted);font-weight:600;padding:0 8px 8px}.money-table td{padding:4px;vertical-align:middle}.amt{text-align:right;font-variant-numeric:tabular-nums}.amt.neg{color:var(--qe-bad);font-weight:600}.net-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-top:8px;border-top:1px solid var(--qe-line)}.net-row strong{font-size:22px;color:var(--qe-navy);font-variant-numeric:tabular-nums}.net-row .neg{color:var(--qe-bad)}.check{display:flex;gap:8px;align-items:center;font-size:14px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 4px 0 12px;border-radius:999px;background:#f1f1f1;border:1px solid var(--qe-line)}.chip button{border:0;background:transparent;min-height:28px;border-radius:999px;cursor:pointer}.chip-entry{display:flex;gap:8px}.qe :focus-visible{outline:2px solid var(--qe-navy);outline-offset:2px}.qe-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;gap:12px;align-items:center;background:var(--qe-ink);color:#fff;border-radius:12px;padding:12px 12px 12px 16px;z-index:20}.qe-toast button{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:8px;min-height:32px;padding:4px 8px;cursor:pointer}.qe-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#2f2e2e73;display:grid;place-items:center;padding:24px}.qe-dialog{width:min(520px,100%);background:#fff;border-radius:12px;border:1px solid var(--qe-line);padding:24px;box-shadow:0 16px 40px #2f2e2e29}.qe-dialog h2{margin:0 0 8px;font-size:20px}.qe-dialog p{margin:0 0 16px;color:var(--qe-muted)}.checks{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.checks li{display:grid;grid-template-columns:16px 1fr;gap:8px;align-items:start}.mark{width:16px;height:16px;margin-top:2px;border-radius:50%;border:1.5px solid var(--qe-line)}.mark.ok{background:var(--qe-green);border-color:var(--qe-green);position:relative}.mark.ok:after{content:"";position:absolute;left:4px;top:4px;width:6px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.hash{display:block;margin:0 0 16px;padding:12px;border-radius:8px;background:#f6f5f1;border:1px solid var(--qe-line);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.quotes-home{display:flex;flex-direction:column;gap:16px}.quotes-home h1{margin:0}.quotes-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center}.claim{margin:0;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;word-break:break-all}@media (max-width: 960px){.qe-body,.qe-body.preview-off{grid-template-columns:1fr}.qe-preview{border-left:0;border-top:1px solid var(--qe-line);min-height:420px}.qe-grid{grid-template-columns:1fr}.qe-bar{flex-wrap:wrap}.qe-save{margin-left:0}}.miles-launch,.miles-panel,.miles-panel button,.miles-panel textarea{font-family:Inter,Barlow,Segoe UI,sans-serif}.miles-launch{position:fixed;right:20px;bottom:20px;z-index:50;min-height:48px;padding:0 18px;border:0;border-radius:999px;background:#174a7c;color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 8px 24px #174a7c47}.miles-panel{position:fixed;right:20px;bottom:80px;z-index:50;width:min(440px,calc(100vw - 24px));height:min(640px,calc(100vh - 112px));display:flex;flex-direction:column;background:#f3f1ec;color:#2f2e2e;border:1px solid #e3dfd6;border-radius:16px;box-shadow:0 18px 50px #174a7c33;overflow:hidden}.miles-head{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 16px;background:#fff;border-bottom:1px solid #e3dfd6}.miles-head h2{margin:0;font-size:18px;font-weight:600;color:#174a7c}.miles-event{margin:2px 0 0;color:#605e5e;font-size:13px}.miles-head-actions{margin-left:auto;display:flex;gap:8px}.miles-icon,.miles-text{min-height:40px;display:inline-grid;place-items:center;border:1px solid #e3dfd6;border-radius:12px;background:#fff;color:#174a7c;cursor:pointer}.miles-icon{width:40px;height:40px}.miles-text{padding:0 12px;font:inherit;font-size:14px;font-weight:600}.miles-body{flex:1;min-height:0;display:grid;grid-template-columns:148px minmax(0,1fr)}.miles-threads{border-right:1px solid #e3dfd6;overflow:auto;background:#fff}.miles-threads button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #e3dfd6;background:#fff;padding:10px 12px;cursor:pointer;color:inherit}.miles-threads button.on{background:#e7eef6}.miles-threads strong,.miles-threads span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miles-threads span{color:#605e5e;font-size:12px}.miles-thread{min-width:0;min-height:0;display:flex;flex-direction:column}.miles-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.miles-bubble{max-width:92%;padding:10px 12px;border-radius:12px;border:1px solid #e3dfd6;background:#fff;white-space:pre-wrap;word-break:break-word}.miles-bubble.user{align-self:flex-end;background:#174a7c;border-color:#174a7c;color:#fff}.miles-bubble.miles{align-self:flex-start}.miles-bubble .who{display:block;font-size:12px;font-weight:600;margin-bottom:4px;opacity:.8}.miles-bubble a{color:inherit}.miles-failed{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px}.miles-working{margin:0;color:#174a7c;font-size:14px;font-weight:600}.miles-compose{border-top:1px solid #e3dfd6;background:#fff;padding:12px;display:flex;flex-direction:column;gap:8px}.miles-panel textarea.fit{width:100%;resize:none;overflow:hidden;line-height:1.45;border:1px solid #e3dfd6;border-radius:8px;padding:8px 12px;background:#fff;color:#2f2e2e;font:inherit}.miles-compose-bar{display:flex;align-items:center;gap:8px}.miles-send{margin-left:auto;min-height:40px;padding:8px 16px;border-radius:12px;border:1px solid #174a7c;background:#174a7c;color:#fff;font-weight:600;cursor:pointer}.miles-send:disabled,.miles-icon:disabled{opacity:.45;cursor:not-allowed}.miles-hint{margin:0;color:#605e5e;font-size:12px}.miles-chips{display:flex;flex-wrap:wrap;gap:6px}.miles-chips span{display:inline-flex;align-items:center;gap:6px;background:#f3f1ec;border-radius:999px;padding:4px 8px;font-size:12px}.miles-error{margin:0 16px;color:#8f1d1d;font-size:13px}.miles-empty{margin:auto;padding:16px;color:#605e5e;text-align:center}@media (max-width: 640px){.miles-launch{right:12px;bottom:12px}.miles-panel{right:8px;left:8px;width:auto;bottom:72px}.miles-body{grid-template-columns:1fr}.miles-threads{display:none}.miles-panel.show-list .miles-threads{display:block;max-height:160px;border-right:0;border-bottom:1px solid #e3dfd6}.miles-panel.show-list .miles-thread{display:none}}:root{--navy: #174A7C;--gold: #D4C300;--green: #5C8727;--ink: #1a1a1a;--muted: #5a5a5a;--paper: #f6f5f1;--line: #e2e0d8;--bad: #B70050;--assigned: #8ec3e6;--status-won-bg: #e4f2d4;--status-won-ink: #17330c;--status-lost-ink: #9f1239}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;font-family:Barlow,Trebuchet MS,sans-serif;color:var(--ink);background:var(--paper)}h1,h2,h3{font-weight:600;margin:0 0 8px}a{color:var(--navy)}.muted{color:var(--muted)}.error{color:var(--bad);background:#fde8ef;padding:8px 10px;border-radius:8px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);height:100%;overflow:hidden}.nav{background:var(--navy);color:#fff;padding:20px 16px;display:flex;flex-direction:column;gap:4px;min-height:0;overflow:auto}.nav a{color:#d7e4f0;text-decoration:none;padding:8px 10px;border-radius:6px}.nav a.active,.nav a:hover{background:#ffffff1f;color:#fff}.nav-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c;padding:12px 10px 2px}.nav-projects,.nav-closed{display:flex;flex-direction:column;gap:2px}.nav-empty{color:#ffffff8c;font-size:13px;padding:4px 10px 8px}.nav-closed-toggle{display:flex;align-items:center;gap:8px;color:#d7e4f0;font-size:14px;padding:8px 10px;cursor:pointer}.nav-closed{margin:0 0 8px 8px}.brand-logo{display:block;width:100%;height:auto;margin:0 0 10px;padding:4px 6px 8px;object-fit:contain}.tag{font-size:16px;margin:0 0 16px;white-space:nowrap;line-height:1.2}.session{margin-top:auto;padding-top:16px;font-size:12px;display:flex;flex-direction:column;gap:2px;opacity:.9;border-top:1px solid rgba(255,255,255,.15)}.session a{padding:6px 0}.main{padding:20px 24px;overflow:auto;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;text-decoration:none;display:block}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}.btn{border:0;border-radius:8px;padding:10px 14px;cursor:pointer;font:inherit;display:inline-block;text-align:center;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-navy{background:var(--navy);color:#fff}.btn-green{background:var(--green);color:#fff}.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.provider{width:100%;margin:8px 0}.auth{min-height:100%;display:grid;place-items:center}.auth-card{width:360px;background:#fff;padding:28px;border-radius:12px;border:1px solid var(--line)}.lockbar{background:#eef3f8;border-left:4px solid var(--navy);padding:8px 12px;margin:8px 0 10px}.tabs{display:flex;gap:8px;margin:0}.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font:inherit}.tabs button.on{background:var(--navy);color:#fff;border-color:var(--navy)}.event-page{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.event-head{flex:0 0 auto}.event-status-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.event-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;margin-top:12px}.event-page.tab-timeline .event-body{overflow:hidden}.timeline-page{display:flex;flex-direction:column;flex:1;min-height:0}.money{width:110px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}.over{color:var(--bad);font-weight:600}.budget-section{margin:12px 0 20px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px}.section-head{display:flex;justify-content:space-between;gap:12px;padding:6px 8px 10px;border-bottom:2px solid var(--navy);margin-bottom:8px}.icon-btn{border:0;background:transparent;cursor:pointer;font:inherit;padding:4px 6px;color:var(--navy)}.drawer-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:0 0 16px}.drawer-actions .btn{padding:8px 12px;font-size:14px}.expand td{background:#f7f6f2}.expand textarea,.expand input,.expand select{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}.board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.board{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;margin-top:16px;align-items:start}.col{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:280px;padding:8px}.col header{font-size:13px;font-weight:600;display:flex;justify-content:space-between;margin-bottom:8px}.col-not-started header{color:#666}.col-assigned header{color:#2a6ea3}.col-in-progress header{color:var(--green)}.col-ready-for-review header{color:#8a8000}.col-done header{color:var(--navy)}.ticket{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:8px;cursor:pointer}.ticket-on-time{background:#fff}.ticket-complete{background:#eef4e8;border-color:#c5d6b0}.ticket-at-risk{background:#fff4cc;border-color:#e0c400}.ticket-past-due{background:#fde8ef;border-color:#d36a90}.ticket-cat{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.ticket-meta{font-size:12px;color:var(--muted);margin:4px 0}.ticket-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.icon{font-size:12px;color:var(--navy)}.flag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:999px;margin-right:4px}.flag.on-time,.flag.complete{background:#e6f0dc;color:#3a5c18}.flag.at-risk{background:#f3e27a;color:#5c5200}.flag.past-due{background:#f7b3c9;color:#7a0030}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182059;display:flex;justify-content:flex-end;z-index:20}.drawer{width:min(420px,100%);background:#fff;height:100%;overflow:auto;padding:20px 22px 40px;box-shadow:-8px 0 24px #0000001f}.drawer header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.drawer label{display:block;font-size:12px;color:var(--muted);margin:12px 0 4px}.drawer input,.drawer select,.drawer textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}textarea.fit{resize:none;overflow:hidden;line-height:1.45;width:100%}.drawer textarea.fit{resize:none;overflow:hidden;line-height:1.45}.drawer label.check-row{display:flex;align-items:center;gap:8px;margin-top:12px}.drawer .check-row input{width:auto}.approval-line{font-size:13px;margin:8px 0}.form-error{color:#7a0030;font-size:13px}.confirm-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182073;display:grid;place-items:center;z-index:30;padding:16px}.confirm-card{width:min(420px,100%);background:#fff;border-radius:10px;padding:18px 18px 16px;box-shadow:0 12px 40px #0003}.confirm-card h3{margin:0 0 8px}.history-pop{margin-top:8px;position:relative}.ticket .history-pop .btn{padding:4px 8px;font-size:12px}.ticket .history-pop ul{position:absolute;z-index:4;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 10px;box-shadow:0 8px 24px #0000001f}.title-input{font-size:18px;font-weight:600}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.file-list{list-style:none;padding:0;margin:0 0 8px}.file-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.settings-agent{max-width:760px;margin-top:16px}.settings-agent h2{color:#174a7c}.settings-agent .scopes{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin:10px 0 14px}.settings-agent label.scope{display:flex;gap:8px;align-items:flex-start;font-size:14px}.settings-agent input[type=text]{width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;min-height:40px}.settings-agent textarea.fit{resize:none;overflow:hidden;line-height:1.45;width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font:inherit;background:#fff}.settings-agent .row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.settings-agent .token-once{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all;background:#f6f5f1;padding:10px 12px;border-radius:8px}.pending-card{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.timeline-shell{display:grid;grid-template-columns:260px minmax(0,1fr);flex:1;min-height:0;height:auto;border:1px solid var(--navy);border-radius:10px;overflow:hidden}.timeline-shell.panning,.timeline-shell.panning *{cursor:grabbing!important}.tl-rail{background:#f6f5f1;border-right:1px solid #c5d0dc;display:flex;flex-direction:column;min-height:0;min-width:0;height:100%}.tl-rail-head{display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid #c5d0dc;background:#eef3f8;flex:0 0 auto}.tl-rail-head button{border:1px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.tl-rail-head button.on{background:var(--navy);color:#fff}.tl-rail-head .btn-navy{background:var(--navy);color:#fff;border-color:var(--navy);padding:4px 10px;font-size:12px}.tl-rail-body{overflow:auto;flex:1;scrollbar-width:none;min-height:0}.tl-rail-body::-webkit-scrollbar{display:none}.tl-rail-row{padding:6px 10px;border-bottom:1px solid #d5dde6;overflow:hidden;cursor:pointer;border-left:4px solid transparent}.tl-rail-row.ticket-on-time{background:#fff;border-left-color:#8ec3e6}.tl-rail-row.ticket-complete{background:#eef4e8;border-left-color:#7dae4a}.tl-rail-row.ticket-at-risk{background:#fff4cc;border-left-color:#d4c300}.tl-rail-row.ticket-past-due{background:#fde8ef;border-left-color:#b70050}.tl-rail-row strong{display:block;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tl-rail-row em{font-style:normal;font-size:11px;color:var(--muted)}.timeline-wrap{overflow:scroll;background:var(--navy);min-height:0;min-width:0;height:100%}.timeline{position:relative;min-width:100%;min-height:100%;cursor:grab;background:var(--navy)}.tl-legend{position:sticky;top:0;height:40px;z-index:9;background:#12385e;box-shadow:0 1px #ffffff1f}.tl-week-label{position:absolute;top:0;height:40px;display:flex;align-items:center;padding-left:8px;color:#eaf0f6;font-size:12px;font-weight:700}.tl-event-label{position:absolute;top:4px;transform:translate(10px);background:var(--gold);color:#3a3200;font-size:11px;font-weight:700;padding:3px 7px;border-radius:4px;white-space:nowrap;z-index:10}.tl-tick{position:absolute;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.18);z-index:1;pointer-events:none}.tl-tick-minor{position:absolute;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.08);z-index:1;pointer-events:none}.tl-today{position:absolute;top:0;bottom:0;background:#5c872773;z-index:1;pointer-events:none}.tl-lock{position:absolute;top:0;bottom:0;width:6px;background:var(--gold);z-index:2;box-shadow:0 0 0 1px #0003}.tl-lock-date{position:sticky;top:44px;display:inline-block;margin-left:10px;background:var(--gold);color:#3a3200;font-size:11px;font-weight:700;padding:3px 7px;border-radius:4px;white-space:nowrap}.tl-bar{position:absolute;height:28px;border-radius:6px;border:2px solid #fff;box-shadow:0 0 0 1px #00000040;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;z-index:4;cursor:pointer;-webkit-user-select:none;user-select:none}.timeline .ticket-on-time{background:#8ec3e6;color:#0d2a46;border-color:#fff}.timeline .ticket-complete{background:#7dae4a;color:#14300a;border-color:#eaf6d8}.timeline .ticket-at-risk{background:#d4c300;color:#3a3200;border-color:#fff4a8}.timeline .ticket-past-due{background:#b70050;color:#fff;border-color:#ffd0e0}.tl-handle{position:absolute;right:0;top:0;width:10px;height:100%;cursor:ew-resize;background:#0003}.tl-dot{position:absolute;width:10px;height:10px;border-radius:50%;top:8px;background:var(--gold);border:2px solid #fff;z-index:5}.tl-dot.start{left:-6px}.tl-dot.end{right:-6px;cursor:crosshair}.tl-links{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.tl-dep{fill:none;stroke:#d7dbe0;stroke-width:2;pointer-events:stroke;cursor:pointer}.tl-dep.draft{stroke-dasharray:4 3}.tl-flag{position:absolute;z-index:12;transform:translate(-50%,-10px);width:240px;background:#fff;color:var(--ink);border:1px solid var(--gold);border-radius:8px;padding:10px 12px;box-shadow:0 8px 24px #00000040;cursor:default}.tl-flag p{margin:0 0 6px;font-size:12px;color:var(--muted)}.tl-flag strong{display:block;font-size:13px}.tl-flag span{font-size:12px;color:var(--muted)}.tl-flag-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.tl-flag-actions .btn{padding:6px 10px;font-size:13px}@media (max-width: 800px){.shell,.row,.board,.timeline-shell{grid-template-columns:1fr}}.dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:20px;align-items:start}.dash-cards{display:grid;gap:16px}.my-tasks{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}.my-tasks h2{color:var(--navy);font-size:16px}.approval-pin{display:block;margin:0 0 12px;padding:8px 10px;border-radius:8px;background:#fff8d6;border:1px solid var(--gold);color:var(--ink);font-weight:600;text-decoration:none}.approval-pin:hover{border-color:var(--navy)}.count-badge{display:inline-block;margin-left:8px;min-width:1.5em;padding:0 7px;border-radius:999px;background:var(--bad);color:#fff;font-size:12px;line-height:1.7;font-weight:700;text-align:center;vertical-align:1px}.task-group{margin-top:14px}.task-group h3{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.task-link{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0 0 8px;color:inherit;text-decoration:none}.task-link:hover{border-color:var(--navy)}.task-link.overdue{background:#fde8ef;border-color:#d36a90}.task-link .due{font-size:12px;color:var(--muted)}.task-link.overdue .due{color:#7a0030;font-weight:600}.empty-state{margin:12px 0 0;padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#faf9f6}.icon-tip{display:inline-flex;align-items:center;vertical-align:middle;margin:0 2px}.icon-svg{display:inline-block;vertical-align:-2px;color:var(--navy)}.icon-filled{color:var(--navy)}.budget-v2{display:flex;flex-direction:column;gap:16px}.budget-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.budget-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;flex-wrap:wrap}.budget-card-head h2{margin:0}.line-reason{display:flex;flex-direction:column;gap:4px;min-width:min(320px,100%)}.line-reason input,.section-add input,.invoice-form input,.acct-input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}.budget-table-wrap{overflow:auto;margin-top:12px;border:1px solid var(--line);border-radius:12px}.acct-table{width:100%;border-collapse:collapse;background:#fff}.acct-table th,.acct-table td{padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}.acct-table thead th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#f7f6f2}.acct-table .num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap;width:9.5rem}.acct-table .actions{width:3rem;text-align:right}.acct{display:inline-grid;grid-template-columns:.6em auto minmax(4.8em,auto) .6em;justify-content:end;width:100%;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.acct-sym{text-align:right;padding-right:.12em}.acct-num{text-align:right}.acct-paren{text-align:center}.acct.neg{color:var(--bad)}.acct-word{display:block;text-align:right;color:var(--muted);font-style:italic;font-variant-numeric:tabular-nums}.section-row th,.section-row td{background:#eef3f8;font-weight:650}.grand-row th,.grand-row td{border-top:2px solid var(--navy);font-weight:700;background:#fff}.add-row td{background:#faf9f6}.budget-set{border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit;width:100%}.section-budget-edit{display:grid;gap:8px;max-width:520px;padding:8px 0}.section-add{max-width:480px;margin-top:12px}.invoice-form{display:grid;gap:8px;margin-top:8px}.line-name{margin-right:6px}.summary-mini{margin-top:8px}.summary-mini th{text-align:left;font-weight:600}@media (max-width: 800px){.budget-summary{grid-template-columns:1fr}}@media (max-width: 900px){.dash{grid-template-columns:1fr}}.ticket{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.ticket.dragging{opacity:.55;transform:scale(1.03);box-shadow:0 8px 18px #174a7c40}.col.drop-target{outline:2px solid var(--gold);outline-offset:-2px;background:#fffdf0}.nav-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15)}.nav .session{margin-top:8px;border-top:0;padding-top:8px}@media (max-width: 900px){.board{grid-template-columns:repeat(5,minmax(160px,1fr));overflow-x:auto;padding-bottom:8px}}
