:root{color-scheme:light dark;--bg: #f4f6f8;--card: #ffffff;--text: #111418;--muted: #3d4650;--line: #8a949e;--primary: #0b4f7c;--on-primary: #ffffff;--focus: #b35c00;--good: #00664a;--warn: #0b4f7c;--bad: #a33a00;--dry: #009e73;--light: #56b4e9;--moderate: #0072b2;--heavy: #d55e00;--unknown: #8c8c8c}@media (prefers-color-scheme: dark){:root{--bg: #101418;--card: #1b2127;--text: #f1f3f5;--muted: #c3cbd3;--line: #6f7b86;--primary: #6cc0f5;--on-primary: #071722;--focus: #ffb366;--good: #4fd1a5;--warn: #8fd0f7;--bad: #ff9e66}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.m-app{max-width:34rem;margin:0 auto;min-height:100dvh;padding:max(.75rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));display:flex;flex-direction:column;gap:1rem}.m-title{font-size:1.15rem;margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.m-result{background:var(--card);border-radius:12px;padding:.9rem;min-height:5.5rem}.m-intro,.m-step,.m-note{margin:0;color:var(--muted)}.m-step{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.m-spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:3px solid var(--line);border-top-color:var(--primary);animation:m-spin .9s linear infinite}@keyframes m-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.m-spinner{animation:none}}.m-skeleton{height:4.5rem;border-radius:8px;background:linear-gradient(90deg,var(--bg),var(--card),var(--bg))}.m-result-body.is-stale{opacity:.55}.m-verdict{display:flex;align-items:center;gap:.75rem;border-left:8px solid;padding:.35rem 0 .35rem .75rem}.m-verdict-symbol{font-size:2rem;line-height:1}.m-verdict-text{margin:0;font-size:1.45rem;font-weight:700;overflow-wrap:anywhere}.tone-good{border-color:var(--good);color:var(--good)}.tone-warn{border-color:var(--warn);color:var(--warn)}.tone-bad{border-color:var(--bad);color:var(--bad)}.tone-unknown{border-color:var(--line);color:var(--muted)}.m-verdict .m-verdict-text{color:var(--text)}.m-tip{margin:.6rem 0 0;font-weight:600}.m-facts{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:.75rem 0}.m-facts div{display:flex;gap:.35rem}.m-facts dt{color:var(--muted)}.m-facts dd{margin:0;font-weight:700}.m-band{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(2.75rem,15%),1fr));gap:.25rem}.m-cell{display:grid;justify-items:center;font-size:.8rem}.m-cell-bar{width:100%;height:1.9rem;border-radius:4px;display:grid;place-items:center;font-size:1rem;font-weight:700}.m-cell-time{font-variant-numeric:tabular-nums}.m-cell-cat{color:var(--muted);font-size:.72rem}.cat-dry .m-cell-bar,.m-badge.cat-dry{background:var(--dry);color:#000}.cat-light .m-cell-bar,.m-badge.cat-light{background:repeating-linear-gradient(45deg,var(--light) 0 6px,#9fd3f2 6px 9px);color:#000}.cat-moderate .m-cell-bar,.m-badge.cat-moderate{background:repeating-linear-gradient(45deg,var(--moderate) 0 4px,#004a75 4px 6px);color:#fff}.cat-heavy .m-cell-bar,.m-badge.cat-heavy{background:repeating-linear-gradient(-45deg,var(--heavy) 0 3px,#8f3f00 3px 5px);color:#000}.cat-heavy .m-cell-bar{color:#fff;text-shadow:0 0 2px #000}.cat-unknown .m-cell-bar,.m-badge.cat-unknown{background:repeating-radial-gradient(circle,var(--unknown) 0 3px,#bdbdbd 3px 5px);color:#000}.m-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.9rem}.m-map{margin-top:.75rem}.m-map .route-map{width:100%;height:55svh;min-height:240px;border-radius:8px}.m-error p{margin:0 0 .6rem;font-weight:600}.m-inputs{display:grid;gap:1rem}.m-choice{border:0;margin:0;padding:0;min-width:0}.m-choice legend,.m-place label{font-weight:700;margin-bottom:.35rem;padding:0}.m-choice-row{display:flex;gap:.5rem}.m-choice-btn{flex:1 1 0;min-width:0;min-height:3.25rem;position:relative;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem .3rem;border:2px solid var(--line);border-radius:10px;background:var(--card);font-weight:600;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.m-choice-btn input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.m-choice-btn.is-on{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.m-choice-btn:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.m-badge{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;border-radius:50%;font-size:.85rem;border:1px solid #000}.m-place{display:grid;position:relative}.m-place input{width:100%;min-width:0;min-height:3rem;font-size:1.0625rem;padding:.6rem .75rem;border:2px solid var(--line);border-radius:10px;background:var(--card);color:var(--text)}.m-place-status{margin:.35rem 0 0;color:var(--muted)}.m-suggestions{list-style:none;margin:.35rem 0 0;padding:0;display:grid;gap:.5rem}.m-suggestions button{width:100%;min-height:3rem;text-align:left;font:inherit;padding:.5rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);overflow-wrap:anywhere}.m-primary,.m-secondary{min-height:3.25rem;font:inherit;font-weight:700;border-radius:10px;padding:.6rem 1rem;cursor:pointer}.m-primary{width:100%;border:0;background:var(--primary);color:var(--on-primary);font-size:1.15rem}.m-primary:disabled{opacity:.5;cursor:default}.m-secondary{flex:1 1 9rem;border:2px solid var(--primary);background:transparent;color:var(--text)}.m-foot{font-size:.9rem;color:var(--muted)}.m-foot p{margin:0 0 .4rem}.m-foot a{color:var(--text);display:inline-block;min-height:3rem;padding:.75rem 0}.m-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.m-head-link{color:var(--primary);font-weight:600;min-height:3rem;display:inline-flex;align-items:center;padding:0 .25rem}.m-card{background:var(--card);border-radius:14px;padding:1rem;margin:0}.m-settings{display:grid;gap:.75rem}.m-settings h2{font-size:1.05rem;margin:0}.m-settings p{margin:0}.m-note{font-size:.95rem;color:var(--muted)}.m-check{display:flex;align-items:center;gap:.5rem;min-height:3rem}.m-check input{width:1.4rem;height:1.4rem}.m-feedback{display:grid;gap:.6rem;font-weight:600;border-left:4px solid currentColor;padding-left:.75rem}.m-feedback.tone-good{color:var(--good)}.m-feedback.tone-bad{color:var(--bad)}.m-danger{border-color:var(--bad);color:var(--bad)}.m-howto summary{min-height:3rem;display:flex;align-items:center;cursor:pointer;font-weight:600}.m-howto ol{padding-left:1.25rem;margin:0 0 .6rem}.m-howto a{color:var(--primary)}.m-saved{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.m-saved li{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.m-saved li span{min-width:0;overflow-wrap:anywhere}.m-file{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.m-file input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.m-file:focus-within{outline:3px solid var(--focus);outline-offset:2px}.m-button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;margin-right:.5rem}.m-tiles{display:flex;flex-wrap:wrap;gap:.5rem}.m-tile{min-height:3rem;padding:.4rem .9rem;border:2px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-tile.is-on{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.m-link-btn{justify-self:start;min-height:3rem;padding:0 .25rem;border:0;background:none;color:var(--primary);font:inherit;font-weight:600;cursor:pointer}.m-list{margin:0;padding-left:1.2rem;display:grid;gap:.4rem}.m-update{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));max-width:32rem;margin:0 auto;background:var(--card);color:var(--text);border:2px solid var(--primary);border-radius:14px;padding:.75rem 1rem;box-shadow:0 4px 16px #00000040;z-index:1000}.m-update p{margin:0 0 .6rem;font-weight:600}.m-update-actions{display:flex;gap:.6rem}.m-update-actions .m-primary{flex:1 1 9rem}
