/* ============================================================
   DreamSHARE — Member Portal + Stitched Map styles
   ============================================================ */
html,body{ height:100%; }
body.portal-body{ margin:0; overflow:hidden; background:var(--ink); }

.portal{ display:grid; grid-template-rows:auto 1fr; height:100vh; height:100dvh; }

/* ---- Top bar ---- */
.ptop{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px clamp(16px,2.5vw,28px); background:var(--ink); border-bottom:1px solid var(--line-ink); z-index:30; }
.ptop .brand img{ height:32px; }
.ptop-mid{ display:flex; align-items:center; gap:12px; min-width:0; }
.ptop-mid .tt{ font-family:var(--font-display); font-size:1.15rem; color:var(--text-ink); white-space:nowrap; }
.ptop-mid .badge{ font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-bright); border:1px solid var(--line-ink); border-radius:100px; padding:.35em .7em; }
.ptop-right{ display:flex; align-items:center; gap:8px; }
.icon-btn{ display:grid; place-items:center; width:40px; height:40px; border-radius:10px; border:1px solid var(--line-ink); background:transparent; color:var(--muted-ink); cursor:pointer; transition:all .15s; }
.icon-btn:hover{ color:var(--gold-bright); border-color:var(--gold); background:rgba(255,198,87,.08); }
.icon-btn svg{ width:19px; height:19px; }
.ptop .who{ display:flex; align-items:center; gap:10px; padding-left:8px; }
.ptop .who .av{ width:36px;height:36px;border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-deep)); display:grid;place-items:center; color:#241a09; font-weight:800; font-size:.9rem; }
.ptop .who .nm{ font-size:.9rem; color:var(--text-ink); font-weight:600; line-height:1.1; }
.ptop .who .rl{ font-size:.72rem; color:var(--muted-ink); }
@media (max-width:720px){ .ptop .who .meta, .ptop-mid .badge{ display:none; } }

/* ---- Body ---- */
.pbody{ display:grid; grid-template-columns:300px 1fr; min-height:0; position:relative; }
@media (max-width:860px){ .pbody{ grid-template-columns:1fr; } .psidebar{ position:absolute; inset:0 auto 0 0; width:286px; transform:translateX(-100%); transition:transform .28s; z-index:25; box-shadow:30px 0 60px rgba(0,0,0,.4); } .psidebar.open{ transform:none; } }

/* ---- Sidebar ---- */
.psidebar{ background:var(--ink-soft); border-right:1px solid var(--line-ink); overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:22px; }
.pcard{ background:var(--ink); border:1px solid var(--line-ink); border-radius:16px; padding:18px; }
.member .top{ display:flex; align-items:center; gap:12px; }
.member .av{ width:48px;height:48px;border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-deep)); display:grid;place-items:center; color:#241a09; font-weight:800; font-size:1.15rem; }
.member .nm{ font-weight:700; color:var(--text-ink); }
.member .org{ font-size:.82rem; color:var(--muted-ink); }
.member .cred{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-bright); margin:3px 0 4px; }
.member .av-photo{ width:56px; height:56px; flex:none; border-radius:50%; box-shadow:0 0 0 2px var(--gold), 0 6px 16px -6px rgba(0,0,0,.6); }
.member .role-line{ font-size:.8rem; color:var(--muted-ink); margin-top:14px; padding-top:14px; border-top:1px solid var(--line-ink); }
.member .role-line span[data-bind="title"]{ color:var(--text-ink); font-weight:600; }
.ptop .who .av.has-photo{ background-size:cover; background-position:center; color:transparent; }
.member .stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
.member .stat{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:10px; padding:10px 12px; }
.member .stat .n{ font-family:var(--font-display); font-size:1.35rem; color:var(--gold-bright); line-height:1; }
.member .stat .l{ font-size:.68rem; color:var(--muted-ink); text-transform:uppercase; letter-spacing:.08em; margin-top:4px; }

