@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--jr-forest:#17251d;--jr-green:#8dc64a;--jr-sage:#d3e6c3;--jr-paper:#f5f7f5;font-family:DM Sans,sans-serif;color:#202821;background:var(--jr-paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.65;cursor:wait}a{color:#28613f}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--jr-forest);color:#eaf0eb;display:flex;flex-direction:column;padding:25px 16px 18px;z-index:5}.brand{display:block;width:100%;padding:0 3px 28px;line-height:0}.brand-image{display:block;width:100%;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none}.brand-dark .brand-image{max-width:214px}.brand-light .brand-image{max-width:320px;margin:0 auto}.sidebar .brand{padding:0 2px 30px}.auth-card .brand-image,.setup-card .brand-image{max-width:310px}.sidebar-caption,.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#8b9b8e}.sidebar-caption{padding:0 12px 10px}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:#c4d0c6;border-radius:9px;padding:12px 13px;text-align:left;font-size:13px;transition:background .15s,color .15s}.nav-item:hover{background:#25392c;color:#fff}.nav-item.active{background:var(--jr-sage);color:#203626;font-weight:700}.nav-count{margin-left:auto;background:#ffffff26;padding:2px 7px;border-radius:20px;font-size:11px}.sidebar-bottom{margin-top:auto}.connection{display:flex;align-items:center;gap:8px;color:#bdcbbf;font-size:10px;padding:12px 10px 17px}.status-dot{height:7px;width:7px;border-radius:50%;background:#88c77e;box-shadow:0 0 0 3px #88c77e20}.version{font-size:10px;line-height:1.7;color:#849488;padding:17px 10px 0;border-top:1px solid #ffffff18}.main-area{margin-left:250px;min-height:100vh}.topbar{height:70px;border-bottom:1px solid #e4e9e4;background:#ffffffd9;display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.breadcrumb{display:flex;gap:11px;align-items:center;font-size:12px;color:#89938a}.breadcrumb strong{color:#2b352d;font-weight:600}.crumb-sep{color:#c2c9c3}.topbar-right{display:flex;align-items:center;gap:15px;color:#788278;font-size:11px}.avatar{height:34px;width:34px;border-radius:50%;display:grid;place-items:center;background:#e1eadb;color:#2d5638;font-weight:700;font-size:12px}.page-content{max-width:1320px;margin:0 auto;padding:34px 36px 60px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1,.auth-intro h1,.setup-card h1{font:800 30px Manrope,sans-serif;letter-spacing:-1.1px;margin:6px 0 7px;color:#1d2920}.page-heading p,.auth-intro p,.setup-card>p{margin:0;color:#7c877e;font-size:13px;line-height:1.65}.primary-btn,.secondary-btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 15px;border-radius:8px;font-size:12px;font-weight:700;transition:transform .12s,background .12s}.primary-btn{background:#23472f;color:#fff;box-shadow:0 2px 3px #142d1b13}.primary-btn:hover{background:#315b3d;transform:translateY(-1px)}.secondary-btn{background:#fff;border-color:#dce3dc;color:#465349}.secondary-btn:hover{background:#f6f8f5}.full-btn{width:100%;padding:13px}.stats-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}.stat-card{display:flex;align-items:center;gap:13px;padding:17px 18px;border:1px solid #e5eae5;background:#fff;border-radius:11px;box-shadow:0 2px 7px #233b2704}.stat-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#eaf2e4;color:#3e7049}.stat-icon.muted{background:#edf0ee;color:#718075}.stat-card span{display:block;color:#7d887e;font-size:11px;margin-bottom:5px}.stat-card strong{font:800 23px Manrope,sans-serif;letter-spacing:-.6px}.stat-card .stat-word{font-size:18px;color:#387647}.table-card{border:1px solid #e4e9e4;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 7px #233b2704}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px 22px;border-bottom:1px solid #edf0ed}.table-toolbar h2{font:700 14px Manrope,sans-serif;margin:0 0 5px}.table-toolbar p{font-size:11px;color:#899289;margin:0}.search-box{display:flex;align-items:center;gap:8px;border:1px solid #e0e6e0;border-radius:8px;padding:0 11px;color:#89948b;width:min(330px,50%)}.search-box:focus-within{border-color:#83a88b;box-shadow:0 0 0 3px #6e9c7620}.search-box input{width:100%;border:0;outline:0;background:transparent;padding:10px 0;font-size:11px;color:#28332b;min-width:0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:.9px;color:#929b93;font-weight:700;background:#fbfcfb;padding:13px 17px;border-bottom:1px solid #edf0ed}td{padding:15px 17px;font-size:11px;color:#58635a;border-bottom:1px solid #f0f2f0}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfa}.company-cell{display:flex;align-items:center;gap:10px}.company-avatar{height:34px;width:34px;display:grid;place-items:center;border-radius:8px;background:#edf3e9;color:#527b57;flex-shrink:0}.company-cell strong{display:block;font-size:12px;color:#2a352c;font-weight:700}.company-cell small{display:block;font-size:10px;color:#919a92;margin-top:4px}.actions-head{text-align:right}.row-actions{display:flex;justify-content:flex-end;gap:5px}.icon-btn{height:32px;width:32px;display:grid;place-items:center;border:1px solid transparent;border-radius:7px;background:transparent;color:#778279}.icon-btn:hover{background:#f0f4ee;border-color:#e1e9df;color:#2d5c39}.icon-btn.danger:hover{background:#fff0ee;border-color:#f4d4cf;color:#b53d30}.empty-state{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:#89948b;gap:10px}.empty-state>strong{font:700 14px Manrope,sans-serif;color:#354238}.empty-state p{max-width:340px;font-size:12px;line-height:1.65;margin:0 0 6px}.empty-icon{height:48px;width:48px;display:grid;place-items:center;border-radius:14px;background:#edf3e9;color:#527b57;margin-bottom:3px}.notice{display:flex;align-items:center;gap:9px;border-radius:8px;padding:11px 13px;font-size:12px;margin-bottom:16px}.notice.success{background:#edf7ed;color:#2d6b3c;border:1px solid #d5ead6}.notice.error{background:#fff0ee;color:#9d3027;border:1px solid #f3d5d0}.notice-close{margin-left:auto;border:0;background:transparent;color:inherit;display:grid;place-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14201891;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.modal{width:min(680px,100%);background:#fff;border-radius:15px;box-shadow:0 22px 80px #0003;max-height:calc(100vh - 40px);overflow-y:auto}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:24px 25px 20px;border-bottom:1px solid #edf0ed}.modal-header h2{font:800 21px Manrope,sans-serif;margin:6px 0}.modal-header p{font-size:12px;color:#838d84;margin:0}.client-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;padding:22px 25px 25px}.client-form label,.stack-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:#4b584e}.client-form input,.client-form textarea,.stack-form input{width:100%;border:1px solid #dfe5df;border-radius:8px;padding:11px 12px;outline:0;color:#28332b;background:#fff;font-size:12px;font-weight:400;transition:border .12s,box-shadow .12s}.client-form input:focus,.client-form textarea:focus,.stack-form input:focus{border-color:#83a88b;box-shadow:0 0 0 3px #6e9c761c}.client-form input::placeholder,.client-form textarea::placeholder,.stack-form input::placeholder{color:#a7afa8}.client-form textarea{resize:vertical;min-height:85px}.wide-field{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.coming-card{margin-top:22px;border:1px solid #e4e9e4;background:#fff;border-radius:12px;padding:55px 25px;text-align:center}.coming-icon{height:52px;width:52px;border-radius:15px;background:#eaf2e4;color:#3e7049;display:grid;place-items:center;margin:0 auto 15px}.coming-card h2{font:700 17px Manrope,sans-serif;margin:0 0 9px}.coming-card p{max-width:460px;margin:0 auto;color:#7c877e;font-size:12px;line-height:1.8}.auth-page,.setup-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(ellipse at top left,#e5eddf,#f5f7f5 45%,#f5f7f5)}.auth-card,.setup-card{width:min(440px,100%);background:#fff;border:1px solid #e3e9e3;border-radius:17px;padding:28px;box-shadow:0 15px 45px #263d2a0b}.auth-card .brand,.setup-card .brand{padding:0 0 25px}.auth-intro{margin-bottom:22px;text-align:center}.auth-intro h1{font-size:25px}.stack-form{display:grid;gap:16px}.auth-foot{margin:18px 0 0;color:#89938b;font-size:10px;line-height:1.6;text-align:center}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:10px;color:#68776b;font-size:13px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.setup-card{width:min(650px,100%);padding:32px}.setup-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:6px;background:#edf3e9;color:#4a714e;font-size:9px;font-weight:700;letter-spacing:1px;margin-bottom:13px}.setup-card h1{font-size:27px}.setup-card ol{padding-left:22px;display:grid;gap:12px;margin:23px 0;color:#4b584e;font-size:12px;line-height:1.65}.setup-card li::marker{color:#507a53;font-weight:700}.setup-card code,.setup-warning code{font-family:ui-monospace,monospace;background:#f0f3f0;border-radius:4px;padding:2px 5px;color:#38533c;font-size:11px}.setup-card kbd{background:#f0f3f0;border:1px solid #dfe5df;border-radius:4px;padding:2px 5px;font-size:10px}.setup-warning{display:flex;align-items:flex-start;gap:10px;padding:13px;border-radius:8px;background:#fff8e9;border:1px solid #f2e3bd;color:#785c20;font-size:11px;line-height:1.7}.setup-warning svg{flex-shrink:0;margin-top:2px}.setup-footer{display:flex;flex-wrap:wrap;gap:14px;border-top:1px solid #edf0ed;padding-top:18px;margin-top:20px;color:#7b877d;font-size:10px}.setup-footer span{display:flex;align-items:center;gap:6px}@media(max-width:950px){.sidebar{width:215px}.main-area{margin-left:215px}.page-content{padding:28px 22px}.topbar{padding:0 22px}.table-toolbar{align-items:flex-start;flex-direction:column}.search-box{width:100%}}@media(max-width:680px){.sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;min-height:82px;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:#17251d;display:block}.sidebar>.brand,.sidebar-caption,.sidebar-bottom{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;height:100%;align-items:center}.nav-item{flex-direction:column;justify-content:center;gap:5px;padding:9px 2px;font-size:9px;line-height:1.25;border-radius:8px;min-width:0;min-height:62px}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-count{display:none}.main-area{margin-left:0;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}.topbar{height:57px;padding:0 16px}.desktop-label{display:none}.page-content{padding:25px 14px calc(45px + env(safe-area-inset-bottom,0px))}.page-heading{align-items:flex-start;flex-direction:column;gap:17px}.page-heading h1{font-size:27px}.page-heading>.primary-btn{width:100%}.stats-row{gap:9px}.stat-card{padding:13px 11px;gap:9px}.stat-icon{height:34px;width:34px}.stat-card strong{font-size:20px}.stat-card span{font-size:10px}.table-toolbar{padding:17px 14px}.table-scroll{margin:0}.client-form{grid-template-columns:1fr;padding:19px 18px 20px;gap:14px}.wide-field{grid-column:auto}.modal-header{padding:20px 18px 17px}.modal{max-height:calc(100vh - 24px)}.modal-backdrop{padding:12px}.modal-actions{grid-column:auto}.auth-card,.setup-card{padding:22px}.setup-card h1{font-size:23px}}.client-form .field-help{font-size:10px;font-weight:400;color:#758176;line-height:1.45}.dashboard-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:22px}.dashboard-stat{background:#fff;border:1px solid #e4e9e4;border-radius:12px;padding:17px;min-width:0;box-shadow:0 2px 7px #233b2704}.dashboard-stat-icon{height:38px;width:38px;display:grid;place-items:center;border-radius:10px;background:#eaf2e4;color:#3e7049;margin-bottom:14px}.dashboard-stat-icon.warning{background:#fff2db;color:#9b6a18}.dashboard-stat-icon.paid{background:#e4f3e6;color:#2f7841}.dashboard-stat>span{display:block;color:#7d887e;font-size:11px;line-height:1.4;margin-bottom:6px}.dashboard-stat>strong{display:block;font:800 21px Manrope,sans-serif;letter-spacing:-.6px;color:#203126;overflow-wrap:anywhere}.dashboard-stat>small{display:block;font-size:10px;color:#8a948b;line-height:1.5;margin-top:7px}.dashboard-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:22px}.shortcut-card{display:flex;align-items:center;gap:12px;text-align:left;padding:16px;border:1px solid #dfe7dc;background:#fff;border-radius:11px;color:#386244;transition:background .12s,border .12s}.shortcut-card:hover{background:#f6faf4;border-color:#bfd3b8}.shortcut-card>span{display:flex;flex-direction:column;gap:4px;min-width:0}.shortcut-card strong{font-size:12px;color:#26372b}.shortcut-card small{font-size:10px;color:#79857b;line-height:1.35}.dashboard-recent{margin-top:8px}.dashboard-recent .table-toolbar{align-items:center}.dashboard-recent td small{display:block;color:#8a948b;margin-top:5px;white-space:normal;max-width:360px}.finance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.payment-pill.is-pending{color:#8b601a;background:#fff2db}.payment-pill.is-paid{color:#27713d;background:#e3f3e6}.finance-invoice-state{display:inline-flex;align-items:center;gap:5px;color:#2e7945;font-size:11px;max-width:220px;white-space:normal;overflow-wrap:anywhere}.muted-label{color:#8a948b;font-size:11px}.table-result-count{font-size:11px;color:#7f8a81;white-space:nowrap}.finance-note{margin:14px 2px;color:#7b877d;font-size:11px;line-height:1.6}@media(max-width:1150px){.dashboard-stats,.dashboard-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.sidebar nav{grid-template-columns:repeat(5,minmax(0,1fr))}.nav-item{font-size:9px}.nav-item svg{width:20px;height:20px}.dashboard-stats,.finance-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-stat{padding:13px}.dashboard-stat>strong{font-size:18px}.dashboard-shortcuts{grid-template-columns:1fr}.dashboard-recent .table-toolbar{align-items:flex-start}.finance-stats .dashboard-stat:last-child{grid-column:1/-1}}.visit-modal{width:min(900px,calc(100vw - 28px));max-height:92vh;overflow-y:auto}.visit-total-preview{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;background:#f0f5ef;border:1px solid #d9e6d7;border-radius:12px;padding:15px;color:#294b31}.visit-total-preview strong{font-size:17px}.invoice-upload{border:1px dashed #b9c9b7;background:#fafcf9;border-radius:12px;padding:15px}.invoice-upload label{display:flex;flex-direction:column;gap:9px;font-weight:650}.invoice-upload input[type=file]{padding:12px;background:#fff;border:1px solid #dce3da;border-radius:8px;max-width:100%}.invoice-upload small{display:block;color:#6d786d;margin-top:8px}.attached-file{display:flex;align-items:center;gap:6px;color:#315b3d;overflow-wrap:anywhere}.text-btn{border:0;background:transparent;color:#315b3d;text-decoration:underline;cursor:pointer;font:inherit}.action-wrap{flex-wrap:wrap;min-width:125px}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f5eddc;color:#795c20;font-size:12px;font-weight:700}.status-pill.done{background:#e1f2e5;color:#27623a}@media(max-width:700px){.visit-total-preview{flex-direction:column}.visit-modal{padding:18px}.action-wrap{gap:4px}}.signature-panel{border:1px solid #d8e4d5;background:#f9fbf8;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.signature-panel h3{margin:0;color:#244d31;font-size:16px}.signature-panel p{margin:0;color:#6d786d;font-size:12px;line-height:1.5}.signature-pad-wrap{border:1px solid #cbd8c9;border-radius:8px;background:#fff;overflow:hidden}.signature-canvas{display:block;width:100%;height:150px;touch-action:none;cursor:crosshair}.signature-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.signature-actions small,.signature-saved{color:#68766b;font-size:12px}.monthly-close-card{padding:22px}.monthly-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0;padding:16px;background:#f0f5ef;border:1px solid #d9e6d7;border-radius:12px}.monthly-summary div{display:flex;flex-direction:column;gap:6px}.monthly-summary span{font-size:12px;color:#69766b}.monthly-summary strong{font-size:22px;color:#244d31}.monthly-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:20px}.monthly-file-label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:650;min-width:230px;flex:1}.monthly-file-label input{padding:10px;border:1px solid #dce3da;border-radius:8px;background:#fff;max-width:100%}.empty-hint{color:#6d786d;padding:14px 0}@media(max-width:700px){.monthly-summary{grid-template-columns:1fr}.monthly-actions{align-items:stretch}.monthly-actions button{width:100%}.signature-canvas{height:130px}}.time-summary{display:flex;flex-direction:column;gap:5px;background:#f1f5ef;border:1px solid #d7e5d1;border-radius:10px;padding:12px 14px;color:#244d30}.time-summary small{color:#647568}.parts-panel{border:1px solid #d8e4d5;background:#f9fbf8;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:14px}.parts-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.parts-heading h3{margin:0;color:#244d31;font-size:16px}.parts-heading p{margin:5px 0 0;color:#6d786d;font-size:12px}.part-row{display:grid;grid-template-columns:minmax(160px,2fr) minmax(90px,.7fr) minmax(130px,1fr) auto;gap:12px;align-items:end;background:#fff;border:1px solid #e0e8dd;border-radius:9px;padding:12px}.part-row label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650}.part-row input{min-width:0;width:100%}.part-subtotal{display:flex;flex-direction:column;gap:5px;min-width:90px;font-size:12px;color:#315b3d}.remove-part{font-size:11px;text-align:left}.parts-total{display:flex;justify-content:flex-end;gap:8px;font-size:14px;color:#244d31;padding-top:4px}@media(max-width:700px){.part-row{grid-template-columns:1fr 1fr}.part-row label:first-child{grid-column:1/-1}.part-subtotal{grid-column:1/-1;flex-direction:row;align-items:center;gap:8px}.remove-part{margin-left:auto}}.monthly-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.saved-close-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px;padding:14px 16px;border:1px solid #d9e6d7;border-radius:10px;background:#f7faf6}.saved-close-row>div{display:flex;align-items:center;gap:10px;color:#285638}.saved-close-row>div span{display:flex;flex-direction:column;gap:4px}.saved-close-row small{display:block;color:#69766b;font-size:12px}.share-monthly{align-items:center;border-top:1px solid #e6ebe4;padding-top:16px}.share-monthly small{flex:1;min-width:220px;color:#69766b}@media(max-width:900px){.monthly-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.monthly-summary{grid-template-columns:1fr}.saved-close-row{align-items:flex-start}.saved-close-row .secondary-btn{width:100%;overflow-wrap:anywhere;white-space:normal}}.share-fallback-preview{margin-top:14px;padding:14px 16px;border:1px solid #d9e6d7;border-radius:10px;background:#f7faf6;color:#2c3b2f}.share-fallback-preview p{white-space:pre-line;line-height:1.55;margin:9px 0 13px}.share-fallback-preview .secondary-btn{display:inline-flex;align-items:center;gap:7px}.finance-chart-card{background:var(--card,#fff);border:1px solid var(--border,#e4e9e3);border-radius:16px;padding:22px;margin:22px 0;box-shadow:0 2px 8px #192d1909;min-width:0}.finance-chart-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.finance-chart-heading h2{display:flex;align-items:center;gap:9px;margin:6px 0;font-size:20px}.finance-chart-heading p{margin:0;color:var(--muted,#68736a);font-size:13px}.finance-chart-filters{background:var(--surface,#f7f9f6);border:1px solid var(--border,#e4e9e3);border-radius:12px;padding:16px;margin-top:20px;display:grid;gap:18px}.finance-filter-group{display:flex;flex-direction:column;gap:8px;min-width:0}.finance-filter-group>label,.finance-chart-type-row>span{font-size:12px;font-weight:750;color:var(--text,#26352a)}.finance-metric-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-items:stretch}.finance-chart-filters .finance-check-option{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:9px;padding:11px 12px;border:1px solid var(--border,#dfe6dc);border-radius:9px;background:var(--card,#fff);font-size:13px;line-height:1.35;cursor:pointer;min-width:0;width:100%;box-sizing:border-box;overflow:hidden;color:var(--text,#26352a);font-weight:500}.finance-chart-filters .finance-check-option input{accent-color:#21834a;width:16px!important;height:16px;flex:0 0 16px!important;margin:0;min-width:16px}.finance-color-dot,.finance-chart-legend i,.finance-chart-total i,.finance-pie-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.finance-metric-label{display:block;min-width:0;flex:1;overflow-wrap:anywhere;white-space:normal}.finance-filter-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.finance-filter-group input,.finance-filter-group select{width:100%;min-width:0;padding:10px 11px;border:1px solid var(--border,#d9e1d7);border-radius:8px;background:var(--card,#fff);color:var(--text,#26352a);font:inherit;font-size:13px}.finance-chart-type-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.finance-chart-type-options{display:flex;gap:7px;flex-wrap:wrap}.finance-chart-type-options button{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid var(--border,#d9e1d7);border-radius:8px;background:var(--card,#fff);color:var(--text,#26352a);font:inherit;font-size:13px;cursor:pointer}.finance-chart-type-options button.is-selected{border-color:#21834a;background:#eaf5ec;color:#176235;font-weight:750}.finance-chart-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:20px 0}.finance-chart-total{padding:13px;border:1px solid var(--border,#e4e9e3);border-radius:10px;min-width:0}.finance-chart-total span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted,#68736a)}.finance-chart-total strong{display:block;margin-top:7px;font-size:16px;overflow-wrap:anywhere}.finance-plot{height:300px;display:flex;gap:10px;margin:10px 0 18px;min-width:0}.finance-y-axis{display:flex;flex-direction:column;justify-content:space-between;padding:0 0 29px;font-size:10px;color:var(--muted,#68736a);text-align:right;min-width:35px}.finance-plot-area{position:relative;display:flex;align-items:stretch;justify-content:space-around;gap:5px;flex:1;min-width:0;padding-bottom:30px}.finance-gridline{position:absolute;left:0;right:0;border-top:1px dashed var(--border,#dfe6dc);pointer-events:none}.finance-gridline.top{top:0}.finance-gridline.middle{top:50%}.finance-gridline.bottom{bottom:30px}.finance-plot-group{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;flex:1;min-width:0;height:calc(100% - 30px);padding-bottom:0}.finance-bar{width:min(24px,35%);min-width:2px;border-radius:4px 4px 0 0;align-self:flex-end;transition:height .2s}.finance-plot-group small{position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%);font-size:10px;color:var(--muted,#68736a);white-space:nowrap}.finance-plot-area.is-line .finance-plot-group{height:calc(100% - 30px)}.finance-line-svg{position:absolute;z-index:2;top:0;right:0;bottom:30px;left:0;width:100%;height:calc(100% - 30px);overflow:visible;pointer-events:none}.finance-line-point{position:absolute;width:7px;height:7px;border:1px solid white;border-radius:50%;transform:translate(-50%,50%);z-index:3}.finance-chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 18px}.finance-chart-legend span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted,#68736a)}.finance-pie-layout{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;padding:15px 0 24px}.finance-pie{width:210px;height:210px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.05)}.finance-pie-legend{display:grid;gap:12px;min-width:190px;max-width:100%}.finance-pie-legend>div,.finance-pie-legend>div span{display:flex;align-items:center;gap:8px}.finance-pie-legend>div{justify-content:space-between;gap:18px;font-size:12px}.finance-pie-legend strong{font-size:12px;white-space:nowrap}.finance-note{font-size:12px;line-height:1.6;color:var(--muted,#68736a)}.finance-chart-card .finance-note{margin-bottom:0}@media(max-width:760px){.finance-chart-card{padding:15px}.finance-metric-options,.finance-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-plot{height:250px}.finance-chart-total strong{font-size:14px}}@media(max-width:420px){.finance-metric-options,.finance-filter-row{grid-template-columns:1fr}.finance-chart-type-row{align-items:flex-start;flex-direction:column}.finance-chart-type-options{width:100%}.finance-chart-type-options button{flex:1;justify-content:center;padding:9px 6px}.finance-pie{width:170px;height:170px}}.quote-form{margin-bottom:22px;padding:22px}.quote-item{display:grid;grid-template-columns:125px minmax(180px,1fr) 90px 145px auto 36px;gap:12px;align-items:end;padding:14px 0;border-bottom:1px solid var(--border, #e2e8e3)}.quote-item label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted, #66736a)}.quote-item input,.quote-item select{width:100%;min-width:0}.quote-line-total{white-space:nowrap;padding-bottom:12px}.quote-total-preview{display:flex;justify-content:flex-end;align-items:center;gap:20px;padding:18px 0;font-weight:600}.quote-total-preview strong{color:#28623e;font-size:24px}.form-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.notice.error{color:#8c2525;background:#fff1f0;border:1px solid #f2c7c4;padding:12px;border-radius:10px;display:flex;gap:8px;margin-bottom:14px}.notice.success{color:#245a35;background:#eef8f0;border:1px solid #cce8d2;padding:12px;border-radius:10px;display:flex;gap:8px;margin-bottom:14px}@media(max-width:900px){.quote-item{grid-template-columns:1fr 1fr;align-items:stretch}.quote-item .quote-description{grid-column:1 / -1}.quote-line-total{padding:8px 0}}@media print{.sidebar,.topbar,.page-heading,.quote-form,.table-card,.nav-item{display:none!important}}.privacy-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d8e1d6;background:#fff;color:#285638;border-radius:10px;padding:8px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.privacy-toggle:hover{background:#f1f7ef}.privacy-toggle:focus-visible{outline:2px solid #8dc64a;outline-offset:2px}.values-hidden .dashboard-stat strong,.values-hidden .finance-chart-total strong,.values-hidden .monthly-summary strong,.values-hidden .summary strong,.values-hidden .total,.values-hidden .finance-stats .dashboard-stat strong,.values-hidden td strong,.values-hidden .finance-pie-legend strong{filter:blur(7px);-webkit-user-select:none;user-select:none}@media(max-width:760px){.privacy-toggle span{display:none}.privacy-toggle{padding:8px}.topbar{gap:8px}.topbar-right{gap:7px}.logout-top-btn{padding:7px 8px;font-size:11px}.avatar{height:30px;width:30px;flex-shrink:0}}.logout-top-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #d8e1d6;background:#fff;color:#285638;border-radius:10px;padding:8px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.logout-top-btn:hover{background:#f1f7ef}.logout-top-btn:focus-visible{outline:2px solid #8dc64a;outline-offset:2px}@media(max-width:680px){.sidebar{height:auto!important;min-height:0!important;padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px))!important;box-sizing:border-box}.sidebar nav{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;grid-auto-rows:minmax(60px,auto);gap:5px 4px!important;align-items:stretch!important;justify-items:stretch;height:auto!important}.sidebar .nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;align-self:stretch;gap:5px;min-width:0;min-height:60px;height:100%;box-sizing:border-box;padding:7px 3px;font-size:10px;line-height:1.2;overflow-wrap:anywhere}.sidebar .nav-item svg{display:block;width:22px;height:22px;flex:0 0 22px;margin:0 auto}.main-area{padding-bottom:calc(170px + env(safe-area-inset-bottom,0px))!important}.page-content{padding-bottom:calc(35px + env(safe-area-inset-bottom,0px))!important}}.topbar{position:sticky}.topbar-brand-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:clamp(125px,18vw,205px);max-height:48px;object-fit:contain;pointer-events:none}.user-display-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;color:#2d5638;font-size:12px;font-weight:700;background:#e1eadb;border-radius:999px;padding:9px 12px;flex-shrink:1}@media(max-width:760px){.topbar-brand-logo{width:clamp(86px,25vw,120px);max-height:38px}.topbar-right{gap:6px}.user-display-name{max-width:78px;font-size:10px;padding:8px 7px}}@media(max-width:430px){.breadcrumb{display:none}.topbar{justify-content:flex-end}.topbar-brand-logo{left:12px;transform:translateY(-50%);width:clamp(94px,29vw,116px)}.topbar-right{margin-left:auto}.logout-top-btn{gap:4px;padding:7px 6px}.user-display-name{max-width:74px}}.topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"crumb logo actions";align-items:center;column-gap:20px;height:76px;min-height:76px;padding:10px 24px;position:sticky;top:0;overflow:visible}.topbar>.breadcrumb{grid-area:crumb;min-width:0;justify-self:start;white-space:nowrap}.topbar>.topbar-brand-logo{grid-area:logo;position:static;left:auto;top:auto;transform:none;display:block;width:clamp(135px,15vw,190px);max-width:100%;max-height:52px;height:auto;object-fit:contain;justify-self:center;pointer-events:none}.topbar>.topbar-right{grid-area:actions;min-width:0;justify-self:end;display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}.topbar-right .desktop-label{display:none}.topbar-right .logout-top-btn,.topbar-right .privacy-toggle,.topbar-right .user-display-name{flex-shrink:0}.topbar-right .user-display-name{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.topbar{column-gap:12px;padding-left:16px;padding-right:16px}.topbar>.topbar-brand-logo{width:clamp(120px,18vw,165px)}.topbar>.topbar-right{gap:7px}}@media(max-width:680px){.topbar{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo logo" "crumb actions";row-gap:10px;column-gap:8px;padding:12px 12px 11px}.topbar>.topbar-brand-logo{width:150px;max-width:48vw;max-height:42px;justify-self:center}.topbar>.breadcrumb{align-self:center;font-size:11px;overflow:hidden;text-overflow:ellipsis;max-width:100%}.topbar>.topbar-right{gap:6px;align-self:center}.topbar-right .logout-top-btn{padding:7px 8px;font-size:11px}.topbar-right .privacy-toggle{padding:7px}.topbar-right .privacy-toggle span{display:none}.topbar-right .user-display-name{max-width:82px;font-size:10px;padding:8px}}@media(max-width:380px){.topbar{padding-left:8px;padding-right:8px}.topbar>.topbar-brand-logo{width:138px}.topbar-right{gap:4px!important}.topbar-right .user-display-name{max-width:65px;padding:7px 6px}}
