/* Крыша над CRM Кати - в одном языке с CRM консультаций, практикума и «Сиренки»:
   кремовый фон с тёплым свечением, тёмное сливовое меню, Forum в заголовках, Plex в тексте.
   Цвета - токены design-system/tokens.md. */
:root{
  --bg:#F4ECE6; --surface:#FFFFFF; --surface-2:#FBF6F2; --surface-3:#F6EDE7;
  --ink:#211641; --ink-2:#5A4A63; --ink-3:#8E7E89; --ink-4:#A99AA4;
  --line:#EBDFD8; --line-2:#E2D2CB;
  --plum-1:#1E153E; --plum-2:#410E63; --purple:#8F2778; --peach:#FF9668;
  --grad:linear-gradient(135deg,#410E63 0%,#8F2778 52%,#FF9668 100%);
  --grad-soft:linear-gradient(135deg,rgba(143,39,120,.12),rgba(255,150,104,.12));
  --grad-side:linear-gradient(180deg,#1E153E 0%,#241845 50%,#3C0B59 100%);
  --ok:#15803D; --ok-bg:#E7F7EC; --bad:#C0392B; --bad-bg:#FBEAE7; --warn:#B45309;
  --r-sm:10px; --r:13px; --r-lg:18px; --r-xl:24px; --r-pill:999px;
  --shadow:0 6px 22px rgba(33,22,65,.07);
  --shadow-card:0 1px 0 rgba(255,255,255,.85) inset, 0 14px 34px -16px rgba(33,22,65,.20), 0 1px 2px rgba(33,22,65,.05);
  --shadow-lg:0 22px 60px rgba(33,22,65,.16);
  --ring:0 0 0 3px rgba(143,39,120,.16);
  --ease:cubic-bezier(.22,1,.36,1);
  --side:244px; --top:56px;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --serif:"Forum",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; min-height:100dvh; font-family:var(--sans); color:var(--ink); line-height:1.5; font-size:14px;
  background:
    radial-gradient(72% 52% at 96% -8%, rgba(255,150,104,.30), transparent 66%),
    radial-gradient(62% 48% at -12% 4%, rgba(143,39,120,.22), transparent 70%),
    radial-gradient(82% 60% at 50% 118%, rgba(65,14,99,.10), transparent 72%),
    var(--bg);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent;
}
a{color:inherit; text-decoration:none}
button,input{font:inherit; color:inherit}
h1,h2,h3{margin:0; font-weight:400; letter-spacing:-.015em; text-wrap:balance}
p{margin:0; text-wrap:pretty}
:focus-visible{outline:2px solid var(--purple); outline-offset:2px}
.label{font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}

/* кнопки */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:0 18px;
  border-radius:var(--r-pill); border:1px solid var(--line-2); background:var(--surface); font-weight:500; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), filter .25s var(--ease)}
.btn:hover{transform:translateY(-1px); box-shadow:var(--shadow)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--grad); color:#fff; border-color:transparent; box-shadow:0 10px 24px -12px rgba(143,39,120,.55)}
.btn-primary:hover{filter:saturate(1.08)}
.input{width:100%; min-height:46px; padding:0 14px; border-radius:var(--r); border:1px solid var(--line-2); background:var(--surface);
  transition:box-shadow .2s var(--ease), border-color .2s var(--ease)}
.input:focus{outline:none; border-color:var(--purple); box-shadow:var(--ring)}
.chip{display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:var(--r-pill);
  background:var(--grad-soft); color:var(--purple); font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase}

/* ---------- вход ---------- */
.login{min-height:100dvh; display:grid; place-items:center; padding:24px 16px}
.login-card{width:min(400px,100%); padding:38px 32px 34px; border-radius:var(--r-xl); background:var(--surface);
  box-shadow:var(--shadow-lg); display:flex; flex-direction:column; gap:12px; text-align:center}
.login-sign{display:block; margin:0 auto 6px; filter:drop-shadow(0 8px 18px rgba(143,39,120,.25))}
.login-title{font-family:var(--serif); font-size:34px; line-height:1.1}
.login-sub{color:var(--ink-3); margin-bottom:14px}
.login-card .label{text-align:left}
.login-error{color:var(--bad); background:var(--bad-bg); border-radius:var(--r-sm); padding:8px 12px; font-size:13px}
.login-card .btn{margin-top:6px}

