/* AlphaOmega workspace design system: warm surfaces, navy navigation, blue actions.
   Native controls and restrained motion keep this operational UI readable. */
:root{color-scheme:light;--ground:#f3f4f6;--panel:#fff;--ink:#162235;--text:#34445a;--muted:#5e6e82;--line:#e0e5ec;--blue:#1559ad;--accent:#b82424;--good:#246647;--bad:#a92222;--radius:12px;--body:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 var(--body);color:var(--text);background:var(--ground)}h1,h2,h3,p{margin:0}h1,h2,h3,strong,b{color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}:focus-visible{outline:3px solid #1977cd;outline-offset:3px}a{color:var(--blue)}.small,small{color:var(--muted);font-size:12px}.label,.eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.app{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.rail{background:#101d30;color:#b8c6d8;padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;overflow-y:auto}.brand-banner{width:100%;display:block;border-radius:8px}.rail .brand-banner{height:87px;object-fit:cover}.logo{padding:0 10px}.logo b{display:block;font-size:19px;letter-spacing:-.03em;color:#fff}.logo span{font-size:9px;letter-spacing:.25em;color:#ddae4d}.rail nav{display:grid;gap:4px}.rail nav button{border:0;color:#b8c6d8;background:transparent;border-radius:7px;text-align:left;padding:11px 13px;min-height:44px;font-weight:550;transition:background .15s,color .15s}.rail nav button:hover{background:#1e2f46;color:#fff}.rail nav button[aria-current=page]{background:#213a59;color:#fff;box-shadow:inset 3px 0 #efb83d}.railfoot{margin-top:auto;display:grid;gap:8px;padding-top:20px;border-top:1px solid #2d3b4d}.railfoot .btn{background:transparent;border-color:#40516a;color:#dce5f0;font-size:12px}.mode{font-size:11px;display:flex;align-items:center;gap:8px;margin-bottom:8px}.mode:before{content:'';width:6px;height:6px;border-radius:50%;background:#e4b856}.railfoot a{color:#e4b856}
main{min-width:0;padding:28px 30px 48px}.head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.head h1{font-size:29px;line-height:1.25;letter-spacing:-.035em;margin:5px 0}.head p{color:var(--muted);font-size:12px}.search{display:grid;gap:4px;font-size:11px;color:var(--muted);min-width:240px}.search input,input,select,textarea{border:1px solid #c7d0dd;border-radius:7px;padding:10px 11px;background:#fff;color:var(--ink);min-width:0;min-height:42px}.search input{width:100%}.notice{display:flex;gap:14px;align-items:center;border:1px solid #dedccf;border-left:3px solid #d3a73c;background:#faf9f3;padding:11px 14px;margin-bottom:23px;font-size:12px;border-radius:7px}.notice b{white-space:nowrap}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.sec{padding:19px;overflow:hidden}.sec h2{font-size:16px;letter-spacing:-.02em;margin-bottom:14px}.sec>p+p{margin-top:10px}.stack{display:grid;gap:18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:20px}.card{padding:20px;border-right:1px solid var(--line);display:grid;gap:6px}.card:last-child{border:0}.card .v{font-size:29px;font-weight:650;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums}.card .s{font-size:12px;color:var(--muted)}.btn{border:1px solid #ccd5e0;background:#fff;border-radius:7px;color:var(--ink);padding:9px 13px;font-weight:550;min-height:42px;display:inline-flex;justify-content:center;align-items:center;gap:6px;white-space:nowrap}.btn:hover{background:#edf3fa}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.primary:hover{background:#114b92}.btn.sm{font-size:12px;padding:6px 10px;min-height:36px}.btn.ghost{border-color:transparent}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:15px 0}.row{display:flex;gap:8px;flex-wrap:wrap}.field{display:grid;gap:5px;font-size:12px;font-weight:550}.field input,.field select,.field textarea{width:100%;font-size:14px;font-weight:400}.field textarea{min-height:100px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.tablewrap{overflow:auto;margin:0 -19px -19px}table{width:100%;border-collapse:collapse;min-width:730px;font-size:13px}th{text-align:left;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#f8fafc;padding:12px 15px;white-space:nowrap}td{padding:14px 15px;border-top:1px solid var(--line);vertical-align:top}td .sub{display:block;color:var(--muted);font-size:11px;margin-top:5px}tbody tr:hover{background:#f8fafc}.pill{display:inline-flex;border-radius:5px;padding:4px 7px;font-size:11px}.p-info{color:#235584;background:#eaf2fa}.p-warn{color:#895512;background:#fff1d8}.summary-list{padding-left:20px}.summary-list li{margin-bottom:10px}.empty{padding:20px;color:var(--muted);font-size:12px}.empty b,.empty span{display:block}.empty span{margin-top:6px}.pipeline-metrics{display:grid;grid-template-columns:1fr 1.8fr 1fr;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:20px}.pipeline-metrics>div{display:grid;gap:7px;padding:20px 24px;border-right:1px solid var(--line)}.pipeline-metrics>div:last-child{border:0}.pipeline-metrics strong{font-size:29px;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.pipeline-metrics .amount{font-size:25px}.pipeline-controls{border-bottom:1px solid #d8dfe8;margin-bottom:15px;padding-bottom:18px}.pipeline-controls .toolbar{margin:0 0 16px}.segmented{display:flex;padding:3px;border:1px solid #d5dce5;background:#e8edf3;border-radius:9px;margin-right:auto}.segmented .btn{background:transparent;border:0;min-width:70px;min-height:34px;padding:6px 14px;color:var(--muted)}.segmented .btn[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #16223518}.pipeline-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filter-field{flex:1;min-width:130px;max-width:210px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.filter-field select{text-transform:none;letter-spacing:normal;font-size:12px}.board-help{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:var(--muted);margin:0 0 14px}.pipeline-scroll{overflow:auto;padding-bottom:22px;scrollbar-color:#aab8ca #e7ebf1;scrollbar-width:thin}.pipeline-board{display:grid;grid-template-columns:repeat(7,276px);gap:16px;min-width:max-content;align-items:start}.col{background:#e9edf2;border:1px solid #e0e5ec;border-radius:10px;min-height:410px;padding:12px;transition:background .15s}.column-heading{border-bottom:1px solid #d5dee9;margin-bottom:14px;padding:2px 0 12px}.column-heading>div{display:flex;align-items:center;gap:8px}.column-heading h2{font-size:12px;letter-spacing:.01em}.column-count{margin-left:auto;background:#dbe2eb;color:#44556c;padding:2px 7px;border-radius:5px;font-size:11px;font-weight:650}.column-heading small{display:block;margin:5px 0 0 17px;font-size:10px}.stage-dot{width:8px;height:8px;border-radius:50%;background:#8796ac}.col[data-column=connected] .stage-dot{background:#318ba1}.col[data-column=assessment_booked] .stage-dot{background:#3876c2}.col[data-column=quote_sent] .stage-dot{background:#9b7428}.col[data-column=won] .stage-dot{background:#318366}.col[data-column=lost] .stage-dot{background:#a85d66}.column-cards{display:grid;gap:12px}.lead{background:white;border:1px solid #dbe2ea;border-radius:9px;padding:15px;box-shadow:0 2px 3px #14223b05;display:grid;gap:10px;overflow-wrap:anywhere;cursor:grab}.lead:active{cursor:grabbing}.card-top{display:flex;align-items:center;justify-content:space-between;gap:5px}.source-label{font-size:10px;font-weight:600;color:var(--muted)}.priority{font-size:9px;font-weight:650;padding:3px 6px;border-radius:4px;background:#edf1f6;color:#586b81}.priority--high{background:#fff1d6;color:#815511}.priority--urgent{background:#fce9e7;color:#9f2925}.card-title{text-align:left;border:0;background:none;padding:0;font-size:15px;font-weight:700;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}.card-title:hover{color:var(--blue);text-decoration:underline}.card-location{font-size:10px;color:var(--muted);margin-top:-7px}.deal-value{font-size:20px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.3}.deal-need{font-size:12px;color:#53647a;line-height:1.55}.next-action{background:#f6f8fa;border:1px solid #e8edf2;border-radius:6px;padding:9px 10px}.next-action .label{font-size:9px}.next-action p{font-size:12px;margin-top:4px;line-height:1.45}.blocker{font-size:11px;border-left:2px solid #c99b41;padding-left:8px}.card-contact{display:flex;gap:8px;align-items:center;font-size:10px;margin-top:2px}.card-contact small{display:block;font-size:10px;color:var(--muted)}.avatar{width:28px;height:28px;background:#eaf0f7;color:#345e89;display:grid;place-items:center;border-radius:50%;font-size:9px;font-weight:650;flex-shrink:0}.due-label{font-size:10px;color:var(--muted)}.due-label.is-due{color:#a33025;font-weight:650}.card-actions{border-top:1px solid var(--line);padding-top:8px;cursor:default}.card-actions summary{font-size:11px;color:var(--blue);cursor:pointer;min-height:30px;padding:5px 0}.card-actions .field{margin:7px 0;font-size:11px}.card-actions select{font-size:12px}.card-actions .btn{min-height:38px}.is-drop-target{background:#dceafb;border:1px dashed var(--blue)}.is-dragging{opacity:.45}.pipeline-footnote{margin-top:12px;max-width:90ch}
dialog{border:0;padding:0;background:transparent;max-width:min(800px,94vw)}dialog::backdrop{background:#0a182a80}.modal{background:#fff;padding:24px;display:grid;gap:18px;border:1px solid var(--line);border-radius:14px;min-width:min(560px,85vw);max-height:90vh;overflow:auto}.modal h2{font-size:21px}.modal .row{justify-content:flex-end}.modal p{font-size:13px}.editor-groups{display:grid;gap:22px}.edit-group{border:0;padding:0;margin:0;min-width:0}.edit-group legend{padding:0 0 10px;font-size:14px;font-weight:700;color:var(--ink)}#editor{margin:0 0 0 auto;width:min(660px,100vw);max-width:100vw;max-height:100vh;height:100dvh}#editor .modal{height:100%;max-height:100dvh;min-width:0;border-radius:0;padding:28px;align-content:start}#editor .modal>.row{position:sticky;bottom:-28px;background:white;border-top:1px solid var(--line);padding:14px 0;margin-top:8px}.edit-group .field:has(textarea){grid-column:1/-1}.stack>.field{width:100%}#connection{max-width:500px;margin:7vh auto;padding:26px}#connection .brand-banner{max-height:230px;object-fit:cover}#connection h1{font-size:27px}#error,#status{position:fixed;bottom:18px;left:calc(224px + 28px);max-width:min(700px,calc(100vw - 280px));z-index:100;background:#fff;border-radius:8px;padding:12px 18px;box-shadow:0 4px 28px #16223530;white-space:pre-wrap;overflow-wrap:anywhere}#error{color:var(--bad);border-left:4px solid var(--bad)}#status{color:var(--good);border-left:4px solid var(--good)}#error:empty,#status:empty{display:none}#edit-error,#import-error{color:var(--bad)}pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.demo-banner{border-left-color:var(--blue);background:#eff6ff}.demo-banner b{color:var(--blue)}
@media(min-width:1800px){main{padding-inline:38px}.pipeline-board{grid-template-columns:repeat(7,290px)}}
@media(max-width:1100px){.app{grid-template-columns:190px minmax(0,1fr)}main{padding:24px 20px}.rail{padding:20px 12px}.pipeline-metrics>div{padding:16px}.pipeline-metrics .amount{font-size:21px}.head{align-items:start}.search{min-width:190px}.notice{align-items:start}.notice span{font-size:11px}}
@media(max-width:760px){.app{display:block}.rail{position:static;height:auto;padding:12px 16px;gap:12px;overflow:visible}.rail>.brand-banner{display:none}.logo{padding:0;display:flex;align-items:baseline;gap:10px}.rail nav{display:flex;overflow:auto;gap:4px}.rail nav button{white-space:nowrap;padding:9px 12px;font-size:12px}.railfoot{margin:0;padding:8px 0 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.railfoot .mode{margin:0 auto 0 0}.railfoot .btn{padding:5px 8px;min-height:34px;font-size:10px}main{padding:20px 16px 44px}.head{display:grid;gap:14px}.head h1{font-size:25px}.search{width:100%}.notice{display:grid;gap:3px;margin-bottom:16px}.pipeline-metrics{grid-template-columns:1fr 1fr}.pipeline-metrics>div:nth-child(2){grid-column:1/-1;grid-row:2;border-top:1px solid var(--line);border-right:0}.pipeline-metrics>div:nth-child(3){border:0}.pipeline-metrics strong{font-size:25px}.filter-field{min-width:125px;max-width:none}.board-help{display:block}.board-help>span{display:block;margin-bottom:4px}.pipeline-board{grid-template-columns:repeat(7,min(276px,calc(100vw - 56px)))}.two{grid-template-columns:1fr}#error,#status{left:16px;right:16px;max-width:none}#connection{margin:20px 12px}#editor .modal{padding:20px}#editor .modal>.row{bottom:-20px}.modal{min-width:0;width:100%}.cards{grid-template-columns:1fr 1fr}.card:nth-child(2){border:0}.card:nth-child(n+3){border-top:1px solid var(--line)}.toolbar .btn{font-size:12px}.pipeline-filters .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* Client lifecycle: frosted surfaces with readable type and raised highlights. */
body{background:radial-gradient(ellipse at 18% 15%,#f8deda80,transparent 45%),radial-gradient(ellipse at 92% 62%,#d8dcfa99,transparent 45%),linear-gradient(135deg,#f2f5fa,#e8edf6)}
.pipeline-board{grid-template-columns:repeat(5,minmax(250px,1fr));min-width:1360px;gap:16px;align-items:stretch}
.col{--column:#ae2634;--tint:#ffe7e8;background:linear-gradient(155deg,#ffffffb3,var(--tint));border:1px solid #fff;border-top:4px solid var(--column);border-radius:18px;box-shadow:inset 0 1px 0 #fff,0 12px 28px -20px #24385580;backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);position:relative;min-height:570px}
.col:not(:last-child)::after{content:'';position:absolute;right:-9px;top:10px;bottom:10px;width:1px;background:linear-gradient(transparent,#9faabc66,transparent)}
.lifecycle-hot{--column:#b42637;--tint:#fbe5e8cc}.lifecycle-pending{--column:#947007;--tint:#fff3cacc}.lifecycle-paid{--column:#227349;--tint:#ddf2e6cc}.lifecycle-inactive{--column:#202a38;--tint:#dce1e9cc}.lifecycle-member{--column:#7247a5;--tint:#eee3facc}
.column-heading{border-bottom-color:#ffffffaa}.column-heading h2{color:var(--column);font-size:14px}.column-heading .stage-dot{background:var(--column)!important;box-shadow:0 0 0 4px #ffffff88}.column-count{background:#ffffffb8;color:var(--column)}
.lead{cursor:grab;background:linear-gradient(135deg,#ffffffed,#ffffffab);border:1px solid #fff;border-radius:14px;box-shadow:inset 0 1px 0 #ffffff,0 9px 18px -10px #42567445;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:box-shadow .18s,transform .18s}.lead:hover{box-shadow:inset 0 1px 0 #fff,0 12px 25px -10px #42567465;transform:translateY(-2px)}.lead .card-title{font-size:16px}.next-action{background:#ffffff8c;border:1px solid #ffffffbb}.is-drop-target{outline:2px dashed var(--column);outline-offset:-7px;background:#fff9}.marketing-tag{display:inline-flex;background:#e8eefbcc;color:#36578b;border:1px solid #cedcf3;padding:3px 8px;border-radius:20px;font-size:10px;overflow-wrap:anywhere;max-width:100%;margin:2px}.pipeline-metrics,.pipeline-controls{background:#ffffffa8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #fff;box-shadow:inset 0 1px 0 #fff,0 8px 20px -18px #30455d70;border-radius:14px}.pipeline-controls{padding:16px}.pipeline-metrics>div{border-right-color:#ffffff}.rail{background:linear-gradient(160deg,#132337f5,#0e172be8);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
#client-profile{margin:18px 18px 18px auto;width:min(1080px,calc(100vw - 36px));max-width:none;height:calc(100dvh - 36px);max-height:none;border-radius:22px;border:1px solid #fff;background:#f6f8fceF;box-shadow:0 30px 80px #0e173c55;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.profile-shell{padding:26px;min-height:100%;display:flex;flex-direction:column;gap:20px}.profile-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.profile-head h2{font-size:28px;line-height:1.25;letter-spacing:-.03em;margin-top:5px}.profile-head p{font-size:12px;color:var(--muted);margin-top:6px}.profile-head .btn{min-height:44px}#profile-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid #dce3ee;padding-bottom:10px;flex-shrink:0}#profile-tabs .btn{background:transparent;border-color:transparent;font-size:12px}#profile-tabs [aria-current=page]{background:#172e4e;color:#fff;border-color:#172e4e}#profile-content{display:grid;gap:18px;min-width:0}.profile-overview,.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profile-stat{padding:20px;background:#fff9;border:1px solid #fff;border-radius:14px;display:grid;gap:8px;box-shadow:0 9px 24px -19px #30455d80}.profile-stat>strong{font-size:21px}.profile-stat>span:last-child{font-size:11px;color:var(--muted)}.status-hot{color:#b42637}.status-pending{color:#947007}.status-paid{color:#227349}.status-inactive{color:#202a38}.status-member{color:#7247a5}.profile-facts{display:grid;grid-template-columns:125px minmax(0,1fr);gap:10px;font-size:13px;margin:0 0 18px}.profile-facts dt{color:var(--muted)}.profile-facts dd{margin:0;overflow-wrap:anywhere;color:var(--ink)}.profile-intro{font-size:13px;max-width:75ch}.profile-entry{background:#ffffffb0;border:1px solid white;border-radius:13px;overflow:hidden;box-shadow:0 8px 25px -20px #253c6055}.profile-entry summary{padding:16px 18px;font-weight:650;color:#234c7e;cursor:pointer}.profile-entry-form{display:grid;gap:16px;padding:0 18px 20px}.profile-entry-form textarea{grid-column:1/-1}.profile-entry-form .btn{justify-self:start}.profile-entry-form .two>.field:has(textarea){grid-column:1/-1}.timeline-entry{padding:15px 0 15px 17px;border-left:2px solid #c4d4e9;border-bottom:1px solid #e3e8f1}.timeline-entry h3{font-size:14px;margin:6px 0}.timeline-entry p{font-size:12px;overflow-wrap:anywhere}.timeline-date{color:#637188;font-size:10px}.email-body{white-space:pre-wrap;margin-top:9px}.payment-net{background:#eaf4ee;border-radius:8px;padding:12px 16px;color:#245c3d;font-size:13px}#profile-error{color:#a52424;background:#fff0ed;padding:12px;border-radius:8px;white-space:pre-wrap;font-size:13px}#profile-error:empty{display:none}
@supports not (backdrop-filter:blur(1px)){.lead,.profile-entry,.profile-stat{background:#fff}.col{background:var(--tint)}}
@media(min-width:1850px){.pipeline-board{min-width:0;grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:760px){.pipeline-board{grid-template-columns:repeat(5,min(280px,calc(100vw - 56px)));min-width:max-content}.profile-overview,.profile-grid{grid-template-columns:1fr}#client-profile{margin:0;width:100vw;height:100dvh;border-radius:0}.profile-shell{padding:18px}.profile-head h2{font-size:23px}.profile-facts{grid-template-columns:100px minmax(0,1fr)}.profile-entry-form .two{grid-template-columns:1fr}.pipeline-controls{padding:12px}.col{min-height:400px}}
@media(prefers-reduced-motion:reduce){.lead:hover{transform:none}.lead{transition:none}}
.profile-person{display:block;text-align:left;border:0;background:none;padding:0;font-size:10px;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px;max-width:100%;overflow-wrap:anywhere}

/* City stays still while translucent panes move across it. */
body{background:#101e32;isolation:isolate}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:#120e1c;background-image:linear-gradient(120deg,#08132440,#090f2526),url('assets/skyline-wide.png');background-position:center;background-size:100% 100%;background-repeat:no-repeat}
.brand-logo{display:block;width:170px;height:auto;object-fit:contain;margin:0 auto;filter:drop-shadow(0 5px 14px #0008)}
.logo-home{display:block;padding:4px 2px 12px}.rail{background:linear-gradient(150deg,#0b172ccc,#101d32a6);border-right:1px solid #ffffff40;box-shadow:10px 0 40px #02081725}.rail .brand-logo{max-width:100%;max-height:156px;object-fit:contain}
#connection .brand-logo{width:190px}.head{background:#f6faffcc;border:1px solid #ffffffb3;border-radius:18px;padding:20px 24px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.panel,.pipeline-metrics,.pipeline-controls,.modal,#client-profile{background:linear-gradient(135deg,#ffffffe0,#eef5ffb8);border:1px solid #ffffffc9;box-shadow:inset 0 1px 0 #fff,0 14px 40px #020b2538;backdrop-filter:blur(22px) saturate(1.25);-webkit-backdrop-filter:blur(22px) saturate(1.25)}
.col{background:linear-gradient(150deg,#ffffffbd,color-mix(in srgb,var(--tint) 68%,transparent));backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.lead{background:linear-gradient(145deg,#ffffffe3,#ffffff9c);border-left:4px solid var(--column);box-shadow:inset 0 1px 0 #fff,0 10px 22px #081c3430}
.board-help,.pipeline-footnote{background:#f4f8ffdf;padding:10px 14px;border-radius:10px;color:#34445a}.tablewrap th{background:#f8faffb0}.tablewrap tbody tr:hover{background:#ffffff80}.profile-entry,.profile-stat{background:#ffffff8a}
.lifecycle-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.path-chip{display:inline-flex;align-items:center;gap:8px;background:#f8fbffed;color:var(--column);font-size:12px;font-weight:700;padding:8px 12px;border-radius:30px;border:1px solid #fff;box-shadow:0 4px 15px #0002}.path-chip i{width:9px;height:9px;border-radius:50%;background:var(--column)}
.sales-stage{display:inline-flex;justify-self:start;align-items:center;gap:6px;border-radius:7px;padding:4px 8px;font-size:11px;font-weight:650;border:1px solid currentColor;background:#fff9;color:#45546b}.sales-stage::before{content:'';height:6px;width:6px;border-radius:50%;background:currentColor}
.stage-new{color:#b4233d;background:#ffedf0}.stage-contact_attempted{color:#975600;background:#fff3de}.stage-connected{color:#007273;background:#e6f7f5}.stage-assessment_booked{color:#235bac;background:#eaf2ff}.stage-quote_sent{color:#895617;background:#fff5db}.stage-won{color:#1d704b;background:#e6f6ed}.stage-lost{color:#232a35;background:#e8ebef}
@media(max-width:760px){.rail .brand-logo{display:block;width:120px;max-height:110px}.logo-home{padding:0}.head{padding:16px}.rail{background:#0b172ce0}.board-help{font-size:12px}.brand-logo{width:140px}}
@supports not (backdrop-filter:blur(1px)){.panel,.modal,.pipeline-metrics,.pipeline-controls,#client-profile,.head{background:#f4f7fb}.col{background:var(--tint)}.lead{background:#fff}}

/* Fit the entire panorama edge to edge; no cover crop, tile, or zoom. */
.rail nav button:hover,.rail nav button:focus-visible{background:#713629;color:#fff;box-shadow:inset 3px 0 #ff9c68}
.rail nav button[aria-current=page]{background:linear-gradient(105deg,#9a452f,#512b31);color:#fff;box-shadow:inset 4px 0 #ffad73}
.railfoot .btn:hover,.railfoot .btn:focus-visible{background:#773c2d;border-color:#f89b6f;color:#fff}.railfoot .btn:disabled{background:#25334a;color:#c5cfdf;opacity:.7}
#content>p,.view-note{background:#f5f8fff0;color:#34445a;padding:13px 16px;border:1px solid #ffffffb3;border-radius:12px;margin:12px 0;line-height:1.6}
.customer-name{border:0;background:none;color:inherit;font:inherit;font-weight:650;text-align:left;padding:4px 0;cursor:pointer;text-underline-offset:3px}.customer-name:hover{text-decoration:underline}
.tablewrap tbody tr.customer-row{cursor:pointer;transition:background .15s}
.tablewrap tbody tr.customer-row:is(:hover,:focus-within){background:#ffe7d9e8;color:#632c1d}
.tablewrap tbody tr.customer-row.is-selected{background:#ffd5bef2;color:#572616}
.tablewrap tbody tr.customer-row.is-selected td:first-child{box-shadow:inset 4px 0 #e25c31}
.tablewrap tbody tr.customer-row:is(:hover,.is-selected,:focus-within) .sub{color:#713e2b}
.tablewrap tbody tr.customer-row.is-selected .customer-name{color:#992f17}
.score-intro{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px;margin-bottom:18px}.score-intro h2{font-size:20px}.score-intro p{margin-top:7px;font-size:13px}.score-intro .field{min-width:110px}
.score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.score-card{padding:22px 18px;display:grid;align-content:start;gap:11px;background:linear-gradient(135deg,#ffffffed,#eaf4ffe0);border:1px solid white;box-shadow:0 12px 30px #030b202a;border-radius:16px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.score-card strong{font-size:clamp(20px,2vw,29px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.score-card small{font-size:11px}.score-change{font-size:12px;font-weight:650}.positive{color:#176446}.negative{color:#ac302a}.score-pending .score-card{border-top:3px solid #d17832}
@media(max-width:1100px){.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.score-grid{grid-template-columns:1fr}.score-intro{align-items:start;flex-direction:column}.score-intro .field{width:100%}}

/* Fixed-height plot preserves readable labels instead of shrinking into a wide strip. */
.receipts-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 20px 12px;flex-wrap:wrap}.cash-key{display:flex;align-items:center;gap:7px;font-size:12px}.cash-key i{width:10px;height:10px;border-radius:3px;background:#237555}.cash-key i.refund{background:#b94336;margin-left:10px}.cash-scroll{overflow-x:auto;margin:0 20px;border:1px solid #ccd9e4;border-radius:10px;background:#ffffffd9;scrollbar-color:#987463 #eef1f5;scrollbar-width:auto}.cash-chart{display:block;width:100%;height:300px}.cash-chart text{fill:#364b61;font-size:12px;font-family:var(--body)}.cash-chart .cash-axis{font-size:11px}.cash-bar:hover{filter:brightness(1.15)}.cash-scroll-hint,.cash-note{font-size:12px;color:#465970;padding:12px 20px;line-height:1.6}.cash-details{margin:0 20px 12px;background:#ffffffb8;border:1px solid #ccd9e4;border-radius:10px;overflow:hidden}.cash-details summary{cursor:pointer;font-weight:650;padding:12px 16px;color:#234c7e}.cash-empty{margin:0 20px;padding:30px 20px;background:#ffffffcf;border-radius:10px;line-height:1.6}

/* Linked operations keep forms legible above the fixed city backdrop. */
#work-dialog { width:min(1080px,94vw); max-height:92vh; padding:0; border:1px solid #fff9; border-radius:22px; background:rgba(246,248,253,.96); color:#172238; box-shadow:0 24px 80px #050c2790; }
#work-dialog .modal { max-width:none; }
#work-body { display:grid; gap:20px; }
#work-form .two { gap:16px; }
#work-dialog input,#work-dialog textarea,#work-dialog select { min-width:0; width:100%; }
#work-dialog textarea { min-height:95px; }
#scan-text { white-space:pre-wrap; overflow-wrap:anywhere; max-height:220px; overflow:auto; }
#scan-review { display:grid; gap:12px; }
#work-error,#scan-status { white-space:pre-wrap; overflow-wrap:anywhere; }
.rail nav { overflow-y:auto; min-height:120px; }
@media(max-width:700px){ #work-form .two { grid-template-columns:1fr; } #work-dialog { width:96vw; } }
#work-dialog input[type=checkbox] { width:auto; min-height:0; }
#work-dialog { backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); }

/* ===== Phase 0 design system (Oct 6, 2026). Takes precedence over the layers above.
   Calm, solid surfaces for daily work; the skyline is kept for sign-in and the Today header.
   Brand fonts are self-hosted so the dashboard works offline and under the hosted CSP. */
@font-face{font-family:'IBM Plex Sans';src:url('assets/fonts/ibm-plex-sans-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('assets/fonts/ibm-plex-mono-500-latin.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--navy:#0e1725;--navy-2:#17243a;--red:#ca0303;--gold:#fbc002;--steel:#445b74;--ground:#f2f4f8;--panel:#fff;--ink:#0e1725;--text:#35455c;--muted:#5d6c80;--line:#e2e7ee;--blue:#0a63b0;
  --body:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --shadow:0 1px 2px #0e17250d,0 10px 28px -18px #0e172547}
body{font-family:var(--body)}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Work surfaces: solid ground and panels, no glass over the photo. */
body:has(#workspace:not([hidden])){background:var(--ground)}
body:has(#workspace:not([hidden]))::before{background:var(--ground)}
.panel,.pipeline-metrics,.pipeline-controls,.modal,#client-profile,.head,.score-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:none;-webkit-backdrop-filter:none}
#content>p,.view-note,.board-help,.pipeline-footnote{background:#f8fafd;border:1px solid var(--line)}
.tablewrap th{background:#f6f8fb}.tablewrap tbody tr:hover{background:#f4f7fb}.tablewrap td,.amount,.score-card{font-variant-numeric:tabular-nums}
.col{background:color-mix(in srgb,var(--tint) 50%,#fff);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.lead{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 2px #0e172512,0 6px 14px -10px #0e172540}
.profile-entry,.profile-stat{background:#fff}
#work-dialog{background:#f8fafd;backdrop-filter:none;-webkit-backdrop-filter:none}

/* Today keeps the brand: the skyline sits behind its header only. */
body[data-hub="today"] .head{background:linear-gradient(100deg,#0e1725f2 30%,#0e1725a6),url('assets/skyline-wide.png') center/cover;border-color:#0e1725}
body[data-hub="today"] .head :is(h1,.eyebrow){color:#fff}body[data-hub="today"] .head :is(p,.search){color:#c8d3e1}

/* Rail: navy, grouped by hub. */
.rail{background:var(--navy);border-right:0;box-shadow:none}
.hubnav{display:grid;gap:16px;align-content:start}
.hub{display:grid;gap:2px}
.hub-label{display:flex;align-items:center;gap:9px;padding:0 10px 4px;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8ea0b6}
.rail .hub button{display:flex;align-items:center;gap:9px;width:100%;min-height:36px;padding:7px 10px 7px 37px;border:0;border-radius:8px;background:none;color:#c9d4e2;font-weight:500;text-align:left;box-shadow:none}
.rail .hub .hub-solo{padding-left:10px;font-weight:600;color:#e8eef6}
.rail .hub button:is(:hover,:focus-visible){background:#ffffff12;color:#fff;box-shadow:none}
.rail .hub button[aria-current=page]{background:#ffffff1c;color:#fff;box-shadow:inset 3px 0 var(--red)}
.railfoot .btn:is(:hover,:focus-visible){background:#ffffff14;border-color:#ffffff40}
.tabbar{display:none}

/* Phones: compact header, the current hub's views as chips, and a bottom tab bar. */
@media(max-width:760px){
  main{padding:14px 14px calc(88px + env(safe-area-inset-bottom))}
  .rail{display:flex;flex-direction:column;gap:10px;padding:10px 14px;background:var(--navy)}
  .rail .brand-logo{width:84px;max-height:60px;margin:0}.logo-home{padding:0}
  .hubnav{display:block}.hub{display:none}
  .hub.is-active{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.hub.is-active .hub-label{display:none}
  body[data-hub="today"] .hubnav{display:none}
  .rail .hub button{width:auto;white-space:nowrap;min-height:38px;padding:8px 14px;border-radius:999px;background:#ffffff14;color:#dbe4ef}
  .rail .hub button[aria-current=page]{background:#fff;color:var(--navy);box-shadow:none}
  .railfoot{display:none}body[data-hub="more"] .railfoot{display:flex;flex-wrap:wrap;gap:8px}
  .head{padding:14px 16px;margin-bottom:14px;flex-direction:column;align-items:stretch;gap:10px}.head h1{font-size:22px}.search{min-width:0}
  .tabbar{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--navy);border-top:1px solid #ffffff1f;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:48px;padding:6px 2px;border:0;border-radius:10px;background:none;color:#9fb0c5;font-size:10.5px;font-weight:600}
  .tabbar button[aria-current=page]{color:#fff;background:#ffffff14}
  .tabbar .ico{width:21px;height:21px}
}
/* Rail fits any laptop height: hubs are one row each, only the active hub lists its views. */
.rail{gap:18px;padding:18px 12px}.rail .brand-logo{max-height:92px;width:auto;max-width:150px}.logo-home{padding:0 0 4px}
.rail .hubnav{min-height:0;overflow:visible;gap:4px}
.rail .hub-label{width:100%;min-height:38px;border:0;border-radius:8px;background:none;cursor:pointer;font-size:12px;padding:8px 10px}
.rail .hub-label:is(:hover,:focus-visible){background:#ffffff12;color:#fff}
.rail .hub-label[aria-current=page]{color:#fff}
.rail .hub:not(.is-active) [data-view]:not(.hub-solo){display:none}
.rail .hub.is-active{padding-bottom:6px}
.rail .hub [data-view]:not(.hub-solo){min-height:32px;padding:6px 10px 6px 37px}
.railfoot{display:grid;gap:4px;margin-top:auto;padding-top:12px;border-top:1px solid #ffffff1a}
.railfoot .btn{min-height:32px;padding:6px 10px;font-size:12.5px;text-align:left;background:none;border:0;color:#b8c6d8}
.railfoot .mode{font-size:11.5px}
.search input{width:100%}
@media(max-width:760px){
  .rail .hubnav{min-height:0}.rail .hub.is-active{align-items:center;padding-bottom:0}
  .rail .hub [data-view]:not(.hub-solo){padding:8px 14px}
  .railfoot{border-top:0;padding-top:0;margin-top:0}.railfoot .btn{background:#ffffff14;border-radius:999px}
}
.rail .hub .hub-label[aria-current=page]{background:none;box-shadow:none;color:#fff}
@media(max-width:760px){
  .railfoot{display:none}body[data-hub="more"] .railfoot{display:flex;flex-wrap:wrap;gap:8px}
  .head .search{width:100%}
}
/* Quick find */
#quick{margin:12vh auto auto;width:min(620px,92vw);max-width:none}
.quick{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -20px #0e172566;padding:8px}
#quick-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:12px 12px 14px;font-size:16px;outline:none;background:none;color:var(--ink)}
#quick-list{list-style:none;margin:6px 0 0;padding:0;max-height:52vh;overflow:auto}
#quick-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:44px;padding:8px 12px;border-radius:8px;cursor:pointer;color:var(--ink)}
#quick-list li[aria-selected=true]{background:#e9f0f9;box-shadow:inset 3px 0 var(--blue)}
.quick-hint{color:var(--muted);font-size:12px;text-align:right}.quick-empty{color:var(--muted)}
.quick-keys{color:var(--muted);font-size:11.5px;padding:8px 12px 4px}
.quick-btn{align-self:center;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.quick-btn kbd{font:500 11px var(--mono);border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--muted);background:#f6f8fb}
body[data-hub="today"] .quick-btn{background:#ffffff1a;border-color:#ffffff40;color:#fff}
@media(max-width:760px){.quick-btn kbd{display:none}#quick{margin-top:8vh}}
.welcome{padding:22px 24px;display:grid;gap:10px;border-left:4px solid var(--red)}.welcome h2{font-size:19px}.welcome p{max-width:62ch}
.empty{color:var(--muted)}
.railfoot .btn{justify-content:flex-start}

/* ===== Dark mode. Follows the device until the viewer chooses; see the theme script in app.js.
   Overrides target the components that hard-code light colours in the layers above. */
html[data-theme="dark"]{color-scheme:dark;--ground:#0a111d;--panel:#111a29;--ink:#e9eef6;--text:#c4cfdd;--muted:#90a1b6;--line:#223047;--blue:#5aa5f2;--good:#5fc596;--bad:#ff7b72;--shadow:0 1px 2px #0006,0 12px 30px -18px #000a}
html[data-theme="dark"] body{color:var(--text)}
html[data-theme="dark"] :is(.panel,.pipeline-metrics,.pipeline-controls,.modal,.head,.score-card,.profile-entry,.profile-stat,.lead,.cash-details,.cash-empty,.cash-scroll,.quick){background:var(--panel);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] #client-profile,html[data-theme="dark"] #work-dialog{background:#0e1624;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .pipeline-metrics>div{border-color:var(--line)}
html[data-theme="dark"] :is(#content>p,.view-note,.board-help,.pipeline-footnote,.notice,.next-action,.email-body,pre){background:#0e1726;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .notice b{color:var(--ink)}
html[data-theme="dark"] .tablewrap th{background:#0e1726;color:var(--muted)}
html[data-theme="dark"] :is(.tablewrap tbody tr:hover,tbody tr:hover){background:#16223a}
html[data-theme="dark"] .tablewrap td{border-color:var(--line)}
html[data-theme="dark"] .tablewrap tbody tr.customer-row:is(:hover,:focus-within){background:#2a1d18;color:#ffd9c7}
html[data-theme="dark"] .tablewrap tbody tr.customer-row.is-selected{background:#3a2218;color:#ffe2d3}
html[data-theme="dark"] :is(input,select,textarea,.search input,#quick-input){background:#0b1320;color:var(--ink);border-color:#2c3c57}
html[data-theme="dark"] ::placeholder{color:#6f8199}
html[data-theme="dark"] .btn{background:#17233a;border-color:#2c3c57;color:var(--ink)}
html[data-theme="dark"] .btn:is(:hover,:focus-visible){background:#1e2d49}
html[data-theme="dark"] .btn.primary{background:#2f7fd6;border-color:#2f7fd6;color:#fff}
html[data-theme="dark"] .segmented .btn[aria-pressed=true],html[data-theme="dark"] #profile-tabs [aria-current=page]{background:#e9eef6;color:#0e1725}
html[data-theme="dark"] .col{background:color-mix(in srgb,var(--column) 14%,#0e1624);border-color:var(--line)}
html[data-theme="dark"] .column-heading{border-bottom-color:var(--line)}
html[data-theme="dark"] .column-heading h2{color:color-mix(in srgb,var(--column) 45%,#fff)}
html[data-theme="dark"] .column-count{background:#0b1320;color:var(--ink)}
html[data-theme="dark"] .lead{border-left-color:var(--column);box-shadow:none}
html[data-theme="dark"] .is-drop-target{background:#1b2a44}
html[data-theme="dark"] .path-chip{background:#121c2c;border-color:var(--line);color:color-mix(in srgb,var(--column) 45%,#fff)}
html[data-theme="dark"] .sales-stage{background:#0b1320}
html[data-theme="dark"] :is(.stage-new,.stage-contact_attempted,.stage-quote_sent,.priority--high,.priority--urgent,.p-warn){background:#24161b}
html[data-theme="dark"] .quick-btn kbd{background:#0b1320;border-color:var(--line)}
html[data-theme="dark"] #quick-list li[aria-selected=true]{background:#1a2b47}
html[data-theme="dark"] .welcome{border-left-color:var(--red)}
html[data-theme="dark"] :is(#status,#error,#work-error,#scan-status,#profile-error){color:var(--ink)}
html[data-theme="dark"] #error,html[data-theme="dark"] #profile-error,html[data-theme="dark"] #work-error{color:var(--bad)}
html[data-theme="dark"] dialog::backdrop{background:#000a}
html[data-theme="dark"] .railfoot .btn{background:none;border:0;color:#b8c6d8}
html[data-theme="dark"] .railfoot .btn:is(:hover,:focus-visible){background:#ffffff14}
html[data-theme="dark"] .pill{background:#1a273d;color:var(--ink)}
html[data-theme="dark"] .p-info{background:#13284a;color:#9cc7f5}
html[data-theme="dark"] .p-warn{color:#ffb38a}
html[data-theme="dark"] .priority{background:#1a273d;color:#c4cfdd}
html[data-theme="dark"] .priority--high{background:#33270f;color:#f3c66b}
html[data-theme="dark"] .priority--urgent{background:#3a1717;color:#ff9b93}
html[data-theme="dark"] .marketing-tag{background:#13284a;color:#9cc7f5;border-color:#24406b}
html[data-theme="dark"] .segmented{background:#0b1320;border-color:var(--line)}
@media(max-width:760px){html[data-theme="dark"] .railfoot .btn{background:#ffffff14;border-radius:999px}}
/* Speed to lead */
.wait{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
.wait::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.wait--ok{background:#e4f4ea;color:#1f6b43}.wait--warn{background:#fff1d6;color:#8a5a0c}.wait--late{background:#fde7e5;color:#a3221c}
.speed{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0}
.call-now{background:var(--red);border-color:var(--red);color:#fff;font-weight:600;text-decoration:none}
.call-now:is(:hover,:focus-visible){background:#a80202;color:#fff}
html[data-theme="dark"] .wait--ok{background:#123224;color:#7fdcaa}html[data-theme="dark"] .wait--warn{background:#33270f;color:#f3c66b}html[data-theme="dark"] .wait--late{background:#3a1717;color:#ff9b93}
html[data-theme="dark"] .call-now{background:#d11a1a;border-color:#d11a1a;color:#fff}
a.btn{text-decoration:none;display:inline-flex;align-items:center}
