:root{--bg:#eef3f9;--surface:#fff;--surface-soft:#f7fafd;--ink:#10263c;--ink-soft:#4d6378;--line:#d9e3ee;--line-strong:#c3d2e2;--brand:#0b5cab;--brand-deep:#073f78;--sky:#2f8fd8;--accent:#e98a3c;--ok:#167052;--bad:#b42318;--code-bg:#0d2033;--code-ink:#dce9f6;--radius:18px;--radius-sm:12px;--shadow:0 12px 34px #102a4314;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);font-family:var(--sans);background:radial-gradient(900px 520px at 8% -12%, #d9ebfb 0, transparent 62%), radial-gradient(760px 440px at 102% -6%, #e3f4ee 0, transparent 56%), var(--bg);min-height:100vh;margin:0;font-size:15px;line-height:1.55}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-.025em;font-size:clamp(1.55rem,3vw,2.15rem);font-weight:750;line-height:1.1}h2{letter-spacing:-.02em;font-size:clamp(1.3rem,2.2vw,1.6rem);line-height:1.2}h3{letter-spacing:-.01em;font-size:1.05rem;line-height:1.3}h4{font-size:.95rem}a{color:var(--brand)}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:2px;outline:3px solid #2f8fd873}.shell{width:min(1180px,100%);margin:0 auto;padding:28px 24px 36px}.masthead{justify-content:space-between;align-items:flex-start;gap:20px;padding:6px 2px 22px;display:flex}.brand{align-items:flex-start;gap:16px;display:flex}.brand-mark{background:linear-gradient(145deg,#0b4f8a,#1b93c9);border-radius:18px;flex:none;place-items:center;width:58px;height:58px;font-size:30px;display:grid;box-shadow:0 10px 24px #0b4f8a47}.kicker,.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-size:.7rem;font-weight:750}.current-card .eyebrow{color:#ffffffb8}.brand-sub{color:var(--ink-soft);max-width:62ch;margin-top:6px}.masthead-pills{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:6px;display:flex}.pill{border:1px solid var(--line);letter-spacing:.02em;color:var(--ink-soft);white-space:nowrap;background:#ffffffb3;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.7rem;font-weight:650;display:inline-flex}.pill-ok{color:var(--ok);background:#edf9f3;border-color:#b9dfcf}.pill-bad{color:var(--bad);background:#fdf1f0;border-color:#f1c4bf}.toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px;display:flex}.field{gap:5px;min-width:210px;display:grid}.field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding-left:2px;font-size:.7rem;font-weight:750}.select{appearance:none;border:1px solid var(--line-strong);background:linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%) calc(100% - 16px) 18px / 5px 5px no-repeat, linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%) calc(100% - 11px) 18px / 5px 5px no-repeat, var(--surface);border-radius:11px;min-height:42px;padding:8px 34px 8px 12px;font-weight:600}.btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:8px 14px;font-size:.88rem;font-weight:650;transition:border-color .12s,background .12s,transform .12s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand-deep);background:#f4f9fe}.btn:active:not(:disabled){transform:translateY(1px)}.btn-small{border-radius:9px;min-height:32px;padding:4px 10px;font-size:.78rem}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}.btn-ghost{background:0 0}.btn.is-copied{color:var(--ok);background:#edf9f3;border-color:#9ed3bd}.segmented{border:1px solid var(--line-strong);background:var(--surface-soft);border-radius:11px;min-height:42px;padding:3px;display:inline-flex}.segmented button{min-width:46px;color:var(--ink-soft);background:0 0;border:0;border-radius:8px;font-size:.85rem;font-weight:700}.segmented button.is-active{background:var(--surface);color:var(--brand-deep);box-shadow:0 1px 5px #102a4324}.status-line{color:var(--ink-soft);align-items:center;gap:7px;margin-left:auto;padding:0 4px 10px;font-size:.8rem;display:flex}.status-dot{background:var(--line-strong);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.is-live{background:#1a9b6c;box-shadow:0 0 0 4px #1a9b6c24}.status-dot.is-warn{background:var(--accent);box-shadow:0 0 0 4px #e98a3c29}.status-dot.is-loading{background:var(--sky);animation:1.1s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #2f8fd859}50%{box-shadow:0 0 0 6px #2f8fd800}}.banner{border-radius:var(--radius-sm);border:1px solid;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;padding:11px 14px;font-size:.86rem;display:flex}.banner-info{color:#0a4a78;background:#eaf5fe;border-color:#c3e0f6}.banner-warn{color:#6b3a08;background:#fff6e9;border-color:#f3d6ac}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin:20px 0 18px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-soft);white-space:nowrap;background:0 0;border:0;padding:10px 14px 12px;font-size:.9rem;font-weight:650;position:relative}.tab:after{content:"";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.tab:hover{color:var(--ink)}.tab.is-active{color:var(--brand-deep)}.tab.is-active:after{background:var(--brand)}.main{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.main>*{min-width:0}.code,.source-code{max-width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.card-head h3{margin-top:2px}.muted{color:var(--ink-soft);font-size:.84rem}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-soft);text-align:center;padding:18px;font-size:.88rem}.weather-top{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;display:grid}.current-card{color:#fff;background:radial-gradient(460px 240px at 92% -12%,#ffffff4d,#0000 62%),radial-gradient(360px 220px at 0 110%,#05264280,#0000 60%),linear-gradient(135deg,#0a4676 0%,#0e6fa9 58%,#1b93c9 100%);border-radius:22px;padding:24px;position:relative;overflow:hidden;box-shadow:0 20px 44px #093e6942}.current-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.current-head h2{margin:3px 0 2px;font-size:clamp(1.35rem,2.4vw,1.8rem)}.current-meta{color:#ffffffb8;font-size:.8rem}.weather-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff24;border:1px solid #ffffff38;border-radius:50%;flex:none;place-items:center;width:82px;height:82px;font-size:44px;line-height:1;display:grid}.current-body{flex-wrap:wrap;align-items:baseline;gap:18px;margin:18px 0 4px;display:flex}.temp-block{align-items:flex-start;line-height:1;display:flex}.temp{letter-spacing:-.06em;font-size:clamp(4rem,9vw,5.7rem);font-weight:760}.unit{color:#ffffffd1;margin-top:8px;margin-left:2px;font-size:1.5rem;font-weight:650}.condition{font-size:1.18rem;font-weight:700}.feels{color:#ffffffc2;font-size:.88rem}.metrics{border-top:1px solid #ffffff2e;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 0;padding:14px 0 0;display:grid}.metrics>div{border-left:1px solid #ffffff29;min-width:0;padding-left:12px}.metrics>div:first-child{border-left:0;padding-left:0}.metrics dt{letter-spacing:.09em;text-transform:uppercase;color:#ffffffa8;font-size:.68rem}.metrics dd{margin:2px 0 0;font-size:1.18rem;font-weight:700}.metrics small{color:#ffffffa8;font-size:.7rem;display:block}.card-foot{color:#ffffffa3;margin-top:16px;font-size:.72rem}.request-card{flex-direction:column;gap:10px;display:flex}.url-box{border:1px solid var(--line);color:#17405f;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f7fc;border-radius:10px;max-height:132px;margin:0;padding:11px 12px;font-size:.72rem;line-height:1.5;overflow:auto}.request-facts{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding-top:8px;display:grid}.request-facts dt{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);font-size:.66rem}.request-facts dd{margin:1px 0 0;font-size:.85rem;font-weight:700}.forecast-section{gap:12px;display:grid}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.section-head.compact{align-items:flex-end}.section-head h2,.section-head h3{margin-top:3px}.section-head .muted{max-width:56ch;margin-top:5px}.forecast-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.day-card{border:1px solid var(--line);background:var(--surface);border-radius:15px;gap:3px;padding:12px 11px;transition:transform .14s,box-shadow .14s;display:grid;box-shadow:0 4px 14px #102a430d}.day-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #102a431a}.day-card.is-today{background:linear-gradient(#f2faff,#fff 70%);border-color:#a9d3f1}.day-top{justify-content:space-between;align-items:center;gap:4px;min-height:17px;display:flex}.day-name{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:750}.day-date{color:var(--ink-soft);font-size:.68rem}.today-pill{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);background:#e5f3fe;border-radius:999px;padding:1px 6px;font-size:.58rem;font-weight:750}.day-icon{margin-top:2px;font-size:26px;line-height:1.15}.day-label{color:var(--ink-soft);min-height:2.1em;font-size:.7rem;line-height:1.25}.day-temps{align-items:baseline;gap:5px;display:flex}.day-temps strong{font-size:1.02rem}.day-temps span{color:var(--ink-soft);font-size:.8rem}.day-meta{color:var(--ink-soft);border-top:1px solid var(--line);justify-content:space-between;gap:4px;margin-top:2px;padding-top:5px;font-size:.66rem;display:flex}.raw-card{padding:0}.raw-card summary,.code-card summary{cursor:pointer;justify-content:flex-start;align-items:center;gap:14px;padding:14px 18px;font-size:.88rem;font-weight:650;list-style:none;display:flex}.raw-card summary .muted,.code-card summary .muted{margin-left:auto}.raw-card summary::-webkit-details-marker{display:none}.code-card summary::-webkit-details-marker{display:none}.raw-card summary:before,.code-card summary:before{content:"▸";color:var(--brand);margin-right:2px}.raw-card[open] summary:before,.code-card[open] summary:before{content:"▾"}.raw-json{max-height:380px;margin:0 14px 14px}.code{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);tab-size:2;border-radius:12px;margin:0;padding:14px;font-size:.73rem;line-height:1.55;overflow:auto}.raw-json{border:1px solid #1f3a54;border-radius:12px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.stat{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:1px;padding:13px 15px;display:grid;box-shadow:0 4px 14px #102a430a}.stat span{font-family:var(--mono);color:var(--ink-soft);font-size:.7rem}.stat strong{letter-spacing:-.03em;font-size:1.7rem;line-height:1.15}.stat small{color:var(--ink-soft);font-size:.68rem}.stat-accent{background:#f0f8fe;border-color:#b7d9f2}.schema-code{max-height:300px;margin-top:10px}.sql-list{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px;display:grid}.sql-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft);min-width:0;padding:12px}.sql-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.sql-head .muted{margin-left:auto}.sql-title{font-size:.82rem;font-weight:700}.sql-code{background:#102639;max-height:250px;font-size:.71rem}.params{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.param{border:1px solid var(--line);background:var(--surface);max-width:100%;font-family:var(--mono);overflow-wrap:anywhere;border-radius:7px;align-items:baseline;gap:5px;padding:2px 7px;font-size:.67rem;display:inline-flex}.param b{color:var(--brand);font-weight:700}.table-title{font-family:var(--mono);color:var(--brand-deep);margin:16px 0 6px;font-size:.76rem}.table-scroll{border:1px solid var(--line);border-radius:10px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:620px;font-size:.73rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 10px}.data-table th{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);background:#f2f7fc;font-size:.64rem;font-weight:750}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:nth-child(2n){background:#fbfdff}.scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.scenario-card{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:15px;gap:5px;padding:15px;transition:border-color .12s,transform .12s,box-shadow .12s;display:grid;box-shadow:0 5px 16px #102a430d}.scenario-card:hover:not(:disabled){border-color:#9cc8e8;transform:translateY(-1px);box-shadow:0 10px 24px #102a431a}.scenario-card.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px #0b5cab1f}.scenario-tag{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brand);font-size:.63rem}.scenario-card strong{font-size:.98rem}.scenario-desc{color:var(--ink-soft);min-height:2.6em;font-size:.8rem}.scenario-run{color:var(--brand-deep);margin-top:3px;font-size:.74rem;font-weight:700}.result-placeholder{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-soft);background:#ffffff8c;align-items:center;gap:10px;padding:18px;font-size:.86rem;display:flex}.result-dot{background:var(--line-strong);border-radius:50%;flex:none;width:9px;height:9px}.result-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:18px}.result-card.is-match{border-left:4px solid var(--ok)}.result-card.is-miss{border-left:4px solid var(--bad)}.result-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.result-mark{width:32px;height:32px;color:var(--ok);background:#edf9f3;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.result-card.is-miss .result-mark{color:var(--bad);background:#fdf1f0}.result-head h3{font-family:var(--mono);color:var(--bad);font-size:.98rem}.result-card.is-match .result-head h3{color:var(--ok)}.result-head .muted{margin-left:auto}.result-grid{border-top:1px solid var(--line);gap:9px;margin:14px 0 0;padding-top:13px;display:grid}.result-grid dt{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px;font-size:.66rem}.result-grid dd{overflow-wrap:anywhere;margin:0;font-size:.86rem}.result-grid code{font-family:var(--mono);background:#f2f7fc;border-radius:5px;padding:1px 5px;font-size:.78rem}.test-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.summary-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:.76rem;font-weight:700}.summary-chip.is-ok{color:var(--ok);background:#edf9f3;border-color:#b9dfcf}.summary-chip.is-bad{color:var(--bad);background:#fdf1f0;border-color:#f1c4bf}.test-list{grid-template-columns:minmax(0,1fr);gap:7px;margin:0;padding:0;list-style:none;display:grid}.test-row{border:1px solid var(--line);background:var(--surface);border-radius:11px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.test-row.is-fail{background:snow;border-color:#f1c4bf}.test-mark{width:20px;height:20px;color:var(--ok);background:#edf9f3;border-radius:50%;flex:none;place-items:center;margin-top:1px;font-size:.72rem;font-weight:800;display:grid}.test-row.is-fail .test-mark{color:var(--bad);background:#fdf1f0}.test-body{gap:5px;min-width:0;display:grid}.test-name{font-size:.85rem}.test-time{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;margin-left:auto;padding-top:2px;font-size:.68rem}.test-error{color:#7a1a12;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;background:#fdf1f0;border-radius:7px;margin:0;padding:7px 9px;font-size:.7rem}.code-section{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.code-card{padding:0}.file-name{font-family:var(--mono);font-size:.82rem}.source-code{border:1px solid #1f3a54;border-radius:12px;max-height:520px;margin:0 14px 14px}.integration-card .source-code{max-height:460px}.loading-hero{align-content:start;gap:16px;display:grid}.loading-head{align-items:flex-start;gap:14px;display:flex}.loading-head h2{margin:2px 0}.loading-head p{color:#ffffffbd;font-size:.85rem}.spinner{border:3px solid #ffffff47;border-top-color:#fff;border-radius:50%;flex:none;width:26px;height:26px;margin-top:4px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#ffffff1f,#ffffff3d,#ffffff1f) 0 0/220% 100%;border-radius:10px;animation:1.4s infinite shimmer}.skeleton-temp{width:180px;height:74px}.skeleton-line{width:100%;height:14px}.skeleton-line.short{width:60%}.loading-side .skeleton{background:linear-gradient(90deg,#eef4fa,#f8fbfe,#eef4fa) 0 0/220% 100%}.skeleton-box{height:96px;margin:10px 0}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.footer{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:26px;padding-top:16px;font-size:.76rem;display:flex}.footer-note{font-family:var(--mono);font-size:.68rem}@media (width<=1000px){.forecast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.weather-top{grid-template-columns:minmax(0,1fr)}.request-card .url-box{max-height:100px}.masthead-pills{display:none}}@media (width<=700px){.shell{padding:18px 14px 28px}.masthead{padding-bottom:16px}.brand{gap:11px}.brand-mark{border-radius:14px;width:46px;height:46px;font-size:24px}.toolbar{gap:9px;padding:11px}.field{flex:100%}.toolbar>.btn{flex:auto}.segmented{flex:none}.status-line{flex:100%;margin-left:0;padding:2px 2px 0}.section-head,.section-head.compact{flex-direction:column;align-items:flex-start;gap:10px}.forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-grid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics>div:nth-child(3){border-top:1px solid #ffffff29;border-left:0;grid-column:1/-1;padding-top:8px;padding-left:0}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.current-card{padding:19px}.weather-badge{width:62px;height:62px;font-size:33px}.result-head .muted{margin-left:0}}@media (width<=560px){.tabs{border-bottom:0;grid-template-columns:1fr 1fr;gap:6px;display:grid;overflow:visible}.tab{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 8px;font-size:.85rem}.tab:after{display:none}.tab.is-active{background:#e9f4fe;border-color:#b7d9f2}}@media (width<=420px){body{font-size:14px}.temp{font-size:4.4rem}.day-card{padding:10px 9px}.footer{flex-direction:column;align-items:flex-start;gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