/* ---------- боковое меню (компьютер) ---------- */
.sidebar{display:none}
.topbar{position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; height:var(--top); padding:0 16px;
  background:rgba(244,236,230,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line)}
.topbar-brand{display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:20px}
.topbar-link{color:var(--ink-3); font-size:13px}
.content{padding:22px 16px 48px; max-width:1180px; margin:0 auto}
@media (min-width:920px){
  .topbar{display:none}
  .sidebar{display:flex; flex-direction:column; position:fixed; inset:0 auto 0 0; width:var(--side); z-index:30; overflow:hidden;
    background:var(--grad-side); color:rgba(243,234,244,.9); border-right:1px solid rgba(255,255,255,.06); box-shadow:10px 0 50px -28px rgba(0,0,0,.55)}
  .sidebar::after{content:""; position:absolute; left:-90px; bottom:-70px; width:260px; height:260px; border-radius:50%; pointer-events:none;
    background:radial-gradient(circle, rgba(143,39,120,.30), transparent 65%); filter:blur(70px)}
  .sidebar>*{position:relative; z-index:1}
  .content{margin-left:var(--side); padding:40px 44px 64px}
}
.sb-brand{display:flex; align-items:center; gap:13px; padding:30px 22px 26px}
.sb-brand-text{display:flex; flex-direction:column; line-height:1.1}
.sb-brand-name{font-family:var(--serif); font-size:22px; color:#fff}
.sb-brand-sub{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(243,234,244,.5)}
.sb-nav{display:flex; flex-direction:column; gap:4px; padding:0 12px}
.sb-item{display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:var(--r-sm); color:rgba(243,234,244,.78);
  transition:background .2s var(--ease), color .2s var(--ease)}
.sb-item:hover{background:rgba(255,255,255,.07); color:#fff}
.sb-item.is-active{background:rgba(255,255,255,.12); color:#fff}
.sb-item.is-off{opacity:.45}
.sb-arrow{margin-left:auto; font-size:12px; opacity:.5}
.sb-dot{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.28); flex:none; transition:background .3s}
.sb-item.is-ok .sb-dot{background:#4ADE80; box-shadow:0 0 0 4px rgba(74,222,128,.15)}
.sb-item.is-bad .sb-dot{background:#F87171; box-shadow:0 0 0 4px rgba(248,113,113,.15)}
.sb-foot{margin-top:auto; padding:12px 12px 20px; border-top:1px solid rgba(255,255,255,.08)}

/* ---------- главная ---------- */
.page-head{margin-bottom:22px}
.page-title{font-family:var(--serif); font-size:clamp(30px,4vw,42px); line-height:1.05}
.page-sub{color:var(--ink-3); margin-top:6px}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px}
.card{position:relative; display:flex; flex-direction:column; gap:10px; padding:20px 20px 18px; border-radius:var(--r-lg);
  background:var(--surface); box-shadow:var(--shadow-card); border:1px solid rgba(255,255,255,.6);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease)}
.card:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg)}
.card-off{background:var(--surface-2); opacity:.78}
.card-top{display:flex; align-items:center; justify-content:space-between; gap:10px}
.card-mark{display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--grad); color:#fff;
  font-family:var(--serif); font-size:22px; line-height:1; box-shadow:0 10px 22px -12px rgba(143,39,120,.6)}
.card-off .card-mark{background:var(--line-2); color:var(--ink-3); box-shadow:none}
.card-title{font-family:var(--serif); font-size:26px; line-height:1.1}
.card-what{color:var(--ink-2); font-size:13.5px; min-height:3.3em}
.card-foot{display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:8px; flex-wrap:wrap}
.card-note{color:var(--ink-3); font-size:12px}

