/* Единый визуальный язык панели: клиенты, юристы, Studio, финансы и вход. */
/* тема: начало — СОБРАНО deploy/theme_build.py из service/theme.css, руками не править */
:root{--ground:#F6F4EF;--ink:#0A0A0A;--card:#FFFFFF;--muted:#5E5E5E;--line:#E5E1D6;--input:#CFCABC;--subtle:#EFECE3;--secondary:#EFECE3;--accent:#4C3FDC;--on-accent:#FFFFFF;--accent-soft:#ECEAFB;--accent-ink:#2E24A8;--alert:#B03A2E;--ring:#4C3FDC;--radius:0rem;--font:"ALS Hauss", "SF Pro Display", -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--chart-1:#4C3FDC;--chart-2:#F02E9F;--chart-3:#1F6B3A;--chart-4:#8A5610;--chart-5:#5E5E5E;--alert-soft:#F9E7E3;--warn:#8A5610;--warn-soft:#F6EBDA;--ok:#1F6B3A;--ok-soft:#E3F1E6;--bg:var(--ground);--mute:var(--muted);--acc:var(--accent);--bad:var(--alert);}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--ground:#121110;--ink:#F2F0EA;--card:#1B1A17;--muted:#A8A396;--line:#2E2B25;--input:#3A362E;--subtle:#26241F;--secondary:#26241F;--accent:#9C94FF;--on-accent:#0A0A0A;--accent-soft:#25223F;--accent-ink:#C9C4FF;--alert:#E2806F;--ring:#9C94FF;--chart-1:#9C94FF;--chart-2:#FF6FBE;--chart-3:#73C6AB;--chart-4:#D5A45D;--chart-5:#A8A396;--alert-soft:#2B1D1A;--warn:#D5A45D;--warn-soft:#2A2217;--ok:#73C6AB;--ok-soft:#162623;}}
:root[data-theme="dark"]{--ground:#121110;--ink:#F2F0EA;--card:#1B1A17;--muted:#A8A396;--line:#2E2B25;--input:#3A362E;--subtle:#26241F;--secondary:#26241F;--accent:#9C94FF;--on-accent:#0A0A0A;--accent-soft:#25223F;--accent-ink:#C9C4FF;--alert:#E2806F;--ring:#9C94FF;--chart-1:#9C94FF;--chart-2:#FF6FBE;--chart-3:#73C6AB;--chart-4:#D5A45D;--chart-5:#A8A396;--alert-soft:#2B1D1A;--warn:#D5A45D;--warn-soft:#2A2217;--ok:#73C6AB;--ok-soft:#162623;}
/* тема: конец */

/* Фирменный шрифт и общие правила вида (12.10.2026, тема «как сайт компании»).
   Селекторы с html впереди — сильнее правил внутри разделов (body.panel-sales h1 и т. п.),
   поэтому шрифт и фокус меняются во всех разделах без правки их файлов. */
@font-face{font-family:"ALS Hauss";src:url(/assets/als-hauss-1.2.ttf) format("truetype-variations"),
  url(/assets/als-hauss-1.2.ttf) format("truetype");font-weight:1 850;font-display:swap}
html body[class*="panel-"],html body[class*="panel-"] :is(input,select,textarea,button){font-family:var(--font)}
html body[class*="panel-"] :is(h1,h2,h3,h4),html body.panel-finance header b{
  font-family:var(--font);font-weight:600;letter-spacing:-.015em}
html body[class*="panel-"] th{font-family:var(--font);letter-spacing:.05em}
html body[class*="panel-"] :is(.num,td.num,.n,.v,.kpi .v){font-variant-numeric:tabular-nums}
html body[class*="panel-"] :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--ring);outline-offset:2px}
html body[class*="panel-"] ::selection{background:var(--accent-soft);color:var(--accent-ink)}
/* Цифры и подписи, которые разделы набирали моноширинным, — фирменным шрифтом с цифрами
   одной ширины: столбцы не дёргаются, а вид один. */
html body[class*="panel-"] :is(.cell b,.count,.num,.chip,.lbl,td.n,.n,small){font-family:var(--font);font-variant-numeric:tabular-nums}
/* Страница входа: цвета зашиты в самой странице — берём из темы. */
html body.panel-auth{background:var(--ground);color:var(--ink)}
html body.panel-auth :is(a.btn,button){background:var(--accent);color:var(--on-accent)}
html body.panel-auth :is(a.btn,button):hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink))}
html body.panel-auth :is(input,textarea){background:var(--card);border-color:var(--input);color:var(--ink)}
html body.panel-auth :is(label,small){color:var(--muted)}

