:root{--navy:#0f1e35;--navy-2:#172a47;--navy-3:#22385c;--cyan:#44d8fe;--text:#eaf6ff;--muted:#8fa6c4;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;background:var(--navy);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}body{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}a{color:inherit}button{font:inherit;cursor:pointer}.wrap{padding:16px}.wrap,header.top{max-width:1100px;margin:0 auto}header.top{display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}header.top img{width:40px;height:40px;border-radius:10px}header.top h1{font-size:18px;margin:0;font-weight:800;letter-spacing:-.01em}header.top small{display:block;color:var(--muted);font-weight:500;font-size:12px}.searchbar{display:flex;gap:8px;position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--navy);padding:8px 0 12px}.searchbar input{flex:1 1;min-width:0;background:var(--navy-2);border:1px solid var(--navy-3);color:var(--text);border-radius:12px;padding:12px 14px;font-size:16px;outline:none}.searchbar input:focus{border-color:var(--cyan)}.btn{background:var(--cyan);color:var(--navy);border:0;border-radius:12px;padding:0 18px;font-weight:700;min-height:44px}.btn.ghost{background:var(--navy-2);color:var(--text);border:1px solid var(--navy-3)}.btn:disabled{opacity:.5}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 14px}.chip{font-size:13px;padding:6px 10px;border-radius:999px;background:var(--navy-2);border:1px solid var(--navy-3);color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px}.chip.on{border-color:var(--cyan)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.dot.ok{background:var(--ok)}.dot.error{background:var(--bad)}.dot.not_configured{background:var(--warn)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px}@media (min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}.card{background:var(--navy-2);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;border:1px solid transparent}.card:hover{border-color:var(--navy-3)}.card .thumb{aspect-ratio:4/3;background:var(--navy-3);object-fit:cover;width:100%;display:block}.card .body{padding:10px;display:flex;flex-direction:column;gap:6px;flex:1 1}.card h3{font-size:14px;margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta{font-size:12px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:var(--navy-3);color:var(--cyan);align-self:flex-start}.card .actions{display:flex;gap:6px;margin-top:auto;padding-top:4px}.card .actions>*{flex:1 1;text-align:center;font-size:13px;min-height:36px;padding:0 8px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}.empty{text-align:center;padding:48px 16px;line-height:1.6}.empty,.note{color:var(--muted)}.note{background:var(--navy-2);border-left:3px solid var(--warn);padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}nav.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:4px;background:rgba(15,30,53,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--navy-3);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:10}nav.tabs button{background:none;border:0;color:var(--muted);padding:8px 18px;border-radius:10px;font-weight:600;font-size:14px;min-width:96px}nav.tabs button.on{color:var(--navy);background:var(--cyan)}.drop{border:2px dashed var(--navy-3);border-radius:16px;padding:36px 16px;text-align:center;color:var(--muted);cursor:pointer}.drop.over{border-color:var(--cyan);color:var(--text)}.result{background:var(--navy-2);border-radius:14px;padding:16px;margin-top:16px}.big{font-size:22px;font-weight:800;margin:0 0 6px}.big.ok{color:var(--ok)}.big.bad{color:var(--bad)}table.parts{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}table.parts td,table.parts th{text-align:left;padding:6px 4px;border-top:1px solid var(--navy-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.parts th{color:var(--muted);font-weight:600}.pin{display:flex;gap:8px;margin-top:12px}.pin input{flex:1 1;min-width:0;background:var(--navy);border:1px solid var(--navy-3);color:var(--text);border-radius:10px;padding:10px;font-size:16px}