/* статус */
.status{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:11px; color:var(--ink-3); white-space:nowrap}
.status-dot{width:8px; height:8px; border-radius:50%; background:var(--ink-4); transition:background .3s}
.card.is-ok .status-dot{background:var(--ok); box-shadow:0 0 0 4px rgba(21,128,61,.12)}
.card.is-ok .status-text{color:var(--ok)}
.card.is-bad .status-dot{background:var(--bad); box-shadow:0 0 0 4px rgba(192,57,43,.12)}
.card.is-bad .status-text{color:var(--bad)}
.card:not(.is-ok):not(.is-bad):not(.card-off) .status-dot{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

/* общая касса - скоро */

@media (prefers-reduced-motion: reduce){ *{transition:none!important; animation:none!important} }

/* ======================= касса ======================= */
.sb-nav .sb-item{font-size:15px}
.sb-crm{display:flex; flex-direction:column; gap:2px; padding:18px 12px 0}
.sb-label{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(243,234,244,.45); padding:0 12px 8px}
.sb-item-sm{padding:8px 12px; font-size:13px}
.tabbar{display:flex; gap:4px; padding:8px 12px 0; overflow-x:auto; position:sticky; top:var(--top); z-index:19; background:rgba(244,236,230,.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line)}
.tab{flex:none; padding:8px 12px; border-radius:var(--r-pill); font-size:13px; color:var(--ink-2)}
.tab.is-active{background:var(--ink); color:#fff}
@media (min-width:920px){ .tabbar{display:none} }
.page-head-row{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap}
.head-actions{display:flex; gap:8px}
.month-nav{display:flex; align-items:center; gap:6px}
.month-name{font-family:var(--serif); font-size:24px; min-width:190px; text-align:center}
.btn-ghost{background:transparent; border-color:var(--line-2)}
.btn-sm{min-height:34px; padding:0 12px; font-size:13px}
.input-sm{min-height:36px; font-size:13px; width:auto}
.flash{padding:10px 14px; border-radius:var(--r); margin-bottom:16px; font-size:13.5px}
.flash-ok{background:var(--ok-bg); color:var(--ok)}
.flash-err{background:var(--bad-bg); color:var(--bad)}
.v-warn{color:var(--warn)}

.kpi{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin-bottom:22px}
.kpi-card{display:flex; flex-direction:column; gap:6px; padding:18px 20px; border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--shadow-card)}
.kpi-value{font-family:var(--serif); font-size:clamp(26px,3vw,34px); line-height:1.05; font-weight:400; font-variant-numeric:tabular-nums}
.kpi-sub{font-size:12px; color:var(--ink-3)}
.kpi-sub a{color:var(--purple)}
.kpi-dark{background:var(--grad-side); color:#fff}
.kpi-dark .label, .kpi-dark .kpi-sub{color:rgba(243,234,244,.6)}

.two-col{display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:16px}
@media (min-width:1000px){ .two-col{grid-template-columns:1fr 1fr} }
.panel{padding:18px 20px; border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--shadow-card); margin-bottom:16px}
.panel-table{padding:6px 8px}
.panel-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px}
.panel-title{font-family:var(--serif); font-size:22px}
.panel-link{font-size:12.5px; color:var(--purple)}
.empty{color:var(--ink-3); font-size:13.5px; padding:6px 0}
.empty a{color:var(--purple)}

.payouts{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:14px; padding-top:12px; border-top:1px dashed var(--line)}
.chip-plain{background:var(--surface-3); color:var(--ink-2); text-transform:none; letter-spacing:0; font-family:var(--sans); font-weight:500; font-size:12px}

