/* CODEAM — мини-приложение. Тёмный интерфейс со «стеклом»: фирменные шрифты и слоновая кость на чёрном. */
@font-face{font-family:Unbounded;font-weight:400;font-display:swap;src:url(fonts/unbounded-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Unbounded;font-weight:400;font-display:swap;src:url(fonts/unbounded-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Unbounded;font-weight:600;font-display:swap;src:url(fonts/unbounded-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Unbounded;font-weight:600;font-display:swap;src:url(fonts/unbounded-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/manrope-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/manrope-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(fonts/manrope-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(fonts/manrope-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212}

:root{
  --bg:#060606;
  --ivory:#F4F2EA;
  --ink:#101010;
  --t1:#F4F2EA;
  --t2:rgba(244,242,234,.66);
  --t3:rgba(244,242,234,.42);
  --line:rgba(255,255,255,.09);
  --glass:rgba(255,255,255,.055);
  --glass-2:rgba(255,255,255,.085);
  --glass-3:rgba(255,255,255,.13);
  --stroke:rgba(255,255,255,.11);
  --hi:inset 0 1px 0 rgba(255,255,255,.09);
  --blur:blur(26px) saturate(170%);
  --r-xl:28px;--r-l:22px;--r-m:16px;--r-s:12px;
  --s-new:#F4F2EA;--s-work:#8FB0FF;--s-kp:#E9C46F;--s-won:#5BD08A;--s-lost:#F0715F;
  --ok:#5BD08A;--err:#F0715F;
  --safe-t:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));
  --safe-b:max(env(safe-area-inset-bottom,0px),calc(var(--tg-safe-area-inset-bottom,0px) + var(--tg-content-safe-area-inset-bottom,0px)));
  --tab-h:66px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--t1);overflow-x:hidden;max-width:100%}
body{font:15px/1.5 Manrope,system-ui,-apple-system,sans-serif;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;letter-spacing:.005em}
button,input,textarea,select{font:inherit;color:inherit}
a{color:inherit}
img{display:block;max-width:100%}

/* фон: мягкий свет за стеклом и зерно */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--bg)}
.bg i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55}
.bg i:nth-child(1){width:70vw;height:70vw;left:-25vw;top:-20vw;background:radial-gradient(circle,rgba(244,242,234,.16),transparent 70%)}
.bg i:nth-child(2){width:80vw;height:80vw;right:-35vw;top:35vh;background:radial-gradient(circle,rgba(150,160,190,.14),transparent 70%)}
.bg i:nth-child(3){width:60vw;height:60vw;left:10vw;bottom:-30vw;background:radial-gradient(circle,rgba(244,226,200,.08),transparent 70%)}
.bg::after{content:"";position:absolute;inset:0;background:url(media/grain.png);opacity:.035;mix-blend-mode:overlay}

