:root{--bg: #fff;--fg: #222;--muted: #6b7280;--line: #e2e4e8;--accent: #2563eb;--danger: #dc2626;--panel: #f8f9fb;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #15171a;--fg: #e8e9ec;--muted: #9aa0aa;--line: #2d3138;--accent: #6ea0ff;--danger: #ff7b7b;--panel: #1d2024}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,Hiragino Sans,Yu Gothic UI,sans-serif;font-size:14px}h1,h2{margin:0 0 8px}h2{font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger);margin:6px 0}.center{text-align:center;margin-top:20vh}input,textarea,button,.button{font:inherit;color:inherit}input:not([type=checkbox]),textarea{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}button,a.button{padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);cursor:pointer;text-decoration:none;display:inline-block}button:hover:not(:disabled),a.button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.link{border:0;background:none;color:var(--accent);padding:0}button.danger{color:var(--danger)}label{display:block;margin:8px 0;font-size:12px;color:var(--muted)}label input,label textarea{margin-top:3px;color:var(--fg)}label.check{display:flex;gap:6px;align-items:center}.login{max-width:360px;margin:12vh auto;padding:0 16px}.login button{width:100%;margin-top:8px;background:var(--accent);color:#fff;border-color:var(--accent)}.layout{display:grid;grid-template-columns:360px 1fr;height:100vh}.sidebar{overflow-y:auto;padding:12px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.sidebar header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.tabs{display:flex;gap:4px}.tabs button{flex:1;padding:4px 6px;font-size:12px}.tabs button.active,.list button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:38vh;overflow-y:auto}.list button{width:100%;text-align:left;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.list button .small{flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{font-size:11px;padding:0 6px;border-radius:8px;background:#b45309;color:#fff}.badge.gray{background:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.panel textarea{resize:vertical}.row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.messages{margin:8px 0 0;padding-left:18px;font-size:12px}.add-toggle{align-self:flex-start}main{position:relative;overflow:auto;padding:12px;background:var(--panel)}.map{position:relative;max-width:1100px;margin:0 auto}.map.placing img{cursor:crosshair}.map-inner{position:relative;line-height:0;-webkit-user-select:none;user-select:none;touch-action:none}.map-inner img{width:100%;display:block;border-radius:8px;border:1px solid var(--line)}.hint{position:sticky;bottom:8px;margin-top:8px;text-align:center;background:var(--accent);color:#fff;padding:6px;border-radius:6px;line-height:1.4}.pin{position:absolute;transform:translate(-50%,-50%);padding:3px 8px;border-radius:12px;border:2px solid #fff;background:#1f2937;color:#fff;font-size:12px;line-height:1.3;white-space:nowrap;cursor:grab;touch-action:none}.pin.selected{background:var(--accent);z-index:2;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 40%,transparent)}.pin.dim{opacity:.25}@media (max-width: 760px){.layout{grid-template-columns:1fr;grid-template-rows:auto 60vh;height:auto}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.list{max-height:30vh}}