.tbl{width:100%; border-collapse:collapse; font-size:13.5px}
.tbl th{text-align:left; font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); padding:10px 10px; border-bottom:1px solid var(--line)}
.tbl td{padding:10px 10px; border-bottom:1px solid var(--line); vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl .num{text-align:right}
.nowrap{white-space:nowrap}
.src{display:block; font-size:11px; color:var(--ink-4)}
.shares{color:var(--ink-4); font-size:11px; white-space:nowrap}
.note{color:var(--ink-2); max-width:280px}
.src-link{color:var(--purple)}
.kind{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle; background:var(--ink-4)}
.kind-prihod{background:var(--ok)} .kind-rashod{background:var(--bad)} .kind-perevod{background:var(--info)}
.actions{text-align:right; white-space:nowrap}
.actions form{display:inline}
.btn-x{width:30px; height:30px; border-radius:50%; border:1px solid var(--line-2); background:var(--surface); color:var(--ink-3); font-size:18px; line-height:1; cursor:pointer}
.btn-x:hover{color:var(--bad); border-color:var(--bad-line)}
.filters{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px}
.totals{display:flex; gap:22px; flex-wrap:wrap; font-size:13px; color:var(--ink-3); margin-bottom:12px}
.totals b{font-weight:500; margin-left:4px}
.row-links{display:flex; flex-wrap:wrap; gap:8px}
.plain{list-style:none; margin:0; padding:0}
.journal li{padding:6px 0; border-bottom:1px solid var(--line); font-size:13px}
.journal .mono{color:var(--ink-4); margin-right:10px; font-size:11.5px}
.archive{margin-top:12px; color:var(--ink-3); font-size:13px}
.archive summary{cursor:pointer}
.inline{display:inline; margin-left:8px}

/* лист-форма: снизу на телефоне, по центру на компьютере */
.sheet{position:fixed; inset:0; z-index:50; display:flex; align-items:flex-end; justify-content:center}
.sheet[hidden]{display:none}
.sheet-back{position:absolute; inset:0; background:rgba(33,22,65,.45); backdrop-filter:blur(3px)}
.sheet-card{position:relative; width:100%; max-height:92dvh; overflow:auto; background:var(--surface); border-radius:var(--r-xl) var(--r-xl) 0 0; padding:18px 18px 22px; box-shadow:var(--shadow-lg);
  animation:sheet-up .35s var(--ease)}
@keyframes sheet-up{from{transform:translateY(30px); opacity:0}to{transform:none; opacity:1}}
@media (min-width:720px){ .sheet{align-items:center} .sheet-card{width:min(640px,94vw); border-radius:var(--r-xl); padding:22px 24px} }
.sheet-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px}
.sheet-title{font-family:var(--serif); font-size:24px}
.sheet-foot{display:flex; justify-content:flex-end; gap:10px; margin-top:18px}
.seg{display:inline-flex; background:var(--surface-3); border-radius:var(--r-pill); padding:3px}
.seg-item{position:relative}
.seg-item input{position:absolute; opacity:0; inset:0}
.seg-item span{display:inline-block; padding:8px 16px; border-radius:var(--r-pill); font-size:13.5px; font-weight:500; color:var(--ink-2); cursor:pointer}
.seg-item input:checked+span{background:var(--surface); color:var(--ink); box-shadow:var(--shadow-sm)}
.seg-item input:focus-visible+span{box-shadow:var(--ring)}
.form-grid{display:grid; grid-template-columns:1fr; gap:12px}
@media (min-width:560px){ .form-grid{grid-template-columns:1fr 1fr} .field-wide{grid-column:1 / -1} }
.field{display:flex; flex-direction:column; gap:6px}
.field[hidden]{display:none}
.field .label em{font-style:normal; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink-4); margin-left:6px}
.hint{font-size:12px; color:var(--ink-3)}
.hint a{color:var(--purple)}

/* рассрочки */
.totals-rs{margin-left:auto}
.totals-rs a{color:var(--ink-3)}
.vznosy{list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:4px}
.vznos{display:grid; grid-template-columns:22px 92px 1fr auto auto; align-items:center; gap:10px; padding:6px 8px; border-radius:var(--r-sm); font-size:13px; background:var(--surface-2)}
.vznos.is-paid{color:var(--ink-3)}
.vznos.is-paid .vznos-state{color:var(--ok)}
.vznos.is-overdue{background:var(--bad-bg)}
.vznos.is-overdue .vznos-state{color:var(--bad)}
.vznos-state{font-family:var(--mono); font-size:11.5px; white-space:nowrap}

