@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@900&family=Noto+Sans+KR:wght@300;400;500;700&display=swap";:root{--point-color: #FF5F6D;--text-primary: #212529;--text-secondary: #6c757d;--bg-primary: #f8f9fa;--bg-card: #ffffff;--border-color: #e9ecef;--shadow-color: rgba(0, 0, 0, .05);--shadow-hover-color: rgba(0, 0, 0, .1);--scroll-btn-bg: rgba(255, 255, 255, .8)}body.dark-mode{--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--bg-primary: #121212;--bg-card: #1e1e1e;--border-color: #333333;--shadow-color: rgba(255, 255, 255, .05);--shadow-hover-color: rgba(255, 255, 255, .1);--scroll-btn-bg: rgba(40, 40, 40, .8)}body{font-family:Noto Sans KR,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);margin:0;padding:20px;display:flex;justify-content:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color .3s,color .3s}.container{width:100%;max-width:1200px;opacity:0;transform:translateY(20px);animation:fadeInSlideUp .8s ease-out forwards}#main-content{position:relative}.logo-banner{background-color:var(--bg-card);height:150px;border-radius:20px;box-shadow:0 8px 32px 0 var(--shadow-color);margin-bottom:20px;position:relative;display:flex;justify-content:center;align-items:center;text-align:center;transition:height .3s ease}.logo-text h1{font-family:Montserrat,Noto Sans KR,sans-serif;font-size:3em;font-weight:900;color:var(--text-primary);margin:0;letter-spacing:1px;transition:font-size .3s ease}#dashboard{display:flex;flex-direction:column;gap:20px;opacity:0;transform:translateY(20px);animation:fadeInSlideUp .8s ease-out .2s forwards}.weather-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px;width:100%}.forecast-column{display:flex;flex-direction:column;gap:20px;min-width:0}#loader .loader-text{font-size:1.2em;color:var(--text-secondary);text-align:center}.hidden{display:none!important}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:24px;padding:25px;box-shadow:0 4px 12px var(--shadow-color);transition:all .3s ease-in-out;margin-bottom:0}.card:hover{box-shadow:0 6px 16px var(--shadow-hover-color);transform:translateY(-4px)}.card-title{margin:0 0 15px;font-size:1.2em;font-weight:700}.dark-mode-toggle{position:absolute;top:15px;left:15px;z-index:100}.dark-mode-toggle input[type=checkbox]{display:none}.dark-mode-toggle label{display:block;width:52px;height:28px;background-color:#0003;border-radius:14px;cursor:pointer;position:relative;transition:background-color .3s ease}.dark-mode-toggle label:after{content:"";display:block;width:22px;height:22px;border-radius:50%;background-color:#fff;position:absolute;top:3px;left:3px;transition:transform .3s ease,filter .3s ease;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23f59e0b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>');background-repeat:no-repeat;background-position:center;background-size:16px 16px}.dark-mode-toggle input[type=checkbox]:checked+label{background-color:#60a5fa}.dark-mode-toggle input[type=checkbox]:checked+label:after{transform:translate(24px);filter:invert(1)}.briefing-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px;flex-wrap:wrap}.risk-gauge{padding:8px 15px;border-radius:12px;font-weight:700;font-size:1.1em;flex-shrink:0}.risk-tags{font-size:.9em;text-align:right;font-weight:500;flex-grow:1}.risk-recommendation{font-size:1.1em;font-weight:500;margin:0 0 15px;line-height:1.6}.risk-details-toggle{cursor:pointer;font-size:.9em;color:var(--text-secondary);margin-top:20px;text-align:center;font-weight:500}.risk-breakdown{display:none;margin-top:15px;padding:20px;background-color:#00000008;border-radius:15px}#strategy-briefing-card{border-width:2px}.risk-gauge{background-color:var(--border-color);color:var(--text-primary)}.risk-tags{color:var(--text-secondary)}#strategy-briefing-card{border-color:var(--border-color)}.level-interest .risk-gauge{background:linear-gradient(45deg,#3b82f6,#60a5fa);color:#fff}.level-interest .risk-tags{color:#1e3a8a}#strategy-briefing-card.level-interest{border-color:#60a5fa}.level-caution .risk-gauge{background:linear-gradient(45deg,#f59e0b,#fbbf24);color:#fff}.level-caution .risk-tags{color:#b45309}#strategy-briefing-card.level-caution{border-color:#fbbf24}.level-warning .risk-gauge{background:linear-gradient(45deg,#f97316,#fb923c);color:#fff}.level-warning .risk-tags{color:#9a3412}#strategy-briefing-card.level-warning{border-color:#fb923c}.level-severe .risk-gauge{background:linear-gradient(45deg,#ef4444,#f87171);color:#fff}.level-severe .risk-tags{color:#991b1b}#strategy-briefing-card.level-severe{border-color:#f87171;animation:pulse 1.5s infinite}.current-weather{display:flex;flex-direction:column}.current-weather.sunny,.current-weather.cloudy,.current-weather.snowy{color:#212529}.current-weather.sunny .sub-info,.current-weather.cloudy .sub-info,.current-weather.snowy .sub-info,.current-weather.sunny .details-info,.current-weather.cloudy .details-info,.current-weather.snowy .details-info,.current-weather.sunny .date-display,.current-weather.cloudy .date-display,.current-weather.snowy .date-display{color:#495057}.current-weather.sunny{background:linear-gradient(135deg,#81d4fa,#b3e5fc)}.current-weather.cloudy{background:linear-gradient(135deg,#bdbdbd,#e0e0e0)}.current-weather.overcast{background:linear-gradient(135deg,#90a4ae,#b0bec5);color:#fff}.current-weather.rainy{background:linear-gradient(135deg,#78909c,#90a4ae);color:#fff}.current-weather.snowy{background:linear-gradient(135deg,#e0e0e0,#eee)}.current-weather.overcast .sub-info,.current-weather.overcast .details-info,.current-weather.overcast .date-display,.current-weather.rainy .sub-info,.current-weather.rainy .details-info,.current-weather.rainy .date-display{color:#eee}.header-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.current-weather .location{font-size:1.5em;font-weight:500}.date-display{font-size:1.1em;font-weight:500}.current-weather .temperature{font-size:6.5em;font-weight:300;margin:5px 0;text-shadow:0 2px 8px rgba(0,0,0,.1)}.current-weather .sky-status{font-size:1.2em;margin-bottom:10px;font-weight:500}.current-weather .sub-info{font-weight:400;font-size:1.05em;margin-bottom:20px;opacity:.9}.details-info{display:flex;justify-content:space-around;padding-top:20px;border-top:1px solid rgba(0,0,0,.08);margin-top:auto}.details-info div{text-align:center}.details-info span{display:flex;align-items:center;justify-content:center;gap:6px}.details-info span:first-child{font-weight:400;margin-bottom:8px;font-size:.9em;opacity:.9}.details-info span:last-child{font-size:1.2em;font-weight:500}.weather-icon{width:1.1em;height:1.1em;vertical-align:middle}.hourly-forecast{overflow:hidden;position:relative;padding:25px 0}#hourly-container{display:flex;align-items:center;gap:15px;padding:0 25px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}#hourly-container::-webkit-scrollbar{display:none}.hourly-item{text-align:center;flex-shrink:0;padding:12px 10px;border:2px solid transparent;border-radius:18px;transition:all .3s ease;opacity:0;transform:translateY(10px);animation:fadeInSlideUpItem .5s ease-out forwards}.hourly-item .time{font-size:.9em;font-weight:400}.hourly-item .icon{font-size:2.2em;margin:8px 0;color:var(--text-primary)}.hourly-item .temp{font-size:1.2em;font-weight:500}.hourly-item.current-hour{border-color:var(--point-color);background-color:#fffaf0cc;transform:scale(1.05) translateY(0);box-shadow:0 2px 8px #0000001a}body.dark-mode .hourly-item.current-hour{background-color:transparent}.date-divider{flex-shrink:0;width:2px;height:60px;background-color:var(--point-color);margin:0 15px;border-radius:1px}.scroll-btn{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;background-color:var(--scroll-btn-bg);border:1px solid var(--border-color);border-radius:50%;font-size:20px;color:var(--text-secondary);cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;transition:all .3s ease}#scroll-left-btn{left:5px}#scroll-right-btn{right:5px}.scroll-btn:hover{background-color:var(--bg-card);box-shadow:0 2px 8px var(--shadow-hover-color);transform:translateY(-50%) scale(1.1)}.snow-alert-card{grid-column:1 / -1}.snow-alert-card h2{color:var(--point-color)}.snow-alert-card ul{list-style-type:none;padding:0}.snow-alert-card li{padding:15px 0;border-bottom:1px solid var(--border-color)}.snow-alert-card li:last-child{border-bottom:none}.alert-time{font-weight:700;font-size:1.1em;margin-bottom:8px}.alert-details{font-size:1em;color:var(--text-secondary);margin-bottom:10px}.alert-details span{margin-right:15px}.alert-warning{font-size:.95em;color:#b91c1c;background-color:#fee2e2;padding:10px;border-radius:8px}body.dark-mode .alert-warning{background-color:#450a0a;color:#fecaca}.action-guide-list{margin-top:15px;display:flex;flex-direction:column;gap:15px}.action-item{display:flex;align-items:center;gap:20px;background-color:var(--bg-primary);padding:15px;border-radius:16px;border:1px solid var(--border-color)}.action-item img{width:120px;height:120px;object-fit:cover;border-radius:12px;flex-shrink:0}.action-item p{margin:0;line-height:1.6;font-size:1em;font-weight:500}#action-guide-content h4{margin:12px 0 5px;font-size:1.05em;color:var(--point-color)}#weekly-forecast-card{flex-grow:1;display:flex;flex-direction:column}#weekly-container{display:flex;flex-direction:column;gap:10px;flex-grow:1;justify-content:center}.weekly-item{display:grid;grid-template-columns:80px 1fr 60px;align-items:center;gap:15px;padding:8px 0;border-bottom:1px solid var(--border-color)}.weekly-item:last-child{border-bottom:none}.weekly-item .day{font-weight:500;font-size:1.05em}.weekly-item .icon{font-size:1.8em;text-align:center}.weekly-item .temps{text-align:right;font-size:1.05em}.weekly-item .temps .max{color:var(--point-color);font-weight:500}.weekly-item .temps .min{color:var(--text-secondary)}@keyframes fadeInSlideUp{to{opacity:1;transform:translateY(0)}}@keyframes fadeInSlideUpItem{to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{box-shadow:0 0 #ef444480}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}@media(max-width:920px){.weather-grid{grid-template-columns:1fr}}#traffic-info-card{grid-column:1 / -1;position:relative}#incident-container{margin-bottom:20px;display:flex;flex-direction:column;gap:10px}.incident-item{padding:15px;border:1px solid #f87171;background-color:#fee2e2;border-radius:12px}body.dark-mode .incident-item{background-color:#450a0a;border-color:#ef4444}.incident-item .incident-header{display:flex;align-items:center;gap:8px;font-size:1.1em;font-weight:700}.incident-item .incident-type-tag{background-color:#ef4444;color:#fff;padding:4px 10px;border-radius:8px;font-size:.9em;flex-shrink:0}.incident-item .incident-details{margin-top:8px;padding-left:5px;color:var(--text-secondary)}#traffic-content ul{list-style-type:none;padding:0;margin:0}#traffic-content li{display:flex;justify-content:space-between;align-items:center;padding:12px 5px;border-bottom:1px solid var(--border-color);gap:15px}#traffic-content li:last-child{border-bottom:none}.road-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-grow:1}.road-status .road-name{font-weight:500}.road-status .status-tag{padding:4px 10px;border-radius:12px;color:#fff;font-size:.85em;font-weight:500}.road-status .status-smooth{background-color:#16a34a}.road-status .status-slow{background-color:#f59e0b}.road-status .status-jam{background-color:#dc2626}.cctv-btn{padding:6px 12px;border:1px solid var(--border-color);background-color:transparent;color:var(--text-primary);border-radius:8px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.cctv-btn:hover{background-color:var(--point-color);color:#fff;border-color:var(--point-color)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:none;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:var(--bg-card);padding:20px;border-radius:15px;width:90%;max-width:800px;position:relative}.modal-close{position:absolute;top:10px;right:20px;font-size:2.5em;font-weight:700;color:var(--text-secondary);cursor:pointer}#cctv-player-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}#cctv-player-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.partner-logo{position:absolute;bottom:20px;right:25px;height:40px;width:auto;opacity:.8;transition:all .3s ease}.partner-logo:hover{opacity:1}@media(max-width:600px){.logo-banner{height:120px}.logo-text h1{font-size:2.2em}.partner-logo{height:35px;bottom:15px;right:20px}}.map-control-btn{position:absolute;top:75px;right:35px;z-index:5;width:40px;height:40px;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;box-shadow:0 2px 6px #0000001a;display:flex;justify-content:center;align-items:center;padding:0;transition:background-color .2s ease}.map-control-btn:hover{background-color:var(--bg-primary)}.map-control-btn svg{fill:var(--text-secondary)}
