:root{--text:#3f3a45;--text-h:#16131a;--text-muted:#8b8591;--bg:#faf9fb;--surface:#fff;--border:#e6e3e9;--accent:#ff6b35;--accent-text:#fff;--danger:#e63946;--shadow:#140f1e14 0 2px 10px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:16px/1.4 var(--sans);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d8d5dc;--text-h:#f4f2f6;--text-muted:#8b8591;--bg:#131217;--surface:#1c1b21;--border:#302e36;--shadow:#0006 0 2px 10px}}*{box-sizing:border-box}body{overscroll-behavior:none;margin:0}h1,h2{color:var(--text-h);margin:0;font-weight:600}h1{font-size:22px}h2{margin-bottom:16px;font-size:18px}button{font:inherit;color:inherit}input,textarea{font:inherit;color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;padding:10px 12px}.app-shell{background:var(--bg);max-width:560px;height:100svh;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex}.app-content{flex:1;min-height:0;overflow-y:auto}.tab-bar{border-top:1px solid var(--border);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);display:flex}.tab-item{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:12px;text-decoration:none;display:flex}.tab-item.active{color:var(--accent)}.tab-icon{font-size:22px}.page{padding:16px}.page-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-actions{gap:8px;display:flex}.error-banner{border:1px solid var(--danger);color:var(--danger);background:#e639461f;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px}.empty-hint{margin-top:6px;font-size:14px}.primary-button{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-weight:600}.secondary-button{border:1px solid var(--border);cursor:pointer;color:var(--text-h);background:0 0;border-radius:8px;padding:10px 16px}.danger-button{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:8px;margin-right:auto;padding:10px 16px}.icon-button{cursor:pointer;color:var(--text-h);background:0 0;border:none;padding:6px 8px}.icon-button.danger{color:var(--danger)}.topo-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.topo-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;box-shadow:var(--shadow);border-radius:12px;padding:0;overflow:hidden}.topo-card-image{aspect-ratio:4/3;background:var(--border);position:relative}.topo-card-image img{object-fit:cover;width:100%;height:100%;display:block}.topo-card-placeholder{background:var(--border);width:100%;height:100%}.topo-card-tag-count{color:#fff;background:#0009;border-radius:999px;padding:2px 6px;font-size:11px;position:absolute;bottom:6px;right:6px}.topo-card-info{padding:8px 10px}.topo-card-title{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.topo-card-subtitle{color:var(--text-muted);margin-top:2px;font-size:12px}.topo-detail{flex-direction:column;height:100svh;display:flex}.detail-header{padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.detail-title{color:var(--text-h);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:60%;font-size:15px;font-weight:600;overflow:hidden}.detail-subtitle{color:var(--text-muted);cursor:pointer;padding:4px 12px;font-size:13px}.annotation-viewport-wrap{flex:1;min-height:0;position:relative}.annotation-viewport{touch-action:none;background:#0b0a0d;width:100%;height:100%;position:relative;overflow:hidden}.annotation-layer{transform-origin:0 0;position:absolute;top:0;left:0}.annotation-layer img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.annotation-hint{color:#fff;pointer-events:none;background:#0000008c;border-radius:999px;padding:4px 10px;font-size:12px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.zoom-reset-button{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:8px;padding:8px 12px;font-size:12px;position:absolute;bottom:12px;right:12px}.tag-marker{cursor:grab;touch-action:none;border:2px solid;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute}.tag-marker.selected{outline-offset:2px;outline:2px solid #fff}.tag-marker-label{color:#fff;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;max-width:26px;font-size:9px;font-weight:700;overflow:hidden}.tag-summary{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.tag-chip{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--text-h);border-left-width:3px;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;display:flex}.swatch{border-radius:999px;flex-shrink:0;width:12px;height:12px;display:inline-block}.sheet-backdrop{z-index:50;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:85vh;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:999px;width:36px;height:4px;margin:0 auto 12px}.field-label{color:var(--text-muted);margin:12px 0 4px;font-size:12px;font-weight:600;display:block}.sheet-actions{gap:8px;margin-top:20px;display:flex}.sheet-actions .primary-button,.sheet-actions .secondary-button{flex:1}.autocomplete{position:relative}.autocomplete-list{background:var(--surface);border:1px solid var(--border);z-index:5;max-height:160px;box-shadow:var(--shadow);border-radius:8px;margin-top:4px;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete-list li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px;display:flex}.autocomplete-list li:hover{background:var(--bg)}.color-palette{flex-wrap:wrap;gap:8px;display:flex}.swatch-button{cursor:pointer;border:2px solid #0000;border-radius:999px;width:28px;height:28px}.swatch-button.selected{border-color:var(--text-h)}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--bg);border:1px solid var(--border);cursor:pointer;color:var(--text-h);border-radius:999px;padding:6px 12px;font-size:13px}.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.inline-add{gap:6px;margin-top:8px;display:flex}.import-sheet{flex-direction:column;max-height:88vh;display:flex}.import-type-filter{flex-wrap:nowrap;margin-top:10px;padding-bottom:4px;overflow-x:auto}.import-empty{text-align:center;padding:24px 0}.select-all-row{border:none;border-bottom:1px solid var(--border);color:var(--accent);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 2px;font-size:13px;font-weight:600;display:flex}.import-count{color:var(--text-muted);font-weight:400}.import-list{flex-direction:column;flex:1;display:flex;overflow-y:auto}.import-row{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 2px;display:flex}.import-checkbox{border:1.5px solid var(--border);width:20px;height:20px;color:var(--accent-text);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.import-row.selected .import-checkbox{background:var(--accent);border-color:var(--accent)}.import-row-info{flex-direction:column;flex:1;min-width:0;display:flex}.import-row-name{color:var(--text-h);font-size:14px}.gear-list{flex-direction:column;gap:8px;display:flex}.gear-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.gear-row.dragging{opacity:.6}.drag-handle{cursor:grab;color:var(--text-muted);touch-action:none;background:0 0;border:none;padding:4px;font-size:18px}.gear-row-main{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:0;display:flex}.gear-row-name{color:var(--text-h);font-size:14px;font-weight:600}.gear-row-meta{color:var(--text-muted);font-size:12px}