/* Набор элементов в духе shadcn/ui — для новых экранов. Старые разделы живут на своих
   классах; переводить их не обязательно, цвета и шрифт к ним приходят из темы. */
.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.25rem;padding:.4rem .95rem;
  border:1px solid transparent;border-radius:var(--radius);font:inherit;font-size:.88rem;font-weight:600;line-height:1.2;
  cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .12s,border-color .12s,color .12s}
.ui-btn:disabled,.ui-btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
.ui-btn svg{width:1rem;height:1rem;flex:none}
.ui-btn.primary{background:var(--accent);color:var(--on-accent)}
.ui-btn.primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink))}
.ui-btn.secondary{background:var(--secondary);color:var(--ink)}
.ui-btn.secondary:hover{background:color-mix(in srgb,var(--secondary) 85%,var(--ink))}
.ui-btn.outline{background:var(--card);border-color:var(--input);color:var(--ink)}
.ui-btn.outline:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.ui-btn.ghost{background:transparent;color:var(--ink)}
.ui-btn.ghost:hover{background:var(--accent-soft);color:var(--accent-ink)}
.ui-btn.destructive{background:var(--alert);color:#fff}
.ui-btn.link{background:none;border:0;padding:0;min-height:0;color:var(--accent);font-weight:500}
.ui-btn.link:hover{text-decoration:underline}
.ui-btn.sm{min-height:1.85rem;padding:.25rem .65rem;font-size:.8rem}
.ui-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.08rem .5rem;border:1px solid var(--line);
  border-radius:var(--radius);font-size:.74rem;font-weight:600;background:var(--card);color:var(--muted);white-space:nowrap}
.ui-badge.primary{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink)}
.ui-badge.ok{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.ui-badge.warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}
.ui-badge.alert{background:var(--alert-soft);border-color:transparent;color:var(--alert)}
.ui-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.ui-input{width:100%;min-height:2.25rem;padding:.4rem .65rem;border:1px solid var(--input);border-radius:var(--radius);
  background:var(--card);color:var(--ink);font:inherit;font-size:.9rem}
.ui-input::placeholder{color:var(--muted)}
.ui-skeleton{background:linear-gradient(90deg,var(--subtle),var(--line),var(--subtle));background-size:200% 100%;
  animation:ui-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius);min-height:1em}
@keyframes ui-shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.ui-skeleton{animation:none}}
.ui-toast{position:fixed;right:1rem;bottom:1rem;z-index:50;max-width:24rem;padding:.75rem 1rem;background:var(--ink);
  color:var(--ground);border-radius:var(--radius);box-shadow:0 8px 28px rgba(10,10,10,.18);font-size:.9rem}
body.panel-home,body.panel-legal,body.panel-studio,body.panel-finance,body.panel-cubiccast,body.panel-auth{
  margin:0;background:var(--ground);color:var(--ink);
  font:15px/1.5 "Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}
body.panel-home h1,body.panel-home h2,body.panel-legal h1,body.panel-legal h2,
body.panel-studio h1,body.panel-studio h2,body.panel-finance h1,body.panel-finance h2,
body.panel-cubiccast h1,body.panel-cubiccast h2,body.panel-cubiccast h3,
body.panel-auth h1{
  font-family:"Iowan Old Style","Source Serif 4",Charter,Georgia,serif;
  font-weight:600;letter-spacing:-.012em;
}
body.panel-home .bar,body.panel-legal .bar,body.panel-studio .bar,body.panel-cubiccast .bar,body.panel-finance header{
  display:flex;align-items:center;justify-content:space-between;gap:.7rem 1.4rem;
  flex-wrap:wrap;border-bottom:1px solid var(--line);min-height:3.7rem;
}
body.panel-home .app,body.panel-studio .app{max-width:76rem}
body.panel-legal .app{max-width:64rem}
body.panel-home h1{font-size:1.35rem;margin:0}
body.panel-home .whoami,body.panel-legal .whoami,body.panel-studio .who{
  display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .8rem;
}
.service-link,body.panel-home a.legal,body.panel-home a.studio{
  display:inline-flex;align-items:center;min-height:1.95rem;padding:.25rem .65rem;
  border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);
  font-size:.82rem;font-weight:600;text-decoration:none;background:var(--card);
}
.service-link:hover,body.panel-home a.legal:hover,body.panel-home a.studio:hover{
  border-color:var(--accent);background:var(--accent-soft);color:var(--accent);
}
.service-link.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.service-link[hidden]{display:none}
body.panel-home .box,body.panel-home .filters,body.panel-home .nx,
body.panel-legal section,body.panel-legal .drop,body.panel-legal .act,body.panel-legal .btn,
body.panel-studio .panel,body.panel-studio .scroll,body.panel-studio .btn,
body.panel-finance .card,body.panel-finance .grid-t,body.panel-finance .btn,
body.panel-auth .box{border-radius:var(--radius)}
body.panel-finance .card{padding:1rem 1.1rem}
body.panel-finance .grid-t,body.panel-finance .tbl{overflow-x:auto}
body.panel-finance header{padding:1rem 1.5rem;justify-content:flex-start}
body.panel-finance header b{font-size:1.2rem;font-weight:600}
body.panel-finance header a{font-size:.85rem;color:var(--muted)}
body.panel-finance .finance-topbar-right{display:flex;align-items:center;gap:.55rem .8rem;flex-wrap:wrap;margin-left:auto}
body.panel-finance header .me{margin-left:0}
body.panel-finance .finance-tabs{display:flex;gap:.15rem;overflow-x:auto;white-space:nowrap;
 padding:0 1.5rem;border-bottom:1px solid var(--line);background:var(--card)}
