:root{--brand:#16246b;--brand-deep:#0e1a4f;--brand-soft:#e8ebf7;--accent:#f4c400;--accent-ink:#3a2f00;--danger:#c62828;--ok:#1f9d55;--bg:#f4f5f9;--surface:#fff;--surface-2:#f0f2f7;--ink:#141a2e;--ink-2:#4a5270;--ink-3:#7a819b;--line:#e2e5ee;--focus:#3b5bdb;--radius:14px;--radius-sm:10px;--shadow-1:0 1px 2px #1018400f, 0 1px 1px #1018400a;--shadow-2:0 10px 30px #10184024;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--brand-soft:#1d2554;--bg:#0b1020;--surface:#131a30;--surface-2:#1a2240;--ink:#e9ecf7;--ink-2:#b3b9d1;--ink-3:#858ca8;--line:#262f52;--focus:#8ea2ff;--shadow-1:0 1px 2px #0006;--shadow-2:0 10px 30px #00000080}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:160px}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.45}img{max-width:100%;display:block}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-3)}.ta-r{text-align:right}.code{font-family:var(--mono);letter-spacing:.01em;font-size:.86em}.app{flex-direction:column;min-height:100dvh;display:flex}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 16px}.main{flex:1;padding-top:12px;padding-bottom:32px}.topbar{background:linear-gradient(135deg, var(--brand-deep), var(--brand));color:#fff;padding-top:env(safe-area-inset-top)}.topbar__inner{justify-content:space-between;align-items:center;gap:12px;min-height:60px;display:flex}.brand{color:inherit;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand__logo{background:#fff;border-radius:50%;flex:none;width:40px;height:40px}.brand__text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand__text strong{white-space:nowrap;font-size:1rem}.brand__text small{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:600}.topbar__actions{align-items:center;gap:8px;display:flex}.status{color:#ffffffd9;align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.status__dot{background:#9aa3c7;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 3px #ffffff1f}.status--ok .status__dot{background:#3ddc84}.status--down .status__dot,.status--offline .status__dot{background:#ff6b6b}.status__label{display:none}.btn.install-btn{background:var(--accent);height:34px;color:var(--accent-ink);border:0;border-radius:999px;padding:0 14px;font-weight:700;transition:filter .15s,transform .15s;box-shadow:0 1px 2px #00000040}.btn.install-btn:hover{background:var(--accent);filter:brightness(1.06);transform:translateY(-1px)}.btn.install-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}@media (max-width:559px){.btn.install-btn{width:34px;padding:0}}.install-btn span{display:none}.sticky-controls{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);padding:10px 0 8px;position:sticky;top:0}.search-row{align-items:center;gap:8px;display:flex}.search{flex:1;position:relative}.search input{border:1.5px solid var(--line);background:var(--surface);width:100%;height:48px;box-shadow:var(--shadow-1);border-radius:999px;padding:0 44px;font-size:16px;transition:border-color .15s,box-shadow .15s}.search input::-webkit-search-cancel-button{display:none}.search input:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.search__icon{color:var(--ink-3);pointer-events:none;position:absolute;top:14px;left:15px}.search__clear{background:var(--surface-2);width:36px;height:36px;color:var(--ink-2);border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;right:6px}.search__hint{color:var(--ink-3);margin-top:2px;font-size:.75rem;position:absolute;top:100%;left:46px}.filters{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px;margin-top:10px;display:grid}.field{flex-direction:column;min-width:0;display:flex;position:relative}.field__label{letter-spacing:.02em;color:var(--ink-3);pointer-events:none;font-size:.68rem;font-weight:600;position:absolute;top:5px;left:12px}.field select{appearance:none;border:1px solid var(--line);background-color:var(--surface);width:100%;height:46px;color:var(--ink);font:inherit;text-overflow:ellipsis;cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-repeat:no-repeat;background-size:5px 5px;border-radius:10px;padding:16px 30px 4px 12px;font-size:.9rem;font-weight:600}.field select:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}.field select:disabled{opacity:.55;cursor:default}.field--switch{justify-content:center;height:46px}.chips{scrollbar-width:none;gap:8px;margin:0 -16px;padding:2px 16px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips--wrap{flex-wrap:wrap;margin:0;padding:0;overflow:visible}.chip{border:1px solid var(--line);background:var(--surface);height:36px;color:var(--ink-2);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:.88rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.chip:hover{border-color:color-mix(in srgb, var(--brand) 40%, var(--line))}.switch{color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch__track{background:var(--line);border-radius:999px;width:40px;height:24px;transition:background .2s;position:relative}.switch__thumb{width:18px;height:18px;box-shadow:var(--shadow-1);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.switch input:checked+.switch__track{background:var(--brand)}.switch input:checked+.switch__track .switch__thumb{transform:translate(16px)}.switch input:focus-visible+.switch__track{outline:3px solid var(--focus);outline-offset:2px}.btn{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn--primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn--primary:hover{background:var(--brand-deep)}.btn--ghost{background:0 0}.btn--sm{border-radius:10px;height:34px;padding:0 12px;font-size:.85rem}.icon-btn{width:40px;height:40px;color:var(--ink-2);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-2)}.link{color:var(--brand);font-weight:600;font-size:inherit;background:0 0;border:0;padding:0}@media (prefers-color-scheme:dark){.link{color:#9fb0ff}}.banner{text-align:center;padding:10px 16px;font-size:.88rem}.banner--offline{color:#fff;background:#37415f}.banner--warn{color:#5c4500;background:#fff4d1}.section{margin-top:22px}.section__head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.section__head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:0;font-size:.82rem}.cat-tree__summary{cursor:pointer;-webkit-user-select:none;user-select:none;gap:6px;list-style:none;justify-content:flex-start!important;align-items:center!important}.cat-tree__summary::-webkit-details-marker{display:none}.cat-tree__chev{color:var(--ink-3);transition:transform .15s}.cat-tree[open] .cat-tree__chev{transform:rotate(90deg)}.category-grid{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:8px;display:grid}.category{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);flex-direction:column;gap:8px;padding:12px 14px 12px 16px;display:flex;position:relative;overflow:hidden}.category:before{content:"";background:var(--accent);width:4px;position:absolute;inset:0 auto 0 0}.category__name{width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;font-size:.98rem;font-weight:700;line-height:1.25;display:flex}.category__name svg{color:var(--ink-3);flex:none}.category__name:hover{color:var(--brand)}.category__subs{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.category__subs button{border:1px solid var(--line);background:var(--bg);height:30px;color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;padding:0 11px;font-size:.8rem}.category__subs button:hover{border-color:var(--brand);color:var(--brand)}.category--skeleton{min-height:84px;animation:1.2s ease-in-out infinite pulse}.category--skeleton:before{display:none}.chip--recent{height:34px}.ios-hint{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);align-items:flex-start;gap:8px;padding:12px 8px 12px 16px;font-size:.9rem;display:flex;position:fixed}.ios-hint p{flex:1;margin:0}.results__count{color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin:4px 2px 10px;font-size:.88rem;display:flex}.results__title{color:var(--ink);font-size:1.02rem;font-weight:700}.results__count strong{color:var(--ink)}.results__head{display:none}.results{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;box-shadow:var(--shadow-1);text-align:left;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px 10px 10px;transition:border-color .15s,box-shadow .15s;display:grid}.row:hover{border-color:color-mix(in srgb, var(--brand) 35%, var(--line))}.row:active{transform:scale(.995)}.row__body{flex-direction:column;gap:3px;min-width:0;display:flex}.row__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.93rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.row__meta{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.row__col{display:none}.row__price{text-align:right}.price{flex-direction:column;align-items:flex-end;line-height:1.15;display:inline-flex}.price__value{color:var(--brand);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1rem;font-weight:800}@media (prefers-color-scheme:dark){.price__value{color:#c7d1ff}}.price__note{color:var(--ink-3);margin-top:2px;font-size:.7rem}.price--none{color:var(--ink-3);font-size:.8rem;font-weight:600}.price--lg .price__value{font-size:1.5rem}.results__more{place-items:center;min-height:72px;padding:16px 0;display:grid}.thumb{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:60px;height:60px;display:grid;overflow:hidden}.thumb img{object-fit:contain;opacity:0;background:#fff;width:100%;height:100%;transition:opacity .25s}.thumb.is-loaded img{opacity:1}.thumb__placeholder{color:var(--ink-3);opacity:.6}.thumb--large{aspect-ratio:4/3;border-radius:0;width:100%;height:auto;max-height:46dvh;position:relative}.thumb--large img{box-sizing:border-box;object-fit:contain;width:100%;height:100%;padding:12px;position:absolute;inset:0}.row--skeleton{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);grid-template-columns:60px 1fr;align-items:center;gap:12px;padding:10px;display:grid}.row--skeleton .thumb,.sk{animation:1.2s ease-in-out infinite pulse}.sk{background:var(--surface-2);border-radius:6px;height:12px;margin:6px 0;display:block}.sk--line{width:85%}.sk--short{width:40%}@keyframes pulse{50%{opacity:.55}}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{text-align:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:520px;box-shadow:var(--shadow-1);color:var(--ink-2);margin:24px auto;padding:24px 20px}.notice:before{content:"";background:var(--accent);border-radius:4px;width:44px;height:4px;margin:0 auto 16px;display:block}.notice h2{color:var(--ink);margin:0 0 8px;font-size:1.1rem}.notice p{margin:0 0 12px;line-height:1.5}.notice__contact{color:var(--ink);font-weight:600}.notice__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.notice-inline{color:var(--ink-2);text-align:center;margin:0;font-size:.9rem}.empty{text-align:center;color:var(--ink-2);padding:48px 16px}.empty h2{color:var(--ink);margin:0 0 8px;font-size:1.15rem}.empty p{max-width:420px;margin:0 auto 18px}.sheet{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0}.sheet::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080c1e8c}.sheet[open]{justify-content:center;align-items:flex-end;display:flex}.sheet__panel{overscroll-behavior:contain;background:var(--surface);width:100%;max-height:92dvh;box-shadow:var(--shadow-2);padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;animation:.22s ease-out sheet-up;position:relative;overflow-y:auto}@keyframes sheet-up{0%{opacity:.6;transform:translateY(24px)}}.sheet__grip{z-index:2;background:#0000002e;border-radius:4px;width:40px;height:4px;margin-left:-20px;position:absolute;top:8px;left:50%}.sheet__close{z-index:2;background:color-mix(in srgb, var(--surface) 85%, transparent);box-shadow:var(--shadow-1);position:absolute;top:10px;right:10px}.sheet__image{background:#fff}.sheet__content{padding:16px 18px 20px}.sheet__crumbs{color:var(--ink-3);margin:0 0 6px;font-size:.8rem}.sheet__title{margin:0 0 8px;font-size:1.2rem;line-height:1.3}.code-btn{border:1px dashed var(--line);background:var(--surface-2);color:var(--ink-2);border-radius:8px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.facts{border-radius:var(--radius-sm);background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin:16px 0;display:grid;overflow:hidden}.facts>div{background:var(--surface);padding:10px 12px}.facts dt{color:var(--ink-3);margin-bottom:2px;font-size:.75rem}.facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.facts__price{color:var(--brand);font-size:1.2rem}@media (prefers-color-scheme:dark){.facts__price{color:#c7d1ff}}.sheet__actions{flex-wrap:wrap;gap:8px;display:flex}.sheet__actions .btn{flex:140px}.sheet__note{color:var(--ink-3);margin:14px 0 0;font-size:.78rem}.toast{background:var(--ink);width:max-content;max-width:90%;color:var(--surface);border-radius:999px;margin:0 auto 12px;padding:8px 14px;font-size:.85rem;font-weight:600;position:sticky;bottom:12px}.update-toast{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);white-space:nowrap;border-radius:14px;align-items:center;gap:8px;padding:8px 8px 8px 16px;font-size:.9rem;display:flex;position:fixed;transform:translate(-50%)}.footer{border-top:1px solid var(--line);padding:18px 0 calc(18px + env(safe-area-inset-bottom));color:var(--ink-3);font-size:.78rem}.footer p{margin:0 0 4px}@media (min-width:560px){.status__label,.install-btn span{display:inline}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:860px){.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filters{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1fr) auto}.results__head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);grid-template-columns:56px minmax(0,1fr) 80px 64px 180px;gap:16px;padding:0 16px 6px 12px;font-size:.75rem;display:grid}.results{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-1);gap:0;overflow:hidden}.results li+li .row{border-top:1px solid var(--line)}.row{box-shadow:none;border:0;border-radius:0;grid-template-columns:56px minmax(0,1fr) 80px 64px 180px;gap:16px;padding:8px 16px 8px 12px}.row:hover{background:var(--surface-2)}.row .thumb{width:56px;height:56px}.row__col{color:var(--ink-2);font-size:.88rem;display:block}.row__unit-inline{display:none}.row__name{-webkit-line-clamp:1}.price__value{font-size:1.05rem}.results--skeleton{border:0}.sheet[open]{align-items:center}.sheet__panel{border-radius:20px;grid-template-columns:1fr 1fr;max-width:820px;max-height:86dvh;display:grid;overflow:hidden}.sheet__grip{display:none}.thumb--large{aspect-ratio:auto;height:100%;min-height:380px;max-height:none}.sheet__content{padding:28px 28px 24px;overflow-y:auto}.toast{margin:0;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
