:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#262329;background:var(--background,#fffaf8);font-size:16px;line-height:1.55}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--accent,#a71930)}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #005fcc;outline-offset:2px}
.site-shell{max-width:1040px;margin:auto;padding:0 24px 60px}.site-header{display:flex;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid #e5ddd9}.site-header strong,.site-header small{display:block}.site-header strong{font-size:1.1rem}.site-header small,.muted{color:#625b60}.brand-mark{display:grid;place-items:center;background:var(--accent,#a71930);color:white;width:42px;height:42px;border-radius:12px;font-size:1.5rem}.brand-logo{max-width:160px;max-height:56px;object-fit:contain}.block{margin:28px 0;padding:34px;border:1px solid #e6ddda;border-radius:18px;background:white;box-shadow:0 7px 25px #3823240a}.hero{background:linear-gradient(130deg,var(--accent,#a71930),#5e1530);color:white;padding:52px 40px}.hero h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin:0 0 20px;max-width:720px}.hero p:last-child{max-width:690px;font-size:1.15rem}.eyebrow{font-size:.76rem;font-weight:800;letter-spacing:.12em;color:var(--accent,#a71930);margin:0 0 8px}.hero .eyebrow{color:#fff8}.block h2{font-size:clamp(1.5rem,3vw,2.2rem);margin:0 0 14px;line-height:1.2}.block h3{font-size:1.2rem;margin:0 0 5px}.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0 12px}.picker-grid label{font-weight:700}.picker-grid label span{display:block;margin-bottom:7px}.picker-grid input,.picker-grid select,.admin-panel input,.admin-panel textarea,.admin-panel select,.auth-card input{width:100%;border:1px solid #bdb2b0;border-radius:8px;padding:10px 12px;background:#fff;color:#262329}.suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px;margin:15px 0}.place-option{text-align:left;display:flex;justify-content:space-between;gap:10px;border:1px solid #e6ddda;border-radius:8px;background:#fff;padding:9px 11px}.place-option:hover{border-color:var(--accent,#a71930);background:#fff8f6}.place-option span{color:#655f64;font-size:.82rem}.result{display:grid;gap:16px}.authority-card,.route-card,.notice{padding:22px;border-radius:12px;border:1px solid #e5ddd9;background:#fff}.authority-card{background:#f8f5f2}.route-card{border-left:5px solid var(--accent,#a71930)}.route-card ol{padding-left:24px}.route-card li{margin-bottom:8px}.route-card img{max-width:100%;height:auto}.notice{background:#fff7e8;border-color:#ecd5ae}.source-line{font-size:.86rem;color:#625b60}.button-line{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.primary-button,.button-line>a:first-child,.secondary-button,.admin-button{display:inline-block;border-radius:8px;padding:10px 15px;text-decoration:none;border:1px solid var(--accent,#a71930);font-weight:700}.primary-button,.button-line>a:first-child,.admin-button.primary{background:var(--accent,#a71930);color:#fff}.secondary-button,.admin-button{background:white;color:var(--accent,#a71930)}.faq details{padding:12px 0;border-bottom:1px solid #eee}.faq summary{cursor:pointer;font-weight:700}.image-block img{max-width:100%;height:auto;border-radius:8px}.site-footer{padding:25px 0;border-top:1px solid #ddd;color:#625b60;font-size:.86rem}.loading,.error-page{max-width:700px;margin:60px auto;padding:20px}
.admin-body{background:#f5f2ef}.admin-shell{max-width:1400px;margin:auto;padding:24px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 0 18px;border-bottom:1px solid #d9d1cd}.admin-header h1{margin:0;font-size:1.5rem}.admin-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.admin-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;margin-top:20px}.admin-nav,.admin-panel,.auth-card{background:white;border:1px solid #e4dcd7;border-radius:12px;padding:20px}.admin-nav{align-self:start;display:grid;gap:7px}.admin-nav button{border:0;background:transparent;text-align:left;padding:10px;border-radius:7px}.admin-nav button:hover,.admin-nav button.active{background:#f7e8ea;color:#8d1229}.admin-panel h2{margin:0 0 14px}.admin-panel h3{margin:18px 0 8px}.admin-panel label,.auth-card label{display:block;font-weight:700;margin:12px 0}.admin-panel label>span,.auth-card label>span{display:block;margin-bottom:5px}.admin-panel textarea{min-height:110px;resize:vertical}.admin-panel .short-area{min-height:70px}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.admin-button{font-size:.92rem;padding:8px 12px}.admin-button.danger{border-color:#a12626;color:#a12626}.admin-list{list-style:none;padding:0;display:grid;gap:8px}.admin-list li{border:1px solid #e5ddd9;border-radius:8px;padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:center}.admin-list small{display:block;color:#696267}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 16px}.admin-note{padding:10px 14px;border-radius:8px;background:#f5f2ef;margin:12px 0}.admin-status{position:sticky;top:0;background:#163c29;color:white;padding:10px 16px;z-index:4;border-radius:8px}.admin-status.error{background:#8d1229}.admin-block{border:1px solid #d9d1cd;border-radius:10px;margin:12px 0;padding:15px;background:#fdfcfa}.admin-block-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-block-title h3{margin:0}.admin-block input[type=checkbox]{width:auto}.admin-preview{width:100%;height:650px;border:1px solid #cfc6c1;border-radius:8px;background:white}.auth-card{max-width:430px;margin:10vh auto}.route-editor{border:1px solid #ddd;border-radius:8px;padding:15px;margin:12px 0}.route-editor textarea{min-height:100px}.chip{display:inline-block;font-size:.75rem;border-radius:20px;background:#f2e4e6;padding:3px 8px}.split{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.admin-panel table{border-collapse:collapse;width:100%}.admin-panel th,.admin-panel td{border-bottom:1px solid #ddd;padding:8px;text-align:left}.small{font-size:.85rem;color:#655f64}
@media(max-width:760px){.site-shell{padding:0 16px 40px}.block{padding:22px;margin:18px 0}.hero{padding:36px 24px}.picker-grid,.admin-grid{grid-template-columns:1fr}.admin-shell{padding:12px}.admin-nav{display:flex;overflow:auto}.admin-nav button{white-space:nowrap}.place-option{display:block}.place-option span{display:block}}
