/* Page layout corrections 1.0.0 */
.page-container{min-width:0}
.page-container form{max-width:100%;min-width:0}
.page-container input,.page-container select,.page-container textarea{max-width:100%;box-sizing:border-box}
.page-container img,.page-container video{max-width:100%;height:auto}
.page-container button,.page-container input,.page-container select{font:inherit;line-height:1.4}
.ulsan-api-page nav a,.ulsan-api-page button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding: 8px 12px;border:1px solid var(--border);border-radius:10px;color:var(--text-primary);background:var(--surface)}
.ulsan-api-page nav a[aria-current=page]{color:white;background:var(--accent);border-color:var(--accent)}
.ulsan-api-page form input,.ulsan-api-page form select{min-height:40px;padding: 8px 10px;border:1px solid var(--border);border-radius:10px;color:var(--text-primary);background:var(--surface)}
.ulsan-api-page form select{width:min(100%,480px)}
.ulsan-api-page dl{margin:0}.ulsan-api-page dt,.ulsan-api-page dd{line-height:1.5;font-size:14px}
.api-link-disabled{color:var(--text-muted,#7b8794);cursor:default}
html[data-home-view=tile] .shortcut-copy strong{font-size:clamp(11px,1.05vw,17px)}
html[data-home-view=tile] .shortcut-item{gap: 8px;padding:12px}
html[data-home-view=tile] .shortcut-item:hover{padding:12px}
html[data-home-view=tile] .shortcut-icon{width:36px;height:36px;flex-basis:36px}
@media(max-width:640px){.ulsan-api-page article{padding:12px!important}.ulsan-api-page dl>div{grid-template-columns:100px minmax(0,1fr)!important;gap:8px!important}.ulsan-api-page form label{width:100%}.ulsan-api-page form label input{width:100%}}

/* Compact page spacing 1.0.0 */
.page-container{padding-top:12px;padding-bottom:12px}
.page-heading{margin-bottom:12px}.page-heading h1,.ulsan-api-page>h1{margin-top:0;margin-bottom:10px}
.page-source-footer{margin-top:16px;padding-top:12px;padding-bottom:16px}
.empty-state{min-height:120px;padding:20px 16px}
.forecast-area{margin-top:20px}.weather-forecast-section{margin-top:16px}
.page-container table th,.page-container table td{padding-top:8px;padding-bottom:8px}
.ulsan-api-page article h2{margin-top:0;margin-bottom:8px;font-size:18px;line-height:1.4}
.ulsan-api-page article>dl>div{padding-top:5px!important;padding-bottom:5px!important}
html[data-home-view=tile] .shortcut-item{min-height:68px}

/* Unified page design 1.0.0 */
:root{--radius-control:10px;--radius-card:16px;--radius-layer:20px;--type-page-title:clamp(26px,3vw,34px);--type-section-title:20px;--type-body:15px;--type-body-small:14px;--type-assistive:12px}
.page-container{font-size:15px;line-height:1.5}
.page-container h1{font-size:var(--type-page-title);line-height:1.25;letter-spacing:-.035em;margin-top:0;margin-bottom:12px}
.page-container h2{font-size:var(--type-section-title);line-height:1.4;letter-spacing:-.025em}
.page-container h3{font-size:17px;line-height:1.4}
.page-container :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){font-family:inherit;font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 12px;box-sizing:border-box}
.page-container :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select){min-height:40px}
.page-container :is(button[type=submit],a.button,.primary-button,.search-button){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:1px solid var(--accent);border-radius:10px;padding:8px 14px;font:600 14px/1.5 inherit;color:#fff;background:var(--accent);text-decoration:none;cursor:pointer}
.page-container button:disabled,.page-container [aria-disabled=true]{cursor:default;opacity:.55}
.page-container :is(.section-heading,.weather-section-heading,.lumi-section-heading){align-items:center;gap:12px}
.page-container table{font-size:14px;line-height:1.5;border-collapse:collapse}
.page-container th{font-weight:600;color:var(--text-secondary);background:var(--surface-soft)}
.page-container td,.page-container th{vertical-align:middle;border-bottom:1px solid var(--border);padding-top:8px;padding-bottom:8px}
.page-container :is(.notice,.empty-state,.no-search-result){border-radius:16px}
.page-container :is(.page-source-footer,.updated-text,.search-result-status){font-size:12px;line-height:1.5;color:var(--text-tertiary)}
.ulsan-api-page nav{gap:8px!important;margin:10px 0!important}
.ulsan-api-page nav a{font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--surface);border:1px solid var(--border)}
.ulsan-api-page nav a[aria-current=page]{color:#fff;background:var(--accent);border-color:var(--accent)}
@media(max-width:640px){.page-container{font-size:14px}.page-container h2{font-size:18px}.page-container :is(.section-heading,.weather-section-heading,.lumi-section-heading){flex-wrap:wrap}}
.page-container .airport-compact-card,.page-container .airport-main-card,.page-container .api-status-card,.page-container .beach-compare-card,.page-container .beach-current-card,.page-container .cits-card,.page-container .course-card,.page-container .cx-card,.page-container .dam-card,.page-container .facility-card,.page-container .forest-card,.page-container .hydrogen-card,.page-container .incident-card,.page-container .lumi-card,.page-container .lumi-moon-card,.page-container .lumi-sun-card,.page-container .naver-news-card,.page-container .observation-station-card,.page-container .parking-availability-card,.page-container .parking-stat-card,.page-container .population-card,.page-container .public-api-card,.page-container .public-api-image-card,.page-container .public-api-text-card,.page-container .public-card,.page-container .representative-weather-card,.page-container .station-card,.page-container .twilight-card{border-radius:16px;border-color:var(--border)}

/* UlsanNow design system 2.0.0 */
:root{--page-background:#f5f6f8;--surface:#fff;--surface-soft:#f1f3f6;--surface-hover:#edf3fb;--surface-raised:#fff;--text-primary:#202632;--text-secondary:#596575;--text-tertiary:#778393;--border:#e8ecf1;--border-strong:#d6dde6;--accent:#2878ed;--accent-soft:#eaf2ff;--header-background:rgba(255,255,255,.96);--radius-card:18px;--radius-control:12px;--radius-layer:22px;--shadow-floated:0 12px 40px rgba(32,48,72,.12)}
html[data-theme=dark]{--page-background:#101215;--surface:#1b1e23;--surface-soft:#252930;--surface-hover:#2a3337;--surface-raised:#24282f;--text-primary:#f2f4f7;--text-secondary:#bdc5d0;--text-tertiary:#929dad;--border:#30353e;--border-strong:#444c58;--accent:#00d9ab;--accent-soft:#123b34;--header-background:rgba(16,18,21,.96);--shadow-floated:0 12px 40px rgba(0,0,0,.38)}
body{letter-spacing:-.015em}
.top-header{border-bottom:1px solid var(--border);box-shadow:0 1px 0 rgba(20,40,65,.02)}
.top-header-inner{height:60px;width:min(1200px,calc(100% - 40px))}
.page-container{width:min(1200px,calc(100% - 40px));padding-top:20px;padding-bottom:12px}
.page-container h1{font-size:clamp(25px,2.8vw,32px);font-weight:750;line-height:1.3;letter-spacing:-.04em;margin-bottom:14px}
.page-container h2{font-size:19px;font-weight:700;letter-spacing:-.025em}
.home-services{padding-top:0;width:100%}.home-services-heading{margin-bottom:14px}
.home-view-toggle{padding:3px;border:1px solid var(--border);background:var(--surface);border-radius:12px}
.home-view-button{border-radius:9px;font-size:13px}
.home-view-button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);box-shadow:none}
html[data-home-view=tile] .shortcut-list{gap:10px}
html[data-home-view=tile] .shortcut-item{min-height:76px;padding:12px;gap:10px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 2px 6px rgba(24,44,72,.025);transition:border-color .15s,background .15s}
html[data-home-view=tile] .shortcut-item:hover{padding:12px;background:var(--surface-hover);border-color:var(--border-strong)}
html[data-home-view=tile] .shortcut-copy strong{font-size:clamp(11px,1.04vw,15px);font-weight:650;letter-spacing:-.04em}
html[data-home-view=tile] .shortcut-icon{width:36px;height:36px;flex-basis:36px;border-radius:12px}
.shortcut-list{background:var(--surface);border:1px solid var(--border)}
html[data-home-view=tile] .shortcut-list{border:0}
.api-status-row{margin-top:14px;padding:12px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border);font-size:14px}
.page-container :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea){border-radius:12px;background:var(--surface);border-color:var(--border-strong);transition:border-color .15s}
.page-container :is(input,select,textarea):focus{border-color:var(--accent)}
.page-container :is(button[type=submit],a.button,.primary-button,.search-button){font-family:inherit;font-size:14px;font-weight:650;line-height:1.5;border-radius:12px;color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:none}
html[data-theme=dark] .page-container :is(button[type=submit],a.button,.primary-button,.search-button){color:#071e18}
.ulsan-api-page nav a{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:12px}
.ulsan-api-page nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.ulsan-api-page article{background:var(--surface);border-radius:18px!important;padding:14px!important;border-color:var(--border)!important}
.page-container table{background:var(--surface);font-size:14px}
.page-container th{background:var(--surface-soft);color:var(--text-secondary);font-size:12px;letter-spacing:0}
.page-container td{color:var(--text-primary)}
.page-container tbody tr:hover{background:var(--surface-hover)}
.page-container :is(.notice,.empty-state,.no-search-result){background:var(--surface);border:1px solid var(--border);border-radius:18px}
.site-footer{width:min(1200px,calc(100% - 40px));margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-tertiary)}
.page-container :is(.cx-controls,.cx-search,.air-controls){border-radius:18px;background:var(--surface);border-color:var(--border)}
@media(max-width:640px){.top-header-inner,.page-container,.site-footer{width:calc(100% - 24px)}.top-header-inner{height:54px}.page-container{padding-top:14px}.page-container h1{font-size:26px}html[data-home-view=tile] .shortcut-copy strong{font-size:15px}html[data-home-view=tile] .shortcut-item{min-height:68px}}
@media(prefers-reduced-motion:reduce){.shortcut-item,input,select,textarea{transition:none!important}}
.page-container .airport-compact-card,.page-container .airport-main-card,.page-container .api-status-card,.page-container .beach-compare-card,.page-container .beach-current-card,.page-container .cits-card,.page-container .course-card,.page-container .cx-card,.page-container .dam-card,.page-container .facility-card,.page-container .forest-card,.page-container .hydrogen-card,.page-container .incident-card,.page-container .lumi-card,.page-container .lumi-moon-card,.page-container .lumi-sun-card,.page-container .naver-news-card,.page-container .observation-station-card,.page-container .parking-availability-card,.page-container .parking-stat-card,.page-container .population-card,.page-container .public-api-card,.page-container .public-api-image-card,.page-container .public-api-text-card,.page-container .public-card,.page-container .representative-weather-card,.page-container .station-card,.page-container .twilight-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 2px 6px rgba(24,44,72,.025)}

