*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f6f7f9;color:#1a202c}.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000000f}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:.75rem}.auth-card h1{margin:0;font-size:1.3rem}.subtitle{margin:0;color:#64748b;font-size:.9rem}.tabs{display:flex;gap:.5rem;margin:.25rem 0}.tab{flex:1;padding:.5rem;border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;cursor:pointer;font-size:.9rem}.tab.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#475569}input{padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem}input:focus{outline:2px solid #93c5fd;border-color:#3b82f6}.picker-results{max-height:11rem;overflow-y:auto;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.picker-option{display:block;width:100%;text-align:left;padding:.45rem .7rem;border:none;background:none;font-size:.9rem;color:#0f172a;cursor:pointer}.picker-option:hover,.picker-option:focus{background:#eff6ff;outline:none}.picked{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.95rem;color:#0f172a;background:#f8fafc}.info-grid{display:grid;grid-template-columns:minmax(7rem,auto) 1fr;gap:.35rem 1rem;margin:.6rem 0 0}.info-grid dt{color:#64748b;font-size:.85rem}.info-grid dd{margin:0;font-size:.9rem}.primary{padding:.65rem;background:#1d4ed8;color:#fff;border:none;border-radius:8px;font-size:.95rem;cursor:pointer}.primary:disabled{background:#cbd5e1;color:#f8fafc;cursor:not-allowed}.error{color:#dc2626;font-size:.85rem;margin:0}.hint{color:#64748b;font-size:.85rem}.hint a{color:#1d4ed8}.page{max-width:1100px;margin:0 auto;padding:1rem 1.5rem 3rem}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;margin-bottom:1rem;border-bottom:1px solid #e2e8f0}.badge{margin-left:.6rem;padding:.15rem .55rem;background:#eff6ff;color:#1d4ed8;border-radius:999px;font-size:.75rem}.notice{margin-bottom:1.25rem;font-size:.9rem}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid #f1f5f9;white-space:nowrap}th{background:#f8fafc;color:#475569;font-weight:600}tr:last-child td{border-bottom:none}.pill{padding:.15rem .55rem;border-radius:999px;font-size:.75rem}.pill.pending{background:#fef9c3;color:#854d0e}.pill.approved,.pill.auto_approved{background:#dcfce7;color:#166534}.pill.rejected{background:#fee2e2;color:#991b1b}.link{background:none;border:none;color:#1d4ed8;cursor:pointer;font-size:.85rem;padding:0}.mini{border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;padding:.2rem .5rem;margin-right:.3rem}.mini.approve{color:#166534}.mini.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.mini.reject{color:#991b1b}.reports-head{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center}.reports-head .spacer{flex:1}.presets,.segmented,.date-range{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem}.presets .mini,.segmented .mini{margin-right:0;padding:.3rem .6rem}.date-range input{padding:.3rem .5rem;font-size:.85rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-top:1rem;transition:opacity .15s}.kpi{border:1px solid #e2e8f0;border-radius:10px;padding:.75rem .9rem;background:#f8fafc}.kpi-label{font-size:.72rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:1.3rem;font-weight:700;margin-top:.2rem;font-variant-numeric:tabular-nums}.kpi-sub{font-size:.78rem;color:#64748b;margin-top:.15rem}.kpi.neg .kpi-value{color:#b91c1c}.kpi.warn .kpi-sub{color:#b45309;font-weight:600}button.kpi{font:inherit;color:inherit;text-align:left;width:100%}.kpi.clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.kpi.clickable:hover{border-color:#93c5fd}.kpi.active{border-color:#1d4ed8;box-shadow:inset 0 0 0 1px #1d4ed8;background:#eff6ff}.list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin-bottom:.75rem}.list-toolbar .spacer{flex:1}.list-search{box-sizing:border-box;height:2rem;padding:0 .6rem;font-size:.85rem;min-width:14rem;border-radius:6px}.inline-label{flex-direction:row;align-items:center;gap:.35rem}tr.row-link{cursor:pointer}tr.row-link:hover td{background:#f8fafc}tr.row-link.mine td:first-child{box-shadow:inset 3px 0 #1d4ed8}.loading-dim{opacity:.55}.month-toggle{flex-direction:row;align-items:center;gap:.4rem;margin-top:.9rem;font-size:.85rem;cursor:pointer;width:fit-content}.month-toggle input{padding:0}.reports-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1rem}.reports-grid>div{min-width:0;overflow-x:auto}.reports-grid h3{font-size:.95rem;margin:0 0 .4rem;color:#334155}.reports-grid table{font-size:.82rem}.reports-grid td,.reports-grid th{padding:.3rem .5rem;white-space:normal}.num{text-align:right;font-variant-numeric:tabular-nums}.num .pill{margin-right:-.55rem}tr.subtotal td{border-top:1px solid #cbd5e1;font-weight:600}tr.total td{border-top:2px solid #1a202c;font-weight:700}.edited-dot{color:#1d4ed8;margin-left:.3rem;font-size:.72rem}.pill-select{border:1px solid #e2e8f0;border-radius:999px;padding:.12rem .45rem;font-size:.75rem;cursor:pointer}.pill-select.pending{background:#fef9c3;color:#854d0e}.pill-select.auto_approved,.pill-select.approved{background:#dcfce7;color:#166534}.pill-select.rejected{background:#fee2e2;color:#991b1b}.workspace{--ws-bg: #1b3260;--ws-text: #c8d2e6;--ws-hover: rgba(255, 255, 255, .12);--ws-line: rgba(255, 255, 255, .14);display:flex;height:100vh;background:var(--ws-bg)}.ws-slot{position:relative;z-index:30;flex-shrink:0;width:64px;transition:width .22s ease}.ws-slot.full{width:220px}.ws-sidebar{position:absolute;top:0;bottom:0;left:0;width:100%;display:flex;flex-direction:column;padding:19px 6px .5rem;background:var(--ws-bg);color:var(--ws-text);overflow-x:hidden;overflow-y:auto;scrollbar-width:none;transition:width .22s ease,box-shadow .22s ease,border-radius .22s ease}.ws-sidebar::-webkit-scrollbar{display:none}.ws-sidebar.rail.is-open{width:220px;border-radius:0 14px 14px 0;box-shadow:10px 0 28px #0f172a47}.ws-sidebar.overlay{position:fixed;z-index:41;width:260px;max-width:85vw;border-radius:0 14px 14px 0;box-shadow:8px 0 30px #00000059;animation:ws-slide-in .18s ease-out}@keyframes ws-slide-in{0%{transform:translate(-100%)}to{transform:none}}.ws-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f172a73}.ws-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border:none;border-radius:8px;background:none;cursor:pointer}.ws-icon-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:-2px}.ws-head{position:relative;flex-shrink:0}.ws-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:34px;margin:2px 0 0 6px;border:none;border-radius:10px;background:none;color:var(--ws-text);cursor:pointer;transition:background .15s ease,color .15s ease}.ws-toggle:hover{background:var(--ws-hover);color:#fff}.ws-toggle:focus-visible{outline:2px solid #93c5fd;outline-offset:-2px}.ws-toggle .nav-icon{width:22px;height:22px}.ws-title{position:absolute;top:2px;left:54px;right:-6px;height:34px;line-height:34px;color:#fff;font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);opacity:0;transition:opacity .15s ease}.ws-sidebar.is-open .ws-title{opacity:1;transition-delay:.06s}.ws-pinned .ws-topbar-name{display:none}.ws-pinned .ws-topbar-name+.badge{margin-left:0}.ws-topbar-name{transition:opacity .15s ease}.ws-peek .ws-topbar-name{opacity:0}.ws-divider{flex-shrink:0;height:1px;margin:.35rem 12px;background:var(--ws-line)}.ws-sidebar nav{display:flex;flex-direction:column}.ws-nav{position:relative;flex-shrink:0;display:block;width:100%;padding:3px 0;border:none;background:none;color:var(--ws-text);font:inherit;text-align:left;cursor:pointer}.ws-nav:before{content:"";position:absolute;top:3px;left:6px;width:40px;height:34px;border-radius:10px;transition:width .22s ease,background .15s ease}.ws-sidebar.is-open .ws-nav:before{width:calc(100% - 12px)}.ws-nav:hover:before{background:var(--ws-hover)}.ws-nav.active:before{background:#fff;box-shadow:0 1px 4px #00000038}.ws-nav:focus-visible{outline:none}.ws-nav:focus-visible:before{box-shadow:0 0 0 2px #93c5fd}.ws-icon{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:34px;margin-left:6px}.ws-icon .nav-icon{width:22px;height:22px}.ws-name{position:absolute;top:3px;left:54px;right:14px;height:34px;line-height:34px;font-size:.9rem;white-space:nowrap;overflow:hidden;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 16px),transparent);opacity:0;pointer-events:none;transition:opacity .15s ease}.ws-sidebar.is-open .ws-name{opacity:1;transition-delay:.06s}.ws-nav:hover{color:#fff}.ws-nav.active .ws-icon,.ws-nav.active .ws-name{color:var(--ws-bg)}.ws-nav.active .ws-name{font-weight:700}.ws-signout{margin-top:auto}@media (prefers-reduced-motion: reduce){.ws-slot,.ws-sidebar,.ws-nav:before,.ws-toggle,.ws-name,.ws-title,.ws-topbar-name{transition:none}}.ws-main{flex:1;min-width:0;height:100vh;overflow-y:auto;background:#fff;border-radius:18px 0 0 18px}.ws-main-inner{max-width:1400px;padding:.375rem 1.5rem 3rem}.topbar-inner{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;align-items:center}.ws-menu-btn{color:#334155;margin-right:.5rem}.ws-menu-btn:hover{background:#e2e8f0;color:#0f172a}@media (max-width: 767px){.workspace{height:auto;min-height:100vh;background:#fff}.ws-main{height:auto;overflow:visible;border-radius:0}.ws-main-inner{padding:.5rem 1rem 2rem}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000b3;display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:2rem}.modal img{max-width:90vw;max-height:90vh;border-radius:8px;background:#fff}.modal-card{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;cursor:auto;box-shadow:0 10px 40px #0000004d}.modal-head{padding:1.25rem 1.5rem .75rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.modal-scroll{overflow-y:auto;flex:1 1 auto;min-height:0;padding:.5rem 1.5rem}.modal-foot{padding:.75rem 1.5rem;border-top:1px solid #e2e8f0;flex-shrink:0;text-align:right;font-size:.9rem;color:#475569}.glance{container-type:inline-size;margin-bottom:1.25rem}.glance-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.glance-head h2{margin:0;font-size:1.15rem}.glance-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;transition:opacity .15s}@container (min-width: 760px){.glance-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}}.glance-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;gap:.9rem;min-width:0}.glance-title{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#334155}.glance-empty{margin:0;color:#64748b;font-size:.95rem}.glance-btn{margin-top:auto;width:100%;padding:.5rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-size:.88rem;cursor:pointer}.glance-btn:hover{background:#f8fafc;border-color:#94a3b8}.glance-big{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.glance-big .neg{color:#b91c1c}.glance-big .hint{font-size:.85rem;font-weight:400}.bank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.bank-list li{display:flex;align-items:center;gap:.7rem}.bank-avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:#eff6ff;color:#1d4ed8;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.bank-name{flex:1;min-width:0;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-amt{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-size:.92rem}.bank-sub{display:block;color:#64748b;font-size:.75rem;font-weight:400}.funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}.funnel-stage{border:1px solid #e2e8f0;border-top:6px solid #cbd5e1;border-radius:8px;padding:.8rem .9rem}.funnel-stage.open{border-top-color:#60a5fa}.funnel-stage.overdue{border-top-color:#f59e0b}.funnel-stage.paid{border-top-color:#16a34a}.funnel-label{color:#475569;font-size:.88rem}.funnel-amt{font-size:1.25rem;font-weight:700;margin:.5rem 0 .25rem;font-variant-numeric:tabular-nums}.funnel-stage .hint{font-size:.75rem}.donut-wrap{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.donut{width:150px;height:150px;flex-shrink:0}.donut-total{font-size:15px;font-weight:700;fill:#0f172a}.donut-caption{font-size:11px;fill:#64748b}.donut-legend{list-style:none;margin:0;padding:0;flex:1;min-width:180px;display:flex;flex-direction:column;gap:.45rem}.donut-legend li{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.legend-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-amt{font-variant-numeric:tabular-nums;font-weight:600}.legend-pct{width:2.6rem;text-align:right;color:#64748b;font-variant-numeric:tabular-nums}.acct{position:relative}.acct-btn{display:inline-flex;align-items:center;gap:.5rem;max-width:260px;padding:.3rem .5rem .3rem .3rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#0f172a;font:inherit;font-size:.88rem;cursor:pointer}.acct-btn:hover,.acct-btn.open{background:#eff6ff;border-color:#bfdbfe}.acct-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.acct-avatar{width:28px;height:28px;flex-shrink:0;border-radius:50%;background:#1d4ed8;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.acct-btn-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-tag{padding:.1rem .4rem;border-radius:4px;background:#e2e8f0;color:#334155;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.acct-chevron{display:inline-flex;color:#64748b;transition:transform .15s}.acct-chevron .nav-icon{width:16px;height:16px}.acct-btn.open .acct-chevron{transform:rotate(180deg)}.acct-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;width:290px;max-width:calc(100vw - 2rem);background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 12px 32px #0f172a29;overflow:hidden}.acct-section{padding:1rem 1rem .6rem}.acct-section+.acct-section{border-top:1px solid #e2e8f0}.acct-who{display:flex;align-items:center;gap:.75rem;margin-bottom:.4rem}.acct-icon{width:40px;height:40px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1e293b}.acct-icon.company{background:#dbeafe}.acct-icon.person{background:#cffafe}.acct-name{display:flex;flex-direction:column;min-width:0;font-size:.95rem}.acct-name strong,strong.acct-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-email{color:#64748b;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-item{display:block;width:100%;padding:.5rem .5rem .5rem 3.25rem;border:none;border-radius:8px;background:none;color:#0f172a;font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.acct-item:hover,.acct-item:focus-visible{background:#f1f5f9;outline:none}.acct-page-title{margin:.5rem 0 1rem;font-size:1.5rem}.settings-layout{display:grid;grid-template-columns:220px minmax(0,720px);gap:1.5rem;align-items:start}.settings-tabs{display:flex;flex-direction:column;gap:.25rem}.settings-tab{display:flex;align-items:center;gap:.6rem;padding:.55rem .7rem;border-radius:8px;color:#334155;text-decoration:none;font-size:.92rem}.settings-tab:hover{background:#e2e8f0}.settings-tab.active{background:#1d4ed8;color:#fff}.settings-tab .nav-icon{width:18px;height:18px}.settings-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.settings-card-head h2{margin:0;font-size:1.05rem}.settings-card-head .mini{padding:.35rem .9rem;margin:0}.settings-saved{margin:.6rem 0 0;color:#166534;font-size:.88rem}.settings-form{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem;max-width:460px}.settings-form input:disabled{background:#f1f5f9;color:#64748b}.settings-form .hint{font-size:.78rem}.settings-static{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}.settings-static-label{font-size:.85rem;color:#475569}.settings-actions{display:flex;justify-content:flex-end;align-items:center;gap:.5rem}.settings-actions .primary{padding:.55rem 1.1rem}@media (max-width: 760px){.settings-layout{grid-template-columns:minmax(0,1fr);gap:1rem}.settings-side{position:static}.settings-tabs{flex-direction:row;overflow-x:auto;padding-bottom:.25rem}.settings-tab{white-space:nowrap;font-size:.85rem;padding:.45rem .65rem}}@media (max-width: 600px){.acct-btn-name,.acct-tag{display:none}}.glance-title-note{margin-left:.4rem;font-weight:400;letter-spacing:0;text-transform:none;color:#64748b}.settings-side{position:sticky;top:1rem}.settings-side-title{margin:0 0 .75rem;padding:0 .7rem;font-size:1.4rem}.settings-intro{margin:.4rem 0 0}.settings-card-gap{margin-top:1rem}.settings-list{list-style:none;margin:.75rem 0 0;padding:0}.settings-list li,.settings-row{display:flex;align-items:center;gap:.8rem;padding:.8rem 0;border-top:1px solid #f1f5f9}.settings-list li:first-child{border-top:none}.settings-row{margin-top:.75rem;border-top:1px solid #e2e8f0;padding-bottom:0}.settings-list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;font-size:.92rem}.settings-list-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-list-main .hint{font-size:.8rem}.settings-row .mini,.biz-link{margin:0;flex-shrink:0}.biz-link{text-decoration:none;color:#0f172a;padding:.35rem .8rem}.biz-avatar{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:#dbeafe;color:#1e3a8a;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.biz-avatar.client{background:#f1f5f9;color:#334155}.switch{position:relative;flex-shrink:0;width:42px;height:24px;border-radius:999px;border:none;background:#cbd5e1;cursor:pointer;padding:0;transition:background .15s}.switch.on{background:#1d4ed8}.switch:disabled{cursor:progress;opacity:.7}.switch:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.switch.on .switch-knob{transform:translate(18px)}.glance-head .hint{font-size:.85rem}.pl-split{display:flex;flex-direction:column;gap:.5rem}.pl-split-whole{display:flex;justify-content:space-between;font-size:.88rem;color:#475569}.pl-split-whole strong{color:#0f172a;font-variant-numeric:tabular-nums}.pl-split-bar{display:flex;gap:2px;height:16px}.pl-split-seg{min-width:4px;height:100%;border-radius:4px}.pl-split-legend{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.pl-split-legend li{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.pl-split-note{margin:0;text-align:right;font-size:.72rem;color:#94a3b8}.auth-progress{margin:.5rem 0 .25rem}.auth-step-label{margin:0;color:#1d4ed8;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.auth-step-title{margin:.25rem 0 0;color:#0f172a;font-size:1.15rem;font-weight:700;line-height:1.3}.field-error{color:#dc2626;font-size:.78rem}input[aria-invalid=true]{border-color:#f87171}.chat-launcher{position:fixed;right:8px;bottom:8px;z-index:35;padding:0;border:0;border-radius:40px;background:none;cursor:pointer;transition:transform .2s ease}.chat-launcher:hover{transform:translateY(-2px)}.chat-launcher:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.chat-panel{position:fixed;right:20px;bottom:20px;z-index:36;width:390px;max-width:calc(100vw - 2rem);height:min(660px,calc(100vh - 40px));display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 18px 50px #0f172a47;overflow:hidden;overflow:clip;transform-origin:bottom right;animation:chat-in .24s cubic-bezier(.2,.8,.3,1)}.chat-panel.is-closing{animation:chat-out .2s ease-in forwards}.chat-panel.is-expanded{top:20px;right:20px;bottom:20px;left:20px;width:auto;height:auto;max-width:none}@keyframes chat-in{0%{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}@keyframes chat-out{to{opacity:0;transform:translateY(28px) scale(.97)}}.chat-head{display:flex;align-items:center;gap:.5rem;padding:9px 11px 9px 10px;background:#1b3260;color:#fff}.chat-head-title{flex:1;min-width:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,Times New Roman,serif;font-size:1.3rem;font-weight:600;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-head-actions{display:flex;align-items:center;gap:.15rem}.chat-icon-btn{width:38px;height:38px;border:none;border-radius:10px;background:none;color:#cbd5e1;display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-icon-btn:hover:not(:disabled){background:#ffffff1f;color:#fff}.chat-icon-btn.is-on{background:#ffffff2e;color:#fff}.chat-icon-btn:disabled{color:#cbd5e166;cursor:default}.chat-icon-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.chat-list{flex:1;overflow-y:auto;padding:1.25rem 1.1rem .75rem;display:flex;flex-direction:column;gap:.9rem}.chat-start{position:relative;isolation:isolate;padding:.35rem 0 .5rem}.chat-start:before{content:"";position:absolute;z-index:-1;top:-1.25rem;left:-1.1rem;right:-1.1rem;height:14rem;background:linear-gradient(105deg,#cfd4dc 10%,#d3d6f1,#c3c9f8);-webkit-mask-image:radial-gradient(circle,#000 1px,transparent 1.6px),linear-gradient(to bottom,#000 40%,transparent);-webkit-mask-size:14px 14px,100% 100%;-webkit-mask-composite:source-in;mask-image:radial-gradient(circle,#000 1px,transparent 1.6px),linear-gradient(to bottom,#000 40%,transparent);mask-size:14px 14px,100% 100%;mask-composite:intersect;pointer-events:none}.chat-start h2{margin:.6rem 0 0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,Times New Roman,serif;font-size:1.4rem;font-weight:600;line-height:1.3;color:#1f2937}.chat-start-name{white-space:nowrap;background:linear-gradient(90deg,#ee8a3c,#b65fd6 55%,#6b6cf2);-webkit-background-clip:text;background-clip:text;color:transparent}.chat-stamp{margin-bottom:.3rem;font-size:.72rem;color:#9ca3af}.chat-stamp.user{text-align:right}.chat-stamp.assistant{padding-left:calc(30px + .6rem)}.chat-notice{margin:.5rem 0;text-align:center;color:#475569;font-size:.9rem}.chat-row{display:flex;gap:.6rem;align-items:flex-start}.chat-row.user{justify-content:flex-end}.chat-text{flex:1;min-width:0;color:#1f2937;font-size:.95rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;padding-top:.2rem}.chat-text p{margin:0 0 .6rem;white-space:normal}.chat-text p:last-of-type{margin-bottom:0}.chat-text.failed{color:#b91c1c}.chat-actions{display:flex;align-items:center;gap:2px;margin:.35rem 0 0 -5px;opacity:0;transition:opacity .15s ease}.chat-row.assistant:hover .chat-actions,.chat-actions:focus-within,.chat-actions.has-note{opacity:1}.chat-action-note{margin-left:.45rem;font-size:.78rem;color:#64748b;white-space:nowrap;animation:chat-tip-in .16s ease-out both}.chat-action-note.failed{color:#b91c1c}@media (hover: none){.chat-actions{opacity:1}}.chat-action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:none;color:#6b7280;cursor:pointer}.chat-action:hover:not(:disabled){background:#e8ecf3;color:#374151}.chat-action.is-on{color:#1b3260}.chat-action:disabled{color:#cbd5e1;cursor:default}.chat-action:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.chat-bubble{max-width:80%;padding:.6rem .85rem;border-radius:16px 16px 4px;background:#1b3260;color:#fff;font-size:.93rem;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.chat-bubble-quote{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.4rem;padding-left:.55rem;border-left:2px solid rgba(255,255,255,.45);color:#ffffffc7;font-size:.82rem}.chat-suggestions{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:2.2rem}.chat-chip{max-width:100%;padding:.65rem 1.1rem;border:1px solid #e3e6eb;border-radius:999px;background:#fff;color:#1f2937;font:inherit;font-size:.9rem;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.chat-chip:hover{border-color:#c7cdf6;background:#f9f9ff;box-shadow:0 2px 8px #6366f11a}.chat-typing{display:flex;gap:4px;align-items:center;padding:.7rem 0}.chat-typing span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:chat-dot 1s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chat-input{display:flex;align-items:flex-end;gap:.4rem;padding:.35rem .35rem .35rem 1.1rem;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:#fff;box-shadow:0 6px 18px #6366f11f,0 1px 3px #0f172a0f;transition:box-shadow .25s ease}.chat-input:focus-within{box-shadow:0 8px 24px #6366f133,0 0 0 3px #818cf82e}.chat-input textarea{flex:1;resize:none;max-height:110px;padding:.45rem 0;border:none;outline:none;font:inherit;font-size:.95rem;background:transparent}.chat-send{width:36px;height:36px;flex-shrink:0;border:none;border-radius:50%;background:#1b3260;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-send:disabled{background:#9ca3af;cursor:not-allowed}.chat-note{margin:0 0 .6rem;padding:0 .4rem;font-size:.72rem;color:#94a3b8;text-align:center}.chat-quote{display:flex;align-items:flex-start;gap:.4rem;margin:0 .25rem .5rem;padding:.45rem .35rem .45rem .7rem;border-left:3px solid #818cf8;border-radius:8px;background:#ffffffe0;box-shadow:0 1px 3px #0f172a0f;color:#475569;font-size:.82rem;line-height:1.4}.chat-quote-text{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.chat-quote-remove{flex-shrink:0;width:22px;height:22px;border:0;border-radius:6px;background:none;color:#64748b;font-size:1.05rem;line-height:1;cursor:pointer}.chat-quote-remove:hover{background:#eef2f7;color:#1f2937}.chat-compose{position:relative;isolation:isolate;padding:1.6rem .85rem .85rem}.chat-compose:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(100deg,#ffd3b6,#ffc2d4,#e6c9fb 44%,#c3cdff 64%,#b6d7ff,#ffd3b6);background-size:300% 100%;-webkit-mask-image:linear-gradient(to top,#000 0%,#000 42%,rgba(0,0,0,.45) 72%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,#000 42%,rgba(0,0,0,.45) 72%,transparent 100%);animation:chat-rainbow-flow 14s ease-in-out infinite alternate,chat-rainbow-breathe 4.5s ease-in-out infinite;transition:filter .4s ease}.chat-compose:focus-within:before{filter:saturate(1.35) brightness(1.02);animation-duration:9s,3s}@keyframes chat-rainbow-flow{0%{background-position:0% 50%}to{background-position:100% 50%}}@keyframes chat-rainbow-breathe{0%,to{opacity:.6}50%{opacity:1}}.chat-tip{position:fixed;z-index:1200;transform:translate(-50%,-100%);padding:.42rem .7rem;border-radius:8px;background:#273142;color:#fff;font-size:.82rem;line-height:1.2;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px #0f172a38;animation:chat-tip-in .16s ease-out both}.chat-tip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#273142}.chat-tip.below{transform:translate(-50%)}.chat-tip.below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#273142}.chat-tip.leaving{animation:chat-tip-out .16s ease-in both}@keyframes chat-tip-in{0%{opacity:0}to{opacity:1}}@keyframes chat-tip-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.chat-compose:before{animation:none;opacity:.85}.chat-panel,.chat-panel.is-closing,.chat-tip,.chat-tip.leaving{animation:none}}@media (max-width: 480px){.chat-panel,.chat-panel.is-expanded{top:0;right:0;bottom:0;left:0;width:auto;max-width:none;height:auto;border-radius:0}.chat-launcher{right:8px;bottom:6px}}.chat-history{flex:1;min-height:0;overflow-y:auto;padding:.4rem .6rem 1rem}.chat-history-head{display:flex;align-items:center;gap:.35rem;padding:.35rem .2rem .6rem}.chat-history-head strong{font-size:1rem;color:#111827}.chat-history-back{width:32px;height:32px;border:0;border-radius:8px;background:none;color:#334155;display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-history-back:hover{background:#f1f5f9}.chat-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.chat-history-item{width:100%;display:flex;flex-direction:column;gap:.15rem;padding:.65rem .75rem;border:0;border-radius:10px;background:none;text-align:left;font:inherit;cursor:pointer}.chat-history-item:hover{background:#f8fafc}.chat-history-item.is-current{background:#eef2ff}.chat-history-title{color:#0f172a;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-meta{color:#64748b;font-size:.78rem}.chat-cleared{margin:auto 0;padding:0 1rem;text-align:center;color:#94a3b8;font-size:.85rem}.job-form{display:grid;gap:.75rem;padding:.5rem 0}.job-form.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.job-form .span-2{grid-column:1 / -1}.job-form .hint{font-size:.75rem}.job-form textarea{padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:.95rem;color:#0f172a;resize:vertical}@media (max-width: 560px){.job-form.two-col{grid-template-columns:minmax(0,1fr)}}.form-error{color:#991b1b;font-size:.85rem;margin-right:.75rem}.modal-foot .form-error{float:left;line-height:1.9}tr.req-new input{width:100%;min-width:0;padding:.3rem .45rem;font-size:.85rem}tr.req-new td{background:#f8fafc}td.job-comment{max-width:220px;white-space:normal;color:#475569;font-size:.85rem}.job-calc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;margin:.25rem 0 .75rem}.job-calc div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem .7rem}.job-calc dt{font-size:.75rem;color:#64748b}.job-calc dd{margin:.1rem 0;font-weight:600;font-variant-numeric:tabular-nums}.job-calc span{font-size:.7rem;color:#94a3b8}.job-calc div.over-billed{background:#eff6ff;border-color:#93c5fd}.job-calc div.under-billed{background:#fff7ed;border-color:#fdba74}.job-calc div.over-billed :is(dt,dd),.over-under.over{color:#1d4ed8}.job-calc div.under-billed :is(dt,dd),.over-under.under{color:#c2410c}.over-under{font-weight:600;white-space:nowrap}.over-under small{padding:0 .3rem;border-radius:4px;font-size:.7rem}.over-under.over small{background:#dbeafe}.over-under.under small{background:#ffedd5}td.req-actions{white-space:nowrap}td.req-actions>*+*{margin-left:.6rem}table.hover-rows tbody tr:hover td{background:#eff6ff}.data-grid{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.data-grid-scroll{height:32rem;overflow:auto}.data-grid-scroll.fit{height:auto;max-height:32rem}.data-grid th.grid-th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-grid th.grid-th.sortable:hover{background:#f8fafc}.data-grid th.grid-th.is-sorted{background:#f1f5f9}.grid-sort{margin-left:.35rem;font-size:.8rem;color:#94a3b8;visibility:hidden}.grid-th.sortable:hover .grid-sort,.grid-th.is-sorted .grid-sort{visibility:visible}.grid-th.is-sorted .grid-sort{color:#0f172a}.grid-grip{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;touch-action:none}.grid-grip:hover,.grid-grip:active{box-shadow:inset -2px 0 #3b82f6}.data-grid table.cols-fixed{table-layout:fixed}.data-grid table.cols-fixed th,.data-grid table.cols-fixed td{overflow:hidden;text-overflow:ellipsis}.coa-tools,.grid-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem}.search-field{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:0}.search-field svg{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:#64748b;pointer-events:none}.coa-tools .dropdown-button,.grid-tools .dropdown-button{min-width:14rem}.search-field .list-search{height:2.6rem;min-width:20rem;padding:0 .75rem 0 2.4rem;font-size:.95rem;border:1px solid #cbd5e1;border-radius:8px}.filter-chip{display:inline-flex;align-items:center;gap:.35rem;margin-top:.6rem;padding:.3rem .4rem .3rem .85rem;border:1px solid #94a3b8;border-radius:999px;background:#e2e8f0;color:#334155;font-size:.9rem}.filter-chip button{border:none;background:none;padding:0 .3rem;color:#475569;font-size:.95rem;line-height:1;cursor:pointer}.filter-chip button:hover{color:#0f172a}.cell-name{display:flex;align-items:center;gap:.4rem;min-width:0}.cell-name>*{min-width:0}.cell-name .inline-edit{flex:1;text-overflow:ellipsis}.cell-name .name-text{overflow:hidden;text-overflow:ellipsis}.sub-mark{color:#94a3b8}.data-grid table{border-collapse:separate;border-spacing:0}.data-grid th,.data-grid td{height:2.75rem;padding:0 .8rem;white-space:nowrap;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.data-grid tr:last-child td{border-bottom:1px solid #e2e8f0}.data-grid th:last-child,.data-grid td:last-child{border-right:none}.data-grid th{position:sticky;top:0;z-index:1;background:#fff;color:#0f172a;font-weight:600}.data-grid tfoot td{position:sticky;bottom:0;z-index:1;background:#fff;font-weight:600;border-top:2px solid #94a3b8}.data-grid td.job-comment{max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-grid td.cell-clip{max-width:20rem;overflow:hidden;text-overflow:ellipsis}.data-grid-scroll::-webkit-scrollbar{width:10px;height:10px}.data-grid-scroll::-webkit-scrollbar-track{background:#f8fafc}.data-grid-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid #f8fafc}.data-grid-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.data-grid-scroll::-webkit-scrollbar-corner{background:#f8fafc}.data-grid-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.55rem .75rem;border-top:1px solid #e2e8f0;font-size:.85rem;color:#475569}.data-grid-foot input{width:3.4rem;padding:.3rem .45rem;font-size:.85rem;text-align:center}.grid-btn{width:2rem;height:2rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:.95rem}.grid-btn:hover:not(:disabled){background:#f1f5f9}.grid-btn:disabled{color:#cbd5e1;cursor:default}.jobs-head{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.export-bar{display:inline-flex;gap:.5rem;align-items:center}.modal-card.job-edit-card{max-width:1180px;height:min(85vh,46rem)}.job-edit-card .modal-scroll table{table-layout:fixed;min-width:64rem}.job-edit-card .modal-scroll th:nth-child(1),.job-edit-card .modal-scroll td:nth-child(1){width:4.5rem}.job-edit-card .modal-scroll th:last-child,.job-edit-card .modal-scroll td:last-child{width:8.5rem}.job-edit-card .modal-scroll table.wip-table{table-layout:auto;min-width:0}.job-edit-card .modal-scroll table.wip-table th,.job-edit-card .modal-scroll table.wip-table td{width:auto}.wip-table td.wrap{white-space:normal}.job-edit-card tr.req-new input[type=date]{min-width:8.5rem}.jobs-head .spacer{flex:1}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1rem 2rem}.empty-state .empty-art{display:flex;align-items:flex-end;justify-content:center;gap:.25rem;max-width:100%;margin-bottom:1.5rem}.empty-state .empty-art img{height:150px;width:auto;max-width:30%;object-fit:contain}.empty-state h3{margin:0 0 .5rem;font-size:1.35rem;color:#0f172a}.empty-state p{margin:0 0 1.4rem;max-width:34rem;color:#475569}.empty-state .primary{padding:.65rem 1.4rem}.contractors-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.contractors-head h2{margin:0;font-size:1.5rem;color:#0f172a}.contractors-head .spacer,.contractors-tools .spacer{flex:1}.contractors-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}.contractors-tools .list-search{min-width:14rem}.outline-btn{padding:.55rem 1rem;border:1px solid #1d4ed8;border-radius:8px;background:#fff;color:#1d4ed8;font-weight:600;cursor:pointer}.outline-btn:hover{background:#eff6ff}.contractor-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.contractor-card{display:grid;grid-template-columns:minmax(10rem,1.3fr) minmax(9rem,1fr) minmax(12rem,2fr) auto;align-items:center;gap:1rem;padding:1.4rem 1.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 2px #0f172a0f}.contractor-name{display:flex;flex-direction:column;gap:.15rem;font-size:1.05rem;min-width:0}.w9-status{display:flex;align-items:center;gap:.6rem;color:#1e293b}.w9-icon{flex-shrink:0;color:#64748b}.w9-status.on_file .w9-icon{color:#16a34a}.w9-status.missing .w9-icon{color:#dc2626}.contractor-payment{display:flex;flex-direction:column;gap:.2rem}.contractor-payment .link{font-size:.95rem;text-align:left}.contractor-actions{position:relative;display:flex;align-items:center;gap:.5rem;justify-self:end}.contractor-actions .link.strong{font-weight:700;font-size:.95rem}.row-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;min-width:12rem;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a1f;padding:.3rem}.row-menu button{text-align:left;padding:.5rem .7rem;border:none;background:none;border-radius:6px;cursor:pointer;font-size:.9rem;color:#0f172a}.row-menu button:hover{background:#f1f5f9}.contractors-foot{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:1rem;color:#475569;font-size:.9rem}@media (max-width: 760px){.contractor-card{grid-template-columns:1fr;gap:.6rem}.contractor-actions{justify-self:start}}.w9-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:2rem;min-height:26rem;padding:1rem 1.5rem}.w9-intro-text h1{margin:1.5rem 0 .75rem;font-size:2.6rem;line-height:1.15;color:#1f2937}.w9-intro-text p{margin:0 0 2rem;font-size:1.2rem;color:#475569}.w9-intro-text .w9-start{padding:.75rem 1.6rem;font-size:1.05rem}.w9-intro-art{position:relative;height:24rem}.w9-intro-circle{position:absolute;right:4%;top:6%;width:18rem;height:18rem;border-radius:50%;background:#dbeafe}.w9-intro-art img{position:absolute;right:18%;bottom:0;height:21rem}.doc-card{position:absolute;width:4.2rem;height:5.2rem;padding:.55rem .5rem;border-radius:4px;background:#fff;box-shadow:0 4px 14px #0f172a1f;display:flex;flex-direction:column;gap:.35rem}.doc-card span{font-weight:800;font-style:italic;font-size:.85rem;color:#1d4ed8}.doc-card i{display:block;height:.3rem;border-radius:999px;background:#93c5fd}.doc-card i+i{width:60%;background:#5eead4}.doc-w9{left:2%;top:14%;transform:rotate(-8deg)}.doc-1099{left:12%;top:40%;transform:rotate(10deg)}@media (max-width: 760px){.w9-intro{grid-template-columns:1fr}.w9-intro-text h1{font-size:2rem}.w9-intro-art{height:18rem}.w9-intro-art img{height:16rem}.w9-intro-circle{width:13rem;height:13rem}}.w9-flow-top{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#1f2937}.w9-progress{height:8px;margin:.6rem 0 0;border:1px solid #1d4ed8;border-radius:999px;overflow:hidden}.w9-progress>span{display:block;height:100%;background:#1d4ed8;border-radius:999px;transition:width .25s ease}.w9-flow-body{max-width:44rem;margin:0 auto;padding:2rem 0 1rem}.w9-flow-body h1{margin:0 0 .5rem;font-size:2.2rem;line-height:1.2;color:#1f2937}.w9-lead{margin:0 0 2rem;font-size:1.1rem;color:#475569}.w9-kind{border:none;padding:0;margin:0 0 1.25rem;display:flex;gap:2rem;flex-wrap:wrap}.w9-kind legend{font-weight:600;color:#1f2937;margin-bottom:.75rem;padding:0}.w9-kind label{flex-direction:row;align-items:center;gap:.5rem;font-size:1rem;color:#1f2937;cursor:pointer}.w9-kind input{width:1.2rem;height:1.2rem;accent-color:#1d4ed8}.w9-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.25rem}.w9-grid .span-2{grid-column:1 / -1}.w9-grid .hint .link{font-size:inherit}.w9-city-row{display:grid;grid-template-columns:1fr 2fr 1.2fr;gap:1.25rem}.w9-actions{display:flex;gap:.9rem;margin-top:2rem}.w9-actions .primary,.w9-actions .outline-btn{padding:.65rem 1.4rem}.w9-alert{display:flex;align-items:center;gap:.6rem;margin:0 0 1.5rem;padding:1rem 1.25rem;border:1px solid #cbd5e1;border-radius:6px;background:#f1f5f9;color:#b91c1c}.w9-preview{display:inline-flex;align-items:center;gap:.5rem;font-size:1.05rem;margin:0 0 1.25rem}.w9-cert{background:#f8fafc;border-radius:10px;padding:1.25rem 1.5rem;font-size:.85rem;color:#334155;line-height:1.55}.w9-cert p{margin:0 0 .6rem}.w9-cert ol,.w9-cert ul{margin:0 0 .9rem;padding-left:1.3rem}.w9-cert ul{list-style:"- "}.w9-sign{margin-top:1.5rem}@media (max-width: 640px){.w9-grid,.w9-city-row{grid-template-columns:1fr}.w9-flow-body h1{font-size:1.7rem}}.w9-public{min-height:100vh;background:#f6f7f9;padding:1rem 1rem 3rem}.w9-public-head{max-width:1100px;margin:0 auto 1rem;font-size:1.25rem;color:#1d4ed8}.w9-public-card{max-width:1100px;margin:0 auto}.w9-closed{padding:3rem 1rem;text-align:center}.w9-closed h1{margin:0 0 .5rem;font-size:1.8rem;color:#1f2937}.w9-closed p{color:#475569}.modal-card.invite-card{max-width:560px;position:relative;overflow:visible}.invite-close{position:absolute;top:.9rem;right:.9rem;width:2.4rem;height:2.4rem;border:1px solid #94a3b8;border-radius:8px;background:#fff;font-size:1.5rem;line-height:1;color:#334155;cursor:pointer}.invite-close:hover{background:#f1f5f9}.invite-body{padding:2.25rem 2.25rem 2rem;display:flex;flex-direction:column;gap:1.1rem}.invite-body h2{margin:0 0 .25rem;text-align:center;font-size:1.6rem;color:#1f2937}.invite-body>label:not(.invite-check){font-weight:600;color:#475569}.invite-body>label input{font-weight:400}.invite-check{flex-direction:row;align-items:flex-start;gap:.7rem;font-size:.98rem;color:#1f2937;line-height:1.45;cursor:pointer}.invite-check input{width:1.25rem;height:1.25rem;margin-top:.15rem;accent-color:#1d4ed8;flex-shrink:0}.invite-how{align-self:flex-start;margin-left:1.95rem;font-size:.95rem}.invite-how-text{margin:-.5rem 0 0 1.95rem}.invite-error{margin:0;text-align:center}.invite-actions{display:flex;justify-content:center;margin-top:.4rem}.invite-actions .primary{padding:.65rem 1.5rem}.invite-link{display:flex;gap:.5rem}.invite-link input{flex:1;min-width:0;font-size:.85rem;color:#334155}.invite-reminder h2{text-align:left}.invite-lead{margin:-.25rem 0 .25rem;color:#334155;line-height:1.55}.invite-reminder label input:disabled{background:#fff;color:#64748b;border-color:#cbd5e1}.invite-actions-split{justify-content:flex-end;gap:1rem;flex-wrap:wrap}.invite-actions-split .outline-btn,.invite-actions-split .primary{padding:.65rem 1.3rem}.contractor-link{font-size:inherit;font-weight:700;color:#0f172a;text-align:left}.contractor-link:hover{color:#1d4ed8;text-decoration:underline}.contractor-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap;margin:1rem 0 1.5rem}.contractor-page-head h1{margin:0 0 .5rem;font-size:2.4rem;color:#0f172a}.contractor-request{display:flex;flex-direction:column;gap:.6rem;padding-left:1.5rem;border-left:1px solid #e2e8f0;min-width:16rem;max-width:22rem}.contractor-request p{margin:0;line-height:1.5;color:#1f2937}.contractor-request .link{font-size:.95rem}.contractor-tabs{display:flex;gap:.5rem;border-bottom:6px solid #f1f5f9;margin-bottom:1.5rem}.contractor-tabs button{background:none;border:none;padding:.7rem 1.1rem;font-size:1.05rem;color:#334155;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-6px}.contractor-tabs button.active{border-bottom-color:#1d4ed8;color:#0f172a;font-weight:600}.contractor-section{border:1px solid #e2e8f0;border-radius:8px;padding:1.4rem 1.6rem}.contractor-section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}.contractor-section-head h2{margin:0;font-size:1.35rem;color:#0f172a;font-weight:600}.contractor-section-head .link{font-size:1rem}.contractor-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem 2rem;margin:0}.contractor-facts dt{font-size:.8rem;color:#64748b}.contractor-facts dd{margin:.15rem 0 0;color:#0f172a}.contractor-status{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.status-menu{position:relative}.status-toggle{background:none;border:none;padding:0;font-size:1.15rem;font-weight:700;color:#0f172a;cursor:pointer}.status-menu-list{left:0;right:auto;min-width:11rem}.pay-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.pay-summary{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 1rem;padding:0 .25rem;font-size:1.05rem;color:#1f2937}.pay-total{font-size:1.5rem;margin-left:.75rem}.pay-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1rem 2rem}.pay-empty-art{width:260px;max-width:80%;height:auto;margin-bottom:1.25rem}.pay-empty h3{margin:0;max-width:30rem;font-size:1.5rem;line-height:1.3;color:#0f172a}.contractor-docs{display:flex;flex-direction:column;gap:.6rem}.doc-row{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 1.6rem;background:#eef4f3;border-radius:4px}.doc-row strong{font-size:1.25rem;color:#0f172a}.doc-status{color:#334155}.chevron{display:block;flex-shrink:0}.contractor-actions .menu-toggle{display:inline-flex;align-items:center;padding:.15rem}.status-toggle{display:inline-flex;align-items:center;gap:.3rem}.back-link{display:inline-flex;align-items:center;gap:.1rem;margin:0 0 .6rem -.3rem;padding:.2rem .55rem .2rem .2rem;border:none;border-radius:6px;background:none;color:#2563eb;font:inherit;font-size:1.05rem;font-weight:500;line-height:1;cursor:pointer}.back-link:hover{background:#eff6ff;color:#1d4ed8}.back-link:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.deleted-tag{font-weight:400;color:#64748b}.contractor-link .deleted-tag{font-size:.95rem}.doc-facts{background:#eef4f3;border-radius:4px;padding:.25rem 1.6rem 1.4rem;margin-top:-.6rem}.contractor-card{cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s}.contractor-card:hover{background:#f5f8ff;border-color:#bfdbfe;box-shadow:0 2px 8px #1d4ed814}.contractor-card:hover .contractor-link{color:#1d4ed8}.contractor-card:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.contractor-payment,.contractor-actions{cursor:default}.contractors-tools .list-search,.contractors-tools .outline-btn,.contractors-tools .primary{box-sizing:border-box;height:2.6rem;font-size:.95rem;border-radius:8px;margin:0}.contractors-tools .list-search{padding:0 .75rem;min-width:15rem;border:1px solid #cbd5e1}.contractors-tools .outline-btn,.contractors-tools .primary{display:inline-flex;align-items:center;justify-content:center;padding:0 1.15rem;font-weight:600}.topbar-control{box-sizing:border-box;height:2.5rem;padding:0 .85rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#0f172a;font:inherit;font-size:.88rem;cursor:pointer}button.topbar-control{display:inline-flex;align-items:center;gap:.3rem}.topbar-control.approve{color:#166534}.topbar-control:hover{background:#f8fafc}.acct-btn{box-sizing:border-box;height:2.5rem}.row-menu .menu-soon{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:#0f172a}.soon-tag{font-size:.7rem;font-weight:600;color:#64748b;background:#f1f5f9;border-radius:999px;padding:.1rem .5rem;white-space:nowrap}.contractor-actions .menu-toggle{border-radius:6px}.contractor-actions .menu-toggle:hover,.contractor-actions .menu-toggle[aria-expanded=true]{background:#e2e8f0}.row-menu{min-width:18rem}.row-menu .menu-soon{white-space:nowrap}.loading-gate{display:flex;align-items:center;justify-content:center;min-height:60vh}.spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;min-height:12rem;padding:2rem 1rem;color:#64748b;font-size:.9rem}.spinner{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.dropdown{position:relative;display:inline-block;max-width:100%;vertical-align:middle}.dropdown-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;height:2.6rem;min-width:7.5rem;padding:0 .65rem 0 .8rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit;font-size:.95rem;text-align:left;cursor:pointer}.dropdown-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-button svg{flex-shrink:0;color:#475569}.dropdown-button.is-placeholder .dropdown-value{color:#94a3b8}.dropdown-button:hover:not(:disabled){border-color:#94a3b8}.dropdown-button:focus-visible{outline:2px solid #93c5fd;border-color:#3b82f6}.dropdown-button[aria-expanded=true]{border-color:#3b82f6}.dropdown-button:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.dropdown-sm .dropdown-button{height:2rem;min-width:6rem;padding:0 .45rem 0 .6rem;border-radius:6px;font-size:.85rem}.dropdown-form{display:block;width:100%}.dropdown-form .dropdown-button{height:2.45rem;font-weight:400}.dropdown-menu{position:fixed;z-index:1100;margin:0;padding:.3rem;overflow-y:auto;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a24}.dropdown-menu li{display:flex;align-items:center;gap:.4rem;padding:.45rem .8rem .45rem .4rem;border-radius:6px;font-size:.92rem;color:#0f172a;white-space:nowrap;cursor:pointer}.dropdown-menu li.is-active{background:#eff6ff}.dropdown-menu li.is-selected{font-weight:600}.dropdown-menu li.is-disabled{color:#cbd5e1;cursor:default}.dropdown-check{width:1rem;flex-shrink:0;text-align:center;color:#1d4ed8}.dropdown .dropdown-button.pill-select{height:auto;min-width:0;width:auto;gap:.2rem;padding:.12rem .35rem .12rem .6rem;border-radius:999px;font-size:.75rem}.dropdown .dropdown-button.pill-select svg{width:13px;height:13px;color:currentColor}.dropdown:has(.pill-select){width:auto}.dropdown-button[aria-invalid=true]{border-color:#f87171}.dropdown-prefix{font-weight:600}.filter-pill .dropdown-button{height:2.5rem;min-width:0;width:auto;padding:0 .7rem 0 .85rem;border-color:#1d4ed8;border-radius:6px;color:#1d4ed8;font-weight:600}.filter-pill .dropdown-button svg{color:#1d4ed8}.topbar-dropdown .dropdown-button{height:2.5rem;min-width:8.5rem;border-color:#e2e8f0;border-radius:10px;font-size:.88rem}.topbar .back-link{margin:0 0 0 -.3rem}.modal-card.billing-new{max-width:760px}.billing-new .modal-scroll{padding-top:.9rem;padding-bottom:.9rem}.billing-new label .hint{font-weight:400}.billing-new .billing-lines{width:100%;margin:.6rem 0 .5rem}.billing-new .billing-lines input{width:100%;box-sizing:border-box}.billing-new .billing-lines input.qty{width:4.5rem;text-align:right}.billing-new .billing-lines input.money{width:8rem;text-align:right}.billing-new .billing-lines th:first-child{width:100%}.billing-new .billing-lines td:last-child{width:1.5rem;text-align:center}.billing-new-foot{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;text-align:left}.billing-new-foot .billing-new-total{margin-right:auto;color:#0f172a}.billing-new-foot .mini{margin:0}.modal-head{position:relative}.modal-head:has(>.modal-close)>h3{padding-right:2.75rem}.modal-close{position:absolute;top:.85rem;right:.9rem;width:2rem;height:2rem;padding:0;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font-size:1.35rem;line-height:1;color:#334155;cursor:pointer}.modal-close:hover{background:#f1f5f9;color:#0f172a}.modal:has(>.modal-card .modal-close){cursor:default}.menu-button{display:inline-flex}.menu-button-trigger{display:inline-flex;align-items:center;gap:.15rem;padding:0;border:0;background:none;font:inherit;color:#1d4ed8;cursor:pointer}.menu-button-trigger:hover,.menu-button-trigger[aria-expanded=true]{text-decoration:underline}.menu-button-trigger svg{flex-shrink:0}.menu-button-menu li{padding-left:.8rem}.menu-button-label{flex:1}.menu-button-meta{margin-left:1.5rem;color:#64748b;font-size:.82rem}.menu-button-menu li.is-disabled .menu-button-meta{color:#cbd5e1}.req-unpaid{display:block;font-size:.75rem;color:#b45309}.job-edit-card .modal-scroll th:nth-child(2),.job-edit-card .modal-scroll td:nth-child(2){width:9.5rem}.job-edit-card .modal-scroll th:nth-child(7),.job-edit-card .modal-scroll td:nth-child(7){width:8.5rem}.req-received-from{display:block;white-space:normal;font-size:.72rem;color:#64748b}td.req-invoice-actions{line-height:1.6;white-space:normal}.req-invoice-actions>span{white-space:nowrap}.job-edit-card .modal-scroll th:last-child,.job-edit-card .modal-scroll td:last-child{width:14rem}.req-invoice-actions .mini{margin:0}.billing-new .billing-section{margin:1.1rem 0 .2rem;font-size:.95rem}.billing-list-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.billing-list-head h3{margin-right:auto}.req-tab-tools{float:left;display:inline-flex;gap:.5rem}.req-tab-tools .mini{margin:0}.job-edit-card .modal-scroll thead th{position:sticky;top:-.5rem;z-index:1;background:#f8fafc}.job-edit-card .modal-scroll tfoot td,.aia-log-card .modal-scroll tfoot td{position:sticky;bottom:-.5rem;z-index:1;background:#fff}.modal-card.payments-card{max-width:680px}.payments-card td{white-space:nowrap}.chat-page-links{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.chat-page-link{padding:.35rem .75rem;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;font:inherit;font-size:.85rem;font-weight:600;color:#1d4ed8;cursor:pointer}.chat-page-link:hover:not(:disabled){background:#dbeafe}.chat-page-link:disabled{border-color:#e2e8f0;background:#f8fafc;color:#64748b;cursor:default}.chat-page-link.is-draft{border-color:#1d4ed8;background:#1d4ed8;color:#fff}.chat-page-link.is-draft:hover:not(:disabled){background:#1e40af}.chat-page-link.is-draft:disabled{border-color:#e0e7ff;background:#e0e7ff;color:#3730a3}.chat-page-link.is-draft.is-created:disabled{border-color:#bbf7d0;background:#dcfce7;color:#166534}.chat-outcome{margin:.25rem 0 .9rem;text-align:center;font-size:.78rem;color:#64748b}body.is-asking *:not(.chat-panel,.chat-panel *,.chat-launcher,.chat-launcher *,.chat-greeting,.chat-greeting *,.chat-ask-pill,.chat-ask-pill *){cursor:none!important}body.is-asking.no-hand *:not(.chat-panel,.chat-panel *,.chat-launcher,.chat-launcher *,.chat-greeting,.chat-greeting *,.chat-ask-pill,.chat-ask-pill *){cursor:pointer!important}.chat-ask-dim,.chat-ask-spot{position:fixed;z-index:1001;pointer-events:none}.chat-ask-dim{top:0;right:0;bottom:0;left:0;background:#0f172a73}.chat-ask-spot{border-radius:8px;box-shadow:0 0 0 2px #ffffffe6,0 0 0 9999px #0f172a73;transition:top .1s ease-out,left .1s ease-out,width .1s ease-out,height .1s ease-out}body.is-asking :is(.chat-panel,.chat-launcher,.chat-greeting){z-index:1003}.chat-ask-pill{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:1002;display:flex;align-items:center;gap:.55rem;max-width:calc(100vw - 2rem);padding:.35rem .4rem .35rem .6rem;border-radius:999px;background:#1b3260;color:#fff;font-size:.88rem;font-weight:500;box-shadow:0 10px 30px #0f172a4d}.chat-ask-pill button{padding:.25rem .7rem;border:0;border-radius:999px;background:#fff;color:#1b3260;font:inherit;font-weight:700;cursor:pointer}.chat-ask-pill button:hover{background:#dbeafe}.chat-ask-pill button:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.chat-ask-cursor{--hand-h: 36px;--mid-x: calc( var(--hand-h) * .157 );--mid-y: calc(var(--hand-h) * .558);--tip-x: calc( var(--hand-h) * .173 );--hand-w: calc(var(--hand-h) * .706);--lean: -15deg;--turn: -30deg;position:fixed;top:0;left:0;z-index:1005;width:0;height:0;pointer-events:none;will-change:transform}.chat-ask-cursor.is-off{display:none}.chat-ask-cursor .tilt{position:absolute;top:0;left:0;transform-origin:0 0;transform:perspective(calc(var(--hand-h) * 5)) rotate(var(--lean)) rotateY(var(--turn));animation:chat-ask-wiggle 3s ease-in-out infinite}@keyframes chat-ask-wiggle{0%,24%,to{rotate:0deg}4%{rotate:-12deg}9%{rotate:10deg}14%{rotate:-7deg}19%{rotate:3deg}}.chat-ask-cursor:is(.is-pressed,.is-snap) .tilt{animation:none}.chat-ask-cursor .hand{position:absolute;top:0;left:calc(-1 * var(--tip-x));width:var(--hand-w);height:var(--hand-h);filter:drop-shadow(0 3px 4px rgba(15,23,42,.35));transform-origin:var(--tip-x) 0;transition:transform .08s ease-out}.chat-ask-cursor .hand img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.chat-ask-cursor .finger{transform-origin:51.8% 40.8%}.chat-ask-cursor.is-pressed .hand{transform:scale(.94) translateY(2px)}.chat-ask-cursor .glow{position:absolute;top:0;left:calc(-1 * var(--tip-x));width:var(--hand-w);height:var(--hand-h);transform-origin:calc(var(--mid-x) + var(--tip-x)) var(--mid-y);animation:chat-ask-hue 7s linear infinite,chat-ask-breathe 1.6s ease-in-out infinite alternate}.chat-ask-cursor .glow:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:var(--hand-url) center / 100% 100% no-repeat;mask:var(--hand-url) center / 100% 100% no-repeat;background:conic-gradient(from 200deg,#ff5a5a,#ffb347,#ffe74c,#5bff8a,#4fd7ff,#7b6cff,#ff5ad9,#ff5a5a)}.chat-ask-cursor .near{--blur: calc(var(--hand-h) * .1);transform:scale(1.12)}.chat-ask-cursor .far{--blur: calc(var(--hand-h) * .28);transform:scale(1.3);opacity:.55;animation:chat-ask-hue 9s linear infinite reverse}.chat-ask-cursor.is-snap .finger{animation:chat-ask-snap .6s cubic-bezier(.3,0,.2,1) both}.chat-ask-cursor.is-snap .hand{animation:chat-ask-jolt .6s ease-out both}.chat-ask-cursor.is-snap .tip{animation:chat-ask-snap-flash .45s ease-out .12s both}.chat-ask-cursor.is-snap .glow{animation:chat-ask-fade .5s ease-out both}@keyframes chat-ask-snap{0%{transform:rotate(0)}30%{transform:rotate(-88deg)}45%{transform:rotate(-72deg)}60%,to{transform:rotate(-80deg)}}@keyframes chat-ask-jolt{0%,25%{transform:translate(0);opacity:1}32%{transform:translate(1px,2px)}45%{transform:translate(0)}70%{opacity:1}to{transform:translateY(-6px);opacity:0}}@keyframes chat-ask-snap-flash{0%{transform:scale(1);opacity:1}30%{transform:scale(2.6);opacity:1}to{transform:scale(3.4);opacity:0}}@keyframes chat-ask-fade{to{opacity:0}}.chat-ask-cursor .tip{position:absolute;top:calc(var(--hand-h) * -.3);left:calc(var(--hand-h) * -.3);width:calc(var(--hand-h) * .6);height:calc(var(--hand-h) * .6);border-radius:50%;background:radial-gradient(circle,#fff 0,#fff 8%,#ffffffb3 18%,#fff0 50%);mix-blend-mode:screen;animation:chat-ask-breathe 1.1s ease-in-out infinite alternate}.chat-ask-cursor .tip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(#ff5a5a,#ffb347,#ffe74c,#5bff8a,#4fd7ff,#7b6cff,#ff5ad9,#ff5a5a);-webkit-mask:radial-gradient(circle,rgba(0,0,0,.6) 0,#000 18%,rgba(0,0,0,.5) 32%,transparent 50%);mask:radial-gradient(circle,rgba(0,0,0,.6) 0,#000 18%,rgba(0,0,0,.5) 32%,transparent 50%);opacity:.8;--blur: calc(var(--hand-h) * .09);animation:chat-ask-hue 5s linear infinite}@keyframes chat-ask-hue{0%{filter:blur(var(--blur)) hue-rotate(0)}to{filter:blur(var(--blur)) hue-rotate(1turn)}}.chat-ask-burst{position:fixed;top:0;left:0;z-index:1006;pointer-events:none}.chat-ask-burst i,.chat-ask-burst .ring{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px}.chat-ask-burst i{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:chat-ask-sparkle .75s cubic-bezier(.2,.7,.3,1) var(--d) both}.chat-ask-burst .ring{border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 12px 2px #5b5bff80;animation:chat-ask-ripple .6s ease-out both}@keyframes chat-ask-sparkle{0%{transform:translate(0) scale(.2) rotate(0);opacity:0}15%{transform:translate(calc(var(--dx) * .3),calc(var(--dy) * .3)) scale(var(--s)) rotate(60deg);opacity:1}35%{opacity:.35}55%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.1) rotate(220deg);opacity:0}}@keyframes chat-ask-ripple{0%{transform:scale(.4);opacity:1}to{transform:scale(5);opacity:0}}@keyframes chat-ask-breathe{0%{opacity:.75}to{opacity:1}}@keyframes chat-ask-pulse{0%{opacity:.45;transform:scale(.9)}to{opacity:.85;transform:scale(1.08)}}.chat-launcher.is-asking:after{content:"";position:absolute;top:-4px;right:2px;bottom:-4px;left:2px;z-index:-1;border-radius:50%;background:conic-gradient(#ff5a5a,#ffb347,#ffe74c,#5bff8a,#4fd7ff,#7b6cff,#ff5ad9,#ff5a5a);filter:blur(9px);animation:chat-ask-pulse 1.4s ease-in-out infinite alternate}@media (max-width: 480px){.chat-ask-pill{top:8px;gap:.4rem;font-size:.8rem}}@media (prefers-reduced-motion: reduce){.chat-ask-spot{transition:none}.chat-ask-cursor .tilt,.chat-ask-cursor .glow,.chat-ask-cursor .tip,.chat-ask-cursor .tip:after,.chat-launcher.is-asking:after{animation:none}.chat-ask-cursor .glow,.chat-ask-cursor .tip:after{filter:blur(var(--blur))}.chat-ask-cursor.is-snap{display:none}}.project-name-link{font-weight:700;color:#0f172a;text-align:left}.project-name-link:hover{color:#1d4ed8;text-decoration:underline}.margo-bot-full{position:relative;display:block;flex-shrink:0}.margo-bot-full:before{content:"";position:absolute;left:50%;top:5%;width:57%;height:92%;border-radius:50%;background:radial-gradient(closest-side,#7080ff80,#7080ff66 45%,#7080ff2b 75%,#7080ff00);pointer-events:none}.margo-bot-full.is-mirrored:before{left:auto;right:50%}.margo-bot-full.is-mirrored>img{transform:scaleX(-1)}.chat-panel .margo-bot-face{transform:scaleX(-1)}.margo-bot-full>img,.margo-bot-full>canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.margo-bot-full>.margo-bot-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.margo-bot-face{flex-shrink:0;border-radius:50%;object-fit:cover;background:#eef2ff}.kpi-page h2{margin:0;font-size:1.4rem}.kpi-page-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.kpi-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin:1rem 0}.kpi-filter{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:#475569}.kpi-filter .segmented .mini{height:2.6rem;min-width:5.75rem;border-radius:8px;font-size:.95rem}.kpi-filter .segmented .mini:not(.active){border-color:#cbd5e1}.kpi-search input{box-sizing:border-box;height:2.6rem;padding:0 .8rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:.95rem;min-width:12rem}.kpi-basis-free{line-height:2.6rem}.kpi-table td.num,.kpi-table th.num{text-align:right;font-variant-numeric:tabular-nums}.kpi-table th .sub{display:block;font-weight:400;font-size:.78rem;color:#64748b}.kpi-group td{background:#f8fafc;padding:0}.kpi-group button{display:flex;align-items:center;gap:.4rem;width:100%;padding:.55rem .8rem;border:none;background:none;font:inherit;font-weight:600;color:#0f172a;text-align:left;cursor:pointer}.kpi-chevron{width:1rem;color:#64748b}.kpi-name{padding-left:2.2rem!important}.kpi-name .link,.kpi-table .link{font-size:inherit}.kpi-name .link{color:#0f172a;text-align:left}.kpi-name .link:hover{color:#1d4ed8;text-decoration:underline}.kpi-trend{font-size:.7rem;margin-left:.15rem}.kpi-trend.good{color:#166534}.kpi-trend.bad{color:#b91c1c}.kpi-total td{font-weight:700;border-top:1px solid #e2e8f0}.kpi-foot{margin:.75rem 0 0}.kpi-title{margin-top:.25rem!important}.kpi-desc{margin:.35rem 0 .8rem;color:#475569}.kpi-formula{padding:.65rem .9rem;border-radius:10px;background:#f1f5f9;font-size:.88rem}.kpi-chart-card{padding:.9rem 1rem .5rem;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.kpi-chart-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.kpi-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:.6rem 0 .2rem;font-size:.82rem;color:#475569}.kpi-legend span,.kpi-tip-row{display:inline-flex;align-items:center;gap:.4rem}.kpi-key{display:inline-block;flex-shrink:0;width:14px;height:2px;border-radius:1px}.kpi-key.bar{width:10px;height:10px;border-radius:2px}.kpi-plot{position:relative}.kpi-plot svg{display:block;overflow:visible}.kpi-plot svg:focus-visible{outline:2px solid #93c5fd;outline-offset:2px;border-radius:4px}.kpi-axis{fill:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.kpi-tooltip{position:absolute;z-index:2;min-width:180px;padding:.5rem .65rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 6px 18px #0f172a1f;font-size:.8rem;pointer-events:none}.kpi-tip-row{display:flex;margin-top:.15rem}.kpi-tip-row strong{color:#0f172a;font-variant-numeric:tabular-nums}.kpi-tip-row span{color:#64748b}.kpi-breakdown-title{margin:1.25rem 0 .6rem;font-size:1rem}.chat-badge{position:absolute;top:0;right:12px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:.75rem;font-weight:700;line-height:22px;text-align:center;box-shadow:0 0 0 2px #fff;animation:chat-badge-in .25s ease-out}@keyframes chat-badge-in{0%{transform:scale(.4);opacity:0}}@media (prefers-reduced-motion: reduce){.chat-badge{animation:none}}.chat-news ul{margin:.35rem 0 0;padding-left:1.1rem}.chat-news li+li{margin-top:.2rem}.chat-news-time{display:block;color:#64748b;font-size:.75rem}.topbar-left{display:flex;flex-wrap:wrap;align-items:center}.bell{position:relative;margin-right:.75rem}.bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#334155;cursor:pointer}.bell-btn:hover{border-color:#94a3b8;color:#0f172a}.bell-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.bell-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;font-size:.7rem;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff}.bell-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:40;width:min(340px,calc(100vw - 32px));padding:.85rem;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 12px 32px #0f172a29}.bell-title{display:block;margin-bottom:.4rem;font-size:.95rem}.bell-list{max-height:min(420px,60vh);margin:0;padding:0;overflow-y:auto;list-style:none}.bell-item{position:relative;display:block;width:100%;padding:.55rem .6rem .55rem 1.3rem;border:none;border-radius:8px;background:none;color:#334155;font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.bell-item:hover{background:#f1f5f9;color:#0f172a}.bell-item:before{content:"";position:absolute;top:.85rem;left:.5rem;width:7px;height:7px;border-radius:50%;background:#dc2626}.bell-item.is-read:before{background:#cbd5e1}.bell-list>li{position:relative}.bell-list>li:not(:last-child):after{content:"";position:absolute;top:1.35rem;bottom:-.8rem;left:calc(.5rem + 3px);width:1px;background:#e2e8f0}.bell-details{padding:0 .6rem .5rem 1.3rem;font-size:.82rem;color:#334155}.bell-details ul{margin:0 0 .4rem;padding:0;list-style:none}.bell-details li+li{margin-top:.35rem}.bell-details .hint{margin:0 0 .4rem}.bell-text{display:block;color:#0f172a;font-weight:600}.bell-time{display:block;margin-top:.1rem;color:#64748b;font-size:.75rem}.bell-empty{margin:.25rem 0 .5rem}.bell-foot-links{display:flex;gap:.75rem;margin-left:auto}.bell-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.6rem;padding-top:.6rem;border-top:1px solid #f1f5f9}.bell-ask{padding:.4rem .85rem;border:0;border-radius:999px;background:#1d4ed8;color:#fff;font:inherit;font-size:.85rem;cursor:pointer}.bell-ask:hover{background:#1e40af}.genie-bot{position:relative;display:block;flex-shrink:0}.genie-bot>img,.genie-bot>canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.genie-bot.is-mirrored>img{transform:scaleX(-1)}.genie-bot>.margo-bot-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.data-grid .project-status th,.data-grid .project-status td{padding:0 .6rem}.project-status th.group{text-align:center}.data-grid .project-status thead tr+tr th{top:2.75rem}.data-grid .project-status .project-col{position:sticky;left:0;z-index:2;background:#fff}.data-grid .project-status th.project-col,.data-grid .project-status tfoot td.project-col{z-index:3}.project-status td.loss{color:#991b1b}.pill.quickbooks{background:#e0f2fe;color:#075985}.hint.pm-estimate{display:block;margin-top:.25rem}.modal-card.wip-upload-card{max-width:1180px;height:min(85vh,46rem)}.wip-upload-card .data-grid-scroll{height:26rem}.wip-reports{list-style:none;padding:0;margin:.5rem 0 0}.wip-reports li{margin:.2rem 0}.tab-section-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.75rem;margin:.4rem 0}.tab-section-head h4{margin:0;font-size:.95rem}.estimates-table td .dropdown{min-width:7rem}.modal-card.estimates-card,.modal-card.compare-card{max-width:1100px}.compare-table tr.compare-how td{vertical-align:top;font-size:.8rem;color:#475569}.compare-table td.wrap{max-width:18rem}.compare-table td.compare-gap{color:#b45309;font-weight:600}.compare-missing{margin:.5rem 0 .75rem;padding-left:1.1rem}.compare-lines{margin-bottom:.75rem}.modal-card.wip-reference-card{max-width:1400px;height:min(92vh,60rem)}.hint.month-close{margin:.25rem 0 .75rem;padding:.45rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.hint.month-close.closed{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