/* каркас */
#app{max-width:640px;margin:0 auto;padding:var(--safe-t) 16px calc(var(--tab-h) + 28px + var(--safe-b));min-height:100vh}
#app.no-tabs{padding-bottom:calc(32px + var(--safe-b))}
.view{animation:in .38s var(--ease) both}
@keyframes in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.view.from-r{animation-name:in-r}.view.from-l{animation-name:in-l}
@keyframes in-r{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes in-l{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 6px}
.logo{height:22px;width:auto;opacity:.95}
.hello{font-size:13px;color:var(--t2)}
.h2row{margin:28px 0 12px;gap:12px}.h2row h2{margin:0}
.link{border:0;background:none;color:var(--t2);font:600 13px Manrope;cursor:pointer;padding:4px 0}
.card.next{border-color:rgba(244,242,234,.22)}
h1,.h1{font:600 24px/1.14 Unbounded,sans-serif;letter-spacing:-.01em;margin:14px 0 6px;overflow-wrap:anywhere;hyphens:auto}
h2,.h2{font:600 17px/1.2 Unbounded,sans-serif;margin:28px 0 12px;letter-spacing:-.005em}
h3{font:600 15px/1.3 Manrope,sans-serif;margin:0 0 4px}
.sub{color:var(--t2);margin:0 0 6px}
.cap{font:600 11px/1.2 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.muted{color:var(--t2)}.dim{color:var(--t3)}.small{font-size:13px}.tiny{font-size:12px}
.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
.stack>*+*{margin-top:12px}
.sp{height:12px}.sp2{height:24px}
.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rich b{font-weight:700;color:var(--t1)} .rich{color:var(--t2)} .rich a{color:var(--t1);text-decoration:underline;text-underline-offset:3px}

/* стекло */
.glass,.card{background:var(--glass);border:1px solid var(--stroke);box-shadow:var(--hi),0 10px 40px rgba(0,0,0,.35);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-radius:var(--r-l)}
.card{padding:16px}
.card.tap,.tap{cursor:pointer;transition:transform .18s var(--ease),background .2s}
.tap:active{transform:scale(.985);background:var(--glass-2)}
.list{padding:4px 0}
.li{display:flex;align-items:center;gap:12px;padding:13px 16px;position:relative;cursor:pointer}
.li+.li::before{content:"";position:absolute;left:16px;right:0;top:0;border-top:1px solid var(--line)}
.li:active{background:rgba(255,255,255,.04)}
.li .chev{opacity:.4;width:16px;height:16px}

/* иконки — фирменные SVG через маску, цвет — currentColor */
.ic{display:inline-block;width:20px;height:20px;flex:none;background:currentColor;-webkit-mask:var(--u) center/contain no-repeat;mask:var(--u) center/contain no-repeat}
.ic.s{width:16px;height:16px}.ic.l{width:26px;height:26px}
.ico-box{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--glass-2);border:1px solid var(--stroke);flex:none}

/* кнопки */
.btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:var(--r-m);font:600 14px/1 Unbounded,sans-serif;letter-spacing:.01em;transition:transform .15s var(--ease),opacity .2s,background .2s;text-decoration:none;user-select:none}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.primary{background:var(--ivory);color:var(--ink);box-shadow:0 8px 30px rgba(244,242,234,.16)}
.btn.glassy{background:var(--glass-2);border:1px solid var(--stroke);color:var(--t1);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--hi)}
.btn.ghost{background:transparent;color:var(--t2);min-height:44px}
.btn.danger{background:rgba(240,113,95,.12);color:var(--err);border:1px solid rgba(240,113,95,.25)}
.btn.block{width:100%}
.btn.sm{min-height:38px;padding:0 14px;font-size:12px;border-radius:12px}
.btns{display:grid;gap:10px}
.btns.two{grid-template-columns:1fr 1fr}
.btns.two .btn{font-size:12px;padding:0 10px;line-height:1.2}

