.global-search{position:relative;flex:1;max-width:440px}.gs-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:16px;pointer-events:none}.gs-input{width:100%;border:1.5px solid #e2e8f0;border-radius:10px;padding:9px 14px 9px 38px;font-size:14px;font-family:inherit;background:#fff;color:#1a1a2e}.gs-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.gs-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #eef1f6;border-radius:12px;box-shadow:0 12px 32px #0f172a1f;overflow:hidden;z-index:100;max-height:380px;overflow-y:auto}.gs-empty{padding:16px;font-size:13px;color:#94a3b8;text-align:center}.gs-result{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer}.gs-result.active{background:#f1f5f9}.gs-result-icon{font-size:15px;color:#64748b;width:18px;text-align:center}.gs-result-text{flex:1;min-width:0}.gs-result-label{font-size:14px;font-weight:600;color:#1a1a2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-result-sub{font-size:12px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-result-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#f1f5f9;padding:2px 7px;border-radius:99px}@media(max-width:768px){.global-search{max-width:none}.gs-input{font-size:16px}}:root{--sidebar-w: 200px;--brand: #1a1a2e;--brand-accent: #4f8ef7}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f7f8fa;color:#1a1a2e}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--brand);display:flex;flex-direction:column;padding:0;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}.brand-mark{display:block;font-size:20px;font-weight:700;color:var(--brand-accent);letter-spacing:.12em}.brand-sub{font-size:11px;color:#fff6;letter-spacing:.08em;text-transform:uppercase}.sidebar-nav{flex:1;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:#fff9;text-decoration:none;font-size:14px;font-weight:500;transition:all .15s}.nav-item:hover{background:#ffffff0f;color:#ffffffe6}.nav-item.active{background:#4f8ef72e;color:var(--brand-accent)}.nav-icon{font-size:16px;width:20px;text-align:center}.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08)}.main-wrap{margin-left:var(--sidebar-w);flex:1;min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;padding:12px 32px;background:#f7f8fad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #eef1f6}.main-content{flex:1}.nav-toggle{display:none;background:none;border:none;font-size:22px;color:#1a1a2e;cursor:pointer;padding:4px 8px;line-height:1;border-radius:8px}.nav-toggle:hover{background:#eef1f6}.sidebar-backdrop{display:none}@media(max-width:768px){.nav-toggle{display:block}.sidebar{transform:translate(-100%);transition:transform .22s ease;width:260px;box-shadow:2px 0 24px #0003}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:99}.main-wrap{margin-left:0}.topbar{padding:10px 16px}}.skeleton{display:inline-block;background:linear-gradient(90deg,#eef1f6 25%,#f5f7fa,#eef1f6 75%);background-size:200% 100%;animation:skeleton-shimmer 1.3s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-rows{background:#fff;border:1px solid #eef1f6;border-radius:12px;overflow:hidden}.skeleton-row{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #f1f5f9}.skeleton-row:last-child{border-bottom:none}.skeleton-row-text{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.skeleton-card{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px}.state-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;text-align:center}.state-emoji{font-size:38px}.state-title{font-size:16px;font-weight:600;color:#1a1a2e}.state-sub{font-size:13px;color:#94a3b8;max-width:360px}.state-btn{margin-top:8px;background:#4f8ef7;color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.state-btn:hover{background:#3b7de8}.dashboard-page{max-width:1100px;margin:0 auto;padding:28px 32px}.dashboard-header{margin-bottom:22px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:22px}.metric-card{background:#fff;border:1px solid #eef1f6;border-radius:14px;padding:20px;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}.metric-card:hover{box-shadow:0 8px 24px #0f172a14;transform:translateY(-2px)}.metric-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%}.accent-blue:before{background:#4f8ef7}.accent-amber:before{background:#f59e0b}.accent-green:before{background:#10b981}.accent-violet:before{background:#8b5cf6}.metric-label{font-size:13px;color:#94a3b8;font-weight:600}.metric-value{font-size:26px;font-weight:800;color:#1a1a2e;margin:8px 0 4px}.metric-sub{font-size:12px;color:#94a3b8;min-height:16px}.dashboard-cols{display:grid;grid-template-columns:1fr 1.2fr;gap:16px}@media(max-width:820px){.dashboard-cols{grid-template-columns:1fr}}.dash-panel{background:#fff;border:1px solid #eef1f6;border-radius:14px;padding:20px}.dash-panel-title{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:16px}.dash-stat-row{display:flex;gap:12px}.dash-stat{flex:1;background:#f8fafc;border:1px solid #eef1f6;border-radius:10px;padding:14px}.dash-stat.clickable{cursor:pointer;transition:background .12s}.dash-stat.clickable:hover{background:#eff4fb}.dash-stat-num{font-size:22px;font-weight:800;color:#1a1a2e}.dash-stat-num.green{font-size:18px;color:#059669}.dash-stat-label{font-size:12px;color:#94a3b8;margin-top:2px}.dash-stat-loading{display:flex;gap:12px}.dash-activity{display:flex;flex-direction:column}.dash-activity-loading{display:flex;flex-direction:column;gap:8px}.dash-activity-item{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid #f1f5f9;cursor:pointer}.dash-activity-item:first-child{border-top:none}.dash-activity-item:hover .dash-activity-text{color:#4f8ef7}.dash-activity-icon{font-size:15px;margin-top:1px}.dash-activity-body{flex:1}.dash-activity-text{font-size:14px;color:#1a1a2e}.dash-activity-meta{font-size:12px;color:#94a3b8;margin-top:2px}.dash-empty{font-size:13px;color:#94a3b8;padding:16px 0}@media(max-width:768px){.dashboard-page{padding:18px 14px}.metric-grid{grid-template-columns:1fr 1fr;gap:12px}.metric-value{font-size:22px}.dash-stat-row{flex-direction:column}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:500;padding:20px}.modal{background:#fff;border-radius:14px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000002e}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;margin-bottom:20px}.modal-header h2{font-size:18px;font-weight:700;color:#1a1a2e}.modal-close{background:none;border:none;font-size:18px;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:6px}.modal-close:hover{background:#f1f5f9;color:#475569}.modal-form{padding:0 24px 24px;display:flex;flex-direction:column;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row.three{grid-template-columns:1fr 1fr 1fr}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:13px;font-weight:600;color:#475569}.field input,.field select,.field textarea{border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:14px;color:#1a1a2e;background:#fff;transition:border-color .15s;font-family:inherit;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.btn-ghost{background:none;border:1.5px solid #e2e8f0;color:#475569;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:500;cursor:pointer}.modal-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:13px;padding:9px 12px;border-radius:8px}@media(max-width:768px){.modal-overlay{padding:0;align-items:flex-end}.modal,.modal-wide{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0}.form-row,.form-row.three{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions>button{width:100%}}.pipeline-page{height:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.page-sub{font-size:14px;color:#64748b;margin-top:2px}.pipeline-board{display:flex;gap:16px;overflow-x:auto;padding-bottom:16px;align-items:flex-start;min-height:calc(100vh - 160px)}.pipeline-col{flex:0 0 240px;background:#fff;border-radius:12px;border:1.5px solid #e8ecf0;padding:14px 12px;transition:border-color .15s,box-shadow .15s;min-height:200px}.pipeline-col.drag-over{border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71f}.col-header{display:flex;align-items:center;gap:7px;margin-bottom:12px}.col-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.col-title{font-size:13px;font-weight:600;color:#1a1a2e;flex:1}.col-count{font-size:12px;color:#64748b;background:#f1f5f9;padding:1px 7px;border-radius:20px;font-weight:500}.col-cards{display:flex;flex-direction:column;gap:8px}.contact-card{background:#fff;border:1px solid #e8ecf0;border-radius:10px;padding:12px;cursor:pointer;transition:box-shadow .15s,transform .1s,border-color .15s;-webkit-user-select:none;user-select:none}.contact-card:hover{box-shadow:0 2px 12px #00000014;border-color:#c8d0dc}.contact-card.dragging{opacity:.5;transform:rotate(2deg)}.card-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}.avatar{width:32px;height:32px;border-radius:50%;background:#eff3ff;color:#4f8ef7;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.card-name{font-size:13px;font-weight:600;color:#1a1a2e}.card-company{font-size:12px;color:#64748b;margin-top:1px}.card-value{font-size:13px;font-weight:600;color:#059669;margin-bottom:6px}.card-tags{display:flex;flex-wrap:wrap;gap:4px}.tag{font-size:11px;padding:2px 7px;background:#f1f5f9;color:#475569;border-radius:20px;font-weight:500}.col-empty{border:1.5px dashed #e2e8f0;border-radius:8px;padding:20px;text-align:center;font-size:13px;color:#94a3b8}.loading{padding:40px;text-align:center;color:#64748b;font-size:14px}@media(max-width:768px){.pipeline-page{padding:18px 14px}.page-header{flex-direction:column;gap:12px;align-items:stretch}}.contacts-page{max-width:1100px;margin:0 auto;padding:28px 32px}.empty-state{font-size:14px;color:#94a3b8;text-align:center;padding:48px}.contacts-search{width:100%;border:1.5px solid #e2e8f0;border-radius:9px;padding:10px 14px;font-size:14px;margin-bottom:18px;font-family:inherit}.contacts-search:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.contacts-table{background:#fff;border:1px solid #eef1f6;border-radius:12px;overflow:hidden}.contacts-row{display:grid;grid-template-columns:1.6fr 1.4fr 1fr 1.6fr 1fr;align-items:center;gap:12px;padding:13px 18px}.contacts-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #eef1f6}.contacts-body{font-size:14px;color:#1a1a2e;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .12s}.contacts-body:last-child{border-bottom:none}.contacts-body:hover{background:#f8fafc}.cell-name{display:flex;align-items:center;gap:10px;font-weight:600}.cell-value{color:#059669;font-weight:600}.avatar-sm{width:28px;height:28px;border-radius:50%;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.stage-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap}.stage-prospect{background:#eef2ff;color:#4338ca}.stage-proposal_sent{background:#fffbeb;color:#b45309}.stage-active{background:#ecfdf5;color:#047857}.stage-on_hold{background:#f8fafc;color:#64748b}.stage-won{background:#d1fae5;color:#065f46}.stage-churned{background:#fef2f2;color:#dc2626}@media(max-width:768px){.contacts-page{padding:18px 14px}.page-header{flex-direction:column;gap:12px;align-items:stretch}.contacts-head{display:none}.contacts-row{grid-template-columns:1fr auto;grid-template-areas:"name value" "company stage" "email email";gap:4px 12px;padding:14px 16px}.cell-name{grid-area:name}.cell-value{grid-area:value;text-align:right}.cell-muted:nth-of-type(1){grid-area:company;font-size:13px}.contacts-body>span:nth-child(3){grid-area:stage;justify-self:start}.contacts-body>span:nth-child(4){grid-area:email;font-size:12px}}.invoices-page,.invoice-detail{max-width:1000px;margin:0 auto;padding:28px 32px}.btn-sm{font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1.5px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer}.icon-btn:disabled{opacity:.15;cursor:default}.config-banner{background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:13px;padding:10px 14px;border-radius:9px;margin-bottom:18px}.config-hint{color:#b45309}.config-banner code{background:#fef3c7;padding:1px 5px;border-radius:4px}.inv-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.invoices-table{background:#fff;border:1px solid #eef1f6;border-radius:12px;overflow:hidden}.inv-row{display:grid;grid-template-columns:1fr 1.4fr 1fr .8fr 1fr;align-items:center;gap:12px;padding:13px 18px}.inv-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #eef1f6}.inv-body{font-size:14px;color:#1a1a2e;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .12s}.inv-body:last-child{border-bottom:none}.inv-body:hover{background:#f8fafc}.inv-number{font-weight:700}.inv-amount{font-weight:700}.col-right{text-align:right}.invoice-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.invoice-hero-meta{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:14px;color:#64748b}.invoice-amount-big{font-size:30px;font-weight:800;color:#1a1a2e}.invoice-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stat-value{font-size:14px;color:#1a1a2e;font-weight:700;margin-top:2px}.invoice-section{border:1px solid #eef1f6;border-radius:12px;padding:18px;margin-bottom:16px;background:#fff}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.li-editor{display:flex;flex-direction:column;gap:8px}.li-row{display:grid;grid-template-columns:1fr 70px 110px 32px;gap:8px;align-items:center}.li-desc,.li-qty,.li-price{border:1.5px solid #e2e8f0;border-radius:7px;padding:8px 10px;font-size:14px;font-family:inherit}.li-desc:focus,.li-qty:focus,.li-price:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.li-desc-ro{font-size:14px;color:#1a1a2e}.li-qty-ro{font-size:13px;color:#64748b;text-align:center}.li-price-ro{font-size:14px;color:#1a1a2e;text-align:right;font-weight:600}.li-total-row{display:flex;justify-content:space-between;align-items:center;margin:14px 0;padding-top:12px;border-top:1px solid #f1f5f9;font-weight:700;color:#1a1a2e}.li-total{font-size:18px}.pay-link-box{display:flex;gap:10px;align-items:center}.pay-link{flex:1;font-size:13px;color:#4f8ef7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-actions-bar{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.invoice-msg{margin-top:14px;font-size:13px;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;padding:9px 12px;border-radius:8px}.modal-wide{max-width:620px}@media(max-width:768px){.invoices-page,.invoice-detail{padding:18px 14px}.page-header{flex-direction:column;gap:12px;align-items:stretch}.inv-head{display:none}.inv-row{grid-template-columns:1fr auto;grid-template-areas:"number amount" "client status" "due due";gap:4px 10px}.inv-number{grid-area:number}.inv-amount{grid-area:amount;text-align:right}.inv-body>span:nth-child(2){grid-area:client}.inv-body>span:nth-child(3){grid-area:status;justify-self:start}.inv-body>span:nth-child(4){grid-area:due;font-size:12px}.invoice-hero{flex-direction:column;gap:8px}.invoice-amount-big{font-size:24px}.invoice-stat-row{grid-template-columns:1fr;gap:8px}.li-row{grid-template-columns:1fr 56px 90px 28px;gap:6px}.invoice-actions-bar{flex-direction:column}.invoice-actions-bar>*{width:100%;text-align:center}}.contracts-page,.contract-detail{max-width:1000px;margin:0 auto;padding:28px 32px}.empty-state{font-size:13px;color:#94a3b8;padding:14px 0}.empty-state-lg{display:flex;flex-direction:column;align-items:center;gap:14px;padding:56px 20px;color:#64748b;font-size:15px}.btn-sm{font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1.5px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;text-decoration:none;display:inline-block}.con-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.status-viewed{background:#eef2ff;color:#4338ca}.status-signed{background:#ecfdf5;color:#047857}.status-declined{background:#fef2f2;color:#dc2626}.templates-section{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:16px 18px;margin-bottom:20px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-head h3{font-size:15px;font-weight:700;color:#1a1a2e}.template-chips{display:flex;flex-wrap:wrap;gap:8px}.template-chip{display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid #eef1f6;border-radius:9px;padding:6px 10px}.template-chip-name{font-size:13px;font-weight:600;color:#1a1a2e;cursor:pointer}.template-chip-name:hover{color:#4f8ef7}.template-chip-vars{font-size:11px;color:#94a3b8;background:#eef2ff;padding:1px 6px;border-radius:99px}.contracts-table{background:#fff;border:1px solid #eef1f6;border-radius:12px;overflow:hidden}.con-row{display:grid;grid-template-columns:1.6fr 1.2fr 1fr .8fr .8fr;align-items:center;gap:12px;padding:13px 18px}.con-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #eef1f6}.con-body{font-size:14px;color:#1a1a2e;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .12s}.con-body:last-child{border-bottom:none}.con-body:hover{background:#f8fafc}.con-title{font-weight:700}.contract-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.contract-hero-meta{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:14px;color:#64748b}.signed-banner{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;font-size:14px;padding:12px 16px;border-radius:10px;margin:16px 0}.contract-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.stat-value{font-size:13px;color:#1a1a2e;font-weight:600;margin-top:2px}.contract-body-card{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:24px;margin-bottom:16px}.contract-body{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.7;color:#1a1a2e;white-space:pre-wrap;word-wrap:break-word;margin:0}.contract-edit-body{width:100%;min-height:420px;resize:vertical;box-sizing:border-box;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.7;color:#1a1a2e;border:1px solid #d7dce6;border-radius:8px;padding:14px;background:#fcfcfd}.contract-edit-body:focus{outline:none;border-color:#4f8ef7;background:#fff}.contract-edit-title{font-size:22px;font-weight:700;color:#1a1a2e;width:100%;box-sizing:border-box;border:1px solid #d7dce6;border-radius:8px;padding:6px 10px;margin-bottom:4px}.contract-edit-title:focus{outline:none;border-color:#4f8ef7}.contract-actions-bar{display:flex;flex-wrap:wrap;gap:10px}.contract-msg{margin-top:14px;font-size:13px;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;padding:9px 12px;border-radius:8px}.modal-wide{max-width:640px}.var-hint{font-size:12px;color:#94a3b8;margin-top:4px}.var-chips{display:flex;flex-wrap:wrap;gap:6px}.var-chip{font-family:ui-monospace,monospace;font-size:12px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:6px;padding:3px 7px;cursor:pointer}.var-chip:hover{background:#e0e7ff}@media(max-width:768px){.contracts-page,.contract-detail{padding:18px 14px}.page-header{flex-direction:column;gap:12px;align-items:stretch}.con-head{display:none}.con-row{grid-template-columns:1fr auto;grid-template-areas:"title status" "client client" "sent signed";gap:4px 10px}.con-title{grid-area:title}.con-body>span:nth-child(2){grid-area:client}.con-body>span:nth-child(3){grid-area:status;justify-self:end}.con-body>span:nth-child(4){grid-area:sent;font-size:12px}.con-body>span:nth-child(5){grid-area:signed;font-size:12px;text-align:right}.contract-hero{flex-direction:column;gap:8px}.contract-stat-row{grid-template-columns:1fr;gap:8px}.contract-actions-bar{flex-direction:column}.contract-actions-bar>*{width:100%;text-align:center}.template-chips{flex-direction:column}}.proposals-page,.proposal-builder{max-width:1100px;margin:0 auto;padding:28px 32px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.icon-btn{background:none;border:none;cursor:pointer;font-size:13px;opacity:.4;padding:4px;border-radius:6px}.prop-status{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.prop-status-draft{background:#f1f5f9;color:#475569}.prop-status-sent{background:#eff6ff;color:#1d4ed8}.prop-status-accepted{background:#ecfdf5;color:#047857}.prop-status-declined{background:#fef2f2;color:#dc2626}.prop-status-expired{background:#fef9ee;color:#92400e}.prop-status-void{background:#f8fafc;color:#94a3b8}.proposals-table{background:#fff;border:1px solid #eef1f6;border-radius:12px;overflow:hidden}.prop-row{display:grid;grid-template-columns:1.6fr 1.3fr 1fr .9fr .9fr .8fr;align-items:center;gap:12px;padding:13px 18px}.prop-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#f8fafc;border-bottom:1px solid #eef1f6}.prop-body{font-size:14px;color:#1a1a2e;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .12s}.prop-body:last-child{border-bottom:none}.prop-body:hover{background:#f8fafc}.prop-title-cell{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-muted{color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-total{font-weight:700}.proposal-builder{max-width:1280px}.back-btn{background:none;border:none;color:#64748b;font-size:14px;cursor:pointer;margin-bottom:16px;padding:0}.pb-header{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.pb-title-input{flex:1;min-width:240px;font-size:22px;font-weight:700;color:#1a1a2e;border:none;border-bottom:2px solid transparent;padding:4px 2px;font-family:inherit}.pb-title-input:focus{outline:none;border-bottom-color:#4f8ef7}.pb-title-input:disabled{color:#1a1a2e;background:none}.pb-save-state{font-size:13px;color:#94a3b8;min-width:64px}.pb-save-state.saved{color:#047857}.pb-actions{display:flex;gap:8px;align-items:center}.pb-meta{font-size:13px;color:#94a3b8;margin-bottom:18px}.pb-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:start}.pb-tabs{display:none}.pb-section{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:18px;margin-bottom:14px}.pb-section h3{font-size:14px;font-weight:700;color:#1a1a2e;margin-bottom:4px}.pb-section-hint{font-size:12px;color:#94a3b8;margin-bottom:10px}.pb-input,.pb-textarea{width:100%;border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit;resize:vertical}.pb-input:focus,.pb-textarea:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.pb-input:disabled,.pb-textarea:disabled{background:#f8fafc;color:#475569}.pb-deliverable{display:flex;gap:8px;margin-bottom:8px;align-items:flex-start}.pb-deliverable-fields{flex:1;display:flex;flex-direction:column;gap:6px}.pb-li-row{display:grid;grid-template-columns:1fr 110px auto 28px;gap:8px;align-items:center;margin-bottom:8px}.pb-li-recurring{display:flex;align-items:center;gap:5px;font-size:12px;color:#64748b;white-space:nowrap}.pb-li-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9;font-weight:700;color:#1a1a2e}.pb-li-total .amt{font-size:18px}.pb-add-btn{font-size:13px;font-weight:600;color:#4f8ef7;background:none;border:1.5px dashed #c7d6f5;border-radius:8px;padding:8px 14px;cursor:pointer;width:100%;margin-top:4px}.pb-add-btn:hover{background:#f5f9ff}.pb-collapse-head{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.pb-collapse-head h3{margin-bottom:0}.pb-days-row{display:flex;align-items:center;gap:8px;margin:10px 0}.pb-days-input{width:70px}.pb-preview{position:sticky;top:76px;background:#fff;border:1px solid #eef1f6;border-radius:14px;overflow:hidden}.pb-preview-bar{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-bottom:1px solid #eef1f6;padding:10px 16px;font-size:12px;font-weight:600;color:#64748b}.pb-preview-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#94a3b8;background:#eef1f6;padding:2px 8px;border-radius:99px}.pb-preview-body{padding:24px;max-height:calc(100vh - 160px);overflow-y:auto}.pb-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;box-shadow:0 8px 24px #0003;z-index:600;max-width:90vw}.pb-toast a{color:#93c5fd}.pb-mobile-hidden{display:block}@media(max-width:900px){.proposals-page,.proposal-builder{padding:18px 14px}.pb-cols{grid-template-columns:1fr}.pb-tabs{display:flex;gap:6px;background:#f1f5f9;padding:4px;border-radius:10px;margin-bottom:14px}.pb-tab{flex:1;border:none;background:none;padding:9px;font-size:14px;font-weight:600;color:#64748b;border-radius:7px;cursor:pointer}.pb-tab.active{background:#fff;color:#1a1a2e}.pb-preview{position:static}.pb-mobile-hidden,.prop-head{display:none}.prop-row{grid-template-columns:1fr auto;gap:4px 10px}.prop-row>*:nth-child(n+3){font-size:12px}}.cnf-thread{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.cnf-note{border-radius:10px;padding:10px 12px;max-width:85%}.cnf-note.from-client{background:#f1f5f9;align-self:flex-start}.cnf-note.from-hss{background:#eff3ff;align-self:flex-end}.cnf-note-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.cnf-note-author{font-size:12px;font-weight:700;color:#475569}.cnf-note-time{font-size:11px;color:#94a3b8}.cnf-note-body{font-size:14px;color:#1a1a2e;line-height:1.45;white-space:pre-wrap}.cnf-composer{display:flex;flex-direction:column;gap:8px}.cnf-composer textarea{border:1.5px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:14px;color:#1a1a2e;resize:vertical;font-family:inherit}.cnf-composer textarea:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.cnf-composer .btn-primary{align-self:flex-start}.cnf-file{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #e8ecf0;border-radius:10px;padding:12px;margin-bottom:10px}.cnf-file-main{min-width:0}.cnf-file-name{font-size:14px;font-weight:600;color:#4f8ef7;text-decoration:none;word-break:break-word}.cnf-file-name:hover{text-decoration:underline}.cnf-file-meta{font-size:12px;color:#94a3b8;margin-top:3px}.cnf-file-note{font-size:13px;color:#475569;margin-top:5px}.cnf-file-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.cnf-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#475569;cursor:pointer;white-space:nowrap}.cnf-toggle input{cursor:pointer}.cnf-badge{font-size:11px;font-weight:600;color:#059669;background:#ecfdf5;padding:3px 8px;border-radius:6px;white-space:nowrap}.cnf-del{border:none;background:none;color:#cbd5e1;cursor:pointer;font-size:13px;padding:2px 4px}.cnf-del:hover{color:#ef4444}.cnf-upload{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border-top:1px dashed #e2e8f0;padding-top:14px;margin-top:4px}.cnf-upload-field{border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:13px;color:#1a1a2e;flex:1;min-width:140px}.cnf-upload-field:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.cnf-error{flex-basis:100%;font-size:13px;color:#ef4444}.cnf-file-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;text-align:left}.infra-internal-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#b45309;background:#fef3c7;padding:2px 7px;border-radius:6px;margin-left:8px;vertical-align:middle}.infra-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid #e8ecf0;border-radius:10px;padding:12px;margin-bottom:10px}.infra-main{min-width:0;flex:1}.infra-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.infra-cat{font-size:11px;font-weight:700;color:#4338ca;background:#eef2ff;padding:2px 8px;border-radius:6px;white-space:nowrap}.infra-label{font-size:14px;font-weight:600;color:#1a1a2e}.infra-provider{font-size:13px;color:#64748b}.infra-detail{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:5px}.infra-url{font-size:13px;color:#4f8ef7;text-decoration:none;word-break:break-all}.infra-url:hover{text-decoration:underline}.infra-account{font-size:13px;color:#475569}.infra-notes{font-size:13px;color:#475569;margin-top:6px;line-height:1.45;white-space:pre-wrap}.infra-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.infra-btn{border:none;background:none;color:#94a3b8;cursor:pointer;font-size:13px;padding:2px 5px;border-radius:6px}.infra-btn:hover{color:#4f8ef7;background:#f1f5f9}.infra-del:hover{color:#ef4444;background:#fef2f2}.infra-form{display:flex;flex-direction:column;gap:8px;border:1.5px dashed #cbd5e1;border-radius:10px;padding:12px;margin-bottom:10px;background:#fafbfc}.infra-form-row{display:flex;gap:8px}.infra-field{border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:14px;color:#1a1a2e;font-family:inherit;resize:vertical}.infra-field.grow{flex:1}.infra-field:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.infra-form-actions{display:flex;justify-content:flex-end;gap:8px}.contact-detail{max-width:1100px}.back-btn{background:none;border:none;color:#64748b;font-size:14px;cursor:pointer;padding:0;margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:1fr 380px;gap:24px}.contact-hero{display:flex;align-items:center;gap:16px;margin-bottom:24px}.avatar-lg{width:56px;height:56px;border-radius:50%;background:#eff3ff;color:#4f8ef7;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-name{font-size:22px;font-weight:700;color:#1a1a2e}.contact-company{font-size:14px;color:#64748b;margin-top:2px}.contact-meta-row{display:flex;gap:16px;margin-top:6px}.meta-link{font-size:13px;color:#4f8ef7;text-decoration:none}.meta-link:hover{text-decoration:underline}.info-grid{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:14px;font-weight:500;color:#1a1a2e}.value-green{color:#059669}.value-muted{color:#94a3b8}.terms-outdated{color:#d97706;font-weight:500}.stage-select{border:1.5px solid #e2e8f0;border-radius:7px;padding:6px 10px;font-size:13px;font-weight:500;color:#1a1a2e;background:#fff;cursor:pointer}.tags-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.tag{font-size:12px;padding:3px 9px;background:#f1f5f9;color:#475569;border-radius:20px;font-weight:500}.section{background:#fff;border-radius:12px;border:1px solid #e8ecf0;padding:20px;margin-bottom:16px}.section h3{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-header h3{margin-bottom:0}.btn-sm{font-size:12px;padding:5px 12px;border-radius:6px}.empty-state{font-size:13px;color:#94a3b8;text-align:center;padding:16px 0}.onboarding-card{border:1px solid #e8ecf0;border-radius:9px;padding:12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.onboarding-card:hover{border-color:#4f8ef7;box-shadow:0 2px 10px #4f8ef71a}.ob-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ob-title{font-size:14px;font-weight:600;color:#1a1a2e}.ob-service{font-size:11px;color:#4f8ef7;background:#eff3ff;padding:2px 8px;border-radius:20px;font-weight:500}.progress-bar-wrap{background:#f1f5f9;border-radius:4px;height:5px;margin-bottom:5px}.progress-bar{background:#4f8ef7;height:100%;border-radius:4px;transition:width .3s}.ob-meta{font-size:12px;color:#94a3b8}.note-composer{margin-bottom:20px}.type-tabs{display:flex;gap:4px;margin-bottom:10px}.type-tab{padding:5px 10px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:12px;color:#64748b;background:#fff;cursor:pointer;transition:all .12s;text-transform:capitalize}.type-tab.active{border-color:#4f8ef7;color:#4f8ef7;background:#eff3ff}.note-input{width:100%;border:1.5px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:#1a1a2e;resize:vertical;margin-bottom:8px}.note-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.activity-list{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;gap:10px;align-items:flex-start}.activity-icon{font-size:16px;flex-shrink:0;margin-top:1px}.activity-text{font-size:14px;color:#334155;line-height:1.5}.activity-time{font-size:12px;color:#94a3b8;margin-top:3px}.detail-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.topbar-actions{display:flex;align-items:center;gap:8px}.portal-link-btn{font-size:13px}.portal-copied-toast{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;font-size:13px;padding:9px 14px;border-radius:8px;margin-bottom:14px}@media(max-width:768px){.contact-detail{padding:18px 14px}.detail-grid{grid-template-columns:1fr;gap:18px}.info-grid{grid-template-columns:1fr 1fr}.detail-topbar{flex-wrap:wrap;gap:8px}.contact-hero{flex-wrap:wrap}.contact-name{font-size:22px}}.portal-login-badge{font-size:12px;font-weight:600;padding:5px 10px;border-radius:7px;display:inline-flex;align-items:center}.portal-login-badge.invited{color:#92400e;background:#fef3c7}.portal-login-badge.active{color:#047857;background:#ecfdf5}.onboardings-page{max-width:1100px;margin:0 auto;padding:28px 32px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.empty-state-lg{display:flex;flex-direction:column;align-items:center;gap:8px;padding:64px 20px;color:#64748b;font-size:15px}.empty-emoji{font-size:38px;color:#cbd5e1}.empty-hint{font-size:13px;color:#94a3b8}.onboardings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.ob-card{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:18px;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.ob-card:hover{box-shadow:0 8px 24px #0f172a14;transform:translateY(-2px);border-color:#dbe3ef}.ob-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ob-card-service{font-size:12px;color:#94a3b8;font-weight:500}.ob-done-pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;background:#ecfdf5;color:#047857;text-transform:uppercase;letter-spacing:.3px}.ob-card-title{font-size:16px;font-weight:700;color:#1a1a2e;margin-bottom:4px}.ob-card-client{font-size:13px;color:#64748b;margin-bottom:14px}.ob-card-meta{font-size:12px;color:#94a3b8;margin-top:8px}@media(max-width:768px){.onboardings-page{padding:18px 14px}}.ob-detail{max-width:900px}.ob-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.ob-title{font-size:22px;font-weight:700;color:#1a1a2e}.ob-client{font-size:14px;color:#64748b;margin-top:4px}.btn-copy{background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .15s}.btn-copy:hover{border-color:#4f8ef7;color:#4f8ef7}.progress-section{background:#fff;border-radius:10px;border:1px solid #e8ecf0;padding:16px 20px;margin-bottom:24px}.progress-header{display:flex;justify-content:space-between;font-size:13px;font-weight:500;color:#475569;margin-bottom:8px}.progress-bar-wrap{background:#f1f5f9;border-radius:6px;height:8px}.tasks-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tasks-heading{font-size:14px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.task-row{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid #e8ecf0;border-radius:9px;padding:12px;margin-bottom:8px;transition:border-color .15s}.task-row.done{background:#f8fffe;border-color:#d1fae5}.task-check{width:22px;height:22px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;cursor:pointer;font-size:12px;font-weight:700;color:#10b981;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s,background .15s}.task-check.checked{border-color:#10b981;background:#d1fae5}.task-check:hover:not(.checked){border-color:#4f8ef7}.task-title{font-size:14px;font-weight:500;color:#1a1a2e}.task-desc{font-size:13px;color:#64748b;margin-top:3px;line-height:1.5}.task-notes{font-size:12px;color:#4f8ef7;margin-top:4px;font-style:italic}.task-required{font-size:11px;color:#f59e0b;background:#fef9ee;padding:2px 7px;border-radius:20px;font-weight:500;white-space:nowrap;align-self:flex-start}@media(max-width:768px){.ob-detail{padding:18px 14px}.tasks-grid{grid-template-columns:1fr;gap:18px}.ob-header{flex-direction:column;gap:12px;align-items:flex-start}}.add-task-row{display:flex;gap:8px;margin-top:10px}.add-task-input{flex:1;border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit}.add-task-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.add-task-btn{background:#4f8ef7;color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.add-task-btn:hover{background:#3b7de8}.add-task-btn:disabled{opacity:.5;cursor:default}.task-delete{background:none;border:none;cursor:pointer;font-size:13px;opacity:.35;padding:2px 4px;border-radius:6px;flex-shrink:0}.task-delete:hover{opacity:1;background:#fef2f2}.task-row{flex-direction:column;align-items:stretch}.task-row-main{display:flex;align-items:flex-start;gap:10px}.task-instructions{font-size:13px;color:#1a1a2e;background:#eff6ff;border-radius:6px;padding:5px 9px;margin-top:5px}.task-link{display:inline-block;font-size:13px;color:#4f8ef7;margin-top:5px;word-break:break-all}.task-link:hover{text-decoration:underline}.task-meta-btn{background:none;border:1.5px solid #e2e8f0;color:#64748b;border-radius:7px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0}.task-meta-btn:hover{background:#f8fafc;border-color:#cbd5e1}.task-meta-editor{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed #e8ecf0}.task-meta-input{border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 11px;font-size:13px;font-family:inherit}.task-meta-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.task-meta-actions{display:flex;gap:8px}.btn-ghost-sm{background:none;border:1.5px solid #e2e8f0;color:#475569;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:500;cursor:pointer}.btn-ghost-sm:hover{background:#f8fafc}.ob-header-actions{display:flex;gap:10px;align-items:center}.ob-import-wrap{position:relative}.btn-import{background:#fff;border:1.5px solid #e2e8f0;color:#475569;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-import:hover{background:#f8fafc;border-color:#cbd5e1}.btn-import:disabled{opacity:.6;cursor:default}.ob-import-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:280px;background:#fff;border:1px solid #eef1f6;border-radius:11px;box-shadow:0 12px 32px #0f172a24;padding:6px;z-index:40;max-height:360px;overflow-y:auto}.ob-import-empty{padding:14px;font-size:13px;color:#94a3b8;text-align:center}.ob-import-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:9px 12px;border-radius:8px}.ob-import-item:hover{background:#f1f5f9}.ob-import-name{font-size:14px;font-weight:600;color:#1a1a2e}.ob-import-meta{font-size:12px;color:#94a3b8}.ob-import-toast{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;font-size:13px;padding:9px 14px;border-radius:8px;margin-bottom:14px}.projects-page,.project-detail{max-width:1100px;margin:0 auto;padding:28px 32px}.loading{padding:60px;text-align:center;color:#94a3b8;font-size:14px}.back-btn{background:none;border:none;color:#64748b;font-size:14px;cursor:pointer;margin-bottom:18px;padding:0}.back-btn:hover{color:#1a1a2e}.btn-primary{background:#4f8ef7;color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.btn-sm{font-size:13px;font-weight:600;padding:7px 14px;border-radius:7px;border:1.5px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;white-space:nowrap}.btn-sm:hover{background:#f8fafc}.btn-danger-ghost{background:none;border:1.5px solid #fecaca;color:#dc2626;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer}.btn-danger-ghost:hover{background:#fef2f2}.empty-state{font-size:13px;color:#94a3b8;text-align:center;padding:16px}.empty-state-lg{display:flex;flex-direction:column;align-items:center;gap:14px;padding:64px 20px;color:#64748b;font-size:15px}.empty-emoji{font-size:40px}.progress-bar-wrap{background:#f1f5f9;border-radius:6px;height:8px;overflow:hidden}.progress-bar{background:#4f8ef7;height:100%;border-radius:6px;transition:width .4s ease}.progress-section{margin:18px 0 24px}.progress-header{display:flex;justify-content:space-between;font-size:13px;color:#475569;font-weight:600;margin-bottom:8px}.status-pill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px}.status-select{font-size:13px;font-weight:600;padding:7px 12px;border-radius:8px;border:1.5px solid #e2e8f0;cursor:pointer}.status-planning{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.status-in_progress{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.status-review{background:#fffbeb;color:#b45309;border-color:#fde68a}.status-completed{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.status-on_hold{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.status-cancelled{background:#fef2f2;color:#dc2626;border-color:#fecaca}.projects-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.project-card{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:18px;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.project-card:hover{box-shadow:0 8px 24px #0f172a14;transform:translateY(-2px);border-color:#dbe3ef}.project-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.project-service{font-size:12px;color:#94a3b8;font-weight:500}.project-card-title{font-size:16px;font-weight:700;color:#1a1a2e;margin-bottom:4px}.project-card-client{font-size:13px;color:#64748b;margin-bottom:14px}.project-card-meta{font-size:12px;color:#94a3b8;margin-top:8px}.project-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-hero-meta{font-size:14px;color:#64748b;margin-top:4px}.hero-client-link{color:#4f8ef7;cursor:pointer;font-weight:600}.hero-client-link:hover{text-decoration:underline}.project-hero-actions{display:flex;gap:10px;align-items:center}.project-description{font-size:14px;color:#475569;line-height:1.6;margin:16px 0;white-space:pre-wrap}.project-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stat-box{background:#f8fafc;border:1px solid #eef1f6;border-radius:10px;padding:12px 16px}.stat-label{font-size:12px;color:#94a3b8;font-weight:600}.stat-value{font-size:15px;color:#1a1a2e;font-weight:700;margin-top:2px}.add-row{display:flex;gap:8px;margin-bottom:10px}.add-input{flex:1;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-size:14px;font-family:inherit}.add-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.add-select{border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:13px;background:#fff;cursor:pointer}.milestone-block{border:1px solid #eef1f6;border-radius:12px;padding:16px 18px;margin-bottom:14px;background:#fff}.milestone-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.milestone-title{font-size:15px;font-weight:700;color:#1a1a2e}.milestone-count{font-size:12px;font-weight:700;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:99px}.milestone-desc{font-size:13px;color:#64748b;margin-bottom:10px}.task-row{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-top:1px solid #f1f5f9}.task-row:first-of-type{border-top:none}.task-check{flex-shrink:0;width:20px;height:20px;border-radius:6px;border:1.5px solid #cbd5e1;background:#fff;cursor:pointer;font-size:12px;color:#fff;line-height:1;margin-top:1px}.task-check.checked{background:#4f8ef7;border-color:#4f8ef7}.task-content{flex:1}.task-title{font-size:14px;color:#1a1a2e}.task-title.strikethrough{text-decoration:line-through;color:#94a3b8}.task-desc{font-size:12px;color:#94a3b8;margin-top:2px}.task-row.done{opacity:.7}.icon-btn{background:none;border:none;cursor:pointer;font-size:13px;opacity:.4;padding:2px 4px;border-radius:6px}.icon-btn:hover{opacity:1;background:#f1f5f9}@media(max-width:768px){.projects-page,.project-detail{padding:18px 14px}.projects-header{flex-direction:column;gap:12px;align-items:stretch}.project-stat-row{grid-template-columns:1fr;gap:8px}.project-hero{flex-direction:column;gap:10px}.project-hero-actions{width:100%}.add-row{flex-wrap:wrap}.add-input{min-width:0}}.pv{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1a1a2e;line-height:1.6}.pv-brand{font-size:15px;font-weight:800;color:#4f8ef7;letter-spacing:.02em;margin-bottom:20px}.pv-title{font-size:26px;font-weight:800;color:#1a1a2e;line-height:1.25}.pv-meta{font-size:14px;color:#64748b;margin-top:6px}.pv-valid{font-size:13px;color:#94a3b8;margin-top:4px}.pv-section{margin-top:28px}.pv-section h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;padding-bottom:8px;border-bottom:1px solid #eef1f6;margin-bottom:12px}.pv-scope{font-size:15px;color:#334155}.pv-scope p,.pv-scope div{margin-bottom:6px}.pv-scope ul,.pv-scope ol{padding-left:22px;margin:6px 0}.pv-scope li{margin-bottom:4px}.pv-scope u{text-decoration:underline}.pv-scope b,.pv-scope strong{font-weight:700}.pv-deliverables{list-style:none;display:flex;flex-direction:column;gap:10px}.pv-deliverables li{display:flex;gap:10px;align-items:flex-start}.pv-check{color:#10b981;font-weight:700;flex-shrink:0}.pv-deliv-title{font-size:15px;font-weight:600;color:#1a1a2e;display:block}.pv-deliv-desc{font-size:14px;color:#64748b;display:block;margin-top:2px}.pv-timeline{font-size:15px;color:#334155}.pv-pricing{width:100%;border-collapse:collapse;font-size:15px}.pv-pricing td{padding:10px 0;border-bottom:1px solid #f1f5f9}.pv-amt{text-align:right;white-space:nowrap;color:#1a1a2e}.pv-pricing tfoot td{border-bottom:none;padding-top:14px;font-weight:800}.pv-total-label{font-size:16px}.pv-total{font-size:20px}.pv-footer{margin-top:32px;padding-top:16px;border-top:1px solid #eef1f6;font-size:13px;color:#94a3b8}.pv-footer a{color:#4f8ef7}.pv-accept{margin-top:32px;background:#f8fafc;border:1px solid #eef1f6;border-radius:12px;padding:22px}.pv-accept h2{border:none;padding:0;margin-bottom:8px}.pv-accept-copy{font-size:14px;color:#475569;margin-bottom:16px}.pv-accept-label{font-size:13px;font-weight:600;color:#475569;display:block;margin-bottom:6px}.pv-accept-input{width:100%;border:1.5px solid #e2e8f0;border-radius:9px;padding:11px 14px;font-size:16px;font-family:inherit}.pv-accept-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.pv-accept-btn{width:100%;margin-top:14px;background:#4f8ef7;color:#fff;border:none;border-radius:10px;padding:14px;font-size:16px;font-weight:700;cursor:pointer}.pv-accept-btn:hover{background:#3b7de8}.pv-accept-btn:disabled{opacity:.5;cursor:default}.pv-decline-link{display:block;text-align:center;margin-top:12px;font-size:13px;color:#94a3b8;cursor:pointer;background:none;border:none;width:100%}.pv-decline-link:hover{color:#dc2626}.pv-accept-error{font-size:13px;color:#dc2626;margin-top:8px}.pv-decline-reason{width:100%;margin-top:10px;border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit}.rte{border:1.5px solid #e2e8f0;border-radius:8px;overflow:visible;background:#fff}.rte:focus-within{border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.rte-disabled{background:#f8fafc}.rte-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid #eef1f6;background:#f8fafc;border-radius:8px 8px 0 0;position:relative}.rte-btn{min-width:28px;height:28px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:14px;color:#475569;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.rte-btn:hover{background:#e8eef7;color:#1a1a2e}.rte-sep{width:1px;height:18px;background:#e2e8f0;margin:0 4px}.rte-color-wrap{position:relative}.rte-color-btn{gap:3px;font-weight:600}.rte-color-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.rte-color-menu{position:absolute;top:32px;left:0;background:#fff;border:1px solid #eef1f6;border-radius:9px;box-shadow:0 8px 24px #0f172a1f;padding:8px;display:grid;grid-template-columns:repeat(4,22px);gap:6px;z-index:30}.rte-color-dot{width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(0,0,0,.08);cursor:pointer;padding:0}.rte-color-dot:hover{transform:scale(1.12)}.rte-clear{font-size:13px}.rte-surface-wrap{position:relative}.rte-surface{min-height:110px;padding:12px 14px;font-size:14px;line-height:1.6;color:#1a1a2e;outline:none;font-family:inherit}.rte-surface ul,.rte-surface ol{padding-left:22px;margin:4px 0}.rte-placeholder{position:absolute;top:12px;left:14px;font-size:14px;color:#94a3b8;pointer-events:none}.rte-disabled .rte-surface{color:#475569;min-height:auto}.ppub-page{min-height:100vh;background:#f7f8fa;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:48px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.ppub-preview-banner{max-width:640px;width:100%;margin-bottom:16px;padding:12px 16px;border-radius:10px;background:#fef3c7;border:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.5;display:flex;align-items:center;gap:10px}.ppub-preview-badge{flex-shrink:0;background:#f59e0b;color:#fff;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:6px}.ppub-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:15px;background:#f7f8fa;font-family:-apple-system,sans-serif}.ppub-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0f172a14;max-width:640px;width:100%;padding:40px}.ppub-centered{text-align:center;padding:56px 40px}.ppub-emoji{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:#ecfdf5;color:#047857;font-size:26px;font-weight:700;display:flex;align-items:center;justify-content:center}.ppub-centered-title{font-size:22px;font-weight:700;color:#1a1a2e}.ppub-centered-body{font-size:15px;color:#475569;margin-top:12px;line-height:1.6}.ppub-centered-body p{margin-bottom:8px}.ppub-centered-body a{color:#4f8ef7}@media(max-width:600px){.ppub-page{padding:20px 12px}.ppub-card{padding:24px 20px}}.settings-page{max-width:1000px;margin:0 auto;padding:28px 32px}.page-title{font-size:24px;font-weight:700;color:#1a1a2e}.page-sub{font-size:14px;color:#94a3b8;margin-top:2px}.settings-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.btn-primary{background:#4f8ef7;color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.btn-primary:hover{background:#3b7de8}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{background:none;border:1.5px solid #e2e8f0;color:#475569;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:500;cursor:pointer}.btn-ghost:hover{background:#f8fafc}.btn-sm{font-size:13px;font-weight:600;padding:8px 14px;border-radius:7px;border:none;background:#4f8ef7;color:#fff;cursor:pointer;white-space:nowrap}.btn-sm:hover{background:#3b7de8}.btn-sm:disabled{opacity:.5;cursor:default}.new-template-card{background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:16px 18px;margin-bottom:18px}.nt-row{display:flex;gap:10px;align-items:center}.nt-name{flex:1;border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit}.nt-name:focus,.nt-service:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.nt-service{border:1.5px solid #e2e8f0;border-radius:8px;padding:9px 10px;font-size:14px;background:#fff;cursor:pointer}.nt-hint{font-size:12px;color:#94a3b8;margin-top:8px}.settings-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;color:#64748b;font-size:15px;text-align:center}.se-emoji{font-size:40px}.se-sub{font-size:13px;color:#94a3b8}.templates-list{display:flex;flex-direction:column;gap:16px}.template-card{background:#fff;border:1px solid #eef1f6;border-radius:14px;padding:20px}.tc-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.tc-name{font-size:17px;font-weight:700;color:#1a1a2e}.tc-service{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#4338ca;background:#eef2ff;padding:3px 9px;border-radius:99px}.tc-delete{background:none;border:1.5px solid #fecaca;color:#dc2626;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500;cursor:pointer}.tc-delete:hover{background:#fef2f2}.tc-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.tc-col-label{font-size:13px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.tc-empty{font-size:13px;color:#cbd5e1;padding:8px 0}.tc-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f8fafc;border:1px solid #eef1f6;border-radius:8px;margin-bottom:6px}.tc-item-title{flex:1;font-size:14px;color:#1a1a2e}.tc-required{display:flex;align-items:center;gap:4px;font-size:11px;color:#94a3b8;cursor:pointer}.tc-item-del{background:none;border:none;cursor:pointer;font-size:12px;opacity:.4;padding:2px 4px;border-radius:6px}.tc-item-del:hover{opacity:1;background:#fef2f2}.tc-add{display:flex;gap:8px;padding-top:14px;border-top:1px solid #f1f5f9}.tc-add-input{flex:1;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-size:14px;font-family:inherit}.tc-add-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.tc-add-assignee{border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 10px;font-size:14px;background:#fff;cursor:pointer}@media(max-width:768px){.settings-page{padding:18px 14px}.settings-header{flex-direction:column;gap:12px;align-items:stretch}.nt-row{flex-wrap:wrap}.tc-cols{grid-template-columns:1fr}.tc-add{flex-wrap:wrap}}.tc-item-wrap{margin-bottom:6px}.tc-item-wrap .tc-item{margin-bottom:0}.tc-item-meta{background:none;border:1.5px solid #e2e8f0;color:#64748b;border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer;white-space:nowrap}.tc-item-meta:hover{background:#fff;border-color:#cbd5e1}.tc-item-meta-preview{display:flex;flex-direction:column;gap:3px;padding:6px 10px 0;font-size:12px}.tc-meta-note{color:#1d4ed8}.tc-meta-link{color:#4f8ef7;word-break:break-all}.tc-item-editor{display:flex;flex-direction:column;gap:7px;margin-top:7px;padding:10px;background:#fff;border:1px solid #eef1f6;border-radius:8px}.tc-editor-actions{display:flex;gap:8px}.team-section{margin-top:8px}.team-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.team-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #eef1f6;border-radius:10px;padding:12px 16px}.team-row-main{flex:1;display:flex;align-items:center;gap:10px}.team-email{font-size:14px;font-weight:500;color:#1a1a2e}.team-pending{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#92400e;background:#fef3c7;border-radius:5px;padding:2px 7px}.team-you{font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;border-radius:5px;padding:2px 7px}.team-role{border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:13px;color:#1a1a2e;background:#fff}body{background:#f7f8fa}.portal-page{min-height:100vh;background:#f7f8fa}.portal-header{background:#1a1a2e;padding:16px 32px}.portal-brand-mark{font-size:18px;font-weight:800;color:#4f8ef7;letter-spacing:.12em}.portal-body{max-width:640px;margin:0 auto;padding:40px 20px}.portal-loading{padding:80px;text-align:center;color:#64748b;font-size:16px;font-family:-apple-system,sans-serif}.portal-welcome{margin-bottom:28px}.portal-welcome h1{font-size:26px;font-weight:700;color:#1a1a2e;margin-bottom:6px;font-family:-apple-system,sans-serif}.portal-welcome p{font-size:15px;color:#475569;font-family:-apple-system,sans-serif}.portal-progress{background:#fff;border-radius:12px;border:1px solid #e8ecf0;padding:16px 20px;margin-bottom:20px}.portal-progress-header{display:flex;justify-content:space-between;font-size:14px;font-weight:500;color:#475569;margin-bottom:10px;font-family:-apple-system,sans-serif}.pct{font-weight:700;color:#4f8ef7}.portal-progress-bar-wrap{background:#f1f5f9;border-radius:8px;height:10px}.portal-progress-bar{background:linear-gradient(90deg,#4f8ef7,#34d399);height:100%;border-radius:8px;transition:width .5s ease}.portal-complete-banner{background:#d1fae5;border:1px solid #a7f3d0;border-radius:10px;padding:14px 18px;font-size:15px;font-weight:600;color:#065f46;margin-bottom:20px;font-family:-apple-system,sans-serif}.portal-section{margin-bottom:28px}.portal-section h2{font-size:16px;font-weight:700;color:#1a1a2e;margin-bottom:12px;font-family:-apple-system,sans-serif}.portal-empty{font-size:14px;color:#94a3b8;font-family:-apple-system,sans-serif}.portal-task{background:#fff;border:1px solid #e8ecf0;border-radius:10px;padding:14px 16px;margin-bottom:8px;transition:border-color .15s}.portal-task:not(.done):not(.hss-task){cursor:pointer}.portal-task:not(.done):not(.hss-task):hover{border-color:#4f8ef7}.portal-task.done{background:#f8fffe;border-color:#d1fae5}.portal-task-top{display:flex;align-items:flex-start;gap:12px}.portal-check{width:24px;height:24px;border-radius:50%;border:2px solid #cbd5e1;background:#fff;font-size:13px;font-weight:700;color:#10b981;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.portal-check.checked{border-color:#10b981;background:#d1fae5}.portal-task-content{flex:1}.portal-task-title{font-size:15px;font-weight:500;color:#1a1a2e;font-family:-apple-system,sans-serif}.portal-task-title.done-title{text-decoration:line-through;color:#94a3b8}.portal-task-desc{font-size:13px;color:#64748b;margin-top:3px;line-height:1.5;font-family:-apple-system,sans-serif}.portal-required{font-size:11px;color:#f59e0b;background:#fef9ee;padding:3px 8px;border-radius:20px;font-weight:600;white-space:nowrap;font-family:-apple-system,sans-serif}.portal-task-expand{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}.portal-task-expand textarea{width:100%;border:1.5px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-size:14px;font-family:-apple-system,sans-serif;color:#1a1a2e;resize:vertical;margin-bottom:8px}.portal-complete-btn{background:#4f8ef7;color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;font-family:-apple-system,sans-serif;transition:background .15s}.portal-complete-btn:hover{background:#3b7de8}.portal-complete-btn:disabled{opacity:.6;cursor:default}.portal-footer{text-align:center;padding:24px 0;font-size:13px;color:#94a3b8;font-family:-apple-system,sans-serif}.portal-footer a{color:#4f8ef7;text-decoration:none}.portal-tabs{display:flex;gap:6px;margin-bottom:20px;background:#f1f5f9;padding:4px;border-radius:10px}.portal-tab{flex:1;border:none;background:none;padding:9px 14px;font-size:14px;font-weight:600;color:#64748b;border-radius:7px;cursor:pointer;font-family:-apple-system,sans-serif}.portal-tab.active{background:#fff;color:#1a1a2e;box-shadow:0 1px 3px #0f172a14}.portal-project{background:#fff;border:1px solid #eef1f6;border-radius:14px;padding:20px;margin-bottom:16px}.portal-project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.portal-project-title{font-size:17px;font-weight:700;color:#1a1a2e}.portal-project-service{font-size:13px;color:#94a3b8;margin-top:2px}.portal-project-desc{font-size:14px;color:#475569;line-height:1.5;margin-bottom:14px}.portal-project-meta{font-size:13px;color:#64748b;margin-top:8px}.portal-status-pill{font-size:11px;font-weight:700;padding:4px 11px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.portal-status-pill.status-planning{background:#eef2ff;color:#4338ca}.portal-status-pill.status-in_progress{background:#eff6ff;color:#1d4ed8}.portal-status-pill.status-review{background:#fffbeb;color:#b45309}.portal-status-pill.status-completed{background:#ecfdf5;color:#047857}.portal-status-pill.status-on_hold{background:#f8fafc;color:#64748b}.portal-status-pill.status-cancelled{background:#fef2f2;color:#dc2626}.portal-milestones{margin-top:14px;border-top:1px solid #f1f5f9;padding-top:12px;display:flex;flex-direction:column;gap:8px}.portal-milestone{display:flex;align-items:center;gap:10px;font-size:14px;color:#475569}.portal-milestone-check{color:#cbd5e1;font-weight:700}.portal-milestone.done{color:#94a3b8}.portal-milestone.done .portal-milestone-check{color:#34d399}.portal-task-note{font-size:13px;color:#1a1a2e;background:#eff6ff;border-radius:7px;padding:7px 10px;margin-top:6px}.portal-task-link{display:inline-block;font-size:13px;font-weight:600;color:#4f8ef7;margin-top:6px;text-decoration:none}.portal-task-link:hover{text-decoration:underline}.cp-progress{margin-bottom:18px}.cp-progress-head{display:flex;justify-content:space-between;font-size:14px;color:#475569;font-weight:600;margin-bottom:8px}.cp-progress-head .pct{color:#4f8ef7}.cp-subhead{font-size:15px;font-weight:700;color:#1a1a2e;margin:22px 0 12px}.cp-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #eef1f6;border-radius:12px;padding:16px 18px;margin-bottom:12px}.cp-row-main{flex:1;min-width:0}.cp-row-title{font-size:15px;font-weight:700;color:#1a1a2e}.cp-row-sub{font-size:13px;color:#94a3b8;margin-top:2px}.cp-row-amount{font-size:16px;font-weight:700;color:#1a1a2e}.cp-row-btn{background:#4f8ef7;color:#fff;text-decoration:none;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;white-space:nowrap}.cp-row-btn:hover{background:#3b7de8}.cp-row-btn.ghost{background:#f1f5f9;color:#475569}.cp-row-btn.ghost:hover{background:#e2e8f0}.portal-empty{text-align:center;color:#94a3b8;font-size:14px;padding:48px 20px;background:#fff;border:1px solid #eef1f6;border-radius:12px}.portal-status-pill.status-draft{background:#f1f5f9;color:#475569}.portal-status-pill.status-sent{background:#eff6ff;color:#1d4ed8}.portal-status-pill.status-viewed{background:#eef2ff;color:#4338ca}.portal-status-pill.status-paid{background:#ecfdf5;color:#047857}.portal-status-pill.status-overdue{background:#fef2f2;color:#dc2626}.portal-status-pill.status-signed{background:#ecfdf5;color:#047857}.portal-status-pill.status-declined{background:#fef2f2;color:#dc2626}.portal-status-pill.status-void{background:#f8fafc;color:#94a3b8}.cp-section-sub{font-size:14px;color:#64748b;margin:-6px 0 16px}.cp-thread{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.cp-note{border-radius:12px;padding:11px 14px;max-width:85%}.cp-note.from-client{background:#eff3ff;align-self:flex-end}.cp-note.from-hss{background:#f1f5f9;align-self:flex-start}.cp-note-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.cp-note-author{font-size:12px;font-weight:700;color:#475569}.cp-note-time{font-size:11px;color:#94a3b8}.cp-note-body{font-size:14px;color:#1a1a2e;line-height:1.5;white-space:pre-wrap}.cp-composer{display:flex;flex-direction:column;gap:10px}.cp-composer textarea{border:1.5px solid #e2e8f0;border-radius:10px;padding:12px 14px;font-size:14px;color:#1a1a2e;resize:vertical;font-family:inherit}.cp-composer textarea:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71f}.cp-composer .portal-complete-btn{align-self:flex-start}.cp-file-link{color:#4f8ef7!important;text-decoration:none}.cp-file-link:hover{text-decoration:underline}.cp-upload{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px dashed #e2e8f0;padding-top:16px;margin-top:14px}.cp-upload-field{border:1.5px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:14px;color:#1a1a2e;flex:1;min-width:160px}.cp-upload-field:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71f}.cp-upload-err{flex-basis:100%;font-size:13px;color:#dc2626}.cp-terms-gate{background:#fff;border:1px solid #eef1f6;border-radius:16px;box-shadow:0 10px 40px #0f172a0f;padding:36px;max-width:560px;margin:8px auto 0}.cp-terms-gate h1{font-size:24px;font-weight:700;color:#1a1a2e;margin-bottom:8px}.cp-terms-intro{font-size:15px;color:#475569;line-height:1.6;margin-bottom:24px}.cp-terms-check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:#334155;line-height:1.55;cursor:pointer}.cp-terms-check input{margin-top:3px;width:16px;height:16px;flex-shrink:0;cursor:pointer}.cp-terms-check a{color:#4f8ef7}.cp-terms-error{font-size:13px;color:#dc2626;margin-top:14px}.cp-terms-btn{margin-top:22px;width:100%}.cp-terms-help{font-size:13px;color:#94a3b8;margin-top:18px;text-align:center}.cp-terms-help a{color:#4f8ef7}.portal-footer-legal{margin-top:6px;font-size:13px}@media(max-width:600px){.cp-terms-gate{padding:26px 20px}.cp-row{flex-wrap:wrap}.cp-row-main{flex-basis:100%}.cp-row-amount{margin-left:auto}.portal-tabs{overflow-x:auto}.portal-tab{white-space:nowrap}.cp-note{max-width:100%}}.cp-file-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;text-align:left}.pub-page{min-height:100vh;background:#f7f8fa;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.pub-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:15px;background:#f7f8fa;font-family:-apple-system,sans-serif}.pub-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0f172a14;max-width:560px;width:100%;padding:36px}.pub-brand{font-size:22px;font-weight:800;color:#1a1a2e;margin-bottom:24px}.pub-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pub-number{font-size:24px;font-weight:700;color:#1a1a2e}.pub-client{font-size:14px;color:#64748b;margin-top:2px}.pub-status{font-size:11px;font-weight:700;padding:4px 11px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.status-draft{background:#f1f5f9;color:#475569}.status-sent{background:#eff6ff;color:#1d4ed8}.status-paid{background:#ecfdf5;color:#047857}.status-overdue{background:#fef2f2;color:#dc2626}.status-void{background:#f8fafc;color:#94a3b8}.pub-dates{font-size:13px;color:#94a3b8;margin:8px 0 22px}.pub-table{width:100%;border-collapse:collapse;font-size:14px}.pub-table th{text-align:left;padding:8px 0;color:#94a3b8;font-size:12px;text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid #eef1f6}.pub-table td{padding:11px 0;color:#1a1a2e;border-bottom:1px solid #f1f5f9}.pub-table .c{text-align:center}.pub-table .r{text-align:right}.pub-total-label{font-weight:700;padding-top:14px!important}.pub-total{font-weight:800;font-size:18px;padding-top:14px!important}.pub-table tfoot td{border-bottom:none}.pub-notes{font-size:13px;color:#64748b;background:#f8fafc;padding:12px 14px;border-radius:9px;margin:18px 0}.pub-pay-btn{display:block;text-align:center;background:#4f8ef7;color:#fff;text-decoration:none;padding:14px;border-radius:10px;font-weight:700;font-size:16px;margin-top:24px;transition:background .15s}.pub-pay-btn:hover{background:#3b7de8}.pub-paid-banner{margin-top:24px;text-align:center;background:#ecfdf5;color:#047857;font-weight:600;padding:14px;border-radius:10px}.pub-nopay{margin-top:24px;text-align:center;color:#94a3b8;font-size:14px}.pub-footer{margin-top:28px;text-align:center;font-size:12px;color:#cbd5e1}@media(max-width:600px){.pub-page{padding:20px 12px}.pub-card{padding:24px 20px}.pub-number{font-size:20px}}.sign-page{min-height:100vh;background:#f7f8fa;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.sign-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:15px;background:#f7f8fa;font-family:-apple-system,sans-serif}.sign-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0f172a14;max-width:640px;width:100%;padding:40px}.sign-brand{font-size:22px;font-weight:800;color:#1a1a2e;margin-bottom:24px}.sign-title{font-size:24px;font-weight:700;color:#1a1a2e}.sign-client{font-size:14px;color:#64748b;margin:4px 0 24px}.sign-body-wrap{background:#f8fafc;border:1px solid #eef1f6;border-radius:12px;padding:24px;max-height:420px;overflow-y:auto;margin-bottom:24px}.sign-body{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.7;color:#1a1a2e;white-space:pre-wrap;word-wrap:break-word;margin:0}.sign-actions{display:flex;flex-direction:column;gap:12px}.sign-label{font-size:13px;font-weight:600;color:#475569}.sign-input{border:1.5px solid #e2e8f0;border-radius:9px;padding:11px 14px;font-size:15px;font-family:inherit}.sign-input:focus{outline:none;border-color:#4f8ef7;box-shadow:0 0 0 3px #4f8ef71a}.sign-typed-preview{font-family:Brush Script MT,Segoe Script,cursive;font-size:30px;color:#1a1a2e;padding:12px 16px;border-bottom:2px solid #1a1a2e;min-height:52px}.sign-agree{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.sign-error{font-size:13px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;padding:8px 12px;border-radius:8px}.sign-btn-row{display:flex;gap:12px;align-items:center;margin-top:6px}.sign-btn{flex:1;background:#4f8ef7;color:#fff;border:none;border-radius:10px;padding:14px;font-weight:700;font-size:16px;cursor:pointer;transition:background .15s}.sign-btn:hover{background:#3b7de8}.sign-btn:disabled{opacity:.5;cursor:default}.sign-decline-btn{background:none;border:1.5px solid #e2e8f0;color:#64748b;border-radius:10px;padding:14px 20px;font-weight:600;font-size:14px;cursor:pointer}.sign-decline-btn:hover{background:#f8fafc}.sign-done-banner{background:#ecfdf5;color:#047857;font-weight:600;padding:16px;border-radius:10px;text-align:center}.sign-declined-banner{background:#fef2f2;color:#dc2626;font-weight:500;padding:16px;border-radius:10px;text-align:center}.sign-footer{margin-top:28px;text-align:center;font-size:12px;color:#cbd5e1}@media(max-width:600px){.sign-page{padding:20px 12px}.sign-card{padding:24px 20px}.sign-title{font-size:20px}.sign-btn-row{flex-direction:column}.sign-decline-btn{width:100%}.sign-input,.sign-agree{font-size:16px}}.legal-page{min-height:100vh;background:#f7f8fa;display:flex;justify-content:center;padding:48px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.legal-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0f172a14;max-width:760px;width:100%;padding:48px}.legal-brand{font-size:18px;font-weight:700;color:#1a1a2e}.legal-title{font-size:28px;font-weight:700;color:#1a1a2e;margin:18px 0 4px}.legal-meta{font-size:13px;color:#94a3b8;margin-bottom:28px}.legal-draft-banner{background:#fef3c7;border:1px solid #fde68a;color:#92400e;font-size:13px;line-height:1.5;border-radius:10px;padding:12px 16px;margin-bottom:28px}.legal-card h2{font-size:17px;font-weight:700;color:#1a1a2e;margin:28px 0 8px}.legal-card p,.legal-card li{font-size:14.5px;line-height:1.7;color:#334155}.legal-card ul{margin:8px 0 8px 18px}.legal-card li{margin-bottom:6px}.legal-card a{color:#4f8ef7}.legal-footer{margin-top:36px;padding-top:20px;border-top:1px solid #eef1f6;font-size:13px;color:#64748b}.legal-footer a{color:#4f8ef7}@media(max-width:600px){.legal-page{padding:20px 12px}.legal-card{padding:28px 22px}}
