/* SOR-PB V25 · Carte stratégique, rendu DOM léger sans bibliothèque externe. */
.sor-map-widget{--sor-map-red:#992d37;--sor-map-edge:#343338;color:#e6e6e7}
.sor-map-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(295px,.85fr);gap:14px;align-items:stretch}
.sor-map-frame{border:1px solid #373438;border-radius:14px;background:#101216;overflow:hidden;position:relative;min-height:490px}
.sor-map-stage{height:clamp(400px,66vh,720px);min-height:460px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 42% 58%,#25333b 0%,#10171b 65%,#090b0d 100%);touch-action:none;cursor:grab;user-select:none}
.sor-map-stage:active{cursor:grabbing}
.sor-map-world,.sor-map-tiles,.sor-map-pinlayer,.sor-map-lines{position:absolute;left:0;top:0;pointer-events:none}
.sor-map-tiles img{position:absolute;width:256px;height:256px;display:block;pointer-events:none;user-select:none}
.sor-map-world{will-change:transform}
.sor-map-pinlayer{pointer-events:none;z-index:4}
.sor-map-pin{position:absolute;pointer-events:auto;cursor:pointer;border:2px solid #e1d9d4;background:#9b343e;color:#fff;font-size:16px;font-weight:900;border-radius:50% 50% 50% 4px;width:32px;height:32px;display:flex;justify-content:center;align-items:center;transform:translate(-50%,-100%) rotate(-45deg);box-shadow:0 3px 12px #000c,0 0 0 2px #1d1618}
.sor-map-pin span{transform:rotate(45deg);display:block;line-height:1}
.sor-map-pin.warehouse{background:#aa4a36}.sor-map-pin.poi{background:#526c83}.sor-map-pin.meeting{background:#438173}.sor-map-pin.operation{background:#a2354d}
.sor-map-pin.selected{outline:3px solid white;outline-offset:2px;z-index:10}
.sor-map-lines{z-index:3}
.sor-map-topbar{position:absolute;z-index:11;top:12px;left:12px;right:12px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;pointer-events:none}
.sor-map-topbar>*{pointer-events:auto}
.sor-map-chip{background:#13171de9;border:1px solid #4a4348;color:#e5e4e5;border-radius:8px;padding:8px 10px;font-size:12px;min-height:34px}
.sor-map-chip[disabled]{opacity:.4}
.sor-map-chip:focus-visible,.sor-map-side button:focus-visible{outline:2px solid #d4a5aa;outline-offset:2px}
.sor-map-zoom{margin-left:auto;display:flex;gap:6px}
.sor-map-notice{position:absolute;bottom:12px;left:12px;right:12px;z-index:9;background:#080b0de0;border:1px solid #34363a;border-radius:8px;color:#d1d3d5;padding:8px 10px;font-size:11px;pointer-events:none}
.sor-map-side{border:1px solid #373438;border-radius:14px;background:#151517;padding:15px;min-width:0;max-height:730px;overflow:auto}
.sor-map-side h3{font-family:Georgia,serif;font-size:21px;color:#f1ebeb}
.sor-map-side .map-small{color:#a9a5a7;font-size:12px;line-height:1.55}
.sor-map-row{padding:10px;border:1px solid #353236;background:#1b1b1e;border-radius:8px;margin-top:8px;display:flex;align-items:flex-start;gap:10px}
.sor-map-row:hover{border-color:#6d5157}
.sor-map-dot{width:10px;height:10px;flex-shrink:0;border-radius:50%;margin-top:4px;background:#9a3642}
.sor-map-side .map-btn{border:1px solid #55505a;border-radius:8px;color:#eee;background:#28272c;padding:8px 10px;font-size:12px;min-height:34px}
.sor-map-side .map-btn-red{background:#7c2932;border-color:#ab454e}
.sor-map-side .map-btn:hover{filter:brightness(1.17)}
.sor-map-side .map-btn:disabled{opacity:.5;cursor:not-allowed}
.sor-map-side .map-field{box-sizing:border-box;width:100%;background:#101114;border:1px solid #4c454d;border-radius:7px;color:#ededed;padding:9px 10px;font-size:13px;min-height:38px}
.sor-map-side label{display:block;margin:10px 0 4px;color:#b1afb2;font-size:11px;font-weight:600;letter-spacing:.035em}
.sor-map-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sor-map-side .map-check{display:inline-flex;gap:5px;align-items:center;margin:0 8px 3px 0;font-size:11px;color:#b4b1b5;letter-spacing:0}
.sor-map-side .map-check input{accent-color:#a3343d}
.sor-map-divider{border-top:1px solid #3c3539;margin:14px 0}
.sor-map-status{font-size:11px;color:#cfbbb9;border:1px solid #4e3339;padding:8px;border-radius:8px;margin:8px 0}
.sor-map-stage .map-grid-ghost{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:50px 50px;pointer-events:none;z-index:0}
@media(max-width:1000px){.sor-map-layout{grid-template-columns:1fr}.sor-map-side{max-height:none}.sor-map-stage{height:420px;min-height:380px}.sor-map-frame{min-height:380px}}
@media(max-width:460px){.sor-map-stage{height:360px;min-height:350px}.sor-map-topbar{top:6px;left:6px;right:6px}.sor-map-chip{font-size:11px;padding:6px}.sor-map-side{padding:12px}.sor-map-frame{min-height:350px}}
