:root{--bg: #090909;--panel: #151515;--panel-strong: #1f1f1f;--line: #2b2b2b;--text: #eeeeee;--muted: #9b9b9b;--muted-2: #666666;--accent: #ffd600;--accent-ink: #101010;--danger: #ff5b5b;--shadow: 0 18px 60px rgba(0, 0, 0, .32);--radius-sm: 6px;--radius-md: 8px;--surface-base: var(--panel);--surface-raised: var(--panel-strong);--surface-input: #0f0f0f;--surface-deep: #0b0b0b;--surface-floor: #111111;--surface-dialog: #161616;--surface-control: rgba(20, 20, 20, .82);--surface-hover: #202020;--surface-subtle: rgba(31, 31, 31, .66);--border-subtle: rgba(255, 255, 255, .06);--border-muted: rgba(255, 255, 255, .08);--border-strong: var(--line);--surface-glint: rgba(255, 255, 255, .04);--accent-soft: rgba(255, 214, 0, .08);--accent-wash: rgba(255, 214, 0, .1);--accent-panel: rgba(255, 214, 0, .14);--accent-muted: rgba(255, 214, 0, .16);--accent-border: rgba(255, 214, 0, .56);--accent-border-strong: rgba(255, 214, 0, .7);--focus-ring: 0 0 0 3px rgba(255, 214, 0, .12);--danger-soft: rgba(255, 91, 91, .1);--danger-border: rgba(255, 91, 91, .36);--success-soft: rgba(34, 197, 94, .1);--success-border: rgba(34, 197, 94, .32);--text-strong: #f5f5f5;--text-inverse: #ffffff;--text-inverse-muted: rgba(255, 255, 255, .62);--motion-fast: .16s ease;--motion-base: .18s ease;--touch-target: 44px;color:var(--text);background:var(--bg);font-family:Segoe UI,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden;background:radial-gradient(circle at 18% 12%,var(--accent-soft),transparent 28rem),linear-gradient(135deg,#090909 0%,var(--surface-floor) 48%,#070707 100%)}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}.ui-action-button,.ui-icon-button,.ui-list-item-surface,.ui-media-tile,.ui-pagination-button{touch-action:manipulation}.ui-list-item-surface,.ui-media-tile{outline:0}.ui-list-item-surface:focus-visible,.ui-media-tile:focus-visible,.ui-action-button:focus-visible,.ui-icon-button:focus-visible,.ui-pagination-button:focus-visible{outline:0;box-shadow:var(--focus-ring)}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-rows:64px minmax(0,1fr);width:100%;height:100%}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 22px;border-bottom:1px solid var(--line);background:#090909e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-mark{display:inline-flex;align-items:center;min-width:0;gap:12px}.brand-mark h1{min-width:0;margin:0;overflow:hidden;color:var(--text);font-size:clamp(18px,2vw,24px);font-weight:760;letter-spacing:0;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.logo-fallback,.logo-svg{display:inline-flex;width:36px;height:36px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(255,214,0,.42);border-radius:8px;background:linear-gradient(145deg,#ffd600,#ffe96b);color:var(--accent-ink);box-shadow:inset 0 -10px 22px #0000002e}.logo-svg svg{width:22px;height:22px}.user-avatar-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;outline:0;background:linear-gradient(145deg,#ffd6002e,#ffd60000),var(--surface-dialog);color:var(--text);cursor:pointer;flex:0 0 auto;transition:border-color .18s ease,box-shadow .18s ease,color .18s ease,background .18s ease,transform .18s ease}.user-avatar-button:hover,.user-avatar-button:focus-visible{border-color:#ffd6008c;background:var(--surface-hover);color:var(--text);box-shadow:0 0 0 3px #ffd6001f}.user-avatar-button:hover{transform:translateY(-1px)}.avatar-status{position:absolute;right:3px;bottom:3px;width:10px;height:10px;border:2px solid var(--surface-dialog);border-radius:50%;background:var(--muted-2)}.avatar-status.is-online{background:#22c55e}.auth-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;width:100vw;min-height:100dvh;padding:20px;overflow:auto;overscroll-behavior:contain;background:#000000a3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-dialog{position:relative;width:min(100%,430px);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid rgba(255,214,0,.18);border-radius:8px;background:linear-gradient(180deg,var(--accent-soft),rgba(255,214,0,0)),#141414fa;color:var(--text);box-shadow:var(--shadow);padding:22px}.auth-close{position:absolute;top:14px;right:14px;display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#151515;color:var(--muted);cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.auth-close:hover,.auth-close:focus-visible{border-color:#ffd6008c;background:var(--surface-hover);color:var(--text);outline:0}.auth-heading{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding-right:42px}.auth-mark{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid rgba(255,214,0,.38);border-radius:8px;background:var(--accent);color:var(--accent-ink)}.auth-heading h2{margin:0;font-size:22px;letter-spacing:0;line-height:1.2}.auth-heading p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:20px 0;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--accent-ink)}.auth-tabs button,.auth-tabs a{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:720;transition:background .18s ease,color .18s ease}.auth-tabs button:hover,.auth-tabs button:focus-visible,.auth-tabs button.is-active,.auth-tabs a:hover,.auth-tabs a:focus-visible,.auth-tabs a.is-active{background:var(--surface-hover);color:var(--text);outline:0}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.auth-form input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;outline:0;background:#0e0e0e;color:var(--text);padding:0 12px;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.auth-form input:focus{border-color:var(--accent-border-strong);background:var(--accent-ink);box-shadow:0 0 0 3px var(--accent-wash)}.auth-form input:disabled{cursor:not-allowed;opacity:.46}.auth-submit{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;border-radius:8px;background:var(--accent);color:var(--accent-ink);cursor:pointer;font-size:14px;font-weight:780;text-decoration:none;transition:filter .18s ease,opacity .18s ease,transform .18s ease}.auth-secondary{background:transparent;color:var(--text);border:1px solid var(--line)}.credit-badge{border:1px solid rgba(255,214,0,.2);background:var(--accent-soft);color:var(--text);border-radius:8px;padding:10px 12px;font-size:13px}.credit-badge{display:flex;align-items:center;justify-content:space-between;gap:12px}.credit-badge strong{color:var(--accent)}.auth-submit:hover:not(:disabled),.auth-submit:focus-visible:not(:disabled){filter:brightness(1.06);outline:0;transform:translateY(-1px)}.auth-submit:disabled{cursor:not-allowed;opacity:.46}.auth-error{border:1px solid rgba(255,91,91,.28);border-radius:8px;background:var(--danger-soft);color:#ffb7b7;padding:10px 12px;font-size:13px;line-height:1.5}.redeem-dialog{width:min(100%,460px)}.redeem-form{margin-top:20px}.redeem-credit-badge{background:linear-gradient(135deg,var(--accent-panel),rgba(255,214,0,.04)),#1f1f1fc2}.auth-success{border:1px solid var(--success-border);border-radius:8px;background:var(--success-soft);color:#b7f7cd;padding:10px 12px;font-size:13px;line-height:1.5}.redeem-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.user-login-body{position:relative;min-height:100dvh;overflow:auto;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:24px;background:#050505;color:var(--text-strong)}.user-login-background{position:fixed;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.user-login-body:before{position:fixed;inset:0;z-index:1;background:radial-gradient(circle at 15% 20%,rgba(255,208,66,.12),transparent 32%),radial-gradient(circle at 85% 15%,var(--border-muted),transparent 28%),linear-gradient(160deg,rgba(5,5,5,.9),var(--surface-control) 52%,rgba(15,15,15,.92));content:"";pointer-events:none}.user-login-body.has-login-background:before{background:radial-gradient(circle at 15% 20%,rgba(255,208,66,.16),transparent 34%),radial-gradient(circle at 85% 15%,rgba(255,255,255,.1),transparent 30%),linear-gradient(160deg,#050505ad,#1414146b 52%,#0f0f0fb8)}.user-login-page .backdrop{position:relative;z-index:2;display:grid;width:min(100%,1120px);min-height:78vh;grid-template-columns:1.1fr .9fr;overflow:hidden;border:1px solid var(--border-muted);border-radius:8px;background:var(--surface-glint);box-shadow:0 40px 120px #00000073;-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px)}.user-login-page .stage{position:relative;overflow:hidden;padding:56px}.user-login-page .stage:before{position:absolute;right:-60px;bottom:-80px;width:220px;height:220px;background:radial-gradient(circle,rgba(255,192,59,.18),transparent 70%);content:"";filter:blur(6px);pointer-events:none}.user-login-page .hero{display:flex;flex-direction:column;justify-content:space-between;gap:32px;border-right:1px solid var(--border-subtle)}.user-login-page .login-brand-mark{display:inline-flex;width:fit-content;max-width:100%;align-items:center;gap:12px;margin-bottom:34px;color:var(--text-strong);font-size:16px;font-weight:760}.user-login-page .login-brand-icon{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:8px;background:linear-gradient(135deg,#ffd45a,#ff9f2f);color:#221a00;font-size:12px;font-weight:860}.user-login-page .eyebrow{display:inline-flex;align-items:center;gap:10px;color:#ffffff94;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.user-login-page .eyebrow-dot{width:8px;height:8px;border-radius:8px;background:linear-gradient(135deg,#ffd45a,#ff9f2f);box-shadow:0 0 18px #ffc43b80}.user-login-page h1{margin:18px 0 14px;color:var(--text-strong);font-size:clamp(36px,4vw,56px);letter-spacing:0;line-height:1.05}.user-login-page .lead{max-width:34rem;color:#ffffffb3;font-size:16px;line-height:1.8}.user-login-page .feature-list{display:grid;gap:14px;margin-top:28px}.user-login-page .feature{display:grid;grid-template-columns:42px 1fr;align-items:start;gap:14px;padding:14px 16px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-glint)}.user-login-page .feature-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--border-subtle);font-size:18px}.user-login-page .feature strong{display:block;margin-bottom:4px;font-size:14px}.user-login-page .feature span{color:var(--text-inverse-muted);font-size:13px;line-height:1.6}.user-login-page .login-panel{display:flex;align-items:center;justify-content:center}.user-login-page .login-card{width:min(100%,420px);padding:32px;border:1px solid var(--border-muted);border-radius:8px;background:#00000047;box-shadow:inset 0 1px #ffffff0d}.user-login-page .login-card h2{margin:0 0 8px;color:var(--text-strong);font-size:28px;letter-spacing:0}.user-login-page .login-card p{margin:0 0 22px;color:#ffffffa3;font-size:14px;line-height:1.7}.user-login-page .login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;padding:4px;border:1px solid var(--border-muted);border-radius:8px;background:var(--surface-glint)}.user-login-page .login-tabs a{display:grid;min-height:38px;place-items:center;border-radius:6px;color:var(--text-inverse-muted);font-size:13px;font-weight:700}.user-login-page .login-tabs a.is-active{background:#ffd45a29;color:#ffe493}.user-login-page .login-form-panel{display:none}.user-login-page .login-form-panel.is-active{display:block}.user-login-page label{display:block;margin:0 0 8px;color:var(--text-inverse-muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.user-login-page .field{margin-bottom:18px}.user-login-page input{width:100%;padding:14px 15px;border:1px solid rgba(255,255,255,.12);border-radius:8px;outline:0;background:var(--border-subtle);color:var(--text-inverse);font-size:15px}.user-login-page input:focus{border-color:#ffd45abf;box-shadow:0 0 0 4px #ffd45a1f}.user-login-page button{width:100%;padding:14px 18px;border:0;border-radius:8px;background:linear-gradient(135deg,#ffe493,#ffc64a);color:#221a00;box-shadow:0 18px 38px #ffc43b40;cursor:pointer;font-size:15px;font-weight:700}.user-login-page .error-box{margin-bottom:16px;padding:12px 14px;border:1px solid rgba(255,96,96,.25);border-radius:8px;background:#ff60601f;color:#ffd1d1;font-size:13px;line-height:1.6}.user-login-page .footer-note{margin-top:16px;color:#ffffff75;font-size:12px;line-height:1.6}.auth-form-disabled{opacity:.72}.app-body{display:grid;grid-template-columns:314px minmax(0,1fr);min-height:0;transition:grid-template-columns .22s ease}.app-shell.sidebar-collapsed .app-body{grid-template-columns:72px minmax(0,1fr)}.frontend-toast-stack{position:fixed;z-index:90;display:grid;width:min(360px,calc(100vw - 32px));gap:10px;pointer-events:none}.frontend-toast-stack[data-position=top-right]{top:78px;right:18px}.frontend-toast-stack[data-position=center]{top:50%;left:50%;transform:translate(-50%,-50%)}.frontend-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;overflow:hidden;border:1px solid rgba(255,214,0,.32);border-radius:8px;background:linear-gradient(90deg,#252112fa,#3a3218f0);box-shadow:0 18px 54px #00000057;color:var(--text);padding:12px;pointer-events:auto}.frontend-toast[data-type=success]{border-color:#22c55e6b;background:linear-gradient(90deg,#122a1bfa,#1c4229f0)}.frontend-toast[data-type=error]{border-color:#ff5b5b6b;background:linear-gradient(90deg,#311816fa,#44201df0)}.frontend-toast[data-type=warning]{border-color:#ffd60061;background:linear-gradient(90deg,#2a2311fa,#433816f0)}.frontend-toast[data-type=info]{border-color:#38bdf861;background:linear-gradient(90deg,#12222ffa,#193448f0)}.frontend-toast-icon{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:8px;background:#ffffff0d;color:var(--accent)}.frontend-toast[data-type=success] .frontend-toast-icon{color:#22c55e}.frontend-toast[data-type=error] .frontend-toast-icon{color:var(--danger)}.frontend-toast[data-type=info] .frontend-toast-icon{color:#38bdf8}.frontend-toast-body{display:grid;min-width:0;gap:3px}.frontend-toast-body strong{overflow:hidden;color:var(--text-strong);font-size:13px;font-weight:780;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.frontend-toast-body span{color:var(--muted);font-size:12px;line-height:1.45}.frontend-toast button{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.frontend-toast button:hover,.frontend-toast button:focus-visible{background:#ffffff0f;color:var(--text)}.frontend-sidebar{display:flex;min-width:0;min-height:0;flex-direction:column;gap:14px;margin:16px 0 16px 16px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:radial-gradient(circle at 32% 18%,var(--accent-soft),transparent 42%),#101010f0;box-shadow:var(--shadow);padding:12px}.sidebar-toggle,.sidebar-search-button{display:inline-flex;width:44px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#1f1f1fdb;color:var(--muted);cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.sidebar-toggle{align-self:flex-end;margin-top:0}.sidebar-toggle:hover,.sidebar-toggle:focus-visible,.sidebar-search-button:hover,.sidebar-search-button:focus-visible{border-color:var(--accent-border);background:var(--panel-strong);color:var(--text);outline:0}.sidebar-nav{display:grid;min-height:306px;align-content:start;grid-auto-rows:max-content;gap:9px}.frontend-sidebar.is-anonymous .sidebar-nav{min-height:auto}.sidebar-new-button,.sidebar-nav-item,.sidebar-recent-item{display:inline-flex;width:100%;min-width:0;min-height:50px;align-items:center;gap:12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;padding:0 16px;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.sidebar-new-button{justify-content:center;border-color:#ffd600b8;background:#ffd60008;color:var(--accent);font-size:16px;font-weight:780}.sidebar-nav-item{font-size:15px;font-weight:700}.sidebar-new-button:hover,.sidebar-new-button:focus-visible,.sidebar-nav-item:hover,.sidebar-nav-item:focus-visible,.sidebar-nav-item.active{border-color:var(--accent-border);background:linear-gradient(90deg,#ffd60029,#ffd60008),#1f1f1fd1;color:var(--accent);outline:0;box-shadow:inset 0 0 0 1px var(--accent-soft)}.sidebar-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-recent{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:12px;padding-top:10px;border-top:1px solid var(--border-subtle)}.sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px;font-weight:720}.sidebar-recent-list{display:grid;gap:8px;min-height:0;overflow-y:auto;padding-right:2px}.sidebar-recent-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto 18px;min-height:50px;background:var(--surface-subtle);cursor:default;padding:0 10px}.sidebar-recent-primary{display:grid;width:100%;min-width:0;min-height:48px;grid-column:1 / 4;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:12px;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;text-align:left}.sidebar-recent-primary:focus-visible{outline:0}.sidebar-recent-primary>span{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.sidebar-recent-item time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.sidebar-recent-item:hover,.sidebar-recent-item:focus-visible,.sidebar-recent-item:focus-within,.sidebar-recent-item.active,.sidebar-recent-item[data-state=active]{border-color:var(--accent-border);background:var(--accent-soft);color:var(--text);outline:0}.sidebar-recent-item.active{color:var(--text)}.sidebar-recent-actions{position:relative;display:inline-flex;width:30px;height:30px;min-width:30px;align-items:center;justify-content:center;justify-self:center;overflow:visible}.sidebar-recent-menu,.sidebar-recent-delete{position:absolute;inset:0;width:30px;height:30px;border:0;background:transparent;color:inherit;opacity:.68;transition:color var(--motion-fast),opacity var(--motion-fast),transform var(--motion-fast)}.sidebar-recent-menu:hover,.sidebar-recent-menu:focus-visible{color:var(--text);opacity:1}.sidebar-recent-delete{color:var(--danger);opacity:0;pointer-events:none;transform:scale(.92)}.sidebar-recent-item[data-actions=open] .sidebar-recent-menu{opacity:0;pointer-events:none;transform:scale(.92)}.sidebar-recent-item[data-actions=open] .sidebar-recent-delete{opacity:1;pointer-events:auto;transform:scale(1)}.sidebar-recent-delete:hover,.sidebar-recent-delete:focus-visible{color:var(--danger);opacity:1}.sidebar-points-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) 40px;min-height:144px;max-height:150px;gap:6px;overflow:hidden;border:1px solid var(--accent-panel);border-radius:8px;background:linear-gradient(135deg,#ffd60021,#ffd60005),url(/assets/img/points.png) right 16px top 16px / 90px auto no-repeat,#1f1f1fb8;margin-top:auto;padding:12px 14px}.sidebar-points-main{min-width:0;padding-right:82px}.sidebar-points-card span,.sidebar-points-card em{display:block;color:var(--accent);font-size:12px;font-style:normal;font-weight:760;line-height:1.2}.sidebar-points-card strong{display:inline-block;margin-top:5px;color:var(--accent);font-size:22px;font-weight:820;letter-spacing:0;line-height:1}.sidebar-points-card em{display:inline-block;margin-left:7px}.sidebar-points-card p{display:-webkit-box;min-height:16px;max-height:34px;margin:0;max-width:13rem;overflow:hidden;padding-right:76px;color:var(--muted);font-size:12px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.sidebar-points-card button{display:inline-flex;width:100%;min-height:40px;align-self:end;align-items:center;justify-content:center;border:1px solid rgba(255,214,0,.42);border-radius:8px;background:#ffd60005;color:var(--accent);cursor:pointer;font-weight:780;transition:border-color .18s ease,background .18s ease,color .18s ease}.sidebar-points-card button:hover,.sidebar-points-card button:focus-visible{border-color:#ffd600ad;background:var(--accent-wash);color:var(--text);outline:0}.app-shell.sidebar-collapsed .frontend-sidebar{align-items:center;padding:10px}.app-shell.sidebar-collapsed .sidebar-toggle{align-self:center;margin-top:8px}.app-shell.sidebar-collapsed .sidebar-nav{justify-items:center}.app-shell.sidebar-collapsed .sidebar-new-button,.app-shell.sidebar-collapsed .sidebar-nav-item{width:48px;height:48px;min-height:48px;justify-content:center;padding:0}.app-shell.sidebar-collapsed .sidebar-label,.app-shell.sidebar-collapsed .sidebar-recent{display:none}.app-shell.sidebar-collapsed .sidebar-points-card{display:grid;width:48px;height:48px;min-height:48px;max-height:48px;align-content:center;justify-items:center;gap:3px;margin-top:auto;padding:0;background:linear-gradient(135deg,var(--accent-panel),rgba(255,214,0,.03)),#1f1f1fd6}.app-shell.sidebar-collapsed .sidebar-points-main,.app-shell.sidebar-collapsed .sidebar-points-card p,.app-shell.sidebar-collapsed .sidebar-points-card button{display:none}.app-shell.sidebar-collapsed .sidebar-points-card:before{content:attr(data-collapsed-value);display:block;max-width:44px;overflow:hidden;color:var(--accent);font-size:13px;font-weight:820;line-height:1;text-overflow:ellipsis;white-space:nowrap}.app-shell.sidebar-collapsed .sidebar-points-card:after{content:attr(data-collapsed-suffix);display:block;max-width:44px;overflow:hidden;color:#ffd600bd;font-size:10px;font-weight:760;line-height:1;text-overflow:ellipsis;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);min-height:0;gap:16px;padding:16px}.composer-panel,.preview-panel{min-height:0;border:1px solid var(--line);border-radius:8px;background:#151515f0;box-shadow:var(--shadow)}.composer-panel{display:flex;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.chat-workspace{display:grid;grid-column:1 / -1;min-width:0;min-height:0}.chat-panel{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#1c1c1cf0,#0e0e0efa),var(--surface-panel);box-shadow:var(--shadow)}.chat-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:6px 16px}.chat-title-group{display:grid;min-width:0;gap:4px}.chat-title-input{width:min(420px,100%);min-width:0;border:1px solid transparent;border-radius:8px;outline:0;background:transparent;color:var(--text);padding:2px 4px;font-size:20px;font-weight:780;letter-spacing:0;line-height:1.2}.chat-title-input:hover,.chat-title-input:focus{border-color:#ffd60047;background:#ffffff0a}.chat-title-input::placeholder{color:var(--text);opacity:1}.chat-title-group span{display:block;padding-left:4px;color:var(--muted);font-size:12px;font-weight:650}.chat-panel-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:10px}.chat-panel-actions button,.chat-action-placeholder{display:inline-flex;min-height:36px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.04);border-radius:8px;background:#ffffff0a;color:var(--muted);padding:0 12px;font-size:13px;font-weight:720}.chat-panel-actions button{cursor:pointer}.chat-panel-actions button:hover:not(:disabled),.chat-panel-actions button:focus-visible{border-color:#ffd60047;color:var(--text)}.chat-panel-actions button:disabled,.chat-action-placeholder{cursor:not-allowed;opacity:.48}.chat-message-list{display:flex;min-height:0;flex-direction:column;gap:28px;overflow-y:auto;padding:26px 28px 30px}.chat-message-list.is-empty{align-items:center;justify-content:center}.chat-turn{display:flex;width:100%;align-items:flex-start;gap:12px}.chat-turn.is-user{flex-direction:row-reverse}.chat-avatar{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;border:1px solid var(--border-muted);border-radius:50%;background:#232323eb;color:var(--text)}.chat-turn.is-assistant .chat-avatar{border-color:#ffd60057;background:var(--accent);color:var(--accent-ink)}.chat-message{display:grid;width:fit-content;max-width:min(720px,72%);gap:10px;border:1px solid var(--border-muted);border-radius:8px;background:#212121db;padding:14px 16px;box-shadow:0 16px 44px #0000002e}.chat-turn.is-user .chat-message{max-width:min(520px,64%);border-color:#ffd60038;background:var(--accent-wash)}.chat-message p{margin:0;color:var(--text);font-size:14px;line-height:1.6;white-space:pre-wrap}.chat-message time{color:var(--muted-2);font-size:11px;font-variant-numeric:tabular-nums;justify-self:end}.chat-empty{max-width:420px}.chat-composer{display:grid;width:min(980px,calc(100% - 48px));justify-self:center;gap:12px;margin:0 0 20px;border:1px solid rgba(255,214,0,.46);border-radius:8px;background:#121212f0;padding:14px;box-shadow:0 18px 54px #0000003d}.chat-composer textarea{width:100%;min-height:58px;resize:none;border:0;border-radius:8px;outline:0;background:transparent;color:var(--text);padding:4px 2px;font-size:14px;line-height:1.5}.chat-composer textarea::placeholder{color:var(--muted)}.chat-composer-footer{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:14px}.chat-tool-row{display:flex;min-width:0;flex-wrap:wrap;gap:8px}.chat-tool-chip{display:inline-flex;min-height:34px;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.04);border-radius:8px;background:#ffffff0a;color:var(--muted);padding:0 12px;font-size:13px;font-weight:680}.chat-send-area{display:inline-flex;align-items:center;gap:12px}.chat-count{color:var(--muted-2);font-size:12px;font-variant-numeric:tabular-nums}.chat-send-button{display:inline-flex;min-height:44px;align-items:stretch;justify-content:center;overflow:hidden;border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);cursor:pointer;font-weight:780}.chat-send-label{display:inline-flex;align-items:center;gap:8px;padding:0 18px}.chat-send-divider{width:1px;background:#00000029}.chat-send-button>svg{align-self:center;margin:0 12px}.chat-send-button:disabled{cursor:not-allowed;opacity:.44}.gallery-page{display:grid;grid-column:1 / -1;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;overflow:hidden;padding:16px 18px 18px}.gallery-page.is-empty{grid-template-rows:auto minmax(320px,1fr)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);font-size:14px;font-weight:720}.gallery-page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.gallery-title-block{display:grid;min-width:0;gap:4px}.gallery-title-block h2{margin:0;color:var(--text);font-size:20px;font-weight:780;letter-spacing:0;line-height:1.2}.gallery-title-block span{color:var(--muted);font-size:12px;font-weight:650}.gallery-pagination{display:flex;align-items:center}.gallery-search{display:inline-flex;align-items:center;flex:1 1 260px;max-width:420px;min-width:min(100%,240px);min-height:44px;gap:8px;padding:0 10px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-control);color:var(--muted);transition:border-color .18s ease,background .18s ease,color .18s ease}.gallery-search:focus-within{border-color:#ffd6008a;background:var(--accent-wash);color:var(--accent);outline:0}.gallery-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}.gallery-search input::placeholder{color:var(--muted-2)}.gallery-search-clear,.gallery-page-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-control);color:var(--muted);cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.gallery-search-clear{width:28px;height:28px;flex:0 0 auto;border-color:transparent;background:transparent}.gallery-search-clear:hover,.gallery-search-clear:focus-visible,.gallery-page-button:hover:not(:disabled),.gallery-page-button:focus-visible:not(:disabled),.gallery-page-button.active{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent);outline:0}.gallery-page-button.active,.gallery-page-button[data-state=active]{background:var(--accent);color:var(--accent-ink)}.gallery-grid{display:grid;max-width:100%;min-height:0;grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:14px;align-content:start;overflow-y:auto;margin:0;padding:0 2px 2px 0;list-style:none}.gallery-grid-item{min-width:0;content-visibility:auto;contain-intrinsic-size:160px 120px}.gallery-tile{position:relative;display:block;width:100%;min-width:0;overflow:hidden;padding:0;border:1px solid var(--border-subtle);border-radius:8px;background:linear-gradient(180deg,var(--surface-glint),transparent 34%),var(--surface-base);cursor:pointer;aspect-ratio:4 / 3;box-shadow:inset 0 1px #ffffff0d,0 12px 30px #0000003d;touch-action:manipulation;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.gallery-tile:after{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.28));content:"";opacity:.72;pointer-events:none;transition:opacity .18s ease}.gallery-tile:hover,.gallery-tile:focus-visible{border-color:var(--accent-border);outline:0;box-shadow:inset 0 1px 0 var(--border-muted),0 18px 42px #00000057;transform:translateY(-2px)}.gallery-tile:hover:after,.gallery-tile:focus-visible:after{opacity:.36}.gallery-tile img{display:block;width:100%;height:100%;object-fit:cover;background:var(--surface-deep);transition:transform .22s ease}.gallery-tile:hover img,.gallery-tile:focus-visible img{transform:scale(1.035)}.gallery-empty{width:100%;height:auto;max-width:420px;min-height:260px;align-self:center;justify-self:center;padding:24px}.gallery-pagination{justify-content:center;gap:8px;max-width:100%;min-height:40px;overflow-x:auto;padding-bottom:2px}.gallery-page-button{width:40px;height:40px;flex:0 0 auto;font-size:12px;font-weight:780;line-height:1}.gallery-page-button:disabled{cursor:not-allowed;opacity:.4}.gallery-page-ellipsis{display:inline-flex;width:40px;height:40px;flex:0 0 auto;align-items:center;justify-content:center;color:var(--muted);font-size:12px;font-weight:780}.icon-button{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);color:var(--muted);cursor:pointer;transition:color .18s ease,border-color .18s ease}.icon-button:hover{border-color:var(--accent);color:var(--text)}.field-label,.select-field>span,.aspect-field>span{display:block;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:0}textarea{min-height:168px;resize:vertical;border:1px solid var(--line);border-radius:8px;outline:0;background:#0e0e0e;color:var(--text);padding:12px;line-height:1.55;transition:border-color .18s ease,background .18s ease}textarea:focus{border-color:var(--accent-border-strong);background:var(--accent-ink)}textarea::placeholder{color:var(--muted-2)}.upload-card{display:flex;flex-direction:column;gap:10px}.reference-strip{display:block}.reference-strip.has-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.upload-zone{display:flex;width:100%;min-height:76px;align-items:center;justify-content:center;gap:10px;border:1px dashed #424242;border-radius:8px;background:var(--accent-ink);color:var(--muted);cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.upload-zone.compact{aspect-ratio:1;min-height:0;flex-direction:column;gap:6px;padding:8px;font-size:12px;line-height:1.2;text-align:center}.upload-zone:hover,.upload-zone:focus-visible{border-color:var(--accent-border-strong);background:#141414;color:var(--text)}.thumb{position:relative;overflow:hidden;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:#0c0c0c}.thumb img{width:100%;height:100%;object-fit:cover}.thumb button{position:absolute;top:5px;right:5px;display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:6px;background:#000000b8;color:var(--text-inverse);cursor:pointer}.thumb button:hover,.thumb button:focus-visible{background:#000000e6}.control-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,112px);gap:10px}.select-field{display:grid;gap:7px;min-width:0}.aspect-field{position:relative;display:grid;gap:7px;min-width:0}.select-field select{width:100%;height:42px;min-width:0;border:1px solid var(--line);border-radius:8px;outline:0;background:var(--surface-input);color:var(--text);padding:0 10px;cursor:pointer}.select-field select:focus{border-color:var(--accent-border-strong)}.aspect-select{position:relative}.aspect-trigger{display:grid;width:100%;height:42px;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-input);color:var(--text);padding:0 10px;cursor:pointer}.aspect-trigger[aria-expanded=true]{border-color:var(--accent-border-strong)}.aspect-trigger-text,.aspect-option span{display:block;min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:720;line-height:1.15;text-align:left;text-overflow:ellipsis;white-space:nowrap}.aspect-menu{position:absolute;right:0;left:0;z-index:30;display:grid;gap:4px;margin-top:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-dialog);padding:6px;box-shadow:0 18px 50px #00000061}.aspect-option{display:grid;min-height:42px;grid-template-columns:18px minmax(0,1fr) 16px;align-items:center;gap:8px;border-radius:7px;background:transparent;color:var(--muted);padding:6px 8px;cursor:pointer}.aspect-option:hover,.aspect-option:focus-visible,.aspect-option.active{background:var(--panel-strong);color:var(--text);outline:0}.error-box{border:1px solid var(--danger-border);border-radius:8px;background:var(--danger-soft);color:#ffb3b3;padding:10px 12px;font-size:13px;line-height:1.5}.generate-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:10px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:15px;font-weight:760;cursor:pointer;transition:opacity .18s ease,transform .18s ease,filter .18s ease}.generate-button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.generate-button:disabled{cursor:not-allowed;opacity:.44}.preview-panel{display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.preview-stage{position:relative;display:flex;min-height:0;align-items:center;justify-content:center;overflow:hidden;padding:0;background:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-position:center center;background-size:16px 16px}.preview-stage:before{position:absolute;inset:0;content:"";opacity:.2;pointer-events:none}.empty-state{display:flex;max-width:360px;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center;z-index:1}.empty-icon{display:none;width:64px;height:64px;align-items:center;justify-content:center;border-radius:8px;background:#ffd600e6;color:var(--accent-ink);transform:rotate(3deg)}.empty-state h2{margin:0;color:var(--text);font-size:18px;font-weight:650;letter-spacing:0}.empty-state p{margin:0;color:var(--muted-2);font-size:14px;line-height:1.6}.empty-state p span{white-space:nowrap}.result-preview{position:relative;width:100%;height:100%;min-width:0;overflow:hidden}.preview-backdrop{position:absolute;inset:0;scale:1.1;background-position:center;background-size:cover;filter:blur(40px) saturate(1.5);opacity:.5}.result-image-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.result-image-wrap img{display:block;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 24px 70px #00000073}.preview-arrow{position:absolute;z-index:5;display:inline-flex;width:56px;height:56px;align-items:center;justify-content:center;border-radius:8px;background:#181818b8;color:var(--text);cursor:pointer;opacity:0;transition:opacity .16s ease,transform .16s ease,background .16s ease}.preview-arrow:hover{background:#242424e6}.preview-arrow:disabled{pointer-events:none;opacity:0}.preview-arrow-left{top:50%;left:16px;transform:translate(-16px,-50%)}.preview-arrow-right{top:50%;right:16px;transform:translate(16px,-50%)}.preview-stage:hover .preview-arrow,.preview-stage:focus-within .preview-arrow{opacity:1;transform:translateY(-50%)}.preview-info{position:absolute;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:24px;background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.6),transparent);opacity:0;transform:translateY(100%);transition:opacity .16s ease,transform .16s ease;pointer-events:none}.preview-stage:hover .preview-info,.preview-stage:focus-within .preview-info{opacity:1;transform:translateY(0)}.preview-meta{min-width:0;max-width:70%;pointer-events:auto}.preview-meta p{margin:0;overflow:hidden;color:var(--text);font-size:18px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.preview-meta div{display:flex;align-items:center;gap:10px;margin-top:3px;color:var(--muted);font-size:14px}.preview-actions{display:flex;flex:0 0 auto;gap:8px;pointer-events:auto}.preview-action{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:8px;background:#181818db;color:var(--text);cursor:pointer}.preview-action:hover{background:#2a2a2aeb}.preview-action.danger{color:#ff9d9d}.preview-action:disabled{cursor:not-allowed;opacity:.45}.gallery-lightbox{background:#000000d6}.gallery-lightbox-close{position:fixed;top:22px;right:22px;z-index:1}.gallery-lightbox-arrow{position:fixed;top:50%;z-index:1;display:inline-flex;width:56px;height:56px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#121212c7;color:var(--text);cursor:pointer;transform:translateY(-50%);transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.gallery-lightbox-arrow:hover,.gallery-lightbox-arrow:focus-visible{border-color:#ffd60094;background:#1c1c1cf0;color:var(--accent);outline:0}.gallery-lightbox-prev{left:24px}.gallery-lightbox-next{right:24px}.gallery-lightbox-image{display:block;max-width:min(94vw,1180px);max-height:90dvh;object-fit:contain;border-radius:8px;background:var(--surface-deep);box-shadow:0 28px 86px #0000009e}.loading-state{z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center}.loading-state p{margin:-8px 0 0;color:var(--muted);font-family:Consolas,Courier New,monospace;font-size:16px;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.black-mirror-loading{--dur: 1.5;position:relative;width:100px;height:100px;filter:blur(1px)}.black-mirror-loading>.part{--position-offset: 0px;position:absolute;top:50%;left:50%;width:8px;height:16px;margin:-8px 0 0 -4px;opacity:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23555' viewBox='0 0 10.347 21.936'%3E %3Cpath d='M8.325 0 .013 3.443A21.5464 21.5464 0 0 1 0 18.501l8.292 3.435A30.5245 30.5245 0 0 0 8.326 0z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;animation:calc(var(--dur) * 1s) linear infinite circle-loading}.black-mirror-loading>.part:first-child{transform:rotate(0) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 1s)}.black-mirror-loading>.part:nth-child(2){transform:rotate(45deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 2s)}.black-mirror-loading>.part:nth-child(3){transform:rotate(90deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 3s)}.black-mirror-loading>.part:nth-child(4){transform:rotate(135deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 4s)}.black-mirror-loading>.part:nth-child(5){transform:rotate(180deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 5s)}.black-mirror-loading>.part:nth-child(6){transform:rotate(225deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 6s)}.black-mirror-loading>.part:nth-child(7){transform:rotate(270deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 7s)}.black-mirror-loading>.part:nth-child(8){transform:rotate(315deg) translate(calc(20px + var(--position-offset)));animation-delay:calc(var(--dur) / 8 * 8s)}@keyframes circle-loading{0%{--position-offset: 1px;opacity:1;filter:drop-shadow(0 0 6px #00000094)}20%{--position-offset: 0px}to{--position-offset: 0px;opacity:.2}}@keyframes pulse{50%{opacity:.5}}.spin{animation:spin .8s linear infinite}.history-strip{display:grid;grid-auto-flow:column;grid-auto-columns:148px;gap:10px;overflow-x:auto;padding:12px;border-top:1px solid var(--line);background:var(--surface-floor)}.history-card{position:relative;min-width:0;border:1px solid var(--line);border-radius:8px;background:#171717;color:var(--muted)}.history-card.active,.history-card[data-state=active]{border-color:var(--accent);color:var(--text)}.history-main{display:grid;width:100%;grid-template-rows:82px 30px;gap:6px;border-radius:8px;background:transparent;color:inherit;padding:6px;text-align:left;cursor:pointer}.history-main img{width:100%;height:82px;object-fit:cover;border-radius:6px;background:var(--surface-deep)}.history-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:30px}.remove-history{position:absolute;top:10px;right:10px;display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:6px;background:#000000b3;color:var(--text-inverse);opacity:0;cursor:pointer;transition:opacity .16s ease}.history-card:hover .remove-history,.history-card:focus-within .remove-history{opacity:1}.sponsor-bar{position:fixed;right:18px;bottom:18px;display:inline-grid;max-width:min(420px,calc(100vw - 36px));grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid rgba(255,214,0,.45);border-radius:8px;background:#141414f2;color:var(--text);padding:10px 12px;box-shadow:var(--shadow)}.sponsor-bar span{border-radius:6px;background:var(--accent);color:var(--accent-ink);padding:3px 6px;font-size:11px;font-weight:780}.sponsor-bar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.sponsor-bar em{color:var(--accent);font-size:12px;font-style:normal;font-weight:720}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}}@media(max-width:820px){body{overflow-y:auto}.frontend-toast-stack[data-position=top-right]{top:72px;right:12px;left:12px;width:auto}.app-shell{min-height:100%;height:auto}.app-body,.app-shell.sidebar-collapsed .app-body{grid-template-columns:64px minmax(0,1fr)}.top-bar{padding:0 14px}.frontend-sidebar{margin:12px 0 12px 12px;padding:10px}.app-shell:not(.sidebar-collapsed) .frontend-sidebar{position:fixed;top:76px;bottom:12px;left:12px;z-index:80;width:min(304px,calc(100vw - 24px));margin:0}.workspace{grid-template-columns:1fr;padding:12px}.chat-workspace{min-height:min(640px,calc(100dvh - 100px))}.composer-panel,.preview-panel{min-height:auto}.preview-panel{grid-template-rows:minmax(420px,54vh) auto}.gallery-page{min-height:auto;overflow:visible;padding:12px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:10px;overflow:visible}.gallery-lightbox-image{max-width:calc(100vw - 24px);max-height:88dvh}.gallery-lightbox-close{top:12px;right:12px}.gallery-lightbox-arrow{width:48px;height:48px}.gallery-lightbox-prev{left:12px}.gallery-lightbox-next{right:12px}.result-preview{max-height:none}.user-login-page .backdrop{grid-template-columns:1fr;min-height:auto}.user-login-page .hero{display:none}.user-login-page .stage{padding:24px}.user-login-page .login-card{width:min(100%,430px)}}@media(prefers-reduced-motion:reduce){.app-body,.frontend-sidebar,.sidebar-new-button,.sidebar-nav-item,.sidebar-recent-item,.sidebar-toggle,.sidebar-search-button,.sidebar-points-card button,.gallery-search,.gallery-search-clear,.gallery-page-button,.gallery-tile,.gallery-tile:after,.gallery-tile img,.gallery-lightbox-arrow{transition:none}.gallery-tile:hover,.gallery-tile:focus-visible,.gallery-tile:hover img,.gallery-tile:focus-visible img{transform:none}}@media(max-width:520px){.brand-mark h1{font-size:17px}.user-avatar-button{width:42px;height:42px}.auth-dialog{max-height:calc(100dvh - 28px);padding:18px}.control-grid{grid-template-columns:1fr}.history-strip{grid-auto-columns:124px}.gallery-page{gap:12px;padding:10px}.gallery-page-head{align-items:flex-start;flex-direction:column;gap:10px}.gallery-search{width:100%;max-width:none;flex-basis:100%}.chat-message,.chat-turn.is-user .chat-message{max-width:calc(100% - 50px)}.chat-composer{width:calc(100% - 24px);margin-bottom:12px}.chat-panel-head{align-items:flex-start;flex-direction:column}.chat-panel-actions{width:100%}.chat-composer-footer{align-items:stretch;flex-direction:column}.chat-send-area{justify-content:space-between}.chat-send-button{min-width:132px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-tile{aspect-ratio:1 / 1}.gallery-pagination{gap:6px}.gallery-page-button,.gallery-page-ellipsis{width:38px;height:38px}.user-login-body{padding:14px}.user-login-page .stage,.user-login-page .login-card{padding:18px}}
