.pd-map-card { --map-panel:#101a29; --map-line:rgba(172,193,220,.14); --map-ink:#e5edf7; --map-muted:#9eafc5; grid-column:1/-1; grid-row:auto!important; padding:0; overflow:hidden; background:var(--map-panel); color:var(--map-ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
.pd-map-card [hidden] { display:none!important; }
.pd-map-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 22px 14px; }
.pd-map-card .pd-map-heading h3 { color:var(--map-ink); font:650 1.12rem/1.3 system-ui,sans-serif; letter-spacing:-.02em; }
.pd-map-heading p { margin:4px 0 0; color:var(--map-muted); font-size:.78rem; }
.pd-map-heading-actions { display:flex; align-items:center; gap:14px; flex:none; }
#pdDimension { color:var(--map-muted); font-size:.75rem; }
.pd-map-expand,.pd-map-camera button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:8px; border:1px solid transparent; border-radius:8px; color:var(--map-ink); background:transparent; cursor:pointer; font:500 .78rem/1.2 system-ui,sans-serif; }
.pd-map-expand { border-color:var(--map-line); padding-inline:12px; }
.pd-map-expand svg,.pd-map-camera svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.pd-map-expand:hover,.pd-map-camera button:hover { background:rgba(142,164,203,.12); }
.pd-map-card button:focus-visible,#pdMap:focus-visible,.pd-map-access summary:focus-visible { outline:2px solid #b9abff; outline-offset:-3px; }
.pd-map-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 22px 14px; margin:0; }
.pd-map-controls { display:block; flex:0 1 300px; min-width:0; margin:0; }
.pd-map-controls select { min-height:44px; padding:9px 34px 9px 12px; background:rgba(142,164,203,.055); border:1px solid var(--map-line); border-radius:8px; font:500 .85rem system-ui,sans-serif; }
.pd-map-camera { display:flex; flex:none; gap:2px; padding:0 3px; border:1px solid var(--map-line); border-radius:9px; }
.pd-map-camera button { min-width:42px; min-height:42px; }
.pd-buildings { padding:0 22px 14px; }
.pd-building-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.pd-building-toolbar label,.pd-building-cut label { color:var(--map-muted); font-size:.78rem; }
.pd-building-toolbar select { flex:1; min-width:160px; width:0; max-width:100%; min-height:44px; padding:9px 12px; border:1px solid var(--map-line); border-radius:8px; color:var(--map-ink); background:var(--map-panel); font:500 .85rem system-ui,sans-serif; }
.pd-building-toolbar button { min-height:44px; padding:9px 13px; border:1px solid var(--map-line); border-radius:8px; color:var(--map-ink); background:rgba(142,164,203,.08); font:500 .8rem system-ui,sans-serif; cursor:pointer; }
.pd-building-toolbar button:disabled { opacity:.5; cursor:default; }
.pd-building-toolbar button[aria-pressed=true] { border-color:#b9abff; background:rgba(185,171,255,.15); }
.pd-building-cut { display:flex; align-items:center; gap:12px; margin-top:8px; }
.pd-building-cut input { flex:1; min-width:0; min-height:44px; accent-color:#b9abff; }
.pd-building-cut output { min-width:46px; color:var(--map-ink); font:500 .78rem ui-monospace,monospace; white-space:nowrap; }
#pdBuildingStatus { margin:6px 0 0; color:var(--map-muted); font-size:.74rem; line-height:1.5; }
.pd-map-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.pd-map-frame { height:clamp(360px,55vh,560px); min-height:0!important; aspect-ratio:auto!important; border:0; border-top:1px solid var(--map-line); border-bottom:1px solid var(--map-line); border-radius:0; background:radial-gradient(ellipse at 50% 35%,#344e5a 0,#203440 60%,#172733 100%); }
.pd-map-frame #pdMap,.pd-map-frame .pd-iso-overlay { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; image-rendering:auto; }
.pd-map-frame #pdMap { touch-action:none; cursor:grab; filter:drop-shadow(0 16px 15px rgba(4,12,23,.28)); }
.pd-map-frame #pdMap:active { cursor:grabbing; }
.pd-map-frame .pd-iso-overlay { pointer-events:none; }
.pd-map-frame>p { max-width:420px; position:relative; z-index:2; }
.pd-map-north,.pd-map-count { position:absolute; z-index:3; top:14px; border:1px solid rgba(200,220,235,.15); border-radius:7px; background:rgba(13,25,37,.78); color:#e1eaf5; padding:7px 10px; font:500 .72rem/1.3 system-ui,sans-serif; pointer-events:none; }
.pd-map-north { right:14px; }
.pd-map-count { left:14px; }
.pd-map-meta { padding:14px 22px; }
.pd-map-meta-line { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:9px 18px; }
.pd-map-legend { gap:8px 16px; margin:0; color:var(--map-muted); font-size:.75rem; }
.pd-map-legend i { width:7px; height:7px; }
.pd-map-legend .pd-key-member { background:#80c4ff; }
.pd-member-state[data-state=current] { color:#b1d9ff; border-color:rgba(128,196,255,.3); }
html[data-theme=light] .pd-member-state[data-state=current] { color:#21578f; }
.pd-map-meta #pdTerrainDate { margin:0; color:var(--map-muted); font-size:.72rem; }
.pd-map-meta .pd-position { display:flex; flex-wrap:wrap; gap:6px 18px; margin:12px 0 0; }
.pd-map-meta .pd-position>div { display:flex; align-items:baseline; gap:6px; padding:0; border:0; }
.pd-map-meta .pd-position dt { color:var(--map-muted); font-size:.72rem; }
.pd-map-meta .pd-position dd { margin:0; color:var(--map-ink); font:500 .75rem/1.5 ui-monospace,monospace; }
.pd-map-meta .pd-position>div:last-child:nth-child(4) { margin-left:auto; }
.pd-map-meta .pd-map-hint { margin:10px 0 0; color:var(--map-muted); font-size:.71rem; }
.pd-map-card .pd-colony-panel { border-top:1px solid var(--map-line); margin:0; padding:0; }
.pd-map-card .pd-colony-panel summary { display:flex; align-items:center; gap:12px; min-height:54px; padding:14px 22px; color:var(--map-ink); font:550 .86rem/1.4 system-ui,sans-serif; list-style:none; }
.pd-colony-panel summary::-webkit-details-marker { display:none; }
.pd-map-card .pd-colony-panel summary>span { margin-left:auto; color:var(--map-muted); font-size:.72rem; font-weight:400; }
.pd-colony-panel summary::after { content:"⌄"; margin-left:auto; color:var(--map-muted); }
.pd-colony-panel[open] summary::after { transform:rotate(180deg); }
.pd-colony-content { padding:0 19px 16px; }
.pd-colony-content>p { padding:0 3px 8px; }
.pd-citizen-scroll { max-height:340px; }
.pd-citizen-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.pd-map-access { border-top:1px solid var(--map-line); padding:0 22px; color:var(--map-muted); font-size:.73rem; }
.pd-map-access summary { min-height:44px; display:flex; align-items:center; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.pd-map-access p { max-width:800px; margin:0 0 16px; line-height:1.7; }
.pd-map-dialog { padding:0; width:min(1400px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 32px); border:1px solid rgba(172,193,220,.2); border-radius:18px; background:#101a29; color:#e5edf7; overflow:auto; }
.pd-map-dialog::backdrop { background:rgba(3,8,17,.82); backdrop-filter:blur(6px); }
.pd-map-dialog>.pd-map-card { border:0; border-radius:0; }
.pd-map-dialog .pd-map-frame { height:max(280px,calc(100dvh - 330px)); }
.pd-map-placeholder { grid-column:1/-1; }
html[data-theme=light] .pd-map-card { --map-panel:#f8faff; --map-line:#dce3ed; --map-ink:#1b2d47; --map-muted:#536780; background:var(--map-panel); }
@media(max-width:760px) { .pd-citizen-list { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) {
    .pd-buildings { padding:0 14px 12px; }
    .pd-building-toolbar label { flex-basis:100%; }
    .pd-building-toolbar select { min-width:0; font-size:16px; }
    .pd-building-toolbar button { max-width:100%; }
    .pd-building-cut { flex-wrap:wrap; gap:0 10px; }
    .pd-building-cut label { flex-basis:100%; }
    .pd-map-heading { padding:16px 14px 12px; gap:10px; }
    .pd-map-heading-actions { gap:8px; }
    .pd-map-heading-actions #pdDimension { display:none; }
    .pd-map-heading p { font-size:.74rem; }
    .pd-map-expand { padding:8px; }
    .pd-map-expand span { display:none; }
    .pd-map-toolbar { flex-wrap:wrap; padding:0 14px 12px; gap:10px; }
    .pd-map-controls { flex-basis:100%; }
    .pd-map-controls select { font-size:16px; min-height:46px; }
    .pd-map-camera { width:100%; justify-content:space-between; gap:0; }
    .pd-map-camera button { min-width:44px; min-height:44px; }
    .pd-map-frame { height:340px; }
    .pd-map-meta { padding:13px 14px; }
    .pd-map-meta-line { gap:10px; }
    .pd-map-legend { gap:8px 14px; font-size:.78rem; }
    .pd-map-meta .pd-position>div:last-child:nth-child(4) { margin-left:0; flex-basis:100%; }
    .pd-map-meta .pd-map-hint { font-size:.76rem; line-height:1.6; }
    .pd-map-card .pd-colony-panel summary { padding:14px; }
    .pd-map-card .pd-colony-panel summary>span { display:none; }
    .pd-map-card .pd-members-panel summary>span { display:inline; }
    .pd-colony-content { padding-inline:11px; }
    .pd-map-access { padding-inline:14px; }
    .pd-map-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); border-radius:12px; }
    .pd-map-dialog .pd-map-frame { height:max(260px,calc(100dvh - 420px)); }
}
.pd-exploration{margin-top:12px;padding-top:12px;border-top:1px solid var(--line,rgba(150,170,200,.18))}.pd-exploration p{margin:0 0 8px;font-size:12px;color:var(--muted,#a9b9c9)}.pd-exploration-controls{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.pd-exploration button{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid rgba(150,170,200,.28);border-radius:8px;background:rgba(80,100,140,.12);color:inherit;font:inherit;cursor:pointer}.pd-exploration button:hover{background:rgba(120,110,200,.22)}.pd-exploration canvas{display:block;width:100%;height:112px;background:rgba(20,35,50,.1);border:1px solid rgba(150,170,200,.2);border-radius:8px;cursor:crosshair;touch-action:manipulation}.pd-exploration [hidden]{display:none!important}
