/* Campaign portals are scoped; the installed local workspaces keep their layout. */
.portal-shell{--portal-accent:#9be1ce;--portal-gold:#edcd93;--portal-card:#141e29;--portal-line:#304152;color:#e9f3f0;max-width:1680px;margin:auto;display:grid;gap:20px}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border:1px solid #47675f;border-radius:18px;background:radial-gradient(ellipse at 15% 0,#22594b88,transparent 65%),#111c26}.portal-heading h1{font-size:clamp(25px,3vw,40px);letter-spacing:-.03em;margin:7px 0}.portal-eyebrow{font-size:10px;letter-spacing:.18em;font-weight:800;color:var(--portal-accent)}.portal-muted{color:#afc1cd;font-size:13px;line-height:1.65;margin:5px 0 12px}.portal-actions,.portal-quick-dice,.portal-stats{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.portal-shell button{border:1px solid #3a5060;background:#1c2c39;border-radius:8px;color:#dcebe7;padding:9px 12px;font:600 12px system-ui,sans-serif;cursor:pointer;min-height:36px;white-space:normal}.portal-shell button:hover{background:#29483f;border-color:var(--portal-accent)}.portal-shell button:disabled{opacity:.48;cursor:wait}.portal-shell button.primary{background:var(--portal-accent);border-color:var(--portal-accent);color:#102821}.portal-shell button:focus-visible,.portal-shell input:focus-visible,.portal-shell select:focus-visible,.portal-shell textarea:focus-visible{outline:2px solid var(--portal-gold);outline-offset:3px}.portal-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:7px;border:1px solid var(--portal-line);border-radius:12px;background:#101923}.portal-tabs button{border-color:transparent;background:transparent}.portal-tabs button[aria-current=page]{color:var(--portal-accent);background:#233e36;border-color:#49665c}.portal-notice{border:1px solid #b99c60;background:#332c20;border-radius:12px;padding:12px 16px}.portal-notice[hidden]{display:none}.portal-notice p{margin:4px 0 10px}.portal-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,370px),1fr));gap:18px;align-items:start}.portal-panel{padding:20px;border:1px solid var(--portal-line);border-radius:14px;background:linear-gradient(145deg,#192431,#111a24);box-shadow:0 8px 25px #0002;min-width:0}.portal-panel h2{font-size:18px;margin:0 0 10px;color:#f3e8d2}.portal-panel h3{font-size:16px}.portal-panel>button{margin:5px 5px 0 0}.portal-panel p{line-height:1.65;overflow-wrap:anywhere}.portal-panel code{display:block;user-select:all;padding:12px;background:#0b141d;border-radius:8px;overflow-wrap:anywhere;color:var(--portal-accent)}.portal-form{display:grid;gap:12px}.portal-field{display:grid;gap:6px;font-size:12px;color:#beced7;min-width:0}.portal-shell input,.portal-shell select,.portal-shell textarea{width:100%;box-sizing:border-box;border:1px solid #3a4e60;border-radius:8px;padding:10px;background:#0c1620;color:#e9f3f0;font:14px system-ui,sans-serif}.portal-shell textarea{resize:vertical;min-height:90px}.portal-shell input[type=range]{padding:8px 0;accent-color:var(--portal-accent)}.portal-badge{display:inline-flex;font-size:10px;letter-spacing:.08em;padding:4px 8px;background:#27443b;color:#aee8d7;border:1px solid #41685c;border-radius:20px;text-transform:uppercase}.portal-campaign-card{margin:12px 0;padding:16px;border:1px solid #3c5262;border-radius:12px;background:#0e1b25}.portal-campaign-card h3{margin:9px 0 0}.portal-quick-dice{margin-top:14px}.portal-quick-dice button{flex:1 0 40px;padding:8px}.portal-stats{margin:14px 0}.portal-stats button{color:var(--portal-gold)}.portal-map-toolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.portal-map-toolbar h2{margin:0 auto 0 0;font-size:23px}.portal-map-toolbar button[aria-pressed=true]{background:#315247;color:#c4f6e5;border-color:#739e8c}.portal-table-layout{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;min-width:0}.portal-table-rail{position:static;inset:auto;width:auto;display:grid;gap:15px;background:none;border:0;padding:0;min-width:0}.portal-map-panel{min-width:0;border:1px solid #3a5164;border-radius:14px;background:#080e15;overflow:hidden}.portal-map-viewport{width:100%;min-height:300px;max-height:calc(100vh - 220px);overflow:auto;position:relative;display:grid;place-items:center}.portal-map-stage{position:relative;width:100%;min-width:250px;background:#18232d;background-size:100% 100%;isolation:isolate;touch-action:none}.portal-map-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.portal-shell .portal-map-token{position:absolute;transform:translate(-50%,-50%);width:clamp(22px,3vw,42px);height:clamp(22px,3vw,42px);min-height:0;padding:0;border:2px solid #e7e9dd;border-radius:50%;color:#12212a;font-size:11px;box-shadow:0 3px 9px #000a;z-index:3;cursor:pointer;touch-action:none;user-select:none}.portal-shell .portal-map-token[data-owned=true]{box-shadow:0 0 0 3px #9be1ce66,0 5px 10px #000b;cursor:grab}.portal-shell .portal-map-door,.portal-shell .portal-map-prop{position:absolute;transform:translate(-50%,-50%);font-size:17px;line-height:1;min-height:24px;padding:3px 6px;color:#ffe0a9;background:#362d20;border-color:#bd9e61;z-index:2}.portal-map-ping{position:absolute;transform:translate(-50%,-50%);font-size:34px;color:#ffde9a;pointer-events:none;text-shadow:0 0 8px #ffbf41;z-index:5}.portal-high-contrast{--portal-line:#a6c1b7;--portal-card:#000;color:#fff}.portal-high-contrast .portal-muted{color:#e4ede8}.portal-high-contrast .portal-panel{background:#080d12}.portal-import-review{grid-column:1/-1;border-color:var(--portal-gold)}
.portal-voice-root[hidden]{display:none}.portal-voice{padding:20px;border:1px solid #456b60;border-radius:14px;background:#14251f}.portal-voice h2{margin:0 0 10px;color:#d7ecd9}.portal-voice-actions,.portal-voice-peer{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:10px 0}.portal-voice-status{color:#aee6d3;font-size:13px}.portal-voice-hint{color:#b5c9bf;font-size:12px;line-height:1.6}.portal-voice-meter{width:180px;max-width:100%;accent-color:#9be1ce}.portal-voice-peers{display:grid;gap:8px}.portal-voice-peer{border-top:1px solid #3a554a;padding:10px 0}.portal-voice-ptt{min-height:52px!important;user-select:none;touch-action:none}.portal-voice label{display:grid;gap:5px;font-size:12px;color:#cadbd1;min-width:150px}
@media(max-width:1100px){.portal-table-layout{grid-template-columns:minmax(0,1fr)}.portal-table-rail{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.portal-map-viewport{max-height:none}.portal-heading{align-items:start}.portal-heading .portal-actions{max-width:190px}}@media(max-width:650px){.portal-heading{padding:18px;flex-direction:column}.portal-heading .portal-actions{max-width:none}.portal-content{gap:12px}.portal-panel{padding:16px}.portal-tabs{gap:3px}.portal-tabs button{font-size:11px;padding:8px}.portal-table-rail{grid-template-columns:1fr}.portal-map-viewport{min-height:220px}.portal-map-toolbar h2{width:100%;font-size:20px}.portal-map-stage{min-width:280px}}

body.in-campaign-portals main > header{display:none}.portal-tabs{margin:0}.portal-heading{padding:18px 22px}.portal-heading h1{font-size:clamp(25px,2.3vw,32px)}
