.lib{background-color:var(--color-page-bg);flex-direction:column;height:100dvh;display:flex}.lib__header{background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.lib__back{width:36px;height:36px;color:var(--color-nav-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.lib__back:active{background-color:var(--color-border-light)}.lib__title{color:var(--color-nav-text);margin:0;font-family:Georgia,serif;font-size:18px;font-weight:500}.lib__count{color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.lib__chips{white-space:nowrap;background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0;align-items:center;gap:6px;padding:10px 12px;display:flex;overflow:auto hidden}.lib__chips::-webkit-scrollbar{display:none}.lib__chip-sep{background-color:var(--color-border-warm);flex-shrink:0;width:1px;height:16px;margin:0 2px}.lib-chip{white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid;border-radius:15px;flex-shrink:0;align-items:center;gap:4px;min-height:30px;padding:5px 11px;font-size:13px;line-height:1.4;transition:background-color .12s;display:inline-flex}.lib-chip__count{opacity:.66;font-variant-numeric:tabular-nums;font-size:11px}.lib__list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:8px;padding:10px 12px 24px;display:flex;overflow-y:auto}.lib-card{text-align:left;border:1px solid var(--color-border-light);background-color:var(--color-card-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;width:100%;padding:12px 13px;transition:background-color .12s;display:block}.lib-card:active{background-color:var(--color-border-light)}.lib-card__title{color:var(--color-text-primary);word-break:break-word;overflow-wrap:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;font-weight:500;line-height:1.45;display:-webkit-box;overflow:hidden}.lib-card__meta{color:var(--color-text-tertiary);align-items:center;gap:8px;margin-top:6px;font-size:12px;display:flex}.lib-card__platform{color:var(--color-text-secondary)}.lib-card__open{color:var(--color-brand);white-space:nowrap;margin-left:auto}.lib-card__tags{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.lib-card__tag{opacity:.78;border:1px solid;border-radius:10px;align-items:center;padding:1px 7px;font-size:11px;line-height:1.5;display:inline-flex}.lib__hint{text-align:center;color:var(--color-text-tertiary);padding:40px 16px;font-size:14px}.lib__hint--error{color:var(--color-error)}.lib__retry{border:1px solid var(--color-ring-warm);background-color:var(--color-warm-sand);min-height:36px;color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;margin-top:12px;padding:8px 20px;font-size:14px}.tagpicker__backdrop{z-index:1000;background:#14141373;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tagpicker{background-color:var(--color-card-bg);width:100%;max-width:520px;max-height:76dvh;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.tagpicker__handle{background-color:var(--color-border-warm);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:4px auto 2px}.tagpicker__header{align-items:baseline;gap:8px;display:flex}.tagpicker__title{color:var(--color-text-primary);font-family:Georgia,serif;font-size:17px;font-weight:500}.tagpicker__count{color:var(--color-text-tertiary);margin-left:auto;font-size:13px}.tagpicker__grid{flex-wrap:wrap;gap:8px;display:flex}.tagpicker__chip{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid;border-radius:18px;min-height:36px;padding:7px 14px;font-size:14px;line-height:1.4;transition:background-color .12s}.tagpicker__hint{text-align:center;color:var(--color-text-tertiary);padding:24px 0;font-size:14px}.tagpicker__error{color:var(--color-error);font-size:13px}.tagpicker__actions{gap:10px;margin-top:4px;display:flex}.tagpicker__btn{background-color:var(--color-warm-sand);min-height:44px;color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;flex:1;font-size:15px;font-weight:500}.tagpicker__btn--primary{background-color:var(--color-brand);color:var(--color-text-on-brand)}.tagpicker__btn:disabled{opacity:.55;cursor:default}
