:root{--bg-canvas:#09090b;--bg-surface:#121215;--bg-elevated:#18181c;--bg-hover:#1c1c21;--bg-active:#24242b;--bg-glass:#121215e0;--bg-overlay:#09090bd1;--border-subtle:#ffffff12;--border-default:#ffffff1f;--border-strong:#ffffff38;--border-focus:#f4f4f673;--text-primary:#f4f4f6;--text-secondary:#a1a1aa;--text-muted:#71717a;--text-inverse:#09090b;--accent-primary:#f4f4f6;--accent-primary-text:#09090b;--accent-crimson:#e11d48;--accent-crimson-hover:#f43f5e;--accent-indigo:#6366f1;--accent-indigo-subtle:#6366f124;--tag-artist:#f59e0b;--tag-artist-bg:#f59e0b1f;--tag-species:#38bdf8;--tag-species-bg:#38bdf81f;--tag-character:#4ade80;--tag-character-bg:#4ade801f;--tag-general:#a1a1aa;--tag-general-bg:#a1a1aa1a;--tag-explicit:#f43f5e;--tag-explicit-bg:#f43f5e24;--status-success:#22c55e;--status-warning:#f59e0b;--status-danger:#f43f5e;--source-e621:#38bdf8;--source-e6ai:#06b6d4;--source-inkbunny:#a855f7;--source-danbooru:#f59e0b;--source-rule34:#4ade80;--header-height:52px;--subbar-height:40px;--rail-width:240px;--mobile-nav-height:56px;--radius-xs:6px;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-pill:9999px;--shadow-sm:0 2px 8px #0006;--shadow-md:0 8px 24px #0000008c;--shadow-lg:0 20px 50px #000000bf;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Outfit", var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.14s;--duration-normal:.22s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background-color:var(--bg-canvas);width:100%;height:100dvh;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:14px;line-height:1.5;overflow:hidden}input,textarea,select,button{font-family:inherit;font-size:inherit;color:inherit}input,textarea{-webkit-user-select:text;user-select:text}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none}a,input,select,textarea,[role=button],[role=tab]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:active:not(:disabled),[role=button]:active,[role=tab]:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-pill);background:#ffffff24}::-webkit-scrollbar-thumb:hover{background:#ffffff42}.btn-primary{border-radius:var(--radius-sm);background:var(--accent-primary);height:36px;color:var(--accent-primary-text);transition:transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) ease, opacity var(--duration-fast) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background:#fff}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{border-radius:var(--radius-sm);background:var(--bg-surface);height:36px;color:var(--text-primary);border:1px solid var(--border-default);transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.btn-secondary:hover:not(:disabled),.btn-secondary.active{background:var(--bg-hover);border-color:var(--border-strong)}.btn-danger{border-radius:var(--radius-sm);background:var(--accent-crimson);color:#fff;height:36px;transition:background-color var(--duration-fast) ease;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex}.btn-danger:hover:not(:disabled){background:var(--accent-crimson-hover)}.btn-sm{height:30px;padding:0 10px;font-size:12px}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-subtle)}.user-avatar-img{object-fit:cover;background:var(--bg-elevated);border-radius:50%;display:block}.user-avatar-emoji{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:50%;justify-content:center;align-items:center;line-height:1;display:inline-flex}.avatar-sm{width:28px;height:28px;font-size:15px}.avatar-md{width:36px;height:36px;font-size:18px}.avatar-lg{width:48px;height:48px;font-size:24px}.avatar-xl{width:88px;height:88px;font-size:40px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:.9s linear infinite spin}@keyframes pulse-shimmer{0%,to{opacity:.45}50%{opacity:.85}}@media (pointer:coarse){.icon-btn,.top-nav-icon-btn,.lightbox-btn,.video-ctrl-btn{min-width:44px;min-height:44px}}.app-boot-screen{background:var(--bg-canvas);width:100%;height:100dvh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:13px;display:flex}.boot-spinner,.spinner-xs{border:2px solid var(--border-default);border-top-color:var(--text-primary);border-radius:50%;width:24px;height:24px;animation:.75s linear infinite spin}.spinner-xs{width:14px;height:14px}.app-layout{background:var(--bg-canvas);flex-direction:column;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.app-layout.discreet-mode .booru-card-img,.app-layout.discreet-mode .booru-card-hover-video,.app-layout.discreet-mode .comic-cover-img,.app-layout.discreet-mode .theater-poster-img,.app-layout.discreet-mode .theater-hover-video,.app-layout.discreet-mode .vault-media,.app-layout.discreet-mode .lightbox-media-img,.app-layout.discreet-mode .lightbox-media-video{filter:blur(28px)brightness(.45);transition:filter .18s}.top-nav-bar{height:var(--header-height);min-height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:40;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:0 14px;display:flex;transform:translate(0,0)}.top-nav-left{flex-shrink:0;align-items:center;gap:14px;display:flex}.top-nav-brand{color:var(--text-primary);font-family:var(--font-display);letter-spacing:.06em;align-items:center;gap:8px;font-size:14px;font-weight:800;display:inline-flex}.top-nav-logo-mark{border-radius:var(--radius-xs);background:var(--text-primary);width:28px;height:28px;color:var(--bg-canvas);justify-content:center;align-items:center;display:flex}.top-nav-links{align-items:center;gap:4px;display:flex}.top-nav-link{border-radius:var(--radius-xs);height:34px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex}.top-nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.top-nav-link.active{color:var(--text-primary);background:var(--bg-active);font-weight:600}.top-nav-center{flex:1;align-items:center;gap:8px;min-width:0;max-width:720px;display:flex}.top-nav-search-form{background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:0;height:36px;transition:border-color var(--duration-fast) ease;flex:1;align-items:center;gap:6px;padding:0 6px 0 11px;display:flex}.top-nav-search-form:focus-within{border-color:var(--border-focus)}.top-nav-search-icon{color:var(--text-muted);flex-shrink:0}.top-nav-search-input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.top-nav-search-input::placeholder{color:var(--text-muted)}.top-nav-search-clear{border-radius:var(--radius-xs);width:24px;height:24px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.top-nav-search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.top-nav-search-submit{border-radius:var(--radius-xs);background:var(--bg-hover);height:26px;color:var(--text-primary);border:1px solid var(--border-subtle);flex-shrink:0;padding:0 10px;font-size:12px;font-weight:600}.top-nav-search-submit:hover:not(:disabled){background:var(--bg-active)}.top-nav-media-segmented{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-shrink:0;align-items:center;height:36px;padding:3px;display:inline-flex}.media-seg-btn{border-radius:var(--radius-xs);height:28px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.media-seg-btn:hover{color:var(--text-primary)}.media-seg-btn.active{background:var(--accent-primary);color:var(--accent-primary-text)}.top-nav-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.top-nav-apk-btn{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);height:34px;color:var(--text-primary);transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease;align-items:center;gap:6px;padding:0 11px;font-size:11.5px;font-weight:600;text-decoration:none;display:inline-flex}.top-nav-apk-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.top-nav-icon-btn{border-radius:var(--radius-xs);width:34px;height:34px;color:var(--text-secondary);background:var(--bg-canvas);border:1px solid var(--border-subtle);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;justify-content:center;align-items:center;display:inline-flex}.top-nav-icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.top-nav-icon-btn.active-warning{color:var(--status-warning);background:#f59e0b1a;border-color:#f59e0b59}.top-nav-icon-btn.admin-trigger{color:var(--accent-crimson-hover)}.top-nav-credits-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);height:34px;color:var(--text-primary);align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.top-nav-credits-pill:hover{background:var(--bg-hover);border-color:var(--border-default)}.top-nav-signin-btn{border-radius:var(--radius-xs);background:var(--accent-primary);height:34px;color:var(--accent-primary-text);align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.top-nav-avatar-btn{border:1px solid var(--border-default);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;overflow:hidden}.top-nav-avatar-btn.active{border-color:var(--text-primary)}.app-workspace{flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.main-content{background:var(--bg-canvas);flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.booru-tag-rail{width:var(--rail-width);min-width:var(--rail-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:25;flex-direction:column;gap:16px;height:100%;padding:12px 10px 28px;display:flex;overflow-y:auto}.booru-rail-mobile-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-bottom:10px;display:none}.booru-rail-mobile-title{color:var(--text-primary);font-size:14px;font-weight:700}.booru-rail-close-btn{border-radius:var(--radius-xs);width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.booru-rail-section{flex-direction:column;gap:7px;display:flex}.booru-rail-heading-row{justify-content:space-between;align-items:center;display:flex}.booru-rail-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.booru-rail-clear-link{color:var(--text-secondary);font-size:11px;text-decoration:underline}.booru-active-tokens{flex-wrap:wrap;gap:5px;display:flex}.booru-query-token{border-radius:var(--radius-xs);background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-default);align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.booru-query-token.excluded{background:var(--tag-explicit-bg);color:var(--tag-explicit);border-color:#f43f5e4d}.booru-rail-source-list{flex-direction:column;gap:2px;display:flex}.booru-source-row{border-radius:var(--radius-xs);height:30px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease;align-items:center;gap:8px;padding:0 8px;font-size:12px;display:flex}.booru-source-row:hover{background:var(--bg-hover);color:var(--text-primary)}.booru-source-row.active{background:var(--bg-active);color:var(--text-primary);font-weight:600}.source-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.dot-all{background:var(--text-primary)}.dot-e621,.source-e621{background:var(--source-e621)}.dot-e6ai,.source-e6ai{background:var(--source-e6ai)}.dot-inkbunny,.source-inkbunny{background:var(--source-inkbunny)}.dot-danbooru,.source-danbooru{background:var(--source-danbooru)}.dot-rule34,.source-rule34{background:var(--source-rule34)}.source-row-name{text-align:left;flex:1}.source-lock-icon{color:var(--text-muted)}.booru-orientation-pills{flex-wrap:wrap;gap:4px;display:flex}.booru-ori-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);color:var(--text-secondary);border:1px solid var(--border-subtle);padding:4px 8px;font-size:11px;font-weight:500}.booru-ori-pill:hover{color:var(--text-primary);border-color:var(--border-default)}.booru-ori-pill.active{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary);font-weight:600}.booru-guest-lock-card{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);color:var(--text-secondary);text-align:left;align-items:flex-start;gap:8px;padding:9px 10px;display:flex}.booru-guest-lock-text{flex-direction:column;gap:2px;font-size:11px;display:flex}.booru-guest-lock-text strong{color:var(--text-primary);font-size:12px}.booru-tag-list{flex-direction:column;gap:1px;list-style:none;display:flex}.booru-tag-item{border-radius:var(--radius-xs);align-items:center;gap:5px;min-height:26px;padding:2px 4px;display:flex}.booru-tag-item:hover{background:var(--bg-hover)}.booru-tag-ops{opacity:.55;transition:opacity var(--duration-fast) ease;align-items:center;gap:2px;display:inline-flex}.booru-tag-item:hover .booru-tag-ops{opacity:1}.tag-op-btn{background:var(--bg-canvas);border:1px solid var(--border-subtle);width:17px;height:17px;color:var(--text-secondary);border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.tag-op-btn.include:hover{color:var(--tag-character);border-color:var(--tag-character)}.tag-op-btn.exclude:hover{color:var(--tag-explicit);border-color:var(--tag-explicit)}.booru-tag-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.tag-color-artist{color:var(--tag-artist)}.tag-color-species{color:var(--tag-species)}.tag-color-character{color:var(--tag-character)}.tag-color-general{color:var(--text-secondary)}.booru-tag-item:hover .tag-color-general{color:var(--text-primary)}.booru-tag-count{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.mobile-bottom-nav{width:100%;height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-surface);border-top:1px solid var(--border-subtle);z-index:45;flex-shrink:0;justify-content:space-around;align-items:center;display:none}.mobile-nav-item{height:var(--mobile-nav-height);color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:600;display:flex}.mobile-nav-item.active{color:var(--text-primary)}.mobile-rail-backdrop{background:var(--bg-overlay);z-index:55;position:fixed;inset:0}@media (width<=1024px){.booru-tag-rail{z-index:60;width:280px;transition:transform var(--duration-normal) var(--ease-out);box-shadow:var(--shadow-lg);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.booru-tag-rail.mobile-open{transform:translate(0)}.booru-rail-mobile-header{display:flex}}@media (width<=768px){.top-nav-links{display:none}.top-nav-bar{height:auto;min-height:var(--header-height);padding:max(10px, calc(env(safe-area-inset-top,0px) + 8px)) 10px 8px;will-change:transform;flex-wrap:wrap;gap:8px;transform:translate(0,0)}.top-nav-left{order:1}.top-nav-right{order:2;gap:6px;margin-left:auto}.top-nav-center{flex-direction:column;flex:100%;order:3;align-items:stretch;gap:6px;width:100%;max-width:100%}.top-nav-center.hide-on-mobile-non-explore{display:none!important}.top-nav-search-form{border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-strong);flex:100%;width:100%;max-width:100%;height:42px;padding:0 6px 0 12px}.top-nav-search-input{height:100%;font-size:16px}.top-nav-search-submit{height:30px;padding:0 12px;font-size:12px}.top-nav-media-segmented,.top-nav-mode-switch{-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-wrap:nowrap;align-items:center;gap:4px;width:100%;height:38px;padding:3px;display:flex;overflow:auto hidden}.top-nav-media-segmented::-webkit-scrollbar{display:none}.top-nav-mode-switch::-webkit-scrollbar{display:none}.top-nav-apk-btn{padding:0 9px;font-size:11px}.media-seg-btn{white-space:nowrap;flex:1 0 auto;justify-content:center;min-width:fit-content;padding:0 10px;font-size:11.5px}.media-seg-btn span{display:inline}.mobile-bottom-nav{display:flex}}@media (height<=550px) and (orientation:landscape){:root{--header-height:42px;--subbar-height:34px;--mobile-nav-height:44px}}.explore-container{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:var(--bg-canvas);flex-direction:column;flex:1;width:100%;height:100%;display:flex;overflow:hidden auto}.booru-subbar{height:var(--subbar-height);min-height:var(--subbar-height);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);z-index:20;will-change:transform, opacity;background:#09090bf5;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:0 14px;transition:transform .18s cubic-bezier(.22,1,.36,1),opacity .15s;display:flex;position:sticky;top:0;transform:translate(0,0)}@media (pointer:coarse),(width<=768px){.booru-subbar{-webkit-backdrop-filter:none;background:#09090b}}.booru-subbar.ducked{opacity:0;pointer-events:none;transform:translateY(-100%)}.booru-subbar-left{scrollbar-width:none;flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow-x:auto}.booru-subbar-left::-webkit-scrollbar{display:none}.booru-subbar-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.booru-subbar-btn{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);height:28px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.booru-subbar-btn:hover,.booru-subbar-btn.active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.mobile-only{display:none}.booru-subbar-sources{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.booru-source-chip{border-radius:var(--radius-xs);height:26px;color:var(--text-secondary);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.booru-source-chip:hover{color:var(--text-primary);background:var(--bg-surface)}.booru-source-chip.active{background:var(--bg-active);color:var(--text-primary);border-color:var(--border-default)}.booru-source-chip.locked{opacity:.55}.booru-guest-pill{border-radius:var(--radius-xs);height:26px;color:var(--tag-artist);white-space:nowrap;background:#f59e0b1a;border:1px solid #f59e0b47;flex-shrink:0;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.booru-guest-pill:hover{background:#f59e0b29}.booru-subbar-tokens{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.booru-subbar-token{border-radius:var(--radius-xs);background:var(--bg-surface);height:24px;color:var(--text-primary);border:1px solid var(--border-default);white-space:nowrap;align-items:center;gap:4px;padding:0 7px;font-size:11px;font-weight:600;display:inline-flex}.booru-subbar-token.excluded{background:var(--tag-explicit-bg);color:var(--tag-explicit);border-color:#f43f5e4d}.booru-sort-select{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);height:28px;color:var(--text-primary);cursor:pointer;outline:none;padding:0 8px;font-size:12px;font-weight:500}.booru-sort-select:hover{border-color:var(--border-default)}.booru-sort-select option{background:var(--bg-surface);color:var(--text-primary)}.explore-canvas-body{flex:1;padding:12px 14px 48px}.explore-masonry{column-width:245px;column-gap:12px;width:100%}.explore-masonry .booru-card{break-inside:avoid;width:100%;margin-bottom:12px}.booru-uniform-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;width:100%;display:grid}.booru-card{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;touch-action:manipulation;contain:layout paint;transition:border-color var(--duration-fast) ease, transform .11s var(--ease-out);position:relative;overflow:hidden}.booru-card:active{transform:scale(.98)}.booru-card:hover{border-color:var(--border-strong)}.booru-card-media-box{background:var(--bg-surface);width:100%;position:relative;overflow:hidden}.booru-card-skeleton,.skeleton-card{aspect-ratio:4/5;background:var(--bg-elevated);border-radius:var(--radius-sm);width:100%}.booru-card-skeleton{aspect-ratio:unset;height:100%;position:absolute;inset:0}.booru-card-img{opacity:0;width:100%;height:100%;transition:opacity .12s ease-out;display:block}.booru-card-img.visible{opacity:1}.booru-card-masonry .booru-card-img{object-fit:cover}.booru-card-uniform .booru-card-img{object-fit:cover;object-position:top center}.booru-card-hover-video{object-fit:cover;z-index:2;background:#000;width:100%;height:100%;position:absolute;inset:0}.booru-card-format-badge{z-index:4;color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.03em;pointer-events:none;background:#09090bd6;border:1px solid #ffffff1f;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.booru-card-save-btn{z-index:5;border-radius:var(--radius-xs);width:30px;height:30px;color:var(--text-primary);opacity:0;transition:opacity var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-fast) ease;background:#09090bc7;border:1px solid #ffffff1f;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:8px;right:8px}.booru-card:hover .booru-card-save-btn,.theater-card:hover .booru-card-save-btn,.booru-card-save-btn.saved{opacity:1}.booru-card-save-btn.saved{background:var(--accent-crimson);border-color:var(--accent-crimson-hover);color:#fff}.booru-card-save-btn:hover{transform:scale(1.06)}.booru-card-meta-bar{z-index:4;opacity:0;transition:opacity var(--duration-fast) ease;background:linear-gradient(#0000 0%,#09090b80 40%,#09090beb 100%);justify-content:space-between;align-items:center;gap:6px;padding:20px 8px 6px;display:flex;position:absolute;bottom:0;left:0;right:0}.booru-card:hover .booru-card-meta-bar{opacity:1}.booru-card-meta-left{align-items:center;gap:5px;min-width:0;display:flex}.booru-source-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.booru-card-artist-btn{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.booru-card-artist-btn:hover{color:var(--tag-artist);text-decoration:underline}.booru-card-artist-fallback{color:var(--text-secondary);font-size:10px;font-weight:600}.booru-card-score{font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;font-size:10px;font-weight:600}.booru-card-meta-right{flex-shrink:0;align-items:center;gap:5px;display:flex}.booru-card-vote-btn{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-secondary);transition:all var(--duration-fast) ease;background:#ffffff14;border:1px solid #ffffff1f;justify-content:center;align-items:center;padding:0;display:inline-flex}.booru-card-vote-btn:hover{color:var(--text-primary);background:#fff3;transform:scale(1.1)}.booru-card-vote-btn.up.active{color:#34d399;background:#10b98159;border-color:#10b981cc}.booru-card-vote-btn.down.active{color:#f87171;background:#ef444459;border-color:#ef4444cc}.lightbox-btn.active-upvote,.mobile-thumb-action.active-upvote{color:#34d399!important;background:#10b98133!important;border-color:#10b981b3!important}.lightbox-btn.active-downvote,.mobile-thumb-action.active-downvote{color:#f87171!important;background:#ef444433!important;border-color:#ef4444b3!important}.comics-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;width:100%;display:grid}.comic-card{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;transition:border-color var(--duration-fast) ease, transform var(--duration-fast) ease;flex-direction:column;display:flex;overflow:hidden}.comic-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.comic-cover-wrapper{aspect-ratio:3/4;background:var(--bg-elevated);width:100%;position:relative;overflow:hidden}.comic-cover-img{object-fit:cover;object-position:top center;width:100%;height:100%}.comic-cover-placeholder{width:100%;height:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.comic-page-badge{color:var(--text-primary);background:#09090be0;border:1px solid #ffffff24;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;bottom:8px;right:8px}.comic-info{flex-direction:column;gap:4px;padding:10px 12px;display:flex}.comic-title{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:700;display:-webkit-box;overflow:hidden}.comic-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;display:-webkit-box;overflow:hidden}.theater-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;width:100%;display:grid}.theater-card{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;transition:border-color var(--duration-fast) ease;flex-direction:column;display:flex;overflow:hidden}.theater-card:hover{border-color:var(--border-strong)}.theater-video-wrapper{aspect-ratio:16/9;background:#000;width:100%;position:relative;overflow:hidden}.theater-poster-img,.theater-hover-video{object-fit:cover;width:100%;height:100%;display:block}.theater-hover-video{z-index:2;position:absolute;inset:0}.theater-play-indicator{color:var(--text-primary);pointer-events:none;transition:opacity var(--duration-fast) ease;background:#00000040;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.theater-card:hover .theater-play-indicator{opacity:0}.theater-format-badge{z-index:3;color:var(--text-primary);font-family:var(--font-mono);background:#09090be0;border:1px solid #ffffff24;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;bottom:8px;right:8px}.theater-meta{padding:8px 10px}.theater-meta-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.theater-artist{color:var(--tag-artist);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.theater-score{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.empty-state{text-align:center;width:100%;min-height:320px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:32px 16px;display:flex}.empty-state h3{color:var(--text-primary);font-size:16px;font-weight:700}.empty-state p{color:var(--text-muted);max-width:380px;font-size:13px}.infinite-scroll-sentinel{justify-content:center;align-items:center;width:100%;min-height:64px;padding:16px 0;display:flex}.loading-more-pill{border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:8px;padding:6px 14px;font-size:12px;display:inline-flex}.end-of-feed-label{color:var(--text-muted);font-size:12px}.filter-modal-box{flex-direction:column;width:min(640px,94vw);max-height:84dvh;display:flex}.filter-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;padding:16px 18px;display:flex}.filter-modal-header h3{color:var(--text-primary);font-size:16px;font-weight:700}.filter-modal-header p{color:var(--text-muted);font-size:12px}.filter-modal-body{flex-direction:column;flex:1;gap:18px;padding:16px 18px;display:flex;overflow-y:auto}.filter-group-block{flex-direction:column;gap:8px;display:flex}.filter-group-block h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:12px;font-weight:700}.filter-chip-grid{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);height:30px;color:var(--text-secondary);padding:0 11px;font-size:12px;font-weight:500}.filter-chip:hover{color:var(--text-primary);border-color:var(--border-default)}.filter-chip.active{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary);font-weight:600}.filter-tag-dual-chip{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);align-items:center;height:28px;display:inline-flex;overflow:hidden}.filter-tag-dual-chip.included{border-color:var(--tag-character);background:var(--tag-character-bg)}.filter-tag-dual-chip.excluded{border-color:var(--tag-explicit);background:var(--tag-explicit-bg)}.dual-chip-main{height:100%;color:var(--text-primary);padding:0 9px;font-size:12px}.dual-chip-exclude{height:100%;color:var(--text-muted);border-left:1px solid var(--border-subtle);padding:0 7px;font-size:12px}.dual-chip-exclude:hover{background:var(--tag-explicit-bg);color:var(--tag-explicit)}.filter-modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px;display:flex}@media (width<=1024px){.desktop-only{display:none}.mobile-only{display:inline-flex}}@media (width<=768px){.explore-canvas-body{padding:8px 8px 24px}.explore-masonry{column-count:unset;column-width:unset;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.explore-masonry .booru-card{margin-bottom:0}.explore-masonry .booru-card-media-box{aspect-ratio:4/5!important}.explore-masonry .booru-card-img{object-fit:cover;object-position:top center}.booru-uniform-grid,.comics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.theater-grid{grid-template-columns:1fr;gap:10px}.booru-card-save-btn,.booru-card-meta-bar{opacity:1}.hide-xs{display:none}}.media-lightbox{z-index:100;-webkit-user-select:none;user-select:none;background:#09090bf7;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.lightbox-topbar{z-index:20;min-height:54px;transition:opacity var(--duration-normal) ease, transform var(--duration-normal) var(--ease-out);background:linear-gradient(#09090beb 0%,#09090b8c 70%,#0000 100%);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex;position:absolute;top:0;left:0;right:0}.lightbox-topbar.ui-hidden,.lightbox-nav.ui-hidden,.viewer-filmstrip.ui-hidden,.lightbox-mobile-thumb-bar.ui-hidden,.video-controls-bar.ui-hidden{opacity:0;pointer-events:none}.lightbox-meta-left{flex-shrink:0;align-items:center;gap:8px;display:flex}.lightbox-counter-badge{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);font-family:var(--font-mono);padding:3px 8px;font-size:11px;font-weight:600}.source-badge{border-radius:var(--radius-xs);letter-spacing:.05em;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);padding:3px 8px;font-size:10px;font-weight:800}.lightbox-score{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px;font-weight:600}.lightbox-top-tags-bar{scrollbar-width:none;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.lightbox-top-tags-bar::-webkit-scrollbar{display:none}.lightbox-top-tag-pill{border-radius:var(--radius-xs);border:1px solid var(--border-subtle);height:26px;color:var(--text-secondary);white-space:nowrap;background:#18181cd9;flex-shrink:0;padding:0 9px;font-size:11px;font-weight:500}.lightbox-top-tag-pill:hover{color:var(--text-primary);border-color:var(--border-strong)}.lightbox-top-tag-pill.artist-pill{color:var(--tag-artist);background:var(--tag-artist-bg);border-color:#f59e0b40;font-weight:600}.lightbox-top-tag-pill.species-pill{color:var(--tag-species);background:var(--tag-species-bg);border-color:#38bdf840}.lightbox-actions-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.lightbox-btn{border-radius:var(--radius-xs);border:1px solid var(--border-default);width:36px;height:36px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;background:#121215d9;justify-content:center;align-items:center;display:inline-flex}.lightbox-btn:hover,.lightbox-btn.active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.lightbox-btn.saved,.lightbox-btn.close-btn:hover{background:var(--accent-crimson);border-color:var(--accent-crimson-hover);color:#fff}.slideshow-control-pill{border-radius:var(--radius-xs);border:1px solid var(--border-default);background:#121215d9;align-items:center;display:inline-flex;overflow:hidden}.slideshow-control-pill .lightbox-btn{border:none;border-radius:0;width:34px}.slideshow-speed-btn{height:36px;font-family:var(--font-mono);color:var(--text-secondary);border-left:1px solid var(--border-subtle);padding:0 8px;font-size:11px;font-weight:600}.slideshow-speed-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.slideshow-progress-track{z-index:30;background:#ffffff14;height:2px;position:absolute;top:0;left:0;right:0}.slideshow-progress-bar{background:var(--text-primary);height:100%;transition:width 50ms linear}.lightbox-nav{border:1px solid var(--border-default);width:46px;height:46px;color:var(--text-primary);z-index:18;transition:background-color var(--duration-fast) ease, opacity var(--duration-normal) ease;background:#121215d1;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:var(--bg-active);border-color:var(--border-strong)}.lightbox-nav.prev{left:16px}.lightbox-nav.next{right:16px}.lightbox-stage{touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;padding:58px 24px 72px;display:flex;position:relative;overflow:hidden}.lightbox-media-img{object-fit:contain;will-change:transform;border-radius:4px;max-width:100%;max-height:100%;transition:transform 60ms linear}.custom-video-theater{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.lightbox-media-video{object-fit:contain;outline:none;max-width:100%;max-height:100%}.video-controls-bar{border-radius:var(--radius-md);border:1px solid var(--border-default);z-index:22;width:min(760px,92vw);transition:opacity var(--duration-normal) ease;background:#121215eb;flex-direction:column;gap:8px;padding:10px 14px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.video-scrubber-track{cursor:pointer;touch-action:none;align-items:center;width:100%;height:18px;display:flex;position:relative}.video-scrubber-track:before{content:"";border-radius:var(--radius-pill);background:#ffffff24;height:5px;position:absolute;left:0;right:0}.video-scrubber-buffered{border-radius:var(--radius-pill);pointer-events:none;background:#ffffff47;height:5px;position:absolute;left:0}.video-scrubber-progress{border-radius:var(--radius-pill);background:var(--text-primary);pointer-events:none;height:5px;position:relative}.video-scrubber-thumb{background:#fff;border-radius:50%;width:13px;height:13px;position:absolute;top:50%;right:-6px;transform:translateY(-50%);box-shadow:0 1px 4px #0009}.video-scrubber-tooltip{background:var(--bg-canvas);border:1px solid var(--border-default);color:var(--text-primary);font-family:var(--font-mono);pointer-events:none;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;bottom:24px;transform:translate(-50%)}.video-controls-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.video-controls-left,.video-controls-right{align-items:center;gap:8px;display:flex}.video-ctrl-btn{border-radius:var(--radius-xs);width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.video-ctrl-btn:hover,.video-ctrl-btn.active{color:var(--text-primary);background:var(--bg-hover)}.video-ctrl-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);height:26px;color:var(--text-primary);font-family:var(--font-mono);padding:0 8px;font-size:11px;font-weight:600}.video-volume-group{align-items:center;gap:6px;display:inline-flex}.video-volume-slider{width:72px;accent-color:var(--text-primary);cursor:pointer}.video-time-readout{font-family:var(--font-mono);color:var(--text-secondary);font-size:11px}.album-picker-anchor{position:relative}.viewer-album-popover{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);width:240px;box-shadow:var(--shadow-lg);z-index:40;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.viewer-album-popover-header{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.viewer-album-close{color:var(--text-muted)}.viewer-album-inline-create{gap:4px;display:flex}.viewer-album-inline-create input{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);min-width:0;height:28px;color:var(--text-primary);outline:none;flex:1;padding:0 8px;font-size:12px}.viewer-album-inline-create button{border-radius:var(--radius-xs);background:var(--accent-primary);width:28px;height:28px;color:var(--accent-primary-text);justify-content:center;align-items:center;display:inline-flex}.viewer-album-list{flex-direction:column;gap:2px;max-height:180px;display:flex;overflow-y:auto}.viewer-album-option{border-radius:var(--radius-xs);height:30px;color:var(--text-secondary);justify-content:space-between;align-items:center;padding:0 8px;font-size:12px;display:flex}.viewer-album-option:hover,.viewer-album-option.active{background:var(--bg-hover);color:var(--text-primary)}.lightbox-similar-drawer,.viewer-tag-drawer{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);width:min(340px,92vw);box-shadow:var(--shadow-lg);z-index:35;flex-direction:column;display:flex;position:absolute;top:56px;bottom:72px;right:12px;overflow:hidden}.similar-drawer-header,.tag-drawer-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.similar-drawer-title{align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.tag-drawer-header h4{font-size:13px;font-weight:700}.similar-drawer-body,.tag-drawer-body{flex-direction:column;flex:1;gap:16px;padding:12px 14px;display:flex;overflow-y:auto}.similar-section{flex-direction:column;gap:8px;display:flex}.similar-section-head{color:var(--text-secondary);justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.similar-search-all-btn{color:var(--tag-artist);font-size:11px;font-weight:600}.similar-mini-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.similar-mini-card{aspect-ratio:1;border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);overflow:hidden}.similar-mini-card img{object-fit:cover;width:100%;height:100%}.similar-empty-hint{color:var(--text-muted);font-size:12px}.tag-drawer-group{flex-direction:column;gap:6px;display:flex}.tag-group-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px;font-weight:700}.tag-pill-wrap{flex-wrap:wrap;gap:5px;display:flex}.drawer-tag-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:4px 8px;font-size:11px;font-weight:500}.drawer-tag-pill:hover{border-color:var(--border-strong);color:var(--text-primary)}.drawer-tag-pill.tag-artist{color:var(--tag-artist);background:var(--tag-artist-bg)}.drawer-tag-pill.tag-character{color:var(--tag-character);background:var(--tag-character-bg)}.drawer-tag-pill.tag-species{color:var(--tag-species);background:var(--tag-species-bg)}.viewer-filmstrip{border-radius:var(--radius-sm);border:1px solid var(--border-default);scrollbar-width:none;z-index:18;max-width:min(860px,92vw);height:50px;transition:opacity var(--duration-normal) ease;background:#121215e0;align-items:center;gap:5px;padding:4px 6px;display:flex;position:absolute;bottom:10px;left:50%;overflow-x:auto;transform:translate(-50%)}.viewer-filmstrip::-webkit-scrollbar{display:none}.filmstrip-thumb{opacity:.45;width:40px;height:40px;transition:opacity var(--duration-fast) ease, border-color var(--duration-fast) ease;border:1px solid #0000;border-radius:4px;flex-shrink:0;overflow:hidden}.filmstrip-thumb.active,.filmstrip-thumb:hover{opacity:1;border-color:var(--text-primary)}.filmstrip-thumb img{object-fit:cover;width:100%;height:100%}.lightbox-mobile-thumb-bar{height:calc(58px + env(safe-area-inset-bottom,0px));padding:0 6px env(safe-area-inset-bottom,0px);border-top:1px solid var(--border-default);z-index:25;background:#0c0c0ff2;justify-content:space-around;align-items:center;display:none;position:absolute;bottom:0;left:0;right:0}.mobile-thumb-action{height:52px;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:600;display:flex}.mobile-thumb-action.active{color:var(--text-primary)}.mobile-thumb-action.saved{color:var(--accent-crimson-hover)}.comic-reader-overlay{background:var(--bg-canvas);z-index:95;flex-direction:column;width:100vw;height:100dvh;display:flex;position:fixed;inset:0;overflow:hidden}.comic-reader-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;height:52px;min-height:52px;padding:0 16px;display:flex}.comic-reader-title-group{align-items:center;gap:10px;min-width:0;display:flex}.comic-reader-title-group h2{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.comic-reader-controls{align-items:center;gap:8px;display:flex}.comic-reader-body{flex-direction:column;flex:1;align-items:center;gap:12px;padding:16px 12px 48px;display:flex;overflow-y:auto}.comic-page-container{flex-direction:column;align-items:center;width:100%;max-width:min(920px,100%);display:flex;position:relative}.comic-page-img{border-radius:4px;max-width:100%;height:auto;display:block}@media (width<=768px){.lightbox-actions-right .lightbox-btn:not(.close-btn),.lightbox-actions-right .slideshow-control-pill,.lightbox-actions-right .album-picker-anchor,.viewer-filmstrip{display:none}.lightbox-mobile-thumb-bar{display:flex}.lightbox-stage{padding:50px 0 64px}.video-controls-bar{width:94vw;bottom:68px}.video-volume-slider{display:none}.lightbox-nav{width:38px;height:38px}.lightbox-nav.prev{left:8px}.lightbox-nav.next{right:8px}}.comic-reading-progress-track{z-index:30;background:#ffffff14;height:3px;position:absolute;top:0;left:0;right:0}.comic-reading-progress-bar{background:var(--text-primary);height:100%;transition:width 80ms linear}.comic-reader-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.comic-reader-center{align-items:center;gap:10px;display:flex}.comic-mode-switcher,.comic-autoscroll-group{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);align-items:center;gap:4px;padding:3px;display:inline-flex}.comic-speed-pill{border-radius:var(--radius-xs);height:26px;font-family:var(--font-mono);color:var(--text-secondary);padding:0 8px;font-size:11px;font-weight:600}.comic-speed-pill.active,.comic-speed-pill:hover{background:var(--bg-active);color:var(--text-primary)}.comic-reader-close{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);width:34px;height:34px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.comic-reader-close:hover{background:var(--accent-crimson);color:#fff}.comic-reader-scroll-area{flex-direction:column;flex:1;align-items:center;width:100%;padding:16px 12px 64px;display:flex;overflow-y:auto}.comic-pages-container{flex-direction:column;align-items:center;gap:8px;width:100%;max-width:900px;display:flex}.comic-page-wrapper{background:var(--bg-surface);border-radius:4px;justify-content:center;width:100%;display:flex;overflow:hidden}.comic-manga-stage{flex:1;justify-content:center;align-items:center;width:100%;height:100%;padding:16px;display:flex;position:relative}.comic-manga-media-wrap{justify-content:center;align-items:center;max-width:100%;max-height:100%;display:flex}.comic-manga-media{object-fit:contain;max-width:100%;max-height:calc(100dvh - 110px)}.comic-nav-arrow{border:1px solid var(--border-default);width:44px;height:44px;color:var(--text-primary);z-index:15;background:#121215d9;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.comic-floating-nav-btn{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-default);height:34px;color:var(--text-primary);padding:0 12px;font-size:12px;font-weight:600}.comic-floating-nav-counter{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.comic-reader-end{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.comic-retry-btn{border-radius:var(--radius-sm);background:var(--accent-primary);height:36px;color:var(--accent-primary-text);padding:0 16px;font-weight:600}.vault-container{background:var(--bg-canvas);flex-direction:row;flex:1;width:100%;height:100%;display:flex;overflow:hidden}.vault-sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:10px;width:240px;height:100%;padding:14px 10px;display:flex;overflow-y:auto}.vault-sidebar-header{justify-content:space-between;align-items:center;padding:0 6px;display:flex}.vault-sidebar-header h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:700}.vault-new-folder-btn{border-radius:var(--radius-xs);background:var(--bg-elevated);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.vault-new-folder-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.vault-folder{border-radius:var(--radius-sm);min-height:36px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease;border:1px solid #0000;align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:500;display:flex}.vault-folder:hover,.vault-folder.drag-over{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.vault-folder.active{background:var(--bg-active);color:var(--text-primary);border-color:var(--border-strong);font-weight:600}.vault-folder .folder-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.vault-folder .folder-count{border-radius:var(--radius-pill);background:var(--bg-canvas);font-family:var(--font-mono);color:var(--text-muted);padding:1px 6px;font-size:10px}.vault-folder-actions{opacity:0;transition:opacity var(--duration-fast) ease;align-items:center;gap:2px;display:inline-flex}.vault-folder:hover .vault-folder-actions,.vault-folder.active .vault-folder-actions{opacity:1}.vault-folder-actions button{border-radius:var(--radius-xs);width:24px;height:24px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.vault-folder-actions button:hover{background:var(--bg-canvas);color:var(--text-primary)}.vault-folder-actions button.danger:hover{color:var(--status-danger)}.vault-sidebar-hint{color:var(--text-muted);margin-top:auto;padding:8px;font-size:11px;line-height:1.4}.vault-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:10px;width:100%;min-width:0;max-width:100%;padding:12px 20px;display:flex}.vault-mobile-chips-bar{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:6px;width:100%;min-width:0;max-width:100%;padding-bottom:4px;display:flex;touch-action:pan-x!important;overflow:auto hidden!important}.vault-mobile-chips-bar::-webkit-scrollbar{display:none}.vault-chip{border-radius:var(--radius-pill);background:var(--bg-elevated);border:1px solid var(--border-subtle);height:32px;color:var(--text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:600;display:inline-flex;touch-action:pan-x manipulation!important}.vault-chip.active{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary)}.vault-header-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.vault-header-title{font-size:18px;font-weight:800;font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:8px;display:flex}.vault-header-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vault-search-box{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:center;gap:8px;width:280px;height:36px;padding:0 10px;display:flex}.vault-search-box:focus-within{border-color:var(--border-focus)}.vault-search-icon{color:var(--text-muted);flex-shrink:0}.vault-search-input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.vault-search-input::placeholder{color:var(--text-muted)}.vault-search-clear{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.vault-search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.vault-scale-btn{border-radius:var(--radius-xs);height:28px;color:var(--text-secondary);align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex}.vault-scale-btn:hover{color:var(--text-primary)}.vault-scale-btn.active{background:var(--accent-primary);color:var(--accent-primary-text)}.vault-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex:1;width:100%;padding:16px 20px 72px;overflow-y:auto}.vault-masonry-grid,.vault-grid,.masonry-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;width:100%;display:grid}.vault-masonry-grid.scale-compact{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:8px}.vault-masonry-grid.scale-normal{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.vault-masonry-grid.scale-large{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.vault-card,.masonry-item{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);aspect-ratio:4/5;cursor:pointer;touch-action:manipulation;contain:layout paint;transition:transform .11s var(--ease-out), border-color var(--duration-fast) ease;position:relative;overflow:hidden}.vault-card:active{transform:scale(.98)}.vault-card:hover,.masonry-item:hover{border-color:var(--border-strong)}.vault-card img,.vault-card video,.vault-video-wrap,.vault-media{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.vault-card-type-badge{z-index:3;border-radius:var(--radius-xs);border:1px solid var(--border-default);color:var(--text-primary);pointer-events:none;background:#09090bd9;align-items:center;gap:4px;padding:3px 8px;font-size:10.5px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.vault-card-overlay,.vault-overlay,.item-overlay{opacity:0;transition:opacity var(--duration-fast) ease;background:linear-gradient(#0000 0%,#09090b4d 55%,#09090beb 100%);justify-content:space-between;align-items:flex-end;gap:8px;padding:10px;display:flex;position:absolute;inset:0}.vault-card:hover .vault-card-overlay,.vault-card:hover .vault-overlay,.masonry-item:hover .item-overlay{opacity:1}@media (pointer:coarse){.vault-card .vault-card-overlay{opacity:1;background:linear-gradient(#0000 55%,#09090bd9 100%)}}.vault-card-meta{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;min-width:0;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.vault-card-actions{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.vault-folder-select-wrap{display:inline-flex;position:relative}.vault-folder-select-native{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.vault-card-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.vault-card-btn.saved{color:var(--accent-secondary)}.vault-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;max-width:440px;margin:0 auto;padding:64px 20px;display:flex}.vault-empty-icon{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);width:52px;height:52px;color:var(--text-secondary);justify-content:center;align-items:center;margin-bottom:4px;display:flex}.vault-empty-title{color:var(--text-primary);font-size:16px;font-weight:700}.vault-empty-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.vault-empty-actions{align-items:center;gap:10px;margin-top:8px;display:flex}.vault-cta{border-radius:var(--radius-sm);align-items:center;gap:6px;height:36px;padding:0 14px;font-size:12.5px;font-weight:600;display:inline-flex}.vault-cta.primary{background:var(--accent-primary);color:var(--accent-primary-text)}.vault-cta.secondary{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary)}.companion-hub-container{flex-direction:column;flex:1;gap:24px;width:100%;height:100%;padding:20px 24px 64px;display:flex;overflow-y:auto}.hub-hero-banner{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.hub-hero-content{flex-direction:column;gap:6px;max-width:580px;display:flex}.hub-hero-content h1,.hub-hero-content h2{font-size:22px;font-weight:800;font-family:var(--font-display)}.hub-hero-content p{color:var(--text-secondary);font-size:13px}.hub-hero-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hub-section{flex-direction:column;gap:12px;display:flex}.hub-section-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.hub-section-header h3{font-size:15px;font-weight:700}.personas-grid,.character-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;display:grid}.persona-card,.character-card{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;flex-direction:column;justify-content:space-between;gap:12px;padding:16px;display:flex}.persona-card:hover,.character-card:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.persona-card-top{align-items:flex-start;gap:12px;display:flex}.persona-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.persona-name-row{align-items:center;gap:6px;display:flex}.persona-name{color:var(--text-primary);font-size:15px;font-weight:700}.persona-species{color:var(--tag-species);font-size:11px;font-weight:600}.persona-desc{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.persona-tags{flex-wrap:wrap;gap:5px;display:flex}.persona-tag-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-muted);padding:2px 7px;font-size:10px;font-weight:600}.chat-workspace-layout{flex-direction:row}.chat-container{background:var(--bg-canvas);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.chat-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;height:54px;min-height:54px;padding:0 16px;display:flex}.chat-header-left{align-items:center;gap:10px;min-width:0;display:flex}.chat-header-info{flex-direction:column;min-width:0;display:flex}.chat-header-info h3{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.chat-header-status{color:var(--text-muted);font-size:11px}.chat-header-actions{align-items:center;gap:6px;display:flex}.messages-area,.chat-messages{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.message-row,.message-wrapper{gap:10px;max-width:min(740px,88%);display:flex}.message-row.user,.message-wrapper.user{flex-direction:row-reverse;align-self:flex-end}.message-row.ai,.message-wrapper.ai{align-self:flex-start}.message-bubble{border-radius:var(--radius-md);white-space:pre-wrap;word-break:break-word;padding:11px 14px;font-size:13.5px;line-height:1.55}.message-row.ai .message-bubble,.message-wrapper.ai .message-bubble{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-primary)}.message-row.user .message-bubble,.message-wrapper.user .message-bubble{background:var(--bg-active);border:1px solid var(--border-default);color:var(--text-primary)}.chat-input-area,.chat-input-container{background:var(--bg-surface);border-top:1px solid var(--border-subtle);align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.chat-input-box,.chat-textarea{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);min-height:40px;max-height:140px;color:var(--text-primary);resize:none;outline:none;flex:1;padding:9px 12px;font-size:13px}.chat-input-box:focus,.chat-textarea:focus{border-color:var(--border-focus)}.right-sidebar{background:var(--bg-surface);border-left:1px solid var(--border-subtle);flex-direction:column;gap:16px;width:290px;min-width:290px;height:100%;padding:16px;display:flex;overflow-y:auto}@media (width<=1024px){.right-sidebar{z-index:65;transition:transform var(--duration-normal) var(--ease-out);position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.right-sidebar.open{transform:translate(0)}}.profile-container,.settings-container{flex-direction:column;flex:1;gap:20px;width:100%;max-width:880px;height:100%;margin:0 auto;padding:24px 20px 64px;display:flex;overflow-y:auto}.profile-banner-card,.settings-section-card{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-direction:column;gap:14px;padding:20px;display:flex}.settings-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.settings-row:last-child{border-bottom:none}.auth-page-container,.auth-modal-backdrop{background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:120;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-card{border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-default);width:min(420px,100%);box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:24px;display:flex;position:relative}.auth-close-btn{border-radius:var(--radius-xs);width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex;position:absolute;top:14px;right:14px}.auth-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.auth-header{flex-direction:column;gap:6px;display:flex}.auth-brand-badge{font-family:var(--font-display);letter-spacing:.08em;color:var(--text-primary);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.auth-title{font-size:20px;font-weight:800;font-family:var(--font-display)}.auth-subtitle{color:var(--text-secondary);font-size:12.5px}.auth-tab-switcher{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);grid-template-columns:1fr 1fr;padding:3px;display:grid}.auth-tab-btn{border-radius:var(--radius-xs);height:32px;color:var(--text-secondary);font-size:12px;font-weight:600}.auth-tab-btn.active{background:var(--bg-active);color:var(--text-primary)}.auth-error-banner{border-radius:var(--radius-sm);background:var(--tag-explicit-bg);color:var(--tag-explicit);border:1px solid #f43f5e59;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-label{color:var(--text-secondary);font-size:12px;font-weight:600}.auth-input-wrap{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:center;gap:8px;height:38px;padding:0 11px;display:flex}.auth-input-wrap:focus-within{border-color:var(--border-focus)}.auth-input-icon{color:var(--text-muted);flex-shrink:0}.auth-input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.auth-options-row,.auth-age-gate-box{align-items:flex-start;gap:8px;display:flex}.auth-age-gate-box{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);padding:10px}.auth-checkbox-label{cursor:pointer;color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:12px;display:flex}.auth-checkbox-label input{display:none}.auth-checkbox-box{background:var(--bg-canvas);border:1px solid var(--border-strong);width:16px;height:16px;color:var(--bg-canvas);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.auth-checkbox-label input:checked+.auth-checkbox-box{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--accent-primary-text)}.auth-inline-link{color:var(--text-primary);font-weight:600;text-decoration:underline}.auth-submit-btn{border-radius:var(--radius-sm);background:var(--accent-primary);height:40px;color:var(--accent-primary-text);justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.auth-divider{color:var(--text-muted);letter-spacing:.06em;align-items:center;gap:10px;font-size:10px;font-weight:700;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.auth-oauth-btn,.auth-guest-btn{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);height:38px;color:var(--text-primary);justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.auth-oauth-btn:hover,.auth-guest-btn:hover{background:var(--bg-hover)}.auth-trust-note{color:var(--text-muted);align-items:center;gap:6px;font-size:11px;display:flex}.auth-footer-links{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:11px;display:flex}.auth-footer-link:hover{color:var(--text-primary);text-decoration:underline}.admin-overlay{background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:110;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:20px;display:flex;position:fixed;inset:0}.admin-shell{border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-default);width:min(1120px,100%);height:min(760px,92dvh);box-shadow:var(--shadow-lg);display:flex;overflow:hidden}.admin-sidebar{background:var(--bg-canvas);border-right:1px solid var(--border-subtle);flex-direction:column;justify-content:space-between;width:230px;min-width:230px;padding:18px 12px;display:flex}.admin-brand{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:0 8px 16px;display:flex}.admin-brand-icon{color:var(--accent-crimson-hover)}.admin-brand-title{letter-spacing:.06em;font-size:13px;font-weight:800}.admin-brand-sub{color:var(--text-muted);font-size:11px}.admin-nav{flex-direction:column;flex:1;gap:4px;padding-top:14px;display:flex}.admin-nav-btn{border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);align-items:center;gap:9px;padding:0 10px;font-size:13px;font-weight:500;display:flex}.admin-nav-btn:hover{background:var(--bg-surface);color:var(--text-primary)}.admin-nav-btn.active{background:var(--bg-active);color:var(--text-primary);font-weight:600}.admin-exit-btn{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);width:100%;height:36px;color:var(--text-secondary);justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.admin-topbar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;height:54px;min-height:54px;padding:0 20px;display:flex}.admin-topbar-title h3{font-size:15px;font-weight:700}.admin-topbar-actions{align-items:center;gap:8px;display:flex}.admin-body{flex:1;padding:20px;overflow-y:auto}.admin-overview-section,.admin-users-section,.admin-config-section{flex-direction:column;gap:18px;display:flex}.admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.admin-stat-card{border-radius:var(--radius-md);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.admin-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.admin-stat-value{font-size:24px;font-weight:800;font-family:var(--font-display)}.admin-stat-value.status-online{color:var(--status-success)}.admin-stat-value.status-danger{color:var(--status-danger)}.admin-stat-meta{color:var(--text-secondary);font-size:11px}.admin-panel-card{border-radius:var(--radius-md);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:12px;padding:16px;display:flex}.admin-panel-card-header{justify-content:space-between;align-items:center;display:flex}.admin-search-bar{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:center;gap:8px;height:38px;padding:0 12px;display:flex}.admin-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.admin-user-list{flex-direction:column;gap:8px;display:flex}.admin-user-row{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.admin-user-identity{align-items:center;gap:10px;min-width:0;display:flex}.admin-user-avatar{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;display:flex;overflow:hidden}.admin-user-avatar img{object-fit:cover;width:100%;height:100%}.admin-user-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-user-name-line{align-items:center;gap:6px;display:flex}.admin-badge{border-radius:4px;padding:1px 6px;font-size:10px;font-weight:800}.admin-badge-role{background:var(--tag-explicit-bg);color:var(--tag-explicit)}.admin-badge-vip{background:var(--tag-artist-bg);color:var(--tag-artist)}.admin-user-sub{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.admin-user-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-killswitch-card{border-radius:var(--radius-md);background:var(--bg-canvas);border:1px solid #f43f5e59;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.admin-killswitch-info{flex-direction:column;gap:6px;max-width:540px;display:flex}.admin-killswitch-title{color:var(--status-danger);align-items:center;gap:8px;display:flex}.admin-killswitch-info p{color:var(--text-secondary);font-size:12.5px}.admin-killswitch-btn{border-radius:var(--radius-sm);background:var(--accent-crimson);color:#fff;letter-spacing:.04em;height:40px;padding:0 18px;font-size:12px;font-weight:700}.admin-killswitch-btn.active{background:var(--status-success);color:#09090b}.admin-user-modal{flex-direction:column;gap:16px;width:min(460px,94vw);padding:20px;display:flex}.admin-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.admin-uuid-copy-btn{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.admin-uuid-copy-btn:hover{color:var(--text-primary)}.admin-modal-loading{min-height:160px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.admin-modal-body{flex-direction:column;gap:16px;display:flex}.admin-role-toggle-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.admin-role-card{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);flex-direction:column;align-items:flex-start;gap:6px;padding:12px;display:flex}.admin-role-card.active{border-color:var(--text-primary);background:var(--bg-hover)}.admin-role-card-top{align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.admin-role-card-status{font-size:10px;font-family:var(--font-mono);color:var(--text-muted)}.admin-field-block{flex-direction:column;gap:8px;display:flex}.admin-field-label-row{justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.admin-field-label-row label{align-items:center;gap:5px;display:inline-flex}.admin-credits-readout{font-family:var(--font-mono);font-weight:700}.admin-credits-controls{align-items:center;gap:6px;display:flex}.admin-input{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);height:34px;color:var(--text-primary);font-family:var(--font-mono);flex:1;padding:0 10px}.admin-tier-pills{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.admin-tier-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);height:32px;color:var(--text-secondary);font-size:12px;font-weight:700}.admin-tier-pill.active{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary)}.admin-modal-actions{border-top:1px solid var(--border-subtle);justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}.modal-overlay{background:var(--bg-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:115;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.app-modal{border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-lg);color:var(--text-primary);overflow:hidden}.maintenance-lockout{background:var(--bg-canvas);z-index:200;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:20px;display:flex;position:fixed;inset:0}.maintenance-card{border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-default);text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(440px,100%);padding:28px 24px;display:flex}.maintenance-icon-ring{background:var(--bg-elevated);border:1px solid var(--border-default);width:56px;height:56px;color:var(--status-warning);border-radius:50%;justify-content:center;align-items:center;display:flex}.maintenance-card h1{font-size:20px;font-weight:800;font-family:var(--font-display)}.maintenance-card p{color:var(--text-secondary);font-size:13px}.maintenance-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.toast-container{z-index:250;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:20px}.toast-pill{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text-primary);box-shadow:var(--shadow-md);pointer-events:auto;padding:10px 16px;font-size:12.5px;font-weight:600}.toast-pill.toast-success{border-left:3px solid var(--status-success)}.toast-pill.toast-error{border-left:3px solid var(--status-danger)}.toast-pill.toast-info{border-left:3px solid var(--text-primary)}@media (width<=768px){.vault-container,.companion-hub-container,.profile-container,.settings-container{padding:14px 12px 32px}.admin-shell{flex-direction:column;height:94dvh}.admin-sidebar{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border-subtle);padding:10px 12px}.admin-nav{flex-direction:row;padding-top:8px;overflow-x:auto}.admin-sidebar-footer{display:none}.toast-container{bottom:calc(var(--mobile-nav-height) + 12px);left:12px;right:12px}}.is-hidden{display:none!important}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.type-heading{font-family:var(--font-display);color:var(--text-primary);font-weight:800}.type-body{color:var(--text-primary);font-size:13.5px}.type-label{color:var(--text-secondary);font-size:12px}.text-error{color:var(--status-danger)}.text-gradient{color:var(--text-primary)}.primary-btn,.save-profile-btn,.vault-cta{border-radius:var(--radius-sm);background:var(--accent-primary);height:38px;color:var(--accent-primary-text);transition:opacity var(--duration-fast) ease, transform var(--duration-fast) ease;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.primary-btn:hover:not(:disabled),.save-profile-btn:hover:not(:disabled),.vault-cta:hover:not(:disabled){background:#fff}.secondary-btn{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);height:38px;color:var(--text-primary);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex}.secondary-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.danger-btn,.warning-btn,.settings-signout-btn{border-radius:var(--radius-sm);height:36px;color:var(--status-danger);background:#f43f5e1f;border:1px solid #f43f5e52;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:12.5px;font-weight:600;display:inline-flex}.danger-btn:hover:not(:disabled),.warning-btn:hover:not(:disabled),.settings-signout-btn:hover:not(:disabled){background:var(--accent-crimson);color:#fff}.btn-icon,.icon-btn-sm,.card-action-icon-btn,.companion-icon-btn{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover,.icon-btn-sm:hover,.card-action-icon-btn:hover,.companion-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-default)}.card-action-icon-btn.favorited{color:var(--accent-crimson-hover);border-color:#f43f5e59}.card-action-icon-btn.danger:hover{color:var(--status-danger);border-color:#f43f5e66}.spinner{animation:.8s linear infinite spin}.vault-container{flex-direction:row;gap:0;padding:0;overflow:hidden}.vault-sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);flex-direction:column;gap:12px;width:240px;min-width:240px;height:100%;padding:16px 12px;display:flex;overflow-y:auto}.vault-sidebar-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.vault-new-folder-btn{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);height:26px;color:var(--text-primary);align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.vault-folder-list{flex-direction:column;gap:4px;display:flex}.folder-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.folder-count{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.vault-folder-actions{align-items:center;gap:4px;display:inline-flex}.vault-sidebar-hint{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-muted);margin-top:auto;padding:10px;font-size:11px}.vault-main{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.vault-scroll{flex-direction:column;flex:1;gap:16px;padding:18px 20px 64px;display:flex;overflow-y:auto}.vault-header-banner{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.vault-header-text{flex-direction:column;gap:2px;display:flex}.vault-header-title{font-size:18px;font-weight:800;font-family:var(--font-display)}.vault-header-subtitle{color:var(--text-muted);font-size:12px}.vault-toolbar{align-items:center;gap:10px;display:flex}.vault-grid-scale-selector{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);align-items:center;gap:3px;padding:3px;display:inline-flex}.scale-label{font-size:11px;font-weight:600}.vault-mobile-chips-bar{scrollbar-width:none;align-items:center;gap:6px;padding-bottom:4px;display:none;overflow-x:auto}.vault-chip,.vault-chip-new{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);height:30px;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.vault-chip.active{background:var(--accent-primary);color:var(--accent-primary-text)}.vault-chip-count{font-family:var(--font-mono);opacity:.75;font-size:10px}.vault-card-overlay{opacity:0;transition:opacity var(--duration-fast) ease;background:linear-gradient(#0000 0%,#09090b40 50%,#09090beb 100%);flex-direction:column;justify-content:space-between;padding:8px;display:flex;position:absolute;inset:0}.vault-card:hover .vault-card-overlay{opacity:1}.vault-card-type-badge{border:1px solid var(--border-default);font-family:var(--font-mono);background:#09090bd9;border-radius:4px;align-self:flex-start;padding:2px 6px;font-size:10px;font-weight:700}.vault-card-meta{justify-content:space-between;align-items:center;gap:6px;display:flex}.vault-card-actions{align-items:center;gap:4px;display:flex}.vault-card-btn{border-radius:var(--radius-xs);border:1px solid var(--border-default);width:28px;height:28px;color:var(--text-primary);background:#09090bd9;justify-content:center;align-items:center;display:inline-flex}.vault-folder-select-wrap{flex:1;min-width:0}.vault-folder-select-native{border:1px solid var(--border-default);width:100%;height:26px;color:var(--text-primary);background:#09090bd9;border-radius:4px;padding:0 6px;font-size:11px}.lazy-video{object-fit:cover;width:100%;height:100%;display:block}.vault-empty-state,.companion-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:300px;padding:32px 16px;display:flex}.vault-empty-icon,.companion-empty-icon{background:var(--bg-surface);border:1px solid var(--border-default);width:52px;height:52px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;display:flex}.vault-empty-title{font-size:16px;font-weight:700}.vault-empty-desc{color:var(--text-muted);max-width:360px;font-size:13px}.vault-empty-actions,.companion-empty-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.companion-studio-header{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding-bottom:14px;display:flex}.companion-studio-title-group{flex-direction:column;gap:4px;display:flex}.companion-studio-heading{font-size:20px;font-weight:800;font-family:var(--font-display);align-items:center;gap:10px;display:flex}.companion-engine-pill{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);padding:2px 8px;font-size:11px;font-weight:600}.companion-studio-sub{color:var(--text-secondary);font-size:12.5px}.companion-studio-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.companion-btn{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-default);height:36px;color:var(--text-primary);align-items:center;gap:6px;padding:0 14px;font-size:12.5px;font-weight:600;display:inline-flex}.companion-btn.primary{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary)}.companion-btn-count{border-radius:var(--radius-pill);background:var(--bg-active);font-family:var(--font-mono);padding:1px 6px;font-size:10px}.companion-resume-strip{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.companion-resume-left{align-items:center;gap:12px;min-width:0;display:flex}.companion-resume-avatar{flex-shrink:0}.companion-resume-info{flex-direction:column;gap:2px;min-width:0;display:flex}.companion-resume-meta{color:var(--text-muted);align-items:center;gap:6px;font-size:11px;display:flex}.companion-resume-dot{background:var(--status-success);border-radius:50%;width:6px;height:6px}.companion-resume-label{text-transform:uppercase;letter-spacing:.04em;font-weight:700}.companion-resume-name{color:var(--text-primary);font-size:14px;font-weight:700}.companion-resume-cta{color:var(--text-primary);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.companion-toolbar{flex-direction:column;gap:10px;display:flex}.companion-toolbar-top,.companion-toolbar-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.companion-tabs-strip,.companion-dynamic-pills{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.companion-search-box{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-default);align-items:center;gap:8px;min-width:240px;height:34px;padding:0 10px;display:flex;position:relative}.companion-search-icon{color:var(--text-muted)}.companion-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:12.5px}.companion-search-clear{color:var(--text-muted)}.companion-sort-select{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);height:32px;color:var(--text-primary);padding:0 10px;font-size:12px}.companion-active-filter-group{align-items:center;gap:6px;display:inline-flex}.companion-active-tag{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-default);align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.companion-reset-btn{color:var(--text-secondary);font-size:12px;text-decoration:underline}.companion-guest-notice{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.companion-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.companion-card{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;transition:border-color var(--duration-fast) ease, background-color var(--duration-fast) ease;flex-direction:column;justify-content:space-between;gap:12px;padding:16px;display:flex}.companion-card:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.companion-card-head{align-items:flex-start;gap:12px;display:flex}.companion-card-avatar,.card-avatar{flex-shrink:0}.companion-card-identity{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.companion-card-name-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.companion-card-name{color:var(--text-primary);font-size:15px;font-weight:700}.companion-card-vis,.visibility-pill{background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-flex}.companion-card-tagline{color:var(--tag-species);font-size:12px;font-weight:600}.companion-card-subrow{color:var(--text-muted);align-items:center;gap:6px;font-size:11px;display:flex}.companion-stance-badge{background:var(--bg-canvas);border:1px solid var(--border-subtle);text-transform:uppercase;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700}.companion-card-bio{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}.companion-card-tags{flex-wrap:wrap;gap:5px;display:flex}.companion-card-foot{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding-top:10px;display:flex}.companion-card-tools{align-items:center;gap:4px;display:flex}.companion-card-chat-btn,.card-chat-btn{border-radius:var(--radius-xs);background:var(--accent-primary);height:32px;color:var(--accent-primary-text);align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.chat-topbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;height:54px;min-height:54px;padding:0 16px;display:flex}.chat-topbar-left,.chat-topbar-right{align-items:center;gap:8px;min-width:0;display:flex}.chat-char-pill{border-radius:var(--radius-pill);background:var(--bg-canvas);border:1px solid var(--border-subtle);align-items:center;gap:8px;padding:4px 10px 4px 4px;display:inline-flex}.chat-char-pill-info{text-align:left;flex-direction:column;display:flex}.chat-char-pill-name{font-size:12.5px;font-weight:700}.chat-title-wrap{align-items:center;gap:6px;min-width:0;display:flex}.chat-title-display,.chat-title-edit-row{align-items:center;gap:6px;display:inline-flex}.chat-title-text{color:var(--text-secondary);font-size:13px;font-weight:600}.chat-name-input{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);height:28px;color:var(--text-primary);padding:0 8px;font-size:12.5px}.messages-scroll{flex-direction:column;flex:1;gap:14px;padding:20px;display:flex;overflow-y:auto}.chat-scene-starter-card{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-direction:column;gap:12px;width:100%;max-width:680px;margin:0 auto 12px;padding:18px;display:flex}.chat-scene-starter-top{align-items:center;gap:12px;display:flex}.chat-scene-meta{flex-direction:column;gap:3px;display:flex}.chat-scene-name-row{align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.chat-scene-tagline{color:var(--tag-species);font-size:12px}.chat-scene-lore{color:var(--text-secondary);font-size:13px}.chat-scene-hook{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:6px;padding:12px;display:flex}.chat-scene-hook-label{text-transform:uppercase;color:var(--text-muted);align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.chat-scene-hook-body{color:var(--text-primary);font-size:13px}.chat-icebreakers{flex-direction:column;gap:8px;width:100%;max-width:680px;margin:0 auto;display:flex}.chat-icebreakers-label{text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.chat-icebreakers-list{flex-wrap:wrap;gap:6px;display:flex}.chat-icebreaker-chip{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);text-align:left;padding:7px 11px;font-size:12px}.chat-icebreaker-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.message-card{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.message-wrapper.user .message-card{background:var(--bg-active);border-color:var(--border-default)}.message-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.message-content,.markdown-body{color:var(--text-primary);font-size:13.5px;line-height:1.55}.markdown-body em{color:var(--text-secondary)}.typing-indicator{align-items:center;gap:4px;padding:6px 10px;display:inline-flex}.typing-dot{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse-shimmer}.chat-input-dock{background:var(--bg-surface);border-top:1px solid var(--border-subtle);flex-direction:column;gap:6px;padding:12px 16px;display:flex}.input-box{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:flex-end;gap:8px;padding:8px 10px;display:flex}.input-box:focus-within{border-color:var(--border-focus)}.chat-input-footer{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.right-sidebar-overlay{display:none}.sidebar-panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.sidebar-header-text{align-items:center;gap:8px;display:flex}.sidebar-scene-title{font-size:13px;font-weight:700}.sidebar-scene-sub{color:var(--text-muted);font-size:11px}.sidebar-panel-content{flex-direction:column;gap:14px;display:flex}.panel-card{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:8px;padding:12px;display:flex}.panel-card-title{text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.sidebar-char-meta{flex-direction:column;gap:6px;display:flex}.sidebar-char-meta-header{justify-content:space-between;align-items:center;display:flex}.sidebar-char-creator{color:var(--text-muted);font-size:11px}.sidebar-char-badges,.sidebar-char-tags{flex-wrap:wrap;gap:4px;display:flex}.sidebar-char-tag{background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:4px;padding:2px 6px;font-size:10px}.sidebar-char-desc{color:var(--text-secondary);font-size:12px}.sidebar-btn-stack,.sidebar-bottom-action{flex-direction:column;gap:8px;display:flex}.sidebar-full-btn{justify-content:center;width:100%}.profile-hero-banner{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:18px;padding:20px;display:flex}.avatar-preview-big{flex-shrink:0}.profile-hero-info{flex-direction:column;flex:1;gap:6px;min-width:200px;display:flex}.profile-hero-name-row,.profile-hero-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-hero-name{font-size:20px;font-weight:800;font-family:var(--font-display)}.profile-hero-user{color:var(--text-muted);font-size:13px;font-family:var(--font-mono)}.profile-pro-badge,.profile-hero-badge,.profile-hero-credits-pill{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.profile-guest-banner{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-default);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.profile-card,.settings-group{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);flex-direction:column;gap:16px;padding:20px;display:flex}.profile-card-title,.settings-title{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.profile-section-desc{color:var(--text-muted);font-size:12.5px}.avatar-editor-layout{flex-direction:column;gap:14px;display:flex}.avatar-editor-fields{flex-direction:column;gap:10px;display:flex}.avatar-presets-grid{flex-wrap:wrap;gap:8px;display:flex}.avatar-upload-label{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);cursor:pointer;align-self:flex-start;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.form-grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);font-size:12px;font-weight:600}.form-input,.form-textarea{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);color:var(--text-primary);outline:none;padding:9px 12px;font-size:13px}.form-input:focus,.form-textarea:focus{border-color:var(--border-focus)}.orientation-options-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.orientation-card-header{justify-content:space-between;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.orientation-badge{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:4px;padding:2px 6px;font-size:10px}.orientation-card-desc{color:var(--text-muted);font-size:11.5px}.tag-chips-wrap,.tag-cloud{flex-wrap:wrap;gap:6px;display:flex}.tag-cloud-btn{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:5px 10px;font-size:12px}.tag-cloud-btn.active{background:var(--tag-explicit-bg);color:var(--tag-explicit);border-color:#f43f5e59}.profile-setting-row,.setting-item-row,.profile-credits-balance-row,.settings-signout-row{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.profile-save-footer,.profile-danger-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.toggle-switch{flex-shrink:0;width:42px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--bg-canvas);border:1px solid var(--border-default);border-radius:var(--radius-pill);transition:all .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:var(--text-secondary);border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent-primary);border-color:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider:before{background-color:var(--accent-primary-text);transform:translate(18px)}.custom-chats-modal,.persona-creator-modal,.persona-inspect-modal,.legal-modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:min(680px,94vw);max-height:88dvh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.modal-header-bar,.legal-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.modal-header-title{align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.custom-modal-tabs{border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);align-items:center;gap:6px;padding:10px 20px;display:flex}.custom-tab-badge{border-radius:var(--radius-pill);background:var(--bg-hover);font-family:var(--font-mono);padding:1px 6px;font-size:10px}.modal-scrollable-body,.persona-creator-body,.legal-modal-body{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.modal-sticky-footer,.legal-modal-footer{border-top:1px solid var(--border-subtle);background:var(--bg-surface);justify-content:flex-end;align-items:center;gap:10px;padding:12px 20px;display:flex}.modal-search-wrap{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);align-items:center;gap:8px;height:36px;padding:0 10px;display:flex}.modal-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.modal-list-container{flex-direction:column;gap:8px;display:flex}.session-info-left,.my-persona-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.my-persona-item{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.session-row-actions{align-items:center;gap:4px;display:flex}.persona-creator-form{flex-direction:column;gap:14px;display:flex}.persona-tpl-bar{flex-direction:column;gap:6px;display:flex}.persona-tpl-chips{flex-wrap:wrap;gap:6px;display:flex}.persona-tpl-chip{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:5px 10px;font-size:11.5px;font-weight:600}.persona-tpl-chip:hover{color:var(--text-primary);border-color:var(--border-default)}.persona-identity-grid{grid-template-columns:auto 1fr;gap:16px;display:grid}.persona-avatar-col,.persona-fields-col,.persona-field{flex-direction:column;gap:6px;display:flex}.persona-field-row,.persona-stance-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.persona-segmented{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-subtle);gap:4px;padding:3px;display:flex}.persona-tags-chip-container{border-radius:var(--radius-sm);background:var(--bg-canvas);border:1px solid var(--border-default);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.persona-tag-chip{border-radius:var(--radius-xs);background:var(--bg-surface);border:1px solid var(--border-subtle);align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.persona-tag-inline-input{min-width:110px;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:12px}.system-modal-sm{flex-direction:column;gap:16px;width:min(400px,94vw);padding:24px;display:flex}.system-modal-md{flex-direction:column;gap:18px;width:min(460px,94vw);padding:24px;display:flex}.system-modal-hero{flex-direction:column;gap:6px;display:flex}.system-modal-badge{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-default);align-self:flex-start;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.system-modal-title{font-size:20px;font-weight:800;font-family:var(--font-display)}.system-modal-desc{color:var(--text-secondary);font-size:13px}.system-perks-box,.guest-gate-tiers,.store-sub-card{border-radius:var(--radius-md);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:10px;padding:14px;display:flex}.store-sub-card{flex-direction:row;justify-content:space-between;align-items:center}.store-sub-title{font-size:14px;font-weight:700}.store-sub-sub{color:var(--text-muted);font-size:12px}.store-sub-price{font-size:20px;font-weight:800;font-family:var(--font-display)}.system-perk-row,.guest-gate-tier-row{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:12.5px;display:flex}.tier-dot{background:var(--text-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.store-modal-actions,.guest-gate-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.system-modal-full-btn{width:100%}.store-legal-notice{color:var(--text-muted);text-align:center;font-size:11px}.legal-modal-overlay{background:var(--bg-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:140;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.legal-content{color:var(--text-secondary);flex-direction:column;gap:12px;font-size:13px;line-height:1.6;display:flex}.legal-content h4{color:var(--text-primary);margin-top:8px;font-size:14px}.legal-content ul{padding-left:20px}.vault-mobile-folder-tools{flex-shrink:0;align-items:center;gap:4px;display:none}.vault-folder-tool-btn{border-radius:var(--radius-xs);background:var(--bg-canvas);border:1px solid var(--border-subtle);width:34px;height:34px;color:var(--text-secondary);justify-content:center;align-items:center;display:inline-flex}.vault-folder-tool-btn.danger:hover,.vault-folder-tool-btn.danger:active{color:var(--status-danger);border-color:#ef444459}@media (width<=768px){.vault-sidebar{display:none}.vault-mobile-chips-bar{gap:5px;padding-bottom:0;display:flex}.vault-chip{height:30px;padding:0 10px;font-size:11.5px}.vault-toolbar{gap:7px;padding:8px 10px}.vault-header-banner{flex-flow:row;justify-content:space-between;align-items:center;gap:6px}.vault-header-text{display:none}.vault-header-controls{flex:1;justify-content:space-between;gap:6px;width:100%;display:flex;flex-flow:row!important;align-items:center!important}.vault-search-box{padding:0 9px;flex:auto!important;width:auto!important;min-width:0!important;height:36px!important;min-height:36px!important;max-height:36px!important}.vault-mobile-folder-tools{display:inline-flex}.companion-search-box,.admin-search-bar,.modal-search-wrap{flex:100%;height:42px;min-height:42px;width:100%!important;max-width:100%!important}.vault-search-input{font-size:14px!important}.companion-search-box input,.admin-search-bar input,.modal-search-input{font-size:16px!important}.vault-grid-scale-selector{flex-shrink:0;gap:2px;width:auto;padding:2px;display:inline-flex}.vault-scale-btn{justify-content:center;height:30px;padding:0 8px}.vault-scale-btn .scale-label{display:none}.vault-scroll{padding:10px 8px calc(84px + env(safe-area-inset-bottom,0px))}.vault-masonry-grid.scale-compact{grid-template-columns:repeat(3,1fr);gap:6px}.vault-masonry-grid.scale-normal{grid-template-columns:repeat(2,1fr);gap:8px}.vault-masonry-grid.scale-large{grid-template-columns:1fr;gap:12px}.persona-identity-grid,.persona-field-row,.persona-stance-row{grid-template-columns:1fr}}@media (height<=560px) and (orientation:landscape){.vault-sidebar{display:none!important}.vault-toolbar{justify-content:space-between;flex-direction:row!important;align-items:center!important;gap:8px!important;padding:6px 12px!important}.vault-header-text{display:none!important}.vault-header-banner{flex:0 0 42%;min-width:220px;max-width:340px}.vault-header-controls{gap:6px;width:100%;display:flex;flex-flow:row!important;align-items:center!important}.vault-search-box{flex:auto!important;width:auto!important;min-width:0!important;height:32px!important;min-height:32px!important;max-height:32px!important}.vault-scale-btn{height:26px!important;padding:0 7px!important}.vault-scale-btn .scale-label{display:none!important}.vault-mobile-chips-bar{flex:auto;min-width:0;padding-bottom:0;display:flex!important}.vault-chip{height:28px!important;padding:0 9px!important;font-size:11px!important}.vault-scroll{padding:8px 12px 60px!important}.vault-masonry-grid.scale-compact{grid-template-columns:repeat(5,1fr)!important;gap:6px!important}.vault-masonry-grid.scale-normal{grid-template-columns:repeat(4,1fr)!important;gap:8px!important}.vault-masonry-grid.scale-large{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}}.app-update-modal-backdrop{z-index:10000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09090be0;justify-content:center;align-items:center;padding:16px;display:flex}.app-update-modal-card{border-radius:var(--radius-lg,16px);background:#121215;border:1px solid #ffffff1a;flex-direction:column;width:100%;max-width:480px;display:flex;overflow:hidden;box-shadow:0 24px 60px #000c,0 0 1px 1px #ffffff0d}.app-update-header{border-bottom:1px solid #ffffff0f;align-items:center;gap:14px;padding:20px 20px 16px;display:flex;position:relative}.app-update-icon-wrap{color:#f43f5e;background:#e11d481f;border:1px solid #e11d4840;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.app-update-titles{flex:1;min-width:0}.app-update-title{color:#f4f4f6;letter-spacing:-.01em;margin:0 0 4px;font-size:17px;font-weight:700}.app-update-version-pills{align-items:center;gap:6px;font-size:12px;display:flex}.app-update-version-badge{border-radius:6px;padding:2px 7px;font-size:11px;font-weight:600}.app-update-version-badge.current{color:#a1a1aa;background:#ffffff0f}.app-update-version-badge.latest{color:#fb7185;background:#e11d482e;border:1px solid #e11d4859}.app-update-arrow{color:#71717a;font-size:11px}.app-update-close-btn{color:#a1a1aa;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.app-update-close-btn:hover{color:#f4f4f6;background:#ffffff14}.app-update-body{flex-direction:column;gap:16px;max-height:60vh;padding:20px;display:flex;overflow-y:auto}.app-update-release-date{color:#71717a;font-size:12px}.app-update-changelog-card{background:#09090b;border:1px solid #ffffff0f;border-radius:12px;padding:14px 16px}.app-update-changelog-title{color:#f4f4f6;text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px;font-size:13px;font-weight:700}.app-update-changelog-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.app-update-changelog-item{color:#d4d4d8;align-items:flex-start;gap:8px;font-size:13px;line-height:1.45;display:flex}.app-update-bullet{color:#f43f5e;flex-shrink:0;margin-top:2px;font-size:11px}.app-update-notice-box{border-radius:10px;align-items:flex-start;gap:12px;padding:14px;font-size:13px;line-height:1.4;display:flex}.app-update-notice-box.warning{color:#fde68a;background:#f59e0b1a;border:1px solid #f59e0b4d}.app-update-notice-box.warning .notice-icon{color:#f59e0b;flex-shrink:0}.app-update-notice-box.success{color:#a7f3d0;background:#10b9811a;border:1px solid #10b9814d}.app-update-notice-box.success .notice-icon{color:#10b981;flex-shrink:0}.app-update-notice-box.error{color:#fca5a5;background:#ef44441a;border:1px solid #ef44444d}.app-update-notice-box.error .notice-icon{color:#ef4444;flex-shrink:0}.app-update-notice-box p{color:#a1a1aa;margin:4px 0 8px;font-size:12px}.app-update-progress-wrap{background:#09090b;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}.app-update-progress-labels{color:#f4f4f6;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.app-update-progress-labels .progress-percent{color:#f43f5e}.app-update-progress-bar-bg{background:#ffffff14;border-radius:999px;width:100%;height:8px;overflow:hidden}.app-update-progress-bar-fill{background:linear-gradient(90deg,#e11d48,#f43f5e);border-radius:999px;height:100%;transition:width .15s ease-out}.app-update-progress-bytes{color:#71717a;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.app-update-footer{background:#0d0d10;border-top:1px solid #ffffff0f;justify-content:flex-end;align-items:center;gap:10px;padding:16px 20px;display:flex}.app-update-btn{cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.app-update-btn.primary{color:#09090b;background:#f4f4f6;border:1px solid #f4f4f6}.app-update-btn.primary:hover{background:#fff;transform:translateY(-1px)}.app-update-btn.secondary{color:#a1a1aa;background:#ffffff0f;border:1px solid #ffffff14}.app-update-btn.secondary:hover{color:#f4f4f6;background:#ffffff1a}.app-update-btn.permission-btn{color:#000;background:#f59e0b;min-height:38px;margin-top:8px;padding:8px 14px;font-size:12px;font-weight:700}.app-update-fallback-link{color:#f43f5e;align-items:center;gap:6px;margin-top:6px;font-size:12px;text-decoration:underline;display:inline-flex}.app-update-floating-banner{z-index:8500;background:#18181d;border:1px solid #e11d4866;border-radius:999px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:4px 6px 4px 14px;animation:.3s cubic-bezier(.16,1,.3,1) bannerSlideUp;display:flex;position:fixed;bottom:76px;right:16px;box-shadow:0 12px 32px #0009,0 0 20px #e11d4826}@keyframes bannerSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.app-update-banner-content{cursor:pointer;align-items:center;gap:10px;display:flex}.app-update-banner-pulse{color:#f43f5e;align-items:center;display:flex}.app-update-banner-text{color:#f4f4f6;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.app-update-banner-ver{color:#fb7185;font-weight:700}.app-update-banner-cta{color:#fff;cursor:pointer;background:#e11d48;border:none;border-radius:999px;align-items:center;gap:4px;min-height:32px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.app-update-banner-close{color:#71717a;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:color .15s;display:flex}.app-update-banner-close:hover{color:#f4f4f6}.settings-update-available-tag{color:#f43f5e;margin-top:4px;font-size:12px;font-weight:700;display:block}.settings-action-btn{color:#f4f4f6;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex}.settings-action-btn:hover{background:#ffffff24}.settings-action-btn.primary{color:#09090b;background:#f4f4f6;border-color:#f4f4f6}.settings-action-btn.primary:hover{background:#fff}.settings-action-btn .spin{animation:1s linear infinite spin}.account-hub-tabs{z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default);border-radius:var(--radius-md);background:#121216f0;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px;display:grid;position:sticky;top:0;box-shadow:0 8px 24px #00000059}.account-hub-tab{border-radius:var(--radius-sm);min-height:42px;color:var(--text-secondary);transition:all var(--duration-fast) ease;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.account-hub-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.account-hub-tab.active{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary);font-weight:700}.account-tab-dot{background:#f43f5e;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #f43f5e}.profile-save-inline{justify-content:flex-end;margin-top:16px;display:flex}.vault-sync-status-banner{border-radius:var(--radius-md);background:var(--bg-canvas);border:1px solid var(--border-subtle);flex-direction:column;gap:14px;padding:16px;display:flex}.vault-sync-metrics{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vault-metric-pill{border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);align-items:center;gap:7px;padding:8px 14px;font-size:13px;display:inline-flex}.vault-metric-pill strong{color:var(--text-primary);font-size:15px;font-family:var(--font-mono)}.vault-metric-pill.encrypted{color:#34d399;background:#10b98114;border-color:#10b9814d;font-weight:600}.vault-sync-actions-grid{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vault-sync-btn{justify-content:center;align-items:center;gap:8px;min-height:44px;display:inline-flex}@media (width<=768px){.profile-container{gap:14px;padding:14px 12px calc(104px + env(safe-area-inset-bottom,0px))!important}.account-hub-tabs{grid-template-columns:repeat(2,1fr);gap:6px}.account-hub-tab{min-height:44px;padding:0 10px;font-size:12.5px}.profile-container .form-input,.profile-container .form-textarea{font-size:16px!important}.profile-save-inline .save-profile-btn,.vault-sync-actions-grid>button{justify-content:center;width:100%;min-height:46px}}