body.panel-finance .finance-tabs a{display:inline-block;padding:.65rem .8rem;color:var(--muted);
 border:0;border-bottom:2px solid transparent;font-size:.9rem;text-decoration:none}
body.panel-finance .finance-tabs a:hover{color:var(--ink)}
body.panel-finance .finance-tabs a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
body.panel-finance main{padding:1.5rem 1.25rem 4rem}
body.panel-finance h1{font-size:1.35rem}
body.panel-finance h2{font-size:1.08rem}
body.panel-finance a:not(.btn){color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line)}
body.panel-finance a:not(.btn):hover{border-bottom-color:var(--accent)}
body.panel-finance button,body.panel-finance input,body.panel-finance select,
body.panel-finance textarea{border-radius:var(--radius)}
body.panel-finance input,body.panel-finance select,body.panel-finance textarea{
  background:var(--ground);color:var(--ink);border-color:var(--line);
}
body.panel-finance button:focus-visible,body.panel-finance input:focus-visible,
body.panel-finance select:focus-visible,body.panel-finance textarea:focus-visible,
body.panel-cubiccast button:focus-visible,body.panel-cubiccast input:focus-visible,
body.panel-home button:focus-visible,body.panel-home input:focus-visible,
body.panel-legal button:focus-visible,body.panel-studio button:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;
}
body.panel-finance button:not(:disabled):hover,body.panel-finance .btn:hover{filter:brightness(1.06)}
body.panel-finance .btn.pri,body.panel-finance button:not(.btn):not(.del):not(.chip):not([data-t]):not([data-sf]){
  color:var(--on-accent);
}
body.panel-finance .tbl th,body.panel-studio th,body.panel-home th{
  font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:.68rem;
  letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:var(--muted);
}
body.panel-finance .tbl tbody tr:hover,body.panel-studio tbody tr:hover{background:var(--accent-soft)}
body.panel-finance td.n,body.panel-finance .n,body.panel-studio .num,body.panel-home .num{
  font-variant-numeric:tabular-nums;
}
body.panel-finance .tag,body.panel-studio .chip,body.panel-home .chip{border-radius:var(--radius)}
body.panel-finance .t-ошибка,body.panel-finance .err{background:var(--alert-soft);color:var(--alert)}
body.panel-finance .t-замечание{background:var(--warn-soft);color:var(--warn)}
body.panel-auth .box{background:var(--card);border-color:var(--line)}
body.panel-auth input,body.panel-auth textarea,body.panel-auth button,body.panel-auth a.btn{
  border-radius:var(--radius)}
@media(max-width:760px){
  body.panel-finance header{padding:.85rem 1rem}
  body.panel-finance .finance-topbar-right{margin-left:0;width:100%}
  body.panel-finance .finance-tabs{padding:0 1rem}
  body.panel-finance main{padding:1.15rem 1rem 3rem}
  body.panel-home .app,body.panel-legal .app,body.panel-studio .app,body.panel-cubiccast .app{padding-left:1rem;padding-right:1rem}
}