/* чипы и метки */
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 4px;margin:0 -16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--stroke);background:var(--glass);color:var(--t2);padding:8px 14px;border-radius:999px;font:600 13px/1 Manrope;cursor:pointer;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);white-space:nowrap}
.chip.on{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.chip .n{opacity:.6;margin-left:4px}
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:600 11px/1.3 Manrope;letter-spacing:.04em;background:var(--glass-2);color:var(--t2);border:1px solid var(--stroke)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font:700 11px/1.3 Manrope;letter-spacing:.02em;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-new{color:var(--s-new);background:rgba(244,242,234,.1)}
.st-work{color:var(--s-work);background:rgba(143,176,255,.12)}
.st-kp{color:var(--s-kp);background:rgba(233,196,111,.12)}
.st-won{color:var(--s-won);background:rgba(91,208,138,.12)}
.st-lost{color:var(--s-lost);background:rgba(240,113,95,.12)}
.badge{display:inline-block;min-width:8px;padding:2px 7px;border-radius:999px;font:700 10px/1.4 Manrope;background:rgba(240,113,95,.16);color:var(--err)}
.badge.warn{background:rgba(233,196,111,.15);color:var(--s-kp)}

/* нижняя панель вкладок — плавающая капсула */
.tabs{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(10px + var(--safe-b));z-index:20;display:flex;gap:2px;padding:6px;width:min(calc(100% - 24px),520px);border-radius:26px;background:rgba(22,22,22,.62);border:1px solid var(--stroke);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);box-shadow:var(--hi),0 16px 50px rgba(0,0,0,.55)}
.tabs[hidden]{display:none}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 6px;border-radius:20px;color:var(--t3);font:600 10.5px/1 Manrope;cursor:pointer;border:0;background:none;transition:color .2s,background .25s var(--ease)}
.tab.on{color:var(--t1)}
.tab-ind{position:absolute;left:0;top:6px;bottom:6px;border-radius:20px;background:rgba(255,255,255,.09);pointer-events:none;transition:opacity .25s}
.tabs.ready .tab-ind{transition:transform .45s cubic-bezier(.34,1.4,.5,1),width .45s cubic-bezier(.34,1.4,.5,1),opacity .25s}
.tab-ind.off{opacity:0}
.tab.pop .ic{animation:pop .45s cubic-bezier(.34,1.6,.5,1)}
@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.tab .ic{width:22px;height:22px}
.tab{position:relative}
.tab.center,.tab.center.on{background:none}
.tab.center .ic{color:var(--t2)}
.tab.center::before{content:"";position:absolute;top:-22px;left:50%;width:48px;height:48px;margin-left:-24px;border-radius:50%;background:rgba(36,36,36,.92);border:1px solid var(--stroke);box-shadow:var(--hi),0 8px 24px rgba(0,0,0,.45);transition:background .25s var(--ease)}
.tab.center .ic{position:relative;width:28px;height:28px;margin-top:-20px;margin-bottom:14px}
.tab.center::before{transform:scale(.94)}
.tab.center.on::before{background:var(--t1);transform:scale(1)}
.tabs.ready .tab.center::before{transition:background .3s var(--ease),transform .45s cubic-bezier(.34,1.6,.5,1)}
.tab.center.on .ic{color:var(--bg)}
.tab span{position:relative}
.tab .dot{position:absolute;top:6px;left:calc(50% + 6px);width:8px;height:8px;border-radius:50%;background:var(--s-kp);box-shadow:0 0 0 2px rgba(22,22,22,.9)}

/* шапка экрана с кнопкой назад (вне Telegram) */
.nav{display:flex;align-items:center;gap:8px;padding:14px 0 0;min-height:44px}
.back{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--t2);font:600 14px Manrope;cursor:pointer;padding:6px 8px 6px 0}