.side-h{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-ink); margin:0 0 12px; }
.insight{ display:flex; gap:11px; align-items:flex-start; padding:11px; border-radius:11px; cursor:pointer; transition:background .15s; }
.insight:hover{ background:var(--ink); }
.insight .dot{ flex:none; width:10px;height:10px;border-radius:50%; margin-top:5px; }
.insight .it{ font-size:.9rem; color:var(--text-ink); font-weight:600; line-height:1.25; }
.insight .id{ font-size:.78rem; color:var(--muted-ink); }
.insight.warn .dot{ background:#e8744f; box-shadow:0 0 8px rgba(232,116,79,.6); }
.insight.opp .dot{ background:var(--gold-bright); box-shadow:0 0 8px rgba(255,198,87,.6); }

.act-list{ display:flex; flex-direction:column; gap:8px; }
.act{ display:flex; align-items:center; gap:11px; padding:11px 13px; border-radius:11px; border:1px solid var(--line-ink); background:var(--ink); color:var(--text-ink); cursor:pointer; font-size:.92rem; font-weight:500; text-align:left; transition:all .15s; width:100%; }
.act:hover{ border-color:var(--gold); background:rgba(255,198,87,.07); }
.act svg{ width:17px;height:17px; stroke:var(--gold-bright); flex:none; }

/* ---- Map stage ---- */
.pmap{ position:relative; overflow:hidden; background:
    radial-gradient(110% 90% at 75% 15%, #16263f 0%, var(--ink) 60%);
  touch-action:none; }
.pmap::before{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size:28px 28px; opacity:.6; }
.ds-canvas{ position:absolute; top:0; left:0; transform-origin:0 0; will-change:transform; }
.ds-edges{ position:absolute; top:0; left:0; overflow:visible; pointer-events:none; }
.ds-edge{ fill:none; stroke:rgba(255,198,87,.32); stroke-width:1.6; transition:stroke .2s, stroke-width .2s; }
.ds-edge.alert{ stroke:rgba(232,116,79,.7); stroke-dasharray:6 5; }
/* Informational relationships: faint, dotted, no scoring (R24) */
.ds-edge.informational{ stroke:rgba(255,255,255,.13); stroke-width:1.3; stroke-dasharray:2 6; }
/* Strategic relationships: solid, weighted by SRS tier */
.ds-edge.strategic{ stroke:rgba(255,198,87,.5); stroke-width:2; stroke-dasharray:none !important; }
.ds-edge.strategic.srs-supporting{ stroke:rgba(255,198,87,.4); stroke-width:1.8; }
.ds-edge.strategic.srs-important{ stroke:rgba(255,198,87,.58); stroke-width:2.1; }
.ds-edge.strategic.srs-strategic{ stroke:rgba(255,198,87,.8); stroke-width:2.5; }
.ds-edge.strategic.srs-critical{ stroke:#ffce63; stroke-width:3; }
.ds-edge.hot{ stroke:var(--gold-bright); stroke-width:2.6; }
.ds-edge.sel{ stroke:var(--gold-bright); stroke-width:3.2; }
.ds-edge-hit{ fill:none; stroke:transparent; stroke-width:20; pointer-events:stroke; cursor:pointer; }
.ds-edge-label{ fill:var(--muted-ink); font-family:'Space Mono',monospace; font-size:10px; text-anchor:middle; letter-spacing:.04em; opacity:0; transition:opacity .2s; }
.ds-edge-label.strategic{ opacity:.72; fill:var(--gold-bright); font-size:9px; }
.ds-edge-label.hot{ opacity:1; fill:var(--gold-bright); }
.ds-edge-label.strategic.hot{ opacity:1; }
.ds-edge-label.alert{ fill:#e8744f; }

/* ===== Relationship scoring UI (RTM R23–R30) ===== */
/* classification pills — magnitude scale */
.sc-class, .srs-tag{ font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; padding:.3em .62em; border-radius:100px; border:1px solid transparent; white-space:nowrap; }
.tier-1{ background:rgba(154,167,180,.14); color:#9aa7b4; border-color:rgba(154,167,180,.35); }
.tier-2{ background:rgba(154,167,180,.16); color:#bcc5cf; border-color:rgba(154,167,180,.4); }
.tier-3{ background:rgba(255,198,87,.12); color:var(--gold-bright); border-color:rgba(255,198,87,.32); }
.tier-4{ background:rgba(255,198,87,.18); color:var(--gold-bright); border-color:rgba(255,198,87,.5); }
.tier-5{ background:rgba(255,198,87,.26); color:#ffce63; border-color:rgba(255,198,87,.75); }

.rel-title{ display:flex; flex-direction:column; gap:5px; align-items:flex-start; font-size:1.2rem !important; line-height:1.2; }
.rel-arrow{ font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-bright); }
.srs-head{ margin-top:16px; border:1px solid rgba(255,198,87,.4); border-radius:13px; padding:15px; background:radial-gradient(120% 120% at 80% 0%, #2a2410, var(--ink)); }
.srs-head .srs-k{ font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-ink); }
.srs-head .srs-c{ font-family:var(--font-display); font-size:1.55rem; color:var(--gold-bright); margin:2px 0 7px; }
.srs-head .srs-meaning{ font-size:.82rem; color:var(--muted-ink); line-height:1.45; }

.sc-hint{ color:var(--muted-ink); font-size:.8rem; line-height:1.45; margin:0 0 14px; }
.scard{ border:1px solid var(--line-ink); border-radius:13px; margin-bottom:10px; background:var(--ink); overflow:hidden; }
.scard.open{ border-color:rgba(255,198,87,.4); }
.scard-h{ width:100%; display:flex; align-items:center; gap:10px; background:none; border:0; padding:13px 14px 13px; cursor:pointer; color:var(--text-ink); text-align:left; }
.scard-h .sc-name{ font-weight:700; font-size:.96rem; }
.scard-h .sc-class{ margin-left:auto; }
.scard-h .chev{ width:16px; height:16px; color:var(--muted-ink); transition:transform .2s; flex:none; }
.scard.open .chev{ transform:rotate(180deg); }
.scard-q{ padding:0 14px 13px; margin-top:-3px; color:var(--muted-ink); font-size:.79rem; line-height:1.4; }
.scard-body{ padding:6px 14px 16px; border-top:1px solid var(--line-ink); }
.fac{ margin-top:14px; }
.fac-h{ display:flex; justify-content:space-between; align-items:baseline; font-size:.82rem; color:var(--text-ink); font-weight:600; }
.fac-total{ font-family:'Space Mono',monospace; color:var(--gold-bright); }
.fac-total em{ color:var(--muted-ink); font-style:normal; font-size:.85em; }
.raters{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-top:9px; }
.rater{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:9px; padding:7px 5px; text-align:center; }
.rater>span{ display:block; font-size:.58rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted-ink); }
.rater>span em{ display:block; font-style:normal; color:var(--muted-ink); opacity:.7; font-size:.95em; margin-top:1px; }
.rater b{ display:block; font-size:1.05rem; color:var(--text-ink); margin-top:3px; font-family:'Space Mono',monospace; }
.rater.client{ background:rgba(255,198,87,.1); border-color:rgba(255,198,87,.45); }
.rater.client>span{ color:var(--gold-bright); }
.rater.client input{ width:100%; margin-top:3px; background:var(--ink); border:1px solid rgba(255,198,87,.4); border-radius:6px; color:var(--text-ink); font-family:'Space Mono',monospace; font-size:1.05rem; text-align:center; padding:2px 0; -moz-appearance:textfield; }
.rater.client input::-webkit-outer-spin-button,.rater.client input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.rater.client input:focus{ outline:none; border-color:var(--gold-bright); }
.consensus{ display:flex; align-items:center; gap:8px; margin-top:11px; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted-ink); }
.consensus .cbar{ flex:1; height:6px; border-radius:100px; background:var(--ink-soft); overflow:hidden; }
.consensus .cbar div{ height:100%; background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright)); border-radius:100px; }
.consensus b{ font-family:'Space Mono',monospace; color:var(--text-ink); }
.ctx{ margin-top:12px; border-top:1px dashed var(--line-ink); padding-top:8px; }
.ctx-row{ display:flex; justify-content:space-between; font-size:.77rem; color:var(--muted-ink); padding:3px 0; }
.ctx-row b{ color:var(--text-ink); font-family:'Space Mono',monospace; }
.score-readout{ display:flex; align-items:center; gap:6px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line-ink); font-size:.8rem; color:var(--muted-ink); }
.score-readout b{ font-family:'Space Mono',monospace; color:var(--text-ink); font-size:1.1rem; }
.score-readout em{ font-style:normal; color:var(--muted-ink); margin-right:4px; }
.score-readout span{ margin-left:auto; }
/* Risk reads warm at high severity */
.scard[data-skey="risk"] .sc-class.tier-4,.scard[data-skey="risk"] .sc-class.tier-5,.scard[data-skey="risk"] .score-readout span.tier-4,.scard[data-skey="risk"] .score-readout span.tier-5{ background:rgba(232,116,79,.18); color:#f0936f; border-color:rgba(232,116,79,.55); }
.edge-reset{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-size:.78rem; color:var(--muted-ink); cursor:pointer; }
.edge-reset:hover{ color:var(--gold-bright); }

/* relationship chips in the entity drawer */
.conn.linkable{ cursor:pointer; border-radius:8px; }
.conn.linkable:hover{ background:rgba(255,198,87,.06); }
.conn .cf.strat{ margin-left:auto; color:var(--gold-bright); font-family:'Space Mono',monospace; font-size:.6rem; text-transform:uppercase; letter-spacing:.05em; border:1px solid rgba(255,198,87,.4); border-radius:100px; padding:.25em .55em; }
.conn .cf.info{ margin-left:auto; color:var(--muted-ink); font-size:.68rem; opacity:.8; }

/* SRS top-5 sidebar panel */
.srs-view-all{display:flex;align-items:center;gap:6px;margin-top:10px;padding:8px 11px;border-radius:9px;border:1px solid rgba(255,198,87,.25);background:rgba(255,198,87,.06);color:var(--gold-bright);font-family:var(--font-sans);font-size:.78rem;font-weight:600;text-decoration:none;transition:all .18s;justify-content:center;}
.srs-view-all:hover{background:rgba(255,198,87,.14);border-color:rgba(255,198,87,.5);}
.srs-view-all svg{flex:none;stroke:currentColor;}
.srs-list{ display:flex; flex-direction:column; gap:7px; }
.srs-item{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:var(--ink); border:1px solid var(--line-ink); border-radius:11px; padding:9px 11px; cursor:pointer; color:var(--text-ink); transition:border-color .15s, background .15s; }
.srs-item:hover{ border-color:var(--gold); background:var(--ink); }
.srs-item .srs-rank{ width:22px; height:22px; flex:none; border-radius:50%; background:rgba(255,198,87,.16); color:var(--gold-bright); font-family:'Space Mono',monospace; font-size:.78rem; display:grid; place-items:center; }
.srs-item.tier-5 .srs-rank{ background:rgba(255,198,87,.3); color:#ffce63; }
.srs-ibody{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.srs-pair{ font-size:.76rem; font-weight:600; line-height:1.25; color:var(--text-ink); }
.srs-tag{ align-self:flex-start; background:rgba(255,198,87,.14); color:var(--gold-bright); border-color:rgba(255,198,87,.4); }

/* SRS gated (NAP / non-Full) upsell */
.srs-lock{ border:1px solid var(--line-ink); border-radius:13px; padding:15px; background:radial-gradient(120% 120% at 80% 0%, #20283a, var(--ink)); }
.srs-lock-h{ display:flex; align-items:center; gap:8px; font-family:'Space Mono',monospace; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:9px; }
.srs-lock-h svg{ width:15px; height:15px; }
.srs-lock p{ font-size:.82rem; color:var(--muted-ink); line-height:1.5; margin:0 0 12px; }
.srs-lock-cta{ display:inline-flex; align-items:center; gap:6px; font-family:'Space Mono',monospace; font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); background:var(--gold-bright); padding:.62em 1em; border-radius:100px; font-weight:700; }
.srs-lock-cta:hover{ background:#ffce63; }

/* ===== Focus view (R4) ===== */
.filt.focus-btn{ display:inline-flex; align-items:center; gap:6px; }
.filt.focus-btn svg{ width:15px; height:15px; }
.filt:disabled{ opacity:.4; cursor:not-allowed; }
.dr-focus{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:.6em 1.1em; font-size:.86rem; }
.dr-focus svg{ width:15px; height:15px; }

.pmap.focus-mode .ds-node{ transition:opacity .25s ease, box-shadow .25s ease, filter .25s ease; }
.ds-node.focus-out{ opacity:.14; filter:grayscale(.55); }
.ds-node.focus-indirect{ opacity:.95; box-shadow:0 0 0 1.5px rgba(255,198,87,.35); }
.ds-node.focus-direct{ opacity:1; box-shadow:0 0 0 2px rgba(255,198,87,.65), 0 10px 26px rgba(0,0,0,.45); }
.ds-node.focus-primary{ opacity:1; box-shadow:0 0 0 3px var(--gold-bright), 0 12px 34px rgba(255,198,87,.28); z-index:5; }

.ds-edge.focus-out{ stroke:rgba(255,255,255,.05) !important; }
.ds-edge.focus-soft{ stroke:rgba(255,198,87,.4) !important; stroke-width:1.8 !important; }
.ds-edge.focus-strong{ stroke:var(--gold-bright) !important; stroke-width:2.8 !important; stroke-dasharray:none !important; }
.ds-edge-label.focus-out{ opacity:0 !important; }
.ds-edge-label.focus-strong{ opacity:1 !important; fill:var(--gold-bright) !important; }

.pmap.grabbing{ cursor:grabbing; }

/* nodes */
.ds-node{ position:absolute; transform:translate(-50%,-50%); min-width:118px; max-width:150px;
  background:var(--ink-soft); border:1.5px solid color-mix(in oklab, var(--accent) 55%, transparent);
  border-radius:14px; padding:13px 14px 11px; text-align:center; cursor:grab; user-select:none;
  box-shadow:0 10px 30px -12px rgba(0,0,0,.7); transition:box-shadow .2s, border-color .2s, transform .05s; }
.ds-node:hover{ border-color:var(--accent); box-shadow:0 14px 36px -10px rgba(0,0,0,.8); }
.ds-node.dragging{ cursor:grabbing; box-shadow:0 22px 50px -10px rgba(0,0,0,.85); z-index:10; }
.ds-node.selected{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 35%, transparent), 0 18px 40px -10px rgba(0,0,0,.8); z-index:9; }
.ds-node.dim{ opacity:.28; filter:saturate(.4); }
.ds-node.big{ min-width:150px; max-width:180px; padding:17px 18px 14px; border-width:2px; background:radial-gradient(120% 120% at 50% 0%, #20355a, var(--ink-soft)); }
.ds-node-acc{ display:block; width:26px; height:4px; border-radius:3px; background:var(--accent); margin:0 auto 9px; }
.ds-node-label{ display:block; color:var(--text-ink); font-weight:700; font-size:.92rem; line-height:1.15; }
.ds-node.big .ds-node-label{ font-size:1.05rem; }
.ds-node-type{ display:block; font-family:'Space Mono',monospace; font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-ink); margin-top:6px; }
.ds-node-sub{ display:block; font-size:.68rem; color:var(--gold-bright); margin-top:5px; }
.ds-flag{ display:inline-block; margin-top:8px; font-family:'Space Mono',monospace; font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; padding:.3em .6em; border-radius:100px; }
.ds-node.flag-bottleneck .ds-flag{ background:rgba(232,116,79,.18); color:#f0936f; }
.ds-node.flag-missing .ds-flag{ background:rgba(232,116,79,.18); color:#f0936f; }

/* lightbulb */
.ds-bulb{ position:absolute; top:-14px; right:-14px; width:32px; height:32px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #ffe1a0, var(--gold)); border:2px solid var(--ink-soft);
  cursor:pointer; display:grid; place-items:center; padding:0; box-shadow:0 0 0 0 rgba(255,198,87,.6); }
.ds-bulb svg{ width:17px; height:17px; }
@media (prefers-reduced-motion: no-preference){ .ds-bulb{ animation:bulbpulse 2.6s ease-in-out infinite; } }
@keyframes bulbpulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,198,87,.5); } 50%{ box-shadow:0 0 0 9px rgba(255,198,87,0); } }
.ds-bulb:hover{ transform:scale(1.12); }

/* ---- Map controls ---- */
.map-ctl{ position:absolute; z-index:12; display:flex; gap:6px; }
.map-ctl.zoom{ right:18px; bottom:18px; flex-direction:column; }
.map-ctl button{ width:42px;height:42px; border-radius:11px; border:1px solid var(--line-ink); background:color-mix(in oklab, var(--ink) 86%, transparent); backdrop-filter:blur(8px); color:var(--text-ink); cursor:pointer; display:grid; place-items:center; font-size:1.2rem; transition:all .15s; }
.map-ctl button:hover{ border-color:var(--gold); color:var(--gold-bright); }
.map-ctl button svg{ width:18px; height:18px; }

.filters{ position:absolute; top:16px; left:16px; z-index:12; display:flex; gap:8px; flex-wrap:wrap; max-width:calc(100% - 32px); }
.filt{ font-family:'Space Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; padding:.55em .85em; border-radius:100px; border:1px solid var(--line-ink); background:color-mix(in oklab, var(--ink) 84%, transparent); backdrop-filter:blur(8px); color:var(--muted-ink); cursor:pointer; transition:all .15s; }
.filt:hover{ color:var(--text-ink); }
.filt.active{ background:var(--gold); color:#241a09; border-color:var(--gold); font-weight:700; }
.filt-search{ display:flex; align-items:center; gap:8px; background:color-mix(in oklab, var(--ink) 84%, transparent); backdrop-filter:blur(8px); border:1px solid var(--line-ink); border-radius:100px; padding:.4em .9em; }
.filt-search svg{ width:15px;height:15px; stroke:var(--muted-ink); flex:none; }
.filt-search input{ background:transparent; border:0; outline:none; color:var(--text-ink); font-family:inherit; font-size:.82rem; width:190px; max-width:42vw; }
.filt-search input::placeholder{ color:var(--muted-ink); }
.ds-node.kwdim{ opacity:.18; filter:saturate(.3); }
.ds-node.kwhit{ box-shadow:0 0 0 2px var(--gold-bright), 0 14px 34px -10px rgba(0,0,0,.8); }
/* R38: members must not see Entity Types */
body.member-view .ds-node-type{ display:none; }

/* Focus button + drawer btn-outline visibility on dark background */
.drawer .btn-outline, .drawer .dr-focus{ color:var(--text-ink); border-color:var(--line-ink); background:transparent; }
.drawer .btn-outline:hover, .drawer .dr-focus:hover{ color:var(--gold-bright); border-color:var(--gold); background:rgba(230,169,46,.08); }

/* Helpful = gold to match brand; Reject stays red */
.vote-btn.up{ color:var(--ink); border-color:rgba(26,18,8,.28); }
.vote-btn.up.on{ background:rgba(230,169,46,.16); color:var(--ink); border-color:var(--gold); }
.vote-btn.up:hover{ background:rgba(230,169,46,.1); border-color:var(--gold); color:var(--ink); }

/* Inline action items list */
.ia-list{ display:flex; flex-direction:column; gap:5px; margin-top:6px; }
.ia-item{ display:flex; align-items:center; gap:7px; padding:6px 8px; background:var(--ink); border:1px solid var(--line-ink); border-radius:8px; font-size:.8rem; }
.ia-item .ia-txt{ flex:1; color:var(--text-ink); }
.ia-item.done .ia-txt{ text-decoration:line-through; opacity:.45; }
.ia-chk{ width:18px; height:18px; border-radius:5px; border:1px solid var(--line-ink); background:transparent; cursor:pointer; display:grid; place-items:center; color:transparent; flex:none; }
.ia-chk.on{ background:rgba(91,191,138,.2); color:#69c79a; border-color:#5bbf8a; }
.ia-del{ background:none; border:none; color:var(--muted-ink); cursor:pointer; font-size:.85rem; padding:0 2px; line-height:1; }
.ia-del:hover{ color:#f0936f; }
.vote-row{ display:flex; align-items:center; gap:8px; margin-top:14px; }
.vote-btn{ display:inline-flex; align-items:center; gap:6px; background:var(--ink); border:1px solid var(--line-ink); color:var(--muted-ink); border-radius:100px; padding:.45em .85em; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .15s; }
.vote-btn svg{ width:15px;height:15px; }
.vote-btn:hover{ color:var(--text-ink); border-color:var(--gold); }
.vote-btn.up.on{ background:rgba(91,191,138,.16); color:#69c79a; border-color:#5bbf8a; }
.vote-btn.down.on{ background:rgba(232,116,79,.16); color:#f0936f; border-color:#e8744f; }
.vote-note{ font-size:.78rem; color:var(--muted-ink); margin-left:auto; }
.team-note{ background:var(--ink); border:1px solid var(--line-ink); border-radius:12px; padding:14px; }
.team-note .tn-h{ display:flex; align-items:center; gap:8px; font-size:.78rem; color:var(--gold-bright); font-weight:600; }
.team-note .tn-h .av{ width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#5bbf8a,#2f8a63);display:grid;place-items:center;color:#0c2018;font-size:.62rem;font-weight:800; }
.team-note p{ color:var(--muted-ink); font-size:.88rem; margin:.5rem 0 0; line-height:1.45; }
.rejected-link{ display:inline-flex;align-items:center;gap:6px; font-size:.8rem; color:var(--muted-ink); margin-top:12px; cursor:pointer; }
.rejected-link:hover{ color:var(--gold-bright); }

.map-hint{ position:absolute; left:16px; bottom:16px; z-index:11; font-size:.74rem; color:var(--muted-ink); display:flex; align-items:center; gap:7px; background:color-mix(in oklab, var(--ink) 80%, transparent); backdrop-filter:blur(6px); padding:.5em .85em; border-radius:100px; border:1px solid var(--line-ink); }
@media (max-width:860px){ .map-hint{ display:none; } }
.sb-toggle{ display:none; }
@media (max-width:860px){ .sb-toggle{ display:grid; } }

/* ---- Detail drawer ---- */
.drawer{ position:absolute; top:0; right:0; bottom:0; width:380px; max-width:88vw; background:var(--ink-soft); border-left:1px solid var(--line-ink); transform:translateX(100%); transition:transform .3s cubic-bezier(.2,.7,.2,1); z-index:20; overflow-y:auto; box-shadow:-30px 0 60px rgba(0,0,0,.4); }
.drawer.open{ transform:none; }
.drawer-in{ padding:24px; }
.drawer .x{ position:absolute; top:16px; right:16px; }
.dr-cat{ display:inline-flex; align-items:center; gap:7px; font-family:'Space Mono',monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-ink); }
.dr-cat .dot{ width:9px;height:9px;border-radius:50%; }
.drawer h2{ color:var(--text-ink); font-size:1.6rem; margin:.5rem 0 .2rem; }
.dr-sub{ color:var(--gold-bright); font-size:.9rem; }
.dr-sec{ margin-top:22px; }
.dr-sec h4{ font-family:var(--font-sans); color:var(--muted-ink); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; margin:0 0 12px; }
.sugg{ background:radial-gradient(120% 120% at 80% 0%, #2a2410, var(--ink)); border:1px solid rgba(255,198,87,.3); border-radius:14px; padding:18px; }
.sugg .rule{ display:inline-flex; align-items:center; gap:7px; font-family:'Space Mono',monospace; font-size:.66rem; letter-spacing:.08em; color:var(--gold-bright); }
.sugg .rule svg{ width:14px;height:14px; }
.sugg h5{ font-family:var(--font-sans); color:var(--text-ink); font-size:1.05rem; margin:.6rem 0 .4rem; }
.sugg p{ color:var(--muted-ink); font-size:.92rem; margin:0; line-height:1.5; }
.sugg p b{ color:var(--text-ink); } .sugg p i{ color:var(--gold-bright); font-style:italic; }
.conf-mini{ margin-top:14px; }
.conf-mini .bar{ height:7px; border-radius:100px; background:var(--ink-soft); overflow:hidden; }
.conf-mini .fill{ height:100%; border-radius:100px; background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright)); }
.conf-mini .lbl{ display:flex; justify-content:space-between; font-size:.74rem; color:var(--muted-ink); margin-bottom:6px; }
.conn{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line-ink); }
.conn:last-child{ border-bottom:0; }
.conn .rt{ font-family:'Space Mono',monospace; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gold-bright); flex:none; width:96px; }
.conn .rt.alert{ color:#f0936f; }
.conn .on{ color:var(--text-ink); font-size:.9rem; font-weight:600; }
.conn .cf{ margin-left:auto; font-family:'Space Mono',monospace; font-size:.72rem; color:var(--muted-ink); }
.dr-note{ display:flex; gap:8px; }
.dr-note textarea{ flex:1; background:var(--ink); border:1px solid var(--line-ink); border-radius:10px; color:var(--text-ink); padding:10px; font-family:inherit; font-size:.88rem; resize:vertical; min-height:60px; }
.dr-note textarea:focus{ outline:none; border-color:var(--gold); }

/* ---- Modals ---- */
.modal-bg{ position:fixed; inset:0; background:rgba(7,12,18,.7); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:60; padding:20px; }
.modal-bg.open{ display:flex; }
.modal{ background:var(--cream); border-radius:20px; width:100%; max-width:480px; max-height:90vh; overflow-y:auto; box-shadow:0 40px 100px rgba(0,0,0,.5); }
.modal.wide{ max-width:560px; }
.modal-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:24px 24px 0; }
.modal-h h3{ font-size:1.5rem; }
.modal-h p{ color:var(--muted); font-size:.92rem; margin:.4rem 0 0; }
.modal-b{ padding:20px 24px 24px; }
.modal .x{ background:none; border:none; cursor:pointer; color:var(--muted); width:34px;height:34px; border-radius:8px; display:grid;place-items:center; flex:none; }
.modal .x:hover{ background:rgba(0,0,0,.06); color:var(--ink); }
.modal label{ display:block; font-weight:600; font-size:.88rem; margin:14px 0 .5rem; color:var(--ink); }
.modal input, .modal textarea, .modal select{ width:100%; padding:.8em 1em; border:1.5px solid var(--line); border-radius:11px; font-family:inherit; font-size:.96rem; background:var(--paper); color:var(--text); }
.modal input:focus, .modal textarea:focus, .modal select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(230,169,46,.15); }
.modal textarea{ resize:vertical; min-height:90px; }
.cad-opts{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cad-opts input{ position:absolute; opacity:0; pointer-events:none; }
.cad-opts label{ margin:0; cursor:pointer; padding:14px; border:1.5px solid var(--line); border-radius:12px; text-align:center; transition:all .15s; }
.cad-opts label .c{ font-weight:700; color:var(--ink); display:block; }
.cad-opts label .d{ font-size:.78rem; color:var(--muted); }
.cad-opts input:checked + label{ border-color:var(--gold); background:rgba(230,169,46,.1); }

/* shared cost row (schedule / calendar) */
.cost-row{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding:13px 16px; border:1px solid var(--line); border-radius:12px; background:rgba(230,169,46,.08); }
.cost-row span{ color:var(--muted); font-size:.9rem; }
.cost-row strong{ color:var(--gold-deep); font-family:var(--font-mono); font-size:1.05rem; }
.modal-b .cost-row span{ color:var(--muted); }

/* AI-determined confidence microcopy */
.ai-note{ display:flex; gap:7px; align-items:flex-start; margin-top:10px; font-size:.74rem; line-height:1.4; color:var(--muted-ink); }
.ai-note svg{ width:13px; height:13px; flex:none; margin-top:1px; stroke:var(--gold-bright); }

/* calendar */
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin-top:12px; }
.cal-grid .dow{ font-family:'Space Mono',monospace; font-size:.64rem; color:var(--muted); text-align:center; text-transform:uppercase; letter-spacing:.06em; }
.cal-cell{ aspect-ratio:1; display:grid; place-items:center; border-radius:9px; font-size:.85rem; color:var(--text); position:relative; }
.cal-cell.muted{ color:var(--line); }
.cal-cell.has{ background:var(--ink); color:var(--text-ink); font-weight:700; }
.cal-cell.has::after{ content:""; position:absolute; bottom:5px; width:5px;height:5px;border-radius:50%; background:var(--gold-bright); }
.upcoming{ margin-top:18px; display:flex; flex-direction:column; gap:8px; }
.up{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:11px; background:var(--paper); }
.up .dt{ font-family:'Space Mono',monospace; font-size:.74rem; color:var(--gold-deep); flex:none; text-align:center; width:46px; }
.up .dt .d{ font-size:1.2rem; color:var(--ink); font-weight:700; }
.up .ti{ font-weight:600; font-size:.92rem; } .up .ts{ font-size:.78rem; color:var(--muted); }
.up .rm{ margin-left:auto; background:none;border:none;color:var(--muted);cursor:pointer; font-size:1.1rem; }
.up .rm:hover{ color:#c0392b; }

/* notes list */
.note-list{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.note-item{ display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line); border-radius:11px; background:var(--paper); }
.note-item .tx{ flex:1; font-size:.9rem; }
.note-item .tx small{ display:block; color:var(--muted); font-size:.72rem; margin-top:3px; }
.note-item .rm{ background:none;border:none;color:var(--muted);cursor:pointer; }
.note-item .rm:hover{ color:#c0392b; }
.note-item.done .tx{ text-decoration:line-through; color:var(--muted); }
.note-item .chk{ width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line); cursor:pointer; flex:none; display:grid;place-items:center; margin-top:1px; }
.note-item.done .chk{ background:var(--gold); border-color:var(--gold); }
.note-item .chk svg{ width:13px;height:13px; stroke:#241a09; opacity:0; }
.note-item.done .chk svg{ opacity:1; }
.empty{ color:var(--muted); font-size:.88rem; text-align:center; padding:18px; }

/* toast */
.toast-wrap{ position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:80; display:flex; flex-direction:column; gap:10px; align-items:center; }
.toast{ background:var(--ink); color:var(--text-ink); border:1px solid var(--line-ink); border-radius:100px; padding:.85em 1.4em; font-size:.92rem; box-shadow:0 18px 40px rgba(0,0,0,.4); display:flex; align-items:center; gap:10px; opacity:0; transform:translateY(14px); transition:all .3s; }
.toast.show{ opacity:1; transform:none; }
.toast svg{ width:18px;height:18px; stroke:var(--gold-bright); }

.seg-help{ font-size:.8rem; color:var(--muted); margin-top:6px; }
.modal .btn{ width:100%; justify-content:center; margin-top:20px; }
.tabrow{ display:flex; gap:6px; margin-top:6px; }
.tabrow button{ flex:1; padding:.7em; border:1px solid var(--line); background:var(--paper); border-radius:10px; font-weight:600; font-size:.86rem; cursor:pointer; color:var(--muted); }
.tabrow button.active{ background:var(--ink); color:var(--text-ink); border-color:var(--ink); }

/* ---- Portal sub-nav ---- */
.psubnav{ display:flex; gap:4px; background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:100px; padding:4px; }
.psubnav a{ display:flex; align-items:center; gap:7px; padding:.5em 1em; border-radius:100px; font-size:.86rem; font-weight:600; color:var(--muted-ink); transition:all .15s; }
.psubnav a svg{ width:16px; height:16px; }
.psubnav a.active{ background:var(--gold); color:#241a09; }
.psubnav a:not(.active):hover{ color:var(--text-ink); }
@media (max-width:600px){ .psubnav a span{ display:none; } }

/* ---- Network page ---- */
.netbody{ overflow-y:auto; background:radial-gradient(120% 80% at 80% 0%, #14223a 0%, var(--ink) 55%); }
.netwrap{ max-width:1080px; margin:0 auto; padding:clamp(24px,4vw,52px) clamp(18px,3vw,40px) 80px; }
.net-hero{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:8px; }
.net-hero h1{ color:var(--text-ink); font-size:clamp(1.9rem,3.5vw,2.8rem); }
.net-hero p{ color:var(--muted-ink); max-width:52ch; margin-top:.6rem; }
.privacy-note{ display:flex; gap:11px; align-items:flex-start; background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:14px; padding:14px 18px; max-width:320px; }
.privacy-note svg{ width:20px;height:20px;stroke:var(--gold-bright); flex:none; margin-top:2px; }
.privacy-note .t{ color:var(--text-ink); font-weight:600; font-size:.88rem; }
.privacy-note .d{ color:var(--muted-ink); font-size:.8rem; margin-top:2px; }

.net-sec{ margin-top:38px; }
.net-sec > h2{ color:var(--text-ink); font-size:1.3rem; display:flex; align-items:center; gap:10px; }
.net-sec > h2 .count{ font-family:var(--font-mono); font-size:.72rem; color:#241a09; background:var(--gold); border-radius:100px; padding:.2em .7em; }
.net-sec > .sub{ color:var(--muted-ink); font-size:.9rem; margin:.3rem 0 0; }

.contact-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-top:18px; }
.contact{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:16px; padding:20px; display:flex; flex-direction:column; gap:6px; transition:border-color .2s, transform .2s; }
.contact:hover{ border-color:rgba(255,198,87,.4); transform:translateY(-3px); }
.contact.match{ border-color:rgba(255,198,87,.55); background:radial-gradient(120% 120% at 85% 0%, #2a2410, var(--ink-soft)); }
.contact .badge-match{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-bright); display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.contact .avatar{ width:46px;height:46px; border-radius:12px; background:linear-gradient(135deg,#27405f,#1a2b44); border:1px solid var(--line-ink); display:grid;place-items:center; margin-bottom:8px; }
.contact .avatar svg{ width:24px;height:24px; stroke:var(--gold-bright); }
.contact .title{ color:var(--text-ink); font-weight:700; font-size:1.05rem; }
.contact .cap{ color:var(--muted-ink); font-size:.9rem; }
.contact .ind{ font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); margin-top:2px; }
.contact .row{ display:flex; gap:8px; margin-top:14px; align-items:center; }
.contact .btn{ padding:.62em 1.1em; font-size:.86rem; box-shadow:none; }
.contact .status{ font-size:.82rem; font-weight:600; display:flex; align-items:center; gap:7px; }
.contact .status .dot{ width:8px;height:8px;border-radius:50%; }
.status.pending{ color:#f0c46a; } .status.pending .dot{ background:#f0c46a; }
.status.connected{ color:#5bbf8a; } .status.connected .dot{ background:#5bbf8a; }
.status.ended{ color:var(--muted-ink); } .status.ended .dot{ background:var(--muted-ink); }
.req-card{ display:flex; align-items:center; gap:16px; background:var(--ink-soft); border:1px solid rgba(255,198,87,.35); border-radius:16px; padding:16px 20px; flex-wrap:wrap; }
.req-card .avatar{ margin:0; }
.req-card .grow{ flex:1; min-width:160px; }
.req-card .title{ color:var(--text-ink); font-weight:700; }
.req-card .cap{ color:var(--muted-ink); font-size:.88rem; }
.req-card .btn{ padding:.6em 1.1em; font-size:.86rem; box-shadow:none; }
.btn-decline{ background:transparent; border:1px solid var(--line-ink); color:var(--muted-ink); box-shadow:none; }
.btn-decline:hover{ border-color:#e8744f; color:#f0936f; transform:none; box-shadow:none; }
.empty-net{ color:var(--muted-ink); font-size:.9rem; background:var(--ink-soft); border:1px dashed var(--line-ink); border-radius:14px; padding:24px; text-align:center; margin-top:16px; }

/* ---- Dialogue ---- */
.dialog-bg{ position:fixed; inset:0; background:rgba(7,12,18,.7); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:60; padding:20px; }
.dialog-bg.open{ display:flex; }
.dialog{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:20px; width:100%; max-width:460px; height:600px; max-height:88vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 40px 100px rgba(0,0,0,.5); }
.dialog-h{ display:flex; align-items:center; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line-ink); }
.dialog-h .avatar{ width:40px;height:40px;border-radius:10px; background:linear-gradient(135deg,#27405f,#1a2b44); display:grid;place-items:center; }
.dialog-h .avatar svg{ width:20px;height:20px;stroke:var(--gold-bright); }
.dialog-h .ti{ color:var(--text-ink); font-weight:700; font-size:.96rem; }
.dialog-h .st{ color:#5bbf8a; font-size:.76rem; display:flex;align-items:center;gap:5px; }
.dialog-h .st .dot{ width:7px;height:7px;border-radius:50%;background:#5bbf8a; }
.dialog-h .end{ margin-left:auto; }
.btn-end{ background:transparent; border:1px solid var(--line-ink); color:var(--muted-ink); box-shadow:none; padding:.5em .95em; font-size:.8rem; }
.btn-end:hover{ border-color:#e8744f; color:#f0936f; transform:none; box-shadow:none; }
.dialog-x{ background:none;border:none;color:var(--muted-ink);cursor:pointer;width:34px;height:34px;border-radius:8px; }
.dialog-x:hover{ color:var(--text-ink); }
.dialog-body{ flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:12px; }
.msg{ max-width:78%; padding:10px 14px; border-radius:16px; font-size:.9rem; line-height:1.4; }
.msg.them{ background:var(--ink); color:var(--text-ink); border:1px solid var(--line-ink); border-bottom-left-radius:4px; align-self:flex-start; }
.msg.me{ background:linear-gradient(135deg,var(--gold),var(--gold-deep)); color:#241a09; border-bottom-right-radius:4px; align-self:flex-end; font-weight:500; }
.msg .when{ display:block; font-size:.66rem; opacity:.6; margin-top:4px; }
.dialog-foot{ padding:14px; border-top:1px solid var(--line-ink); display:flex; gap:8px; }
.dialog-foot input{ flex:1; background:var(--ink); border:1px solid var(--line-ink); border-radius:100px; color:var(--text-ink); padding:.7em 1.1em; font-family:inherit; font-size:.9rem; }
.dialog-foot input:focus{ outline:none; border-color:var(--gold); }
.dialog-foot button{ width:44px;height:44px; border-radius:50%; border:none; background:var(--gold); color:#241a09; cursor:pointer; display:grid;place-items:center; flex:none; }
.dialog-foot button svg{ width:20px;height:20px; }
.dialog-foot.locked{ opacity:.5; pointer-events:none; }
.ended-banner{ text-align:center; color:var(--muted-ink); font-size:.84rem; padding:10px; background:var(--ink); border-radius:10px; }

/* ============================================================
   Dreamer Dashboard + shared dreamer pages
   ============================================================ */
.dscroll{ overflow-y:auto; background:radial-gradient(120% 70% at 80% 0%, #14223a 0%, var(--ink) 55%); }
.dwrap{ max-width:1140px; margin:0 auto; padding:clamp(22px,3.5vw,46px) clamp(18px,3vw,40px) 90px; }
.dhead{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.dhead h1{ color:var(--text-ink); font-size:clamp(1.9rem,3.4vw,2.7rem); }
.dhead p{ color:var(--muted-ink); margin-top:.4rem; }
.dhead .who-chip{ display:flex; align-items:center; gap:11px; background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:100px; padding:8px 16px 8px 8px; }
.dhead .who-chip .av{ width:38px;height:38px;border-radius:50%; background:linear-gradient(135deg,var(--gold),var(--gold-deep)); display:grid;place-items:center; color:#241a09; font-weight:800; }
.dhead .who-chip .nm{ color:var(--text-ink); font-weight:700; font-size:.92rem; line-height:1.1; }
.dhead .who-chip .mt{ color:var(--muted-ink); font-size:.75rem; }

/* alerts / reminders */
.alerts{ display:flex; flex-direction:column; gap:10px; margin-top:26px; }
.alert-row{ display:flex; align-items:center; gap:14px; padding:14px 18px; border-radius:14px; border:1px solid var(--line-ink); background:var(--ink-soft); }
.alert-row.warn{ border-color:rgba(232,116,79,.5); background:radial-gradient(120% 120% at 100% 0%, rgba(232,116,79,.12), var(--ink-soft)); }
.alert-row.gold{ border-color:rgba(255,198,87,.45); background:radial-gradient(120% 120% at 100% 0%, rgba(255,198,87,.1), var(--ink-soft)); }
.alert-row .ai{ flex:none; width:38px;height:38px;border-radius:10px; display:grid;place-items:center; }
.alert-row.warn .ai{ background:rgba(232,116,79,.18); } .alert-row.warn .ai svg{ stroke:#f0936f; }
.alert-row.gold .ai{ background:rgba(255,198,87,.18); } .alert-row.gold .ai svg{ stroke:var(--gold-bright); }
.alert-row .ai svg{ width:19px;height:19px; }
.alert-row .at{ color:var(--text-ink); font-weight:600; font-size:.94rem; }
.alert-row > div{ min-width:0; }
.alert-row .abtn{ margin-left:auto; white-space:nowrap; flex:none; }
.alert-row .ad{ color:var(--muted-ink); font-size:.84rem; margin-top:1px; }
.alert-row .abtn{ margin-left:auto; }
@media (max-width:620px){ .alert-row{ flex-wrap:wrap; } .alert-row .abtn{ margin-left:52px; } }

/* Alert CTA buttons — bright & legible on the dark alert cards */
.alert-row .btn-outline{ color: var(--text-ink); border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.07); box-shadow:none; }
.alert-row .btn-outline:hover{ color:#20160a; background: var(--gold-bright); border-color: var(--gold-bright); }

.dsec-title{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin:38px 0 16px; flex-wrap:wrap; }
.dsec-title h2{ color:var(--text-ink); font-size:1.4rem; }
.dsec-title .sub{ color:var(--muted-ink); font-size:.86rem; margin-top:2px; }

/* stitch cards with versions */
.stitch-list{ display:flex; flex-direction:column; gap:16px; }
.stitchcard{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:18px; overflow:hidden; }
.stitchcard.locked{ opacity:.96; }
.sc-main{ display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; padding:20px 22px; cursor:pointer; }
.sc-main:hover{ background:var(--ink); }
.sc-ic{ width:52px;height:52px;border-radius:13px; display:grid;place-items:center; flex:none; background:radial-gradient(120% 120% at 50% 0%, #20355a, var(--ink)); border:1px solid var(--line-ink); }
.sc-ic svg{ width:26px;height:26px; stroke:var(--gold-bright); }
.sc-name{ color:var(--text-ink); font-weight:700; font-size:1.18rem; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sc-meta{ color:var(--muted-ink); font-size:.86rem; margin-top:3px; }
.plan-tag{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; padding:.3em .7em; border-radius:100px; }
.plan-tag.full{ background:rgba(255,198,87,.16); color:var(--gold-bright); }
.plan-tag.nap{ background:rgba(122,162,214,.16); color:#9cc0ee; }
.sc-right{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; min-width:160px; }
.progress-wrap{ width:160px; }
.progress-lbl{ display:flex; justify-content:space-between; font-size:.72rem; color:var(--muted-ink); margin-bottom:5px; }
.progress-lbl b{ color:var(--gold-bright); font-family:var(--font-mono); }
.progress-bar{ height:7px; border-radius:100px; background:var(--ink); overflow:hidden; }
.progress-fill{ height:100%; border-radius:100px; background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright)); }
.sc-chev{ color:var(--muted-ink); transition:transform .2s; }
.stitchcard.open .sc-chev{ transform:rotate(90deg); }
.lockpill{ display:inline-flex;align-items:center;gap:6px; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:#f0936f; background:rgba(232,116,79,.14); padding:.35em .7em; border-radius:100px; }
.lockpill svg{ width:12px;height:12px; }
/* version drawer */
.sc-versions{ display:none; border-top:1px solid var(--line-ink); padding:6px 22px 16px; }
.stitchcard.open .sc-versions{ display:block; }
.ver-row{ display:grid; grid-template-columns:auto 1fr auto auto; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line-ink); }
.ver-row:last-child{ border-bottom:0; }
.ver-dot{ width:10px;height:10px;border-radius:50%; }
.ver-dot.accepted{ background:#5bbf8a; } .ver-dot.restitch{ background:var(--gold); } .ver-dot.progress{ background:#7aa2d6; }
.ver-name{ color:var(--text-ink); font-weight:600; font-size:.92rem; }
.ver-name small{ color:var(--muted-ink); font-weight:400; display:block; }
.ver-badge{ font-family:var(--font-mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; padding:.3em .65em; border-radius:100px; }
.ver-badge.accepted{ background:rgba(91,191,138,.16); color:#69c79a; }
.ver-badge.restitch{ background:rgba(255,198,87,.16); color:var(--gold-bright); }
.ver-badge.progress{ background:rgba(122,162,214,.16); color:#9cc0ee; }

/* buttons inside dark stitch cards */
.stitchcard .btn-outline{ color:var(--text-ink); border-color:var(--line-ink); }
.stitchcard .btn-outline:hover{ color:var(--gold-bright); border-color:var(--gold); background:rgba(230,169,46,.08); }
.stitchcard .btn{ box-shadow:none; }

/* quick tiles */
.tile-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:860px){ .tile-grid{ grid-template-columns:1fr 1fr; } }
.tile{ display:flex; flex-direction:column; gap:10px; padding:20px; border-radius:16px; background:var(--ink-soft); border:1px solid var(--line-ink); cursor:pointer; transition:transform .2s, border-color .2s; }
.tile:hover{ transform:translateY(-4px); border-color:rgba(255,198,87,.4); }
.tile .ti{ width:42px;height:42px;border-radius:11px; background:rgba(255,198,87,.12); display:grid;place-items:center; }
.tile .ti svg{ width:21px;height:21px; stroke:var(--gold-bright); }
.tile .tn{ color:var(--text-ink); font-weight:700; }
.tile .td{ color:var(--muted-ink); font-size:.82rem; }
.tile .tbadge{ align-self:flex-start; font-family:var(--font-mono); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; padding:.25em .6em; border-radius:100px; background:rgba(232,116,79,.16); color:#f0936f; }

/* ---- Industry Trends panel ---- */
.trends{ background:radial-gradient(130% 130% at 85% 0%, #1c2c1f, var(--ink-soft) 60%); border:1px solid rgba(91,191,138,.3); border-radius:20px; padding:clamp(22px,3vw,32px); }
.trends-head{ display:flex; align-items:center; gap:12px; }
.trends-head .pulse{ width:40px;height:40px;border-radius:11px; background:rgba(91,191,138,.18); display:grid;place-items:center; }
.trends-head .pulse svg{ width:20px;height:20px;stroke:#69c79a; }
.trends-head h2{ color:var(--text-ink); font-size:1.35rem; }
.trends-head .tag{ font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:#69c79a; }
.trends-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:22px; margin-top:22px; }
@media (max-width:820px){ .trends-grid{ grid-template-columns:1fr; } }
.trend-stat{ display:flex; flex-direction:column; gap:4px; padding:16px 0; }
.bigstat{ font-family:var(--font-display); font-size:2.6rem; color:var(--gold-bright); line-height:1; }
.bigstat-l{ color:var(--muted-ink); font-size:.9rem; }
.trend-bars{ display:flex; flex-direction:column; gap:12px; }
.tb-row .tb-top{ display:flex; justify-content:space-between; font-size:.82rem; color:var(--text-ink); margin-bottom:5px; }
.tb-row .tb-top span:last-child{ color:#69c79a; font-family:var(--font-mono); }
.tb-track{ height:8px; border-radius:100px; background:var(--ink); overflow:hidden; }
.tb-fill{ height:100%; border-radius:100px; background:linear-gradient(90deg,#2f8a63,#69c79a); }
.trend-insights{ display:flex; flex-direction:column; gap:12px; }
.ti-card{ display:flex; gap:12px; align-items:flex-start; padding:14px; border-radius:12px; background:var(--ink); border:1px solid var(--line-ink); }
.ti-card .ib{ flex:none; width:30px;height:30px;border-radius:8px; display:grid;place-items:center; background:rgba(255,198,87,.14); }
.ti-card .ib svg{ width:15px;height:15px;stroke:var(--gold-bright); }
.ti-card .it{ color:var(--text-ink); font-size:.88rem; font-weight:600; }
.ti-card .id{ color:var(--muted-ink); font-size:.8rem; margin-top:2px; }
.ti-card .rule-ref{ font-family:var(--font-mono); font-size:.62rem; color:#69c79a; letter-spacing:.06em; }

/* generic dreamer page cards/sections reused */
.dcard{ background:var(--ink-soft); border:1px solid var(--line-ink); border-radius:18px; padding:clamp(20px,2.6vw,28px); }
.doc-row{ display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line-ink); }
.doc-row:last-child{ border-bottom:0; }
.doc-ic{ width:42px;height:42px;border-radius:11px; background:rgba(122,162,214,.14); display:grid;place-items:center; flex:none; }
.doc-ic svg{ width:20px;height:20px;stroke:#9cc0ee; }
.doc-name{ color:var(--text-ink); font-weight:600; }
.doc-meta{ color:var(--muted-ink); font-size:.82rem; }
.doc-status{ display:inline-flex; align-items:center; gap:7px; font-size:.82rem; font-weight:600; }
.doc-status .dot{ width:8px;height:8px;border-radius:50%; }
.doc-status.signed{ color:#69c79a; } .doc-status.signed .dot{ background:#5bbf8a; }
.doc-status.unsigned{ color:#f0936f; } .doc-status.unsigned .dot{ background:#e8744f; }

/* ============================================================
   Enhancements: Phase Stepper (#2), Match Cards (#1),
   Insight Actions (#4)
   ============================================================ */

/* Phase stepper */
.phase-track{ display:flex; align-items:flex-start; padding:16px 0 10px; overflow-x:auto; gap:0; }
.ph-step{ display:flex; flex-direction:column; align-items:center; gap:5px; flex:none; min-width:54px; }
.ph-dot{ width:11px; height:11px; border-radius:50%; border:2px solid var(--line-ink); background:var(--ink); flex:none; }
.ph-step.done .ph-dot{ background:var(--gold-bright); border-color:var(--gold-bright); }
.ph-step.active .ph-dot{ background:var(--gold); border-color:var(--gold-bright); box-shadow:0 0 0 4px rgba(255,198,87,.22); }
.ph-label{ font-family:var(--font-mono); font-size:.57rem; letter-spacing:.07em; text-transform:uppercase; color:var(--muted-ink); text-align:center; }
.ph-step.done .ph-label{ color:var(--gold-bright); }
.ph-step.active .ph-label{ color:var(--text-ink); font-weight:700; }
.ph-line{ flex:1; min-width:14px; max-width:48px; height:2px; background:var(--line-ink); border-radius:2px; margin-top:5px; flex-shrink:1; }
.ph-line.done{ background:var(--gold-bright); }

/* Match cards */
.match-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; margin-bottom:8px; }
.match-card{ display:flex; align-items:flex-start; gap:14px; background:var(--ink-soft); border:1px solid rgba(255,198,87,.3); border-radius:16px; padding:18px; transition:transform .2s,border-color .2s; }
.match-card:hover{ transform:translateY(-3px); border-color:rgba(255,198,87,.55); }
.match-av{ width:46px; height:46px; border-radius:12px; background:linear-gradient(135deg,var(--gold),var(--gold-deep)); display:grid; place-items:center; color:#241a09; font-weight:800; font-size:1rem; flex:none; }
.match-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.match-name{ color:var(--text-ink); font-weight:700; }
.match-biz{ color:var(--muted-ink); font-size:.84rem; }
.match-ind{ font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); margin-top:2px; }
.match-reason{ display:flex; align-items:flex-start; gap:6px; color:#69c79a; font-size:.8rem; margin-top:8px; line-height:1.35; }
.match-reason svg{ flex:none; margin-top:2px; }
.match-card>.btn{ margin-top:auto; align-self:flex-start; white-space:nowrap; flex:none; font-size:.8rem; }

/* Insight action buttons (#4) */
.insight{ align-items:flex-start; }
.ia-wrap{ display:flex; gap:4px; flex:none; margin-left:6px; align-self:flex-start; margin-top:2px; }
.ia-btn{ width:22px; height:22px; border-radius:6px; border:1px solid var(--line-ink); background:transparent; color:var(--muted-ink); cursor:pointer; font-size:.8rem; display:grid; place-items:center; transition:all .15s; padding:0; line-height:1; flex:none; }
.ia-btn:hover{ color:var(--text-ink); border-color:rgba(255,198,87,.6); }
.ia-btn.ia-check.on{ background:rgba(91,191,138,.2); color:#69c79a; border-color:#5bbf8a; }
.ia-btn.ia-x:hover{ background:rgba(232,116,79,.15); color:#f0936f; border-color:#e8744f; }
.insight.actioned .it{ text-decoration:line-through; opacity:.5; }
.insight.actioned .dot{ opacity:.35; }
