:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.72}a{color:inherit;text-decoration:none}.auth-page{background-color:#0000;background-image:linear-gradient(#ffffffd1,#f5f7faf0),url("data:image/svg+xml,%3Csvg width='1200' height='800' viewBox='0 0 1200 800' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='1200' height='800' fill='%23e8edf3'/%3E%3Cg fill='none' stroke='%23c4ccd6' stroke-width='2'%3E%3Cpath d='M120 150h320v160H120zM520 120h260v210H520zM850 180h230v170H850zM180 430h240v180H180zM520 440h300v150H520z'/%3E%3Cpath d='M440 230h80M780 225h70M420 520h100'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:#fffffff5;border:1px solid #d8dee7;border-radius:8px;width:min(100%,420px);padding:28px;box-shadow:0 20px 50px #1926341f}.brand-block,.sidebar-brand,.topbar,.user-menu{align-items:center;display:flex}.brand-block{gap:14px;margin-bottom:26px}.brand-mark{color:#fff;background:#17324d;border-radius:7px;place-items:center;width:44px;height:44px;font-size:.78rem;font-weight:800;display:grid}.eyebrow{color:#687789;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}h1{margin:0;font-size:1.45rem;line-height:1.2}.login-form{gap:16px;display:grid}.login-form label{color:#344254;gap:7px;font-size:.9rem;font-weight:700;display:grid}.login-form input{color:#17202a;background:#fff;border:1px solid #c8d0db;border-radius:6px;width:100%;padding:11px 12px}input,select,textarea{color:#17202a;background:#fff;border:1px solid #c8d0db;border-radius:6px}input:focus,select:focus,textarea:focus{border-color:#1f6feb;outline:3px solid #1f6feb2e}.login-form button,.primary-button,.user-menu button{color:#fff;background:#1f6feb;font-weight:800}.login-form button{min-height:44px}.secondary-button{color:#253448;background:#fff;border:1px solid #c8d0db;font-weight:800}.danger-button{color:#b42318;background:#fff1f0;min-width:36px;min-height:36px}.icon-button{width:36px;height:36px;padding:0}.form-error{color:#9a271f;background:#fff1f0;border-radius:6px;margin:0;padding:10px 12px}.form-success{color:#067647;background:#ecfdf3;border-radius:6px;margin:0;padding:10px 12px}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #d9e0e8;padding:20px}.sidebar-brand{gap:12px;margin-bottom:28px}.side-nav{gap:6px;display:grid}.side-nav a{color:#243447;border-radius:6px;align-items:center;gap:9px;padding:10px 12px;font-weight:700;display:flex}.side-nav a.router-link-active{color:#0f55c5;background:#eaf2ff}.nav-section{color:#7a8797;text-transform:uppercase;margin:18px 0 4px;font-size:.72rem;font-weight:900}.workspace{padding:24px}.topbar{justify-content:space-between;gap:16px;margin-bottom:24px}.user-menu{color:#344254;gap:12px;font-weight:700}.user-menu button{min-height:36px;padding:0 14px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.summary-grid article{background:#fff;border:1px solid #d9e0e8;border-radius:8px;min-height:116px;padding:18px}.summary-grid span{color:#687789;margin-bottom:14px;font-size:.85rem;font-weight:800;display:block}.summary-grid strong{font-size:1.8rem}.summary-grid small,.dashboard-revenue-grid small{color:#687789;margin-top:8px;font-size:.82rem;display:block}.dashboard-page{gap:16px;display:grid}.dashboard-toolbar{grid-template-columns:180px 180px auto auto;align-items:start;gap:10px;padding-top:18px;display:grid}.dashboard-toolbar .toolbar-field{gap:0;min-width:0;line-height:1.2;position:relative}.dashboard-toolbar .toolbar-field>span{color:#344254;font-size:.82rem;font-weight:500;line-height:1;position:absolute;bottom:calc(100% + 5px);left:0}.dashboard-toolbar .toolbar-input,.dashboard-toolbar button{width:100%;height:40px}.dashboard-toolbar button{width:auto;font-weight:500}.dashboard-summary-grid article,.dashboard-revenue-grid article,.dashboard-attention-panel{background:#fff;border:1px solid #d9e0e8;border-radius:8px}.dashboard-summary-grid article,.dashboard-revenue-grid article{align-content:start;display:grid}.dashboard-revenue-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.dashboard-revenue-grid article{min-height:96px;padding:16px 18px}.dashboard-revenue-grid span{color:#687789;margin-bottom:10px;font-size:.82rem;font-weight:500;display:block}.dashboard-revenue-grid strong{color:#172033;font-size:1.2rem;font-weight:500}.metric-label{cursor:help;outline:none;width:fit-content;max-width:100%;min-height:20px;position:relative;margin-bottom:14px!important;display:block!important}.metric-label:after{z-index:20;color:#fff;content:attr(data-tooltip);white-space:normal;background:#172033;border:1px solid #d9e0e8;border-radius:7px;width:max-content;max-width:260px;padding:8px 10px;font-size:.76rem;font-weight:500;line-height:1.35;display:none;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 10px 24px #17203329}.metric-label:hover:after,.metric-label:focus-visible:after{display:block}.dashboard-attention-panel{gap:12px;padding:16px;display:grid}.attention-list{gap:10px;display:grid}.attention-item{border:1px solid #e2e7ef;border-left:4px solid #c8d0db;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.attention-item.is-critical{border-left-color:#e5484d}.attention-item.is-warning{border-left-color:#f5a524}.attention-item strong,.attention-item span{display:block}.attention-item>div:first-child strong{color:#172033;font-size:.94rem;font-weight:500}.attention-item>div:first-child span{color:#687789;margin-top:4px;font-size:.82rem;line-height:1.35}.attention-value{text-align:right;min-width:120px}.attention-value strong{color:#172033;font-size:1.1rem;font-weight:500}.attention-value span{color:#536173;margin-top:4px;font-size:.8rem}.empty-state{background:#fff;border:1px solid #d9e0e8;border-radius:8px;padding:28px}.empty-state h2{margin:0 0 8px;font-size:1.1rem}.empty-state p{color:#687789;margin:0}.kanban-page,.quotation-page,.activity-page,.project-page{gap:16px;display:grid}.toolbar-field{color:#344254;gap:6px;font-size:.82rem;font-weight:500;display:grid}.kanban-page .toolbar{align-items:end;gap:10px}.kanban-page .toolbar-field{line-height:1.2}.kanban-page .toolbar button,.kanban-page .toolbar-select{height:40px}.kanban-page .toolbar .primary-button,.kanban-page .toolbar .secondary-button{font-weight:500}.kanban-help{display:inline-flex;position:relative}.kanban-tooltip{z-index:20;color:#fff;opacity:0;pointer-events:none;visibility:hidden;background:#17202a;border:1px solid #d9e0e8;border-radius:6px;width:280px;max-width:min(280px,100vw - 48px);padding:9px 10px;font-size:.78rem;font-weight:500;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;top:calc(100% + 9px);right:0;transform:translateY(-4px);box-shadow:0 12px 30px #17202a2e}.kanban-help:hover .kanban-tooltip,.kanban-help:focus-within .kanban-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.kanban-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.kanban-layout.is-create-open{grid-template-columns:minmax(0,1fr) 340px}.kanban-layout.is-detail-open{grid-template-columns:minmax(0,1fr) 360px}.kanban-layout.is-create-open.is-detail-open{grid-template-columns:minmax(0,1fr) 340px 360px}.kanban-board-shell{gap:8px;min-width:0;display:grid}.kanban-top-scroll{scrollbar-color:#8f959d #eef2f7;border-radius:999px;height:14px;overflow:auto hidden}.kanban-top-scroll-track{height:1px}.kanban-board{scrollbar-width:none;grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.kanban-board::-webkit-scrollbar{display:none}.kanban-column{background:#f9fafc;border:1px solid #d9e0e8;border-radius:8px;align-content:start;gap:10px;min-width:0;min-height:420px;padding:12px;display:grid}.kanban-column header,.kanban-card dl,.line-row,.detail-block{display:flex}.kanban-column header{color:#253448;justify-content:space-between;align-items:center;font-weight:500}.kanban-column header span{color:#0f55c5;text-align:center;background:#eaf2ff;border-radius:999px;min-width:26px;padding:3px 8px;font-size:.78rem;font-weight:500}.kanban-card{box-sizing:border-box;background:#fff;border:1px solid #d9e0e8;border-radius:8px;align-self:start;gap:7px;min-width:0;padding:10px;display:grid;position:relative}.kanban-card.is-close-soon{background:#fff8db;border-color:#f0d26a}.kanban-card.is-close-due{background:#fff1f4;border-color:#f2a3b3}.card-heading{min-width:0;display:block}.card-title{color:#0f55c5;text-align:left;background:0 0;justify-content:flex-start;min-width:0;padding:0;font-weight:500;line-height:1.25}.card-title:hover,.card-title:focus-visible{color:#0b46a6;text-underline-offset:3px;text-decoration:underline}.kanban-card p,.muted-text{color:#687789;margin:0;font-size:.86rem;line-height:1.28}.expected-close{color:#536173;white-space:normal;flex-wrap:wrap;align-items:center;gap:5px;font-size:.72rem;line-height:1.25;display:flex}.card-pipeline{color:#536173;font-size:.72rem;line-height:1.2}.kanban-card dl{gap:8px;margin:0}.kanban-card dl div{flex:1;min-width:0}.kanban-card dt{color:#7a8797;text-transform:uppercase;font-size:.68rem;font-weight:500;line-height:1.15}.kanban-card dd{color:#243447;margin:0;font-size:.86rem;font-weight:500;line-height:1.2}.status-mini-badge{z-index:2;border-radius:999px;padding:2px 7px;font-size:.68rem;line-height:1;position:absolute;top:8px;right:8px}.status-mini-badge.is-open{color:#18713b;background:#e7f7ed}.status-mini-badge.is-close{color:#536173;background:#eef2f6}.kanban-card label,.nested-form label,.opportunity-edit-form label,.pipeline-change-form label{color:#344254;gap:5px;font-size:.82rem;font-weight:500;line-height:1.2;display:grid}.kanban-card select,.opportunity-edit-form input,.opportunity-edit-form select,.opportunity-edit-form textarea,.pipeline-change-form select,.pipeline-change-form textarea,.nested-form input,.nested-form select{width:100%;padding:9px 10px}.kanban-card select{padding:7px 9px}.column-empty{color:#8a96a6;text-align:center;place-items:center;min-height:330px;margin:0;font-size:.86rem;display:grid}.kanban-side{gap:14px;display:grid}.quotation-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:18px;display:grid}.quotation-main,.quotation-create,.quotation-table{min-width:0}.quotation-main{gap:14px;display:grid}.quotation-create,.quotation-table{background:#fff;border:1px solid #d9e0e8;border-radius:8px;padding:16px}.quotation-toolbar .toolbar-field{min-width:min(100%,360px)}.opportunity-combobox,.field-combobox{position:relative}.opportunity-combobox label,.field-combobox label{color:#344254;gap:5px;font-size:.82rem;font-weight:500;display:grid}.opportunity-combobox .toolbar-input,.field-combobox .toolbar-input{width:100%;height:40px}.autocomplete-menu{z-index:20;background:#fff;border:1px solid #c8d0db;border-radius:8px;width:min(520px,100vw - 48px);max-height:280px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 12px 30px #0f172a1f}.autocomplete-menu button{color:#172033;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:stretch;place-items:start;width:100%;height:auto;padding:9px 10px;display:grid}.autocomplete-menu button:hover,.autocomplete-menu button:focus-visible{background:#f4f8ff}.autocomplete-menu span{text-align:left;width:100%;font-size:.9rem;font-weight:500}.autocomplete-menu small,.autocomplete-menu p{color:#687789;text-align:left;width:100%;margin:0;font-size:.78rem}.quotation-toolbar{align-items:end;gap:10px}.quotation-toolbar .toolbar-field{line-height:1.2}.quotation-toolbar>button,.quotation-toolbar .toolbar-select,.quotation-toolbar .toolbar-input{height:40px}.quotation-toolbar .secondary-button{font-weight:500}.quotation-form{gap:12px;display:grid}.quotation-form label{color:#344254;gap:5px;font-size:.82rem;font-weight:500;line-height:1.2;display:grid}.quotation-form input,.quotation-form select,.quotation-form textarea{width:100%;padding:9px 10px}.document-url-field span{color:#687789;font-size:.74rem;line-height:1.3}.document-link{color:#0f55c5;align-items:center;gap:5px;margin-top:5px;font-size:.78rem;font-weight:500;display:inline-flex}.document-link:hover,.document-link:focus-visible{text-underline-offset:3px;text-decoration:underline}.quotation-status-actions{flex-wrap:wrap;gap:8px;display:flex}.quotation-status-actions button{min-height:34px;padding:0 11px;font-weight:500}.lock-message{color:#536173;background:#f9fbfd;border:1px solid #e6ebf1;border-radius:6px;margin:0;padding:10px 12px;font-size:.82rem;line-height:1.35}.lock-message.compact{padding:8px 10px;font-size:.78rem}.project-create-card,.project-create-form{gap:10px;display:grid}.project-create-card{background:#fbfcfe;border:1px solid #d9e0e8;border-radius:8px;padding:12px}.project-create-card span{color:#0f55c5;text-transform:uppercase;font-size:.72rem;line-height:1.2;display:block}.project-create-card strong{color:#172033;margin-top:3px;font-size:.92rem;font-weight:500;line-height:1.25;display:block}.project-create-card p{color:#687789;margin:5px 0 0;font-size:.78rem;line-height:1.35}.project-create-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.project-create-card dt{color:#7a8797;text-transform:uppercase;font-size:.66rem}.project-create-card dd{color:#243447;margin:2px 0 0;font-size:.84rem;line-height:1.25}.project-create-form label{color:#344254;gap:5px;font-size:.82rem;font-weight:500;line-height:1.2;display:grid}.project-create-form input,.project-create-form textarea{width:100%;padding:9px 10px}.project-action-hint{color:#536173;background:#f7f9fc;border:1px solid #d9e0e8;border-radius:6px;margin:0;padding:9px 10px;font-size:.78rem;line-height:1.35}.project-action-hint.is-warning{color:#7a4b00;background:#fff8db;border-color:#f0d26a}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.inline-check{align-items:center;gap:8px!important;display:flex!important}.inline-check input{width:auto}.quotation-table{overflow-x:auto}.quotation-table table{border-collapse:collapse;width:100%;min-width:760px}.quotation-table th,.quotation-table td{color:#344254;text-align:left;vertical-align:middle;border-bottom:1px solid #e6ebf1;padding:10px 12px;font-size:.84rem}.quotation-table th{color:#536173;text-transform:uppercase;font-size:.72rem;font-weight:500}.quotation-table tr.selected td{background:#f4f8ff}.row-actions{white-space:nowrap;gap:8px;display:flex}.row-actions button{min-height:34px;padding:0 10px;font-weight:500}.quotation-side{gap:14px;display:grid}.empty-state-inline{color:#687789;text-align:center;place-items:center;min-height:160px;font-size:.9rem;display:grid}.empty-state-inline.compact{border:1px dashed #d9e0e8;border-radius:6px;min-height:58px;padding:10px}.kanban-create-panel{align-self:start}.kanban-page .edit-panel label,.kanban-page .panel-title h2,.kanban-page strong{font-weight:500}.detail-block{gap:8px;display:grid}.detail-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.detail-name,.line-name{color:#172033;font-weight:500;display:block}.status-badge{color:#536173;background:#eef2f6;border-radius:999px;flex:none;padding:4px 9px;font-size:.74rem;font-weight:500}.invoice-status-badge.is-paid{color:#18713b;background:#e7f7ed}.invoice-status-badge.is-void{color:#b4232b;background:#ffecee}.invoice-status-badge.is-draft,.invoice-status-badge.is-sent{color:#536173;background:#eef2f6}.recurring-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.recurring-summary-card{background:#fff;border:1px solid #d9e0e8;border-radius:8px;padding:13px}.recurring-summary-card span{color:#536173;font-size:.78rem;line-height:1.2;display:block}.recurring-summary-card strong{color:#172033;margin-top:5px;font-size:1.05rem;font-weight:500;line-height:1.25;display:block}.recurring-summary-card p{color:#687789;margin:5px 0 0;font-size:.8rem;line-height:1.35}.recurring-summary-card.is-empty{border-style:dashed}.recurring-manual-form{margin-bottom:14px}.readonly-amount{background:#f9fafc;border:1px solid #d9e0e8;border-radius:8px;gap:5px;padding:12px;display:grid}.readonly-amount span{color:#687789;font-size:.78rem;line-height:1.2}.readonly-amount strong{color:#172033;font-size:.95rem;font-weight:500}.recurring-status-badge.is-active{color:#18713b;background:#e7f7ed}.recurring-status-badge.is-pending-project-payment{color:#0b5cad;background:#eef6ff}.recurring-status-badge.is-cancelled{color:#536173;background:#eef2f6}.project-status-badge.is-completed{color:#18713b;background:#e7f7ed}.project-status-badge.is-in-progress,.project-status-badge.is-uat,.project-status-badge.is-go-live,.project-status-badge.is-handover{color:#0b5cad;background:#eef6ff}.project-status-badge.is-cancelled{color:#b4232b;background:#ffecee}.project-status-badge.is-planned{color:#536173;background:#eef2f6}.recurring-cycle-badge.is-upcoming{color:#0b5cad;background:#eef6ff}.recurring-cycle-badge.is-ready-to-invoice{color:#0f55c5;background:#e8f1ff}.recurring-cycle-badge.is-invoiced{color:#9a5b00;background:#fff7e6}.recurring-cycle-badge.is-paid{color:#18713b;background:#e7f7ed}.recurring-cycle-badge.is-skipped,.recurring-cycle-badge.is-cancelled{color:#536173;background:#eef2f6}.project-payment-badge.is-paid{color:#18713b;background:#e7f7ed}.project-payment-badge.is-partial-paid{color:#0b5cad;background:#eef6ff}.project-payment-badge.is-unpaid{color:#536173;background:#eef2f6}.project-status-select{color:#172033;background:#fff;border:1px solid #c8d0db;border-radius:6px;min-width:145px;min-height:34px;padding:0 10px;font-size:.82rem}.detail-block p{color:#687789;margin:0}.opportunity-summary{border-top:1px solid #e6ebf1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding-top:12px;display:grid}.opportunity-summary div{min-width:0}.opportunity-summary dt{color:#7a8797;text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:500}.opportunity-summary dd{color:#243447;overflow-wrap:anywhere;margin:0;font-size:.86rem;line-height:1.35}.line-list,.nested-form,.opportunity-edit-form,.pipeline-change-form{gap:10px;display:grid}.opportunity-edit-form{border-bottom:1px solid #e6ebf1;padding-bottom:12px}.form-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.form-actions.single-action{grid-template-columns:1fr}.pipeline-change-panel{border-top:1px solid #e6ebf1;border-bottom:1px solid #e6ebf1;padding:12px 0}.accepted-quotation-card{background:#f3fbf6;border:1px solid #b8dfc8;border-radius:8px;gap:9px;padding:11px 12px;display:grid}.accepted-quotation-card span{color:#18713b;text-transform:uppercase;font-size:.72rem;line-height:1.2;display:block}.accepted-quotation-card strong{color:#172033;margin-top:3px;font-size:.9rem;font-weight:500;line-height:1.25;display:block}.accepted-quotation-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.accepted-quotation-card dt{color:#7a8797;text-transform:uppercase;font-size:.66rem}.accepted-quotation-card dd{color:#243447;margin:2px 0 0;font-size:.82rem;line-height:1.25}.pipeline-change-panel>.secondary-button{width:100%}.activity-panel,.activity-list,.activity-form{gap:10px;display:grid}.activity-panel{border-bottom:1px solid #e6ebf1;padding-bottom:12px}.activity-item{border:1px solid #e6ebf1;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px;display:flex}.activity-item.is-due-soon{background:#fff8e6;border-color:#f4d17d}.activity-item.is-overdue{background:#fff1f0;border-color:#ffb4ab}.activity-subject{color:#172033;font-size:.86rem;font-weight:500;display:block}.activity-meta{color:#687789;margin-top:3px;font-size:.74rem;line-height:1.25;display:block}.activity-item p{color:#536173;margin:6px 0 0;font-size:.78rem;line-height:1.3}.activity-actions{flex:none;align-content:start;justify-items:end;gap:8px;display:grid}.activity-actions button{min-height:30px;padding:0 10px;font-size:.78rem;font-weight:500}.activity-status{color:#536173;background:#eef2f6;border-radius:999px;justify-content:center;align-items:center;min-width:74px;padding:4px 9px;font-size:.68rem;line-height:1.1;display:inline-flex}.activity-status[data-status=planned]{color:#0f55c5;background:#eaf2ff}.activity-status[data-status=done]{color:#067647;background:#ecfdf3}.activity-status[data-status=cancelled]{color:#667085;background:#f2f4f7}.activity-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.activity-summary article,.activity-list-panel{background:#fff;border:1px solid #d9e0e8;border-radius:8px}.activity-summary article{gap:8px;padding:14px 16px;display:grid}.activity-summary span{color:#687789;text-transform:uppercase;font-size:.78rem}.activity-summary strong{color:#172033;font-size:1.35rem;font-weight:500}.activity-toolbar{grid-template-columns:160px auto auto;align-items:start;gap:10px;padding-top:18px;display:grid}.activity-toolbar .segmented-control{flex:none;min-width:0}.activity-toolbar .toolbar-field{min-width:160px;line-height:1.2}.activity-toolbar button,.activity-toolbar .toolbar-select{height:40px}.activity-status-field{gap:0;position:relative}.activity-status-field>span{color:#344254;font-size:.82rem;font-weight:500;line-height:1;position:absolute;bottom:calc(100% + 5px);left:0}.activity-toolbar .secondary-button,.activity-toolbar .segmented-control button{font-weight:500}.activity-date-buttons{flex:none}.activity-list-panel{gap:10px;padding:14px;display:grid}.project-toolbar{align-items:start;padding-top:18px}.project-toolbar button,.project-toolbar .toolbar-select,.project-toolbar .toolbar-input{height:40px}.toolbar-input{color:#172033;background:#fff;border:1px solid #c8d0db;border-radius:6px;min-width:160px;padding:0 12px;font-size:.9rem}.invoice-toolbar{grid-template-columns:180px 160px 160px auto auto;align-items:start;gap:10px;margin-bottom:18px;padding-top:18px;display:grid}.invoice-toolbar .toolbar-field{gap:0;min-width:0;line-height:1.2;position:relative}.invoice-toolbar .toolbar-field>span{color:#344254;font-size:.82rem;font-weight:500;line-height:1;position:absolute;bottom:calc(100% + 5px);left:0}.invoice-toolbar .toolbar-select,.invoice-toolbar .toolbar-input,.invoice-toolbar button{width:100%;height:40px}.invoice-toolbar button{width:auto;font-weight:500}.invoice-summary{margin-bottom:18px}.recurring-service-toolbar{grid-template-columns:minmax(240px,1.4fr) minmax(150px,1fr) minmax(130px,.8fr) minmax(180px,1fr) auto;align-items:start;gap:10px;margin:8px 0 16px;padding-top:18px;display:grid}.recurring-service-toolbar .toolbar-field{gap:0;min-width:0;line-height:1.2;position:relative}.recurring-service-toolbar .toolbar-field>span{color:#344254;font-size:.82rem;font-weight:500;line-height:1;position:absolute;bottom:calc(100% + 5px);left:0}.recurring-service-toolbar .toolbar-select,.recurring-service-toolbar .toolbar-input,.recurring-service-toolbar button{width:100%;height:40px}.recurring-service-toolbar button{width:auto;font-weight:500}.recurring-cancel-button{white-space:nowrap;align-items:center;gap:6px;min-height:34px;padding:0 10px;display:inline-flex}.recurring-cancel-dialog{width:min(100%,480px)}.invoice-summary article{padding:18px 16px}.invoice-list-panel{padding:18px}.invoice-list-panel table{border-collapse:separate;border-spacing:0;min-width:1120px}.invoice-list-panel th,.invoice-list-panel td{padding:14px 18px}.invoice-list-panel th:first-child,.invoice-list-panel td:first-child{padding-left:22px}.invoice-list-panel th:last-child,.invoice-list-panel td:last-child{padding-right:22px}.project-status-field{gap:0;min-width:180px;position:relative}.project-status-field>span{color:#344254;font-size:.82rem;font-weight:500;line-height:1;position:absolute;bottom:calc(100% + 5px);left:0}.project-list-panel{background:#fff;border:1px solid #d9e0e8;border-radius:8px;padding:14px;overflow-x:auto}.project-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.project-layout.is-detail-open{grid-template-columns:minmax(0,1fr) 420px}.project-list-panel table{min-width:980px}.project-list-panel tr.selected td{background:#f4f8ff}.project-list-panel button{min-height:34px;padding:0 11px;font-weight:500}.project-list-panel td strong{color:#172033;margin-top:3px;font-weight:500;display:block}.project-code{color:#687789;font-size:.74rem;display:block}.project-detail-panel{align-self:start}.project-lifecycle-form{border-top:1px solid #e6ebf1;border-bottom:1px solid #e6ebf1;gap:10px;padding:12px 0;display:grid}.project-lifecycle-form label{color:#344254;gap:6px;font-size:.82rem;font-weight:500;display:grid}.project-lifecycle-form input{min-height:40px}.project-lifecycle-form button{justify-content:center;min-height:38px}.schedule-preset-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.schedule-preset-actions button{min-height:36px;padding:0 10px;font-weight:500}.billing-schedule-form{gap:10px;display:grid}.billing-schedule-row{background:#fff;border:1px solid #e6ebf1;border-radius:8px;gap:9px;padding:10px;display:grid}.billing-schedule-row-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.billing-schedule-row-header span{color:#536173;font-size:.78rem;font-weight:500}.billing-schedule-form label{color:#344254;gap:5px;font-size:.82rem;font-weight:500;line-height:1.2;display:grid}.billing-schedule-form input,.billing-schedule-form select{width:100%;padding:9px 10px}.schedule-invoice-actions{gap:8px;display:grid}.schedule-invoice-actions button{min-height:34px;padding:0 10px;font-weight:500}.schedule-invoice-draft{background:#f0f6ff;border:1px solid #b8d4ff;border-radius:7px;gap:8px;padding:10px;display:grid}.invoice-create-button{width:100%;min-height:38px;box-shadow:0 1px 2px #2563eb2e}.invoice-create-button:hover:not(:disabled),.invoice-create-button:focus-visible:not(:disabled){background:#1f62da}.invoice-link-label{color:#0b5cad;background:#eef6ff;border-radius:999px;align-items:center;min-height:28px;padding:0 9px;font-size:.76rem;display:inline-flex}.confirm-overlay{z-index:40;background:#1720336b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:#fff;border:1px solid #d9e0e8;border-radius:8px;gap:12px;width:min(100%,440px);padding:18px;display:grid;box-shadow:0 18px 48px #1720332e}.confirm-eyebrow{color:#0f55c5;text-transform:uppercase;font-size:.72rem;font-weight:500;line-height:1.2}.confirm-dialog h2{color:#172033;margin:0;font-size:1.05rem;font-weight:500;line-height:1.3}.confirm-dialog p{color:#536173;margin:0;font-size:.88rem;line-height:1.45}.confirm-dialog strong{color:#172033;font-weight:500}.confirm-note{background:#fff8e6;border:1px solid #fde7b2;border-radius:7px;padding:10px}.confirm-field{color:#344254;gap:7px;font-size:.82rem;font-weight:500;display:grid}.confirm-field textarea{resize:vertical;min-height:96px}.confirm-check{color:#344254;align-items:center;gap:9px;font-size:.86rem;line-height:1.35;display:flex}.confirm-check input{width:16px;height:16px}.confirm-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.confirm-actions button{min-height:38px;padding:0 13px}.panel-field{color:#344254;gap:5px;font-size:.82rem;font-weight:500;display:grid}.panel-field select{width:100%;min-height:40px}.annual-preview{background:#f9fbfd;border:1px solid #e0e6ee;border-radius:6px;gap:4px;padding:10px 12px;display:grid}.annual-preview span{color:#687789;font-size:.76rem}.annual-preview strong{color:#243447;font-size:.9rem;font-weight:500}.line-row{border:1px solid #e6ebf1;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px}.line-row span{color:#687789;font-size:.78rem;display:block}.line-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:8px 0 0;display:grid}.line-metrics div{min-width:0}.line-metrics dt{color:#7a8797;text-transform:uppercase;font-size:.66rem;line-height:1.15}.line-metrics dd{color:#243447;overflow-wrap:anywhere;margin:2px 0 0;font-size:.8rem;line-height:1.2}.line-actions{flex:none;gap:8px;display:flex}.user-workspace,.client-layout,.setup-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.client-layout{grid-template-columns:minmax(0,1fr)}.user-workspace,.setup-layout.is-form-open{grid-template-columns:minmax(0,1fr) 340px}.client-layout.is-form-open{grid-template-columns:minmax(0,1fr) 420px}.list-panel,.client-main,.setup-main,.edit-panel{background:#fff;border:1px solid #d9e0e8;border-radius:8px}.list-panel,.client-main,.setup-main{gap:14px;min-width:0;padding:16px;display:grid}.edit-panel{gap:14px;padding:18px;display:grid}.setup-forms,.client-forms{gap:14px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar button,.edit-panel button[type=submit]{min-height:40px;padding:0 14px}.quotation-toolbar{align-items:flex-end}.quotation-toolbar button{align-self:flex-end;height:40px}.segmented-control{flex-wrap:wrap;flex:1;gap:6px;display:flex}.segmented-control button{color:#344254;background:#fff;border:1px solid #c8d0db;min-height:40px;padding:0 12px;font-weight:800}.segmented-control button[aria-selected=true]{color:#0f55c5;background:#eaf2ff;border-color:#1f6feb}.segmented-control .row-count{color:#536173;background:#eef2f6;border-radius:999px;min-width:22px;padding:2px 7px;font-size:.76rem}.client-tab-button{position:relative}.tab-label,.tab-info{align-items:center;display:inline-flex}.tab-info{color:#687789;position:relative}.client-tab-button[aria-selected=true] .tab-info{color:#0f55c5}.tab-tooltip{z-index:20;color:#fff;opacity:0;pointer-events:none;text-align:left;visibility:hidden;white-space:normal;background:#17202a;border:1px solid #d9e0e8;border-radius:6px;width:260px;max-width:min(260px,100vw - 48px);padding:9px 10px;font-size:.78rem;font-weight:600;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%,4px);box-shadow:0 12px 30px #17202a2e}.client-tab-button:hover .tab-tooltip,.client-tab-button:focus-visible .tab-tooltip{opacity:1;visibility:visible;transform:translate(-50%)}.segmented-control button:first-child .tab-tooltip{left:0;transform:translateY(4px)}.segmented-control button:first-child:hover .tab-tooltip,.segmented-control button:first-child:focus-visible .tab-tooltip{transform:translate(0)}.segmented-control button:last-child .tab-tooltip{left:auto;right:0;transform:translateY(4px)}.segmented-control button:last-child:hover .tab-tooltip,.segmented-control button:last-child:focus-visible .tab-tooltip{transform:translate(0)}.search-box{background:#fff;border:1px solid #c8d0db;border-radius:6px;align-items:center;gap:8px;min-width:min(100%,300px);min-height:40px;padding:0 11px;display:flex}.search-box input{border:0;flex:1;min-width:0;min-height:38px;padding:0}.search-box input:focus{outline:0}.toolbar-select{min-height:40px;padding:0 10px}.client-toolbar{grid-template-columns:minmax(220px,1fr) repeat(5,auto);align-items:center;display:grid}.client-toolbar .segmented-control{grid-column:1/-1}.client-toolbar .search-box{min-width:0}.client-toolbar .primary-button,.client-toolbar button[type=submit],.client-toolbar .secondary-button{white-space:nowrap;min-height:40px}.table-wrap{overflow-x:auto}.stage-group-list{gap:14px;display:grid}.stage-group-card{background:#fff;border:1px solid #d9e0e8;border-radius:8px;gap:12px;padding:14px;display:grid}.stage-group-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.stage-group-title,.stage-group-meta{margin:0}.stage-group-title{color:#17202a;font-size:.98rem}.stage-group-meta{color:#687789;margin-top:3px;font-size:.82rem}.stage-group-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.flow-badge{color:#0b57d0;background:#e8f1ff;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.76rem;display:inline-flex}.future-action{white-space:nowrap;min-height:32px;padding:0 10px}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #e6ebf1;padding:11px 10px}th{color:#536173;text-transform:uppercase;font-size:.76rem}.table-actions{gap:8px;display:flex}.table-actions button{min-height:34px;padding:0 11px}.table-action{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;min-height:34px;padding:0 10px;display:inline-flex}.status-pill{color:#344254;background:#eef2f6;border-radius:999px;justify-content:center;min-width:72px;padding:4px 8px;font-size:.76rem;font-weight:800;display:inline-flex}.status-pill[data-status=ACTIVE]{color:#067647;background:#ecfdf3}.status-pill[data-status=INACTIVE]{color:#667085;background:#f2f4f7}.lead-link-pill{border-radius:999px;justify-content:center;min-width:66px;padding:4px 8px;font-size:.74rem;font-weight:900;display:inline-flex}.lead-link-pill[data-link-state=MANUAL]{color:#9a3412;background:#fff7ed}.lead-link-pill[data-link-state=LINKED]{color:#067647;background:#ecfdf3}.pagination-bar,.pagination-bar div,.panel-title{align-items:center;display:flex}.pagination-bar{color:#536173;justify-content:space-between;gap:12px;font-size:.88rem;font-weight:700}.pagination-bar div{gap:10px}.pagination-bar button{min-height:34px;padding:0 12px}.panel-title{justify-content:space-between;gap:10px}.panel-title-actions{align-items:center;gap:8px;display:flex}.panel-title h2{margin:0;font-size:1rem}.edit-panel label{color:#344254;gap:7px;font-size:.88rem;font-weight:800;display:grid}.edit-panel input,.edit-panel select,.edit-panel textarea{width:100%;padding:10px 11px}.edit-panel textarea{resize:vertical}.mode-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mode-toggle button{white-space:normal;min-height:38px;padding:0 10px}.mode-toggle button[aria-pressed=true]{color:#0f55c5;background:#eaf2ff;border-color:#1f6feb}.edit-panel button[type=submit]{color:#fff;background:#1f6feb;font-weight:800}.checkbox-line{align-items:center;gap:9px!important;display:flex!important}.checkbox-line input{width:16px;height:16px}.amount-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=800px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #d9e0e8;border-right:0;padding:14px}.sidebar-brand{margin-bottom:12px}.side-nav{scrollbar-width:thin;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.side-nav a{white-space:nowrap;flex:none;min-height:40px;padding:9px 11px}.nav-section{display:none}.workspace{padding:14px}.topbar{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:18px}.topbar>div:first-child{min-width:0}.user-menu{justify-content:space-between;width:100%}.user-menu span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.user-menu button{flex:none}.summary-grid,.dashboard-revenue-grid{grid-template-columns:1fr}.dashboard-toolbar{grid-template-columns:1fr;gap:14px;padding-top:0}.dashboard-toolbar .toolbar-field{gap:6px;display:grid}.dashboard-toolbar .toolbar-field>span{line-height:1.2;position:static}.dashboard-toolbar button{width:100%}.dashboard-summary-grid article{min-height:0;padding:14px}.summary-grid span,.dashboard-revenue-grid span{margin-bottom:8px;font-size:.78rem}.summary-grid strong{font-size:1.45rem;line-height:1.15}.dashboard-revenue-grid article{min-height:0;padding:14px}.dashboard-revenue-grid strong{font-size:1.12rem;line-height:1.2}.dashboard-summary-grid strong,.dashboard-revenue-grid strong{overflow-wrap:anywhere}.metric-label{min-height:0;margin-bottom:8px!important}.metric-label:after{max-width:min(260px,100vw - 42px);left:0}.dashboard-attention-panel{padding:14px}.attention-item{flex-direction:column;align-items:flex-start;gap:8px}.attention-value{text-align:left;min-width:0}.activity-summary,.activity-toolbar,.client-toolbar,.user-workspace,.client-layout,.setup-layout,.project-layout.is-detail-open,.quotation-layout{grid-template-columns:1fr}.stage-group-header{flex-direction:column;align-items:flex-start}.stage-group-actions{justify-content:flex-start}.amount-grid,.form-grid,.kanban-layout{grid-template-columns:1fr}.pagination-bar{flex-direction:column;align-items:flex-start}}
