/* Кабинет клиента — вынесено из kabinet.php. Переменные берутся из theme.css */

/* страница входа */
.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:clamp(16px,4vw,48px);background:var(--surface-2)}
.login-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:clamp(20px,4vw,36px)}
.login-card h1{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-2)}
.login-card .sub{font-size:var(--text-sm);color:var(--ink-2);margin-bottom:var(--space-6)}
.login-card .fld{display:grid;gap:var(--space-2);margin-bottom:var(--space-4)}
.login-card .fld span{font-size:var(--text-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em}
.login-card .fld input{width:100%;font:inherit;font-size:var(--text-sm);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.login-card .fld input:focus{outline:2px solid var(--accent);outline-offset:1px}
.login-err{background:var(--wait-bg);color:var(--wait);border:1px solid var(--wait);border-radius:10px;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-4)}
.login-card .btn{width:100%}
.login-back{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--ink-2)}
.login-back a{color:var(--ink)}

/* предупреждения */
.flash{border-radius:10px;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-5)}
.flash.ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok)}
.flash.bad{background:var(--wait-bg);color:var(--wait);border:1px solid var(--wait)}

/* каркас кабинета */
body.cab-body{background:var(--surface-2)}
.shell{display:grid;grid-template-columns:262px 1fr;min-height:100vh;max-width:1360px;margin-inline:auto;background:var(--bg)}

/* сайдбар */
.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:var(--space-6) 0 var(--space-6);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;min-width:0}
.sb-brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5) var(--space-5);border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.sb-brand span{min-width:0;overflow:hidden}
.sb-brand b{font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);display:block;letter-spacing:0;overflow-wrap:anywhere}
.sb-brand small{font-size:var(--text-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em}
.sb-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-3)}
.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--ink-2);text-decoration:none;border-radius:10px;background:none;border:0;width:100%;text-align:left;font-family:inherit;cursor:pointer;transition:background .18s,color .18s}
.nav-item svg{flex-shrink:0;opacity:.85}
.nav-item:hover{background:var(--surface-2);color:var(--ink)}
.nav-item.active{background:var(--brand);color:var(--brand-ink)}
.nav-item .pill{margin-left:auto;font-size:var(--text-xs);background:var(--wait-bg);color:var(--wait);border-radius:999px;padding:0 var(--space-2);font-weight:700}
.nav-item.active .pill{background:color-mix(in oklab,var(--brand-ink) 25%,transparent);color:var(--brand-ink)}
.sb-foot{margin-top:auto;padding:var(--space-4) var(--space-3) 0;border-top:1px solid var(--line);display:grid;gap:var(--space-1)}

/* контент */
main.cab{padding:clamp(var(--space-5),3vw,var(--space-10));min-width:0}
.page-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-6);flex-wrap:wrap;margin-bottom:var(--space-8)}
.page-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}
.page-sub{color:var(--ink-2);font-size:var(--text-sm);margin-top:var(--space-2);max-width:56ch}
.counts{display:flex;gap:var(--space-5);font-size:var(--text-xs);color:var(--ink-2)}
.counts b{display:block;font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);font-variant-numeric:tabular-nums}
.panel{display:none}
.panel.on{display:block}

.toolbar{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}
.filters{display:flex;gap:var(--space-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:var(--space-1)}
.filter-btn{font-family:inherit;font-size:var(--text-sm);border:0;background:none;color:var(--ink-2);padding:var(--space-2) var(--space-4);border-radius:999px;cursor:pointer}
.filter-btn.active{background:var(--brand);color:var(--brand-ink);font-weight:500}
.search-box{display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:0 var(--space-4);min-width:min(320px,100%)}
.search-box input{border:0;background:none;padding:var(--space-3) 0;font-size:var(--text-sm);font-family:inherit;color:var(--ink);width:100%}
.search-box input:focus{outline:none}
.search-box svg{color:var(--ink-2);flex-shrink:0}

.ledger{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.doc-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}
.doc-row:last-child{border-bottom:0}
.doc-row:hover{background:var(--surface-2)}
.dot{width:9px;height:9px;border-radius:999px;flex-shrink:0}
.dot.processed{background:var(--ok)}
.dot.pending{background:var(--wait)}
.doc-main{min-width:0;flex:1}
.doc-name{font-size:var(--text-sm);font-weight:500;overflow-wrap:anywhere}
.doc-meta{font-size:var(--text-xs);color:var(--ink-2);margin-top:2px}
.status{font-size:var(--text-xs);font-weight:700;padding:var(--space-1) var(--space-3);border-radius:999px;white-space:nowrap}
.status.processed{background:var(--ok-bg);color:var(--ok)}
.status.pending{background:var(--wait-bg);color:var(--wait)}
.empty{display:none;padding:var(--space-16) var(--space-6);text-align:center}
.empty.on{display:block}
.empty h3{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--space-2)}
.empty p{font-size:var(--text-sm);color:var(--ink-2);max-width:44ch;margin-inline:auto}
.foot-note{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--ink-2);margin-top:var(--space-4);flex-wrap:wrap}

