:root{--bg:#f5f5f7;--bg-elevated:#fff;--bg-subtle:#f5f5f7;--bg-hover:#ebebf0;--text:#1d1d1f;--text-2:#424245;--text-3:#6e6e73;--text-4:#86868b;--text-5:#aeaeb2;--accent:#0071e3;--accent-hover:#0077ed;--accent-soft:#e8f1fd;--accent-ink:#fff;--brass:#0071e3;--brass-soft:#e8f1fd;--success:#34c759;--danger:#ff3b30;--warning:#ff9500;--line:#00000014;--line-strong:#00000029;--line-soft:#0000000b;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #00000008;--shadow-md:0 4px 16px #00000014, 0 1px 3px #0000000a;--shadow-lg:0 12px 32px #0000001f, 0 4px 10px #0000000d;--shadow-xl:0 24px 60px #00000029, 0 8px 20px #00000012;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:26px;--r-full:999px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-serif:var(--font);--font-mono:"SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--blur-bar:saturate(180%) blur(20px);--bar-bg:#fbfbfdc7;scrollbar-color:#0003 transparent;scrollbar-width:thin}*{box-sizing:border-box}html,body{-webkit-text-size-adjust:100%;min-width:320px;margin:0;padding:0;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}a{color:var(--accent);transition:color .18s var(--ease);text-decoration:none}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-soft);color:var(--text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000029;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000047}#root{min-height:100dvh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.login-bg{--bg:#08080a;--bg-elevated:#1e1e23;--bg-subtle:#ffffff0e;--bg-hover:#ffffff1a;--text:#f5f5f7;--text-2:#d5d5da;--text-3:#a6a6ae;--text-4:#86868b;--text-5:#5a5a61;--accent:#0a84ff;--accent-hover:#3d9bff;--accent-soft:#0a84ff29;--accent-ink:#fff;--line:#ffffff1f;--line-strong:#ffffff38;--line-soft:#ffffff12;--shadow-lg:0 32px 80px #0000009e, 0 8px 24px #0006;background:var(--bg);min-height:100dvh;color:var(--text);box-sizing:border-box;isolation:isolate;grid-template-columns:minmax(0,1.1fr) 420px;align-items:center;gap:72px;padding:56px;display:grid;position:relative;overflow:hidden}.login-art{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-glow{will-change:transform;border-radius:50%;display:block;position:absolute}.login-glow-warm{background:radial-gradient(circle,#d6964a38 0%,#a0602817 42%,#0000 70%);width:62vw;min-width:520px;height:62vw;min-height:520px;animation:46s ease-in-out infinite glowDriftA;top:-18%;left:-14%}.login-glow-cool{background:radial-gradient(circle,#266ad642 0%,#183e841a 44%,#0000 72%);width:70vw;min-width:560px;height:70vw;min-height:560px;animation:58s ease-in-out infinite glowDriftB;bottom:-26%;right:-20%}.login-orbits{width:100%;height:100%;display:block;position:absolute;inset:0}.orbit-spin{transform-box:view-box;transform-origin:600px 430px;animation-name:orbitSpin;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowDriftA{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(6vw,4vh)scale(1.12)}}@keyframes glowDriftB{0%,to{transform:translate(0,0)scale(1.06)}50%{transform:translate(-5vw,-5vh)scale(1)}}.login-vignette{background:radial-gradient(120% 80% at 50% 42%,#0000 38%,#0000008c 100%),linear-gradient(#0006 0%,#0000 26%);position:absolute;inset:0}.login-grain{opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.login-hero{text-align:left;z-index:1;max-width:620px;position:relative}.login-brand{color:var(--text);align-items:center;gap:11px;margin-bottom:26px;display:flex}.login-brand .login-brand-mark{color:var(--text);opacity:.92;place-items:center;display:grid}.login-brand .login-brand-word{letter-spacing:.14em;font-size:1.06rem;font-weight:600}.eyebrow{color:var(--text-4);letter-spacing:0;margin:0 0 12px;font-size:.82rem;font-weight:500}.login-hero h1{color:var(--text);font-family:var(--font);letter-spacing:-.022em;margin:0;font-size:clamp(2.4rem,5.2vw,4.2rem);font-weight:600;line-height:1.06}.hero-copy{max-width:520px;color:var(--text-3);letter-spacing:.004em;margin:22px 0 0;font-size:1.05rem;line-height:1.6}.hero-tagline{min-height:1.5em;color:var(--text-2);letter-spacing:.01em;align-items:center;gap:10px;margin:26px 0 0;font-size:1.02rem;font-weight:500;display:flex}.hero-tagline:before{content:"";background:linear-gradient(90deg,#f0c27be6,#f0c27b00);flex:none;width:22px;height:1px}.hero-tagline span{animation:taglineIn .7s var(--ease) both}@keyframes taglineIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hero-stats{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.hero-stats span{border-radius:var(--r-full);border:1px solid var(--line);color:var(--text-2);letter-spacing:.01em;transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);background:#ffffff0d;padding:8px 14px;font-size:.8rem;font-weight:500}.hero-stats span:hover{background:var(--accent-soft);color:#cfe4ff;border-color:#0a84ff66}.hero-lang{margin-top:26px}.login-card{border:1px solid var(--line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(30px)saturate(180%);backdrop-filter:blur(30px)saturate(180%);width:100%;box-shadow:var(--shadow-lg);color:var(--text);text-align:left;z-index:1;background:#18181c9e;padding:36px 32px 30px;position:relative}.login-card-head{margin-bottom:24px}.login-card-head .eyebrow{color:var(--text-4);margin-bottom:6px}.login-title{color:var(--text);font-family:var(--font);letter-spacing:-.018em;margin:0;font-size:1.75rem;font-weight:600}.login-field{flex-direction:column;gap:7px;margin-bottom:16px;display:flex}.login-field label{color:var(--text-2);letter-spacing:0;font-size:.82rem;font-weight:500}.login-input{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-subtle);width:100%;color:var(--text);font-family:var(--font);transition:border-color .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);box-sizing:border-box;outline:none;padding:12px 14px;font-size:.98rem}.login-input::placeholder{color:var(--text-5)}.login-input:focus{border-color:var(--accent);background:#ffffff14;box-shadow:0 0 0 3px #0a84ff38}.login-input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #232329}.login-input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #232329}.login-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #232329}.login-pwd-wrap{position:relative}.login-pwd-wrap .login-input{padding-right:48px}.login-eye{border-radius:var(--r-full);width:34px;height:34px;color:var(--text-4);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-eye:hover{background:var(--bg-hover);color:var(--text-2)}.login-eye svg{display:block}.login-btn,.mode-switch{cursor:pointer;font-weight:500;font-family:var(--font);transition:background .18s var(--ease), color .18s var(--ease), opacity .18s var(--ease);border:0}.login-btn{border-radius:var(--r-md);background:var(--accent);width:100%;color:var(--accent-ink);letter-spacing:0;margin-top:8px;padding:13px 18px;font-size:.98rem;font-weight:600}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:active:not(:disabled){opacity:.85}.login-btn:disabled{background:var(--text-5);cursor:not-allowed;opacity:.7}.mode-switch{color:#7fbbff;border-radius:var(--r-sm);background:0 0;width:100%;margin-top:12px;padding:8px;font-size:.9rem}.mode-switch:hover{background:var(--accent-soft)}.login-msg{border-radius:var(--r-md);background:var(--accent-soft);color:#cfe4ff;text-align:center;border:1px solid #0a84ff52;margin-top:14px;padding:12px 14px;font-size:.88rem}@media (width<=920px){.login-bg{grid-template-columns:1fr;align-items:start;gap:30px;padding:40px 20px}.login-hero{max-width:none}.login-hero h1{font-size:clamp(2rem,8vw,3rem)}.hero-copy{margin-top:16px;font-size:.98rem}.hero-tagline{margin-top:20px;font-size:.96rem}.hero-stats{gap:8px;margin-top:20px}.hero-stats span{padding:7px 13px;font-size:.76rem}.login-orbits{transform:translateY(6%)}}@media (width<=480px){.login-bg{gap:22px;padding:28px 16px}.login-brand{margin-bottom:18px}.login-card{border-radius:var(--r-lg);padding:26px 20px 22px}.login-title{font-size:1.55rem}.login-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#18181cdb}.login-grain{display:none}}@media (prefers-reduced-motion:reduce){.orbit-spin,.login-glow-warm,.login-glow-cool,.hero-tagline span{animation:none}.hero-stats span,.login-btn,.mode-switch,.login-input,.login-eye{transition:none}}@supports ((-webkit-backdrop-filter:blur(1px))){.login-card{-webkit-backdrop-filter:blur(30px)saturate(180%)}@media (width<=480px){.login-card{-webkit-backdrop-filter:none}}}.batch-page{flex-direction:column;gap:18px;padding-bottom:40px;display:flex}.batch-warn{border-radius:var(--r-md);color:var(--text);background:#ff95001a;border:1px solid #ff950047;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.batch-warn svg{color:var(--warning);flex:none;margin-top:1px}.batch-warn strong{font-size:.88rem;font-weight:600;display:block}.batch-warn p{color:var(--text-3);margin:4px 0 0;font-size:.8rem;line-height:1.55}.batch-intro{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);padding:26px 24px}.batch-intro-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:14px;place-items:center;margin-bottom:16px;display:grid}.batch-intro h2{letter-spacing:-.018em;color:var(--text);margin:0;font-size:1.22rem;font-weight:600}.batch-intro p{color:var(--text-3);margin:8px 0 0;font-size:.88rem;line-height:1.62}.batch-steps{counter-reset:step;flex-direction:column;gap:9px;margin:18px 0 0;padding:0;list-style:none;display:flex}.batch-steps li{color:var(--text-2);counter-increment:step;padding-left:28px;font-size:.84rem;line-height:1.55;position:relative}.batch-steps li:before{content:counter(step);border-radius:var(--r-full);background:var(--bg-hover);width:19px;height:19px;color:var(--text-3);place-items:center;font-size:.68rem;font-weight:600;display:grid;position:absolute;top:1px;left:0}.batch-hint{color:var(--text-4);text-align:center;margin:0;font-size:.78rem;line-height:1.55}.batch-progress{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);flex-direction:column;gap:14px;padding:24px;display:flex}.batch-progress h2{letter-spacing:-.015em;color:var(--text);margin:0;font-size:1.05rem;font-weight:600}.progress-track{border-radius:var(--r-full);background:var(--bg-hover);height:8px;overflow:hidden}.progress-fill{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width .35s var(--ease-out)}.progress-text{color:var(--text-2);font-variant-numeric:tabular-nums;margin:0;font-size:.86rem}.batch-tally{flex-wrap:wrap;gap:8px;display:flex}.tally-item{border-radius:var(--r-full);background:var(--bg-subtle);color:var(--text-3);font-variant-numeric:tabular-nums;align-items:center;gap:5px;padding:5px 11px;font-size:.76rem;display:inline-flex}.tally-item.ok{color:#1f7a3a;background:#34c7591f}.tally-item.bad{color:#b3261e;background:#ff3b301a}.batch-review{flex-direction:column;gap:16px;display:flex}.batch-review-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.batch-review-head h2{letter-spacing:-.018em;color:var(--text);margin:0;font-size:1.12rem;font-weight:600}.review-count{border-radius:var(--r-full);background:var(--accent-soft);min-width:30px;height:30px;color:var(--accent);font-variant-numeric:tabular-nums;flex:none;place-items:center;padding:0 9px;font-size:.84rem;font-weight:600;display:grid}.review-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.review-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:84px minmax(0,1fr);gap:14px;padding:14px;display:grid}.review-thumb{aspect-ratio:1;border-radius:var(--r-sm);background:var(--bg-subtle);position:relative;overflow:hidden}.review-thumb img{object-fit:cover;width:100%;height:100%;display:block}.review-thumb-empty{width:100%;height:100%;color:var(--text-5);place-items:center;display:grid}.review-confidence{border-radius:var(--r-full);color:#fff;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d1d1fb3;padding:2px 6px;font-size:.62rem;font-weight:600;position:absolute;top:5px;left:5px}.review-fields{flex-direction:column;gap:8px;min-width:0;display:flex}.review-field{flex-direction:column;gap:4px;min-width:0;display:flex}.review-field>span{color:var(--text-4);font-size:.72rem}.review-field input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-subtle);width:100%;color:var(--text);font-family:var(--font);transition:border-color .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);outline:none;padding:8px 10px;font-size:.88rem}.review-field input::placeholder{color:var(--text-5)}.review-field input:focus{border-color:var(--accent);background:var(--bg-elevated);box-shadow:0 0 0 3px #0071e329}.review-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.review-footer-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.review-footer-actions .btn-primary,.review-footer-actions .btn-ghost{justify-content:center;min-width:148px}@media (width<=480px){.review-card{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px}.review-actions{justify-content:stretch}.review-actions .btn-primary,.review-actions .btn-ghost{flex:1;justify-content:center}.review-footer-actions{flex-direction:column}.review-footer-actions .btn-primary,.review-footer-actions .btn-ghost{width:100%;min-width:0}}@media (width>=720px){.review-card{grid-template-columns:96px minmax(0,1fr) auto;align-items:center}.review-actions{flex-direction:column;grid-column:auto;justify-content:center}}@supports ((-webkit-backdrop-filter:blur(1px))){.review-confidence{-webkit-backdrop-filter:blur(6px)}}:root{--topbar-h:52px;--drawer-w:268px}.home-shell{background:var(--bg);min-height:100dvh;color:var(--text);width:100%;display:flex;overflow-x:clip}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.top-bar{z-index:60;height:var(--topbar-h);padding:0 6px;padding-top:env(safe-area-inset-top,0);background:var(--bar-bg);-webkit-backdrop-filter:var(--blur-bar);backdrop-filter:var(--blur-bar);border-bottom:1px solid var(--line);align-items:center;gap:6px;display:flex;position:sticky;top:0}.top-bar-btn{border-radius:var(--r-full);width:40px;height:40px;color:var(--accent);cursor:pointer;transition:background .15s var(--ease);background:0 0;border:0;flex:none;place-items:center;display:grid}.top-bar-btn:active{background:#0000000f}.top-bar-title{letter-spacing:-.01em;min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:1.06rem;font-weight:600;overflow:hidden}.top-bar-count{border-radius:var(--r-full);background:var(--bg-subtle);color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;margin-right:8px;padding:3px 10px;font-size:.76rem;font-weight:600}.drawer-scrim{z-index:200;opacity:0;visibility:hidden;transition:opacity .26s var(--ease), visibility .26s var(--ease);background:#00000052;position:fixed;inset:0}.drawer-scrim.open{opacity:1;visibility:visible}.drawer{z-index:210;width:var(--drawer-w);max-width:84vw;padding:calc(22px + env(safe-area-inset-top,0)) 18px calc(18px + env(safe-area-inset-bottom,0));box-shadow:var(--shadow-xl);-webkit-backdrop-filter:saturate(180%)blur(28px);backdrop-filter:saturate(180%)blur(28px);transition:transform .34s var(--ease-out);background:#ffffffdb;border-right:1px solid #ffffff80;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%)}.drawer.open{transform:translate(0)}.drawer-brand{flex-direction:column;gap:3px;padding:0 10px 20px;display:flex}.drawer-brand-lockup{align-items:center;gap:9px;display:flex}.drawer-brand-mark{color:var(--text);opacity:.9;flex:none}.brand-name{letter-spacing:-.015em;color:var(--text);font-size:1.28rem;font-weight:600;line-height:1.25}.brand-sub{color:var(--text-4);font-size:.74rem;line-height:1.5}.drawer-nav{flex-direction:column;gap:2px;display:flex}.drawer-nav-item{width:100%;color:var(--text);text-align:left;cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:11px 12px;font-size:.94rem;font-weight:500;display:flex}.drawer-nav-item:hover{background:var(--bg-subtle)}.drawer-nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.drawer-nav-icon{color:currentColor;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.drawer-nav-icon svg{stroke-width:1.7px;width:100%;height:100%}.drawer-footer{flex-direction:column;gap:10px;margin-top:auto;padding-top:18px;display:flex}.user-block{border-radius:var(--r-md);background:var(--bg-subtle);align-items:center;gap:11px;padding:10px;display:flex}.user-avatar{border-radius:var(--r-full);background:var(--accent);width:34px;height:34px;color:var(--accent-ink);flex:none;place-items:center;font-size:.92rem;font-weight:600;display:grid}.user-meta{flex-direction:column;min-width:0;line-height:1.35;display:flex}.user-meta strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.user-meta span{color:var(--text-4);font-size:.74rem}.logout-btn{width:100%;color:var(--danger);cursor:pointer;transition:background .15s var(--ease);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:11px 12px;font-size:.88rem;font-weight:500;display:flex}.logout-btn:hover{background:#ff3b3014}.workspace{width:100%;max-width:1080px;padding:18px 16px calc(56px + env(safe-area-inset-bottom,0));flex:1;margin:0 auto}.workspace-sub{color:var(--text-3);margin:0 0 16px;font-size:.82rem;line-height:1.6}.toast{top:calc(var(--topbar-h) + 12px);z-index:2000;border-radius:var(--r-full);color:#fff;max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur-bar);backdrop-filter:var(--blur-bar);animation:toast-in .22s var(--ease-out), toast-out .26s ease-in 3.7s forwards;background:#1d1d1feb;padding:11px 18px;font-size:.84rem;font-weight:500;position:fixed;left:50%;transform:translate(-50%)}.toast.success{background:#248a3df0}.toast.error{background:#d70015f0}.toast.warn{background:#bf5a00f0}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-10px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-8px)}}.search-field{background:var(--bg-elevated);border:1px solid var(--line);height:44px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);border-radius:12px;align-items:center;gap:8px;margin-bottom:14px;padding:0 12px;display:flex;position:relative}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #0071e324}.search-field-icon{color:var(--text-4);flex:none;display:inline-flex}.search-field input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:.94rem}.search-field input::placeholder{color:var(--text-4)}.search-field-clear{border-radius:var(--r-full);background:var(--bg-subtle);width:22px;height:22px;color:var(--text-3);cursor:pointer;border:0;flex:none;place-items:center;display:grid}.panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);padding:26px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:22px;display:flex}.panel-title{font-family:var(--font);letter-spacing:-.015em;color:var(--text);margin:0;font-size:1.2rem;font-weight:600}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;display:flex}.section-title{letter-spacing:-.022em;color:var(--text);margin:0;font-size:1.14rem;font-weight:600}.text-btn{color:var(--accent);cursor:pointer;transition:background .15s var(--ease);background:0 0;border:0;border-radius:8px;flex:none;align-items:center;gap:4px;padding:5px 8px;font-size:.86rem;font-weight:500;display:inline-flex}.text-btn:hover{background:var(--accent-soft)}.wall-hint{color:var(--text-4);letter-spacing:.005em;margin:-4px 0 12px;font-size:.72rem}.hint-mouse{display:none}@media (hover:hover) and (pointer:fine){.hint-touch{display:none}.hint-mouse{display:inline}}.hidden-file{display:none}.camera-actions{flex:none;align-items:center;display:flex;position:relative}.shot-btn{border:1px solid var(--line);border-radius:var(--r-full);background:var(--bg-subtle);width:30px;height:30px;color:var(--text-3);cursor:pointer;transition:transform .12s var(--ease), background .15s var(--ease), border-color .15s var(--ease);-webkit-tap-highlight-color:transparent;place-items:center;padding:0;display:grid}.shot-btn:active:not(:disabled){transform:scale(.93)}.shot-btn:disabled{opacity:.45;cursor:not-allowed}.shot-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.shot-btn.open{transform:scale(.94)}.shot-menu{z-index:60;border:1px solid var(--line);background:var(--bg-elevated);min-width:128px;box-shadow:var(--shadow-md);animation:shot-menu-in .16s var(--ease-out) both;border-radius:12px;flex-direction:column;gap:2px;padding:5px;display:flex;position:absolute;top:calc(100% + 8px);right:0}@keyframes shot-menu-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.shot-menu-item{color:var(--text);text-align:left;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .14s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.86rem;font-weight:500;display:flex}.shot-menu-item:hover,.shot-menu-item:active{background:var(--bg-hover)}.search-field-divider{background:var(--line);flex:none;width:1px;height:18px}.wall-wrap{position:relative}.photo-wall-groups{flex-direction:column;gap:26px;display:flex}.wall-group{display:block}.wall-group-head{top:var(--topbar-h);z-index:20;background:var(--bg);letter-spacing:-.012em;color:var(--text);align-items:baseline;gap:8px;margin:0 0 10px;padding:7px 0;font-size:.96rem;font-weight:600;display:flex;position:sticky}.wall-group-count{color:var(--text-4);font-variant-numeric:tabular-nums;font-size:.74rem;font-weight:500}.photo-wall{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:16px 10px;display:grid}.photo-tile{text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;animation:tile-in .44s var(--ease-out) both;background:0 0;border:0;flex-direction:column;padding:0;display:flex}@keyframes tile-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.photo-tile-art{aspect-ratio:1;background:var(--bg-subtle);transition:box-shadow .18s var(--ease);border-radius:10px;display:block;position:relative;overflow:hidden}.photo-tile-art:before{content:"";background:linear-gradient(100deg, var(--bg-subtle) 30%, var(--bg-hover) 50%, var(--bg-subtle) 70%);opacity:0;background-size:240% 100%;transition:opacity .24s linear;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}.photo-tile-art:has(img:not(.is-loaded)):before{opacity:1}@keyframes shimmer{0%{background-position:140% 0}to{background-position:-40% 0}}.photo-tile img{z-index:1;object-fit:cover;object-position:center center;width:100%;height:100%;transition:transform .35s var(--ease-out);display:block;position:relative}.photo-tile:active img{transform:scale(.96)}.photo-tile.selected .photo-tile-art{box-shadow:0 0 0 2.5px var(--accent)}.photo-tile.selected .photo-tile-art img{transform:scale(.9)}.photo-tile-check{z-index:2;border-radius:var(--r-full);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:21px;height:21px;transition:background .16s var(--ease), transform .16s var(--ease-out);background:#1d1d1f6b;border:1.5px solid #ffffffeb;place-items:center;display:grid;position:absolute;top:5px;right:5px}.photo-tile-check svg{opacity:0;transition:opacity .16s var(--ease), transform .2s var(--ease-out);transform:scale(.6)}.photo-tile.selected .photo-tile-check{background:var(--accent);transform:scale(1.06)}.photo-tile.selected .photo-tile-check svg{opacity:1;transform:scale(1)}.photo-tile-empty{z-index:1;color:var(--text-4);text-align:center;place-items:center;padding:8px;font-size:.74rem;display:grid;position:absolute;inset:0}.photo-tile-score{z-index:2;border-radius:var(--r-full);color:#fff;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d1d1fb8;padding:2px 7px;font-size:.64rem;font-weight:600;position:absolute;top:6px;left:6px}.photo-tile-score.high{background:#0071e3e6}.photo-tile-score.mid{background:#bf5a00e6}.photo-tile-score.low{background:#6e6e73d9}.photo-tile.no-image .photo-tile-art{background:var(--bg-hover);border:1px dashed var(--line-strong)}.photo-tile-text{flex-direction:column;gap:1px;padding-top:7px;display:flex}.photo-tile-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:500;line-height:1.35;overflow:hidden}.photo-tile-name.is-unnamed{color:var(--text-3);font-style:italic;font-weight:400}.photo-tile-price{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:600;line-height:1.35}.wall-sentinel{place-items:center;padding:28px 0 8px;display:grid}.skeleton-tile{cursor:default}.skeleton-tile .photo-tile-art,.skeleton-line{background:var(--bg-subtle);animation:1.6s ease-in-out infinite skeleton-pulse}.skeleton-line{border-radius:4px;height:9px;display:block}.skeleton-line.w-80{width:80%}.skeleton-line.w-40{width:40%;margin-top:6px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:64px 20px;display:flex}.empty-icon{color:var(--text-5);display:inline-flex}.empty-state p{color:var(--text-3);margin:0;font-size:.9rem}.btn-primary{border-radius:var(--r-full);background:var(--accent);color:var(--accent-ink);letter-spacing:-.01em;cursor:pointer;transition:background .15s var(--ease), transform .14s var(--ease-out), opacity .15s var(--ease);border:0;justify-content:center;align-items:center;gap:7px;padding:12px 22px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:scale(.985)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary.large{padding:14px 30px;font-size:.95rem}.btn-ghost{border:1px solid var(--line-strong);border-radius:var(--r-full);background:var(--bg-elevated);color:var(--text);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), transform .14s var(--ease-out);justify-content:center;align-items:center;gap:7px;padding:11px 20px;font-size:.9rem;font-weight:500;display:inline-flex}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle)}.btn-ghost:active:not(:disabled){transform:scale(.985)}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.btn-danger{border-radius:var(--r-full);background:var(--danger);color:#fff;cursor:pointer;transition:background .15s var(--ease), transform .14s var(--ease-out), opacity .15s var(--ease);border:0;justify-content:center;align-items:center;gap:7px;padding:12px 22px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-danger:hover:not(:disabled){background:#e0342a}.btn-danger:active:not(:disabled){transform:scale(.985)}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.btn-primary:focus-visible,.btn-ghost:focus-visible,.btn-danger:focus-visible,.text-btn:focus-visible,.top-bar-btn:focus-visible,.photo-tile:focus-visible .photo-tile-art,.sel-bar-link:focus-visible,.sel-bar-delete:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary.small,.btn-ghost.small,.btn-danger.small{gap:5px;padding:7px 13px;font-size:.82rem}.btn-primary.block,.btn-ghost.block,.btn-danger.block{justify-content:center;width:100%}.product-form{flex-direction:column;gap:18px;display:flex}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-field{flex-direction:column;gap:7px;display:flex}.form-field.wide{grid-column:1/-1}.form-label{color:var(--text-3);font-size:.78rem;font-weight:500}.form-label em{color:var(--danger);margin-left:2px;font-style:normal}.product-form input,.product-form select,.product-form textarea{border:1px solid var(--line);background:var(--bg-elevated);width:100%;color:var(--text);transition:border-color .18s var(--ease), box-shadow .18s var(--ease);border-radius:10px;outline:none;padding:11px 13px;font-size:.94rem}.product-form input::placeholder,.product-form textarea::placeholder{color:var(--text-4)}.product-form textarea{resize:vertical;min-height:90px;font-family:inherit}.product-form select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2386868B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:14px;padding-right:36px}.product-form input:focus,.product-form select:focus,.product-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e324}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.form-more{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-elevated);overflow:hidden}.form-more>summary{cursor:pointer;color:var(--text-3);transition:background .15s var(--ease), color .15s var(--ease);align-items:center;gap:8px;padding:13px 15px;font-size:.84rem;font-weight:500;list-style:none;display:flex}.form-more>summary::-webkit-details-marker{display:none}.form-more>summary:after{content:"";width:6px;height:6px;transition:transform .22s var(--ease);border-bottom:1.6px solid;border-right:1.6px solid;margin-left:auto;transform:rotate(45deg)translate(-1px,-1px)}.form-more[open]>summary:after{transform:rotate(-135deg)translate(-1px,-1px)}.form-more>summary:hover{background:var(--bg-subtle);color:var(--text)}.form-more[open]>summary{border-bottom:1px solid var(--line);color:var(--text)}.form-more>.form-row{padding:15px 15px 0}.form-more>.form-field{padding:15px}.custom-select{width:100%;position:relative}.custom-select-trigger{border:1px solid var(--line);background:var(--bg-elevated);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:11px 13px;font-size:.94rem;display:flex}.custom-select-trigger:hover{border-color:var(--line-strong)}.custom-select-current{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.custom-select-caret{color:var(--text-4);transition:transform .18s var(--ease);flex:none}.custom-select-caret.open{transform:rotate(180deg)}.custom-select-menu{z-index:50;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-md);max-height:240px;box-shadow:var(--shadow-lg);flex-direction:column;gap:1px;margin:0;padding:5px;list-style:none;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.custom-select-option{width:100%;color:var(--text);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;transition:background .12s var(--ease);background:0 0;border:0;border-radius:8px;padding:9px 11px;font-size:.9rem;display:block}.custom-select-option:hover{background:var(--bg-subtle)}.custom-select-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.lazy-img{opacity:0}.lazy-img.is-loaded{opacity:1;animation:img-in .42s var(--ease-out) both}@keyframes img-in{0%{opacity:0}to{opacity:1}}.image-input{border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--bg-subtle);width:100%;transition:border-color .2s var(--ease), background .2s var(--ease);padding:12px;position:relative}.image-input:focus-within{border-color:var(--accent)}.image-pick{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.image-pick-btn{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-elevated);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .14s var(--ease-out), background .15s var(--ease), border-color .15s var(--ease);justify-content:center;align-items:center;gap:7px;padding:12px 10px;font-size:.86rem;font-weight:500;display:inline-flex}.image-pick-btn:hover:not(:disabled){background:var(--bg-hover)}.image-pick-btn:active:not(:disabled){transform:scale(.97)}.image-pick-btn:disabled{opacity:.45;cursor:not-allowed}.image-pick-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.image-pick-btn.primary:hover:not(:disabled){background:var(--accent-hover)}.image-hero{flex-direction:column;gap:8px;display:flex}.image-hero img{border-radius:var(--r-md);background:var(--bg-hover);object-fit:contain;cursor:zoom-in;width:100%;max-height:min(46vh,340px);display:block}.image-hero-bar{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);border-radius:var(--r-full);background:var(--bg-elevated);color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s var(--ease), color .15s var(--ease), transform .14s var(--ease-out);align-items:center;gap:5px;padding:7px 12px;font-size:.78rem;font-weight:500;display:inline-flex}.chip:hover:not(:disabled){background:var(--bg-hover)}.chip:active:not(:disabled){transform:scale(.96)}.chip:disabled{opacity:.45;cursor:not-allowed}.chip.danger{color:var(--danger);border-color:#ff3b3047}.chip.danger:hover:not(:disabled){background:#ff3b3014}.image-preparing{z-index:3;border-radius:var(--r-lg);-webkit-backdrop-filter:blur(10px)saturate(160%);backdrop-filter:blur(10px)saturate(160%);color:#fff;animation:fade-in .16s var(--ease-out);background:#1d1d1f99;justify-content:center;align-items:center;gap:9px;font-size:.82rem;font-weight:500;display:flex;position:absolute;inset:0}.query-preview-wrap{max-width:320px;margin:18px 0 4px;display:inline-block;position:relative}.query-preview{border-radius:var(--r-md);border:1px solid var(--line);object-fit:contain;cursor:zoom-in;max-width:100%;max-height:240px;display:block}.searching-overlay{border-radius:var(--r-md);color:#fff;text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1d1d1fc2;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:14px;font-size:.82rem;display:flex;position:absolute;inset:0}.spinner{border:2.5px solid #0000001f;border-top-color:var(--text-3);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.spinner.on-dark{border-color:#fff #ffffff3d #ffffff3d}.spinner.on-accent{border-color:#fff #ffffff52 #ffffff52}.spinner.xs{border-width:2px;width:15px;height:15px}@keyframes spin{to{transform:rotate(360deg)}}.lightbox{z-index:3000;animation:lightbox-in .3s var(--ease-out);cursor:zoom-out;background:#000000eb;place-items:center;padding:24px;display:grid;position:fixed;inset:0}@keyframes lightbox-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.lightbox img{border-radius:var(--r-md);object-fit:contain;max-width:92vw;max-height:88vh}.lightbox-close{top:calc(16px + env(safe-area-inset-top,0));border-radius:var(--r-full);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1f;border:1px solid #ffffff29;place-items:center;width:38px;height:38px;display:grid;position:absolute;right:16px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.detail{z-index:3100;background:var(--bg);animation:sheet-up .34s var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.detail-bar{height:var(--topbar-h);padding:0 8px;padding-top:env(safe-area-inset-top,0);background:var(--bar-bg);-webkit-backdrop-filter:var(--blur-bar);backdrop-filter:var(--blur-bar);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;display:flex}.detail-icon-btn{border-radius:var(--r-full);width:40px;height:40px;color:var(--accent);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.detail-icon-btn:active{background:#0000000f}.detail-counter{text-align:center;color:var(--text-3);font-variant-numeric:tabular-nums;flex:1;font-size:.8rem;font-weight:500}.detail-text-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;padding:7px 12px;font-size:.9rem;font-weight:500}.detail-text-btn:active{background:var(--accent-soft)}.detail-scroll{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.detail-stage{background:var(--bg-elevated);border-bottom:1px solid var(--line);place-items:center;height:min(56vh,440px);display:grid;position:relative;overflow:hidden}.detail-image{object-fit:contain;max-width:100%;max-height:100%;transition:transform .22s var(--ease-out);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.detail-image.dragging{transition:none}.detail-no-image{border:1px dashed var(--line-strong);border-radius:var(--r-md);width:150px;height:150px;color:var(--text-4);text-align:center;place-items:center;padding:12px;font-size:.88rem;display:grid}.detail-nav{border:1px solid var(--line);border-radius:var(--r-full);width:40px;height:40px;color:var(--text-2);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;place-items:center;display:none;position:absolute;top:50%;transform:translateY(-50%)}.detail-nav.prev{left:14px}.detail-nav.next{right:14px}.detail-body{max-width:720px;padding:22px 16px calc(40px + env(safe-area-inset-bottom,0));margin:0 auto}.detail-name{letter-spacing:-.02em;color:var(--text);margin:0 0 6px;font-size:1.42rem;font-weight:600;line-height:1.28}.detail-name.is-unnamed{color:var(--text-3);font-weight:500}.detail-price{color:var(--accent);font-variant-numeric:tabular-nums;margin:0 0 22px;font-size:1.28rem;font-weight:600}.detail-list{border-radius:var(--r-md);background:var(--bg-elevated);margin:0;overflow:hidden}.detail-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding:13px 16px;display:flex}.detail-row:last-child{border-bottom:0}.detail-row dt{color:var(--text-3);flex:none;font-size:.88rem}.detail-row dd{min-width:0;color:var(--text);text-align:right;word-break:break-word;margin:0;font-size:.88rem;font-weight:500}.detail-desc{margin-top:22px}.detail-desc h3{letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);margin:0 0 8px;font-size:.78rem;font-weight:600}.detail-desc p{border-radius:var(--r-md);background:var(--bg-elevated);color:var(--text-2);margin:0;padding:14px 16px;font-size:.9rem;line-height:1.7}.detail-actions{justify-content:flex-end;margin-top:26px;display:flex}.sel-bar{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0));z-index:1500;border-radius:var(--r-xl);box-shadow:var(--shadow-xl), inset 0 1px 0 #ffffffe6;-webkit-backdrop-filter:saturate(180%)blur(24px);backdrop-filter:saturate(180%)blur(24px);animation:sel-bar-in .3s var(--ease-out);background:#ffffffd1;border:1px solid #ffffff9e;flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex;position:fixed}@keyframes sel-bar-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.sel-bar-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.sel-bar-count{color:var(--text);font-variant-numeric:tabular-nums;font-size:.86rem;font-weight:600}.sel-bar-links{gap:2px;display:flex}.sel-bar-link{border-radius:var(--r-full);color:var(--accent);cursor:pointer;transition:background .15s var(--ease), opacity .15s var(--ease);background:0 0;border:0;padding:7px 9px;font-size:.82rem;font-weight:500}.sel-bar-link:hover:not(:disabled){background:var(--accent-soft)}.sel-bar-link:disabled{opacity:.35;cursor:not-allowed}.sel-bar-link.strong{font-weight:600}.sel-bar-delete{border-radius:var(--r-md);background:var(--danger);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;transition:background .15s var(--ease), transform .14s var(--ease-out), opacity .15s var(--ease);border:0;justify-content:center;align-items:center;gap:7px;padding:12px;font-size:.92rem;font-weight:600;display:inline-flex}.sel-bar-delete:hover:not(:disabled){background:#e0342a}.sel-bar-delete:active:not(:disabled){transform:scale(.985)}.sel-bar-delete:disabled{opacity:.4;cursor:not-allowed}.workspace.has-sel-bar{padding-bottom:calc(156px + env(safe-area-inset-bottom,0))}.dialog-backdrop{z-index:4000;-webkit-backdrop-filter:blur(14px)saturate(150%);backdrop-filter:blur(14px)saturate(150%);animation:fade-in .2s var(--ease-out);background:#00000042;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{border-radius:var(--r-xl);width:100%;max-width:304px;box-shadow:var(--shadow-xl), inset 0 1px 0 #ffffffeb;-webkit-backdrop-filter:saturate(200%)blur(30px);backdrop-filter:saturate(200%)blur(30px);text-align:center;animation:dialog-in .28s var(--ease-out);background:#ffffffc7;border:1px solid #ffffffb8;padding:24px 20px 18px}@keyframes dialog-in{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.dialog-head{flex-direction:column;align-items:center;gap:10px;display:flex}.dialog-icon{color:var(--danger);display:inline-flex}.dialog-title{letter-spacing:-.012em;color:var(--text);margin:0;font-size:1.02rem;font-weight:600}.dialog-message{color:var(--text-3);margin:10px 0 20px;font-size:.86rem;line-height:1.6}.dialog-actions{gap:8px;display:flex}.dialog-actions .btn-ghost,.dialog-actions .btn-danger{flex:1;padding:11px 12px;font-size:.88rem}.lang-block{margin:0}.lang-switch{align-items:center;gap:8px;display:flex;position:relative}.lang-switch-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-4);font-size:.72rem;font-weight:600}.lang-switch-trigger{border:1px solid var(--line);border-radius:var(--r-full);background:var(--bg-elevated);color:var(--text);font:inherit;cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);align-items:center;gap:6px;padding:7px 12px;font-size:.84rem;display:inline-flex}.lang-switch-trigger:hover{background:var(--bg-subtle)}.lang-switch-current{white-space:nowrap}.lang-switch-caret{color:var(--text-4);transition:transform .18s var(--ease);flex:none}.lang-switch-caret.open{transform:rotate(180deg)}.lang-switch-menu{z-index:60;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-md);min-width:150px;box-shadow:var(--shadow-lg);margin:0;padding:5px;list-style:none;position:absolute;bottom:calc(100% + 6px);left:0}.lang-switch-option{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .12s var(--ease);background:0 0;border:0;border-radius:8px;padding:9px 11px;font-size:.88rem;display:block}.lang-switch-option:hover{background:var(--bg-subtle)}.lang-switch-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}@media (width<=640px){.workspace{padding:14px 12px calc(48px + env(safe-area-inset-bottom,0))}.photo-wall{grid-template-columns:repeat(auto-fill,minmax(75px,1fr));gap:14px 8px;margin:0 -4px}.photo-tile-name,.photo-tile-price{font-size:.74rem}.wall-group-head{margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}.form-row{grid-template-columns:1fr}.detail-actions{justify-content:stretch}.detail-actions .btn-danger{flex:1}.photo-tile-check{width:19px;height:19px;top:4px;right:4px}.shot-btn{width:28px;height:28px}}@media (width>=960px){.drawer{max-width:none;height:100vh;box-shadow:none;position:sticky;top:0;transform:none}.drawer-scrim,.top-bar-btn{display:none}.top-bar{padding-left:20px}.workspace{padding:26px 32px 56px}.photo-wall{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:18px 12px}.detail-nav{display:grid}.sel-bar{width:320px;bottom:24px;left:auto;right:24px}.workspace.has-sel-bar{padding-bottom:56px}}@media (width>=1280px){.photo-wall{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.photo-tile{animation:none!important}.spinner{animation-duration:.9s!important;animation-iteration-count:infinite!important}}@supports ((-webkit-backdrop-filter:blur(1px))){.top-bar{-webkit-backdrop-filter:var(--blur-bar)}.drawer{-webkit-backdrop-filter:saturate(180%)blur(28px)}.toast{-webkit-backdrop-filter:var(--blur-bar)}.photo-tile-check,.photo-tile-score{-webkit-backdrop-filter:blur(6px)}.image-preparing{-webkit-backdrop-filter:blur(10px)saturate(160%)}.searching-overlay{-webkit-backdrop-filter:blur(6px)}.lightbox-close{-webkit-backdrop-filter:blur(10px)}.detail-bar{-webkit-backdrop-filter:var(--blur-bar)}.detail-nav{-webkit-backdrop-filter:blur(10px)}.sel-bar{-webkit-backdrop-filter:saturate(180%)blur(24px)}.dialog-backdrop{-webkit-backdrop-filter:blur(14px)saturate(150%)}.dialog{-webkit-backdrop-filter:saturate(200%)blur(30px)}}
