:root{color:#17303a;font-synthesis:none;--ink:#17303a;--navy:#122b36;--navy-deep:#0c202a;--muted:#73818a;--line:#e4e8e6;--yellow:#f3cd42;--green:#2c775e;--radius:14px;--shadow:0 4px 24px #17303a06;background:#f5f5f1;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}.print-only{display:none}.analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:20px;display:grid}.analytics-row{margin:0 0 16px}.analytics-row>div:first-child{color:#7c9298;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px;font-size:10px;display:flex}.analytics-row strong{color:#4a6c78;font-size:10px;font-weight:650}.analytics-bar{background:#f0f3ed;border-radius:5px;height:4px;overflow:hidden}.analytics-bar span{background:#98b1a3;border-radius:5px;height:100%;display:block}.payment-summary{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=960px){.analytics-grid{grid-template-columns:1fr}}@media (width<=540px){.summary-grid.payment-summary{grid-template-columns:1fr}}.print-brand{border-bottom:2px solid #17303a;justify-content:space-between;gap:20px;margin-bottom:25px;padding-bottom:20px;display:flex}.print-brand strong{font-size:19px}.print-brand span{font-size:12px}@media print{body:has(>.print-only)>:not(.print-only){display:none!important}body>.print-only{color:#17303a;padding:28px;display:block!important}}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible{outline:3px solid #ba961f}button{color:inherit}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Manrope,DM Sans,sans-serif}button svg{flex-shrink:0}::selection{color:#122b36;background:#f5db75}.app-shell{grid-template-columns:238px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--navy);color:#fff;z-index:40;flex-direction:column;width:238px;padding:30px 19px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{border-bottom:1px solid #ffffff13;align-items:center;gap:11px;padding:0 12px 29px;display:flex}.brand-mark{background:var(--yellow);width:41px;height:41px;color:var(--navy-deep);letter-spacing:-1.5px;border-radius:10px;place-items:center;font-family:Manrope,sans-serif;font-size:18px;font-weight:800;display:grid}.brand-name{letter-spacing:3px;font-family:Manrope,sans-serif;font-size:19px;font-weight:800}.brand-caption{letter-spacing:1.5px;color:#a5b7bc;text-transform:uppercase;margin-top:3px;font-size:8px}.nav-label{letter-spacing:1.8px;color:#698590;padding:25px 14px 12px;font-size:9px;font-weight:700}.nav-item{text-align:left;color:#b3c5cb;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;width:100%;margin:3px 0;padding:13px 14px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{color:#fff;background:#ffffff08}.nav-item.active{color:var(--yellow);background:#ffffff09}.nav-item.active:before{content:"";background:var(--yellow);border-radius:0 3px 3px 0;width:3px;height:24px;position:absolute;left:0}.nav-item .nav-count{text-align:center;border:1px solid #ffffff14;border-radius:5px;min-width:21px;margin-left:auto;padding:2px;font-size:10px}.sidebar-bottom{margin-top:auto}.sidebar-note{color:#87a1ab;border:1px solid #ffffff10;border-radius:10px;margin:16px 0;padding:16px 13px;font-size:11px;line-height:1.6}.sidebar-note strong{color:#cedbdf;margin-bottom:3px;font-size:12px;font-weight:500;display:block}.sidebar-profile{border-top:1px solid #ffffff13;align-items:center;gap:9px;padding:20px 8px 0;display:flex}.avatar{color:#dce6e7;background:#284550;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:11px;font-weight:700;display:grid}.profile-name{text-overflow:ellipsis;max-width:124px;font-size:12px;font-weight:600;overflow:hidden}.profile-role{color:#90a7b0;margin-top:3px;font-size:10px}.logout{color:#87a0aa;background:0 0;border:0;margin-left:auto;padding:4px}.app-main{grid-column:2;min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:15px;height:76px;padding:0 40px;display:flex}.breadcrumb{color:#8d999f;align-items:center;gap:10px;font-size:11px;display:flex}.breadcrumb strong{color:#47606c;font-weight:500}.topbar-right{align-items:center;gap:18px;margin-left:auto;display:flex}.sync-pill{color:#698174;align-items:center;gap:6px;font-size:10px;display:flex}.sync-dot{background:#68a98b;border-radius:50%;width:6px;height:6px}.sync-dot.offline{background:#b48e35}.today{color:#8a969d;text-transform:capitalize;border-left:1px solid var(--line);padding-left:18px;font-size:10px}.mobile-menu{display:none}.page{max-width:1660px;margin:auto;padding:33px 40px 42px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;color:#7a8c91;margin-bottom:8px;font-size:9px;font-weight:650}.page-heading h1{letter-spacing:-.9px;font-size:27px;font-weight:750;line-height:1.3}.page-heading p{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.6}.heading-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.button{background:var(--navy);color:#fff;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 16px;font-size:12px;font-weight:600;line-height:1.3;text-decoration:none;transition:background .14s,box-shadow .14s;display:inline-flex}.button:hover:not(:disabled){background:#204454}.button.primary{background:var(--yellow);color:#18333e}.button.primary:hover:not(:disabled){background:#edc22b}.button.secondary{color:#516772;background:#fff;border-color:#dfe5e4}.button.secondary:hover:not(:disabled){background:#f6f8f7}.button.ghost{color:#5a737c;background:0 0}.button.danger{background:#a44040}.button.small{min-height:32px;padding:7px 11px;font-size:11px}.button.full{width:100%}.icon-button{color:#789098;background:0 0;border:0;border-radius:7px;place-items:center;padding:7px;display:inline-grid}.icon-button:hover:not(:disabled){color:var(--ink);background:#eaf0ed}.text-button{color:#4a7785;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:11px;font-weight:600;display:inline-flex}.text-button:hover{text-decoration:underline}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;overflow:hidden}.card-header{align-items:center;gap:10px;padding:21px 22px 17px;display:flex}.card-header h2{letter-spacing:-.2px;font-size:13px;font-weight:750}.card-header p{color:var(--muted);margin-top:5px;font-size:10px}.card-header .right{margin-left:auto}.card-body{padding:0 22px 22px}.muted{color:var(--muted)}.preview-banner{color:#745d1e;text-align:center;background:#fff4cd;border-bottom:1px solid #ecdfb0;padding:9px 20px;font-size:11px}.preview-banner strong{font-weight:700}.notice{color:#466c7b;background:#f0f6f8;border:1px solid #dce6eb;border-radius:9px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.notice svg{flex-shrink:0;margin-top:1px}.notice-warning{color:#8c6c20;background:#fff8e8;border-color:#eddfb7}.notice-error{color:#984b45;background:#fff0ee;border-color:#ecd1ce}.notice-success{color:#397253;background:#edf7f0;border-color:#d0e6d8}.page>.notice{margin-bottom:20px}.spinner{align-items:center;gap:8px;font-size:12px;display:inline-flex}.spinner svg{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{place-items:center;min-height:70dvh;display:grid}.empty-state{text-align:center;padding:45px 22px}.empty-icon{color:#8da09f;background:#f2f5f3;border-radius:14px;margin-bottom:14px;padding:14px;display:inline-flex}.empty-state h3{margin-bottom:8px;font-size:14px;font-weight:700}.empty-state p{max-width:370px;color:var(--muted);margin:0 auto 18px;font-size:12px;line-height:1.7}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px;display:grid}.metric-card{padding:20px 22px;position:relative;overflow:hidden}.metric-card.highlight{background:var(--navy);border-color:var(--navy);color:#fff}.metric-top{color:#83939b;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;display:flex}.metric-icon{color:#7c9492;background:#f2f5f2;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.highlight .metric-top{color:#aac1c9}.highlight .metric-icon{color:var(--yellow);background:#ffffff0c}.metric-value{letter-spacing:-1px;margin-top:13px;font-family:Manrope,sans-serif;font-size:29px;font-weight:750;line-height:1.3}.metric-value.money{font-size:25px}.metric-caption{color:#8d9c9f;align-items:center;gap:5px;margin-top:10px;font-size:10px;display:flex}.highlight .metric-caption{color:#a6bcbf}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:20px;display:grid}.pipeline{align-items:flex-end;gap:7px;height:210px;padding:2px 22px 24px;display:flex}.pipeline-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;height:100%;display:flex}.pipeline-value{color:#56717b;font-size:11px;font-weight:700}.pipeline-bar{background:#d5e3df;border-radius:6px 6px 3px 3px;width:100%;max-width:50px;min-height:5px}.pipeline-col:nth-child(3n+1) .pipeline-bar{background:#244855}.pipeline-col:nth-child(3n+2) .pipeline-bar{background:#e9ca62}.pipeline-label{color:#819299;text-align:center;max-width:70px;height:28px;font-size:8px;line-height:1.4}.alerts-list{flex-direction:column;gap:11px;padding:0 20px 17px;display:flex}.alert-item{background:#fcf9f0;border:1px solid #f0e8d3;border-radius:9px;align-items:center;gap:11px;padding:11px;display:flex}.alert-item svg{color:#b09240;flex-shrink:0}.alert-item-main{flex:1;min-width:0}.alert-item-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;display:block;overflow:hidden}.alert-item-main span{color:#927f50;margin-top:4px;font-size:10px;display:block}.alert-days{color:#937525;white-space:nowrap;font-size:10px}.list-card{margin-top:20px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:11px}.data-table th{color:#8a999f;letter-spacing:.6px;text-transform:uppercase;background:#f9faf8;border-top:1px solid #eef1ed;border-bottom:1px solid #eef1ed;padding:12px 20px;font-size:9px;font-weight:600}.data-table td{vertical-align:middle;border-bottom:1px solid #eff2ee;padding:15px 20px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafbf8}.data-table .cell-main{color:#35505c;font-size:11px;font-weight:600;display:block}.data-table .cell-sub{color:#91a0a4;text-overflow:ellipsis;max-width:280px;margin-top:5px;font-size:10px;display:block;overflow:hidden}.sku{color:#758e96;font-variant-numeric:tabular-nums;font-size:10px}.table-link{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.table-footer{color:#8a9b9f;border-top:1px solid #eff2ee;justify-content:space-between;padding:13px 20px;font-size:10px;display:flex}.badge{white-space:nowrap;color:#648177;background:#f0f3f2;border-radius:5px;align-items:center;gap:5px;padding:5px 8px;font-size:9px;font-weight:600;display:inline-flex}.badge.stage-solicitud{color:#6e8493;background:#edf1f4}.badge.stage-relevamiento{color:#5c859c;background:#ebf2f5}.badge.stage-presupuesto{color:#aa8932;background:#fff4d7}.badge.stage-aprobcliente{color:#b49142;background:#faf0dd}.badge.stage-programacion{color:#8873a6;background:#eeeafa}.badge.stage-ejecucion{color:#4a8468;background:#e8f3ec}.badge.stage-aprobavance{color:#4d8599;background:#e7f1f5}.badge.stage-cierre{color:#81908a;background:#eff1ef}.badge.urgent{color:#a87846;background:#fff0e7}.badge.good{color:#4f8061;background:#e9f3ec}.badge.pending{color:#aa8231;background:#fff3dc}.progress-track{background:#edf1ed;border-radius:8px;width:100%;min-width:70px;max-width:115px;height:5px;overflow:hidden}.progress-fill{background:#7e9e8c;border-radius:8px;height:100%}.progress-cell{align-items:center;gap:10px;display:flex}.progress-cell span{color:#84978f;font-size:9px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:19px;display:flex}.search{flex:1;min-width:190px;max-width:330px;position:relative}.search svg{color:#8b9da4;position:absolute;top:12px;left:13px}.search input{color:#41616d;background:#fff;border:1px solid #e0e6e4;border-radius:8px;width:100%;padding:11px 13px 11px 38px;font-size:11px}.search input::placeholder{color:#97a4a6}.toolbar select{color:#6a808a;background:#fff;border:1px solid #e0e6e4;border-radius:8px;max-width:220px;padding:10px 12px;font-size:11px}.toolbar-spacer{margin-left:auto}.segmented{background:#fff;border:1px solid #dfe5e2;border-radius:8px;gap:2px;padding:3px;display:flex}.segmented button{color:#8a9d9f;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;padding:7px 10px;font-size:10px;display:flex}.segmented button.active{color:#395964;background:#eff3ef}.kanban{scrollbar-width:thin;gap:13px;padding-bottom:15px;display:flex;overflow-x:auto}.kanban-column{background:#ecefeb;border-radius:11px;flex:0 0 229px;min-height:400px;padding:12px}.kanban-column.drag-over{outline-offset:-2px;background:#f5efdc;outline:2px dashed #c5ad5c}.kanban-heading{color:#60767c;align-items:center;gap:6px;padding:1px 2px 13px;font-size:10px;font-weight:650;display:flex}.kanban-heading .count{color:#7e8f8d;background:#dfe5df;border-radius:5px;margin-left:auto;padding:3px 6px;font-size:9px}.stage-dot{background:#9cacaf;border-radius:50%;width:6px;height:6px}.kanban-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e0e7df;border-radius:9px;width:100%;margin-bottom:10px;padding:14px;display:block;box-shadow:0 2px 7px #17303a04}.kanban-card:hover{border-color:#b8c9c3;box-shadow:0 3px 9px #17303a08}.kanban-card[draggable=true]{cursor:grab}.kanban-card-top{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.kanban-card h3{margin-bottom:4px;font-size:12px;font-weight:750;line-height:1.5}.kanban-card p{color:#8a9b9f;font-size:10px;line-height:1.6}.kanban-meta{color:#839894;border-top:1px solid #eff2ed;align-items:center;gap:6px;margin-top:13px;padding-top:10px;font-size:9px;display:flex}.kanban-empty{text-align:center;color:#a1ada7;padding:25px 8px;font-size:10px}.back-button{margin-bottom:20px}.work-heading{margin-bottom:22px}.work-heading h1{font-size:25px}.work-meta{color:#82969d;flex-wrap:wrap;align-items:center;gap:10px;margin-top:11px;font-size:11px;display:flex}.work-meta .sku{font-size:11px}.work-steps{border:1px solid var(--line);background:#fff;border-radius:11px;gap:0;margin-bottom:24px;padding:16px 18px;display:flex;overflow:auto}.work-step{color:#a5b1b2;flex:1;align-items:center;gap:7px;min-width:86px;font-size:9px;display:flex;position:relative}.work-step:after{content:"";background:#e9eeea;flex:1;height:1px;margin:0 9px}.work-step:last-child:after{display:none}.step-number{color:#8a9d94;background:#f0f3ef;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;font-size:8px;display:grid}.work-step.done{color:#7c968b}.work-step.done .step-number{color:#719482;background:#e6f1e9}.work-step.current{color:#3b5965;font-weight:650}.work-step.current .step-number{background:var(--yellow);color:#6d5f20}.tabs{border-bottom:1px solid #e0e6df;gap:3px;margin:0 0 23px;display:flex;overflow:auto}.tab{white-space:nowrap;color:#8c9da3;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:11px 17px 15px;font-size:11px;display:flex}.tab.active{color:#244550;border-color:var(--navy);font-weight:650}.detail-grid{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:21px;display:grid}.detail-grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{flex-direction:column;gap:20px;display:flex}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 20px;display:grid}.info-label{color:#8e9fa5;text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px;font-size:9px}.info-value{white-space:pre-wrap;color:#415c68;overflow-wrap:anywhere;font-size:12px;line-height:1.6}.info-value.large{font-size:14px;font-weight:600}.divider{background:#edf1eb;height:1px;margin:22px 0}.section-copy{color:#657e89;white-space:pre-wrap;font-size:12px;line-height:1.8}.section-copy.empty{color:#9aa9aa;font-style:italic}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;display:grid}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field.span-2{grid-column:1/-1}.field-label{color:#526b74;font-size:11px;font-weight:500}.field input,.field select,.field textarea{color:#35515d;background:#fff;border:1px solid #dfe6e0;border-radius:7px;width:100%;padding:10px 11px;font-size:12px;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{outline-offset:0;border-color:#8fa798;outline:2px solid #dce8df}.field input:disabled,.field select:disabled,.field textarea:disabled{color:#8c9c98;background:#f6f8f5}.field textarea{resize:vertical;min-height:100px}.field-hint{color:#94a19f;font-size:10px;line-height:1.5}.field input[type=checkbox]{width:auto}.form-actions{border-top:1px solid #eef1ed;justify-content:flex-end;align-items:center;gap:9px;margin-top:20px;padding-top:21px;display:flex}.check-field{color:#56717a;align-items:flex-start;gap:9px;font-size:12px;line-height:1.6;display:flex}.check-field input{accent-color:var(--navy);margin:3px 0 0}.inline-form{align-items:flex-end;gap:8px;display:flex}.inline-form>.field{flex:1}.task-list{flex-direction:column;gap:8px;display:flex}.task-item{border:1px solid #e7ece5;border-radius:8px;align-items:center;gap:10px;padding:11px 12px;display:flex}.task-item input[type=checkbox]{accent-color:#4c7f62;flex-shrink:0;width:15px;height:15px}.task-item-text{color:#526a74;flex:1;font-size:11px;line-height:1.6}.task-item.done .task-item-text{color:#91a194;text-decoration:line-through}.task-item .badge{font-size:8px}.section-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.quote-total{background:#f4f7f1;border-radius:9px;justify-content:space-between;align-items:center;margin-top:18px;padding:19px;display:flex}.quote-total span{color:#6e837b;font-size:11px}.quote-total strong{color:#244737;font-family:Manrope,sans-serif;font-size:22px;font-weight:750}.quote-line-editor{border-bottom:1px solid #eef1eb;grid-template-columns:minmax(110px,1fr) 80px 80px 100px 29px;align-items:end;gap:8px;padding:10px 0;display:grid}.quote-line-editor .field-label{font-size:9px}.quote-line-editor.labor{grid-template-columns:minmax(110px,1fr) 120px 29px}.quote-line-editor input{padding:8px;font-size:11px}.small-section-title{margin:18px 0 10px;font-size:12px;font-weight:700}.document-item{border:1px solid #e4eae1;border-radius:10px;align-items:center;gap:13px;margin-bottom:10px;padding:16px;display:flex}.document-icon{color:#6b8672;background:#eef3ee;border-radius:8px;flex-shrink:0;place-items:center;width:38px;height:42px;display:grid}.document-info{flex:1;min-width:0}.document-info strong{color:#48626d;font-size:12px;font-weight:600;display:block}.document-info span{color:#8e9e9f;margin-top:5px;font-size:10px;display:block}.timeline{padding:0 2px;position:relative}.timeline-item{gap:13px;padding-bottom:24px;display:flex;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:#e4ebe3;width:1px;position:absolute;top:26px;bottom:0;left:11px}.timeline-item:last-child:before{display:none}.timeline-dot{color:#7c9a87;background:#edf3ed;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;display:grid;position:relative}.timeline-body{flex:1;min-width:0;padding-top:3px}.timeline-body h3{color:#526f79;font-size:11px;font-weight:650}.timeline-body p{color:#85969b;white-space:pre-wrap;margin-top:6px;font-size:11px;line-height:1.7}.timeline-body time{color:#a0adaa;margin-top:5px;font-size:9px;display:block}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.file-tile{border:1px solid #e4eae2;border-radius:10px;text-decoration:none;overflow:hidden}.file-preview{color:#9dad9f;background:#edf2eb;place-items:center;height:135px;display:grid}.file-preview img,.file-preview video{object-fit:cover;width:100%;height:100%}.file-caption{color:#6b8187;overflow-wrap:anywhere;padding:10px;font-size:10px;line-height:1.5}.upload-zone{text-align:center;color:#7a9480;background:#f9fbf6;border:1px dashed #cbd8c9;border-radius:9px;flex-direction:column;align-items:center;gap:10px;padding:25px 15px;font-size:11px;display:flex}.upload-zone input{max-width:100%;font-size:10px}.ai-panel{background:#fffcf0;border:1px solid #e5dcc0;border-radius:11px;margin-top:17px;padding:18px}.ai-panel h3{color:#857338;align-items:center;gap:7px;margin-bottom:12px;font-size:12px;display:flex}.ai-panel p,.ai-panel li{color:#7b755c;white-space:pre-wrap;font-size:11px;line-height:1.8}.ai-panel ul{margin:8px 0;padding-left:19px}.calendar-head{border-bottom:1px solid #eef1e9;justify-content:space-between;align-items:center;padding:19px 21px;display:flex}.calendar-head h3{text-transform:capitalize;font-size:14px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{text-align:center;color:#82968a;text-transform:uppercase;background:#f8faf5;border-bottom:1px solid #e7ece2;padding:12px 7px;font-size:9px}.calendar-day{color:#6b8276;border-bottom:1px solid #ecf0e7;border-right:1px solid #ecf0e7;min-height:118px;padding:10px;font-size:10px}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f9faf7}.calendar-day.today span.day-number{background:var(--navy);color:#fff;border-radius:50%;padding:5px 7px}.calendar-payment{text-align:left;color:#708561;background:#edf3e7;border:0;border-left:2px solid #bca;border-radius:3px;width:100%;margin-top:8px;padding:7px;font-size:8px;display:block;overflow:hidden}.calendar-payment strong{margin-top:3px;font-size:9px;display:block}.dialog{width:min(560px,100vw - 32px);max-height:90dvh;color:var(--ink);background:#fff;border:0;border-radius:17px;padding:0;position:fixed;box-shadow:0 25px 100px #102b3640}.dialog-wide{width:min(780px,100vw - 32px)}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c263870}.dialog-header{border-bottom:1px solid #e9eee6;justify-content:space-between;align-items:flex-start;gap:14px;padding:25px 27px 20px;display:flex}.dialog-header h2{letter-spacing:-.5px;font-size:20px;font-weight:750}.dialog-header p{color:#8b9c9e;margin-top:7px;font-size:11px;line-height:1.7}.dialog-body{flex-direction:column;gap:18px;padding:23px 27px;display:flex}.dialog-actions{background:#fafbf8;border-top:1px solid #e9eee6;justify-content:flex-end;align-items:center;gap:9px;padding:19px 27px;display:flex}.toast{z-index:100;color:#e5f0e7;background:#173c30;border-radius:11px;align-items:center;gap:10px;max-width:calc(100vw - 35px);padding:15px 20px;font-size:12px;display:flex;position:fixed;bottom:24px;left:calc(50% + 119px);transform:translate(-50%);box-shadow:0 8px 40px #102b3630}.login-screen{grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-story{background:var(--navy);color:#fff;flex-direction:column;padding:65px 70px;display:flex;position:relative;overflow:hidden}.login-story .brand{border:0;padding:0}.login-story-main{z-index:1;max-width:450px;margin:auto 0;padding:45px 0;position:relative}.login-story h1{letter-spacing:-2.5px;font-size:48px;font-weight:700;line-height:1.2}.login-story h1 span{color:var(--yellow)}.login-story p{color:#a0b8c1;max-width:340px;margin-top:24px;font-size:14px;line-height:1.9}.login-story small{color:#698995;letter-spacing:.3px;font-size:10px}.login-pattern{border:1px solid #ffffff0a;border-radius:38px;width:310px;height:310px;position:absolute;bottom:70px;right:-90px;transform:rotate(-22deg);box-shadow:0 0 0 48px #ffffff03,0 0 0 96px #ffffff02}.login-form-area{background:#f7f8f3;justify-content:center;align-items:center;padding:45px;display:flex}.login-form{width:100%;max-width:335px}.login-form .eyebrow{margin-bottom:16px}.login-form h2{letter-spacing:-1px;font-size:29px;font-weight:750}.login-form>p{color:#8a9c9e;margin:13px 0 32px;font-size:12px;line-height:1.8}.login-fields{flex-direction:column;gap:19px;display:flex}.login-footnote{color:#99a8a5;text-align:center;margin-top:23px;font-size:10px;line-height:1.8}.login-form .notice{margin:0 0 18px}.mobile-overlay{display:none}.compact-note{color:#8c9c9d;margin-top:12px;font-size:10px;line-height:1.7}.break-word{overflow-wrap:anywhere}.amount{font-variant-numeric:tabular-nums}.filter-chip{color:#829477;background:#fff;border:1px solid #e2e8de;border-radius:20px;align-items:center;gap:5px;padding:7px 10px;font-size:10px;display:inline-flex}.filter-chip.active{color:#476e4f;background:#e9f0e5;border-color:#ccddc5}@media (width>=1600px){.page{padding:39px 49px}.topbar{padding:0 49px}.summary-grid{gap:20px}.metric-card{padding:24px}}@media (width<=1180px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{width:205px;padding-left:12px;padding-right:12px}.page{padding:28px}.topbar{padding:0 28px}.summary-grid{gap:12px}.metric-card{padding:17px}.metric-value{font-size:25px}.metric-value.money{font-size:21px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr)}.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr)}.toast{left:calc(50% + 102px)}}@media (width<=960px){.dashboard-grid,.detail-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:flex-start}.heading-actions{justify-content:flex-end}.today{display:none}.login-story{padding:40px}.login-story h1{font-size:37px}.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.app-shell{display:block}.sidebar{width:235px;transition:transform .18s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-overlay{z-index:39;background:#0c26385a;border:0;display:block;position:fixed;inset:0}.mobile-menu{display:inline-grid}.topbar{gap:7px;height:61px;padding:0 16px}.breadcrumb{font-size:10px}.topbar-right{gap:7px}.sync-pill{font-size:9px}.page{padding:25px 17px}.page-heading{flex-wrap:wrap;gap:14px;margin-bottom:22px}.page-heading h1{font-size:25px}.page-heading p{font-size:11px}.heading-actions{justify-content:flex-start}.summary-grid{gap:10px;margin-bottom:17px}.metric-card{padding:15px}.metric-icon{border-radius:7px;width:25px;height:25px}.metric-top{font-size:10px}.metric-value{font-size:25px}.metric-value.money{font-size:20px}.metric-caption{font-size:9px;line-height:1.5}.dashboard-grid{gap:17px}.card-header{padding:18px}.card-body{padding:0 18px 18px}.pipeline{gap:5px;padding-left:16px;padding-right:16px}.pipeline-label{font-size:7px}.data-table td{padding:13px 16px}.data-table th{padding:11px 16px}.toolbar{gap:9px}.search{max-width:none}.toolbar select{flex:1;max-width:175px}.toolbar-spacer{margin-left:0}.segmented{margin-left:auto}.detail-grid.equal{grid-template-columns:1fr}.work-steps{gap:3px;padding:13px}.work-step{min-width:97px}.tabs{margin-left:-17px;margin-right:-17px;padding-left:10px}.tab{gap:5px;padding:10px 11px 13px;font-size:10px}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.form-actions{flex-wrap:wrap}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.file-preview{height:110px}.dialog-header{padding:22px 21px 17px}.dialog-body{padding:21px}.dialog-actions{flex-wrap:wrap;padding:17px 21px}.quote-line-editor{grid-template-columns:minmax(120px,1fr) 70px 29px;gap:7px;padding:13px 0}.quote-line-editor .field:first-child{grid-column:1/-1}.quote-line-editor.labor{grid-template-columns:minmax(130px,1fr) 100px 29px}.quote-line-editor.labor .field:first-child{grid-column:auto}.toast{font-size:11px;bottom:15px;left:50%}.login-screen{grid-template-columns:1fr}.login-story{min-height:auto;padding:29px}.login-story-main{max-width:none;padding:39px 0 20px}.login-story h1{letter-spacing:-1.4px;font-size:33px}.login-story p{margin-top:16px;font-size:12px}.login-story small{display:none}.login-form-area{padding:35px 28px 50px}.login-form{max-width:380px}.login-form h2{font-size:25px}.calendar-day{min-height:91px;padding:7px 3px}.calendar-payment{padding:4px;font-size:7px}.calendar-payment strong,.calendar-weekday{font-size:8px}.preview-banner{font-size:10px;line-height:1.5}.work-heading h1{font-size:23px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.sidebar,.topbar,.toolbar,.heading-actions,.tabs,.work-steps,.back-button,.preview-banner,.no-print{display:none!important}.app-shell{display:block}.page{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid;border:1px solid #ccc}.detail-grid{display:block}.stack{gap:15px}.card{margin-bottom:15px}.app-main{display:block}.page-heading h1{font-size:21px}body{background:#fff}}
