@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-600.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2)format("woff2")}:root{--bg:#14161a;--panel:#1b1e24;--panel-2:#21252c;--line:#2c313a;--text:#e7e9ee;--muted:#8b93a1;--accent:#5eead4;--accent-dim:#2f6f66;--gold:#f0b429;--warn:#f2545b;--font-ui:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100%}h1,h2,p{margin:0}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}input:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent-dim);outline-offset:1px}.app{max-width:1180px;margin:0 auto;padding:28px 20px 60px}header.top{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:22px;display:flex}.title-group{flex-wrap:wrap;flex:0 auto;align-items:baseline;gap:10px;min-width:0;display:flex}header.top h1{letter-spacing:.2px;font-size:20px;font-weight:600}header.top h1 span.accent{color:var(--accent)}.app-mark{vertical-align:-3px;width:19px;height:19px;color:var(--accent);margin-right:7px;display:inline-flex}.version-tag{font-size:11px;font-weight:400;font-family:var(--font-mono);color:var(--muted);vertical-align:middle}header.top p{color:var(--muted);flex-basis:100%;font-size:13px}.title-group .usage-pill{text-align:left;white-space:normal;flex-basis:100%;align-self:flex-start;max-width:100%;margin-top:2px}.header-actions{flex:none;align-items:flex-start;gap:8px;display:flex}button{font-family:var(--font-ui);border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;padding:10px 14px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s}button:hover{border-color:var(--accent-dim)}button.primary{background:var(--accent);color:#0b1615;border-color:var(--accent);font-weight:600}button.primary:hover{background:#78f0da}button.danger{color:var(--warn)}button.danger:hover{border-color:var(--warn)}button:disabled{opacity:.4;cursor:not-allowed}button.small{padding:6px 10px;font-size:12px}button.icontext-btn{align-items:center;gap:6px;display:inline-flex}button.icontext-btn .btn-icon{flex-shrink:0;width:14px;height:14px;display:inline-flex}button.icontext-btn.active{background:var(--accent);color:#0b1615;border-color:var(--accent);font-weight:600}.icon-btn{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.icon-btn svg{width:16px;height:16px}.favorite-active{color:var(--accent)}a.icon-btn{font-family:var(--font-ui);border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;text-decoration:none;transition:border-color .12s,background .12s}a.icon-btn:hover{border-color:var(--accent-dim)}.gear-menu-wrap{flex:none;position:relative}.gear-btn{position:relative}.gear-menu{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:9px;flex-direction:column;gap:2px;min-width:220px;max-width:calc(100vw - 24px);padding:6px;display:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000073}.gear-menu.open{display:flex}.gear-menu button.menu-item{width:100%;color:var(--text);text-align:left;font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;min-height:40px;padding:10px;font-size:13px;display:flex}.gear-menu button.menu-item:hover,.gear-menu button.menu-item:focus-visible{background:var(--panel-2)}.gear-menu button.menu-item svg{width:15px;height:15px;color:var(--muted);flex-shrink:0}.gear-menu .menu-sep{background:var(--line);height:1px;margin:4px 2px}.load-status{color:var(--muted);margin:-2px 0 22px;font-size:12px}.load-status.warn{color:var(--warn)}.add-hint{border:2px dashed var(--line);border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:22px;padding:16px;display:flex}.add-hint-icon{width:28px;height:28px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.add-hint-icon svg{width:20px;height:20px}.add-hint strong{margin-bottom:2px;font-size:13px;font-weight:600;display:block}.add-hint p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.layout{grid-template-columns:1.55fr 1fr;align-items:start;gap:22px;display:grid}.side-column{flex-direction:column;display:flex}@media (width<=860px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:18px;padding:16px}.panel h2{align-items:center;gap:8px;margin:0 0 4px;font-size:13px;font-weight:600;display:flex}.panel h2 .section-icon{color:var(--accent);flex-shrink:0;display:flex}.panel h2 .section-icon svg{width:15px;height:15px;display:block}.panel .desc{color:var(--muted);margin:0 0 14px;font-size:12px;line-height:1.5}.search-row{gap:8px;margin-bottom:14px;display:flex}.search-row .search-field{flex:1;align-items:center;display:flex;position:relative}.search-row .search-field svg{width:14px;height:14px;color:var(--muted);pointer-events:none;position:absolute;left:12px}.search-row input[type=search]{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--text);font-family:var(--font-mono);border-radius:6px;padding:10px 12px 10px 34px;font-size:13px}.catalog-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.entry-row{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;display:flex}.entry-row .entry-main{flex:1;min-width:0}.entry-row .entry-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;display:block;overflow:hidden}.entry-row .entry-meta{color:var(--muted);font-size:11px;font-family:var(--font-mono);flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.entry-row .entry-tags{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.entry-row .row-btns{flex-shrink:0;gap:4px;display:flex}.entry-row[role=button]{cursor:pointer}.entry-row[role=button]:hover{border-color:var(--accent-dim)}.entry-row[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.entry-row.selected{border-color:var(--accent);background:var(--panel)}.details-close{margin-left:auto}.details-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.details-header h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden}.details-grid{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 16px;font-size:12px;display:grid}.details-grid dt{color:var(--muted)}.details-grid dd{color:var(--text);overflow-wrap:anywhere;margin:0}.details-grid dd.mono,.mono{font-family:var(--font-mono)}.details-section{margin-top:16px}.details-section h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.pill-row{flex-wrap:wrap;gap:6px;display:flex}.details-link{color:var(--accent);overflow-wrap:anywhere;text-decoration:none}.details-link:hover{text-decoration:underline}.filter-pill{cursor:pointer;font-family:var(--font-mono);transition:border-color .12s,background .12s}.filter-pill:hover{border-color:var(--accent-dim)}.filter-pill.active{background:var(--accent);color:#0b1615;border-color:var(--accent);font-weight:600}.cued-list{flex-direction:column;gap:8px;display:flex}.cued-row{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;align-items:center;gap:10px;padding:8px 10px;display:flex}.cued-rank{font-family:var(--font-mono);color:var(--muted);text-align:right;flex-shrink:0;width:16px;font-size:11px}.cued-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.cued-meta{font-family:var(--font-mono);color:var(--muted);flex-shrink:0;font-size:11px}.status-pill{color:var(--muted);font-size:11px;font-family:var(--font-mono);border:1px solid var(--line);border-radius:20px;padding:3px 8px}.status-pill.warn{color:var(--warn);border-color:var(--warn)}.panel-state{color:var(--muted);padding:12px 2px;font-size:13px}.panel-state[role=alert]{color:var(--warn)}.app-footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);margin-top:28px;padding-top:16px;font-size:13px}.app-footer a{color:var(--accent);font-weight:500;text-decoration:none}.app-footer a:hover{text-decoration:underline}.app-footer-legal{margin-top:8px;font-size:12px}.app-footer-updated{color:var(--muted);opacity:.7;margin-top:6px;font-size:11px}.dialog-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));opacity:0;pointer-events:none;z-index:50;background:#0a0b0e99;justify-content:center;align-items:center;transition:opacity .14s;display:flex;position:fixed;inset:0}.dialog-overlay.open{opacity:1;pointer-events:auto}.dialog-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;max-width:420px;max-height:calc(100dvh - 40px);padding:20px 22px;transition:transform .14s;overflow-y:auto;transform:translateY(6px)scale(.98);box-shadow:0 12px 40px #00000073}.dialog-overlay.open .dialog-box{transform:translateY(0)scale(1)}.dialog-box h2{margin:0 0 10px;font-size:15px;font-weight:600}.dialog-box p{color:var(--muted);margin:0 0 10px;font-size:13px;line-height:1.6}.dialog-box p:last-of-type{margin-bottom:0}.dialog-box input[type=text]{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--text);font-size:16px;font-family:var(--font-ui);border-radius:6px;margin-top:4px;padding:10px 12px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.dialog-actions button{min-height:44px}@media (prefers-reduced-motion:reduce){.dialog-overlay,.dialog-box{transition:none}}.drop-overlay{z-index:40;background:#14161ae0;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.drop-overlay.show{display:flex}.drop-box{border:3px dashed var(--accent);text-align:center;color:var(--accent);pointer-events:none;border-radius:14px;padding:36px 44px;font-size:18px;font-weight:600}.drop-box small{color:var(--muted);margin-top:8px;font-size:13px;font-weight:400;display:block}@media (width<=860px){header.top p{flex-basis:auto}}
