/* ==== styles.css ==== */
:root{
  --canvas:#f7f7f6;--surface:#fff;--surface-soft:#f1f1ef;--surface-raised:#fff;
  --text:#242422;--muted:#75746f;--subtle:#a09f99;--line:#e5e4e0;
  --blue:#2783de;--blue-soft:#e8f2fb;--green:#3b9467;--green-soft:#e8f3ed;
  --orange:#c77731;--orange-soft:#fbede0;--red:#dd5d52;--red-soft:#fce9e7;
  --shadow:0 1px 2px rgba(24,24,22,.04),0 10px 30px rgba(24,24,22,.05);
  --sidebar:224px;--radius:12px;--safe-top:var(--tg-content-safe-area-inset-top,0px);
  --safe-bottom:var(--tg-content-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 34%,transparent);outline-offset:2px}
.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--text);color:var(--surface);padding:10px 14px;border-radius:8px;opacity:0;pointer-events:none}.skip-link:focus{top:16px;opacity:1;pointer-events:auto}
.skip-link:not(:focus){clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden}
.hidden{display:none!important}
.step-label,.context-label{display:block;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.app-shell{min-height:100vh}
.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:var(--sidebar);padding:22px 14px calc(18px + var(--safe-bottom));border-right:1px solid var(--line);background:color-mix(in srgb,var(--canvas) 95%,transparent);display:flex;flex-direction:column}
.brand-button{height:48px;border:0;background:none;color:var(--text);display:flex;align-items:center;gap:11px;padding:5px 8px;font-size:17px}.brand-button>span,.brand-symbol{width:36px;height:36px;border-radius:10px;background:var(--text);color:var(--surface);display:grid;place-items:center;font-weight:900;letter-spacing:-.04em}
.side-nav{display:grid;gap:4px;margin-top:30px}.side-nav button,.profile-nav{min-height:46px;border:0;border-radius:9px;background:none;color:var(--muted);display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left}.side-nav button:hover,.profile-nav:hover{background:var(--surface-soft);color:var(--text)}.side-nav button.active{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line);font-weight:700}.nav-icon{font-size:21px;width:22px;text-align:center;font-weight:400}
.sidebar-foot{margin-top:auto}.profile-nav{width:100%;padding:8px}.profile-nav>span:nth-child(2){min-width:0;display:grid}.profile-nav b,.profile-nav small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-nav small{color:var(--muted)}.profile-nav i{margin-left:auto;font-style:normal}.mini-avatar,.avatar-button{display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-weight:800}.mini-avatar{width:34px;height:34px;border-radius:9px;flex:0 0 auto}
.workspace{margin-left:var(--sidebar);min-height:100vh}.topbar{height:72px;padding:var(--safe-top) clamp(24px,4vw,48px) 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:12;background:color-mix(in srgb,var(--canvas) 90%,transparent);backdrop-filter:blur(18px)}.topbar>div:first-child{display:grid}.context-label{color:var(--muted);font-size:9px}.topbar b{font-size:14px}.top-actions{display:flex;align-items:center;gap:8px}.security-pill{display:flex;align-items:center;gap:7px;color:var(--green);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 16%,var(--line));padding:7px 10px;border-radius:999px;font-size:12px;font-weight:700}.security-pill i{width:7px;height:7px;background:var(--green);border-radius:50%}
.icon-button,.avatar-button{width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text)}.avatar-button{border:0;border-radius:11px}
main{padding:clamp(28px,5vw,60px) clamp(20px,4vw,52px) 120px;max-width:1320px;margin:auto}.view{display:none}.view.active{display:block;animation:reveal .24s ease both}@keyframes reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.search-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:48px;align-items:start;min-width:0}.search-main{max-width:760px;min-width:0}.hero-copy h1,.page-heading h1,.profile-hero h1{font-size:clamp(36px,5vw,62px);line-height:1.02;letter-spacing:-.052em;margin:12px 0 16px}.hero-copy p,.page-heading p{max-width:660px;color:var(--muted);font-size:17px;margin:0 0 28px}
.composer-card,.quick-check-card,.advanced-panel,.result-card,.project-card,.data-item,.stat-grid article,.profile-hero,.usage-grid article,.plan-card,.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.composer-card{padding:18px;box-shadow:var(--shadow)}.composer-card>label,.field-head>span,.select-field{font-size:12px;font-weight:750;color:var(--muted)}.composer-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:8px}.composer-row textarea{width:100%;min-height:64px;max-height:150px;resize:vertical;border:0;background:transparent;color:var(--text);font-size:18px;line-height:1.45;padding:6px 0;outline:0}.composer-row textarea::placeholder{color:var(--subtle)}.composer-meta{display:flex;justify-content:space-between;color:var(--subtle);font-size:11px;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.button{min-height:44px;border-radius:9px;border:1px solid var(--line);padding:0 16px;font-weight:750;background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:10px}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover{background:color-mix(in srgb,var(--blue) 89%,#000)}.button.secondary{background:var(--text);border-color:var(--text);color:var(--surface)}.button.ghost:hover{background:var(--surface-soft)}.button.wide{width:100%}.button.loading span{opacity:.6}.button.loading i{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;font-size:0}@keyframes spin{to{transform:rotate(360deg)}}
.theme-block{margin-top:24px}.field-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.link-button{border:0;background:none;color:var(--blue);font-size:12px;padding:6px}.chips,.recent-list{display:flex;gap:8px;overflow:auto;scrollbar-width:none}.chips::-webkit-scrollbar,.recent-list::-webkit-scrollbar{display:none}.chips button,.recent-list button,.filter-tabs button{min-height:38px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:0 14px;white-space:nowrap}.chips button.active,.filter-tabs button.active{background:var(--blue-soft);border-color:transparent;color:var(--blue);font-weight:750}
.advanced-toggle{width:100%;min-height:58px;margin-top:18px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:left;padding:0 14px}.advanced-toggle small{color:var(--muted);margin-left:9px}.advanced-toggle i{font-style:normal;transition:transform .2s}.advanced-toggle[aria-expanded=true] i{transform:rotate(180deg)}.advanced-panel{margin-top:8px;padding:18px;display:grid;grid-template-columns:2fr 1fr 1fr 1.15fr;gap:20px}.range-field>div:first-child{display:flex;justify-content:space-between}.range-field label,.range-field output{font-size:12px;font-weight:750}.range-field output{color:var(--blue)}.range-field input{width:100%;accent-color:var(--blue);margin:13px 0 4px}.range-scale{display:flex;justify-content:space-between;color:var(--subtle);font-size:10px}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.switch-row span{display:grid}.switch-row b{font-size:13px}.switch-row small{color:var(--muted);font-size:10px}.switch-row input{position:absolute;opacity:0}.switch-row>i{width:42px;height:24px;border-radius:20px;background:var(--surface-soft);border:1px solid var(--line);position:relative;flex:0 0 auto}.switch-row>i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.18);top:2px;left:2px;transition:.2s}.switch-row input:checked+i{background:var(--blue);border-color:var(--blue)}.switch-row input:checked+i:after{left:20px}.select-field{display:grid;gap:7px}.select-field select,.compact-select select{border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:8px;padding:9px 10px}.recent-block{margin-top:22px}
.quick-check-card{position:sticky;top:100px;padding:22px}.quick-icon{width:44px;height:44px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:22px;font-weight:800;margin-bottom:24px}.quick-check-card h2{font-size:25px;letter-spacing:-.03em;margin:8px 0}.quick-check-card>p{color:var(--muted);margin:0 0 18px}.username-input{height:48px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);display:flex;align-items:center;padding:0 12px;margin-bottom:10px}.username-input span{color:var(--muted);font-weight:700}.username-input input{min-width:0;width:100%;border:0;outline:0;background:none;color:var(--text);padding:0 6px}.quick-result{border-radius:9px;padding:12px;margin-top:12px;background:var(--green-soft);color:var(--green)}.quick-result.warn{background:var(--orange-soft);color:var(--orange)}.quick-result.error{background:var(--red-soft);color:var(--red)}.quick-result b{display:block}.quick-result small{color:currentColor;opacity:.82}.trust-list{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:20px}.trust-list span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:4px}.trust-list i{font-style:normal;width:17px;height:17px;border-radius:50%;background:var(--surface-soft);display:grid;place-items:center;font-size:9px}
.results-section{margin-top:68px;padding-top:32px;border-top:1px solid var(--line)}.results-heading,.page-heading,.section-title{display:flex;justify-content:space-between;gap:20px;align-items:end}.results-heading h2,.section-title h2{font-size:30px;letter-spacing:-.035em;margin:6px 0 3px}.results-heading p{margin:0;color:var(--muted)}.toolbar{display:flex;align-items:end;gap:8px}.compact-select{font-size:10px;color:var(--muted);display:grid;gap:3px}.compact-select select{padding:8px}.filter-tabs{display:flex;gap:6px;margin:20px 0;overflow:auto}.result-list{display:grid;gap:10px}.result-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:17px;transition:border-color .18s,transform .18s}.result-card:hover{border-color:color-mix(in srgb,var(--blue) 35%,var(--line));transform:translateY(-1px)}.result-card.dragging{opacity:.45}.rank{width:32px;height:32px;border-radius:8px;background:var(--surface-soft);display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:800}.result-name{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.verified{color:var(--green);background:var(--green-soft);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.badge-doubt{color:var(--orange);background:var(--orange-soft);border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;cursor:help}.result-card.doubt{border-style:dashed}
.grade{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;font-size:11px;font-weight:850}
.grade-a{background:var(--green-soft);color:var(--green)}.grade-b{background:var(--blue-soft);color:var(--blue)}.grade-c{background:var(--orange-soft);color:var(--orange)}.grade-d,.grade-e{background:var(--red-soft);color:var(--red)}
.grade-s{background:linear-gradient(135deg,#ffd700,#ff9d00);color:#4a2c00;box-shadow:0 0 10px rgba(255,196,0,.55),inset 0 1px 1px rgba(255,255,255,.6);animation:gradeS 2.2s ease-in-out infinite}
@keyframes gradeS{0%,100%{box-shadow:0 0 8px rgba(255,196,0,.45),inset 0 1px 1px rgba(255,255,255,.6)}50%{box-shadow:0 0 16px rgba(255,196,0,.85),inset 0 1px 1px rgba(255,255,255,.7)}}
.result-card.s-grade .rank{background:linear-gradient(135deg,#ffd700,#ff9d00);color:#4a2c00}
.action-link{width:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);text-decoration:none;font-size:15px}
.action-link:hover{background:var(--surface-soft)}.result-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin-top:5px;flex-wrap:wrap}.quality-meter{width:80px;height:5px;border-radius:5px;background:var(--surface-soft);overflow:hidden}.quality-meter i{display:block;height:100%;background:var(--blue)}.result-actions{display:flex;gap:6px}.result-actions button{height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:0 11px}.result-actions button:hover{background:var(--surface-soft)}.result-actions .fav.active{color:var(--red);background:var(--red-soft);border-color:transparent}.claim-btn{background:var(--green,#16a34a)!important;color:#fff!important;border-color:transparent!important;font-weight:600}.claim-btn:hover{filter:brightness(1.08)}.claim-btn:disabled{opacity:.6}.empty-state{padding:52px 24px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted)}.empty-state b{display:block;color:var(--text);font-size:18px;margin-bottom:5px}.skeleton{height:96px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface) 25%,var(--surface-soft) 45%,var(--surface) 65%);background-size:250% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-250% 0}}
.page-heading{margin-bottom:28px}.page-heading h1{font-size:48px;margin-bottom:10px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-card{padding:18px;min-height:190px;display:flex;flex-direction:column}.project-card.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.project-index{width:40px;height:40px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800}.project-card h3{font-size:19px;margin:18px 0 5px}.project-card p{color:var(--muted);margin:0}.project-card footer{margin-top:auto;display:flex;gap:6px}.project-card footer button{min-height:38px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:0 11px;color:var(--text)}
.plan-badge,.tier-badge{border-radius:999px;background:var(--blue-soft);color:var(--blue);padding:8px 12px;font-size:11px;font-weight:850;letter-spacing:.08em}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.stat-grid article{padding:18px}.stat-grid span,.stat-grid small{display:block;color:var(--muted)}.stat-grid b{font-size:32px;letter-spacing:-.04em}.data-list{display:grid;gap:8px}.data-item{min-height:70px;padding:13px 15px;display:flex;align-items:center;gap:13px}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.status-dot.busy{background:var(--orange);box-shadow:0 0 0 4px var(--orange-soft)}.data-item>div{min-width:0;flex:1}.data-item b{font-size:16px}.data-item small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-item button{min-width:42px;height:42px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}
.profile-hero{padding:22px;display:flex;align-items:center;gap:16px}.large-avatar{width:64px;height:64px;border-radius:16px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:21px;font-weight:850}.profile-hero h1{font-size:34px;margin:3px 0}.profile-hero p{color:var(--muted);margin:0}.profile-hero .tier-badge{margin-left:auto}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 42px}.usage-grid article{padding:18px}.usage-grid article>div{display:flex;justify-content:space-between}.usage-grid span{color:var(--muted)}.usage-grid i{display:block;height:6px;background:var(--surface-soft);border-radius:5px;overflow:hidden;margin-top:12px}.usage-grid em{display:block;height:100%;background:var(--blue);width:0}.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.plan-card{padding:20px}.plan-card.featured{border-color:var(--blue)}.plan-card>span{font-size:11px;color:var(--muted);font-weight:850;letter-spacing:.1em}.plan-card h3{font-size:28px;margin:12px 0 2px}.plan-card p{color:var(--muted);min-height:44px}.settings-card{margin-top:18px;overflow:hidden}.theme-slider-row{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.theme-slider-row>span{display:flex;align-items:center;gap:11px;font-weight:600;font-size:14px}
.theme-slider-row>span i{width:30px;height:30px;border-radius:8px;background:var(--surface-soft);display:grid;place-items:center;font-style:normal;flex:0 0 auto}
.theme-slider-row>span b{white-space:nowrap}
.theme-slider-row>span small{margin-left:auto;color:var(--muted);font-weight:500;padding-left:12px;white-space:nowrap}
.theme-slider-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;margin:8px 0 2px;border-radius:4px;background:var(--surface-raised,var(--surface-soft));outline:none;cursor:pointer;border:1px solid var(--line)}
.theme-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--blue,#ff3b35);border:3px solid var(--canvas,#050506);box-shadow:0 1px 4px rgba(0,0,0,.45)}
.theme-slider-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--blue,#ff3b35);border:3px solid var(--canvas,#050506);box-shadow:0 1px 4px rgba(0,0,0,.45)}
.range-scale.theme-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--subtle);padding:0 2px}
.range-scale.theme-scale span.active{color:var(--blue);font-weight:800}
.accent-dots{display:flex;gap:10px;align-items:center;padding-top:2px}
.accent-dots button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--dot,var(--blue));cursor:pointer;padding:0;flex:0 0 auto;transition:transform .15s ease, box-shadow .15s ease}
.accent-dots button:hover{transform:scale(1.12)}
.accent-dots button.active{box-shadow:0 0 0 2px var(--surface,#fff), 0 0 0 4.5px var(--dot,var(--blue))}
.promo-block{padding:12px 16px;border-bottom:1px solid var(--line);display:grid;gap:8px}
.promo-head{display:flex;align-items:center;gap:11px;font-size:14px}
.promo-head i{width:30px;height:30px;border-radius:8px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-style:normal;flex:0 0 auto}
.promo-head small{margin-left:auto;color:var(--muted);font-weight:500;padding-left:12px;text-align:right}
.promo-row{display:flex;gap:8px;align-items:stretch}
.promo-row input{flex:1 1 auto;width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);padding:11px;font:inherit;font-size:14px;text-transform:uppercase;letter-spacing:.03em}
.promo-row input::placeholder{text-transform:none;color:var(--subtle)}
.promo-row .button{flex:0 0 auto;min-height:44px;padding:0 18px;border-radius:9px}
.mode-hint{margin:10px 0 0;color:var(--muted);font-size:12px;padding:8px 11px;background:var(--blue-soft);border-radius:8px}
.settings-card>button{width:100%;min-height:56px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);display:flex;align-items:center;justify-content:space-between;padding:0 16px}
.settings-card>button:last-of-type{border-bottom:0}.settings-card button>span{display:flex;align-items:center;gap:11px}.settings-card i{width:30px;height:30px;border-radius:8px;background:var(--surface-soft);display:grid;place-items:center;font-style:normal}.settings-card small{color:var(--muted)}
.compare-dock{position:fixed;z-index:30;left:calc(var(--sidebar) + 24px);right:24px;bottom:18px;min-height:76px;background:color-mix(in srgb,var(--text) 95%,transparent);color:var(--surface);border-radius:14px;padding:12px 14px;box-shadow:0 18px 60px rgba(0,0,0,.22);display:flex;align-items:center;gap:16px}.compare-dock .step-label{color:color-mix(in srgb,var(--blue) 75%,#fff)}.compare-dock>div:first-child{min-width:120px;display:grid}.compare-slots{flex:1;display:flex;gap:6px;min-height:42px;align-items:center}.compare-slots>span{color:color-mix(in srgb,var(--surface) 58%,transparent);font-size:12px}.compare-chip{height:38px;border-radius:8px;background:rgba(255,255,255,.1);padding:0 10px;display:flex;align-items:center;gap:7px}.compare-chip button{border:0;background:none;color:inherit}.compare-dock .icon-button{background:transparent;color:inherit;border-color:rgba(255,255,255,.18)}.compare-dock.drag-over{outline:3px solid var(--blue);outline-offset:3px}
.modal,.onboarding{position:fixed;z-index:80;inset:0;background:rgba(24,24,22,.42);backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px}.modal-card,.welcome-card{width:min(560px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 100px rgba(0,0,0,.22);padding:28px;position:relative}.modal-close{position:absolute;right:14px;top:14px;width:40px;height:40px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}.modal-card h2{font-size:28px;letter-spacing:-.035em;margin:5px 0 18px}.modal-form{display:grid;gap:13px}.modal-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.modal-form input,.modal-form textarea,.modal-form select{border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);padding:11px}.compare-table{width:100%;border-collapse:collapse}.compare-table th,.compare-table td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}.compare-table th{color:var(--muted);font-size:11px}.brand-lockup{display:flex;align-items:center;gap:10px;font-size:18px;margin-bottom:42px}.welcome-card h1{font-size:clamp(34px,6vw,50px);line-height:1.03;letter-spacing:-.05em;margin:13px 0 16px}.welcome-copy{color:var(--muted);font-size:17px}.welcome-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:28px 0}.welcome-flow>div{background:var(--surface-soft);border-radius:10px;padding:13px}.welcome-flow b{display:block;color:var(--blue);font-size:11px;margin-bottom:18px}.welcome-flow span{display:grid}.welcome-flow small{color:var(--muted)}.legal-note{display:block;text-align:center;color:var(--muted);margin-top:12px}
.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translate(-50%,18px);background:var(--text);color:var(--surface);padding:11px 15px;border-radius:9px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;max-width:min(440px,calc(100% - 32px));text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--red);color:#fff}
.mobile-nav{display:none}
body.dark{--canvas:#191919;--surface:#222;--surface-soft:#2b2b2a;--surface-raised:#383836;--text:#fff;--muted:rgba(255,255,255,.66);--subtle:rgba(255,255,255,.55);--line:rgba(255,255,255,.17);--blue:#5e9fe8;--blue-soft:rgba(94,159,232,.13);--green:#72bc8f;--green-soft:rgba(114,188,143,.12);--orange:#de9255;--orange-soft:rgba(222,146,85,.12);--red:#e97366;--red-soft:rgba(233,115,102,.12);--shadow:none}
@media(max-width:980px){.sidebar{display:none}.workspace{margin-left:0}.search-layout{display:block;width:100%}.search-main,.quick-check-card,.results-section{width:100%;max-width:100%}.quick-check-card{position:static;margin-top:32px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px}.quick-check-card .quick-icon{grid-row:1/4}.quick-check-card .step-label,.quick-check-card h2,.quick-check-card>p{grid-column:2}.quick-check-card .username-input,.quick-check-card .button,.quick-check-card .quick-result,.quick-check-card .trust-list{grid-column:1/-1}.project-grid,.plans{grid-template-columns:repeat(2,1fr)}.compare-dock{left:16px;right:16px;bottom:calc(84px + var(--safe-bottom))}.mobile-nav{position:fixed;z-index:25;left:0;right:0;bottom:0;height:calc(72px + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav button{border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}.mobile-nav i{font-style:normal;font-size:20px}.mobile-nav span{font-size:10px}.mobile-nav button.active{color:var(--blue);font-weight:750}main{padding-bottom:150px}}
@media(max-width:700px){.topbar{height:62px;padding-left:16px;padding-right:16px}.security-pill{display:none}.top-actions{gap:6px}.icon-button,.avatar-button{width:40px;height:40px}main{padding:28px 16px 150px;width:100%;overflow:hidden}.hero-copy h1{font-size:40px;overflow-wrap:anywhere}.hero-copy p{font-size:16px}.composer-card{max-width:100%;overflow:hidden}.composer-row{grid-template-columns:minmax(0,1fr)}.composer-row textarea{min-width:0;max-width:100%}.composer-row .button{width:100%;max-width:100%}.composer-meta span:last-child{display:none}.advanced-panel{grid-template-columns:minmax(0,1fr)}.results-section{margin-top:44px}.results-heading,.page-heading,.section-title{align-items:flex-start;flex-direction:column}.toolbar{width:100%;justify-content:space-between}.compact-select{flex:1}.compact-select select{width:100%}.result-card{grid-template-columns:auto minmax(0,1fr)}.result-actions{grid-column:1/-1;min-width:0;flex-wrap:wrap}.result-actions button{flex:1}.result-actions button[data-action=compare]{display:inline-flex}.project-grid,.plans,.stat-grid,.usage-grid{grid-template-columns:minmax(0,1fr)}.page-heading h1{font-size:40px}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-hero .tier-badge{margin-left:0}.compare-dock{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.compare-dock>div:first-child{min-width:0}.compare-slots{grid-column:1/-1;grid-row:2;overflow:auto}.compare-dock #openCompare{grid-column:2;grid-row:1}.compare-dock #closeCompare{grid-column:3;grid-row:1}.welcome-card{padding:22px}.brand-lockup{margin-bottom:28px}.welcome-flow{grid-template-columns:1fr}.welcome-flow>div{display:flex;gap:14px;align-items:center}.welcome-flow b{margin:0}.quick-check-card{display:block}.quick-check-card .quick-icon{margin-bottom:18px}}
@media(max-width:390px){.hero-copy h1{font-size:36px}.chips button{padding:0 12px}.result-card{padding:14px}.result-name b{font-size:18px}.result-actions{display:grid;grid-template-columns:1fr 1fr}.result-actions button:first-child{grid-column:1/-1}.toolbar{align-items:stretch;flex-direction:column}.toolbar .button{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* ═══ v12.4.0: Кейсы — CS:GO рулетка ═══ */
.case-roll-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(8,10,18,.78);backdrop-filter:blur(10px)}
.case-roll-panel{width:min(560px,94vw);background:var(--panel,#141a26);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:22px 16px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.case-roll-title{font-size:17px;font-weight:700;margin-bottom:14px}
.case-roulette{position:relative;height:104px;overflow:hidden;border-radius:14px;background:rgba(0,0,0,.28)}
.case-pointer{position:absolute;left:50%;top:0;bottom:0;width:3px;transform:translateX(-50%);background:#ffd75e;box-shadow:0 0 12px #ffd75e;z-index:2}
.case-strip{display:flex;gap:8px;align-items:center;height:100%;padding:0 8px;will-change:transform}
.case-item{flex:0 0 88px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;font-size:11px;line-height:1.15;text-align:center;padding:4px;background:rgba(255,255,255,.05);border:1.5px solid transparent}
.case-item .ci-emoji{font-size:26px}
.case-item.r-common{border-color:#5aa7ff}
.case-item.r-rare{border-color:#b07bff}
.case-item.r-epic{border-color:#ff7bd1}
.case-item.r-legendary{border-color:#ffd75e;box-shadow:0 0 14px rgba(255,215,94,.35)}
.case-prize{margin-top:16px}
.case-prize-badge{display:inline-block;font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;border:1px solid currentColor;margin-bottom:6px}
.case-prize-label{font-size:22px;font-weight:800}
#caseRollClose{margin-top:16px}

/* ==== red-theme.css ==== */
/* RED-THEME-SCOPED: все правила активны только при body.red-theme-active */
body.red-theme-active {
  --canvas: #050506;
  --surface: #0c0d10;
  --surface-soft: #14151a;
  --surface-raised: #191a20;
  --text: #f7f7f8;
  --muted: #9a9ba3;
  --subtle: #676870;
  --line: rgba(255,255,255,.11);
  --blue: #ff3b35;
  --blue-soft: rgba(255,59,53,.13);
  --green: #68d391;
  --green-soft: rgba(104,211,145,.12);
  --orange: #ffad66;
  --orange-soft: rgba(255,173,102,.12);
  --red: #ff4d47;
  --red-soft: rgba(255,77,71,.13);
  --shadow: 0 18px 70px rgba(0,0,0,.42);
  color-scheme: dark;
}
body.red-theme-active, body.red-theme-active { background: var(--canvas); }
body.red-theme-active {
  background:
    radial-gradient(900px 560px at 82% 4%, rgba(172,0,0,.18), transparent 62%),
    radial-gradient(700px 500px at 14% 74%, rgba(92,0,0,.12), transparent 65%),
    #050506;
}
body.red-theme-active.dark {
  --canvas:#030304; --surface:#0a0b0d; --surface-soft:#121318;
  --surface-raised:#18191e; --text:#fff; --muted:#a1a2aa;
  --subtle:#64656c; --line:rgba(255,255,255,.12);
  --blue:#ff4039; --blue-soft:rgba(255,64,57,.14);
  --green:#68d391; --green-soft:rgba(104,211,145,.12);
  --orange:#ffad66; --orange-soft:rgba(255,173,102,.12);
  --red:#ff514b; --red-soft:rgba(255,81,75,.14); --shadow:0 22px 80px rgba(0,0,0,.55);
}
body.red-theme-active .step-label, body.red-theme-active .context-label, body.red-theme-active .eyebrow { color: #ff4b44; }
body.red-theme-active .sidebar {
  background: rgba(5,5,6,.94);
  border-color: rgba(255,255,255,.08);
  box-shadow: 20px 0 70px rgba(0,0,0,.22);
}
body.red-theme-active .brand-button { color:#fff; }
body.red-theme-active .brand-button > span, body.red-theme-active .brand-symbol {
  background: linear-gradient(145deg,#ff554f,#b50000);
  color:#fff;
  box-shadow: 0 0 24px rgba(255,44,36,.36), inset 0 1px rgba(255,255,255,.26);
}
body.red-theme-active .side-nav button, body.red-theme-active .profile-nav { color:#7f8088; }
body.red-theme-active .side-nav button:hover, body.red-theme-active .profile-nav:hover { background:rgba(255,255,255,.045); color:#fff; }
body.red-theme-active .side-nav button.active {
  background: linear-gradient(90deg,rgba(255,52,45,.15),rgba(255,52,45,.035));
  color:#fff; box-shadow:inset 3px 0 #ff4039, inset 0 0 0 1px rgba(255,73,66,.12);
}
body.red-theme-active .mini-avatar, body.red-theme-active .avatar-button, body.red-theme-active .large-avatar {
  background:linear-gradient(145deg,rgba(255,65,58,.26),rgba(86,0,0,.3));
  color:#ff6c66; border:1px solid rgba(255,77,70,.25);
}
body.red-theme-active .topbar {
  background:rgba(5,5,6,.82);
  border-color:rgba(255,255,255,.08);
  box-shadow:0 12px 45px rgba(0,0,0,.22);
}
body.red-theme-active .security-pill {
  color:#ff7974;
  background:rgba(255,60,54,.09);
  border-color:rgba(255,80,72,.2);
}
body.red-theme-active .security-pill i { background:#ff4a43; box-shadow:0 0 12px #ff312a; }
body.red-theme-active #themeBtn { display:none; }
body.red-theme-active .icon-button, body.red-theme-active .avatar-button { background:#101115; border-color:rgba(255,255,255,.1); color:#fff; }
body.red-theme-active main { position:relative; }
body.red-theme-active #search { position:relative; isolation:isolate; max-width:100%; }
body.red-theme-active #search::before {
  content:""; position:absolute; z-index:-2; width:420px; height:540px; right:0; top:-100px;
  background:radial-gradient(circle,rgba(255,28,20,.16),rgba(100,0,0,.07) 34%,transparent 70%);
  filter:blur(8px); pointer-events:none;
}
body.red-theme-active #search::after {
  content:""; position:absolute; z-index:-1; width:42%; height:420px; right:0; top:0; opacity:.16;
  background-image:linear-gradient(rgba(255,74,67,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,74,67,.14) 1px,transparent 1px);
  background-size:42px 42px; mask-image:radial-gradient(circle at 70% 20%,black,transparent 68%); pointer-events:none;
}
body.red-theme-active .hero-copy h1, body.red-theme-active .page-heading h1, body.red-theme-active .profile-hero h1 {
  color:#fff; text-shadow:0 10px 50px rgba(255,255,255,.03);
}
body.red-theme-active .hero-copy h1 { max-width:780px; font-weight:760; }
body.red-theme-active .hero-copy p, body.red-theme-active .page-heading p { color:#9b9ca4; }
body.red-theme-active .composer-card, body.red-theme-active .quick-check-card, body.red-theme-active .advanced-panel, body.red-theme-active .result-card, body.red-theme-active .project-card, body.red-theme-active .data-item, body.red-theme-active .stat-grid article, body.red-theme-active .profile-hero, body.red-theme-active .usage-grid article, body.red-theme-active .plan-card, body.red-theme-active .settings-card {
  background:linear-gradient(145deg,rgba(20,21,25,.96),rgba(8,9,11,.96));
  border-color:rgba(255,255,255,.1);
  box-shadow:inset 0 1px rgba(255,255,255,.025), 0 20px 60px rgba(0,0,0,.24);
}
/* Переключатель режима поиска (smart / mask / random) */
body.red-theme-active .mode-switch {
  display: flex; gap: 6px; margin-bottom: 12px; padding: 4px;
  background: var(--surface-2, rgba(127,127,127,.08)); border-radius: 12px;
}
body.red-theme-active .mode-switch button {
  flex: 1; padding: 8px 10px; border: none; border-radius: 9px; cursor: pointer;
  background: transparent; color: inherit; font: inherit; font-size: 13px; font-weight: 600;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
body.red-theme-active .mode-switch button.active {
  background: var(--accent-bg, rgba(224,32,32,.14));
  box-shadow: inset 0 0 0 1px var(--accent-border, rgba(224,32,32,.45));
}
body.red-theme-active .composer-card .username-input.mask { display: block; width: 100%; margin-bottom: 8px; }
body.red-theme-active .hidden { display: none !important; }
body.red-theme-active .composer-card {
  border-color:rgba(255,70,63,.23);
  box-shadow:0 20px 70px rgba(0,0,0,.38), 0 0 60px rgba(155,0,0,.08), inset 0 1px rgba(255,255,255,.04);
}
body.red-theme-active .composer-card:focus-within { border-color:rgba(255,70,63,.56); box-shadow:0 0 0 3px rgba(255,60,54,.08),0 24px 80px rgba(0,0,0,.44); }
body.red-theme-active .composer-row textarea { color:#fff; }
body.red-theme-active .composer-row textarea::placeholder { color:#666770; }
body.red-theme-active .button.primary {
  background:linear-gradient(135deg,#ff514b 0%,#ed271f 55%,#b70702 100%);
  border-color:#ff514b;
  box-shadow:0 8px 26px rgba(255,41,32,.25), inset 0 1px rgba(255,255,255,.24);
}
body.red-theme-active .button.primary:hover { background:linear-gradient(135deg,#ff6963,#f52d25 58%,#c60b05); transform:translateY(-1px); }
body.red-theme-active .button.secondary {
  background:linear-gradient(135deg,#222329,#111216); border-color:rgba(255,255,255,.16); color:#fff;
}
body.red-theme-active .button.secondary:hover { border-color:rgba(255,67,60,.4); }
body.red-theme-active .button.ghost { background:#101115; border-color:rgba(255,255,255,.12); }
body.red-theme-active .button.ghost:hover { background:#18191e; border-color:rgba(255,71,64,.28); }
body.red-theme-active .chips button, body.red-theme-active .recent-list button, body.red-theme-active .filter-tabs button {
  background:#0c0d10; border-color:rgba(255,255,255,.1); color:#8e8f97;
}
body.red-theme-active .chips button:hover, body.red-theme-active .recent-list button:hover, body.red-theme-active .filter-tabs button:hover { border-color:rgba(255,71,64,.35); color:#fff; }
body.red-theme-active .chips button.active, body.red-theme-active .filter-tabs button.active {
  background:linear-gradient(135deg,rgba(255,67,60,.21),rgba(115,0,0,.14));
  border-color:rgba(255,75,68,.3); color:#ff6963;
  box-shadow:inset 0 0 18px rgba(255,45,38,.06);
}
body.red-theme-active .advanced-toggle { border-color:rgba(255,255,255,.1); color:#f1f1f3; background:rgba(10,11,13,.6); }
body.red-theme-active .advanced-toggle:hover { border-color:rgba(255,72,65,.28); }
body.red-theme-active .range-field input { accent-color:#ff4039; }
body.red-theme-active .switch-row > i { background:#202126; border-color:rgba(255,255,255,.1); }
body.red-theme-active .switch-row input:checked + i { background:linear-gradient(90deg,#c70b04,#ff4c45); border-color:#ff514a; }
body.red-theme-active .select-field select, body.red-theme-active .compact-select select { background:#101115; border-color:rgba(255,255,255,.12); color:#fff; }
body.red-theme-active .quick-check-card { overflow:hidden; border-color:rgba(255,61,54,.18); }
body.red-theme-active .quick-check-card::before {
  content:""; position:absolute; width:150px; height:150px; right:0; top:-48px; border-radius:50%;
  background:
    radial-gradient(circle at 34% 34%,rgba(255,132,125,.9) 0 2%,rgba(255,39,29,.62) 8%,rgba(125,0,0,.45) 35%,rgba(20,0,0,.05) 68%,transparent 72%);
  box-shadow:0 0 70px rgba(255,24,15,.28); filter:blur(.2px); opacity:.8; pointer-events:none;
}
body.red-theme-active .quick-check-card::after {
  content:""; position:absolute; width:118px; height:118px; right:10px; top:-32px; border-radius:50%;
  border:1px solid rgba(255,111,103,.18); box-shadow:inset 0 0 40px rgba(255,42,33,.16); pointer-events:none;
}
body.red-theme-active .quick-check-card > * { position:relative; z-index:1; }
body.red-theme-active .quick-icon { background:rgba(255,55,48,.13); color:#ff615b; border:1px solid rgba(255,72,65,.18); }
body.red-theme-active .username-input { background:#090a0c; border-color:rgba(255,255,255,.12); }
body.red-theme-active .username-input:focus-within { border-color:rgba(255,72,65,.5); box-shadow:0 0 0 3px rgba(255,55,48,.08); }
body.red-theme-active .trust-list i { background:rgba(255,67,60,.12); color:#ff6d67; }
body.red-theme-active .trust-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
body.red-theme-active .trust-list span { min-width:0; white-space:nowrap; font-size:9px; }
body.red-theme-active .quick-result { background:var(--green-soft); }
body.red-theme-active .results-section { border-color:rgba(255,255,255,.09); }
body.red-theme-active .result-card { border-color:rgba(255,255,255,.095); }
body.red-theme-active .result-card:hover { border-color:rgba(255,72,65,.36); box-shadow:0 18px 60px rgba(0,0,0,.35),0 0 36px rgba(180,0,0,.06); }
body.red-theme-active .rank { background:rgba(255,255,255,.055); color:#777880; }
body.red-theme-active .verified { background:rgba(104,211,145,.1); border:1px solid rgba(104,211,145,.16); color:#78dba0; }
body.red-theme-active .quality-meter { background:#202126; }
body.red-theme-active .quality-meter i { background:linear-gradient(90deg,#8f0500,#ff4f48); box-shadow:0 0 10px rgba(255,52,44,.3); }
body.red-theme-active .result-actions button, body.red-theme-active .project-card footer button, body.red-theme-active .data-item button {
  background:#101115; border-color:rgba(255,255,255,.1); color:#d9d9dd;
}
body.red-theme-active .result-actions button:hover, body.red-theme-active .project-card footer button:hover, body.red-theme-active .data-item button:hover { border-color:rgba(255,73,66,.34); background:#17181c; }
body.red-theme-active .result-actions .fav.active { color:#ff625c; background:rgba(255,65,58,.12); }
body.red-theme-active .empty-state { border-color:rgba(255,255,255,.12); background:rgba(10,11,13,.5); }
body.red-theme-active .skeleton { background:linear-gradient(90deg,#0b0c0f 25%,#1b1c21 45%,#0b0c0f 65%); background-size:250% 100%; }
body.red-theme-active .project-card.active, body.red-theme-active .plan-card.featured {
  border-color:rgba(255,68,61,.58);
  box-shadow:inset 0 0 0 1px rgba(255,58,51,.16),0 18px 70px rgba(133,0,0,.1);
}
body.red-theme-active .project-index { background:rgba(255,60,53,.12); color:#ff645e; }
body.red-theme-active .plan-badge, body.red-theme-active .tier-badge { background:rgba(255,64,57,.12); border:1px solid rgba(255,76,69,.18); color:#ff6c66; }
body.red-theme-active .status-dot { box-shadow:0 0 0 4px rgba(104,211,145,.1),0 0 16px rgba(104,211,145,.18); }
body.red-theme-active .status-dot.busy { box-shadow:0 0 0 4px rgba(255,173,102,.1),0 0 16px rgba(255,173,102,.14); }
body.red-theme-active .usage-grid i { background:#202126; }
body.red-theme-active .usage-grid em { background:linear-gradient(90deg,#9e0802,#ff514a); }
body.red-theme-active .settings-card i { background:rgba(255,255,255,.055); color:#ff635d; }
body.red-theme-active .compare-dock {
  background:linear-gradient(120deg,rgba(25,10,10,.98),rgba(8,8,10,.98));
  border:1px solid rgba(255,68,61,.28); color:#fff;
  box-shadow:0 20px 80px rgba(0,0,0,.65),0 0 45px rgba(165,0,0,.12);
}
body.red-theme-active .compare-chip { background:rgba(255,75,68,.1); border:1px solid rgba(255,84,77,.14); }
body.red-theme-active .compare-dock.drag-over { outline-color:#ff4b44; }
body.red-theme-active .modal, body.red-theme-active .onboarding { background:rgba(0,0,0,.75); backdrop-filter:blur(18px); }
body.red-theme-active .modal-card, body.red-theme-active .welcome-card {
  background:
    radial-gradient(500px 260px at 90% 0%,rgba(160,0,0,.16),transparent 65%),
    linear-gradient(145deg,#15161a,#08090b);
  border-color:rgba(255,81,74,.22); box-shadow:0 30px 120px rgba(0,0,0,.72),0 0 70px rgba(140,0,0,.1);
}
body.red-theme-active .modal-close { background:#111216; border-color:rgba(255,255,255,.12); color:#fff; }
body.red-theme-active .welcome-flow > div { background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.07); }
body.red-theme-active .mobile-nav { background:rgba(6,6,7,.94)!important; border-color:rgba(255,255,255,.1)!important; box-shadow:0 -16px 45px rgba(0,0,0,.38); }
body.red-theme-active .mobile-nav button { color:#777880; }
body.red-theme-active .mobile-nav button.active { color:#ff5a52; text-shadow:0 0 8px rgba(255,69,58,.38), 0 1px 0 rgba(0,0,0,.2); filter:none; }
body.red-theme-active .toast { background:#f5f5f6; color:#080809; }
body.red-theme-active .toast.error { background:#ff4039; color:#fff; }@media (max-width:980px) {
body.red-theme-active { background:radial-gradient(520px 400px at 95% 0%,rgba(155,0,0,.17),transparent 68%),#050506; }
body.red-theme-active .quick-check-card::before { right:0; top:-48px; }
}@media (max-width:700px) {
body.red-theme-active .topbar { background:rgba(5,5,6,.92); }
body.red-theme-active .hero-copy h1 { font-size:42px; line-height:.98; }
body.red-theme-active .composer-card { border-radius:16px; }
body.red-theme-active .composer-row .button { min-height:50px; }
body.red-theme-active .quick-check-card { border-radius:16px; }
body.red-theme-active #search::before { width:190px; height:360px; right:0; top:0; }
body.red-theme-active #search::after { display:none; }
body.red-theme-active .results-heading h2, body.red-theme-active .section-title h2 { color:#fff; }
body.red-theme-active .result-card { border-radius:14px; }
}@media (prefers-reduced-motion:reduce) {
body.red-theme-active .button.primary:hover, body.red-theme-active .result-card:hover { transform:none; }
}

/* ==== ui-polish.css ==== */
/* ============================================================
   UI/UX POLISH LAYER (v11.9.17) — грузится ПОСЛЕ styles.css
   Красивее + быстрее: микроанимации, глубина, perf-хинты.
   ============================================================ */

/* ---------- Perf: GPU-композитинг и плавность ---------- */
.view.active{will-change:opacity,transform}
.result-card,.data-item,.plan-card,.project-card{contain:layout style paint}
.quality-meter i{transition:width .5s cubic-bezier(.22,1,.36,1)}
.usage-grid em{transition:width .6s cubic-bezier(.22,1,.36,1)}

/* ---------- Глубина и объём поверхностей ---------- */
.composer-card{border-radius:14px;box-shadow:0 1px 2px rgba(24,24,22,.05),0 12px 36px rgba(24,24,22,.07)}
.result-card{border-radius:12px;box-shadow:0 1px 2px rgba(24,24,22,.04);transition:border-color .18s,transform .18s,box-shadow .18s}
.result-card:hover{box-shadow:0 6px 22px rgba(24,24,22,.09);transform:translateY(-2px)}
.data-item{border-radius:11px;transition:border-color .15s,background .15s}
.data-item:hover{background:color-mix(in srgb,var(--surface-soft) 55%,var(--surface))}
.stat-grid article,.usage-grid article,.plan-card{border-radius:13px;transition:transform .18s,box-shadow .18s}
.stat-grid article:hover,.usage-grid article:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(24,24,22,.07)}

/* ---------- Кнопки: тактильность ---------- */
.button{transition:transform .12s ease,filter .15s ease,box-shadow .15s ease;border-radius:10px}
.button.primary{box-shadow:0 4px 14px color-mix(in srgb,var(--blue) 32%,transparent)}
.button.primary:hover{transform:translateY(-1px);box-shadow:0 7px 20px color-mix(in srgb,var(--blue) 42%,transparent)}
.button.primary:active{transform:translateY(0) scale(.98);box-shadow:0 2px 8px color-mix(in srgb,var(--blue) 28%,transparent)}
button:not(.button):active{transform:scale(.96)}
.result-actions button,.data-item button{transition:background .14s,border-color .14s,transform .1s}
.chips button,.recent-list button,.filter-tabs button{transition:background .15s,color .15s,border-color .15s}

/* ---------- Навигация: активный пункт с акцент-полосой ---------- */
.side-nav button{position:relative;overflow:hidden;transition:background .16s,color .16s,padding-left .16s}
.side-nav button.active{padding-left:16px}
.side-nav button.active::before{content:"";position:absolute;left:0;top:50%;translate:0 -50%;width:3px;height:60%;border-radius:3px;background:var(--blue)}
.mobile-nav{backdrop-filter:blur(16px);background:color-mix(in srgb,var(--surface) 88%,transparent)}
.mobile-nav button{transition:color .16s,transform .12s;border-radius:12px;margin:0 2px}
.mobile-nav button.active i{transform:translateY(-2px) scale(1.12)}
.mobile-nav i{display:inline-block;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}

/* ---------- Топбар и заголовки ---------- */
.topbar b{letter-spacing:-.02em;font-size:15px}
.step-label{letter-spacing:.18em}

/* ---------- Скелетоны: мягче и быстрее ---------- */
.skeleton{animation-duration:.9s;border-radius:12px}
@keyframes shimmer{to{background-position:-250% 0}}

/* ---------- Появление карточек результата (каскад) ---------- */
#results>.result-card{animation:cardIn .3s cubic-bezier(.22,1,.36,1) both}
#results>.result-card:nth-child(1){animation-delay:.02s}
#results>.result-card:nth-child(2){animation-delay:.06s}
#results>.result-card:nth-child(3){animation-delay:.1s}
#results>.result-card:nth-child(4){animation-delay:.14s}
#results>.result-card:nth-child(5){animation-delay:.18s}
#results>.result-card:nth-child(n+6){animation-delay:.22s}
@keyframes cardIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

/* ---------- Модалки: пружинка входа ---------- */
.modal-card{animation:modalIn .26s cubic-bezier(.34,1.4,.64,1) both}
@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal{animation:fadeIn .18s ease both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ---------- Toast: сверху на мобиле не мешает навигации ---------- */
.toast{bottom:calc(90px + var(--safe-bottom));border-radius:11px;padding:12px 17px;font-weight:600;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.toast.show{transform:translate(-50%,0) scale(1)}
.toast:not(.show){transform:translate(-50%,14px) scale(.96);transition:.22s cubic-bezier(.34,1.56,.64,1)}

/* ---------- Инпуты: фокус-подсветка ---------- */
input,textarea,select{transition:border-color .15s,box-shadow .15s}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3.5px color-mix(in srgb,var(--blue) 16%,transparent)}
.username-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3.5px color-mix(in srgb,var(--blue) 14%,transparent)}
.composer-row textarea:focus-visible{box-shadow:none}
.composer-card:focus-within{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))}

/* ---------- Бейджи тарифа/стрика чуть ярче ---------- */
.tier-badge{font-size:10px;padding:8px 13px;border:1px solid color-mix(in srgb,var(--blue) 22%,transparent)}
.plan-card.featured{position:relative;overflow:hidden}
.plan-card.featured::after{content:"★";position:absolute;top:8px;right:12px;color:var(--blue);opacity:.5;font-size:15px}

/* ---------- Пустые состояния дружелюбнее ---------- */
.empty-state{border-radius:14px;background:color-mix(in srgb,var(--surface-soft) 45%,transparent)}
.empty-state span{font-size:13px}

/* ---------- Grade S: золотое свечение сильнее ---------- */
.grade-s{width:24px;height:24px;font-size:12px}
.result-card.s-grade{border-color:rgba(255,190,0,.55);box-shadow:0 0 0 1px rgba(255,190,0,.25),0 6px 24px rgba(255,170,0,.14)}
.result-card.s-grade:hover{box-shadow:0 0 0 1px rgba(255,190,0,.4),0 10px 30px rgba(255,160,0,.22)}

/* ---------- Скроллбары аккуратные (webkit) ---------- */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--surface-raised,#c9c8c3);border-radius:8px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

/* ---------- Быстрый тап без выделения текста на двойном тапе ---------- */
.result-actions,.mobile-nav,.side-nav,.filter-tabs{-webkit-tap-highlight-color:transparent;user-select:none}
body{-webkit-tap-highlight-color:transparent}

/* ---------- Меньше движения, если просит система ---------- */
@media(prefers-reduced-motion:reduce){
  #results>.result-card{animation:none}
  .modal-card{animation:none}
  .grade-s{animation:none}
}

/* ============================================================
   v12.7.18: кнопки карточки результата в стиле liquid-glass.
   Раньше: прямоугольные текстовые кнопки (Копировать/Сравнить/
   Следить) + эмодзи-иконки 🌐 ↗ 📤 ♥ — выбивались из остального
   миниаппа. Теперь: пилюли + SVG-иконки из спрайта, стекло,
   акцентные заливки как у .filter-tabs.active / .button.primary.
   Переменные --glass-* глобальные (:root в liquid-ios.css),
   поэтому вид единый во всех темах и акцентах.
   ============================================================ */
.result-actions button,.result-actions .action-link{
  height:34px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:0 12px;
}
.result-actions svg{
  width:15px;height:15px;display:block;flex:0 0 auto;
  fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.result-actions button span{font-size:12.5px;font-weight:600;letter-spacing:.01em;line-height:1}
.result-actions .action-link{width:34px;padding:0;font-size:0;color:var(--muted)}
.result-actions .action-link:hover{color:var(--text)}
.result-actions .fav svg{width:16px;height:16px}
.result-actions .fav.active{color:#ff453a;background:rgba(255,69,58,.12);border-color:transparent}
body.red-theme-active .result-actions .fav.active{color:#ff625c;background:rgba(255,65,58,.14)}
.result-actions .claim-btn{
  background:linear-gradient(180deg,color-mix(in srgb,var(--green,#16a34a) 88%,#fff),var(--green,#16a34a))!important;
  color:#fff!important;border-color:transparent!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 4px 16px color-mix(in srgb,var(--green,#16a34a) 30%,transparent)!important;
  font-weight:700;
}
.result-actions .claim-btn:hover{filter:brightness(1.07)}
.result-actions .claim-btn:active{transform:scale(.96)}
.result-actions{flex-wrap:wrap}
.result-actions button span{white-space:nowrap}
/* Узкие экраны: второстепенные действия (Сравнить/Следить) — только иконки,
   чтобы ряд не ломался и не обрезал текст */
@media(max-width:700px){
  .result-actions .compare-btn span,.result-actions .monitor-btn span{display:none}
  .result-actions .compare-btn,.result-actions .monitor-btn{width:34px;padding:0}
}

/* ==== liquid-glass.css ==== */
/* ============================================================
   LIQUID GLASS LAYER (iOS-style) — v11.9.18
   Эффект жидкого стекла + переключатель в настройках.
   body.liquid-off полностью выключает эффекты.
   ============================================================ */

/* ---------- Тумблер в настройках ---------- */
.liquid-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.liquid-row>span{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:600}
.liquid-row i{width:30px;height:30px;border-radius:8px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-style:normal;flex:0 0 auto}
.liquid-row small{display:block;color:var(--muted);font-size:10px;font-weight:500}
.liquid-toggle{position:relative;width:50px;height:30px;flex:0 0 auto}
.liquid-toggle input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:2}
.liquid-track{position:absolute;inset:0;border-radius:20px;background:var(--surface-raised,var(--surface-soft));border:1px solid var(--line);transition:background .3s,border-color .3s}
.liquid-thumb{position:absolute;top:2.5px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25),0 0 0 .5px rgba(0,0,0,.04);transition:left .32s cubic-bezier(.34,1.56,.64,1);pointer-events:none}
.liquid-toggle input:checked~.liquid-track{background:linear-gradient(135deg,#34c759,#2fae4f);border-color:transparent}
.liquid-toggle input:checked~.liquid-thumb{left:23px}

/* ---------- Жидкое стекло (когда включено) — v12.9.8 matte fix: плотнее, менее прозрачно ---------- */
body:not(.liquid-off) .topbar{
  background:linear-gradient(180deg,color-mix(in srgb,var(--canvas) 88%,transparent),color-mix(in srgb,var(--canvas) 84%,transparent));
  backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);
  border-bottom-color:color-mix(in srgb,var(--line) 85%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 12%,transparent),0 8px 28px rgba(0,0,0,.18)
}
body:not(.liquid-off):not(.red-theme-active) .topbar::after{
  content:"";position:absolute;inset:auto 0 0 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);pointer-events:none
}

body:not(.liquid-off) .sidebar{
  background:color-mix(in srgb,var(--canvas) 88%,transparent);
  backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3)
}

body:not(.liquid-off) .composer-card,
body:not(.liquid-off) .quick-check-card{
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);
  border:1px solid color-mix(in srgb,#fff 14%,var(--line));
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 16%,transparent),0 12px 36px rgba(0,0,0,.12)
}
body.dark:not(.liquid-off) .composer-card,
body.dark:not(.liquid-off) .quick-check-card{
  background:color-mix(in srgb,var(--surface) 86%,transparent);
  border-color:color-mix(in srgb,#fff 9%,var(--line));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 36px rgba(0,0,0,.45)
}

body:not(.liquid-off) .result-card{
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-color:color-mix(in srgb,#fff 10%,var(--line))
}
body.dark:not(.liquid-off) .result-card{
  background:color-mix(in srgb,var(--surface) 86%,transparent);
  border-color:rgba(255,255,255,.08)
}

body:not(.liquid-off) .modal-card,
body:not(.liquid-off) .welcome-card{
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(30px) saturate(1.3);-webkit-backdrop-filter:blur(30px) saturate(1.3);
  border:1px solid color-mix(in srgb,#fff 16%,var(--line))
}
body.dark:not(.liquid-off) .modal-card{background:color-mix(in srgb,var(--surface) 92%,transparent)}

body:not(.liquid-off) .compare-dock{
  background:color-mix(in srgb,var(--text) 92%,transparent);
  backdrop-filter:blur(24px) saturate(1.25);-webkit-backdrop-filter:blur(24px) saturate(1.25)
}

body:not(.liquid-off) .toast{
  background:color-mix(in srgb,var(--text) 90%,transparent);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)
}

body:not(.liquid-off) .stat-grid article,
body:not(.liquid-off) .usage-grid article,
body:not(.liquid-off) .plan-card,
body:not(.liquid-off) .data-item,
body:not(.liquid-off) .project-card{
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);
  border-color:color-mix(in srgb,#fff 10%,var(--line))
}
body.dark:not(.liquid-off) :is(.stat-grid article,.usage-grid article,.plan-card,.data-item,.project-card){
  background:color-mix(in srgb,var(--surface) 84%,transparent);
  border-color:rgba(255,255,255,.07)
}

/* ---------- «Жидкий» отклик на нажатие (specular highlight) ---------- */
body:not(.liquid-off) .button.primary{position:relative;overflow:hidden}
body:not(.liquid-off) .button.primary::before{
  content:"";position:absolute;top:-40%;left:-20%;width:40%;height:180%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  transform:translateX(-120%) rotate(8deg);transition:none;pointer-events:none
}
body:not(.liquid-off) .button.primary:hover::before{transform:translateX(320%) rotate(8deg);transition:transform .8s ease}
body:not(.liquid-off) .result-card:active{transform:scale(.985)}
body:not(.liquid-off) .result-card{transition:border-color .18s,transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s}

/* ---------- Плавное «плавание» фоновых пятен цвета ---------- */
body:not(.liquid-off)::before,body:not(.liquid-off)::after{
  content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(90px);opacity:.35;pointer-events:none
}
body:not(.liquid-off)::before{width:420px;height:420px;background:radial-gradient(circle,var(--blue-soft),transparent 65%);top:-140px;right:-100px;animation:blobFloat 18s ease-in-out infinite alternate}
body:not(.liquid-off)::after{width:380px;height:380px;background:radial-gradient(circle,var(--green-soft),transparent 65%);bottom:-160px;left:-120px;animation:blobFloat 22s ease-in-out infinite alternate-reverse}
@keyframes blobFloat{from{transform:translate(0,0) scale(1)}to{transform:translate(-60px,50px) scale(1.15)}}

@media(prefers-reduced-motion:reduce){
  body:not(.liquid-off)::before,body:not(.liquid-off)::after{animation:none}
}

/* v12.4.1 perf: раннее отключение blur до загрузки bundle.js (класс ставит
   инлайн-скрипт в <head> index.html). См. также копию в bundle.css. */
html.liquid-off-early body:not(.liquid-off) *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* ==== liquid-red.css ==== */
/* ============================================================
   LIQUID GLASS — RED THEME OVERRIDE (v11.9.18b)
   Красная тема перебивает стекло сплошными фонами (.96).
   Эти правила идут ПОСЛЕ и возвращают стекло в красной теме.
   ============================================================ */

body.red-theme-active:not(.liquid-off) .topbar {
  background:linear-gradient(180deg,rgba(8,9,12,.92),rgba(8,9,12,.88))!important;
  backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3);
  border-bottom-color:rgba(255,255,255,.08)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 34px rgba(0,0,0,.4)
}
@media (max-width:700px){
  body.red-theme-active:not(.liquid-off) .topbar { background:linear-gradient(180deg,rgba(8,9,12,.6),rgba(8,9,12,.32))!important; }
}

body.red-theme-active:not(.liquid-off) .sidebar {
  background:color-mix(in srgb,#0a0b0d 92%,transparent);
  backdrop-filter:blur(26px) saturate(1.25);-webkit-backdrop-filter:blur(26px) saturate(1.25)
}
@media (max-width:980px){ body.red-theme-active:not(.liquid-off) .sidebar{display:none} }

body.red-theme-active:not(.liquid-off) :is(.composer-card,.quick-check-card,.advanced-panel,.result-card,.project-card,.data-item,.stat-grid article,.profile-hero,.usage-grid article,.plan-card,.settings-card) {
  background:linear-gradient(150deg,rgba(24,25,31,.94),rgba(10,11,14,.92));
  backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);
  border-color:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 50px rgba(0,0,0,.38)
}

body.red-theme-active:not(.liquid-off) .modal-card,
body.red-theme-active:not(.liquid-off) .welcome-card {
  background:linear-gradient(160deg,rgba(22,23,29,.96),rgba(9,10,13,.96));
  backdrop-filter:blur(32px) saturate(1.25);-webkit-backdrop-filter:blur(32px) saturate(1.25);
  border-color:rgba(255,81,74,.2);
  box-shadow:0 30px 120px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06)
}

body.red-theme-active:not(.liquid-off) .mobile-nav {
  background:color-mix(in srgb,#060607 94%,transparent)!important;
  backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);
  box-shadow:0 -16px 45px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)
}

/* Красное свечение фона сильнее в режиме стекла */
body.red-theme-active:not(.liquid-off)::before{
  background:radial-gradient(circle,rgba(255,40,32,.2),transparent 65%)!important;
  opacity:.5
}

/* ---------- УСИЛЕНИЕ: пятна фона видны всегда (z-index поверх canvas) ---------- */
body:not(.liquid-off){position:relative}
body:not(.liquid-off) body::before{z-index:0}
body.red-theme-active:not(.liquid-off)::before{
  width:520px;height:520px;
  background:radial-gradient(circle,rgba(255,45,36,.28),rgba(120,0,0,.1) 55%,transparent 70%)!important;
  opacity:.75!important;filter:blur(70px)!important;
  top:-160px!important;right:-140px!important
}
body.red-theme-active:not(.liquid-off)::after{
  display:block!important;
  width:460px;height:460px;
  background:radial-gradient(circle,rgba(255,90,40,.14),transparent 68%)!important;
  opacity:.6!important;filter:blur(80px)!important;
  bottom:-180px!important;left:-140px!important;top:auto!important
}

/* Топбар красной темы — стекло заметнее */
body.red-theme-active:not(.liquid-off) .topbar{
  background:linear-gradient(180deg,rgba(10,11,15,.42),rgba(10,11,15,.16))!important
}

/* Нижняя навигация — матовый плотный фон (критично: не просвечивает) */
body.red-theme-active:not(.liquid-off) .mobile-nav{
  background:color-mix(in srgb,#08090b 96%,transparent)!important
}

/* Чипы направлений и фильтры — тоже слегка стеклянные */
body.red-theme-active:not(.liquid-off) :is(.chips button,.recent-list button,.filter-tabs button){
  background:color-mix(in srgb,#14151a 62%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
body.red-theme-active:not(.liquid-off) .chips button.active,
body.red-theme-active:not(.liquid-off) .filter-tabs button.active{
  background:rgba(255,60,50,.2)
}

/* ==== ux-redesign.css ==== */
/* ============================================================
   UX REDESIGN LAYER — v11.9.19
   Минимализм + iOS-пузырь в нижней навигации.
   Грузится последним, всё можно отключить тумблером стекла.
   ============================================================ */

/* ============================================================
   1. НИЖНЯЯ НАВИГАЦИЯ: плавающий пузырь как в iOS
   Пузырь = .nav-blob, позиция управляется JS через --blob-x
   ============================================================ */
.mobile-nav{
  height:calc(66px + var(--safe-bottom))!important;
  margin:0 14px calc(10px + var(--safe-bottom));
  width:auto;left:0;right:0;bottom:0;
  border-radius:22px!important;border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06)!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  overflow:hidden;
}
.mobile-nav button{position:relative;z-index:2;background:none!important;color:var(--muted)!important;transition:color .2s, transform .18s}
.mobile-nav button.active{color:var(--accent-current,#ff4a43)!important;font-weight:800;filter:none;text-shadow:0 0 7px color-mix(in srgb,var(--accent-current,#ff4a43) 38%,transparent)}
.mobile-nav button.active svg{filter:none!important}
.mobile-nav button svg{display:block;shape-rendering:geometricPrecision}
.nav-blob{
  position:absolute;z-index:1;top:7px;bottom:7px;left:0;
  width:calc((100% - 8px)/5);margin-left:4px;
  border-radius:17px;
  background:linear-gradient(180deg,rgba(255,74,67,.15),rgba(255,60,50,.09));
  border:1px solid rgba(255,80,72,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 10px rgba(255,50,40,.18),0 0 0 1px rgba(255,60,50,.06);
  transition:left .36s cubic-bezier(.34,1.32,.64,1);
  pointer-events:none
}
body.dark:not(.red-theme-active) .nav-blob{background:linear-gradient(180deg,rgba(94,159,232,.16),rgba(94,159,232,.08));border-color:rgba(94,159,232,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 10px rgba(60,130,220,.16)}
body:not(.dark):not(.red-theme-active) .nav-blob{background:linear-gradient(180deg,rgba(39,131,222,.12),rgba(39,131,222,.06));border-color:rgba(39,131,222,.28)}
body:not(.liquid-off) .mobile-nav .nav-blob{backdrop-filter:blur(8px) saturate(1.2);-webkit-backdrop-filter:blur(8px) saturate(1.2)}
@media (min-width:981px){.mobile-nav{display:none!important}}

/* ============================================================
   2. МИНИМАЛИЗМ: тоньше рамки, спокойнее фон карточек
   ============================================================ */
.result-card,.data-item,.stat-grid article,.usage-grid article,.plan-card,.project-card{border-color:color-mix(in srgb,var(--line) 62%,transparent)!important;box-shadow:none!important}
.result-card:hover,.data-item:hover{border-color:color-mix(in srgb,var(--blue) 30%,var(--line))!important}
.composer-card{border-width:1px!important}
.step-label{font-size:10px!important;opacity:.85}
.hero-copy h1,.page-heading h1{letter-spacing:-.045em!important}
.results-heading h2,.section-title h2{font-size:26px!important;font-weight:800!important}

/* Иконки-кружки в списках настроек — единый стиль, меньше пёстрости */
.settings-card i,.promo-head i,.liquid-row i{background:var(--surface-soft)!important;color:var(--text)!important;opacity:.75}

/* Кнопка основного действия — крупнее и дружелюбнее */
#findBtn{min-height:52px!important;border-radius:13px!important;font-size:16px!important}

/* ============================================================
   3. ЦВЕТА: мягче, современнее (красная тема)
   ============================================================ */
body.red-theme-active{--canvas:#07070a;--surface:#0e1014;--surface-soft:#16181d;--surface-raised:#1c1e24}
body.red-theme-active{background:
  radial-gradient(600px 420px at 92% -4%,rgba(190,20,12,.2),transparent 66%),
  radial-gradient(500px 380px at -8% 104%,rgba(200,90,30,.09),transparent 68%),
  #07070a}
body.red-theme-active:not(.liquid-off)::before{display:none}
body.red-theme-active:not(.liquid-off)::after{display:none}
body.red-theme-active .result-name b{letter-spacing:-.02em}
body.red-theme-active .grade-a{background:rgba(63,185,127,.14)}
body.red-theme-active .verified{background:rgba(63,185,127,.13)}

/* ============================================================
   4. ПРОФИЛЬ: настройки — группированные строки с иконками
   ============================================================ */
.usage-grid{gap:10px!important;margin-bottom:30px!important}
.usage-grid article{padding:16px!important}
.plans .plan-card p{font-size:13px}
.settings-card{border-radius:14px!important}
.referralBtn-info,#referralInfo{max-width:150px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}

/* ============================================================
   6. RGB-ПОЛОСА ОТТЕНКА (свой цвет)
   ============================================================ */
.rgb-slider-block{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.rgb-slider-block>span{display:flex;justify-content:space-between;align-items:baseline}
.rgb-slider-block b{font-size:13px}
.rgb-slider-block small{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.rgb-hint{color:var(--subtle);font-size:10px}
#accentHue{-webkit-appearance:none;appearance:none;width:100%;height:14px;border-radius:9px;outline:none;cursor:pointer;border:1px solid rgba(255,255,255,.15);
  background:linear-gradient(90deg,#f33 0%,#ff0 17%,#3f3 33%,#0ff 50%,#39f 67%,#a3f 83%,#f33 100%)}
#accentHue::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:none;box-shadow:0 2px 8px rgba(0,0,0,.4),inset 0 -6px 10px rgba(0,0,0,.06);cursor:grab;transition:transform .15s}
#accentHue::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.18)}
#accentHue::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:none;box-shadow:0 2px 8px rgba(0,0,0,.4)}

/* ============================================================
   5. СТРАНИЦА ЗАГРУЗКИ/ОШИБКИ API: аккуратный оффлайн-вид
   ============================================================ */
.api-offline-note{padding:14px;border-radius:12px;background:rgba(255,180,60,.08);border:1px solid rgba(255,180,60,.25);color:#f0b35e;font-size:13px;text-align:center}

@media(prefers-reduced-motion:reduce){
  .nav-blob{transition:none}
}

/* ============================================================
   7. МОБИЛЬНЫЙ ХЕДЕР + ВЫДВИЖНОЕ МЕНЮ (drawer)
   ============================================================ */
.menu-button{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:var(--surface);flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0}
.menu-button i{display:block;width:16px;height:2px;border-radius:2px;background:var(--text);transition:.25s}
.drawer{position:fixed;z-index:90;top:0;bottom:0;left:0;width:min(310px,84vw);background:var(--surface);border-right:1px solid var(--line);transform:translateX(-105%);transition:transform .32s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;padding:calc(18px + var(--safe-top)) 14px calc(16px + var(--safe-bottom));box-shadow:24px 0 80px rgba(0,0,0,.35)}
.drawer.open{transform:none}
.drawer-backdrop{position:fixed;z-index:89;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:1;transition:opacity .28s}
.drawer-backdrop.hidden{display:block!important;opacity:0;pointer-events:none}
body:not(.liquid-off) .drawer{background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(26px) saturate(1.25);-webkit-backdrop-filter:blur(26px) saturate(1.25)}
.drawer-head{display:flex;align-items:center;gap:11px;font-size:17px;margin-bottom:22px}
.drawer-head b{letter-spacing:-.03em}
.drawer-head .icon-button{margin-left:auto;width:38px;height:38px}
.drawer-nav{display:grid;gap:3px}
.drawer-nav button{display:flex;align-items:center;gap:13px;min-height:50px;border:0;border-radius:12px;background:none;color:var(--text);font-size:15px;text-align:left;padding:0 13px;transition:background .15s}
.drawer-nav button:hover,.drawer-nav button.active{background:var(--surface-soft)}
.drawer-nav button span{width:26px;height:26px;border-radius:8px;background:var(--surface-soft);display:grid;place-items:center;font-style:normal;color:var(--blue)}
.drawer-nav button.active span{background:var(--blue-soft)}
.drawer-nav button i{margin-left:auto;font-style:normal;color:var(--muted)}
.drawer-sep{height:1px;background:var(--line);margin:12px 6px}
.drawer-secondary button{min-height:46px;font-size:14px}
.drawer-foot{margin-top:auto;padding:0 8px;color:var(--muted);font-size:10.5px;line-height:1.5}

/* На мобиле: гамбургер в хедере, топбар компактный */
@media(max-width:980px){
  .menu-button{display:flex}
  .topbar{gap:10px}
  .topbar>div:first-child{flex:1;min-width:0}
  .security-pill{display:none!important}
  #themeBtn,#headerAvatar{width:40px;height:40px}
  .context-label{font-size:8px}
  .topbar b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34vw}
}@media(min-width:981px){#menuBtn{display:none!important}}

/* Фикс: старый grid из styles.css давал кривые колонки — только на мобильных */
@media(max-width:980px){
  .mobile-nav{
    display:flex!important;
    grid-template-columns:none!important;
    padding:8px!important;
    gap:2px;
    height:auto!important;
    bottom:calc(6px + var(--safe-bottom)*0)!important;
    margin-bottom:max(10px, env(safe-area-inset-bottom,0px))!important;
  }
  .mobile-nav button{
    flex:1 1 0;min-width:0;height:54px;
    border-radius:16px;
    position:relative;z-index:2;
  }
  .nav-blob{
    top:8px;bottom:8px;height:auto!important;
    width:calc((100% - 20px)/5)!important;
    transition:left .42s cubic-bezier(.3,1.25,.5,1),width .3s ease,opacity .25s;
  }
}
@media(min-width:981px){
  .mobile-nav{display:none!important}
  .nav-blob{display:none!important}
}
/* Пузырь тянется пальцем (drag) — класс .dragging отключает плавность */
.nav-blob.dragging{transition:none}

/* Нижняя навигация перекрывала контент — увеличиваем safe-padding только на мобильных */
main{padding-bottom:140px!important}
@media(max-width:980px){ main{padding-bottom:170px!important} }

/* ============================================================
   8. ТИПОГРАФИКА И КОНТРАСТ (аудит: читаемость второстепенного)
   ============================================================ */
body.red-theme-active{--muted:#b8b9c2;--subtle:#8a8b95}
body:not(.red-theme-active){--muted:#63626a}
.hero-copy p,.page-heading p{font-size:16px!important;opacity:.92;margin-bottom:22px!important}
.quick-check-card>p,.data-item small,.empty-state span,.legal-note{opacity:.88}
.trust-list span{font-size:11px!important;color:var(--muted)!important}
.result-meta{color:color-mix(in srgb,var(--text) 72%,var(--muted))!important;font-size:12.5px}

/* ============================================================
   9. ЧИПЫ: единый плоский стиль, активный — заливка
   ============================================================ */
.chips button,.filter-tabs button{
  border-color:transparent!important;
  background:var(--surface-soft)!important;
  color:var(--muted)!important;
  font-weight:650!important
}
.chips button.active,.filter-tabs button.active{
  background:var(--blue)!important;color:#fff!important;
  box-shadow:0 4px 14px color-mix(in srgb,var(--blue) 35%,transparent)
}

/* «Случайная идея» — спокойнее (второстепенное действие) */
.link-button{color:var(--muted)!important;font-weight:650;text-decoration:underline dotted rgba(128,128,140,.5);text-underline-offset:3px}
.field-head .link-button:hover{color:var(--blue)!important}

/* ============================================================
   10. РИТМ: убрать разрывы, сжать вертикаль
   ============================================================ */
.theme-block{margin-top:18px!important}
.results-section{margin-top:40px!important;padding-top:24px!important}
.composer-card{margin-bottom:0!important}
.quick-check-card{padding:20px!important}

/* Пустые состояния компактнее и полезнее */
.empty-state{padding:34px 20px!important}
.empty-state b{font-size:16px!important}

/* ============================================================
   11. МИКРО-UX
   ============================================================ */
/* Аватар «KW» в хедере — подпись при наведении не нужна, это профиль */
.avatar-button{font-weight:800;letter-spacing:.02em}
/* Поле username: префикс @ отделён разделителем */
.username-input span{border-right:1px solid var(--line);padding-right:9px;margin-right:7px}
/* Скролл к результатам после поиска — плавно и с запасом */
html{scroll-padding-top:80px}

/* ============================================================
   13. КНОПКИ-СТРОКИ ПРОФИЛЯ: карточки вместо голых строк
   ============================================================ */
#referralBtn,#digestBtn,#historyBtn,#linkAccountBtn{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:64px;margin-bottom:8px;
  padding:12px 14px;border-radius:13px!important;
  border:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
  background:var(--surface)!important;color:var(--text);
  transition:border-color .15s,transform .12s
}
body.red-theme-active #referralBtn,body.red-theme-active #digestBtn,
body.red-theme-active #historyBtn,body.red-theme-active #linkAccountBtn{
  background:linear-gradient(150deg,rgba(24,25,31,.75),rgba(10,11,14,.6))!important;
  border-color:rgba(255,255,255,.08)!important
}
#referralBtn:active,#digestBtn:active,#historyBtn:active,#linkAccountBtn:active{transform:scale(.985)}
#referralBtn>span,#digestBtn>span,#historyBtn>span,#linkAccountBtn>span{
  display:flex;align-items:center;gap:12px;min-width:0;flex:1;text-align:left
}
#referralBtn i,#digestBtn i,#historyBtn i,#linkAccountBtn i{
  width:40px;height:40px;border-radius:11px;
  background:color-mix(in srgb,var(--blue) 12%,var(--surface-soft));
  color:var(--blue)!important;display:grid;place-items:center;font-size:18px;font-style:normal;
  flex:0 0 auto
}
#referralBtn b,#digestBtn b,#historyBtn b,#linkAccountBtn b{font-size:14.5px;display:block}
#referralBtn small,#digestBtn small,#historyBtn small,#linkAccountBtn small{color:var(--muted);font-size:11px}

/* ============================================================
   14. ФИКС RGB: перекраска ВСЕГО в красной теме (data-accent=custom)
   ============================================================ */
html[data-accent="custom"] body.red-theme-active .settings-card i{background:color-mix(in srgb,var(--blue) 10%,var(--surface-soft));color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .usage-grid em{background:var(--blue)}
html[data-accent="custom"] body.red-theme-active .step-label,
html[data-accent="custom"] body.red-theme-active .context-label{color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .security-pill{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 25%,transparent);background:color-mix(in srgb,var(--blue) 9%,transparent)}
html[data-accent="custom"] body.red-theme-active .security-pill i{background:var(--blue)}
html[data-accent="custom"] body.red-theme-active :is(.chips button.active,.filter-tabs button.active){background:color-mix(in srgb,var(--blue) 22%,transparent)}
html[data-accent="custom"] body.red-theme-active .mobile-nav button.active{color:var(--blue)!important}
html[data-accent="custom"] body.red-theme-active .nav-blob{
  background:color-mix(in srgb,var(--blue) 16%,transparent);
  border-color:color-mix(in srgb,var(--blue) 32%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 20px color-mix(in srgb,var(--blue) 20%,transparent)
}
html[data-accent="custom"] body.red-theme-active .tier-badge,
html[data-accent="custom"] body.red-theme-active .plan-badge{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .plan-card.featured{border-color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .button.primary{background:var(--blue);border-color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .drawer-nav button span,
html[data-accent="custom"] body.red-theme-active .settings-card i{color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .grade-a{background:color-mix(in srgb,var(--blue) 13%,transparent);color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .quality-meter i{background:var(--blue)}
html[data-accent="custom"] body.red-theme-active .usage-grid em{background:var(--blue)}

/* ============================================================
   15. RGB-ФИКС v2: добить оставшиеся красные пятна
   ============================================================ */
html[data-accent="custom"] body.red-theme-active .button.primary{
  background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 88%,#fff),var(--blue) 55%,color-mix(in srgb,var(--blue) 75%,#000))!important;
  border-color:var(--blue)!important;
  box-shadow:0 8px 26px color-mix(in srgb,var(--blue) 30%,transparent),inset 0 1px rgba(255,255,255,.24)!important
}
html[data-accent="custom"] body.red-theme-active .button.primary:hover{
  background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 92%,#fff),var(--blue))!important
}
html[data-accent="custom"] body.red-theme-active .mobile-nav button.active{color:var(--blue)!important;text-shadow:0 0 18px color-mix(in srgb,var(--blue) 40%,transparent)!important}
html[data-accent="custom"] body.red-theme-active .link-button,
html[data-accent="custom"] body.red-theme-active .promo-head i,
html[data-accent="custom"] body.red-theme-active #randomIdea,
html[data-accent="custom"] body.red-theme-active .range-field output,
html[data-accent="custom"] body.red-theme-active .mode-hint{color:var(--blue)!important}
html[data-accent="custom"] body.red-theme-active .mode-hint{background:color-mix(in srgb,var(--blue) 10%,transparent)!important}
html[data-accent="custom"] body.red-theme-active :is(.chips button.active,.filter-tabs button.active){
  background:var(--blue)!important;color:#fff!important;border-color:transparent!important;
  box-shadow:0 4px 14px color-mix(in srgb,var(--blue) 35%,transparent)
}
html[data-accent="custom"] body.red-theme-active .result-actions button:hover,
html[data-accent="custom"] body.red-theme-active .data-item button:hover{border-color:color-mix(in srgb,var(--blue) 34%,var(--line))}
html[data-accent="custom"] body.red-theme-active .result-card:hover{border-color:color-mix(in srgb,var(--blue) 35%,var(--line))!important}
html[data-accent="custom"] body.red-theme-active .composer-card:focus-within{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))!important}
html[data-accent="custom"] body.red-theme-active .username-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3.5px color-mix(in srgb,var(--blue) 14%,transparent)}
html[data-accent="custom"] body.red-theme-active .switch-row input:checked+i{background:var(--blue);border-color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .theme-slider-row input[type=range]{accent-color:var(--blue)}
html[data-accent="custom"] body.red-theme-active .side-nav button:hover,
html[data-accent="custom"] body.red-theme-active .profile-nav:hover{color:var(--text)}
html[data-accent="custom"] body.red-theme-active .drawer-nav button span{color:var(--blue)!important}
/* фоновое свечение тоже в цвет акцента */
html[data-accent="custom"] body.red-theme-active{
  background:
    radial-gradient(600px 420px at 92% -4%,color-mix(in srgb,var(--blue) 16%,transparent),transparent 66%),
    radial-gradient(500px 380px at -8% 104%,color-mix(in srgb,var(--blue) 8%,transparent),transparent 68%),
    #07070a!important
}

/* v12.5.2: подсказка «открыть внутри Telegram» (QA-сессия) */
.tg-open-hint {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  margin: 14px 0 4px; padding: 14px 16px; border-radius: 16px;
  background: rgba(255, 107, 107, .08); border: 1px solid rgba(255, 107, 107, .25);
  color: var(--fg, #eee); font-size: 13px; line-height: 1.45;
}
.tg-open-hint.hidden { display: none; }
.tg-open-hint .button { flex-shrink: 0; padding: 8px 14px; font-size: 13px; }

/* v12.5.4: кастомная продажа лота — чипы вместо голых select'ов (стиль аппа) */
.sell-lot-block{padding:14px 16px 16px}
.sell-name-scroll{margin:2px 0 10px;padding-bottom:2px}
.sell-name-scroll button{min-height:36px;font-size:13px;font-weight:650;color:var(--text)}
.sell-name-scroll .active{background:var(--red-soft);border-color:transparent;color:var(--red)}
.sell-empty{color:var(--subtle);font-size:12px;padding:8px 2px}
.sell-price-row{display:flex;gap:10px;align-items:stretch;margin-bottom:12px}
.sell-price-row .chips{flex:1 1 auto;overflow:auto;scrollbar-width:none}
.sell-price-input{flex:0 0 74px;width:74px;min-height:38px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);padding:0 13px;font:inherit;font-size:13px;text-align:center;outline:0;transition:border-color .18s}
.sell-price-input:focus{border-color:var(--red)}
.sell-price-input::placeholder{color:var(--subtle);font-size:11px}
/* v12.9.1 (владелец): заголовок промо-блока не должен обрезаться на узких
   экранах — текст описания переносится на новую строку вместо выдавливания */
.promo-head-wrap{flex-wrap:wrap;row-gap:2px}
.promo-head-wrap small{margin-left:41px;text-align:left;padding-left:0;white-space:normal;width:calc(100% - 41px)}
.sell-submit{min-height:48px;border-radius:12px;font-weight:750}

/* v12.5.4.1: метки-оверлайны секций (ЕЩЁ / ВНЕШНИЙ ВИД / ПУЛ КЛЕЙМА …).
   Было: метка прилипает к заголовку и к карточке сверху — выглядит зажатой
   у границы. Стало: воздух сверху, аккуратный трекинг, мягкий цвет акцента,
   декоративная черта слева для «редлайн»-стиля аппа. */
.section-title{margin-top:34px;padding-top:18px;position:relative;margin-bottom:12px!important}
.section-title::before{content:"";position:absolute;top:22px;left:-12px;width:3px;height:14px;border-radius:2px;background:var(--red);opacity:.55}
.step-label,.context-label{letter-spacing:.2em!important;font-size:10px!important;color:var(--red)!important;opacity:.92!important;display:inline-flex!important;align-items:center!important;gap:7px}
.results-heading .step-label,.page-heading>.step-label,.hero-copy .step-label{color:var(--blue)!important}
@media(max-width:700px){.section-title{margin-top:26px;padding-top:14px;margin-bottom:10px!important}}
/* v12.9.7 fix: «Все настройки» и «+ Заявка» липли к сетке — стрелки владельца */
.section-title + .quick-settings{margin-top:0!important}
.section-title + .data-list{margin-top:0!important}
.section-title + .bot-pulse{margin-top:0!important}
.section-title + .pulse-strip{margin-top:0!important}
.section-title + .chart-card{margin-top:0!important}
@media(max-width:700px){
  .section-title{gap:10px!important}
  .section-title .button.ghost{margin-top:4px}
}
/* v12.9.7 fix: Поиск — красный овал был пустотой из-за 100px top у quick-check */
@media(max-width:980px){
  .advanced-toggle{margin-bottom:0!important}
  .recent-block{margin-top:12px!important}
}
/* v12.9.7 fix: модалка Пул клейма — чипсы слипались, поле телефона липла к кнопке (фото 1) */
.modal-card .filter-tabs{margin-top:14px!important;margin-bottom:14px!important;gap:8px!important}
.modal-card .filter-tabs button{min-height:36px!important;font-size:13px!important}
.modal-card .legal-note{margin-bottom:14px!important;line-height:1.45}
.modal-card .select-field{margin-bottom:12px!important}
.modal-card .select-field + .button{margin-top:4px!important}
.modal-card .select-field input,.modal-card .select-field textarea{margin-top:6px!important}
/* модалка: чипсы не должны переноситься в 2 строки слишком плотно */
.modal-card .filter-tabs{flex-wrap:wrap}
@media(max-width:380px){
  .modal-card .filter-tabs button{flex:1 1 auto}
}

/* ==== liquid-ios.css ==== */
/* ============================================================
   LIQUID GLASS · iOS 26 edition v133 (грузится последним)
   - настоящее жидкое стекло (blur+saturate, блики, радиусы)
   - SVG-иконки навигации и списков
   - фикс: пузырь таб-бара тянется пальцем (touch-action:none!)
   - фикс: типографика hero больше не вылезает на мобильном
   ============================================================ */

:root{
  --glass-blur: blur(26px) saturate(140%);
  --glass-bg: color-mix(in srgb, var(--surface) 86%, transparent);
  --glass-bg-strong: color-mix(in srgb, var(--surface) 94%, transparent);
  --glass-border: color-mix(in srgb, var(--surface-raised) 72%, transparent);
  --glass-spec: inset 0 1px 0 color-mix(in srgb,#fff 22%,transparent),
                inset 0 -1px 0 color-mix(in srgb,var(--text) 6%,transparent);
}

/* ---------- Иконки ---------- */
.nav-ic,.tab-ic{display:inline-flex;width:22px;height:22px;flex:0 0 auto}
.tab-ic{width:24px;height:24px;margin-bottom:2px}
.ic-svg{width:17px;height:17px;display:block}
.ib-svg{width:19px;height:19px;display:block}
.side-nav svg,.mobile-nav svg,.drawer-nav .nav-ic svg{width:100%;height:100%;display:block}
.settings-card i,.promo-head i,.liquid-row i{background:transparent!important;border:1px solid var(--glass-border);border-radius:10px!important;width:34px;height:34px;display:grid;place-items:center;color:var(--muted)}
.mobile-nav i{font-style:normal}
.mobile-nav span{font-size:10px;font-weight:650;letter-spacing:.01em}

/* ---------- Фон: мягкие цветные пятна под стеклом — приглушили ---------- */
body:not(.liquid-off)::before,
body:not(.liquid-off)::after{
  content:""; position:fixed; z-index:-1; pointer-events:none;
  width:58vmax; height:58vmax; border-radius:50%;
  filter:blur(90px); opacity:.18;
}
body:not(.liquid-off)::before{
  background:radial-gradient(circle at 32% 32%,
    color-mix(in srgb,var(--blue) 52%,#ff7ac3) 0%, transparent 66%);
  top:-24vmax; right:-16vmax;
}
body:not(.liquid-off)::after{
  background:radial-gradient(circle at 68% 68%,
    color-mix(in srgb,var(--blue) 38%,#5ee0ff) 0%, transparent 64%);
  bottom:-26vmax; left:-20vmax; opacity:.22;
}
body.dark::before{opacity:.26} body.dark::after{opacity:.2}
body.red-theme-active::before{
  background:radial-gradient(circle at 32% 32%, #ff453a 0%, #ff7ac3 48%, transparent 66%);
  opacity:.34;
}
body.red-theme-active::after{
  background:radial-gradient(circle at 68% 68%, #ff9d00 0%, transparent 60%);
  opacity:.22;
}

/* ---------- Стеклянные панели — плотнее (матовые) ---------- */
body:not(.liquid-off) :is(.composer-card,.quick-check-card,.advanced-panel,
.result-card,.project-card,.data-item,.stat-grid article,.profile-hero,
.usage-grid article,.plan-card,.settings-card,.modal-card,.welcome-card){
  background:var(--glass-bg)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.25)!important;
  backdrop-filter:blur(20px) saturate(1.25)!important;
  border:1px solid var(--glass-border)!important;
  box-shadow:var(--glass-spec), 0 12px 44px rgba(0,0,0,.14)!important;
  border-radius:22px!important;
}

/* ---------- Топбар — плотный матовый ---------- */
body:not(.liquid-off) .topbar{
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--surface) 92%,transparent),
    color-mix(in srgb,var(--surface) 88%,transparent))!important;
  -webkit-backdrop-filter:blur(22px) saturate(130%)!important;
  backdrop-filter:blur(22px) saturate(130%)!important;
  border-bottom:1px solid var(--glass-border)!important;
}
body:not(.liquid-off) .security-pill{
  background:color-mix(in srgb,var(--green-soft) 60%,transparent);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
}

/* ---------- Сайдбар — плотный ---------- */
body:not(.liquid-off) .sidebar{
  background:color-mix(in srgb,var(--canvas) 92%,transparent)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.25)!important;
  backdrop-filter:blur(22px) saturate(1.25)!important;
  border-right:1px solid var(--glass-border)!important;
}
body:not(.liquid-off) .side-nav button.active{
  background:var(--glass-bg-strong);
  box-shadow:var(--glass-spec), 0 4px 18px rgba(0,0,0,.07);
  border-radius:14px;
}
body:not(.liquid-off) .side-nav button.active .nav-ic{color:var(--accent-current,var(--blue))}

/* ---------- Кнопки-пилюли ---------- */
body:not(.liquid-off) .button{border-radius:999px!important;transition:transform .15s ease,filter .15s ease}
body:not(.liquid-off) .button:active{transform:scale(.96)}
body:not(.liquid-off) .button.primary{
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--blue) 90%,#fff 10%), var(--blue))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),
             0 6px 24px color-mix(in srgb,var(--blue) 36%,transparent)!important;
  border-color:transparent!important;
}
#findBtn{border-radius:999px!important}
body:not(.liquid-off) .button.secondary{
  background:var(--glass-bg-strong)!important;color:var(--text)!important;
  border-color:var(--glass-border)!important;box-shadow:var(--glass-spec)!important;
}
body:not(.liquid-off) :is(.button.ghost,.result-actions button,.data-item button,
.icon-button,.action-link,.advanced-toggle){
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-color:var(--glass-border);
}
body:not(.liquid-off) .result-actions button,
body:not(.liquid-off) .data-item button{border-radius:999px}

/* ---------- Поля ---------- */
body:not(.liquid-off) :is(.username-input,.promo-row input,.modal-form input,
.modal-form textarea,.modal-form select,.select-field select,.compact-select select){
  background:color-mix(in srgb,var(--surface-raised) 42%,transparent)!important;
  border-color:var(--glass-border)!important;border-radius:14px!important;
}
.composer-row textarea{font-size:17px}

/* ---------- Чипы ---------- */
body:not(.liquid-off) :is(.chips button,.filter-tabs button,.recent-list button){
  background:var(--glass-bg)!important;
  border-color:var(--glass-border)!important;border-radius:999px!important;
}
body:not(.liquid-off) :is(.chips button.active,.filter-tabs button.active){
  background:color-mix(in srgb,var(--accent-current,var(--blue)) 18%,var(--glass-bg-strong))!important;
  color:var(--accent-current,var(--blue))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35)!important;
}
body:not(.liquid-off) :is(.mode-switch button){border-radius:999px}
body:not(.liquid-off) .mode-switch button.active{
  background:var(--glass-bg-strong);
  box-shadow:var(--glass-spec), 0 2px 12px rgba(0,0,0,.10);
}

/* ---------- Карточки результатов ---------- */
body:not(.liquid-off) .result-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--glass-spec), 0 18px 52px rgba(0,0,0,.13)!important;
}
body:not(.liquid-off) .grade-s{
  box-shadow:0 0 14px rgba(255,196,0,.6), inset 0 1px 1px rgba(255,255,255,.75);
}

/* ============================================================
   ТАБ-БАР: стекло + ДРАГ ПАЛЬЦЕМ
   (главный фикс: touch-action:none — иначе браузер перехватывает
   жест под скролл и pointermove не приходит)
   ============================================================ */
@media(max-width:980px){
  .mobile-nav{
    left:12px;right:12px;bottom:max(10px, env(safe-area-inset-bottom));
    max-width:520px;margin:0 auto;width:auto;
    background:color-mix(in srgb,var(--surface) 94%,transparent)!important;
    -webkit-backdrop-filter:blur(22px) saturate(130%)!important;
    backdrop-filter:blur(22px) saturate(130%)!important;
    border:1px solid var(--glass-border)!important;
    border-radius:28px!important;
    box-shadow:var(--glass-spec), 0 16px 48px rgba(0,0,0,.34)!important;
  }
  body.liquid-off .mobile-nav{background:var(--surface)!important}
  /* iOS liquid segmented: весь бар — drag-зона (зажал кружок и ведёшь без отрыва) */
  .mobile-nav{
    touch-action:none!important;
    -ms-touch-action:none!important;
    user-select:none!important;
    -webkit-user-select:none!important;
  }
  .mobile-nav button{touch-action:none!important}
  .nav-blob{
    touch-action:none!important;
    -ms-touch-action:none!important;
    cursor:grab;
    z-index:1;
    top:7px;bottom:7px;height:auto;
    /* 5 вкладок: ширина слота обязана совпадать с формулой moveBlob() */
    width:calc((100% - 20px)/5)!important;
    border-radius:18px;
    background:color-mix(in srgb,var(--accent-current,var(--blue)) 14%,transparent);
    border:1px solid color-mix(in srgb,var(--accent-current,var(--blue)) 34%,transparent);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 2px 10px color-mix(in srgb,var(--accent-current,var(--blue)) 18%,transparent);
    will-change:left,transform;
    transition:left .34s cubic-bezier(.34,1.56,.64,1), width .24s ease, transform .18s ease, box-shadow .2s ease;
    transform-origin:center center;
  }
  .nav-blob.dragging{
    cursor:grabbing;
    transition:none!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 22px color-mix(in srgb,var(--accent-current,var(--blue)) 28%,transparent);
  }
  main{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
  body:not(.liquid-off) .compare-dock{
    bottom:calc(92px + env(safe-area-inset-bottom,0px));
    background:color-mix(in srgb,var(--text) 94%,transparent)!important;
    -webkit-backdrop-filter:blur(22px) saturate(130%)!important;
    backdrop-filter:blur(22px) saturate(130%)!important;
    border-radius:24px!important;
  }
  body:not(.liquid-off) .drawer{
    background:color-mix(in srgb,var(--surface) 96%,transparent)!important;
    -webkit-backdrop-filter:blur(26px) saturate(130%)!important;
    backdrop-filter:blur(26px) saturate(130%)!important;
    border-right:1px solid var(--glass-border)!important;
    box-shadow: 16px 0 48px rgba(0,0,0,.45)!important;
  }
  body:not(.liquid-off) .drawer-backdrop{background:rgba(0,0,0,.52);backdrop-filter:blur(6px)}
}

/* ---------- Модалки / онбординг: плотная подложка — ничего не просвечивает ---------- */
body:not(.liquid-off) .modal,body:not(.liquid-off) .onboarding{
  background:rgba(5,6,9,.62);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  backdrop-filter:blur(18px) saturate(125%);
}
body:not(.liquid-off) .welcome-flow>div{
  background:color-mix(in srgb,var(--surface-raised) 38%,transparent);
  border-radius:16px;border:1px solid var(--glass-border);
}

/* ---------- Тосты / скелетоны ---------- */
body:not(.liquid-off) .toast{
  background:color-mix(in srgb,var(--text) 80%,transparent)!important;
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  border-radius:999px!important;padding:12px 18px;
  box-shadow:0 12px 40px rgba(0,0,0,.22);
}
.skeleton{border-radius:22px}

/* ============================================================
   ТИПОГРАФИКА: герой больше не вылезает за экран (фикс со скрина)
   ============================================================ */
.hero-copy h1{font-size:clamp(27px,6vw,54px)!important;overflow-wrap:anywhere}
.page-heading h1{font-size:clamp(27px,5vw,44px)!important;overflow-wrap:anywhere}
.hero-copy p{font-size:clamp(14px,2.4vw,17px)}
.results-heading h2,.section-title h2{font-size:clamp(21px,3.6vw,26px)!important}
.quick-check-card h2{font-size:21px!important}

/* Пузырь в красной теме наследует акцент — уже через --accent-current */

/* Уважение к reduced motion */
@media(prefers-reduced-motion:reduce){.nav-blob{transition:none!important}}

/* ============================================================
   ЧИТАЕМОСТЬ НА СТЕКЛЕ (v134): стекло съедает контраст —
   поднимаем текстовые токены и убираем серую кашу.
   ============================================================ */

/* 1. Ярче вторичный текст в тёмных темах (был gray-on-gray) */
body.dark,body.red-theme-active{
  --muted:rgba(255,255,255,.74);
  --subtle:rgba(255,255,255,.52);
}
body.dark{--line:rgba(255,255,255,.2)}

/* 2. Placeholder больше не призрак */
::placeholder{opacity:1}
input::placeholder,textarea::placeholder{
  color:color-mix(in srgb,var(--muted) 70%,var(--text))!important;
}
.composer-row textarea::placeholder{color:color-mix(in srgb,var(--muted) 75%,var(--text))}

/* 3. Мелкие подписи: минимум мутирования */
.step-label,.context-label{opacity:1!important;color:var(--accent-current,var(--blue));font-weight:800}
.composer-meta,.composer-card>label,.field-head>span{color:var(--muted)}
.composer-meta{border-top-color:color-mix(in srgb,var(--line) 80%,transparent)}
.link-button{color:var(--accent-current,var(--blue));font-weight:700}
.mode-hint{background:color-mix(in srgb,var(--accent-current,var(--blue)) 12%,transparent)!important;color:var(--text)}

/* 4. Бейджи тарифа/верификации: плотная заливка + жирный текст */
.tier-badge,.plan-badge,.verified,.badge-doubt{
  font-weight:850!important;letter-spacing:.06em;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
.tier-badge,.plan-badge{
  background:color-mix(in srgb,var(--accent-current,var(--blue)) 22%,var(--surface))!important;
  color:var(--accent-current,#fff)!important;
  border:1px solid color-mix(in srgb,var(--accent-current,var(--blue)) 38%,transparent)!important;
}
body.red-theme-active .tier-badge,body.red-theme-active .plan-badge{color:#ffb3ae!important}
.verified{background:var(--green-soft)!important;color:var(--green)!important;border:1px solid color-mix(in srgb,var(--green) 35%,transparent)}
.badge-doubt{background:var(--orange-soft)!important;color:var(--orange)!important}

/* 5. CTA: чистый насыщенный градиент без белёсой примеси */
body:not(.liquid-off) .button.primary,
.button.primary{
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--accent-current,var(--blue)) 86%,#fff),
    var(--accent-current,var(--blue)))!important;
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),
             0 8px 28px color-mix(in srgb,var(--accent-current,var(--blue)) 45%,transparent)!important;
}
body.red-theme-active .button.primary{--blue:#ff453a} /* страховка для старых правил */
body.red-theme-active #findBtn{background:linear-gradient(180deg,#ff6a5e,#ff3b30)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 30px rgba(255,69,58,.4)!important}

/* 6. Активные табы/чипы: чёткий акцент, читаемый текст */
.mode-switch button{color:var(--muted)}
body:not(.liquid-off) .mode-switch button.active{
  color:var(--text)!important;font-weight:800;
  border:1px solid color-mix(in srgb,var(--accent-current,var(--blue)) 30%,transparent);
}
body:not(.liquid-off) :is(.chips button.active,.filter-tabs button.active){
  background:color-mix(in srgb,var(--accent-current,var(--blue)) 26%,var(--surface))!important;
  color:var(--accent-current,var(--blue))!important;font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28)!important;
}
body.red-theme-active :is(.chips button.active,.filter-tabs button.active){color:#ff8d85!important}

/* 7. Разделение карточек и фона: чуть светлее стекло + глубже тень */
body.dark:not(.liquid-off),body.red-theme-active:not(.liquid-off){}
body.dark :is(.result-card,.data-item,.stat-grid article,.usage-grid article,.plan-card,.project-card),
body.red-theme-active :is(.result-card,.data-item,.stat-grid article,.usage-grid article,.plan-card,.project-card){
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
}
.stat-grid b{color:var(--text)}
.usage-grid span,.stat-grid span,.stat-grid small,.data-item small,.profile-hero p{color:var(--muted)!important}
.settings-card small,.settings-card b{color:inherit}
.settings-card small{color:var(--muted)!important}

/* 8. Навигация: активный таб ярче */
.mobile-nav button.active span{font-weight:800}
.side-nav button.active{font-weight:750}

/* ============================================================
   НЕТ БЕЛОМУ В ТЁМНЫХ ТЕМАХ (v135): чёрное стекло + красный акцент.
   Белые плашки кнопок/табов/карточек → угольно-красные.
   ============================================================ */

/* Активная вкладка режима: была белой пилюлей — стала чёрной с красной рамкой */
body.dark .mode-switch button.active,
body.red-theme-active .mode-switch button.active{
  background:linear-gradient(180deg,#26120f,#170b0a)!important;
  color:#ffd9d4!important;font-weight:800;
  border:1px solid rgba(255,80,64,.42)!important;
  box-shadow:inset 0 1px 0 rgba(255,120,100,.14),0 3px 14px rgba(255,60,40,.16)!important;
}
body.dark:not(.red-theme-active) .mode-switch button.active{
  background:linear-gradient(180deg,#101a24,#0b1218)!important;
  color:#cfe6ff!important;border-color:rgba(94,159,232,.45)!important;
}

/* Вторичные кнопки: никогда не var(--text)-белые в тёмных темах */
body.dark .button.secondary,
body.red-theme-active .button.secondary{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03))!important;
  color:#fff!important;
  border:1px solid color-mix(in srgb,var(--accent-current,var(--blue)) 34%,transparent)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 4px 16px rgba(0,0,0,.35)!important;
}
body.red-theme-active .button.secondary{border-color:rgba(255,80,64,.4)!important}
body.dark:not(.red-theme-active) .button.secondary{border-color:rgba(94,159,232,.4)!important}

/* Карточка быстрой проверки: тёмное стекло всегда (был «остров светлой темы») */
body.dark .quick-check-card,
body.red-theme-active .quick-check-card{
  background:color-mix(in srgb,var(--surface) 88%,transparent)!important;
}
body.dark .quick-icon,
body.red-theme-active .quick-icon{
  background:color-mix(in srgb,var(--accent-current,var(--blue)) 18%,#141414)!important;
  color:var(--accent-current,#fff)!important;
  border:1px solid color-mix(in srgb,var(--accent-current,var(--blue)) 30%,transparent);
}
body.dark .username-input,
body.red-theme-active .username-input{
  background:rgba(255,255,255,.05)!important;
  border-color:color-mix(in srgb,var(--line) 90%,transparent)!important;
}
body.dark .trust-list i,
body.red-theme-active .trust-list i{background:rgba(255,255,255,.08)}

/* Кнопка primary: убрать белёсую верхнюю примесь — чистый красный */
body.dark .button.primary,
body.red-theme-active .button.primary{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent-current,#ff453a) 92%,#000),var(--accent-current,#ff453a))!important;
}

/* Чипы неактивные: глубже, чтобы активный читался */
body.dark :is(.chips button,.filter-tabs button,.recent-list button),
body.red-theme-active :is(.chips button,.filter-tabs button,.recent-list button){
  background:rgba(255,255,255,.05)!important;
  color:var(--muted)!important;
}

/* Раскрывающийся блок настроек: тёмный */
body.dark .advanced-toggle,body.red-theme-active .advanced-toggle{
  background:rgba(255,255,255,.04)!important;
}

/* Аватар в шапке: чёрный квадрат с мягкой рамкой вместо кислотного */
.avatar-button{
  background:#111!important;color:#fff!important;
  border:1px solid rgba(255,255,255,.14)!important;
}

/* ============================================================
   КОРЕНЬ БАГА «ВСЁ БЕЛОЕ» (v136): токены стекла объявлены на :root,
   где --surface ещё СВЕТЛЫЙ — и наследуются уже посчитанными белыми.
   Пересчитываем их на body: каждая тема получает стекло СВОЕГО цвета.
   ============================================================ */
body{
  --glass-bg:color-mix(in srgb,var(--surface) 86%,transparent);
  --glass-bg-strong:color-mix(in srgb,var(--surface) 94%,transparent);
  --glass-border:color-mix(in srgb,var(--surface-raised) 72%,transparent);
}
body.dark,body.red-theme-active{
  --glass-spec: inset 0 1px 0 rgba(255,255,255,.09),
                inset 0 -1px 0 rgba(0,0,0,.35);
}
/* Тени панелей в тёмных темах — тёмные, не серо-молочные */
body.dark:not(.liquid-off) :is(.composer-card,.quick-check-card,.advanced-panel,
.result-card,.project-card,.data-item,.stat-grid article,.profile-hero,
.usage-grid article,.plan-card,.settings-card),
body.red-theme-active:not(.liquid-off) :is(.composer-card,.quick-check-card,.advanced-panel,
.result-card,.project-card,.data-item,.stat-grid article,.profile-hero,
.usage-grid article,.plan-card,.settings-card){
  box-shadow:var(--glass-spec), 0 14px 44px rgba(0,0,0,.45)!important;
}

/* ---------- v12.7.18: кнопки карточек на мобильном (грузится последним —
   гарантированный приоритет). Второстепенные действия иконками, перенос
   разрешён, чтобы «Занять» не резало краем карточки. ---------- */
@media(max-width:700px){
  .result-actions{flex-wrap:wrap!important}
  .result-actions .compare-btn span,.result-actions .monitor-btn span{display:none}
  .result-actions .compare-btn,.result-actions .monitor-btn{width:34px;padding:0}
}

/* ============================================================
   CRISP NAV GLOW FIX — убираем «мыло» с активного таба
   (фикс от скрина: Меню/иконка домика были размыты 18px тенью)
   ============================================================ */
.mobile-nav button{ -webkit-font-smoothing:antialiased; text-rendering:geometricPrecision; }
.mobile-nav button svg{
  display:block; shape-rendering:geometricPrecision;
  filter:none!important; -webkit-filter:none!important;
}
.mobile-nav button.active{
  text-shadow:0 0 7px color-mix(in srgb,var(--accent-current,var(--blue)) 36%,transparent) !important;
  filter:none!important; opacity:1;
}
.mobile-nav button.active i,
.mobile-nav button.active span{
  opacity:1; filter:none!important; transform:none;
}
.mobile-nav button.active .tab-ic svg,
.mobile-nav button.active .nav-ic svg{
  stroke-width:1.9; /* ровнее на тёмном фоне */
}
/* красный акцент — чуть плотнее свечение, но узкое */
body.red-theme-active .mobile-nav button.active{
  color:#ff5a52 !important;
  text-shadow:0 0 8px rgba(255,69,58,.36), 0 1px 0 rgba(0,0,0,.18) !important;
}
/* кастомный акцент (RGB-полоса) — перебиваем старый 18px ореол */
html[data-accent="custom"] body.red-theme-active .mobile-nav button.active{
  text-shadow:0 0 7px color-mix(in srgb,var(--blue) 36%,transparent) !important;
}
html[data-accent="custom"] body.red-theme-active .nav-blob{
  background:color-mix(in srgb,var(--blue) 14%,transparent) !important;
  border-color:color-mix(in srgb,var(--blue) 34%,transparent) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 2px 10px color-mix(in srgb,var(--blue) 18%,transparent) !important;
}
/* пузырь: чёткая рамка + узкая тень вместо молочной дымки */
.mobile-nav .nav-blob{
  backdrop-filter:blur(8px) saturate(1.2) !important;
  -webkit-backdrop-filter:blur(8px) saturate(1.2) !important;
}
/* пузырь не должен размывать текст кнопки — только подложка */
.mobile-nav button.active{ position:relative; z-index:2; }
@media(prefers-reduced-motion:reduce){
  .mobile-nav button.active{ text-shadow:none !important; }
}

/* ==== premium-shop.css ==== */
/* ============================================================================
   PREMIUM SHOP — v12.8.0 (S2, задача владельца 2026-08-25)
   Bottom-sheet магазин Premium «как у конкурента»: пилюли длительности,
   список способов оплаты с брендовыми иконками, вкладка пакетов.
   Работает в трёх темах: red (дефолт) / dark / light — всё на var(--*).
   ============================================================================ */

.pay-sheet{position:relative;display:flex;flex-direction:column;gap:14px}
.pay-drag{width:40px;height:4px;border-radius:4px;background:var(--line);margin:0 auto}

/* ── Вкладки: Подписка | Пакеты ──────────────────────────────────────────── */
.pay-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:5px}
.pay-tabs button{min-height:38px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:800;font-size:13px;letter-spacing:.02em;transition:background .15s,color .15s}
.pay-tabs button.active{background:var(--blue);color:#fff;box-shadow:0 2px 10px color-mix(in srgb,var(--blue) 35%,transparent)}

.pay-pane[hidden]{display:none!important}

/* ── Заголовок панельки ─────────────────────────────────────────────────── */
.pay-head h2{font-size:24px;letter-spacing:-.03em;margin:0 0 3px}
.pay-head p{color:var(--muted);font-size:13px;margin:0;line-height:1.45}

/* ── Пилюли длительности ────────────────────────────────────────────────── */
.pay-pills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.pay-pill{min-height:52px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 4px;text-align:center;transition:border-color .15s,background .15s,transform .1s}
.pay-pill b{font-size:13px;font-weight:850;white-space:nowrap}
.pay-pill small{font-size:11px;color:var(--muted);white-space:nowrap}
.pay-pill small s{opacity:.75}
.pay-pill.active{border-color:var(--blue);background:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--blue)}
.pay-pill.active small{color:var(--blue)}
.pay-pill:active{transform:scale(.96)}
.pay-sale{color:var(--green)!important;font-weight:800}

/* ── Секция способов оплаты ─────────────────────────────────────────────── */
.pay-label{color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.16em;text-transform:uppercase;margin:2px 0 -4px}
.pay-methods{display:grid;gap:8px}
.pm-row{display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);color:var(--text);text-align:left;transition:border-color .15s,transform .1s,filter .15s}
.pm-row:hover{border-color:color-mix(in srgb,var(--blue) 38%,var(--line))}
.pm-row:active{transform:scale(.985)}
.pm-row:disabled{opacity:.55;cursor:not-allowed}
.pm-ico{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--line);display:grid;place-items:center;padding:6px}
.pm-ico img{width:100%;height:100%;object-fit:contain;border-radius:6px;display:block}
.pm-ico--stars svg{width:26px;height:26px;color:#fbbf24}
.pm-txt{min-width:0;flex:1;display:grid;gap:1px}
.pm-txt b{font-size:15px;font-weight:800}
.pm-txt small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-soon{flex:0 0 auto;border:1px dashed color-mix(in srgb,var(--orange) 55%,var(--line));color:var(--orange);font-size:10px;font-weight:850;letter-spacing:.08em;border-radius:999px;padding:4px 9px;text-transform:uppercase}
.pm-arrow{flex:0 0 auto;color:var(--subtle);font-size:18px;line-height:1}

/* ── Футер шита ─────────────────────────────────────────────────────────── */
.pay-foot{text-align:center;color:var(--subtle);font-size:11px;margin-top:-2px}

/* ── Карточки пакетов (вкладка «Пакеты») ────────────────────────────────── */
.pack-list{display:grid;gap:8px}
.pack-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.pack-ico{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}
.pack-ico svg{width:22px;height:22px}
.pack-txt{min-width:0;flex:1;display:grid;gap:1px}
.pack-txt b{font-size:15px;font-weight:800}
.pack-txt small{color:var(--muted);font-size:12px}
.pack-buy{flex:0 0 auto;min-height:38px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);color:var(--text);font-weight:800;font-size:13px;display:inline-flex;align-items:center;gap:6px;transition:filter .15s,transform .1s,border-color .15s}
.pack-buy:hover{border-color:color-mix(in srgb,var(--blue) 38%,var(--line))}
.pack-buy:active{transform:scale(.95)}
.pack-buy.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 3px 12px color-mix(in srgb,var(--blue) 32%,transparent)}

/* Мобильная компоновка модалки: на телефонах sheet прижат к низу,
   как у нативных Telegram-шитов (десктоп остаётся по центру). */
@media(max-width:700px){
  #modal{place-items:end stretch;padding:0}
  #modal .modal-card{width:100%;max-height:calc(100dvh - 48px);border-radius:18px 18px 0 0;border-bottom:0;padding:14px 16px calc(16px + var(--safe-bottom));animation:sheetUp .3s cubic-bezier(.22,1,.36,1) both}
  @keyframes sheetUp{from{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}
}

@media(prefers-reduced-motion:reduce){
  .pay-tabs button,.pay-pill,.pm-row,.pack-buy,#modal .modal-card{animation:none!important;transition:none!important}
}

/* ── Премиум-карточка на профиле (v12.8.0): статус + CTA «Оформить Premium» ── */
.prem-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:13px;margin-top:14px;padding:16px;border:1px solid color-mix(in srgb,var(--blue) 32%,var(--line));border-radius:16px;background:var(--surface-soft)}
.prem-glow{position:absolute;left:-30%;right:-30%;bottom:-60%;height:130px;background:radial-gradient(60% 100% at 50% 0%,color-mix(in srgb,var(--blue) 22%,transparent),transparent 70%);pointer-events:none}
.prem-diamond{flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}
.prem-diamond svg{width:24px;height:24px}
.prem-info{min-width:0;flex:1;display:grid;gap:2px}
.prem-info b{font-size:17px;font-weight:850}
.prem-info small{color:var(--muted);font-size:12px;line-height:1.4}
.prem-cta{flex:0 0 auto;min-height:46px;padding:0 18px;border:0;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 86%,#fff),var(--blue));color:#fff;font-weight:900;font-size:14px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 6px 20px color-mix(in srgb,var(--blue) 38%,transparent);transition:transform .12s,filter .15s}
.prem-cta svg{width:18px;height:18px}
.prem-cta:hover{filter:brightness(1.07)}
.prem-cta:active{transform:scale(.96)}
@media(max-width:700px){
  .prem-card{flex-wrap:wrap}
  .prem-cta{width:100%;justify-content:center}
}

/* ==== hub-stats.css ==== */
/* ============================================================================
   NickDrops — hub-stats.css (v12.9.0)
   Экраны «Меню» (хаб), «Статистика», «Ещё» + общие data-row/empty-note.
   Правила: только var(--*) темы (красная/тёмная/белая работают сами),
   анимации только transform/opacity (60fps, дёшево на слабых телефонах),
   prefers-reduced-motion уважается.
   ============================================================================ */

/* ═══ МЕНЮ (хаб) ═══ */
.hub-hero h1{margin-bottom:10px}
.hub-hero p{margin-bottom:22px}

.hub-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:34px}
.hub-action{display:flex;align-items:center;gap:13px;min-height:76px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
/* v12.9.1: обе быстрые кнопки в одном спокойном стиле (владелец: яркая
   выбивалась) — акцент только у иконки */
body:not(.liquid-off) .hub-action{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.hub-action:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 40%,var(--line));box-shadow:var(--shadow)}
.hub-action:active{transform:translateY(0) scale(.99)}
.hub-action i{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}
.hub-action i svg{width:21px;height:21px}
.hub-action span{display:grid;min-width:0}
.hub-action b{font-size:15px;letter-spacing:-.02em;overflow-wrap:anywhere}
.hub-action small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:400px){
  .hub-action small{white-space:normal;line-height:1.3;overflow:visible;text-overflow:clip}
}

.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:34px}
.hub-card{position:relative;display:grid;align-content:start;gap:3px;padding:16px 15px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);text-align:left;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.hub-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--blue) 38%,var(--line));box-shadow:var(--shadow)}
.hub-card:active{transform:translateY(0) scale(.985)}
.hub-card i{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;margin-bottom:9px;color:#fff}
.hub-card i svg{width:19px;height:19px}
.hub-card b{font-size:14.5px;letter-spacing:-.02em}
.hub-card small{color:var(--muted);font-size:11px;line-height:1.35}
.hub-card em{position:absolute;top:14px;right:14px;font-style:normal;color:var(--subtle);font-weight:700;transition:transform .18s ease,right .18s ease}
.hub-card:hover em{right:11px;transform:translateX(2px)}
/* фирменные подложки иконок: чёрно-бело-красная гамма + мягкие различители */
.hub-card i.red{background:linear-gradient(135deg,#ff4a43,#c22620)}
.hub-card i.pink{background:linear-gradient(135deg,#ff6b81,#d84368)}
.hub-card i.gold{background:linear-gradient(135deg,#ffb02e,#e07b00)}
.hub-card i.violet{background:linear-gradient(135deg,#9a5cff,#6f2fd1)}
.hub-card i.cyan{background:linear-gradient(135deg,#2bb3d6,#0e7fa3)}
.hub-card i.blueish{background:linear-gradient(135deg,#4d8dff,#2b5fd0)}
.hub-card i.greenish{background:linear-gradient(135deg,#31c07a,#1c8a55)}
.hub-card i.gray{background:linear-gradient(135deg,#3a3a38,#141413)}

/* ═══ v12.9.2: карточка результата — теги-чипы + широкая «Занять» ═══ */
.res-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;align-items:center}
.res-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10.5px;font-weight:700;line-height:1.3}
.result-actions .claim-main{flex:2 1 130px;min-height:40px}
.result-actions .monitor-btn:not(.compare-btn){min-width:38px;padding:0 10px}
@media(max-width:700px){
  .result-actions .monitor-btn{min-width:44px}
}
/* аватар-фото (реальное фото TG) поверх букв */
.has-photo{color:transparent!important;background-color:var(--surface-soft)}
/* профиль-строка в «Ещё» */
.more-list .more-profile-row span b{font-size:15px}
.more-list .more-profile-row i.mini-avatar{width:34px;height:34px;border-radius:9px;font-size:13px}

/* ═══ v12.9.2: осциллограмма ядра в карточке статуса ═══ */
.core-wave{width:100%;max-width:190px;height:44px;margin-top:10px;display:block;opacity:.95}

.pulse-strip{display:flex;align-items:center;gap:10px;min-height:52px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:13px;color:var(--muted)}
.pulse-strip b{color:var(--text)}

/* ═══ v12.9.1: быстрые настройки на хабе — стеклянная 4-плитка ═══ */
.quick-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:34px}
.quick-settings button{min-height:54px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);text-align:left;transition:transform .16s ease,border-color .16s ease}
.quick-settings button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--blue) 35%,var(--line))}
.quick-settings button:active{transform:scale(.98)}
body:not(.liquid-off) .quick-settings button{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.quick-settings span{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700}
.quick-settings i{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--surface-soft);color:var(--muted)}
.quick-settings i svg{width:15px;height:15px}
.quick-settings b{margin-left:auto;color:var(--muted);font-size:12px;font-weight:750}

/* ═══ v12.9.1: Apple-glass доливка — глубже blur, блик сверху, тонкая светлая кромка.
   Только transform/opacity в анимациях; при liquid-off всё вырождается в плоское. ═══ */
body:not(.liquid-off) .composer-card,
body:not(.liquid-off) .quick-check-card,
body:not(.liquid-off) .chart-card,
body:not(.liquid-off) .pulse-strip,
body:not(.liquid-off) .bot-pulse article,
body:not(.liquid-off) .pulse-status,
body:not(.liquid-off) .hub-action,
body:not(.liquid-off) .hub-card{
  position:relative;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:blur(20px) saturate(1.2);
  -webkit-backdrop-filter:blur(20px) saturate(1.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), var(--shadow);
}
body:not(.liquid-off) .hub-card::before,
body:not(.liquid-off) .hub-action::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,0) 42%);
}
@media (prefers-reduced-motion:reduce){
  body:not(.liquid-off) .hub-action,body:not(.liquid-off) .quick-settings button{transition:none}
}
/* sticky restore: glass делал relative и ломал 100px отступ */
@media(min-width:981px){
  .quick-check-card{position:sticky!important;top:100px!important;margin-top:20px!important}
  body:not(.liquid-off) .quick-check-card{position:sticky!important;top:100px!important}
}

/* пульсирующая точка статуса (transform+opacity only) */
.pulse-dot{position:relative;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--green)}
.pulse-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid currentColor;color:inherit;animation:pulseRing 2.2s ease-out infinite}
.pulse-dot{color:var(--green)}@keyframes pulseRing{0%{transform:scale(.5);opacity:.85}80%,100%{transform:scale(1.25);opacity:0}}
.degraded .pulse-dot,.pulse-status.degraded .pulse-dot{background:var(--orange);color:var(--orange)}

/* ═══ СТАТИСТИКА ═══ */
.stat-personal article b{font-size:clamp(26px,4vw,36px);background:linear-gradient(135deg,var(--text),color-mix(in srgb,var(--blue) 65%,var(--text)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.chart-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:34px}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.chart-head b{font-size:15px;letter-spacing:-.02em}
.bars{display:flex;align-items:flex-end;gap:3px;height:120px;overflow:hidden;padding:0 2px}
.bars .bar{position:relative;flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:6px 6px 0 0;background:transparent}
.bars .bar i{display:block;width:100%;max-width:22px;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--blue) 30%,var(--surface-soft));min-height:4px;transform-origin:bottom;animation:barGrow .55s cubic-bezier(.2,.7,.3,1) backwards}
.bars .bar:nth-child(-n+7) i{animation-delay:.03s}
.bars .bar:nth-child(n+8):nth-child(-n+11) i{animation-delay:.09s}
.bars .bar:nth-child(n+12) i{animation-delay:.15s}
.bars .bar.today i{background:linear-gradient(180deg,var(--blue),color-mix(in srgb,var(--blue) 62%,#000))}
.bars .bar:hover i,.bars .bar:focus-visible i{background:color-mix(in srgb,var(--blue) 55%,var(--surface-soft))}
.bars-scale{margin-top:8px}
@keyframes barGrow{from{transform:scaleY(.04);opacity:.4}to{transform:scaleY(1);opacity:1}}

.bot-pulse{display:grid;grid-template-columns:200px 1fr;gap:12px;margin-bottom:34px}
.pulse-status{display:grid;align-content:start;gap:6px;padding:18px 16px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--green) 7%,var(--surface))}
.pulse-status.degraded{border-color:color-mix(in srgb,var(--orange) 40%,var(--line));background:color-mix(in srgb,var(--orange) 8%,var(--surface))}
.pulse-status b{display:flex;align-items:center;gap:9px;font-size:15.5px;letter-spacing:-.02em}
.pulse-status small{color:var(--muted)}
.pulse-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pulse-metrics article{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pulse-metrics span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.pulse-metrics b{display:block;font-size:24px;letter-spacing:-.04em;margin-bottom:9px}
.pulse-metrics small{color:var(--muted);font-size:11px}
.mini-bar{height:6px;border-radius:999px;background:var(--surface-soft);overflow:hidden;margin-bottom:7px}
.mini-bar em{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--green) 75%,var(--surface)),var(--green));transition:width .7s cubic-bezier(.2,.7,.3,1)}
.mini-bar.lat em{background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 60%,#000))}

/* ═══ ЕЩЁ ═══ */
.more-list button{min-height:64px}

/* ═══ Общее: строки данных (кейсы/дайджест/находки раньше были без стилей) ═══ */
.data-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.data-row b{font-size:14px;letter-spacing:-.01em}
.data-row small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
.empty-note{padding:16px;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:12px;text-align:center}

/* ═══ Адаптив ═══ */
@media (max-width:900px){
  .bot-pulse{grid-template-columns:1fr}
  .pulse-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:560px){
  .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pulse-metrics{grid-template-columns:1fr 1fr}
  .pulse-metrics article:last-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  .bars .bar i{animation:none}
  .pulse-dot::after{animation:none;opacity:0}
  .hub-action,.hub-card,.mini-bar em{transition:none}
}

/* v12.9.7 fix: «Точные настройки» провал 100px — sticky top липла в mobile (relative+top100) */
@media(max-width:980px){
  .quick-check-card{position:relative!important;top:auto!important;margin-top:16px!important}
  body:not(.liquid-off) .quick-check-card{position:relative!important;top:auto!important}
  /* Поиск: убрать лишний провал когда недавние скрыты — recent 22px уже достаточно */
  .recent-block{margin-top:12px!important}
}
/* v12.9.6 fix: текст не вылезает за края (оп залазит), кривые иконки */
.hub-card, .hub-action, .pulse-strip, .quick-settings button, .result-card, .data-item, .data-row, .settings-card button {
  min-width: 0;
  overflow: hidden;
}
.hub-card b, .hub-card small, .pulse-strip, .pulse-strip span, .pulse-strip b, .quick-settings span, .result-name b, .data-item b, .data-item small, .data-row b, .data-row small, .hub-action b, .hub-action small {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.hub-action span, .quick-settings span, .data-item > div, .data-row > div { min-width: 0; }
.pulse-strip { text-overflow: ellipsis; }
.pulse-strip #hubPulseText { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width:560px) {
  .pulse-strip #hubPulseText { white-space: normal; line-height: 1.35; }
}
/* иконки: ровный рендер, без размытия */
.hub-card i svg, .hub-action i svg, .quick-settings i svg, .settings-card i svg, .promo-head i svg {
  display: block;
  flex: 0 0 auto;
}
svg use { pointer-events: none; }