/* дашборд */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5)}
.kpi span{font-size:var(--text-xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em}
.kpi b{display:block;font-family:var(--font-display);font-size:var(--text-lg);margin-top:var(--space-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kpi i{font-style:normal;font-size:var(--text-xs);color:var(--ink-2)}
.two{display:grid;grid-template-columns:1.3fr .7fr;gap:var(--space-6);align-items:start}
.block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-6);min-width:0}
.block h3{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--space-4)}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4)}
.timeline li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);font-size:var(--text-sm);border-top:1px solid var(--line);padding-top:var(--space-4)}
.timeline li:first-child{border-top:0;padding-top:0}
.timeline time{font-size:var(--text-xs);color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.tasks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);font-size:var(--text-sm)}
.tasks li{display:flex;gap:var(--space-3);align-items:start}
.tasks input{width:18px;height:18px;margin-top:2px;flex-shrink:0}
.tasks label{text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--ink);cursor:pointer}
.tasks li.done label{color:var(--ink-2);text-decoration:line-through}

/* налоги */
.tax-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;font-size:var(--text-sm)}
.tax-table th{text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2);font-weight:500;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}
.tax-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}
.tax-table tr:last-child td{border-bottom:0}
.tax-table td.amount{font-variant-numeric:tabular-nums;white-space:nowrap}
.tax-status-done{background:var(--ok-bg);color:var(--ok)}
.tax-status-plan{background:var(--wait-bg);color:var(--wait)}
.tax-status-wait{background:var(--wait-bg);color:var(--wait)}
.tax-status-progress{background:var(--surface-2);color:var(--ink-2)}

/* чат */
.chat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-template-rows:1fr auto;max-height:60vh;overflow:hidden}
.msgs{padding:var(--space-6);display:grid;gap:var(--space-4);overflow-y:auto;-webkit-overflow-scrolling:touch}
.msg{max-width:78%;padding:var(--space-3) var(--space-4);border-radius:14px;font-size:var(--text-sm);background:var(--surface-2);overflow-wrap:anywhere}
.msg.me{margin-left:auto;background:var(--brand);color:var(--brand-ink)}
.msg time{display:block;font-size:var(--text-xs);opacity:.7;margin-top:var(--space-1)}
.chat-form{display:flex;gap:var(--space-3);border-top:1px solid var(--line);padding:var(--space-4)}
.chat-form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:999px;padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-sm);background:var(--bg);color:var(--ink)}
.chat-form input:focus{outline:2px solid var(--accent);outline-offset:1px}
.chat-form button{flex-shrink:0}

/* финансы */
.bars{display:grid;gap:var(--space-3);margin-top:var(--space-4)}
.bar{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:var(--space-4);font-size:var(--text-sm)}
.bar span:first-child{color:var(--ink-2);font-size:var(--text-xs)}
.bar .track{background:var(--surface-2);border-radius:999px;height:12px;overflow:hidden}
.bar .fill{display:block;height:100%;background:var(--brand);border-radius:999px}
.bar b{font-variant-numeric:tabular-nums;font-weight:500}

/* мелкие helper */
.note{font-size:var(--text-xs);color:var(--ink-2);margin-top:var(--space-4)}
.muted{color:var(--ink-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-5);border-radius:999px;border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-primary:hover{filter:brightness(1.08)}
.btn-ghost{background:none;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{background:var(--surface-2)}

/* подвал кабинета */
.cab-foot{border-top:1px solid var(--line);margin-top:var(--space-12);padding:var(--space-8) 0 var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}
.cab-foot-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-8)}
.cab-foot .foot-h{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:500;margin-bottom:var(--space-3)}
.cab-foot .foot-list{margin:0;padding:0;list-style:none;display:grid}
.cab-foot .foot-list a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--ink-2);border-bottom:1px solid transparent}
.cab-foot .foot-list a:hover{color:var(--ink);border-color:var(--accent)}
.cab-foot .cab-note{display:block;font-size:var(--text-xs);line-height:1.7;margin-top:0}
.cab-foot [data-copy]{cursor:pointer;border-bottom:1px dotted var(--line);color:var(--ink)}
.cab-foot-bottom{font-size:var(--text-xs);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--line);max-width:90ch}

/* адаптив */
@media (max-width:960px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);min-width:0;max-width:100%;overflow:hidden}
  .sb-nav{flex-direction:row;overflow-x:auto;padding:var(--space-3);min-width:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .nav-item{white-space:nowrap;width:auto}
  .nav-item .pill{margin-left:var(--space-2)}
  .sb-foot{margin-top:0;display:flex;flex-wrap:wrap;padding-bottom:var(--space-3)}
  .kpis{grid-template-columns:1fr 1fr}
  .two{grid-template-columns:minmax(0,1fr)}
  main.cab{min-width:0;max-width:100%;overflow-x:hidden}
}
@media (max-width:560px){
  .kpis{grid-template-columns:minmax(0,1fr)}
  .page-head{flex-direction:column;align-items:flex-start;gap:var(--space-3)}
  .tax-table{display:block;overflow-x:auto;white-space:nowrap}
  .toolbar{flex-direction:column;align-items:stretch}
  .filters{overflow-x:auto}
  .search-box{width:100%}
  .doc-row{flex-wrap:wrap}
  .chat{max-height:none}
  .msg{max-width:92%}
  .bar{grid-template-columns:60px minmax(0,1fr) auto;gap:var(--space-3)}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}