:root{--ink:#203028;--muted:#68766f;--primary:#16734a;--primary-deep:#0e5b39;--accent:#e7b94b;--bg:#f6f9f7;--surface:#fff;--soft:#eaf4ef;--line:#dbe5df;--shadow:0 12px 34px rgba(25,61,44,.09);--radius:18px;--hero-a:#0f6540;--hero-b:#239865;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font);background:var(--bg);line-height:1.65}a{color:var(--primary);text-underline-offset:3px}button,input,textarea,select{font:inherit}button,a{transition:.18s ease}.site-header{min-height:70px;display:flex;align-items:center;padding:0 max(20px,calc((100% - 1160px)/2));background:color-mix(in srgb,var(--surface) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(12px);position:sticky;top:0;z-index:900}.brand{font-weight:900;letter-spacing:.13em;color:var(--primary);text-decoration:none}.public-page main{max-width:1160px;margin:auto;padding:34px 20px 72px}.site-footer{text-align:center;padding:30px;color:var(--muted);border-top:1px solid var(--line);background:var(--surface)}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--hero-a),var(--hero-b));color:#fff;padding:clamp(28px,5vw,52px);border-radius:calc(var(--radius) + 8px);margin-bottom:22px;box-shadow:var(--shadow)}.hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-80px;top:-110px;background:rgba(255,255,255,.11)}.hero h1{position:relative;margin:0 0 10px;font-size:clamp(28px,5vw,48px);line-height:1.25}.hero p{position:relative;max-width:720px;margin:0;opacity:.92}.stats{position:relative;display:flex;gap:12px;margin-top:28px}.stats span{min-width:130px;padding:12px 16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:14px}.stats b{font-size:28px;margin-right:4px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.card{display:block;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-decoration:none;box-shadow:var(--shadow);position:relative}.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 35%,var(--line));box-shadow:0 16px 38px rgba(25,61,44,.14)}.card h2{font-size:18px;line-height:1.4;margin:15px 0 10px}.thumb,.spot-image{display:grid;place-items:center;background:var(--soft);border-radius:calc(var(--radius) - 5px);overflow:hidden;font-size:48px;aspect-ratio:16/9}.thumb img,.spot-image img{width:100%;height:100%;object-fit:cover}.badge{display:inline-flex;padding:4px 10px;border-radius:99px;background:#eef0ef;font-size:12px;font-weight:700}.badge.done{background:color-mix(in srgb,var(--primary) 15%,white);color:var(--primary-deep)}.actions,.filters{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.actions a,.filters button,.button{border:1px solid var(--line);background:var(--surface);padding:10px 16px;border-radius:99px;color:var(--ink);text-decoration:none;font-weight:650}.actions a:hover,.button:hover{border-color:var(--primary);color:var(--primary)}.filters button{cursor:pointer}.filters button.active,.filters button[aria-pressed="true"]{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 4px 13px color-mix(in srgb,var(--primary) 32%,transparent)}.filter-status{margin:-8px 0 20px;color:var(--muted);font-size:14px}.spot{max-width:820px;margin:20px auto}.spot-image{margin-bottom:28px;box-shadow:var(--shadow)}.primary,.button-like{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:13px 20px;background:var(--primary);color:#fff;font-weight:750;cursor:pointer;text-decoration:none}.primary:hover,.button-like:hover{background:var(--primary-deep);color:#fff;transform:translateY(-1px)}.primary:disabled{opacity:.55;cursor:wait}.form{display:grid;gap:18px;max-width:720px}.form label{display:grid;gap:7px;font-weight:700}.form input,.form textarea,.form select,select{width:100%;padding:12px 13px;border:1px solid #bfcac4;border-radius:10px;background:#fff;color:var(--ink)}.form input:focus,.form textarea:focus,.form select:focus,select:focus{outline:3px solid color-mix(in srgb,var(--primary) 16%,transparent);border-color:var(--primary)}.alert{padding:14px 16px;background:#e3f5eb;border:1px solid #b9e4cb;border-radius:12px;margin-bottom:20px}.alert.error{background:#fff0f0;border-color:#f2caca;color:#8c2e2e}.ranking{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.ranking>div{display:grid;grid-template-columns:70px 1fr auto;gap:10px;padding:16px;background:var(--surface);border-bottom:1px solid var(--line)}.ranking>div:last-child{border:0}.empty{text-align:center;padding:60px 20px}[hidden]{display:none!important}.map-section{margin:28px 0}.map-section h2{font-size:21px}.map-section #spot-map,.detail-map-section #detail-map{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--soft);box-shadow:var(--shadow)}.map-section #spot-map{height:430px}.detail-map-section{margin:30px 0}.detail-map-section #detail-map{height:350px}.route-link{display:inline-flex;padding:11px 16px;border:1px solid var(--primary);border-radius:10px;color:var(--primary);font-weight:700;text-decoration:none}.route-link:hover{color:#fff;background:var(--primary)}
.result:not(:empty){padding:13px 15px;border-radius:12px;background:var(--soft);border:1px solid var(--line);font-weight:700}.spot>a:first-child{display:inline-flex;margin-bottom:14px}.spot h1{font-size:clamp(28px,5vw,42px);line-height:1.3}.public-page .form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,4vw,28px);box-shadow:var(--shadow)}@media(max-width:640px){#checkin{position:sticky;bottom:12px;width:100%;z-index:700;box-shadow:0 8px 25px color-mix(in srgb,var(--primary) 35%,transparent)}.spot-image{margin-left:-4px;margin-right:-4px}.actions a{flex:1;text-align:center;min-width:calc(33% - 10px)}}
/* Event themes */
body[data-theme="sakura"]{--primary:#b8446b;--primary-deep:#8f3152;--accent:#e9a8bb;--bg:#fff8fa;--soft:#fbe9ef;--line:#eed5dd;--hero-a:#9e365b;--hero-b:#df829f;--radius:22px}body[data-theme="shinonome"]{--primary:#c65330;--primary-deep:#8f3521;--accent:#e6a23f;--bg:#fff9f3;--soft:#f9e9dc;--line:#ead9cb;--hero-a:#24384f;--hero-b:#d56a3d;--radius:16px}body[data-theme="aoba"]{--primary:#087f78;--primary-deep:#05605b;--accent:#78b84c;--bg:#f4fbfa;--soft:#e1f4f0;--line:#cfe5e1;--hero-a:#076c67;--hero-b:#3ba38a;--radius:20px}body[data-theme="yozakura"]{--ink:#e9e7f2;--muted:#aaa5ba;--primary:#bd79e5;--primary-deep:#9451bd;--accent:#f294bd;--bg:#171523;--surface:#221f30;--soft:#302a43;--line:#3d374d;--hero-a:#312151;--hero-b:#8c3f78;--shadow:0 14px 38px rgba(0,0,0,.27)}body[data-theme="yozakura"] .actions a,body[data-theme="yozakura"] .filters button,body[data-theme="yozakura"] .button{color:var(--ink)}body[data-theme="yozakura"] .form input,body[data-theme="yozakura"] .form textarea,body[data-theme="yozakura"] .form select{background:#2a2638;color:#fff;border-color:#494258}
/* Admin */
.admin-page{background:#f3f6f4;color:#24322b}.admin-header{background:#123c2b;color:#fff;position:sticky;top:0;z-index:1000;box-shadow:0 4px 18px rgba(9,36,24,.18)}.admin-header-inner{max-width:1440px;margin:auto;min-height:72px;padding:0 24px;display:flex;align-items:center;gap:24px}.admin-logo{display:grid;grid-template-columns:36px auto;grid-template-rows:auto auto;color:#fff;text-decoration:none;line-height:1.05;min-width:168px}.admin-logo span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#35a870;font-weight:900}.admin-logo b{font-size:14px}.admin-logo small{font-size:9px;letter-spacing:.15em;opacity:.65}.adminnav{display:flex;align-self:stretch}.adminnav a{display:flex;align-items:center;gap:6px;padding:0 13px;color:#cfe0d7;text-decoration:none;font-size:14px;font-weight:650;border-bottom:3px solid transparent}.adminnav a:hover,.adminnav a.active{color:#fff;background:rgba(255,255,255,.07);border-bottom-color:#57c58c}.adminnav i{font-style:normal;opacity:.7}.admin-account{margin-left:auto;position:relative;text-align:right;line-height:1.25}.admin-account span{display:block;font-weight:700;font-size:13px}.admin-account small{color:#a9c5b6}.account-links{display:flex;gap:10px;margin-top:4px}.account-links a{color:#d6e7de;font-size:11px}.nav-toggle{display:none}.admin-main{max-width:1320px;margin:auto;padding:34px 24px 80px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{font-size:clamp(26px,3vw,36px);margin:2px 0}.page-heading p{margin:0;color:#69776f}.eyebrow{font-size:11px;letter-spacing:.16em;color:#23835a;font-weight:800}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.metric{display:block;background:#fff;padding:20px;border:1px solid #dce5e0;border-radius:16px;color:inherit;text-decoration:none;box-shadow:0 7px 24px rgba(24,55,40,.05)}.metric span,.metric small{display:block;color:#718078}.metric b{display:block;font-size:34px;color:#16734a;line-height:1.25;margin:5px 0}.metric-alert b{color:#bd5b32}.dashboard-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px}.admin-panel{background:#fff;border:1px solid #dce5e0;border-radius:18px;padding:24px;margin-bottom:22px;box-shadow:0 8px 28px rgba(24,55,40,.055)}.admin-panel>h2,.section-heading h2{margin-top:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.count-label{background:#edf4f0;padding:3px 10px;border-radius:99px;color:#5d6f65;font-size:13px}.event-list{display:grid}.event-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #edf1ef}.event-row:last-child{border:0}.event-row small{display:block;color:#718078}.event-dot{width:10px;height:10px;border-radius:50%;background:#b6bdb9}.event-dot.status-1{background:#2fa66e}.event-dot.status-2{background:#7b8580}.next-actions{display:grid;align-content:start;gap:8px}.next-actions a{display:grid;padding:13px;border:1px solid #e0e7e3;border-radius:12px;color:inherit;text-decoration:none}.next-actions a:hover{border-color:#3c9a6c;background:#f5faf7}.next-actions small{color:#718078}.admin-form{max-width:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-help{display:inline;font-size:12px;color:#718078;font-weight:400}.check-card{align-self:end;display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;padding:11px 13px;border:1px solid #c9d3ce;border-radius:10px;background:#f8faf9}.check-card input{width:auto!important}.check-card small{display:block;color:#718078;font-weight:400}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.theme-picker{border:0;padding:0;margin:4px 0}.theme-picker legend{font-weight:800}.theme-options{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.theme-option input{position:absolute;opacity:0;pointer-events:none}.theme-swatch{display:block;min-height:110px;padding:42px 12px 12px;border:2px solid transparent;border-radius:14px;background:linear-gradient(135deg,#0f6540 0 38%,#239865 38% 62%,#f7faf8 62%);box-shadow:inset 0 0 0 1px #dce5e0;cursor:pointer}.theme-swatch b,.theme-swatch small{display:block}.theme-swatch small{font-size:11px;color:#6d7973}.theme-option input:checked+.theme-swatch{border-color:#16734a;box-shadow:0 0 0 3px #d7eee2}.theme-sakura .theme-swatch{background:linear-gradient(135deg,#9e365b 0 38%,#df829f 38% 62%,#fff8fa 62%)}.theme-shinonome .theme-swatch{background:linear-gradient(135deg,#24384f 0 38%,#d56a3d 38% 62%,#fff9f3 62%)}.theme-aoba .theme-swatch{background:linear-gradient(135deg,#076c67 0 38%,#3ba38a 38% 62%,#f4fbfa 62%)}.theme-yozakura .theme-swatch{background:linear-gradient(135deg,#312151 0 38%,#8c3f78 38% 62%,#221f30 62%);color:#fff}.theme-yozakura .theme-swatch small{color:#d2c9db}.table-wrap{overflow:auto;border:1px solid #e0e7e3;border-radius:14px}.table{width:100%;border-collapse:collapse;background:#fff;min-width:700px}.table th{padding:11px 13px;background:#f3f7f5;color:#596960;font-size:12px;text-align:left;white-space:nowrap}.table td{padding:13px;border-top:1px solid #e5ebe8;text-align:left}.table tbody tr:hover{background:#fafcfb}.row-actions{display:flex;gap:10px;flex-wrap:wrap}.row-actions a{font-weight:650;font-size:13px;white-space:nowrap}.status{display:inline-flex;padding:4px 9px;border-radius:99px;font-size:12px;font-weight:750;background:#ecefed;color:#667069}.status-1{background:#dcf3e7;color:#12633e}.status-2{background:#e9eaec;color:#555d59}.empty-state{text-align:center;padding:36px 18px;background:#f7faf8;border:1px dashed #c9d6cf;border-radius:14px}.empty-state p{margin-bottom:0;color:#718078}.admin-page footer{text-align:center;padding:24px;color:#718078}
@media(max-width:1000px){.admin-header-inner{flex-wrap:wrap;padding:12px 18px}.nav-toggle{display:block;margin-left:auto;border:1px solid #6c8c7c;background:transparent;color:#fff;padding:7px 10px;border-radius:8px}.adminnav{display:none;order:3;width:100%;height:auto;overflow:auto}.adminnav.open{display:flex}.adminnav a{min-height:44px;white-space:nowrap}.admin-account{display:none}.admin-grid{grid-template-columns:1fr 1fr}.theme-options{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.public-page main,.admin-main{padding:20px 14px 56px}.site-header{min-height:60px}.hero{padding:26px 20px;border-radius:20px}.stats{gap:8px}.stats span{min-width:0;flex:1}.grid{grid-template-columns:1fr 1fr;gap:10px}.card{padding:10px}.thumb{font-size:34px}.ranking>div{grid-template-columns:52px 1fr auto}.map-section #spot-map{height:320px}.detail-map-section #detail-map{height:280px}.page-heading{display:grid}.admin-grid,.dashboard-columns,.form-grid{grid-template-columns:1fr}.metric{padding:16px}.theme-options{grid-template-columns:1fr 1fr}.admin-panel{padding:18px}.event-row{grid-template-columns:10px 1fr}.event-row .row-actions{grid-column:2}.adminnav a{padding:0 10px}.form-actions>*{width:100%}}
.qr-confirm{text-align:center}.qr-confirm form{margin-top:20px}.qr-confirm .primary{min-width:240px}