.region-location{display:flex;align-items:center;gap:10px;font-size:13px;margin:0 0 12px;color:var(--text-secondary)}.region-location a{color:var(--accent)}
.region-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.region-summary-card{display:block;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:18px}.region-summary-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--text-secondary)}.region-summary-value{display:block;font-size:32px;line-height:1.25;letter-spacing:-.04em;margin:8px 0}.region-summary-detail{font-size:13px;line-height:1.5}.region-summary-card time{display:block;font-size:12px;color:var(--text-tertiary);margin-top:6px}.region-summary-card:hover{border-color:var(--accent)}.region-alerts{display:grid;gap:8px;margin-bottom:14px}.region-alerts>a{display:block;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.region-alert-heading{display:flex;align-items:center;gap:12px;font-size:13px}.region-alert-heading strong{color:var(--accent)}.region-alert-heading time{margin-left:auto;font-size:12px;color:var(--text-tertiary)}.region-alerts p{margin:6px 0 0;font-size:14px;line-height:1.5}@media(max-width:480px){.region-summary{gap:8px}.region-summary-card{padding:12px}.region-summary-value{font-size:28px}.region-alert-heading{flex-wrap:wrap;gap:6px}}

/* Purpose navigation and content-specific layouts 1.0.0 */
.purpose-nav{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.purpose-nav button{border:1px solid var(--border);border-radius:12px;min-height:40px;padding:8px 14px;background:var(--surface);color:var(--text-secondary);font:600 14px/1.5 inherit;cursor:pointer}.purpose-nav button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.api-tabs,.api-search,.api-actions,.api-meta,.api-pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}.api-meta{justify-content:space-between;font-size:12px;color:var(--text-tertiary)}.api-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.api-record{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:14px;min-width:0;overflow-wrap:anywhere}.api-record h2{margin:0 0 8px}.api-fields{margin:0}.api-field{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:5px 0;border-bottom:1px solid var(--border);font-size:14px;line-height:1.5}.api-field dt{color:var(--text-secondary)}.api-field dd{margin:0;white-space:pre-wrap}.api-actions a{color:var(--accent);font-size:13px}.api-record summary{color:var(--text-secondary);font-size:13px;cursor:pointer;min-height:32px;line-height:32px}.api-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:16px}.api-book-table{width:100%;min-width:600px}.api-book-table th,.api-book-table td{text-align:left;padding:8px 12px}.api-book-table details{max-width:520px}.api-empty{padding:16px;background:var(--surface);border-radius:16px}.api-record-image{width:100%;height:180px;object-fit:contain;background:var(--surface-soft);border-radius:12px;margin-bottom:8px}.api-record--detail{grid-column:1/-1}.api-date{font-size:13px;font-weight:600;color:var(--accent)}
@media(max-width:640px){.api-grid{grid-template-columns:minmax(0,1fr)}.api-search label{width:100%}.api-search label input{width:100%}.api-field{grid-template-columns:90px minmax(0,1fr)}}
