:root {
  --bg: #f6f7f5; --card: #fff; --text: #1d2321; --muted: #5f6b67; --line: #dfe4e1;
  --brand: #0f5c4d; --brand-2: #e7f3ef; --warn: #fff4cc; --warn-t: #7a5300;
  --err: #fde8e8; --err-t: #8f1d1d; --ok: #e5f6ea; --ok-t: #1d5e33; --consult: #ffe7cc;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #121614; --card: #1b201e; --text: #e8ecea; --muted: #9aa6a1; --line: #2c3431;
    --brand: #3fb59a; --brand-2: #1d2f2a; --warn: #3a3218; --warn-t: #ffd77a; --err: #3b1e1e; --err-t: #ffb4b4;
    --ok: #1d3326; --ok-t: #9fe0b2; --consult: #3d2d18; }
}
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--bg); color: var(--text); }
a { color: var(--brand); }
.top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 16px; background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
.brand { font-size: 1.2rem; text-decoration: none; color: var(--text); margin-right: auto; }
.brand b { color: var(--brand); }
.nav { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.nav a { text-decoration: none; }
.menu-btn { display: none; }
.wrap { max-width: 1100px; margin: 0 auto; padding: 16px; }
.foot { text-align: center; color: var(--muted); font-size: .85rem; padding: 24px 16px; }
h1 { font-size: 1.6rem; margin: .4em 0; }
h2 { font-size: 1.2rem; margin: .2em 0 .6em; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin: 12px 0; }
.narrow { max-width: 460px; margin: 24px auto; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.muted { color: var(--muted); } small { font-size: .85em; }
label { display: block; margin: 10px 0; font-weight: 500; }
label input, label select { display: block; width: 100%; margin-top: 4px; }
input, select, button, .button { font: inherit; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--line); background: var(--card); color: var(--text); }
input:focus, select:focus, button:focus-visible, a:focus-visible { outline: 3px solid color-mix(in srgb, var(--brand) 45%, transparent); outline-offset: 1px; }
.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
.check input { width: auto; margin-top: 4px; }
button, .button { cursor: pointer; text-decoration: none; display: inline-block; min-height: 44px; }
.primary { background: var(--brand); color: #fff; border-color: var(--brand); }
button.link { background: none; border: none; color: var(--brand); padding: 0; min-height: 0; text-decoration: underline; }
button.small { min-height: 36px; padding: 6px 10px; }
.danger { color: var(--err-t) !important; }
.inline { display: inline; }
.inline-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.inline-form select { width: auto; }
fieldset { border: 1px solid var(--line); border-radius: 10px; margin: 12px 0; }
.msg { padding: 10px 14px; border-radius: 10px; margin: 10px 0; }
.msg ul { margin: 4px 0 0; padding-left: 20px; }
.ok { background: var(--ok); color: var(--ok-t); }
.err { background: var(--err); color: var(--err-t); }
.warn { background: var(--warn); color: var(--warn-t); }
.disclaimer { background: var(--warn); color: var(--warn-t); border-left: 5px solid #e0a100; padding: 12px 14px; border-radius: 8px; margin: 12px 0; font-weight: 600; }
.period { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.period label { margin: 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th, td { text-align: left; padding: 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.code { font-family: ui-monospace, Consolas, monospace; font-size: .9em; color: var(--muted); }
.badge { display: inline-block; font-size: .75rem; padding: 2px 8px; border-radius: 99px; background: var(--brand-2); color: var(--brand); white-space: nowrap; }
.badge.consult, .badge.needs_verification { background: var(--consult); color: var(--warn-t); }
.badge.todo_verify { background: var(--err); color: var(--err-t); }
.badge.paid, .badge.submitted, .badge.verified { background: var(--ok); color: var(--ok-t); }
tr.prelim td { background: color-mix(in srgb, var(--consult) 60%, transparent); }
tr.overdue td { background: var(--err); }
tr.soon td, li.soon { background: color-mix(in srgb, var(--warn) 70%, transparent); }
.list { list-style: none; padding: 0; } .list li { padding: 8px; border-bottom: 1px solid var(--line); border-radius: 6px; }
.issues { padding-left: 18px; } .issues li { margin: 6px 0; }
.lvl-error { color: var(--err-t); } .lvl-consult { color: var(--warn-t); }
details.line { border-bottom: 1px solid var(--line); padding: 8px 0; }
details.line summary { cursor: pointer; display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
details.line summary b { margin-left: auto; }
.status-ok { border-left: 5px solid #2e9e5b; } .status-needs_review { border-left: 5px solid #e0a100; } .status-blocked { border-left: 5px solid #c0392b; }
.steps > li { margin: 12px 0 20px; } .steps h2 { margin-top: 0; }
.qr { display: block; margin: 12px auto; background: #fff; padding: 8px; border-radius: 8px; }
.secret { word-break: break-all; }
.codes { columns: 2; font-size: 1.1rem; }
input.cell { width: 130px; min-height: 40px; padding: 6px 8px; text-align: right; }
.months { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; align-items: end; }
.form-sheet table { margin-bottom: 16px; }
@media (max-width: 720px) {
  .menu-btn { display: inline-block; }
  .nav { display: none; width: 100%; flex-direction: column; align-items: flex-start; gap: 6px; }
  .nav.open { display: flex; }
  h1 { font-size: 1.35rem; }
  .codes { columns: 1; }
}
@media print {
  .top, .foot, .noprint, form { display: none !important; }
  body { background: #fff; color: #000; }
  .card { border: none; padding: 0; }
  tr.prelim td { background: #fff4cc !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.overdue-card { border-left: 4px solid #b42318; }
.nav select { max-width: 14rem; }
.tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0 1rem; }
.tabs a { padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.tabs a.active { background: var(--brand); color: #fff; border-color: transparent; }
.review-box { border: 1px dashed var(--line); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.badge.review-approved { background: var(--brand-2); color: var(--brand); }
.badge.review-requested, .badge.review-none { background: var(--warn); color: var(--warn-t); }
.badge.review-changes, .badge.review-stale { background: var(--err); color: var(--err-t, #8a1c1c); }
fieldset { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 8px 0; }

/* «Что сделать сейчас» */
.steps{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.step{border:1px solid var(--line,#ddd);border-left-width:5px;border-radius:8px;padding:.6rem .8rem}
.step p{margin:.35rem 0}
.step-head{display:flex;gap:.5rem;align-items:center}
.step-dot{width:.6rem;height:.6rem;border-radius:50%;background:currentColor;flex:none}
.step-err{border-left-color:#c0392b}.step-err .step-dot{color:#c0392b}
.step-warn{border-left-color:#d68910}.step-warn .step-dot{color:#d68910}
.step-todo{border-left-color:#2e86c1}.step-todo .step-dot{color:#2e86c1}
.step-ready{border-left-color:#1e8449}.step-ready .step-dot{color:#1e8449}
.step-links .button{margin:.15rem .25rem .15rem 0}

/* Кабинет бухгалтера */
table.clients tr.current td{background:color-mix(in srgb, var(--card) 85%, #1e8449 15%)}
table.clients td{vertical-align:top}
.badge.none{opacity:.7}

/* Документы */
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem 1rem;align-items:end}
.grid-form label{display:flex;flex-direction:column;gap:.25rem}
h2.inline{display:inline;font-size:1.1rem}
table.items input{width:100%;min-width:6rem}
table.items input.short{min-width:4rem;max-width:7rem}
table.bordered{border-collapse:collapse;width:100%}
table.bordered th,table.bordered td{border:1px solid var(--line);padding:.35rem .45rem;vertical-align:top}
table.bordered tr.colnums td{text-align:center;font-size:.8rem;color:var(--muted)}
table.plain{border-collapse:collapse;width:100%;margin:.5rem 0}
table.plain th{text-align:left;font-weight:600;padding:.2rem .6rem .2rem 0;white-space:nowrap;vertical-align:top}
table.plain td{padding:.2rem .6rem .2rem 0;vertical-align:top}
table.plain.center-table{width:auto;margin:.5rem auto}
table.plain.center-table th,table.plain.center-table td{border:1px solid var(--line);padding:.3rem .8rem;text-align:center}
table.sign td{width:50%;padding-top:1.2rem}
.right{text-align:right}.center{text-align:center}
.danger-button{color:var(--err-t);border-color:var(--err-t)}
@media print{.doc-sheet{font-size:11pt;color:#000}.doc-sheet table.bordered th,.doc-sheet table.bordered td{border-color:#000}}

@media (max-width:720px){
  table.items thead{display:none}
  table.items, table.items tbody{display:block}
  table.items tr{display:grid;grid-template-columns:1.6rem 1fr 1fr;gap:.35rem;padding:.5rem 0;border-bottom:1px solid var(--line)}
  table.items td{display:block;padding:0;border:0}
  table.items td:first-child{grid-row:span 4;padding-top:.5rem}
  table.items td:nth-child(2){grid-column:2 / 4}
  table.items input, table.items input.short{max-width:none;min-width:0}
}

/* Финансы */
.period-form{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:end;margin:.5rem 0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:.75rem 0}
@media (max-width:420px){.kpi b{font-size:1.05rem}.kpi{padding:.6rem .7rem}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.kpi span{color:var(--muted);font-size:.9rem}
.kpi b{font-size:1.35rem;font-variant-numeric:tabular-nums}
.delta{font-size:.85rem;font-weight:600}
.delta.up{color:#1e8449}.delta.down{color:#c0392b}
.explain{margin:.5rem 0 1rem;color:var(--muted)}
.explain summary{cursor:pointer}
.chart-wrap{overflow-x:auto}
.bar-chart{width:100%;min-width:480px;height:auto;display:block}
.bar-chart .inc{fill:#2e86c1}.bar-chart .exp{fill:#e67e22}
.bar-chart .axis{stroke:var(--line)}
.bar-chart text{font-size:10px;fill:var(--muted)}
.legend{font-size:.9rem;color:var(--muted)}
.legend .sw{display:inline-block;width:.8rem;height:.8rem;border-radius:2px;vertical-align:-1px;margin:0 .2rem 0 .6rem}
.legend .sw.inc{background:#2e86c1}.legend .sw.exp{background:#e67e22}
.hbars{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.hbar-label{display:flex;justify-content:space-between;gap:.5rem;font-size:.92rem}
.hbar{width:100%;height:8px;display:block;margin-top:.2rem}
.hbar .track{fill:var(--line)}.hbar .fill{fill:#2e86c1}
.filters{padding-bottom:.4rem}
table.ops td.neg{color:#c0392b}
.badge.kind-income{background:#d4efdf;color:#145a32}.badge.kind-expense,.badge.kind-payroll{background:#fdebd0;color:#7e5109}
.badge.kind-inflow,.badge.kind-outflow{background:#d6eaf8;color:#1b4f72}
.empty{text-align:left}
label.wide{grid-column:1 / -1}

/* Бета */
.beta-bar{background:#7a3e00;color:#fff;padding:6px 16px;font-size:.88rem;text-align:center}
.beta-bar b{background:#fff;color:#7a3e00;border-radius:4px;padding:0 6px;margin-right:6px;letter-spacing:.05em}
.beta-bar a{color:#fff;text-decoration:underline}
.feedback{position:fixed;right:16px;bottom:16px;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 4px 16px rgba(0,0,0,.15);max-width:min(380px,calc(100vw - 32px))}
.feedback summary{cursor:pointer;padding:8px 14px;font-weight:600}
.feedback form{padding:0 14px 12px}
.feedback textarea{width:100%}
.foot-links a{margin:0 .1rem}
@media print{.beta-bar,.feedback{display:none}}

/* Юридические страницы */
.legal{max-width:860px;line-height:1.55}
.legal h2{margin-top:1.4rem;font-size:1.15rem}
.draft-note{margin-bottom:1rem}
.faq details{border-bottom:1px solid var(--line);padding:.6rem 0}
.faq summary{cursor:pointer;font-weight:600}

.demo-bar{background:#e8f1fb;color:#1b4f72;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
@media (prefers-color-scheme: dark){.demo-bar{background:#16283a;color:#cfe3f7}}