/* сводка-выписка */
.itog{display:flex; flex-direction:column; gap:6px; padding:26px 28px; border-radius:var(--r-lg); background:var(--grad-side); color:#fff; box-shadow:var(--shadow-lg); margin-bottom:16px}
.itog .label{color:rgba(243,234,244,.6)}
.itog-value{font-family:var(--serif); font-size:clamp(44px,6vw,64px); line-height:1; font-weight:400; font-variant-numeric:tabular-nums}
.itog-sub{font-size:13px; color:rgba(243,234,244,.65)}
.itog-up{color:#4ADE80} .itog-down{color:#F87171}
.calc{width:100%; border-collapse:collapse; font-size:15px}
.calc td{padding:11px 8px; border-bottom:1px solid var(--line); vertical-align:middle}
.calc tr:last-child td{border-bottom:0}
.calc td:first-child{width:46%}
.calc .num{text-align:right; font-family:var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap; width:22%}
.calc .muted{color:var(--ink-3); font-size:12.5px; padding-left:14px}
.calc .muted a, .calc-links td:first-child a{color:var(--purple)}
.calc .sum td{border-top:1px solid var(--line-2); font-weight:500}
.calc .total td{font-family:var(--serif); font-size:20px; font-weight:400; border-top:2px solid var(--ink); border-bottom:0}
.calc .total .num{font-family:var(--serif); font-size:22px}
.calc-list{font-size:14px}
.calc-list td{padding:8px 8px}
.calc-list td:first-child{width:auto}
.calc-list .muted{width:34px; padding-left:8px; font-family:var(--mono); font-size:11.5px}
.barcell{width:34%}
.minibar{display:block; height:6px; border-radius:var(--r-pill); background:var(--surface-3); overflow:hidden}
.minibar-fill{display:block; height:100%; border-radius:var(--r-pill); background:var(--grad); min-width:2px}
.minibar-out{background:linear-gradient(90deg,#C0392B,#FF9668)}
.minibar-sm{width:90px; margin:4px 0 2px}
.calc-links td:first-child{font-weight:500}

/* рассрочки - таблица */
.totals-big{font-size:14px; gap:26px; margin-bottom:14px}
.totals-big b{font-size:16px}
.tbl-rs td{vertical-align:middle}
.rs-row{cursor:pointer}
.rs-row:hover td{background:var(--surface-2)}
.rs-row.is-overdue td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.rs-row.is-closed{color:var(--ink-3)}
.rs-details td{background:var(--surface-2); padding:12px 16px 14px}
.rs-details-in{display:flex; gap:24px; flex-wrap:wrap; align-items:flex-start}
.rs-details-in .vznosy{flex:1 1 320px; max-width:520px}
.rs-actions{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.btn-more{font-size:14px; transition:transform .25s var(--ease)}
.rs-row.is-open .btn-more{transform:rotate(180deg)}
.muted{color:var(--ink-3); font-size:12.5px}
@media (max-width:919px){ .panel-table{overflow-x:auto} .tbl{min-width:640px} }

/* быстрые действия и плавающая кнопка */
.sb-quick{display:flex; flex-direction:column; gap:2px; padding:14px 12px 0}
.sb-quick .sb-item{background:transparent; border:0; text-align:left; width:100%; font:inherit; cursor:pointer}
.fab{position:fixed; right:18px; bottom:18px; z-index:40; width:54px; height:54px; border-radius:50%; border:0; background:var(--grad); color:#fff; font-size:28px; line-height:1; box-shadow:0 14px 30px -10px rgba(143,39,120,.7); cursor:pointer}
@media (min-width:920px){ .fab{display:none} }
.calc-head th{text-align:left; font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); padding:6px 8px 10px; border-bottom:1px solid var(--line)}
.calc-head th.num{text-align:right}
.doli td{padding:6px 6px}
.input-pct{width:68px; text-align:right}

/* правки удобства 22.10 */
.cur-hint{display:block; font-size:12px; color:var(--ink-3); margin-top:-2px}
.input-big{font-size:20px; font-family:var(--mono); font-variant-numeric:tabular-nums; min-height:50px}
.link-btn{background:none; border:0; padding:0; color:var(--purple); font-size:13px; cursor:pointer; text-align:left}
.more-fields{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px}
@media (max-width:559px){ .more-fields{grid-template-columns:1fr} }
.hint-big{font-size:13.5px; color:var(--ink-2); margin-top:12px; line-height:1.5}
.cur-badge{display:inline-block; margin-left:6px; padding:0 7px; border-radius:var(--r-pill); background:var(--surface-3); font-family:var(--mono); font-size:11px; color:var(--ink-2)}
.shares-row td{font-size:13.5px; color:var(--ink-2)}
.shares-row .muted b{color:var(--ink); font-weight:500}
.filters-summary{display:none; cursor:pointer; color:var(--purple); font-size:13.5px; padding:6px 0 10px; list-style:none}
.filters-summary::-webkit-details-marker{display:none}
.only-phone{display:none}
.fab-wrap{position:fixed; right:18px; bottom:18px; z-index:40; display:flex; flex-direction:column; align-items:flex-end; gap:10px}
.fab-menu{display:flex; flex-direction:column; gap:8px; align-items:stretch}
.fab-menu .btn{background:var(--surface); box-shadow:var(--shadow-lg); justify-content:flex-start}
.fab{position:static}
.fab.is-open{transform:rotate(45deg)}
@media (max-width:919px){
  .filters-summary{display:block}
  .filters-wrap:not([open]) .filters{display:none}
  .tbl-rs, .tbl-acc{min-width:0}
  .tbl-rs .col-what, .tbl-rs .col-paid, .tbl-rs .col-left, .tbl-acc .col-usd, .tbl-acc .col-owner{display:none}
  .only-phone{display:block}
  .tbl td, .tbl th{padding:8px 6px}
}
@media (min-width:920px){ .fab-wrap{display:none} }
/* атрибут hidden сильнее наших display: иначе блок с display:grid/flex показывается, даже когда спрятан */
.more-fields[hidden], .fab-menu[hidden], .field[hidden], .sheet[hidden]{display:none !important}

/* расходы 23.10 */
.panel-head-pad{padding:12px 12px 0}
.empty-pad, .archive-pad{padding:6px 12px 12px}
.new-cat-input{margin-top:8px}
.new-cat-input[hidden]{display:none !important}
.due-overdue td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.due-paid, .due-skipped{color:var(--ink-3)}
.cat-form{display:flex; gap:6px; align-items:center}
.cat-input{flex:1; min-width:0; border-color:transparent; background:transparent; padding-left:6px}
.cat-input:hover{border-color:var(--line-2)}
.cat-input:focus{background:var(--surface)}
.cat-save{opacity:0; transition:opacity .2s var(--ease)}
.cat-form:focus-within .cat-save{opacity:1}
.cat-new{margin-top:12px}
.cat-new .input{flex:1; min-width:200px}
optgroup{font-style:normal; color:var(--ink-3)}
@media (max-width:919px){
  .tbl-due, .tbl-reg, .tbl-kontr{min-width:0}
  .tbl-due .col-what, .tbl-reg .col-what, .tbl-kontr .col-what{display:none}
  .head-actions{flex-wrap:wrap}
}

@media (max-width:919px){
  .hide-phone{display:none}
  .due-actions{display:flex; flex-direction:column; align-items:flex-end; gap:4px; white-space:normal}
  .due-actions .inline{margin-left:0}
  .due-skip{min-height:0; padding:2px 4px; border:0; background:none; font-size:12px; color:var(--ink-3); box-shadow:none}
  .totals-big{gap:6px 18px}
}

/* чекап 23.10 */
.banner{display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; padding:16px 18px; margin-bottom:16px;
  border-radius:var(--r-lg); background:var(--warn-bg, #FBF0DC); border:1px solid #F2DEB4}
.banner b{display:block; margin-bottom:4px}
.banner p{color:var(--ink-2); font-size:13px; max-width:70ch}
.banner-actions{display:flex; gap:8px; flex-wrap:wrap}
.sverka-ok{box-shadow:var(--shadow-card), inset 0 0 0 1px #BCEBCB}
.sverka-bad{box-shadow:var(--shadow-card), inset 0 0 0 1px var(--bad-line, #F3CFC9)}
.check{display:inline-flex; align-items:center; gap:6px; font-size:14px; margin-right:10px}
.shares-row small{color:var(--ink-3); font-weight:400}

.seg-wide{display:flex; width:100%; margin-bottom:6px}
.seg-wide .seg-item{flex:1}
.seg-wide .seg-item span{display:block; text-align:center}
/* телефон: пять вкладок, остальное в «Ещё» */
.tab-more{position:relative; flex:none}
.tab-more summary{list-style:none; cursor:pointer}
.tab-more summary::-webkit-details-marker{display:none}
.tab-more-menu{position:absolute; right:0; top:calc(100% + 6px); z-index:30; display:flex; flex-direction:column; min-width:170px; padding:6px;
  background:var(--surface); border-radius:var(--r); box-shadow:var(--shadow-lg)}
.tab-more-menu .tab{border-radius:var(--r-sm)}

/* доли */
.panel-foot{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 12px 12px}
.scroll-x{overflow-x:auto}
.tbl-pct td, .tbl-pct th{padding:6px 6px}
.tbl-pct .input-pct{width:64px}
.pct-sum.is-bad{color:var(--bad); font-weight:600}
tr.pct-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.person-name{font-weight:600}
@media (max-width:919px){ .tbl-people{min-width:0} .tbl-people .col-what{display:none} }

/* аналитика */
.legend{display:flex; gap:12px; align-items:center; font-size:12px; color:var(--ink-3)}
.legend i{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:4px; vertical-align:-1px}
.lg-in{background:var(--grad)} .lg-out{background:linear-gradient(180deg,#FF9668,#C0392B)}
.ychart{display:grid; grid-template-columns:repeat(12,1fr); gap:6px; align-items:end; height:220px; padding:8px 0 0}
.ycol{display:flex; flex-direction:column; align-items:center; gap:4px; height:100%; border-radius:var(--r-sm); padding:4px 0}
.ycol:hover{background:var(--surface-2)}
.ycol.is-now{background:var(--surface-3)}
.ybars{flex:1; width:100%; display:flex; align-items:flex-end; justify-content:center; gap:3px}
.ybar{width:38%; max-width:16px; border-radius:4px 4px 0 0; min-height:2px}
.ybar-in{background:var(--grad)} .ybar-out{background:linear-gradient(180deg,#FF9668,#C0392B)}
.ylabel{font-size:11.5px; color:var(--ink-3)}
.yval{font-size:10.5px; color:var(--ink-2); min-height:14px}
.tbl-year td, .tbl-year th{padding:8px 8px; white-space:nowrap}
.tbl-year tr.is-now td{background:var(--surface-2)}
.tbl-year tfoot td{border-top:2px solid var(--ink); font-weight:500}
@media (max-width:919px){ .ychart{height:160px; gap:2px} .yval{display:none} }

.sb-search{padding:0 12px 12px}
.sb-search .input{width:100%; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14); color:#fff}
.sb-search .input::placeholder{color:rgba(243,234,244,.5)}
.topbar-right{display:flex; gap:14px}

.digest-preview{margin:10px 0 14px; padding:14px 16px; border-radius:var(--r); background:var(--surface-2); border:1px solid var(--line); font-size:13.5px; line-height:1.55; max-width:560px}
.digest-preview a{color:var(--purple)}

/* проверка «ничего лишнего» 23.10 */
.links-row{display:flex; gap:18px; flex-wrap:wrap; font-size:13px; margin:4px 0 18px}
.links-row a{color:var(--purple)}
.more-hint summary, .sverka-sum, .panel-sum{cursor:pointer; list-style:none}
.more-hint summary::-webkit-details-marker, .sverka-sum::-webkit-details-marker, .panel-sum::-webkit-details-marker{display:none}
.more-hint summary{color:var(--purple); font-size:13px; margin-top:10px}
.sverka-sum{font-family:var(--serif); font-size:20px}
.sb-badge{margin-left:auto; padding:1px 8px; border-radius:var(--r-pill); background:rgba(255,255,255,.12); font-family:var(--mono); font-size:11px}
.sb-badge.is-bad{background:rgba(248,113,113,.25); color:#FFD1D1}
