:root{--bg:#f6f7f9;--surface:#fff;--fg:#111827;--muted:#5f6b7a;--line:#e4e7ec;--brand:#2563eb;--brand-strong:#1d4ed8;--brand-fg:#fff;--brand-soft:#eef3ff;--solution-bg:#f1f6ff;--solution-bar:#2563eb;--ai-bg:#fff8e6;--ai-fg:#7a4f00;--ai-line:#f6dca0;--warn-bg:#fff4d6;--warn-fg:#6b4e00;--err:#c62828;--shadow:0 1px 2px #1018280d, 0 1px 3px #1018280f;--shadow-lg:0 8px 24px #1018281a;--radius:14px;--radius-sm:10px;--ease:.15s ease}@media (prefers-color-scheme:dark){:root{--bg:#0b0f14;--surface:#131922;--fg:#e8ecf1;--muted:#9aa5b4;--line:#243040;--brand:#6ea8ff;--brand-strong:#93bfff;--brand-fg:#08121d;--brand-soft:#172640;--solution-bg:#13233b;--solution-bar:#6ea8ff;--ai-bg:#2b2310;--ai-fg:#f1d48a;--ai-line:#4a3b15;--warn-bg:#3a2f10;--warn-fg:#f1d48a;--err:#ff8a80;--shadow:0 1px 2px #0006;--shadow-lg:0 8px 24px #00000080}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}a{color:var(--brand);text-underline-offset:3px}button{font:inherit}.icon{vertical-align:-.2em;flex:none}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}.app{max-width:720px;padding:0 max(16px, env(safe-area-inset-right)) 96px max(16px, env(safe-area-inset-left));margin:0 auto}.banner{background:var(--warn-bg);color:var(--warn-fg);text-align:center;margin:0 -16px;padding:8px 16px;font-weight:600}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 0;display:flex}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.logo{width:44px;height:auto;display:block}.top h1{letter-spacing:-.01em;margin:0;font-size:1.2rem;font-weight:700}.bottom{z-index:10;padding:8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom a{color:var(--muted);transition:background var(--ease), color var(--ease);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:.78rem;font-weight:600;text-decoration:none;display:flex}.bottom a[aria-current=page]{color:var(--brand);background:var(--brand-soft)}form[role=search]{gap:8px;margin:8px 0 20px;display:flex}.search-box{flex:1;min-width:0;position:relative}.search-box .icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}input[type=search]{width:100%;font:inherit;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--fg);box-shadow:var(--shadow);transition:border-color var(--ease), box-shadow var(--ease);padding:14px 14px 14px 48px;font-size:1.35rem}input[type=search]::placeholder{color:var(--muted);font-size:1rem}input[type=search]:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 20%, transparent);outline:none}input.filter{margin:8px 0 14px;padding:11px 14px;font-size:1rem}.chip{border:1px solid var(--line);background:var(--surface);color:var(--brand);cursor:pointer;box-shadow:var(--shadow);transition:background var(--ease), border-color var(--ease);border-radius:999px;margin:0 8px 8px 0;padding:6px 14px;font-weight:600;text-decoration:none;display:inline-block}.chip:hover{background:var(--brand-soft);border-color:var(--brand)}.recent h2,.neighbors h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:.8rem}.back{margin:4px 0 14px}.back a{border-radius:8px;align-items:center;gap:6px;margin-left:-6px;padding:6px 10px 6px 6px;font-weight:600;text-decoration:none;display:inline-flex}.back a:hover{background:var(--brand-soft)}h2{letter-spacing:-.01em}.error-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;margin-bottom:20px;padding:20px}.error-card h2{flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:1.15rem;line-height:1.3;display:flex}.error-card .code{letter-spacing:-.02em;color:var(--brand-strong);background:var(--brand-soft);border-radius:12px;padding:2px 14px;font-size:1.5rem;font-weight:800}.error-card .sep{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.error-card .meta{color:var(--muted);margin:8px 0 0;font-size:.88rem}.error-card>header{padding-bottom:6px}.error-card h3{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);align-items:center;gap:6px;margin:18px 0 6px;font-size:.78rem;display:flex}.error-card p{margin:0 0 4px}.solution{background:var(--solution-bg);border-radius:var(--radius);border-left:4px solid var(--solution-bar);margin-top:14px;padding:4px 16px 12px}.solution h3{color:var(--brand-strong);margin-top:10px}.solution p{font-size:1.1rem;font-weight:600;line-height:1.45}.solution .vi,.error-card .en,.error-card .vi{color:var(--fg)}.error-card .empty-hint{color:var(--muted);font-style:italic}.hw p{color:var(--muted);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.95rem}.note{background:var(--ai-bg);border:1px solid var(--ai-line);border-radius:var(--radius);margin-top:16px;padding:12px 16px}.note h3{color:var(--ai-fg);margin-top:0}.note .ai-label{cursor:help;margin:0 0 6px}.neighbors{margin-top:18px}.neighbors a{border:1px solid var(--line);background:var(--surface);transition:background var(--ease), border-color var(--ease);border-radius:999px;margin:0 8px 8px 0;padding:4px 12px;font-weight:600;text-decoration:none;display:inline-block}.neighbors a:hover{background:var(--brand-soft);border-color:var(--brand)}.actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding-top:16px;display:flex}.actions button{cursor:pointer;border:1.5px solid var(--line);background:var(--surface);color:var(--fg);transition:background var(--ease), border-color var(--ease), transform var(--ease);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;display:inline-flex}.actions button:hover{background:var(--brand-soft);border-color:var(--brand)}.actions button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-fg)}.actions button.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.actions button:active{transform:scale(.98)}.flash{color:var(--muted);font-size:.9rem}.results,.list{margin:0;padding:0;list-style:none}.results li,.list li{border-bottom:1px solid var(--line);content-visibility:auto;contain-intrinsic-size:auto 72px}.results a,.list a{color:var(--fg);transition:background var(--ease);border-radius:12px;grid-template-columns:4.4rem 1fr;align-items:baseline;column-gap:8px;margin:0 -10px;padding:12px 10px;text-decoration:none;display:grid}.results a:hover,.list a:hover{background:var(--surface)}.results a:active,.list a:active{background:var(--brand-soft)}.results strong{color:var(--brand-strong);font-weight:800}.results .mod,.list .mod{color:var(--muted);font-size:.85rem;font-weight:600}.results .snippet,.list .snippet{color:var(--muted);grid-column:2;font-size:.92rem}.list a{grid-template-columns:1fr}.list .snippet{grid-column:1}.list a strong{font-weight:700}.results .snippet.vi,.list .snippet.vi{color:var(--fg)}.status,.not-found{color:var(--muted)}.not-found{padding:8px 0}.error-box{border:1px solid var(--err);color:var(--err);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.error-box button{border:1px solid var(--err);color:var(--err);cursor:pointer;background:0 0;border-radius:10px;margin-top:8px;padding:8px 16px;font-weight:600}.skeleton{padding:8px 0}.sk-line{background:linear-gradient(90deg, var(--line) 25%, color-mix(in srgb, var(--line) 50%, var(--surface)) 50%, var(--line) 75%);background-size:200% 100%;border-radius:7px;height:14px;margin:14px 0;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.offline-badge{z-index:20;background:var(--warn-bg);color:var(--warn-fg);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow-lg);padding:10px 14px;position:fixed;bottom:84px;left:16px;right:16px}.update-toast{z-index:20;background:var(--fg);color:var(--bg);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px 10px 16px;display:flex;position:fixed;bottom:84px;left:16px;right:16px}.update-toast button{background:var(--brand);color:var(--brand-fg);cursor:pointer;border:0;border-radius:8px;padding:6px 14px;font-weight:600}@media (pointer:coarse){.actions button,.update-toast button{min-height:44px}.chip{align-items:center;min-height:44px;display:inline-flex}.neighbors a{min-height:44px;margin-right:8px;padding:0 14px;line-height:40px;display:inline-block}}@media (width>=768px){.app{max-width:960px;padding-bottom:40px}.top{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);flex-wrap:nowrap;justify-content:flex-start;gap:32px;margin-bottom:20px;padding:14px 0;position:sticky;top:0}.bottom{z-index:auto;background:0 0;border:0;gap:4px;padding:0;position:static}.bottom a{flex-direction:row;flex:none;gap:8px;padding:8px 16px;font-size:.95rem}.results,.list{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));column-gap:32px;display:grid}.error-card{grid-template-columns:1fr 1fr;column-gap:32px;padding:28px;display:grid}.error-card>header,.error-card>.solution,.error-card>.note,.error-card>.neighbors,.error-card>.actions{grid-column:1/-1}.offline-badge,.update-toast{width:min(560px,100% - 32px);bottom:24px;left:50%;right:auto;transform:translate(-50%)}}@media (width>=1200px){.app{max-width:1120px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
