*{box-sizing:border-box;margin:0;padding:0}img{max-width:100%;height:auto;display:block}:root{--bg:#f5f4f0;--surface:#ffffff;--surface2:#f9f8f5;--border:#e5e3dc;--border2:#d0cec6;--text:#1a1917;--text2:#5a5752;--text3:#9a9690;--green:#2d6a2d;--green-bg:#eaf3ea;--green-mid:#4a9e4a;--red:#b02a2a;--red-bg:#fceaea;--amber:#8a5200;--amber-bg:#fff4e0;--amber-mid:#d4820a;--blue:#1a4d8f;--blue-bg:#e8f0fc;--blue-mid:#2d6dd4;--teal:#0d6b6b;--teal-bg:#e4f5f5;--teal-mid:#1a9e9e;--purple:#5a2d8f;--purple-bg:#f0eafa;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 4px 12px rgba(0,0,0,0.1),0 2px 4px rgba(0,0,0,0.06)}#cfd-app{font-family:'IBM Plex Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;min-height:calc(100vh - var(--header-height));position:relative;min-height:70vh}body.cfd-dashboard-page .site-footer,body.cfd-dashboard-page .site-header{display:none!important}body.cfd-dashboard-page #cfd-app{min-height:100vh}body.cfd-dashboard-page.cfd-dashboard-auth .mn-mobile-cta-bar{display:none!important}body.cfd-dashboard-auth #cfd-app-header,body.cfd-dashboard-auth #cfd-main{-webkit-user-select:none;user-select:none}body.cfd-dashboard-auth #cfd-main input,body.cfd-dashboard-auth #cfd-main option,body.cfd-dashboard-auth #cfd-main select,body.cfd-dashboard-auth #cfd-main textarea,body.cfd-dashboard-auth #report-container{-webkit-user-select:text;user-select:text}body.cfd-dashboard-auth #cfd-modal,body.cfd-dashboard-auth #cfd-save-dock{-webkit-user-select:none;user-select:none}#cfd-app .app-header{background:var(--text);color:#fff;padding:0 max(1.25rem,env(safe-area-inset-right,0px)) 0 max(1.5rem,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:.75rem;min-height:52px;flex-wrap:wrap;row-gap:4px;position:sticky;top:0;z-index:90}.app-logo-wrap{display:flex;flex-direction:column;justify-content:center;line-height:1.15;gap:1px;flex-shrink:0;padding:4px 0}.app-logo-wrap a{color:inherit;text-decoration:none}.app-logo-wrap a:hover{opacity:.9}.app-logo{font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.app-logo-sub{font-size:10px;font-weight:400;opacity:.45;letter-spacing:.02em;white-space:nowrap}.nav-tabs{display:flex;gap:2px;align-items:stretch;flex-wrap:wrap;flex:1;min-width:120px}.nav-tab{background:0 0;border:none;color:rgba(255,255,255,.5);font-family:inherit;font-size:12px;padding:10px;cursor:pointer;min-height:44px;border-bottom:2px solid transparent;transition:.15s}.nav-tab:hover{color:rgba(255,255,255,.85)}.nav-tab.active{color:#fff;border-bottom-color:#fff}.nav-tab__short{display:none}.cfd-forecast-period-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1;min-width:0}.cfd-forecast-select{flex:1 1 140px;min-width:0;max-width:100%;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);font-size:14px}.chart-swipe-hint{display:none;font-size:11px;color:var(--text3);margin:.35rem 0 .5rem;line-height:1.35}.cfd-ledger-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.35rem;padding:0 .35rem .35rem;border-radius:var(--radius)}#tab-ledger table.ledger td.right,#tab-ledger table.ledger th.r{font-variant-numeric:tabular-nums;white-space:nowrap}#tab-ledger table.ledger td:first-child,#tab-ledger table.ledger th:first-child{white-space:nowrap}#tab-ledger table.ledger td:nth-child(2){min-width:7rem;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#tab-ledger .cfd-ledger-summary .metric .mv{font-size:clamp(1rem,4.5vw,1.25rem);word-break:break-word}.nav-tab.nav-tab--sample{opacity:1;color:rgba(255,255,255,.88);position:relative;padding-right:3.85rem}.nav-tab.nav-tab--sample:not(.active){color:rgba(255,255,255,.68)}.nav-tab.nav-tab--sample::after{content:'Preview';position:absolute;top:4px;right:6px;font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.72);padding:3px 6px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);pointer-events:none}.cfd-sample-banner{margin:0 0 1rem;padding:.75rem 1rem;border-radius:var(--radius-lg);border:1px dashed var(--amber-mid);background:var(--amber-bg);color:var(--text);font-size:13px;line-height:1.45}.cfd-sample-banner a{font-weight:600;color:var(--blue-mid)}.cfd-sample-banner__meta{margin-top:.35rem;margin-bottom:0;font-size:12px;color:var(--text2)}.tab-panel.tab-panel--sample-view{position:relative;pointer-events:none;filter:saturate(.94)}.tab-panel.tab-panel--sample-view .cfd-sample-banner{pointer-events:auto;filter:none;cursor:default}.app-header-trail{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0;flex-wrap:wrap}.hdr-actions{display:flex;align-items:center;gap:6px}.hdr-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.88);font-family:inherit;font-size:12px;font-weight:500;padding:6px 11px;border-radius:var(--radius);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .15s,color .15s}.hdr-btn:hover{background:rgba(255,255,255,.16);color:#fff}.hdr-btn svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}.today-badge{font-family:'IBM Plex Mono',monospace;font-size:11px;opacity:.45;white-space:nowrap}.cfd-main-menu{position:relative;flex-shrink:0}.cfd-main-menu__trigger{min-height:44px}.cfd-main-menu__trigger[aria-expanded=true]{background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.28)}.cfd-main-menu__panel{position:absolute;right:0;top:calc(100% + 6px);min-width:12rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:.35rem 0;z-index:120;display:flex;flex-direction:column}.cfd-main-menu__panel[hidden]{display:none!important}.cfd-main-menu__item{display:flex;align-items:center;min-height:44px;padding:.55rem 1rem;color:var(--text);text-decoration:none;font-size:13px;font-weight:500;line-height:1.2;transition:background .12s}.cfd-main-menu__item:focus-visible,.cfd-main-menu__item:hover{background:var(--surface2);outline:0;color:var(--text)}.cfd-main-menu__item--current{color:var(--blue-mid);font-weight:600;background:var(--blue-bg);cursor:default;pointer-events:none}.import-tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:1rem}.import-zone{border:2px dashed var(--border2);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:.2s;background:var(--surface2)}.import-zone--tool{padding:1rem 1.1rem;text-align:left}.import-zone--tool .iz-title{font-size:13px;margin-bottom:2px}.import-zone--tool .iz-sub{font-size:11px;line-height:1.35}.import-zone.drag,.import-zone:hover{border-color:var(--blue-mid);background:var(--blue-bg)}.import-zone svg{width:32px;height:32px;fill:var(--text3);margin-bottom:8px}.import-zone .iz-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px}.import-zone .iz-sub{font-size:12px;color:var(--text3)}.import-zone input[type=file]{display:none}.export-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.export-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;text-align:center;cursor:pointer;transition:.15s;background:var(--surface);box-shadow:var(--shadow)}.export-card:hover{border-color:var(--blue-mid);background:var(--blue-bg);transform:translateY(-1px)}.export-card svg{width:32px;height:32px;margin:0 auto 8px;display:block}.export-card .ec-title{font-size:13px;font-weight:500;margin-bottom:3px;color:var(--text)}.export-card .ec-sub{font-size:11px;color:var(--text3)}.export-card.export-card--locked,.export-card.export-card--locked:hover{opacity:.45;cursor:not-allowed;transform:none;border-color:var(--border);background:var(--surface2)}.export-card.export-card--locked:hover{border-color:var(--border)}.btn-green{background:var(--green);color:#fff;border-color:var(--green)}.btn-green:hover{opacity:.9}.btn svg.icon-sm{width:14px;height:14px;fill:currentColor;flex-shrink:0;vertical-align:middle}#cfd-toast{position:fixed;bottom:max(80px,calc(64px + env(safe-area-inset-bottom,0px)));left:50%;transform:translateX(-50%) translateY(120%);z-index:400;background:var(--text);color:#fff;padding:10px 18px;border-radius:var(--radius);font-size:13px;box-shadow:var(--shadow-md);opacity:0;transition:transform .22s,opacity .22s;pointer-events:none;max-width:min(90vw,420px)}#cfd-toast.cfd-toast-show{transform:translateX(-50%) translateY(0);opacity:1}.main{max-width:1100px;margin:0 auto;padding:1.5rem;padding-left:max(1.5rem,env(safe-area-inset-left,0px));padding-right:max(1.5rem,env(safe-area-inset-right,0px));padding-bottom:max(1.5rem,env(safe-area-inset-bottom,0px))}.tab-panel{display:none}.tab-panel.active{display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.card-title{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:1rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.metrics-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:1rem}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem 1rem;box-shadow:var(--shadow)}.metric .ml{font-size:11px;color:var(--text3);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric .mv{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.green{color:var(--green)}.red{color:var(--red)}.amber{color:var(--amber)}.blue{color:var(--blue)}.neutral{color:var(--text)}.form-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.form-row:last-child{margin-bottom:0}#expense-list .form-row,#income-list .form-row{flex-wrap:wrap}.form-label{font-size:13px;color:var(--text2);min-width:130px;flex-shrink:0}input[type=date],input[type=number],input[type=text],select,textarea{font-family:'IBM Plex Sans',inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);padding:7px 10px;outline:0;transition:border .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(45,109,212,.12)}textarea{resize:vertical;min-height:70px;line-height:1.5}.tag{font-size:11px;padding:3px 8px;border-radius:var(--radius);background:var(--surface2);color:var(--text2);border:1px solid var(--border);white-space:nowrap;flex-shrink:0}.rm-btn{background:0 0;border:1px solid transparent;color:var(--text3);cursor:pointer;font-size:16px;padding:3px 7px;border-radius:var(--radius);line-height:1;flex-shrink:0;transition:.15s}.rm-btn:hover{background:var(--red-bg);color:var(--red);border-color:#f5c0c0}.btn{font-family:inherit;font-size:13px;padding:7px 16px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border2);background:var(--surface);color:var(--text);transition:.15s;font-weight:500}.btn:hover{background:var(--surface2)}.btn-primary{background:var(--text);color:#fff;border-color:var(--text)}.btn-primary:hover{opacity:.88}.btn-add{background:0 0;border:1px dashed var(--border2);color:var(--text2);font-size:13px;padding:6px 14px;border-radius:var(--radius);cursor:pointer;margin-top:8px;transition:.15s;width:100%}.btn-add:hover{border-color:var(--blue-mid);color:var(--blue);background:var(--blue-bg)}.seg-tabs{display:flex;gap:4px}.seg-tab{font-size:12px;padding:5px 14px;border:1px solid var(--border2);border-radius:var(--radius);cursor:pointer;background:0 0;color:var(--text2);font-family:inherit;transition:.15s}.seg-tab.active{background:var(--text);color:#fff;border-color:var(--text)}.chart-wrap{position:relative;width:100%}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{color:var(--text3);font-weight:500;padding:8px 10px;text-align:right;border-bottom:1px solid var(--border);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.data-table th:first-child{text-align:left}.data-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--border)}.data-table td:first-child{text-align:left}.data-table tbody tr:hover{background:var(--surface2)}.data-table tr.current-month td{background:#fffbf0}.data-table tr.current-month td:first-child{border-left:3px solid var(--amber-mid)}.data-table tr.past td{opacity:.75}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;font-weight:500}.badge-green{background:var(--green-bg);color:var(--green)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-blue{background:var(--blue-bg);color:var(--blue)}.badge-teal{background:var(--teal-bg);color:var(--teal)}.badge-gray{background:var(--surface2);color:var(--text2);border:1px solid var(--border)}.progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:4px}.progress-fill{height:100%;border-radius:3px;transition:width .3s}.proj-name{font-weight:500;color:var(--text)}.proj-client{font-size:12px;color:var(--text3);margin-top:1px}.timeline-bar{position:relative;height:12px;background:var(--border);border-radius:6px;min-width:80px;overflow:visible}.timeline-fill{position:absolute;top:0;left:0;height:100%;border-radius:6px;transition:width .3s}.timeline-now{position:absolute;top:-3px;width:2px;height:18px;background:var(--red);border-radius:1px}.cfd-timeline{font-size:13px}.cfd-timeline__axis{margin-bottom:12px}.cfd-timeline__months-track{margin-left:168px;padding-bottom:8px;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.cfd-timeline__months-inner{position:relative;height:26px;width:100%;min-width:min(100%,520px)}.cfd-timeline__month-hit{position:absolute;top:0;font-size:10px;color:var(--text3);font-weight:400;white-space:nowrap;transform:translateX(-50%)}.cfd-timeline__month-hit--current{color:var(--amber);font-weight:600}.cfd-timeline__axis-today{position:absolute;top:0;bottom:0;width:2px;background:var(--red);opacity:.75;border-radius:1px;transform:translateX(-50%);pointer-events:none}.cfd-timeline__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:14px}.cfd-timeline__meta{flex:0 1 152px;min-width:0}.cfd-timeline__name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfd-timeline__client{font-size:11px;color:var(--text3)}.cfd-timeline__track-wrap{flex:1 1 220px;min-width:120px;position:relative;height:28px}.cfd-timeline__track-bg{position:absolute;inset:0;background:var(--border);border-radius:4px}.cfd-timeline__track-range{position:absolute;top:0;height:100%;border-radius:4px;display:flex;align-items:center;overflow:hidden;box-sizing:border-box}.cfd-timeline__track-elapsed{position:absolute;left:0;top:0;height:100%;border-radius:4px 0 0 4px;max-width:100%}.cfd-timeline__track-label{position:relative;z-index:1;font-size:10px;font-weight:500;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfd-timeline__row-today{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--red);opacity:.75;border-radius:1px;transform:translateX(-50%);pointer-events:none}.cfd-timeline__days{flex:0 0 92px;text-align:right;font-size:11px;min-width:0}.cfd-timeline__legend{margin-left:168px;margin-top:8px;font-size:11px;color:var(--red)}.proj-card-head{margin-bottom:1rem;gap:12px}.proj-card-head__title{margin:0}.proj-card-head__cta{flex-shrink:0;min-height:44px}.insight{font-size:12px;padding:8px 12px;border-radius:var(--radius);margin-bottom:6px;line-height:1.5;border-left:3px solid}.insight.good{background:var(--green-bg);color:var(--green);border-left-color:var(--green-mid)}.insight.warn{background:var(--amber-bg);color:var(--amber);border-left-color:var(--amber-mid)}.insight.bad{background:var(--red-bg);color:var(--red);border-left-color:var(--red)}.insight.info{background:var(--blue-bg);color:var(--blue);border-left-color:var(--blue-mid)}.toggle-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:1rem}.toggle-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface2);transition:.15s;user-select:none}.toggle-item.on{background:var(--blue-bg);border-color:#b5cef5;color:var(--blue)}.toggle-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border2);background:var(--surface);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;transition:.15s}.toggle-item.on .toggle-dot{background:var(--blue-mid);border-color:var(--blue-mid);color:#fff}.toggle-label{font-size:12px;font-weight:500}.report-output{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-top:1rem;box-shadow:var(--shadow-md)}.report-hdr{background:var(--text);color:#fff;padding:1.5rem 2rem}.report-hdr-title{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px}.report-hdr-sub{font-size:13px;opacity:.55}.report-body{padding:1.5rem 2rem;background:var(--surface)}.report-section{margin-bottom:1.75rem}.report-section-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:12px}.report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.rpt-kpi{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface2)}.rpt-kpi-l{font-size:11px;color:var(--text3);margin-bottom:2px}.rpt-kpi-v{font-size:16px;font-weight:600;letter-spacing:-.01em}.report-note{font-size:13px;color:var(--text2);line-height:1.7;white-space:pre-wrap;padding:12px 14px;background:var(--surface2);border-radius:var(--radius);border-left:3px solid var(--border2)}.report-actions{display:flex;gap:8px;padding:12px 2rem;background:var(--surface2);border-top:1px solid var(--border)}.divider{height:1px;background:var(--border);margin:1rem 0}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center;gap:8px}.mono{font-family:'IBM Plex Mono',monospace}.text-right{text-align:right}.muted{color:var(--text3)}.small{font-size:12px}.period-label{font-size:11px;color:var(--text3);font-style:italic}.tax-info{font-size:11px;color:var(--text3);margin-top:6px}.modal-wrap{background:rgba(0,0,0,.45);border-radius:var(--radius-lg);padding:2rem;display:flex;align-items:center;justify-content:center;min-height:400px;margin-bottom:1rem}.modal-box{background:var(--surface);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:520px;box-shadow:var(--shadow-md)}.modal-title{font-size:15px;font-weight:600;margin-bottom:1rem}@media(max-width:900px){.card:has(.data-table){overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-.25rem;margin-right:-.25rem;padding-left:.25rem;padding-right:.25rem}#tab-ledger .sect:has(table.ledger){overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-.35rem;margin-right:-.35rem;padding-left:.35rem;padding-right:.35rem}.chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.hdr-btn{min-height:44px}.seg-tab,.seg-tab.active{padding-top:8px;padding-bottom:8px}#tab-ledger .filter-row input,#tab-ledger .filter-row select,#tab-ledger .form-row input,#tab-ledger .form-row select,input[type=date],input[type=number],input[type=text],select,textarea{font-size:16px}#tab-ledger .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}#tab-ledger .seg-tab{padding-top:8px;padding-bottom:8px;min-height:40px}.form-label{min-width:0}#tab-ledger .metrics{grid-template-columns:repeat(2,1fr)}#tab-ledger .form-row{grid-template-columns:1fr 1fr;gap:8px}#tab-ledger .vs-row,#tab-variance .vs-row{grid-template-columns:1fr}}@media(max-width:700px){.metrics-row{grid-template-columns:repeat(2,1fr)}.toggle-grid{grid-template-columns:1fr 1fr}.grid2,.grid3{grid-template-columns:1fr}#tab-workbench .card.dashboard-card{margin-left:0;margin-right:0}#tab-workbench .cfw-page--embedded{padding-bottom:0}.cfd-ledger-swipe-hint,.chart-swipe-hint{display:block}#tab-ledger .vs-row{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:10px;scroll-snap-type:x proximity;padding-bottom:4px;margin-bottom:4px}#tab-ledger .vs-card{flex:0 0 min(17rem,88vw);scroll-snap-align:start;min-width:0}#tab-ledger .vs-main{font-variant-numeric:tabular-nums;font-size:clamp(.9rem,3.8vw,1rem);word-break:break-word}#tab-ledger .cfd-ledger-table-wrap{margin-left:-.5rem;margin-right:-.5rem;padding-left:.5rem;padding-right:.5rem}.cfd-forecast-period-row{flex-direction:column;align-items:stretch}.cfd-forecast-select{flex:1 1 auto;width:100%;font-size:16px}#cfd-app .app-header{padding:6px max(10px,env(safe-area-inset-right,0px)) 8px max(10px,env(safe-area-inset-left,0px));gap:.5rem;flex-wrap:nowrap;align-items:stretch}#cfd-app .app-logo-wrap{align-self:center}#cfd-app .nav-tabs{flex:1 1 auto;flex-wrap:nowrap;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;touch-action:pan-x;gap:4px;margin:0 -.25rem;padding:0 .25rem}#cfd-app .nav-tab{flex-shrink:0}#cfd-app .app-header-trail{margin-left:0;flex-shrink:0;align-self:center}.nav-tab{padding:10px 8px;font-size:11px;min-height:44px}.hdr-btn{padding:8px 10px;font-size:11px;min-height:44px}.hdr-btn .hdr-action-label{display:none}.cfd-main-menu__trigger .cfd-main-menu__label{display:inline}.today-badge{display:none}.main{padding:1rem;padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.report-body,.report-hdr{padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}.report-hdr{padding-top:1.25rem;padding-bottom:1.25rem}.report-actions{flex-wrap:wrap;padding-left:max(1rem,env(safe-area-inset-left,0px));padding-right:max(1rem,env(safe-area-inset-right,0px))}#tab-ledger .form-row{grid-template-columns:1fr;gap:10px}.cfd-timeline__legend,.cfd-timeline__months-track{margin-left:0}.cfd-timeline__row{flex-direction:column;align-items:stretch}.cfd-timeline__meta,.cfd-timeline__track-wrap{flex:none;width:100%}.cfd-timeline__days{text-align:left;flex:none;width:100%}}@media(max-width:520px){.metrics-row,.toggle-grid{grid-template-columns:1fr}.nav-tab__long{display:none}.nav-tab__short{display:inline}#cfd-app .nav-tab{max-width:none;padding:10px 8px}}@media(max-width:640px){#tab-ledger .cfd-ledger-summary .metric .ml{white-space:normal;line-height:1.3}#tab-ledger .cfd-ledger-cat-grid{grid-template-columns:1fr!important}#tab-ledger .filter-row{flex-direction:column;align-items:stretch}#tab-ledger .filter-row input[type=text],#tab-ledger .filter-row select{width:100%!important;max-width:none!important}#tab-ledger .filter-row .btn{width:100%}#tab-ledger .filter-row #cfd-lg-f-count{margin-left:0!important;text-align:center;padding-top:6px;width:100%}.proj-card-head{flex-direction:column;align-items:stretch}.proj-card-head__cta{width:100%}}@media print{#cfd-app .app-header,#cfd-toast,.card:not(.print-section),.cfd-auth-gate,.cfd-modal,.cfd-save-dock,.hdr-actions,.nav-tabs,.report-actions,.site-footer,.site-header{display:none!important}.report-output{box-shadow:none;border:none}}.cfd-auth-gate{position:absolute;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1.5rem;padding-top:max(1.5rem,env(safe-area-inset-top,0px));padding-bottom:max(1.5rem,env(safe-area-inset-bottom,0px));text-align:center}.cfd-auth-gate[hidden],body.cfd-dashboard-auth .cfd-auth-gate{display:none!important}.cfd-auth-gate__inner{max-width:420px}.cfd-app-loading{position:absolute;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(245,245,247,.92);padding:1.5rem;text-align:center;pointer-events:none}.cfd-app-loading[hidden]{display:none!important}.cfd-app-loading__text{font-size:14px;color:var(--text3);margin:0}.cfd-auth-title{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.cfd-auth-text{font-size:14px;color:var(--text3);line-height:1.5;margin-bottom:1.25rem}.cfd-auth-msg{font-size:14px;color:var(--text3)}.cfd-auth-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.cfd-save-dock{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:200;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;box-shadow:var(--shadow-md)}.cfd-save-status{font-size:12px;color:var(--text3);max-width:200px}.cfd-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem}.cfd-modal[hidden]{display:none!important}.cfd-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}.cfd-modal__box{position:relative;background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;max-width:420px;width:100%;box-shadow:var(--shadow-md)}.cfd-modal__title{font-weight:600;margin-bottom:.5rem;font-size:15px}.cfd-modal__msg{font-size:13px;color:var(--text3);margin-bottom:1rem;line-height:1.45}.cfd-modal__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}#tab-ledger,#tab-variance{--color-background-primary:var(--surface);--color-background-secondary:var(--surface2);--color-border-tertiary:var(--border);--color-border-secondary:var(--border2);--color-text-primary:var(--text);--color-text-secondary:var(--text2);--color-text-tertiary:var(--text3);--color-text-success:var(--green);--color-text-danger:var(--red);--color-text-warning:var(--amber);--color-border-danger:#f0c4c4;--color-background-success:var(--green-bg);--color-background-danger:var(--red-bg);--border-radius-lg:var(--radius-lg);--border-radius-md:var(--radius)}#tab-ledger .sect,#tab-variance .sect{background:var(--color-background-primary);border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:1.125rem 1.25rem;margin-bottom:12px}#tab-ledger .sect-title,#tab-variance .sect-title{font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-tertiary);margin-bottom:12px}#tab-ledger .metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}#tab-ledger .cfd-ledger-summary .metrics{margin-bottom:0}#tab-ledger .cfd-ledger-cat-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}#tab-ledger .metric{background:var(--color-background-secondary);border-radius:var(--border-radius-md);padding:.875rem 1rem;border:1px solid var(--border)}#tab-ledger .metric .ml{font-size:11px;color:var(--color-text-tertiary);margin-bottom:3px}#tab-ledger .metric .mv{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums}#tab-ledger .g{color:var(--color-text-success)}#tab-ledger .r{color:var(--color-text-danger)}#tab-ledger .a{color:var(--color-text-warning)}#tab-ledger .n{color:var(--color-text-primary)}#tab-ledger .form-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto auto;gap:8px;align-items:center;margin-bottom:10px}#tab-ledger .form-row input,#tab-ledger .form-row select{width:100%;font-size:13px}#tab-ledger .btn{font-family:inherit;font-size:13px;padding:7px 16px;border-radius:var(--border-radius-md);cursor:pointer;border:1px solid var(--color-border-secondary);background:var(--color-background-primary);color:var(--color-text-primary);white-space:nowrap;transition:.12s;font-weight:500}#tab-ledger .btn:hover{background:var(--color-background-secondary)}#tab-ledger .btn-p{background:var(--text);color:#fff;border-color:var(--text)}#tab-ledger .btn-p:hover{opacity:.85}#tab-ledger .btn-sm{padding:5px 10px;font-size:12px}#tab-ledger .btn-danger{border-color:var(--color-border-danger);color:var(--color-text-danger)}#tab-ledger .btn-danger:hover{background:var(--red-bg)}#tab-ledger .tag{font-size:11px;padding:2px 8px;border-radius:var(--border-radius-md);background:var(--color-background-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-tertiary);white-space:nowrap}#tab-ledger table.ledger{min-width:36rem;width:100%;border-collapse:collapse;font-size:13px}#tab-ledger table.ledger th{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary);padding:7px 10px;text-align:left;border-bottom:1px solid var(--color-border-tertiary)}#tab-ledger table.ledger th.r{text-align:right}#tab-ledger table.ledger td{padding:8px 10px;border-bottom:1px solid var(--color-border-tertiary);vertical-align:middle}#tab-ledger table.ledger tbody tr:hover{background:var(--color-background-secondary)}#tab-ledger table.ledger td.right{text-align:right}#tab-ledger .badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;font-weight:500}#tab-ledger .badge-in{background:var(--color-background-success);color:var(--color-text-success)}#tab-ledger .badge-out{background:var(--color-background-danger);color:var(--color-text-danger)}#tab-ledger .badge-cat{background:var(--color-background-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border-tertiary)}#tab-ledger .filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}#tab-ledger .filter-row input,#tab-ledger .filter-row select{font-size:13px;max-width:160px}#tab-ledger .seg{display:flex;gap:4px}#tab-ledger .seg-tab{font-size:12px;padding:4px 12px;border:1px solid var(--color-border-secondary);border-radius:var(--border-radius-md);cursor:pointer;background:0 0;color:var(--color-text-secondary);font-family:inherit}#tab-ledger .seg-tab.on{background:var(--text);color:#fff;border-color:var(--text)}#tab-ledger .vs-row,#tab-variance .vs-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}#tab-ledger .vs-card,#tab-variance .vs-card{border:1px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:12px;background:var(--surface2)}#tab-ledger .vs-label,#tab-variance .vs-label{font-size:11px;color:var(--color-text-tertiary);margin-bottom:4px}#tab-ledger .vs-main,#tab-variance .vs-main{font-size:16px;font-weight:500;margin-bottom:2px}#tab-ledger .vs-sub,#tab-variance .vs-sub{font-size:11px;color:var(--color-text-secondary)}#tab-ledger .progress,#tab-variance .progress{height:5px;background:var(--color-border-tertiary);border-radius:3px;margin-top:6px;overflow:hidden}#tab-ledger .progress-fill,#tab-variance .progress-fill{height:100%;border-radius:3px;transition:width .3s}#tab-ledger .empty{text-align:center;padding:2rem 1rem;color:var(--color-text-tertiary);font-size:13px}#tab-ledger .chart-wrap,#tab-variance .chart-wrap{position:relative;width:100%;height:200px;margin-top:8px}#tab-variance .g{color:var(--color-text-success)}#tab-variance .r{color:var(--color-text-danger)}#tab-variance .n{color:var(--color-text-primary)}@media(max-width:600px){#tab-ledger .form-row{grid-template-columns:1fr}#tab-ledger .filter-row input,#tab-ledger .filter-row select{max-width:100%;flex:1;min-width:0}}