:root{--bg:#0d1117;--panel:#161b22;--side:#0b0f14;--line:#30363d;--txt:#e6edf3;
      --dim:#8b949e;--accent:#2f81f7;--good:#3fb950;--warn:#d29922;--bad:#f85149}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);display:flex;min-height:100vh;
     font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}

/* ---------- левое меню ---------- */
aside{width:224px;flex:none;background:var(--side);border-right:1px solid var(--line);
      display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{padding:1.1rem 1.1rem .9rem;border-bottom:1px solid var(--line)}
.brand .n{font-weight:600;font-size:1.05rem;letter-spacing:.3px}
.brand .r{color:var(--dim);font-size:.74rem;margin-top:.2rem}
nav{padding:.7rem 0;flex:1}
nav a{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.1rem;color:var(--dim);
      text-decoration:none;font-size:.92rem;border-left:2px solid transparent}
nav a:hover{color:var(--txt);background:#ffffff08}
nav a.on{color:var(--txt);background:#2f81f714;border-left-color:var(--accent)}
nav a .i{width:1.1rem;text-align:center;opacity:.85}
.side-foot{padding:.9rem 1.1rem;border-top:1px solid var(--line);font-size:.74rem;color:var(--dim)}
.live{display:inline-flex;align-items:center;gap:.4rem;color:var(--good)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--good);animation:p 1.6s ease-in-out infinite}
@keyframes p{0%,100%{opacity:1}50%{opacity:.25}}

/* ---------- контент ---------- */
main{flex:1;min-width:0;padding:1.3rem 1.5rem 2.5rem}
h1{margin:0 0 .2rem;font-size:1.3rem}
.lead{color:var(--dim);font-size:.86rem;margin-bottom:1.2rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;
       padding:1rem 1.1rem;min-width:0;margin-bottom:.9rem}
.panel h2{margin:0 0 .8rem;font-size:.86rem;color:var(--dim);text-transform:uppercase;
          letter-spacing:.5px;display:flex;justify-content:space-between;gap:1rem}
.panel h2 .tag{color:var(--accent);font-size:.72rem;letter-spacing:0;text-transform:none}
.grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem}
.card .label{color:var(--dim);font-size:.71rem;text-transform:uppercase;letter-spacing:.5px}
.card .value{font-size:1.35rem;font-weight:600;margin-top:.25rem;
             font-variant-numeric:tabular-nums;transition:color .4s}
.card .value.flash{color:var(--accent)}
.card .delta{color:var(--dim);font-size:.76rem;min-height:1.1em}
.cols{display:grid;gap:.9rem;margin-bottom:.9rem}
.c21{grid-template-columns:1.5fr 1fr}
.c12{grid-template-columns:1fr 1.1fr}
.c11{grid-template-columns:1fr 1fr}
@media(max-width:1000px){.c21,.c12,.c11{grid-template-columns:1fr}}
@media(max-width:720px){body{flex-direction:column}aside{width:100%;height:auto;position:static}
  nav{display:flex;overflow-x:auto}nav a{white-space:nowrap;border-left:0;border-bottom:2px solid transparent}
  nav a.on{border-left:0;border-bottom-color:var(--accent)}.side-foot{display:none}}

/* ---------- таблицы ---------- */
.scroll{overflow-x:auto;max-height:430px;overflow-y:auto}
table{width:100%;border-collapse:collapse;font-size:.82rem}
th{text-align:left;color:var(--dim);font-weight:500;padding:.35rem .5rem;position:sticky;top:0;
   background:var(--panel);border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
td{padding:.35rem .5rem;border-bottom:1px solid #21262d;white-space:nowrap}
tr:last-child td{border:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tbody tr.sel{background:#2f81f71f}
tbody tr[data-click]{cursor:pointer}
tbody tr[data-click]:hover{background:#ffffff08}
tr.fresh{animation:in .6s ease}
@keyframes in{from{background:#2f81f733}to{background:transparent}}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:#a5d6ff}
.acc{color:var(--dim);font-size:.72rem}
.muted{color:var(--dim)}

/* ---------- элементы ---------- */
input,select{background:#0d1117;border:1px solid var(--line);color:var(--txt);
             border-radius:7px;padding:.45rem .6rem;font:inherit;font-size:.86rem}
input:focus,select:focus{outline:none;border-color:var(--accent)}
.tabs{display:flex;gap:.4rem;margin-bottom:.9rem;flex-wrap:wrap}
.tabs button{background:var(--panel);border:1px solid var(--line);color:var(--dim);
             border-radius:7px;padding:.4rem .85rem;font:inherit;font-size:.85rem;cursor:pointer}
.tabs button.on{color:var(--txt);border-color:var(--accent);background:#2f81f714}
.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.8rem}
.row input{flex:1;min-width:180px}
dl.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;margin:0;font-size:.85rem}
dl.kv dt{color:var(--dim);white-space:nowrap}
dl.kv dd{margin:0;word-break:break-word}
.badge{font-size:.68rem;padding:.1rem .42rem;border-radius:4px;background:#1f6feb33;color:#79c0ff}
.badge.a{background:#3fb95033;color:#56d364}
.badge.p{background:#d2992233;color:#e3b341}
.badge.closed{background:#f8514933;color:#ff7b72}
ul.feed{list-style:none;margin:0;padding:0;max-height:330px;overflow-y:auto}
ul.feed li{padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.86rem;
           display:flex;gap:.55rem;align-items:baseline}
ul.feed li:last-child{border:0}
.k{font-size:.66rem;padding:.1rem .4rem;border-radius:4px;flex:none;background:#1f6feb33;color:#79c0ff}
.k.loan{background:#d2992233;color:#e3b341}
.k.branch,.k.deposit{background:#3fb95033;color:#56d364}
.k.overdue{background:#f8514933;color:#ff7b72}
.k.payroll{background:#8957e533;color:#d2a8ff}
.amt{margin-left:auto;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}
svg.chart{width:100%;height:200px;display:block}
a.dl{color:var(--accent);text-decoration:none}
a.dl:hover{text-decoration:underline}
.empty{color:var(--dim);padding:1.2rem;text-align:center;font-size:.86rem}
