:root{color-scheme:light;--ink:#272620;--muted:#625f55;--paper:#f6f5f0;--white:#fffefa;--line:#e3e0d6;--accent:#a12b28;--green:#008249;--orange:#f47b00;--red:#cf2941;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #8e302a;outline-offset:2px}button:disabled{opacity:.65;cursor:wait}[hidden]{display:none!important}
.bar{background:var(--white);border-bottom:1px solid var(--line)}.bar-inner,main{width:min(1240px,100%);margin:auto;padding-inline:clamp(14px,4vw,44px)}.bar-inner{height:66px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px}.logo{background:var(--accent);border-radius:12px;color:#fff;width:38px;height:38px;display:grid;place-items:center;font-weight:850;letter-spacing:-.06em}.brand strong,.brand small{display:block}.brand small,.visibility{font-size:.75rem;color:var(--muted)}.visibility span{color:var(--accent);margin-right:4px;font-size:.55rem}
.intro{padding:32px 0 22px}.eyebrow{font-size:.68rem;letter-spacing:.12em;font-weight:800;color:var(--accent)}h1{font-size:clamp(2.35rem,6vw,4rem);letter-spacing:-.065em;line-height:1.02;margin:6px 0 8px}.intro p,.hint,.branch-address{color:var(--muted);margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.stats button{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:12px 14px;border-radius:13px;text-align:left;display:grid;align-content:start;gap:3px}.stats button[aria-pressed=true]{border-color:#aa4b43;box-shadow:inset 0 0 0 1px #aa4b43}.stats span{font-size:.82rem;font-weight:750}.stats strong{font-size:1.7rem;line-height:1.15;font-variant-numeric:tabular-nums}.stats small{font-size:.72rem;color:var(--muted)}.dot{width:.65em;height:.65em;border-radius:50%;display:inline-block;background:var(--red);flex:none}.dot.green{background:var(--green)}.dot.orange{background:var(--orange)}
.workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:14px;align-items:start;padding-bottom:32px}.card{border:1px solid var(--line);background:var(--white);border-radius:17px;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 16px}.card-head h2{margin:2px 0 0;font-size:1.32rem;letter-spacing:-.035em}.subtle,.icon-button,.zoom button{border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:10px;min-height:40px;padding:0 12px;font-weight:700;font-size:.78rem}.map-wrap{position:relative;background:#e9ece4;overflow:hidden;border-block:1px solid var(--line)}#map{width:100%;height:auto;min-height:246px;display:block;touch-action:none}.zoom{display:grid;gap:4px;position:absolute;bottom:9px;right:9px}.zoom button,.icon-button{font-size:1.25rem;min-width:42px;padding:0}.hint{padding:10px 15px;font-size:.76rem}.country{fill:#f8f6e9;stroke:#939a87;stroke-width:1.15;vector-effect:non-scaling-stroke}.map-label{fill:#616753;font-size:13px;paint-order:stroke;stroke:#f8f6e9;stroke-width:3;stroke-linejoin:round;pointer-events:none}.pin{cursor:pointer;--pin-color:var(--red)}.pin.green{--pin-color:var(--green)}.pin.orange{--pin-color:var(--orange)}.pin-fill{fill:var(--pin-color);stroke:white;stroke-width:.8;vector-effect:non-scaling-stroke}.pin-detail .pin-fill{fill:#fff;stroke:var(--pin-color);stroke-width:5}.pin-frame-edge{fill:#fff;stroke:#3f382d;stroke-width:7;vector-effect:non-scaling-stroke}.pin-hit{fill:transparent}.pin-logo,.pin-stem,.pin text{pointer-events:none}.pin-stem{stroke:#687166;stroke-width:.8;opacity:.5;vector-effect:non-scaling-stroke}.pin text{fill:#4a5741;text-anchor:middle;dominant-baseline:central}.pin:focus-visible .pin-fill{stroke:#241c18;stroke-width:5}
.search{display:flex;align-items:center;gap:7px;margin:0 14px 9px;border:1px solid var(--line);border-radius:10px;padding:0 9px;color:var(--muted)}.search span{font-size:1.35rem}.search input{border:none;background:transparent;width:100%;min-height:44px;outline:none;color:var(--ink)}.search:focus-within{outline:2px solid var(--accent)}#result-count{font-size:.75rem;color:var(--muted);white-space:nowrap}.results{max-height:455px;overflow:auto}.row{display:flex;align-items:center;gap:10px;text-align:left;width:100%;border:0;border-top:1px solid var(--line);padding:10px 14px;background:transparent;color:var(--ink);min-height:57px}.row:hover{background:#f5f0e7}.row-body{flex:1;min-width:0}.row strong,.row small{display:block;overflow-wrap:anywhere}.row small,.empty{color:var(--muted);font-size:.77rem}.empty{padding:0 14px}.arrow{color:var(--muted)}
dialog{width:min(560px,calc(100% - 22px));max-height:calc(100dvh - 22px);border:1px solid var(--line);padding:0;border-radius:17px;background:var(--white);color:var(--ink)}dialog::backdrop{background:#26231ea0}.dialog-body{padding:16px}.dialog-body .card-head{padding:0 0 5px}.branch-address,.branch-status{font-size:.85rem}.branch-status{display:flex;align-items:center;gap:7px;margin:8px 0 16px;color:var(--muted)}form,.history{border-top:1px solid var(--line);padding-top:12px}h3{margin:0 0 10px;font-size:1rem}.fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}form label{display:block;min-width:0;font-size:.82rem;font-weight:700;margin-bottom:10px}form input,textarea{display:block;width:100%;min-width:0;margin-top:5px;border:1px solid #cbc6ba;border-radius:8px;padding:9px;background:#fff;color:var(--ink);font-size:1rem;min-height:44px}textarea{resize:vertical}.optional{font-weight:400;color:var(--muted)}.primary{border:0;background:var(--accent);color:white;border-radius:9px;padding:11px 14px;font-weight:750;min-height:44px}.history{margin-top:15px}.history .empty{padding:0}.visit{padding:8px 0;border-top:1px solid var(--line);font-size:.85rem}.visit time{margin-right:8px;font-weight:750}.visit p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}#error,#form-error{color:#982822;background:#fff1ec;border-radius:9px;padding:8px 10px}#notice{color:var(--green);font-size:.85rem;margin:8px 0 0}
@media(max-width:760px){.workspace{grid-template-columns:1fr}.intro{padding-top:22px}.stats{grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:12px}.stats button{padding:8px 11px}.stats strong{font-size:1.35rem}.stats small{font-size:.67rem}.results{max-height:380px}.directory{scroll-margin:8px}}
.map-credits{font-size:.65rem;color:var(--muted);padding:0 15px 9px;margin:0}
.form-hint{font-size:.78rem;color:var(--muted);margin:-4px 0 10px}
.plan-link{display:inline-flex;align-items:center;margin-top:12px;text-decoration:none}
.plan-card{margin-bottom:32px;scroll-margin-top:12px}
.plan-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px;padding:0 16px 16px}
.plan-grid form{border-top:0;padding-top:0}
.plan-grid select{display:block;width:100%;min-height:44px;margin-top:5px;padding:8px;border:1px solid #cbc6ba;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:1rem}
.plan-list{min-width:0}
.plan-list .empty{padding:0}
.plan-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:10px 0}
.plan-row strong,.plan-row time,.plan-row small{display:block;overflow-wrap:anywhere}
.plan-row time{font-size:.85rem;font-weight:700}
.plan-row small{color:var(--muted);font-size:.77rem}
.plan-badge{border-radius:20px;background:#e8edf7;color:#294677;font-size:.72rem;font-weight:750;padding:4px 8px;white-space:nowrap}
.branch-plan{margin-bottom:13px}
.plan-error{color:#982822;background:#fff1ec;border-radius:9px;padding:8px 10px}
.plan-notice{color:var(--green);font-size:.85rem;margin:8px 0 0}
@media(max-width:620px){.plan-grid{grid-template-columns:1fr;gap:18px}.plan-list{border-top:1px solid var(--line);padding-top:14px}}
.plan-list-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.plan-list-head h3{margin:0}
.plan-login{display:inline-flex;align-items:center;text-decoration:none}
.plan-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.plan-delete{color:var(--accent);white-space:nowrap}
.plan-badge[data-status="active"]{background:#fff0d6;color:#8d490b}
.plan-badge[data-status="done"]{background:#e4f3e8;color:#22613a}
.plan-confirmation{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:.78rem;color:var(--ink)}
.plan-confirmation input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--accent)}
.plan-confirmation input:disabled{opacity:.72}
.logout-form{border:0;padding:0;margin:0}
.login-main{max-width:520px;padding-top:clamp(28px,9vh,95px);padding-bottom:28px}
.login-card{padding:clamp(20px,5vw,36px)}
.login-card h1{margin-top:6px;font-size:clamp(2rem,8vw,3.25rem)}
.login-card p{color:var(--muted);margin:6px 0 14px}
.login-card form{border:0;padding-top:4px}
.login-card .primary{margin-top:6px;width:100%}
.login-card .login-error{padding:9px 11px;border-radius:9px;color:#982822;background:#fff1ec}