/* главная */
.hero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:22px 20px 20px;margin-top:8px}
.hero .star{position:absolute;right:18px;top:18px;width:22px;height:22px;opacity:.9}
.hero h1{margin-top:4px;font-size:22px;padding-right:28px}
.hero .rich{margin:8px 0 16px}
.cta-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.cta-row .btn.primary{font-size:12.5px;padding:0 14px;white-space:nowrap}
.view{min-width:0;overflow-wrap:break-word}
.resume{display:flex;align-items:center;gap:14px}
.ring{--p:0;width:46px;height:46px;border-radius:50%;flex:none;background:conic-gradient(var(--ivory) calc(var(--p)*1%),rgba(255,255,255,.1) 0);display:grid;place-items:center;font:600 11px Unbounded}
.ring::before{content:"";position:absolute}
.ring span{width:36px;height:36px;border-radius:50%;background:#121212;display:grid;place-items:center}
.hscroll{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 16px 8px;margin:0 -16px;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
@media (hover:hover) and (pointer:fine){.hscroll{cursor:grab}}
.hscroll.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}
.hscroll.dragging *{pointer-events:none}
.hscroll img{-webkit-user-drag:none;user-select:none}
.case-mini{flex:none;width:62%;max-width:260px;scroll-snap-align:start;border-radius:var(--r-l);overflow:hidden;position:relative;cursor:pointer;border:1px solid var(--stroke);background:#111}
.case-mini img{aspect-ratio:4/5;width:100%;object-fit:cover}
.case-mini .cm-t{position:absolute;left:0;right:0;bottom:0;padding:40px 12px 12px;background:linear-gradient(to top,rgba(0,0,0,.85),transparent)}
.case-mini .cm-t b{display:block;font:600 13px/1.2 Unbounded}
.case-mini .cm-t span{font-size:12px;color:var(--t2)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.svc{padding:14px;min-height:118px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.svc b{font:600 14px/1.3 Manrope}
.banner{position:relative;border-radius:var(--r-l);overflow:hidden;cursor:pointer;border:1px solid var(--stroke)}
.banner img{width:100%;aspect-ratio:1586/992;object-fit:cover}

/* проекты */
.case-card{border-radius:var(--r-xl);overflow:hidden;cursor:pointer}
.case-card img{width:100%;aspect-ratio:4/5;object-fit:cover;background:#111}
.case-card .cc-b{padding:14px 16px 16px}
.result{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-m);background:rgba(244,242,234,.07);border:1px solid rgba(244,242,234,.14)}
.result .ic{margin-top:2px}
.points{list-style:none;padding:0;margin:0}
.points li{position:relative;padding:0 0 10px 22px;color:var(--t2)}
.points li::before{content:"";position:absolute;left:2px;top:9px;width:10px;height:1.5px;background:var(--ivory)}
.photo{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--stroke);margin-top:8px}
.photo img{width:100%;object-fit:cover}

/* бриф */
.qwrap{min-height:calc(100vh - 40px - var(--safe-t));display:flex;flex-direction:column;padding-top:12px}
.progress{height:4px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.progress i{display:block;height:100%;background:var(--ivory);border-radius:4px;transition:width .4s var(--ease)}
.qhead{display:flex;justify-content:space-between;align-items:center;margin:14px 0 4px}
.qtext{overflow-wrap:anywhere;font:600 20px/1.28 Unbounded,sans-serif;letter-spacing:-.01em;margin:12px 0 8px}
.qhint{color:var(--t2);font-size:14px;margin:0 0 6px}
.opts{display:grid;gap:9px;margin-top:16px}
.opt{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:var(--r-m);background:var(--glass);border:1px solid var(--stroke);cursor:pointer;text-align:left;transition:all .18s var(--ease);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);font-weight:600;width:100%}
.opt:active{transform:scale(.985)}
.opt .box{width:22px;height:22px;border-radius:7px;border:1.5px solid rgba(255,255,255,.3);flex:none;display:grid;place-items:center;transition:all .18s}
.opt.radio .box{border-radius:50%}
.opt.on{background:rgba(244,242,234,.12);border-color:rgba(244,242,234,.5)}
.opt.on .box{background:var(--ivory);border-color:var(--ivory)}
.opt.on .box::after{content:"";width:10px;height:6px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg) translate(1px,-1px)}
.field{width:100%;border-radius:var(--r-m);background:rgba(255,255,255,.05);border:1px solid var(--stroke);padding:15px 16px;outline:none;transition:border .2s,background .2s;resize:none}
.field:focus{border-color:rgba(244,242,234,.45);background:rgba(255,255,255,.07)}
textarea.field{min-height:130px;line-height:1.5}
.field::placeholder{color:var(--t3)}
.qfoot{margin-top:auto;padding:18px 0 calc(12px + var(--safe-b));display:grid;gap:8px;position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 70%,transparent)}
.review-sec{margin-top:20px}
.review-item{padding:12px 16px;cursor:pointer}
.review-item+.review-item{border-top:1px solid var(--line)}
.review-item .q{font-size:13px;color:var(--t3)}
.review-item .a{margin-top:2px;white-space:pre-wrap;word-break:break-word}
.review-item .a.empty{color:var(--t3);font-style:italic}
.done-star{width:64px;height:64px;margin:40px auto 10px;color:var(--ivory);animation:spin 1.2s var(--ease) both}
@keyframes spin{from{transform:rotate(-90deg) scale(.4);opacity:0}to{transform:none;opacity:1}}

/* заявки клиента */
.steps{display:flex;gap:4px;margin:12px 0 4px}
.steps i{flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.1)}
.steps i.on{background:var(--ivory)}
.steps.lost i.on{background:var(--err)}
.timeline{position:relative;margin:6px 0 0;padding-left:18px}
.timeline::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:var(--line)}
.tl{position:relative;padding:4px 0 10px}
.tl::before{content:"";position:absolute;left:-18px;top:10px;width:9px;height:9px;border-radius:50%;background:#1b1b1b;border:1.5px solid var(--t3)}
.tl:first-child::before{background:var(--ivory);border-color:var(--ivory)}
.mat{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);cursor:pointer}
.mat:first-child{border-top:0}
.mat .box{width:22px;height:22px;border-radius:7px;border:1.5px solid rgba(255,255,255,.3);flex:none;display:grid;place-items:center;font-size:12px}
.mat.done .box{background:var(--ok);border-color:var(--ok);color:#06210f}
.mat.studio .box{background:var(--glass-3);border-color:transparent}
.mat.wait .box{border-color:var(--s-kp)}

/* сводка студии */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kpi{padding:14px 14px 12px}
.kpi .v{font:600 22px/1.15 Unbounded;margin-top:6px;letter-spacing:-.01em}
.kpi .d{font-size:12px;color:var(--t3);margin-top:2px}
.bars{display:flex;align-items:flex-end;gap:10px;height:140px;padding-top:10px}
.bars .b{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bars .col{width:100%;display:flex;align-items:flex-end;gap:3px;height:100%}
.bars .col i{flex:1;border-radius:6px 6px 3px 3px;background:rgba(244,242,234,.22);min-height:3px;transition:height .6s var(--ease)}
.bars .col i.w{background:var(--ivory)}
.bars .lb{font-size:11px;color:var(--t3)}
.legend{display:flex;gap:14px;font-size:12px;color:var(--t2)}
.legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:rgba(244,242,234,.22)}
.legend i.w{background:var(--ivory)}
.stack-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;gap:2px;margin:12px 0}
.stack-bar i{display:block;height:100%}
.brow{display:flex;gap:12px;align-items:center;padding:13px 16px;cursor:pointer;position:relative}
.brow+.brow::before{content:"";position:absolute;left:16px;right:0;top:0;border-top:1px solid var(--line)}
.brow:active{background:rgba(255,255,255,.04)}
.seq{font:600 12px/1 Unbounded;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--glass-2);border:1px solid var(--stroke);flex:none}
.search{display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid var(--stroke);margin:10px 0}
.search input{flex:1;background:none;border:0;outline:none;padding:13px 0}
.seg{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:4px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--stroke)}
.seg button{border:0;background:none;color:var(--t2);font:700 11px/1.2 Manrope;padding:10px 2px;border-radius:12px;cursor:pointer;transition:all .2s var(--ease)}
.seg button.on{background:var(--ivory);color:var(--ink)}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.act{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border-radius:var(--r-m);background:var(--glass);border:1px solid var(--stroke);cursor:pointer;font:600 11.5px/1.25 Manrope;text-align:center;color:var(--t1);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
.act:active{transform:scale(.97);background:var(--glass-2)}
.act.hl{background:rgba(244,242,234,.12);border-color:rgba(244,242,234,.35)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
.kv dt{color:var(--t3)}.kv dd{margin:0;word-break:break-word}
.note{padding:12px 14px;border-radius:var(--r-s);background:rgba(255,255,255,.04);margin-top:8px}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.thumbs img{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--stroke);cursor:pointer}
.health{--p:0;--c:var(--ivory);width:64px;height:64px;border-radius:50%;flex:none;background:conic-gradient(var(--c) calc(var(--p)*1%),rgba(255,255,255,.09) 0);display:grid;place-items:center}
.health span{width:52px;height:52px;border-radius:50%;background:#101010;display:grid;place-items:center;font:600 15px Unbounded}
.health.big{width:112px;height:112px}.health.big span{width:96px;height:96px;font-size:26px}
.hbar{display:grid;grid-template-columns:110px 1fr 34px;align-items:center;gap:10px;padding:6px 0;font-size:13px}
.hbar .tr{height:6px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.hbar .tr i{display:block;height:100%;border-radius:4px;background:var(--ivory)}
.spark{width:100%;height:46px}

/* шторка, всплывашки */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40;animation:fade .25s both;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-width:640px;margin:0 auto;padding:10px 16px calc(18px + var(--safe-b));border-radius:28px 28px 0 0;background:rgba(24,24,24,.86);border:1px solid var(--stroke);border-bottom:0;backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);animation:up .35s var(--ease) both;max-height:calc(88vh - var(--safe-t));overflow:auto}
.sheet .grab{width:40px;height:5px;border-radius:3px;background:rgba(255,255,255,.2);margin:0 auto 12px}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.toast{position:fixed;left:50%;top:calc(12px + max(env(safe-area-inset-top,0px),var(--safe-t)));transform:translateX(-50%);z-index:60;padding:12px 18px;border-radius:16px;background:rgba(30,30,30,.86);border:1px solid var(--stroke);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);font-weight:600;font-size:14px;max-width:calc(100% - 32px);box-shadow:0 12px 40px rgba(0,0,0,.5);animation:drop .35s var(--ease) both}
.toast.err{color:#ffd9d3;border-color:rgba(240,113,95,.35)}
@keyframes drop{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}
.faq-a{display:none;padding:0 16px 14px;color:var(--t2)}
.faq.open .faq-a{display:block}
.faq.open .ic.rot{transform:rotate(180deg)}
.ic.rot{transition:transform .25s var(--ease)}
.empty{padding:40px 20px;text-align:center;color:var(--t3)}
.skeleton{border-radius:var(--r-l);background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.08),rgba(255,255,255,.04));background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{to{background-position:-200% 0}}
.gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:24px}
.divider{height:1px;background:var(--line);margin:14px 0}
.switch{width:46px;height:28px;border-radius:999px;background:rgba(255,255,255,.14);position:relative;transition:background .2s;flex:none;border:0;cursor:pointer}
.switch::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .25s var(--ease)}
.switch.on{background:var(--ok)}
.switch.on::after{transform:translateX(18px)}
@media (min-width:560px){.case-mini{width:40%}.kpis{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* чат со студией */
.msgs{display:flex;flex-direction:column;gap:6px;padding:8px 0 calc(84px + var(--safe-b))}
.msgs .day{align-self:center;margin:10px 0 4px;font-size:11.5px;color:var(--t3)}
.msg{max-width:82%;padding:9px 12px 7px;border-radius:18px;font-size:14.5px;line-height:1.4;overflow-wrap:anywhere;position:relative}
.msg.them{align-self:flex-start;background:var(--glass-2);border:1px solid var(--stroke);border-bottom-left-radius:6px}
.msg.me{align-self:flex-end;background:var(--t1);color:var(--bg);border-bottom-right-radius:6px}
.msg img{width:220px;max-width:100%;border-radius:12px;margin:-2px -4px 6px;cursor:zoom-in}
.msg .tm{display:block;text-align:right;font-size:10.5px;opacity:.55;margin-top:2px}
.chatbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:flex-end;gap:8px;max-width:640px;margin:0 auto;padding:10px 16px calc(10px + var(--safe-b));background:rgba(10,10,10,.82);border-top:1px solid var(--stroke);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.chatbar .field{min-height:46px;max-height:140px;resize:none;padding-top:12px;padding-bottom:12px}
.chatbar .btn{min-height:46px;width:46px;padding:0;flex:none;border-radius:50%}
