*{box-sizing:border-box}body{margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;padding:10px 16px;background:#fff;color:#203253;border:1px solid #dce3ef;border-radius:9px;font-weight:600}button:hover{background:#edf2ff}button:disabled{opacity:.55;cursor:wait}button.primary{background:#2850ed;border-color:#2850ed;color:white}a{color:#2850ed;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #7a9bff;outline-offset:3px}input,select,textarea{width:100%;min-height:46px;border:1px solid #cbd5e7;border-radius:8px;background:#fff;padding:11px 13px;color:#172849}select{appearance:none;padding-right:43px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2355637d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}textarea{min-height:104px;resize:vertical}label{display:block;font-size:13px;font-weight:600;color:#55637d}label input,label select,label textarea{display:block;margin-top:7px;font-weight:400}h1,h2,h3,p{margin-top:0}h1{font-size:34px;letter-spacing:-1.2px;margin-bottom:0}h2{font-size:21px;letter-spacing:-.5px;margin-bottom:8px}h3{font-size:17px;margin-bottom:5px}.eyebrow{font-size:10px;letter-spacing:.1em;color:#7d89a0;font-weight:700;margin-bottom:7px}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 26px}.view-tabs{display:flex;gap:8px;border-bottom:1px solid #dce3ef;padding-bottom:14px}.view-tabs a{padding:12px 17px;border-radius:8px;text-decoration:none;color:#63718b;font-weight:600}.view-tabs a[aria-current]{background:#e7edff;color:#2850ed}.view-tabs span{font-size:12px;margin-left:6px}.muted,#connection{color:#748098;font-size:13px}#connection{margin:15px 0 22px}.filters{display:flex;align-items:flex-end;gap:16px;margin-bottom:20px}.filters label:first-child{flex:1}.filters label{min-width:0}.filters select{min-width:200px}.map-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr);gap:20px}.map-panel,.project-panel{background:#fff;border:1px solid #e0e6f0;border-radius:15px;overflow:hidden;min-width:0}.map-top{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;gap:10px}.map-top h2{margin:2px 0 0}.quiet{font-size:12px}.map-panel{background:#edf2fc}#map-area{height:500px;position:relative;overflow:hidden}#map-canvas,#map-markers{position:absolute;inset:0}#map-canvas canvas{display:block;touch-action:pan-y}#map-markers{pointer-events:none}.map-marker{position:absolute;left:0;top:0;min-width:34px;min-height:34px;padding:5px 9px;pointer-events:auto;border:2px solid white;border-radius:30px;background:#2850ed;color:#fff;font-size:12px;box-shadow:0 3px 10px #17387544;transform:translate(-50%,-50%)}.map-marker.registry{background:#465575}.map-marker:hover,.map-marker:focus-visible{background:#12299d;z-index:3}.map-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:17px 24px;font-size:11px;color:#627493;border-top:1px solid #dbe4f5}.legend-dot{display:inline-block;width:9px;height:9px;background:#2850ed;border-radius:50%;margin-right:5px}.project-panel{max-height:666px;overflow:auto;padding:20px}.list-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.list-heading h2 span{font-size:13px;color:#748098}.project-card{padding:17px 0;border-top:1px solid #e7ecf5}.project-card:first-child{border-top:0}.project-card>button{display:block;padding:0;border:0;background:none;text-align:left;min-height:44px;font-size:16px;color:#1f3156}.project-card p{font-size:12px;color:#78869c;margin:3px 0 8px}.project-card .contact-links{margin-top:10px}.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;display:inline-block;background:#f0f3f8;color:#61718b}.badge.new{background:#e7edff;color:#2850ed}.badge.contacted{background:#eee9ff;color:#7742c9}.badge.promised{background:#fff1d6;color:#996209}.badge.deal{background:#dcf7eb;color:#167751}.badge.rejected{background:#ffe7e9;color:#ab3946}.sources{font-size:12px;color:#748098;margin-top:20px}.sources summary{cursor:pointer;padding:10px 0}.sources p{max-width:95ch;margin-top:10px}.pipeline{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:24px}.pipeline button{padding:15px 9px;font-size:12px;text-align:left;background:#fff}.pipeline strong{display:block;font-size:26px;line-height:1.2;margin-bottom:7px}.pipeline button[aria-pressed=true]{background:#2850ed;color:white;border-color:#2850ed}.party-filters label:first-child{max-width:550px}.party-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) minmax(160px,.7fr) 92px;align-items:center;gap:20px;background:#fff;border:1px solid #e0e6f0;border-radius:12px;padding:21px 24px;margin-bottom:12px}.party-row h3{font-size:16px}.party-row p{font-size:12px;color:#738099;margin:0}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:7px;font-size:13px;min-width:0}.contact-links a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;min-height:30px;overflow-wrap:anywhere;max-width:100%}.contact-links svg{width:16px;height:16px;flex:none}.contact-links a:hover{text-decoration:underline}.contact-links small{font-size:11px;color:#76849a}.contact-links .source-link{font-size:11px;color:#76849a;text-decoration:underline}.party-status{display:grid;gap:7px;justify-items:start}.party-status p{font-size:12px}.empty{padding:35px 15px;text-align:center;color:#748098;font-size:14px}.party-row>button{font-size:12px;padding:9px}.error{color:#ab3946}.error:empty{display:none}dialog{border:0;padding:0;border-radius:16px;width:min(680px,calc(100% - 24px));max-height:90dvh;color:#172849;box-shadow:0 22px 100px #15264633}dialog::backdrop{background:#10204060}dialog form{padding:28px}.dialog-header{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog-header h2{font-size:25px;margin:0}.icon-button{border:0;background:#f1f4fa;font-size:28px;line-height:1;width:44px;flex:none;padding:5px;align-self:flex-start;border-radius:50%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.full{grid-column:1/-1}.dialog-actions{position:sticky;bottom:0;background:#fff;display:flex;justify-content:flex-end;gap:12px;padding-top:20px;margin-top:10px;border-top:1px solid #e5ebf3}.project-detail{padding:17px;background:#f4f7fc;border-radius:10px;margin-bottom:20px;font-size:13px}.linked-party{border-top:1px solid #e1e7f1;padding:14px 0}.linked-party .badge{margin-left:8px}.link-choice{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px}.link-choice input{width:18px;min-height:18px;margin:0}.link-choices{max-height:200px;overflow:auto;margin-bottom:18px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);border-radius:10px;background:#172849;color:white;z-index:100;padding:12px 20px;display:none}.legacy-note{white-space:pre-wrap;background:#fff5dc;padding:14px;border-radius:8px;font-size:13px}button,a{touch-action:manipulation}[hidden]{display:none!important}
@media(max-width:1150px){.filters{flex-wrap:wrap}.filters label:first-child{flex-basis:100%}.map-layout{grid-template-columns:minmax(0,1.15fr) minmax(275px,1fr)}.party-row{grid-template-columns:1fr 1fr;gap:15px}.party-row>button{justify-self:end}.pipeline{grid-template-columns:repeat(4,1fr)}#map-area{height:460px}}
@media(max-width:760px){.map-layout{grid-template-columns:1fr}.project-panel{max-height:570px}.heading{align-items:flex-start}h1{font-size:28px}.heading>.primary{font-size:12px;padding:9px}.view-tabs a{padding:11px 10px;font-size:13px}.eyebrow{font-size:9px}.filters{gap:12px}.filters label{flex:1;min-width:130px}.filters select{min-width:0}#map-area{height:400px}.map-top{padding:18px}.pipeline{grid-template-columns:repeat(3,1fr);gap:8px}.pipeline button{padding:12px;font-size:11px}.pipeline strong{font-size:24px}.party-row{padding:18px;grid-template-columns:1fr}.party-row>button{justify-self:stretch}.contact-links a{min-height:36px}.party-status{grid-template-columns:auto 1fr;align-items:center;gap:12px}.party-filters button{width:100%}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}dialog form{padding:21px}.map-bottom{padding:14px 18px}.map-top h2{font-size:19px}#connection{font-size:12px}.party-row .contact-links{padding:9px 0;border-top:1px solid #edf0f7;border-bottom:1px solid #edf0f7}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-width:480px){.heading{flex-direction:column;gap:12px}.heading>.primary{align-self:flex-end}.filters label{flex-basis:100%}.view-tabs{gap:0}.view-tabs a{font-size:12px;padding:11px 9px}.map-top{gap:8px}.quiet{padding:9px 11px}.party-row,.project-card{overflow-wrap:anywhere}}
@media(max-width:760px){.pipeline{display:flex;overflow-x:auto;padding-bottom:5px}.pipeline button{flex:0 0 auto;min-height:46px;padding:11px 14px;white-space:nowrap}.pipeline strong{display:inline;font-size:15px;margin-right:7px}.heading .eyebrow{display:none}.heading{margin-top:4px}}
.party-network{grid-column:1/-1;display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding-top:15px;border-top:1px solid #edf0f7}.network-facts{display:flex;flex-wrap:wrap;gap:7px 12px;align-items:center;font-size:11px;color:#75829a}.network-facts button{font-size:11px;border:0;background:#f4f7fd;padding:6px 10px;min-height:34px}.group-badge{background:#eee9ff;border-radius:5px;padding:5px 8px;color:#6842bd}.network-actions{display:flex;gap:7px;flex-shrink:0}.network-actions button{font-size:11px;padding:7px 10px;min-height:36px}.contact-warning{color:#9b5b08;font-size:12px}.network-notice,.location-hint{background:#fff5df;padding:17px;border-radius:10px;margin:15px 0;font-size:13px}.network-notice p,.location-hint p{margin:8px 0}.location-hint{background:#edf3ff}.location-hint a{display:block;margin:10px 0}.network-check{border:1px solid #dce3ef;border-radius:10px;padding:15px 20px;background:white;margin:24px 0}.network-check summary{cursor:pointer;font-size:14px;font-weight:600}.network-check>div{margin-top:15px}.research-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.research-heading label{min-width:240px}.research-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.research-stats>div{padding:24px;background:white;border:1px solid #dce3ef;border-radius:12px}.research-stats strong{font-size:32px;color:#2850ed;display:block}.research-stats span{font-size:13px;color:#64748f}#research-progress{font-size:14px;max-width:85ch}#research-date{font-size:12px}.portfolio-row{background:white;border:1px solid #e0e6f0;padding:18px 22px;border-radius:10px;display:grid;grid-template-columns:1fr 140px 140px;gap:16px;align-items:center;margin-bottom:10px}.portfolio-row h3{font-size:15px}.portfolio-row p{font-size:12px;color:#75829a;margin:0}.portfolio-row a,.portfolio-row button{font-size:12px}.portfolio-links{max-height:260px;overflow:auto;background:#f4f7fc;border-radius:8px;margin-bottom:24px;padding:14px}.portfolio-links a{display:block;padding:8px 0;font-size:13px}.contact-event{padding:12px 0;border-top:1px solid #e0e6f0;font-size:13px}.contact-event p{margin:5px 0;white-space:pre-wrap}#network-body h3{margin-top:22px}.continue-contact{display:inline-block;padding:13px 16px;background:#eaf0ff;border-radius:9px}#portfolio-more{margin-top:12px}#portfolio-count{color:#7a87a0;font-size:14px}
@media(max-width:1150px){.party-network{flex-direction:column}.portfolio-row{grid-template-columns:1fr 120px}.portfolio-row>div{grid-column:1/-1}}
@media(max-width:760px){.network-actions{flex-wrap:wrap}.network-actions button{min-height:44px}.research-stats{grid-template-columns:1fr;gap:10px}.research-stats>div{padding:15px;display:flex;align-items:center;gap:16px}.research-stats strong{font-size:27px;min-width:70px}.research-heading{align-items:flex-start;flex-direction:column}.research-heading label{min-width:0;width:100%}.portfolio-row{padding:16px;grid-template-columns:1fr 1fr}.portfolio-row a{min-height:44px;display:flex;align-items:center}.view-tabs{overflow-x:auto}.view-tabs a{white-space:nowrap;flex-shrink:0}.party-network{gap:12px}}

.coverage{margin:32px 0}.coverage-state{padding:7px 11px;border-radius:7px;background:#f0f2f7;color:#65728b;font-size:13px;white-space:nowrap}.coverage-state.found{background:#eaf0ff;color:#2852ed}.candidate-source{padding:16px 0;border-bottom:1px solid #dce3f1}.candidate-source:last-child{border:0}.candidate-source p{font-size:14px;margin:6px 0}.candidate-source>a{font-weight:650}.candidate-source strong{display:block;margin-top:12px}

.link-choice[hidden]{display:none}

/* One extra action in the existing map. */
.contact-links .outcome-button{min-height:44px;font-size:12px;padding:9px 13px;background:#edf2ff;color:#2850ed;border-color:#dce5ff}.contact-links .outcome-button:hover{background:#e1eaff}#contact-outcome{max-width:480px}#contact-outcome label{margin:16px 0}#contact-outcome [hidden]{display:none}.outcome-note{margin:18px 0 0;font-size:13px;color:#5c6e8c}.outcome-note summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.outcome-note textarea{margin-top:5px}.contact-links .outcome-button:active{transform:scale(.98)}

/* Timing lives in the existing map filter; no additional work screen. */
#kind-filter{min-width:235px}.moment-help{font-size:12px;color:#63718b;margin:-7px 0 19px;max-width:85ch}
.moment-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0 9px}
.moment-badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:4px 8px;font-size:11px;font-weight:650}
.moment-badge:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.moment-badge.awarded{background:#eee9ff;color:#7742c9}.moment-badge.started{background:#e7edff;color:#2850ed}.moment-badge.delivery{background:#fff1d6;color:#996209}.moment-badge.completed{background:#dcf7eb;color:#167751}.moment-badges small{font-size:10px;color:#748098}
.planning-edit{padding:17px;background:#edf2ff;border-radius:10px;margin-bottom:18px}.planning-edit h3{margin-bottom:12px}.planning-edit small{display:block;font-size:11px;font-weight:400;color:#63718b;margin-top:12px}
@media(max-width:760px){#kind-filter{min-width:0}.planning-edit{padding:14px}}

/* Party type and existing shared links, without a new workflow. */
.party-filters{flex-wrap:wrap}.party-filters label:first-child{min-width:220px}.party-filters select{min-width:180px}
.network-facts .shared-locations{color:#7742c9;background:#f2edff;border-color:#e4dafa}
.shared-project{padding:14px 0;border-top:1px solid #e3e9f2}.shared-project>button{display:block;width:100%;text-align:left;background:#f5f7fc;margin-bottom:10px}
.shared-project>small{display:block;color:#748098;font-size:11px;margin-bottom:10px}.shared-party{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px}.shared-party>div{min-width:0}.shared-party strong{display:block;overflow-wrap:anywhere}.shared-party small{display:block;color:#748098;font-size:11px}.shared-party .badge{flex-shrink:0}.shared-agreement{background:#fff1d6;color:#85570f;padding:10px;border-radius:7px;font-size:12px;margin:8px 0 0}.shared-rule{font-size:12px;color:#63718b;padding-top:15px;border-top:1px solid #e3e9f2;margin-top:15px}
@media(max-width:760px){.party-filters label:first-child{min-width:0}.party-filters select{min-width:0}}
/* A single contact sheet; details are available without dominating the call. */
#contact-outcome{max-width:650px}#contact-outcome .dialog-header{margin-bottom:15px}#outcome-person{margin:6px 0 0}#outcome-dial{width:100%;font-size:17px;text-align:center;min-height:50px}.contact-alert{background:#fff2d9;color:#825510;border-radius:8px;padding:12px 14px;font-size:13px;margin:12px 0}.contact-project-brief{border:1px solid #dce5f7;background:#f5f8ff;border-radius:10px;padding:14px;font-size:13px}.contact-timing{margin-bottom:12px;line-height:1.6}.contact-prompts{font-size:13px;line-height:1.6;margin:12px 0 0}.contact-others summary,.contact-history summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:#2850ed}.contact-others>div{border-top:1px solid #dce5f7;padding:10px 0}.contact-others small,.contact-event small{display:block;color:#64748d;margin-top:3px}.contact-others p{margin:6px 0 0}.contact-history{margin-top:12px;font-size:13px}.contact-history p{overflow-wrap:anywhere}.contact-history .contact-event{padding:10px 0}.outcome-result{border-top:1px solid #e0e6f0;margin-top:12px}#contact-outcome .contact-check{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:13px}#contact-outcome .contact-check input{width:18px;min-height:18px;margin:2px 0 0;flex:none}#outcome-agreement{padding:0 14px 3px;border:1px solid #dce5f7;border-radius:10px;background:#f5f8ff}#contact-outcome .dialog-actions{gap:10px}#contact-outcome .dialog-actions .primary{flex:1}#map-view>.filters{flex-wrap:wrap}#map-view>.filters label:first-child{flex:1 1 280px}#map-view>.filters select{min-width:170px}@media(max-width:760px){#contact-outcome{max-height:92dvh}#contact-outcome form{padding:20px}#contact-outcome .dialog-header h2{font-size:22px;overflow-wrap:anywhere}#map-view>.filters label:first-child{flex-basis:100%}#map-view>.filters select{min-width:0}}
.contact-other-names{font-size:12px;color:#64748d;margin:0 0 10px}.contact-project-notes summary{min-height:40px;display:flex;align-items:center;cursor:pointer;color:#2850ed;font-weight:600}.contact-project-notes p{font-size:12px;margin:6px 0 0}
.contact-location-title{display:none}@media(max-width:760px){.contact-location-title{display:block;line-height:1.5;margin-bottom:10px}}
.map-top h2,.list-heading,.party-row>div,.candidate-source>a{min-width:0;overflow-wrap:anywhere}.map-top>button,.dialog-bar>button{flex:none}.list-heading>*{min-width:0}
