@import url('/card-media.css?v=20261026-quality8');
@import url('/ui-control-tokens.css?v=20261026-controls4-final');
/* Product workspaces share one type scale, surface palette and interaction rhythm. */
:root{--product-ink:#213d33;--product-muted:#66746b;--product-line:#dce3da;--product-surface:#fffefa;--product-soft:#f1f4ee;--product-accent:#294f3e;--product-radius:20px;--product-ease:cubic-bezier(.22,1,.36,1)}
html[data-theme=dark]{--product-ink:#e5ede5;--product-muted:#afbeb2;--product-line:#435349;--product-surface:#23342b;--product-soft:#2c3e32;--product-accent:#aecab4}
:is(#map-section,#list-section,#walk-section,#register-section,#etiquette-section){color:var(--product-ink);font-family:var(--experience-font,'Noto Sans KR',system-ui,sans-serif);scroll-margin-top:90px}
:is(#map-section,#list-section,#walk-section,#register-section)>.wrap>.section-head{align-items:end;gap:24px;margin:4px 0 30px;padding-bottom:22px;border-bottom:1px solid var(--product-line)}
:is(#map-section,#list-section,#walk-section,#register-section)>.wrap>.section-head h2{font-family:inherit;font-size:clamp(27px,2.8vw,34px);font-weight:650;line-height:1.45;letter-spacing:-.035em;margin:8px 0 12px;color:var(--product-ink)}
:is(#map-section,#list-section,#walk-section,#register-section) .section-head .kicker{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.025em;color:var(--product-muted);background:none;border:0;padding:0}
:is(#map-section,#list-section,#walk-section,#register-section) .section-head p{max-width:62ch;font-size:14px!important;line-height:1.85!important;color:var(--product-muted);margin:0}
:is(.app-page,#profile-overlay,#nick-overlay) :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--product-accent);outline-offset:4px}
header .nav-links a{transition:background 150ms,color 150ms}
header .nav-links a[aria-current=page]{background:var(--product-soft);color:var(--product-ink)}
#bottom-tab-bar{border-radius:18px;box-shadow:0 6px 28px #1a352816}
#bottom-tab-bar button{transition:background 160ms,color 160ms}
#bottom-tab-bar button.active{background:var(--product-soft)}

/* Map controls sit quietly around the cartography; map panes never animate. */
#map-section{--map-surface:var(--product-surface);--map-ink:var(--product-ink);--map-muted:var(--product-muted);--map-line:var(--product-line);--map-soft:var(--product-soft);--map-active:var(--product-accent)}
#map-section .map-panel{border-radius:14px;border-color:var(--product-line);box-shadow:none}
#map-section .map-search-toolbar{padding:24px!important}
#map-section #place-search-input{background:var(--product-surface)!important;border:1px solid var(--product-line)!important;box-shadow:none!important;border-radius:12px!important}
#map-section #place-search-input:focus{border-color:var(--product-accent)!important}
#map-section #place-search-btn{border-radius:12px!important;font-weight:600}
#map-section #view-filter-group{background:var(--product-soft);border-radius:12px;padding:4px}
#map-section #view-filter-group .chip{border:0;min-height:46px;border-radius:9px;font-size:13px;transition:background 150ms,color 150ms;box-shadow:none}
#map-section #view-filter-group .chip.active{background:var(--product-surface);color:var(--product-ink);box-shadow:0 1px 5px #213d3312}
#map-section #professional-map-status{font-size:11px;line-height:1.85;gap:12px;padding:14px 0}
#map-section #professional-map-status a{min-height:40px;font-weight:500;font-size:11px;background:var(--product-soft);border-color:transparent}
#map-section .map-results-bridge{background:var(--product-surface);padding:12px 24px!important}
#map-section .map-results-bridge p{font-size:12px;color:var(--product-muted)}
#map-section .map-recommendations{padding-top:10px;margin-top:40px}
#map-section .home-section-head{align-items:center}
#map-section .home-section-head .section-more{color:var(--product-ink);font-size:12px;text-decoration:none;padding:10px 0;min-height:44px;box-sizing:border-box}

/* Saved walk journal: factual totals and one responsive seven-day chart. */
#walk-section .walk-journal{padding:24px;margin:0 0 22px;border:1px solid var(--product-line);border-radius:14px;background:var(--product-surface);color:var(--product-ink);box-shadow:none}
#walk-section .walk-journal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#walk-section #walk-journal-title{margin:0;font:600 18px/1.6 var(--experience-font,system-ui);letter-spacing:-.025em}
#walk-section .walk-journal-streak{font-size:11px;font-weight:500;color:var(--product-accent);padding:4px 8px;border:1px solid var(--product-line);border-radius:5px;background:var(--product-soft)}
#walk-section .walk-journal-message{margin:14px 0 4px;font-size:15px;line-height:1.7;font-weight:550;word-break:keep-all}
#walk-section .walk-journal-detail{margin:0;max-width:70ch;font-size:12px;line-height:1.85;color:var(--product-muted);word-break:keep-all}
#walk-section .walk-journal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 0;padding:18px 0;border-block:1px solid var(--product-line)}
#walk-section .walk-journal-metrics[hidden]{display:none}
#walk-section .walk-journal-metrics>div+div{border-left:1px solid var(--product-line);padding-left:16px}
#walk-section .walk-journal-metrics dt{font-size:11px;line-height:1.8;color:var(--product-muted)}
#walk-section .walk-journal-metrics dd{display:flex;align-items:baseline;gap:5px;margin:6px 0 0;font-variant-numeric:tabular-nums;min-width:0}
#walk-section .walk-journal-metrics strong{font-size:clamp(22px,2.5vw,30px);font-weight:600;letter-spacing:-.035em;overflow-wrap:anywhere}
#walk-section .walk-journal-metrics dd span{font-size:11px;color:var(--product-muted)}
#walk-section .walk-journal-week{margin-top:22px;padding-top:18px;border-top:1px solid var(--product-line)}
#walk-section .walk-journal-metrics:not([hidden])+.walk-journal-week{border-top:0;padding-top:0}
#walk-section .walk-journal-week-label{font-size:11px;line-height:1.8;color:var(--product-muted)}
#walk-section .walk-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;max-width:600px;margin-top:14px}
#walk-section .walk-week-day{display:grid;grid-template-rows:52px auto;gap:8px;min-width:0;text-align:center}
#walk-section .walk-week-track{display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--product-line)}
#walk-section .walk-week-bar{display:block;width:100%;max-width:30px;border-radius:3px 3px 0 0;background:var(--product-accent)}
#walk-section .walk-week-label{font-size:11px;line-height:1.7;color:var(--product-muted)}
#walk-section .walk-week-day.is-today .walk-week-label{font-weight:650;color:var(--product-ink);text-decoration:underline;text-underline-offset:4px}
#walk-section .walk-journal-week-summary{margin:14px 0 0;font-size:12px;line-height:1.8;color:var(--product-muted);font-variant-numeric:tabular-nums}
@media(max-width:600px){#walk-section .walk-journal{padding:20px 18px}#walk-section .walk-journal-metrics{gap:10px}#walk-section .walk-journal-metrics>div+div{padding-left:10px}#walk-section .walk-week-strip{gap:10px}}

/* Course discovery: one panel, clear filter groups, a readable result count. */
#list-section .course-search-panel{border:1px solid var(--product-line);border-radius:14px;background:var(--product-surface);box-shadow:none;overflow:visible}
#list-section .course-search-panel>.map-toolbar{padding:22px;gap:12px;border-color:var(--product-line)}
#list-section :is(#course-search-input,#course-sort-select){box-sizing:border-box;min-height:48px;border:1px solid var(--product-line)!important;border-radius:11px!important;background:var(--product-surface)!important;color:var(--product-ink);font-size:14px!important;box-shadow:none}
#list-section #course-search-input{padding:12px 15px!important}
#list-section .course-filter-label{font-size:11px;color:var(--product-muted);font-weight:600}
#list-section :is(.chip,.walk-time-options button){border:1px solid var(--product-line);border-radius:var(--control-radius);min-height:var(--control-height);font-family:inherit;font-size:12px;font-weight:500;line-height:1.6;background:var(--product-surface);color:var(--product-ink);padding:9px 13px;box-shadow:none}
#list-section :is(.chip.active,.walk-time-options button[aria-pressed=true]){background:var(--product-soft);border-color:#9fb5a3;color:var(--product-ink);font-weight:650;box-shadow:inset 0 0 0 1px #9fb5a3}
#list-section .course-time-filter{border:0;border-top:1px solid var(--product-line);border-radius:0;background:transparent;margin:0;padding:20px 22px}
#list-section .course-time-heading h3{font-family:inherit;font-size:13px;font-weight:600}
#list-section .course-time-help summary{font-size:11px;min-height:var(--control-height);color:var(--product-muted)}
#list-section :is(.comfort-filter,#course-advanced-filters){border:0;border-top:1px solid var(--product-line);border-radius:0;background:none;margin:0;padding:0 22px}
#list-section :is(.comfort-filter,#course-advanced-filters)>summary{padding:17px 0;min-height:54px;box-sizing:border-box;font-size:13px;line-height:1.6;font-weight:550;color:var(--product-ink)}
#list-section .explore-results-head{gap:16px;align-items:center;margin:28px 0 18px;padding-bottom:16px;border-bottom:1px solid var(--product-line)}
#list-section #course-count-label{font-size:13px;color:var(--product-muted)!important;font-variant-numeric:tabular-nums}
#list-section .course-card{transition:border-color 180ms,box-shadow 180ms,transform 180ms}
#list-section .course-card h3{font-family:inherit;font-weight:650;letter-spacing:-.035em}
#list-section .explore-view-button{border-radius:10px;min-height:44px;background:var(--product-surface);border-color:var(--product-line);color:var(--product-ink);font-size:12px}
#list-section .compare-panel{border-radius:12px;background:var(--product-surface);border-color:var(--product-line);padding:20px;box-shadow:none}
#list-section .compare-panel h3{font:650 20px/1.5 var(--experience-font,system-ui);letter-spacing:-.03em}
#list-section .compare-panel p{font-size:12px;line-height:1.85;color:var(--product-muted)}
#list-section .compare-panel :is(th,td){border-color:var(--product-line);font-family:inherit;font-size:12px;line-height:1.85;padding:14px 12px}
#list-section .compare-panel th{background:var(--product-soft);color:var(--product-ink)}
#list-section .compare-panel button{font-size:12px;border-radius:8px}

/* Recording and proposal forms use real grouped fields, not decorative cards. */
:is(#walk-section,#register-section) .register-panel{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:28px}
:is(#walk-section,#register-section) .form-card{padding:30px;border-radius:14px;border:1px solid var(--product-line);background:var(--product-surface);box-shadow:none;min-width:0}
.ui-panel-heading{margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid var(--product-line)}
.ui-panel-heading h3{font-family:inherit;font-size:19px;font-weight:650;letter-spacing:-.03em;color:var(--product-ink);margin:0 0 6px}
.ui-panel-heading p{font-size:12px;line-height:1.8;color:var(--product-muted);margin:0}
.ui-map-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.ui-map-heading h3{font-family:inherit;font-size:14px;font-weight:600;margin:0;color:var(--product-ink)}
.ui-map-heading span{font-size:11px;color:var(--product-muted)}
:is(#walk-section,#register-section) .mini-map-wrap{padding:22px;background:var(--product-surface);border:1px solid var(--product-line);border-radius:14px;top:96px;min-width:0}
:is(#walk-section,#register-section) :is(#mini-map,#walk-map){border-radius:12px!important;border:1px solid var(--product-line)!important;box-shadow:none!important;background:var(--product-soft)}
:is(#walk-section,#register-section) .mini-map-note{border:0;background:transparent;padding:12px 0 0;margin:0;font-size:12px;color:var(--product-muted);line-height:1.8}
#walk-section .walk-record-notice{border:0;border-radius:12px;background:var(--product-soft);padding:18px;margin-bottom:22px}
#walk-section .walk-record-notice strong{font-family:inherit;font-size:13px;font-weight:650;color:var(--product-ink)}
#walk-section .walk-record-notice p{font-size:12px;line-height:1.85;margin:7px 0;color:var(--product-muted)}
#walk-section .walk-record-notice details summary{font-size:11px;min-height:var(--control-height);cursor:pointer;color:var(--product-ink);padding-top:6px}
#walk-section .walk-consent-card{margin:0 0 20px;padding:18px;border:1px solid var(--product-line)!important;border-radius:12px;background:var(--product-surface)!important;min-width:0}
#walk-section .walk-consent-card legend{font-size:12px;font-weight:600;padding:0 7px;margin-left:-7px;color:var(--product-muted)}
#walk-section .walk-consent-option label{display:flex;gap:11px;align-items:flex-start;font-size:13px;line-height:1.8;font-weight:550;margin:0}
#walk-section .walk-consent-option label{min-height:44px;cursor:pointer}
@media(max-width:600px){#walk-section{padding-top:28px}}
#walk-section #walk-presence-options .walk-consent-option{padding-bottom:16px}
#walk-section #mood-card{margin-top:28px}
#walk-section .walk-consent-option input{width:19px;height:19px;flex:none;margin:3px 0 0;accent-color:var(--product-accent)}
#walk-section .walk-consent-option p{margin:7px 0 0 30px;font-size:11px;line-height:1.85;color:var(--product-muted)}
#walk-section .walk-consent-option+.walk-consent-option{border-top:1px solid var(--product-line);padding-top:16px;margin-top:16px}
#walk-section :is(#walk-start-btn,#walk-save-btn){background:var(--product-accent);border-radius:12px;min-height:52px;margin-top:14px;font-size:14px;font-weight:600;box-shadow:none}
#walk-section #walk-local-status{font-size:12px;line-height:1.8;color:var(--product-muted)}
#walk-section :is(.walk-prep,.walk-options){margin-top:18px;border:1px solid var(--product-line);border-radius:12px;background:var(--product-surface);padding:0 16px}
#walk-section :is(.walk-prep,.walk-options)>summary{padding:16px 0;font-size:12px;line-height:1.8;cursor:pointer}
#walk-section :is(.walk-prep,.walk-options)>summary span{font-size:11px;color:var(--product-muted)}
#walk-section .walk-metrics{gap:0;border:1px solid var(--product-line);border-radius:14px;background:var(--product-surface);overflow:hidden;grid-template-columns:repeat(2,minmax(0,1fr))}
#walk-section .walk-metrics>div{padding:22px 16px;border:0;border-bottom:1px solid var(--product-line);background:none;border-radius:0}
#walk-section .walk-metrics>div:nth-child(odd){border-right:1px solid var(--product-line)}
#walk-section .walk-metrics strong{font:600 clamp(26px,3vw,34px)/1.2 var(--experience-font,system-ui);font-variant-numeric:tabular-nums;letter-spacing:-.045em;color:var(--product-ink)}
#walk-section .walk-metrics span{font-size:11px;color:var(--product-muted);line-height:1.6}
#walk-section .walk-controls{gap:10px}
#walk-section .walk-controls>*{min-height:48px;border-radius:11px;font-size:13px}
#register-section .type-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--product-line);border-radius:12px;background:var(--product-soft);margin:0 0 28px}
#register-section .type-btn{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:48px;border:0;border-radius:9px;background:transparent;color:var(--product-muted);padding:9px 7px;font:550 12px/1.5 var(--experience-font,system-ui);box-shadow:none}
#register-section .type-btn.active{background:var(--product-surface);color:var(--product-ink);box-shadow:0 1px 5px #213d3312}
#register-section .type-btn .ui-icon{width:17px;height:17px;flex:none}
.ui-form-group{min-width:0;margin:0;padding:0 0 24px;border:0}
.ui-form-group+.ui-form-group{border-top:1px solid var(--product-line);padding-top:24px}
.ui-form-group>legend{float:left;box-sizing:border-box;width:100%;padding:0;margin:0 0 4px;font-size:13px;font-weight:650;line-height:1.8;color:var(--product-ink)}
.ui-form-group>legend+*{clear:both}
.ui-form-group>legend span{font-size:10px;font-weight:500;margin-right:10px;color:var(--product-muted);font-variant-numeric:tabular-nums}
#register-section .form-card label{font-size:12px;font-weight:550;color:var(--product-ink);margin:18px 0 8px}
#register-section .form-card :is(input:not([type=checkbox]):not([type=file]),textarea,select){box-sizing:border-box;min-height:48px;padding:12px 14px;border:1px solid var(--product-line);border-radius:10px;background:var(--product-surface);font-size:14px;line-height:1.7;color:var(--product-ink)}
#register-section .form-card textarea{min-height:110px}
#register-section .form-card :is(input,textarea)::placeholder{color:#819084}
#register-section .tag-check{font-family:inherit;min-height:var(--control-height);border-radius:var(--control-radius);padding:9px 12px;background:var(--product-surface);border:1px solid var(--product-line);color:var(--product-muted);font-size:12px;line-height:1.6;font-weight:500}
#register-section .tag-check.on{background:var(--product-soft);border-color:#9fb5a3;color:var(--product-ink);box-shadow:inset 0 0 0 1px #9fb5a3}
#register-section .draw-mode-toggle{padding:4px;gap:4px;background:var(--product-soft);border:1px solid var(--product-line);border-radius:11px}
#register-section .draw-mode-btn{font-family:inherit;min-height:44px;padding:10px;font-size:12px;font-weight:500;color:var(--product-muted);border:0;background:transparent;border-radius:8px}
#register-section .draw-mode-btn.active{background:var(--product-surface);color:var(--product-ink);box-shadow:0 1px 5px #213d3312}
#register-section #pin-btn{border:1px solid var(--product-line);background:var(--product-soft);color:var(--product-ink);padding:14px;font-size:12px;font-weight:550;line-height:1.85;border-radius:10px}
#register-section #reg-submit-btn{min-height:52px;margin-top:0;background:var(--product-accent);color:var(--product-surface);font-size:14px;font-weight:600;border-radius:12px;box-shadow:none}
.ui-review-note{margin-top:16px;font-size:11px;line-height:1.85;color:var(--product-muted)}
.ui-review-note summary{cursor:pointer;min-height:36px;color:var(--product-ink)}

/* General-user dialogs and records; never the home sections or admin workspace. */
:is(#modal-overlay,#profile-overlay,#nick-overlay,#points-shop-overlay,#support-dialog,#notif-overlay){font-family:var(--experience-font,"Noto Sans KR",system-ui,sans-serif);letter-spacing:-.02em}
#modal-overlay .modal{background:var(--product-surface);border:1px solid var(--product-line);border-radius:16px}
#modal-overlay .modal-body{padding:28px}
#modal-overlay #modal-title{font-family:inherit;font-size:clamp(25px,3vw,32px);font-weight:650;line-height:1.45;letter-spacing:-.035em}
#modal-overlay #modal-address{font-size:13px;line-height:1.8;color:var(--product-muted)}
#modal-overlay :is(.course-detail-summary,.course-evidence,.course-visit-notes,.course-route-guide){border-radius:10px;box-shadow:none}
#modal-overlay :is(h4,.detail-map-heading){font-family:inherit;font-weight:600;line-height:1.65}
#modal-overlay .course-detail-actions{gap:8px;flex-wrap:wrap}
#modal-overlay .course-detail-actions a{min-height:44px;font-size:13px;line-height:1.7}
#nick-overlay #login-modal-title{font-size:27px;font-weight:650;line-height:1.45;letter-spacing:-.035em}
#nick-overlay #login-modal-description{font-size:13px;line-height:1.9}
#profile-overlay :is(.my-setting,.review-item){box-shadow:none}
#profile-overlay .walk-calendar{border:1px solid var(--product-line);border-radius:12px;padding:18px;background:var(--product-surface)}
#profile-overlay .walk-calendar :is(button,select){font-family:inherit;min-height:44px;font-size:13px}
#profile-overlay .review-item{border-radius:10px;border-color:var(--product-line);padding:16px;background:var(--product-surface)}
#support-dialog{border:1px solid var(--product-line);border-radius:16px;background:var(--product-surface);color:var(--product-ink);max-width:480px}
#support-dialog :is(h2,h3){font-family:inherit;font-size:23px;letter-spacing:-.035em;line-height:1.5}
#support-dialog p{font-size:13px;line-height:1.9;color:var(--product-muted)}
@media(max-width:600px){#modal-overlay .modal-body{padding:22px 18px}#modal-overlay .modal{border-radius:14px}#modal-overlay #modal-title{font-size:25px}}

/* Account pages keep identity and settings on light, readable surfaces. */
#profile-overlay .account-modal{max-width:500px;border-radius:22px;background:var(--product-surface);box-shadow:0 24px 80px #122a2333}
#profile-overlay .auth-dialog-header{background:var(--product-surface);font-size:12px;color:var(--product-muted);padding:10px 22px;border-color:var(--product-line)}
#profile-overlay .modal-body{padding:24px}
#profile-overlay #my-dog-profile-card{background:var(--product-soft)!important;color:var(--product-ink);border:1px solid var(--product-line);border-radius:16px!important;padding:22px!important;gap:16px}
#profile-overlay #my-dog-avatar-big{width:62px!important;height:62px!important;border:1px solid #cbd8cb!important;background-color:#e5ede0!important;font-size:28px!important}
#profile-overlay .my-profile-eyebrow{font-size:10px;color:var(--product-muted);margin-bottom:7px}
#profile-overlay #my-dog-name-big{font-size:23px!important;line-height:1.45;color:var(--product-ink)!important;letter-spacing:-.04em}
#profile-overlay #my-dog-sub-big{color:var(--product-muted)!important;font-size:12px!important}
#profile-overlay .my-profile-stats{margin-top:8px!important;padding-top:20px!important;border-color:var(--product-line)!important}
#profile-overlay .my-profile-stats>div+div{border-color:var(--product-line)}
#profile-overlay .my-profile-stats [id^=my-stat-]{color:var(--product-ink)!important;font-size:23px!important}
#profile-overlay .my-profile-stats>div>div:last-child{color:var(--product-muted)!important;font-size:10px!important;margin-top:6px}
#profile-overlay #my-points-shop-btn{background:var(--product-surface)!important;border:1px solid var(--product-line);color:var(--product-ink)!important;border-radius:11px;min-height:50px}
#profile-overlay #my-admin-btn{border:1px solid var(--product-accent);background:var(--product-accent)!important;border-radius:11px;min-height:50px}
#profile-overlay .my-setting summary{min-height:64px;font-size:13px;font-weight:550;padding:10px 2px}
#profile-overlay .my-setting-hint{font-size:11px;color:var(--product-muted)}
#profile-overlay .my-setting-content{border:1px solid var(--product-line);background:var(--product-soft);padding:8px 16px 18px;margin-bottom:16px}
#profile-overlay .my-setting-content :is(input:not([type=file]),select){box-sizing:border-box;min-height:46px;background:var(--product-surface);border:1px solid var(--product-line);border-radius:10px;color:var(--product-ink)}
#profile-overlay .my-setting-content .submit-btn{min-height:46px;background:var(--product-accent);color:var(--product-surface);border-radius:10px;font-weight:600;font-size:13px;box-shadow:none}
#profile-overlay #withdraw-btn{color:#a34e3d}
#nick-overlay .auth-modal{background:var(--product-surface)!important;color:var(--product-ink)!important;border:1px solid var(--product-line);backdrop-filter:none;box-shadow:0 24px 80px #122a2333}
#nick-overlay .auth-dialog-header{background:var(--product-surface);color:var(--product-ink)}
#nick-overlay :is(#login-modal-title,.auth-welcome,.auth-consent,.auth-email summary,.auth-email label,.auth-divider,.auth-browse,.auth-existing,.auth-privacy-link){color:var(--product-ink)!important}
#nick-overlay :is(#login-modal-description,#email-login-note,.auth-consent em,.auth-existing){color:var(--product-muted)!important}
#nick-overlay :is(.auth-consent,.auth-privacy-details) a{color:var(--product-ink)!important}
#nick-overlay .auth-brand-mark{border:1px solid var(--product-line);background:var(--product-soft);box-shadow:none}
#nick-overlay .auth-email summary,#nick-overlay #email-login-input{background:var(--product-surface)!important;border-color:var(--product-line)!important;color:var(--product-ink)!important}
#nick-overlay .auth-divider::before,#nick-overlay .auth-divider::after{background:var(--product-line)}
#nick-overlay .auth-privacy-details dl{background:var(--product-soft);border-color:var(--product-line)}
#nick-overlay .auth-privacy-details :is(dt,dd,p,summary){color:var(--product-ink)!important}
#nick-overlay .auth-email-button{background:var(--product-accent);color:var(--product-surface);border:1px solid var(--product-accent)}

@media(hover:hover) and (pointer:fine){#list-section .course-card:hover{border-color:#b9c9ba;box-shadow:0 7px 24px #213d3309;transform:translateY(-2px)}#register-section :is(.tag-check,.type-btn):hover{border-color:#a9bdad}#profile-overlay .my-setting summary:hover{color:var(--product-accent)}}
@media(max-width:760px){
 :is(#map-section,#list-section,#walk-section,#register-section)>.wrap>.section-head{margin:0 0 22px;padding-bottom:20px;gap:16px}
 :is(#map-section,#list-section,#walk-section,#register-section)>.wrap>.section-head h2{font-size:28px;margin:7px 0 10px;line-height:1.4}
 :is(#map-section,#list-section,#walk-section,#register-section) .section-head p{font-size:13px!important;line-height:1.85!important}
 #map-section .map-search-toolbar{padding:18px 16px 14px!important}
 #map-section #place-search-input{font-size:16px!important}
 #map-section #view-filter-group .chip{font-size:12px;min-height:46px}
 #map-section .map-results-bridge{padding:11px 16px!important}
 #list-section .course-search-panel>.map-toolbar{padding:16px;gap:10px}
 #list-section :is(#course-search-input,#course-sort-select){font-size:16px!important;min-width:0!important}
 #list-section #course-search-input{flex-basis:100%}
 #list-section #course-sort-select{flex:1 1 auto}
 #list-section :is(.comfort-filter,#course-advanced-filters){padding-left:16px;padding-right:16px}
 #list-section .course-time-filter{padding:18px 16px}
 #list-section .walk-time-options{gap:7px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #list-section .walk-time-options button{min-height:44px;font-size:12px}
 #list-section .explore-results-head{margin-top:24px;gap:10px}
 :is(#walk-section,#register-section) .register-panel{grid-template-columns:minmax(0,1fr);gap:20px}
 :is(#walk-section,#register-section) .form-card{padding:22px 18px;order:0}
 :is(#walk-section,#register-section) .mini-map-wrap{position:static;order:1;padding:18px}
 :is(#walk-section,#register-section) :is(#mini-map,#walk-map){height:340px!important;scroll-margin-top:110px}
 .ui-panel-heading{padding-bottom:17px;margin-bottom:20px}.ui-panel-heading h3{font-size:18px}
 #walk-section .walk-record-notice{padding:16px}
 #walk-section .walk-consent-card{padding:16px}
 #walk-section .walk-consent-option label{font-size:12px}
 #walk-section .walk-consent-option p{font-size:11px;margin-left:0}
 #register-section .form-card :is(input:not([type=checkbox]):not([type=file]),textarea,select){font-size:16px}
 #register-section .type-btn{font-size:11px;gap:5px;padding-left:4px;padding-right:4px}
 #register-section .type-btn .ui-icon{width:15px;height:15px}
 #register-section .tag-check{min-height:44px;font-size:12px}
 #profile-overlay .modal-body{padding:20px}#profile-overlay .my-setting-content input{font-size:16px}
}
@media(max-width:370px){:is(#map-section,#list-section,#walk-section,#register-section)>.wrap>.section-head h2{font-size:25px}#register-section .type-btn .ui-icon{display:none}#profile-overlay .modal-body{padding:16px}#profile-overlay #my-dog-profile-card{padding:18px!important;gap:12px}#profile-overlay .my-profile-stats [id^=my-stat-]{font-size:21px!important}}
@media(prefers-reduced-motion:no-preference){
 :is(#profile-overlay,#admin-overlay).show>.modal{animation:product-dialog-arrive 260ms var(--product-ease)}
 @keyframes product-dialog-arrive{from{opacity:.55;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){:is(#profile-overlay,#nick-overlay,#admin-overlay)>.modal{animation:none!important}#list-section .course-card,#bottom-tab-bar button,header .nav-links a{transition:none!important}}

#walk-section .walk-metrics>div:nth-last-child(-n+2){border-bottom:0}

#register-section{background:var(--paper)}
#walk-section .walk-consent-option label{font-size:14px}
#walk-section .walk-consent-option p{font-size:12px}
#nick-overlay #nick-close,#profile-overlay #profile-close{color:var(--product-ink)!important;background:var(--product-soft)!important;border:1px solid var(--product-line);border-radius:50%;font:400 24px/1 system-ui;width:44px;height:44px;flex:none}
#nick-overlay #nick-close:hover,#profile-overlay #profile-close:hover{background:var(--product-line)!important}
@media(max-width:980px){:is(#walk-section,#register-section) .register-panel{grid-template-columns:minmax(0,1fr)}:is(#walk-section,#register-section) .mini-map-wrap{position:static;order:1}:is(#walk-section,#register-section) .form-card{order:0}}
#map-section #professional-map-status{font-size:12px}

#points-shop-overlay{overflow:hidden;align-items:center;padding:16px 12px max(16px,env(safe-area-inset-bottom));box-sizing:border-box}
#points-shop-overlay .modal{width:100%;max-width:500px;max-height:calc(100dvh - 32px - env(safe-area-inset-bottom));margin:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:64px 20px;background:var(--product-surface);color:var(--product-ink);font-family:var(--experience-font,system-ui)}
#points-shop-overlay .auth-dialog-header{background:var(--product-surface);color:var(--product-ink);border-color:var(--product-line)}
#points-shop-title{font:650 15px/1.6 var(--experience-font,system-ui);margin:0}
#points-shop-overlay #points-shop-close{position:static;color:var(--product-ink);background:var(--product-soft);border:1px solid var(--product-line);border-radius:50%;font:400 24px/1 system-ui;width:44px;height:44px;flex:none}
#points-shop-overlay :is(button,select,a):focus-visible{outline:2px solid var(--product-accent);outline-offset:3px}

/* Functional controls: quiet press feedback, independent of the home and admin. */
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) :is(button,.submit-btn){transition:background-color 160ms ease,border-color 160ms ease,transform 160ms ease}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) button:active:not(:disabled):not([aria-busy=true]){transform:translateY(1px)}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) button:disabled{cursor:default}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) [aria-busy=true]{cursor:progress}
@media(hover:none){#list-section .course-card:active{border-color:#9fb5a3}}
@media(prefers-reduced-motion:reduce){:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) :is(button,.submit-btn){transition:none}}

/* Support is a small contact surface, separate from update history dialogs. */
/* Shared action dimensions are scoped to functional screens; hero stays intact. */
.course-card-actions{display:flex;flex-direction:column;gap:var(--control-gap);margin-top:auto;padding-top:var(--space-field);width:100%;flex-shrink:0}
.course-card-actions :is(.course-detail-cta,.course-compare-toggle){display:flex;align-items:center;justify-content:space-between;gap:var(--control-gap);box-sizing:border-box;margin:0;min-height:var(--control-height);padding:10px 14px;font-size:var(--control-type);font-weight:var(--control-weight);line-height:var(--control-leading);border-radius:var(--control-radius);white-space:normal;overflow-wrap:anywhere}
.course-card-actions .course-detail-cta{min-height:var(--control-height-primary)}
:is(#list-section,#map-recommend-grid) .course-card .fav-btn{min-width:var(--control-height);min-height:var(--control-height)}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) :is(button,.submit-btn){box-sizing:border-box}
:is(#walk-section,#register-section,#profile-overlay,#nick-overlay) :is(.btn,.submit-btn){display:inline-flex;align-items:center;justify-content:center;gap:var(--control-gap);min-height:var(--control-height);line-height:var(--control-leading)}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) button:disabled{opacity:.55}
:is(#list-section,#walk-section,#register-section,#profile-overlay,#nick-overlay) button[aria-busy=true]{cursor:progress}
#support-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--product-line);border-radius:18px;background:var(--product-surface);color:var(--product-ink);font-family:var(--experience-font,'Noto Sans KR',system-ui,sans-serif);box-shadow:0 16px 56px #17332926;overscroll-behavior:contain}
#support-dialog::backdrop{background:#182f294d;backdrop-filter:blur(4px)}
#support-dialog[open]{animation:support-arrive 180ms ease-out both}
#support-dialog .support-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 0}
#support-dialog .support-eyebrow{display:block;font-size:11px;font-weight:500;line-height:1.7;color:var(--product-muted);margin-bottom:8px}
#support-dialog h2{font-family:inherit;font-size:25px;font-weight:600;line-height:1.45;letter-spacing:-.04em;margin:0}
#support-dialog #support-close{display:grid;place-items:center;flex:none;width:44px;height:44px;margin:-7px -8px 0 0;border:0;border-radius:8px;background:transparent;color:var(--product-muted);font:400 26px/1 system-ui;cursor:pointer}
#support-dialog .support-body{padding:0 24px 24px}
#support-dialog #support-description{margin:12px 0 24px;font-size:13px;line-height:1.8;color:var(--product-muted);word-break:keep-all}
#support-dialog .support-channels{display:grid;border-top:1px solid var(--product-line)}
#support-dialog .support-channel{display:flex;align-items:center;gap:14px;min-height:96px;padding:18px 4px;border-bottom:1px solid var(--product-line);color:var(--product-ink);text-decoration:none;transition:background-color 160ms ease,transform 160ms ease;box-sizing:border-box}
#support-dialog .support-channel-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:10px;background:var(--product-soft);color:var(--product-accent)}
#support-dialog .support-channel-icon svg{width:23px;height:23px}
#support-dialog .support-chat-icon{background:#faeab1;color:#51441e}
#support-dialog .support-channel-copy{display:grid;gap:5px;min-width:0}
#support-dialog .support-channel-copy strong{font-size:15px;font-weight:600;line-height:1.6}
#support-dialog .support-channel-copy>span{font-size:12px;line-height:1.7;color:var(--product-muted);overflow-wrap:anywhere}
#support-dialog .support-arrow{margin-left:auto;flex:none;font-size:19px;color:var(--product-muted)}
#support-dialog .support-note{margin-top:22px}
#support-dialog .support-note strong{font-size:12px;font-weight:600;line-height:1.7}
#support-dialog .support-note p{font-size:12px;line-height:1.85;color:var(--product-muted);margin:7px 0 0;word-break:keep-all}
#support-dialog :is(a,button):focus-visible{outline:2px solid var(--product-accent);outline-offset:3px}
#support-dialog .support-channel:active{transform:translateY(1px)}
@media(hover:hover){#support-dialog :is(.support-channel,#support-close):hover{background:var(--product-soft)}}
@media(max-width:600px){#support-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-bottom))}#support-dialog .support-header{padding:22px 20px 0}#support-dialog .support-body{padding:0 20px max(22px,env(safe-area-inset-bottom))}#support-dialog h2{font-size:23px}#support-dialog .support-channel{gap:12px}}
@keyframes support-arrive{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#support-dialog[open]{animation:none}#support-dialog .support-channel{transition:none}}

/* Login opens as one calm composition; no delayed or separately animated controls. */
@media(prefers-reduced-motion:no-preference){
 #nick-overlay.show{animation:auth-scrim-reveal 220ms ease-out both}
 #nick-overlay.show>.auth-modal{animation:auth-panel-reveal 300ms cubic-bezier(.16,1,.3,1) both;transform-origin:50% 45%}
 @keyframes auth-scrim-reveal{from{opacity:0}to{opacity:1}}
 @keyframes auth-panel-reveal{from{opacity:0;transform:translate3d(0,14px,0) scale(.985)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
}
@media(prefers-reduced-motion:reduce){#nick-overlay.show{animation:none}#nick-overlay.show>.auth-modal{animation:none!important}}

:is(#map-section,#list-section,#walk-section,#register-section) summary{box-sizing:border-box;min-height:var(--control-height)}

#map-section .map-panel>details.map-legend-details>summary{min-height:var(--control-height)}

/* Course dialog actions align with the functional-screen control sizes. */
#modal-overlay #modal-close{box-sizing:border-box;width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height);display:grid;place-items:center;padding:0;line-height:1}
#modal-overlay :is(#detail-favorite,#course-prepare-walk,#share-course-btn){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--control-gap);min-height:var(--control-height-primary);line-height:var(--control-leading);white-space:normal}

/* Signed-in header action: retain its visibility rules and visual treatment. */
header #points-badge{box-sizing:border-box;min-height:var(--control-height)}
