@font-face {
  font-family: "Sarafski Lobster";
  src: url("../fonts/lobster-cyrillic.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
.sw-app {
  --sw-accent: #2991d6;
  --sw-bg: #f5f7f9;
  --sw-panel: #fff;
  --sw-text: #30363b;
  --sw-muted: #68737d;
  --sw-border: #e5e9ed;
  --sw-danger: #b42318;
  color: var(--sw-text);
  background: var(--sw-bg);
  border: 1px solid var(--sw-border);
  border-radius: 6px;
  padding: clamp(16px, 3vw, 32px);
  font-family: Roboto, Arial, sans-serif;
  line-height: 1.45;
}
.sw-app[data-theme="dark"] { --sw-bg:#151a1e; --sw-panel:#20272d; --sw-text:#f2f5f7; --sw-muted:#aeb8c0; --sw-border:#36414a; }
.sw-app *, .sw-app *::before, .sw-app *::after { box-sizing: border-box; }
.sw-app h2, .sw-app h3, .sw-app p { margin-top: 0; }
.sw-app h2, .sw-app h3 { color:var(--sw-text) !important; }
.sw-app .sw-alerts article strong, .sw-app .sw-alerts article p { color:inherit; }
.sw-topbar, .sw-controls, .sw-section-heading, .sw-footer { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.sw-kicker { color:var(--sw-accent); font-weight:800; letter-spacing:.12em; margin-bottom:4px; font-size:12px; }
.sw-topbar h2 {
  font-family:"Sarafski Lobster", "Segoe Print", cursive;
  font-size:clamp(30px,4vw,42px);
  font-weight:400;
  line-height:1.05;
  letter-spacing:0;
  margin-bottom:0;
}
.sw-icon-button, .sw-button { border:1px solid var(--sw-accent); background:var(--sw-accent); color:#fff; border-radius:6px; min-height:44px; padding:9px 14px; cursor:pointer; font-weight:700; }
.sw-icon-button { width:44px; padding:0; font-size:20px; flex:0 0 auto; }
.sw-top-actions { display:flex; gap:8px; align-items:center; }
.sw-sound-toggle[aria-pressed="false"] { background:transparent; color:var(--sw-accent); }
.sw-sound-toggle[aria-pressed="true"] { box-shadow:0 0 0 3px color-mix(in srgb, var(--sw-accent) 22%, transparent); }
.sw-sound-toggle svg { width:24px; height:24px; display:block; margin:auto; fill:currentColor; stroke-width:1.8; }
.sw-sound-toggle[aria-pressed="false"] .sw-sound-waves { display:none; }
.sw-sound-toggle[aria-pressed="true"] .sw-sound-slash { display:none; }
.sw-sound-toggle.is-speaking .sw-sound-waves path { animation:sw-sound-pulse .85s ease-in-out infinite alternate; transform-origin:14px 12px; }
.sw-sound-toggle.is-speaking .sw-sound-waves path:last-child { animation-delay:.16s; }
@keyframes sw-sound-pulse { from { opacity:.35; transform:scale(.9); } to { opacity:1; transform:scale(1.08); } }
.sw-button-secondary { background:transparent; color:var(--sw-accent); }
.sw-controls { align-items:flex-end; margin:24px 0 12px; }
.sw-search-wrap { position:relative; flex:1 1 360px; }
.sw-search-wrap label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; }
.sw-search-wrap input { width:100%; height:46px; margin:0; border:1px solid var(--sw-border); border-radius:6px; padding:0 14px; background:var(--sw-panel); color:var(--sw-text); font:inherit; }
.sw-search-wrap input:focus { outline:3px solid color-mix(in srgb, var(--sw-accent) 24%, transparent); border-color:var(--sw-accent); }
.sw-location-actions { display:flex; gap:8px; flex-wrap:wrap; }
.sw-suggestions { position:absolute; z-index:20; top:100%; left:0; right:0; max-height:320px; overflow:auto; background:var(--sw-panel); border:1px solid var(--sw-border); box-shadow:0 8px 24px rgba(0,0,0,.12); }
.sw-suggestions button { display:flex; width:100%; justify-content:space-between; gap:10px; padding:11px 14px; border:0; border-bottom:1px solid var(--sw-border); background:transparent; color:var(--sw-text); text-align:left; cursor:pointer; }
.sw-suggestions button:hover, .sw-suggestions button:focus { background:color-mix(in srgb, var(--sw-accent) 9%, var(--sw-panel)); }
.sw-suggestions span { color:var(--sw-muted); }
.sw-status { padding:10px 12px; margin:12px 0; border-left:4px solid var(--sw-accent); background:var(--sw-panel); }
.sw-status.is-error { border-color:var(--sw-danger); }
.sw-status.is-warning { border-color:#b7791f; }
.sw-alerts article { padding:14px; margin:12px 0; border:1px solid #f4b5b0; border-left:5px solid var(--sw-danger); background:#fff4f3; color:#5f1711; }
.sw-alerts { display:none !important; }
.sw-current { display:grid; grid-template-columns:minmax(240px, .9fr) minmax(300px, 1.1fr); gap:clamp(20px,5vw,56px); align-items:center; background:var(--sw-panel); border:1px solid var(--sw-border); border-radius:6px; padding:clamp(18px,4vw,42px); }
.sw-character-wrap { text-align:center; }
.sw-character-wrap img { display:block; max-width:100%; height:auto; margin:auto; object-fit:contain; }
.sw-character-button { display:block; width:100%; margin:0; padding:0; border:0; border-radius:12px; background:transparent; color:inherit; cursor:pointer; }
.sw-character-button:focus-visible { outline:3px solid var(--sw-accent); outline-offset:4px; }
.sw-character-button:hover img { transform:translateY(-3px) scale(1.015); }
.sw-character-button img { transition:transform .18s ease, filter .18s ease; }
.sw-character-button.is-speaking img { filter:drop-shadow(0 0 14px color-mix(in srgb, var(--sw-accent) 55%, transparent)); transform:scale(1.025); }
.sw-character-hint { color:var(--sw-accent); font-family:"Sarafski Lobster", "Segoe Print", cursive; font-size:clamp(16px,2vw,19px); font-weight:400; line-height:1.25; letter-spacing:.01em; margin:6px auto 0; }
.sw-quote { display:table; font-style:italic; color:var(--sw-muted); max-width:38ch; min-height:1.4em; margin:8px auto 0; padding:6px 11px; border-radius:999px; background:color-mix(in srgb, var(--sw-accent) 8%, transparent); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s; }
.sw-quote.is-visible { opacity:1; visibility:visible; transform:translateY(0); transition-delay:0s; }
.sw-quote.is-warning { color:var(--sw-danger); font-weight:800; }
.sw-voice-status { min-height:1.4em; margin:5px auto 0; color:var(--sw-muted); font-size:12px; }
.sw-location-mode { display:inline-block; padding:4px 9px; background:color-mix(in srgb, var(--sw-accent) 12%, transparent); color:var(--sw-accent); border-radius:999px; font-size:12px; font-weight:800; }
.sw-current-data h3 { font-family:Lato, Arial, sans-serif; font-size:clamp(24px,4vw,38px); margin-bottom:14px; }
@media (prefers-reduced-motion: reduce) { .sw-sound-toggle.is-speaking .sw-sound-waves path { animation:none; } .sw-quote { transition:none; } }
.sw-localtime, .sw-freshness { color:var(--sw-muted); font-size:13px; }
.sw-temperature { display:flex; align-items:flex-start; font-size:clamp(58px,10vw,96px); font-weight:300; line-height:1; margin:18px 0 5px; }
.sw-temperature small { font-size:.3em; margin-top:.2em; }
.sw-condition { font-size:19px; font-weight:700; }
.sw-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.sw-metrics div { border:1px solid var(--sw-border); border-radius:6px; padding:10px; }
.sw-metrics span, .sw-metrics strong { display:block; }
.sw-metrics span { color:var(--sw-muted); font-size:12px; }
.sw-motor { margin:14px 0; padding:12px; border:1px solid var(--sw-border); border-left:5px solid var(--sw-accent); border-radius:6px; }
.sw-motor span, .sw-motor strong, .sw-motor small { display:block; }
.sw-motor span { color:var(--sw-muted); font-size:12px; }.sw-motor.is-good{border-left-color:#26834a}.sw-motor.is-caution{border-left-color:#b7791f}.sw-motor.is-bad{border-left-color:var(--sw-danger)}
.sw-section { margin-top:26px; }
.sw-section-heading h3 { margin-bottom:8px; }.sw-section-heading span { color:var(--sw-muted); font-size:13px; }
.sw-hourly { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(125px,1fr); gap:10px; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x proximity; }
.sw-hourly article { scroll-snap-align:start; text-align:center; background:var(--sw-panel); border:1px solid var(--sw-border); border-radius:6px; padding:12px 8px; }
.sw-hourly img { width:72px; height:72px; object-fit:contain; margin:auto; }.sw-hourly time,.sw-hourly strong,.sw-hourly span,.sw-hourly small{display:block}.sw-hourly span,.sw-hourly small{color:var(--sw-muted);font-size:12px}.sw-hourly strong{font-size:22px}
.sw-daily { display:grid; gap:10px; }
.sw-daily article { display:grid; grid-template-columns:1fr 90px 1fr; align-items:center; background:var(--sw-panel); border:1px solid var(--sw-border); border-radius:6px; padding:10px 16px; }
.sw-daily article img { width:78px; height:78px; object-fit:contain; margin:auto; }.sw-daily article span,.sw-daily article strong,.sw-daily article small{display:block}.sw-daily article span,.sw-daily article small{color:var(--sw-muted)}.sw-range{text-align:right}.sw-range strong{font-size:22px}
.sw-footer { align-items:flex-start; border-top:1px solid var(--sw-border); padding-top:16px; margin-top:26px; color:var(--sw-muted); font-size:12px; }
.sw-footer a { color:var(--sw-accent); }
[hidden] { display:none !important; }
@media (max-width:760px){.sw-controls,.sw-footer{align-items:stretch;flex-direction:column}.sw-search-wrap{flex:0 0 auto}.sw-location-actions .sw-button{flex:1}.sw-current{grid-template-columns:1fr}.sw-character-wrap img{max-width:280px}.sw-daily article{grid-template-columns:1fr 74px 1fr}.sw-daily article img{width:64px;height:64px}}
@media (max-width:440px){.sw-app{padding:14px}.sw-location-actions{display:grid;grid-template-columns:1fr}.sw-metrics{grid-template-columns:1fr}.sw-current{padding:16px}.sw-character-wrap img{max-width:220px}.sw-footer{font-size:11px}}
@media (prefers-reduced-motion:reduce){.sw-app *{scroll-behavior:auto!important;transition:none!important}}

