/* Festival Importer: reuses the app's tokens, buttons, cards and form grid from style.css */
body.imp{display:block;padding:0;margin:0;min-height:100vh;overflow-x:hidden}
.imp-in{max-width:980px;margin:0 auto;padding-inline:16px}
.imp-top{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 0 0;position:sticky;top:0;z-index:20}
.imp-top h1{font:400 28px/1.1 var(--display);margin:0;color:var(--accent)}
.imp-top .empty{margin:4px 0 8px}
.imp-steps{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin-inline:-4px}
.imp-steps a{white-space:nowrap;padding:8px 10px;color:var(--muted);text-decoration:none;font-weight:700;font-size:14px;border-bottom:3px solid transparent}
.imp-steps a:hover{color:var(--ink);border-color:var(--line)}
main.imp-in{display:flex;flex-direction:column;gap:14px;padding-block:16px 80px}
.imp-card{scroll-margin-top:130px}
.imp-card h2{font:400 22px var(--display);margin:0 0 6px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.imp-card h3{font-size:16px;margin:16px 0 6px}
.num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 15px var(--body);flex:none;transform:translateY(-2px)}
.imp-form{margin-top:8px}
.imp-form input,.imp-form select,.imp-note input,#s-text{font:15px var(--body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0;width:100%}
.imp-form small{font-size:12px;margin:0}
.lbl{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.row{display:flex;gap:6px;align-items:stretch}
.row input{flex:1}
.dows{display:flex;flex-wrap:wrap;gap:6px}
.dows button[aria-pressed="true"],.me-bar [aria-pressed="true"]{background:var(--azure);border-color:var(--azure);color:var(--surface)}
#b-hits{display:flex;flex-direction:column;gap:6px}
#b-hits:empty{display:none}
#b-hits button{text-align:left}
.chips{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chips li{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:3px 4px 3px 11px;font-size:14px}
.chips li button{border:0;background:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;padding:2px 7px;border-radius:999px}
.chips li button:hover{color:var(--accent);background:var(--surface)}

.mapedit{margin-top:10px}
.me-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.me-zoom{display:flex;gap:4px;margin-left:auto}
.me-zoom .btn{min-width:38px}
.me-box{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);touch-action:none;min-height:180px}
#me{display:block;width:100%;height:auto;max-height:72vh;cursor:crosshair;user-select:none;-webkit-user-select:none}
#me.pan{cursor:grab}
.me-empty{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--muted)}
.me-empty[hidden]{display:none}
.me-walkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.me-walkbar[hidden]{display:none}
.me-walkbar .empty{margin:0;flex:1 1 200px}

#me .pin .disc{stroke:var(--surface);stroke-width:3}
#me .pin.stage .disc{fill:var(--accent)}
#me .pin.tavern .disc{fill:var(--gold)}
#me .pin.place .disc{fill:var(--forest)}
#me .pin text.g{fill:#fff;font:700 15px var(--body);text-anchor:middle;dominant-baseline:central;pointer-events:none}
#me .pin text.n{fill:var(--ink);font:700 15px var(--body);paint-order:stroke;stroke:var(--surface);stroke-width:4px;pointer-events:none}
#me .pin.sel .disc{stroke:var(--azure);stroke-width:5}
#me .pin{cursor:move}
#me .walk{fill:none;stroke:#7A3E8E;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
#me .walk.cur{stroke:var(--azure);stroke-dasharray:10 8;opacity:1}
#me .wpt{fill:var(--azure);stroke:var(--surface);stroke-width:2}

.pinform{margin-top:10px;border:1px solid var(--azure);border-radius:var(--r);padding:12px;background:var(--bg)}
.pinform[hidden]{display:none}
.pinform .acts{margin-top:10px}
.plist{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.plist li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;background:var(--bg)}
.plist li .sw{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex:none}
.plist li .sw.stage{background:var(--accent)}.plist li .sw.tavern{background:var(--gold)}.plist li .sw.place{background:var(--forest)}.plist li .sw.walk{background:#7A3E8E}
.plist li .grow{flex:1;min-width:0;overflow-wrap:anywhere}
.plist li small{color:var(--muted)}
.plist li .btn{padding:4px 10px;font-size:13px}

#s-text{font:14px/1.5 ui-monospace,Consolas,monospace;resize:vertical;margin-top:8px}
code{font:13px ui-monospace,Consolas,monospace;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.errs{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px}
.errs li{padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--warn) 14%,var(--surface));color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.errs li.ok{background:color-mix(in srgb,var(--forest) 16%,var(--surface))}
.errs li .btn{padding:3px 9px;font-size:13px}
.imp-note{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted);margin-top:12px}

.checks{list-style:none;margin:6px 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}
.checks li{display:flex;gap:8px;align-items:baseline}
.checks li::before{content:"○";color:var(--muted);font-weight:700;width:1em;flex:none}
.checks li.done::before{content:"✓";color:var(--forest)}
.checks li.opt::before{content:"–"}
.more{margin-top:12px}
.more summary{cursor:pointer;color:var(--muted);font-size:14px}
.more .acts{margin-top:8px}
.toast:empty{display:none}

@media (max-width:620px){
  .form.imp-form{grid-template-columns:minmax(0,1fr)}
  .me-zoom{margin-left:0}
}
