/* V9 · Night Signal. 기능과 데이터는 유지하고 화면과 상호작용을 확장합니다. */
:root{color-scheme:dark;--ink:#e9f3ff;--muted:#94a6bf;--blue:#76f4d4;--line:#25344b;--pink:#f888d5;--cyan:#76f4d4;--violet:#bba5ff}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{background:#080d18;color:var(--ink);background-image:radial-gradient(ellipse at 90% 3%,#27204466,transparent 35%),radial-gradient(ellipse at 2% 28%,#0e3c3d38,transparent 40%);font-family:system-ui,"Malgun Gothic",sans-serif}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(#7389b308 1px,transparent 1px),linear-gradient(90deg,#7389b308 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(#000,transparent 85%)}
.wrap{max-width:1280px;padding-inline:32px}
header{position:sticky;top:0;z-index:20;background:#0a101de8;backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.brand{min-height:76px;justify-content:space-between;gap:16px}
.brand-home{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none}
.mark{width:37px;height:37px;border:1px solid var(--cyan);color:var(--cyan);border-radius:9px;box-shadow:inset 0 0 18px #76f4d40c,0 0 18px #76f4d412;font-weight:800}
.brand-copy{display:flex;flex-direction:column;font-size:15px;letter-spacing:-.02em}.brand-copy small{font:9px/1.6 ui-monospace,monospace;letter-spacing:.24em;color:var(--muted)}
.header-meta{display:flex;gap:25px;align-items:center;font:11px ui-monospace,monospace;letter-spacing:.07em;color:var(--muted)}
.header-tag{color:var(--cyan);display:flex;align-items:center;gap:8px}.header-tag::before{content:"";width:5px;height:5px;background:var(--cyan);border-radius:50%;box-shadow:0 0 10px #76f4d499}
.heading{position:relative;min-height:270px;margin:38px 0 20px;align-items:center;gap:28px}.hero-copy{flex:1;position:relative;z-index:1}.eyebrow{font:11px ui-monospace,monospace;letter-spacing:.2em;color:var(--cyan);margin-bottom:18px;display:flex;gap:10px;align-items:center}.eyebrow::before{content:"";width:24px;height:1px;background:var(--cyan)}
h1{font-size:clamp(34px,4vw,56px);line-height:1.2;letter-spacing:-.065em;margin:0 0 18px;font-weight:800}h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 32px #76f4d42b}.heading .subtitle{font-size:15px;max-width:490px;line-height:1.9}.hero-actions{display:flex;gap:12px;align-items:center;margin-top:25px}.hero-link{color:var(--muted);font-size:13px;text-underline-offset:5px}.hero-link:hover{color:var(--pink)}
button,.map-link{position:relative;isolation:isolate;overflow:hidden;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;border:1px solid transparent;border-radius:8px;min-height:46px}
button{background:var(--cyan);color:#071a1b;font-weight:750;font-size:14px;padding:11px 17px}
button:not(:disabled):hover{background:#a3ffe9;box-shadow:0 0 25px #76f4d42b;transform:translateY(-2px)}button:not(:disabled):active,.map-link:active{transform:translateY(1px);box-shadow:none}
button:disabled{opacity:.42}.secondary{background:#131f30;color:#c4d2e6;border-color:#2b3d56}.secondary:not(:disabled):hover{background:#1c2f42;border-color:#76f4d480;color:var(--cyan)}
#load-button::before{content:"↻";display:inline-block;margin-right:8px;font-size:20px;line-height:1;vertical-align:-1px}#load-button:disabled::before{animation:spin 1.3s linear infinite}
.hero-radar{position:relative;flex:0 0 270px;aspect-ratio:1;align-self:center;display:grid;place-items:center;overflow:hidden;border:1px solid #76f4d419;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 41px,#76f4d413 42px 43px);margin-right:25px}
.hero-radar::before{content:"";position:absolute;inset:0;background:conic-gradient(from 0deg,transparent 260deg,#76f4d40d 300deg,#76f4d43a 359deg,transparent 360deg);animation:radar-turn 18s linear infinite;border-radius:50%}
.hero-radar::after{content:"";position:absolute;inset:45%;border:1px solid #f888d580;transform:rotate(45deg);box-shadow:0 0 25px #f888d530}
.radar-cross{position:absolute;inset:0;background:linear-gradient(transparent calc(50% - .5px),#76f4d419 50%,transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),#76f4d419 50%,transparent calc(50% + .5px))}
.radar-label{font:10px ui-monospace,monospace;letter-spacing:.3em;color:#79b4b9;position:absolute;bottom:33px}.radar-p{font:600 60px ui-monospace,monospace;color:#76f4d42b;position:relative;z-index:1}.radar-dot{position:absolute;width:6px;height:6px;background:var(--pink);border-radius:50%;box-shadow:0 0 14px #f888d5a0;top:29%;left:31%}.radar-dot.second{top:66%;left:72%;background:var(--cyan)}
.overview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:10px 0 18px}.overview-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:linear-gradient(120deg,#111b2a,#0d1522);border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}.overview-item::before{content:"";position:absolute;top:0;left:24px;width:35px;height:2px;background:var(--cyan)}.overview-item:nth-child(2)::before{background:var(--pink)}.overview-item:nth-child(3)::before{background:var(--violet)}.overview-label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:13px}.overview-label small{font:9px ui-monospace,monospace;letter-spacing:.16em;color:#6b809c}.overview-value{font:500 30px ui-monospace,monospace;letter-spacing:-.06em;color:var(--ink);font-variant-numeric:tabular-nums}.overview-value small{font-size:12px;margin-left:6px;color:var(--muted)}
.install-panel{margin-bottom:30px;gap:10px}.install-panel p{color:#7186a4;font-size:12px}
.chat-panel{position:relative;background:linear-gradient(115deg,#151d30,#101a29 65%,#151a2d);border:1px solid #3a3b5c;padding:28px;border-radius:14px;box-shadow:0 12px 60px #0000001c;margin-bottom:28px;overflow:hidden;scroll-margin-top:100px}
.chat-panel::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--pink),#bba5ff,transparent 90%)}.section-kicker{font:10px ui-monospace,monospace;letter-spacing:.2em;color:var(--pink);margin:0 0 10px}.chat-panel h2{font-size:23px;letter-spacing:-.04em;margin-bottom:8px}.chat-panel .subtitle{font-size:13px}.chat-panel #chat-config{font-size:12px;color:#ad9bcf;margin:13px 0}#chat-form>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
input,select,.chat-panel textarea{background:#090f1c;color:var(--ink);border:1px solid #2b3d56;border-radius:8px;transition:border-color .2s,box-shadow .2s;font-size:14px}
input::placeholder,textarea::placeholder{color:#657b99}input:hover,select:hover,.chat-panel textarea:hover{border-color:#58708e}input:focus,select:focus,.chat-panel textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #76f4d414;outline:none}.chat-panel textarea{min-height:96px;padding:17px;resize:vertical}.chat-panel textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px #bba5ff16}
.query-chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 15px}.query-chip{min-height:32px;font-size:11px;padding:5px 10px;background:#1a2234;border:1px solid #3a3b58;color:#beb0d7;border-radius:30px}.query-chip:not(:disabled):hover{background:#2b2545;border-color:#cf9bff80;color:#f2d9ff;box-shadow:none}
.ai-actions{max-width:none;grid-template-columns:minmax(0,1fr) 58px;width:100%}#chat-send{background:#bba5ff;color:#17102e}#chat-send:not(:disabled):hover{background:#d6c7ff;box-shadow:0 0 24px #bba5ff35}#voice-button{background:#211d38;color:#d9caff;border-color:#53426f}#voice-button.listening{background:#632542;color:#ffe4f5;border-color:var(--pink);animation:mic-glow 1.4s ease-in-out infinite}
.voice-help,.chat-help{font-size:11px;line-height:1.8;color:#8092af;margin:10px 0 0}.voice-help{display:none}#chat-status{font-size:13px;color:var(--violet);margin-bottom:0;line-height:1.8}#chat-status:empty{display:none}.chat-answer{background:#0b1423;border:1px solid #2d3d57;border-left:2px solid var(--violet);color:var(--ink);padding:20px;margin-top:20px}.chat-answer strong,.chat-answer h3,.chat-answer h4,.chat-answer h5,.chat-answer h6{color:#dcceff}.chat-answer code,.chat-answer pre{background:#1c2540}.answer-table-scroll{background:#0b1423;border-color:var(--line)}.chat-answer th{background:#18233a;color:#d9caff}.chat-answer td{border-color:var(--line)}.chat-answer tbody tr:nth-child(even){background:#111b2d}.chat-answer hr{border-color:var(--line)}
.filters{background:#0f1827;border-color:var(--line);padding:24px;border-radius:12px;gap:14px;scroll-margin-top:100px}label{font-size:12px;color:#a8bad4;margin-bottom:8px;font-weight:600}.field.search{flex-basis:310px}.filter-help{font-size:11px;line-height:1.8;color:#6d839f}.filters .filter-help{margin-top:3px}.filters #reset-button{min-width:100px}.sort-shortcuts{margin-top:22px}.sort-shortcuts button{font-size:12px;min-height:38px;padding:7px 13px}.sort-shortcuts button[aria-pressed="true"]{background:#163b3a;color:var(--cyan);border-color:#4ac5a780;box-shadow:inset 0 0 12px #76f4d40a}#data-status{margin-top:14px}#location-status{font-size:13px;color:var(--cyan)}.distance-badge{background:#132c32;border:1px solid #76f4d429;color:#94f6df;font-size:11px;padding:5px 9px}
.summary{margin-top:24px;margin-bottom:16px}#result{font-size:14px}#fetched-at{font:11px ui-monospace,monospace;color:#7f93af}
#parking-list,.parking-list{gap:18px;align-items:start}.parking-item{background:linear-gradient(150deg,#121e30,#0e1726);border-color:#27374e;border-radius:12px;padding:22px;position:relative;overflow:hidden;transition:border-color .25s,box-shadow .25s,transform .25s;animation:card-arrive .45s cubic-bezier(.2,.7,.3,1) backwards}.parking-item:nth-child(3n+2){animation-delay:.05s}.parking-item:nth-child(3n+3){animation-delay:.1s}.parking-item:nth-child(n+25){animation:none}.parking-item::before{content:"";position:absolute;top:0;left:0;bottom:0;width:2px;background:linear-gradient(transparent,var(--cyan),transparent);opacity:0;transition:opacity .25s}.parking-item:hover{border-color:#487b7b;box-shadow:0 12px 35px #0004,0 0 25px #76f4d408;transform:translateY(-4px)}.parking-item:hover::before{opacity:1}.parking-item h2,.chat-results .card-heading h4{font-size:17px;letter-spacing:-.035em;line-height:1.6}.district-badge{background:#192c40;border:1px solid #2b435d;color:#9bb4d6;font-size:10px;padding:2px 7px}.availability{color:var(--cyan);margin:20px 0 5px}.availability strong{font:500 45px/1.2 ui-monospace,monospace;letter-spacing:-.07em;text-shadow:0 0 25px #76f4d423}.availability span{font-size:12px;color:#96b8b6}.availability.unknown strong,.availability.stale strong{font:600 20px/1.5 system-ui,sans-serif;letter-spacing:-.04em;color:#90a2bc;text-shadow:none}.availability.full{color:var(--pink)}.availability.full span{color:#edb0d6}.capacity{font-size:11px;color:#738ba8;margin-bottom:18px}.details{border-color:#25364c;font-size:12px;padding-top:12px}.details>div{grid-template-columns:94px 1fr;gap:8px;margin:9px 0}.details dt{color:#778eab}.details dd{color:#c9d6e7}.updated{font-size:10px;color:#6c829f;border-color:#25364c;padding-top:12px;margin-top:18px}.address-note{font-size:10px;line-height:1.8;color:#7e93b0;background:#0a1321;border:1px solid #1e3046}.map-link{background:#163839;border:1px solid #458f8270;color:#9ff8e3;font-size:12px;padding:12px 10px;margin-bottom:14px}.map-link::after{content:"↗";margin-left:8px}.map-link:hover{background:#214b48;border-color:var(--cyan);box-shadow:0 0 20px #76f4d416;transform:translateY(-2px)}details{border-color:#25364c;font-size:11px}summary{color:#8da6cc}pre{background:#080f1c;color:#93a9c8}.match-note{font-size:11px}.chat-results{margin-top:24px}.chat-results>h3{font-size:16px}.chat-results>p{font-size:12px}
.warning{background:#362815;border-color:#74572b;color:#f3cb8e;font-size:12px}.empty{background:#0e1827;color:#9bafca;border-color:#374b66}.empty:not([hidden]){animation:card-arrive .3s ease both}aside{font-size:11px;border-color:var(--line);color:#627b99;line-height:1.9;margin-bottom:40px}
#parking-list[aria-busy="true"]:not(:empty){opacity:.48;pointer-events:none}#parking-list[aria-busy="true"]:empty{display:block;min-height:230px;border:1px solid var(--line);border-radius:12px;position:relative;background:linear-gradient(105deg,#111b2b 20%,#1b3040 40%,#111b2b 60%);background-size:250% 100%;animation:loading-sweep 2s ease-in-out infinite}#parking-list[aria-busy="true"]:empty::after{content:"주차정보를 불러오는 중입니다";position:absolute;left:24px;top:28px;color:#6f8da8;font-size:13px}
.ui-ripple{position:absolute;border-radius:50%;pointer-events:none;background:currentColor;opacity:0;z-index:-1;animation:ripple-out .55s ease-out}.card-heading+.availability{scroll-margin-top:100px}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes radar-turn{to{transform:rotate(360deg)}}@keyframes card-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-sweep{0%{background-position:100% 0}100%{background-position:-100% 0}}@keyframes ripple-out{0%{opacity:.22;transform:scale(0)}100%{opacity:0;transform:scale(1)}}@keyframes mic-glow{50%{box-shadow:0 0 0 5px #f888d51a,0 0 25px #f888d530}}
@media(max-width:950px){.hero-radar{flex-basis:210px;margin-right:0}.heading{min-height:250px}.overview-item{padding:18px}.overview-value{font-size:25px}.header-meta{gap:15px}.filters .field.search{flex-basis:100%}}
@media(max-width:600px){.wrap{padding-inline:18px}.brand{min-height:65px}.brand-copy{font-size:13px}.brand-copy small{font-size:8px}.header-meta time{display:none}.header-tag{font-size:9px}.heading{min-height:0;margin:30px 0 24px;display:block}.hero-radar{position:absolute;width:175px;right:-10px;top:5px;opacity:.3;pointer-events:none;z-index:0}.hero-copy{max-width:100%}.eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:17px}h1{font-size:37px}.heading .subtitle{font-size:13px;max-width:270px}.hero-actions{margin-top:22px;gap:16px}.heading button{width:auto;font-size:12px}.hero-link{font-size:12px}.overview{gap:7px;margin-bottom:14px}.overview-item{display:block;padding:14px 12px}.overview-item::before{left:12px;width:22px}.overview-label{font-size:10px}.overview-label small{font-size:7px;letter-spacing:.08em}.overview-value{font-size:25px;display:block;margin-top:10px}.overview-value small{font-size:10px;margin-left:3px}.install-panel{margin-bottom:23px}.install-panel p{font-size:10px}.chat-panel{padding:20px 17px;margin-bottom:20px}.chat-panel h2{font-size:20px}.chat-panel .subtitle{font-size:12px}.section-kicker{font-size:9px}.query-chip{font-size:10px;padding:5px 9px}.chat-panel textarea{font-size:13px;min-height:92px;padding:13px}.ai-actions{grid-template-columns:minmax(0,1fr) 58px}.chat-help{font-size:10px}.filters{padding:17px;gap:13px}.field.search{flex-basis:100%}.filters .field{flex-basis:calc(50% - 12px)}.filters .secondary{width:auto}.filters #reset-button{flex:1}.summary{margin-top:22px;flex-direction:row;align-items:center;gap:8px}#result{font-size:12px}#fetched-at{font-size:10px}.parking-item{padding:20px}.details{font-size:12px}.parking-item h2{font-size:17px}.chat-answer{padding:16px}#data-status{font-size:10px}.sort-shortcuts{gap:7px}.sort-shortcuts button{font-size:11px}.filter-help{font-size:10px}.chat-results .parking-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.parking-item{opacity:1;transform:none}.ui-ripple{display:none}}
