/* РИВВИ ФИНАНСЫ — лёгкая дизайн-система: светло-серый фон, белые панели, тонкие рамки, акцент только там, где нужен. */
:root{
  color-scheme:light;
  --bg:#f3f3f5;--surface:#fff;--surface-2:#f6f6f8;--surface-3:#ededf0;--line:#e7e7eb;--line-soft:#f0f0f3;
  --ink:#111114;--ink-2:#3d3d45;--muted:#8a8a94;
  --p:#5b4be0;--p-hover:#4c3dd0;--p-2:#8b7ff0;--p-soft:#f2f0ff;--p-ink:#5b4be0;--p-ring:#5b4be024;
  --green:#2f9e44;--green-soft:#ecf8ee;--red:#d6334f;--red-soft:#fdf0f2;--red-line:#f6d5db;
  --orange:#e8622c;--orange-soft:#fff2ec;--blue:#3b9fd8;--blue-soft:#eaf5fc;
  --overlay:#11111455;--radius:20px;--radius-md:14px;--radius-sm:10px;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0e0e10;--surface:#17171a;--surface-2:#1e1e22;--surface-3:#26262b;--line:#2a2a30;--line-soft:#222227;
  --ink:#f1f1f3;--ink-2:#c9c9cf;--muted:#8d8d97;
  --p:#8b7ff0;--p-hover:#9d93f3;--p-2:#a99ff5;--p-soft:#24213f;--p-ink:#b3aaf7;--p-ring:#8b7ff033;
  --green:#4fc26a;--green-soft:#15291a;--red:#f0657c;--red-soft:#33181e;--red-line:#4a222a;
  --orange:#f2814f;--orange-soft:#33211a;--blue:#5cb6ea;--blue-soft:#132634;--overlay:#000a;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#0e0e10;--surface:#17171a;--surface-2:#1e1e22;--surface-3:#26262b;--line:#2a2a30;--line-soft:#222227;
  --ink:#f1f1f3;--ink-2:#c9c9cf;--muted:#8d8d97;
  --p:#8b7ff0;--p-hover:#9d93f3;--p-2:#a99ff5;--p-soft:#24213f;--p-ink:#b3aaf7;--p-ring:#8b7ff033;
  --green:#4fc26a;--green-soft:#15291a;--red:#f0657c;--red-soft:#33181e;--red-line:#4a222a;
  --orange:#f2814f;--orange-soft:#33211a;--blue:#5cb6ea;--blue-soft:#132634;--overlay:#000a;
}}

/* База */
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;color:var(--ink);background:var(--bg);font:14px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3{font-weight:600;letter-spacing:-.3px}
h2{font-size:17px;margin:0 0 6px}
b,strong{font-weight:600}
code{padding:2px 6px;border-radius:6px;background:var(--surface-2);font-size:12px}
small,.muted{color:var(--muted)}
.num,td b,.metric b,.tile b{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.app-icon{display:block;width:19px;height:19px}

/* Кнопки и формы */
.button,.button-ghost,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.button{background:var(--p);color:#fff}
.button:hover{background:var(--p-hover)}
.button-ghost{border-color:var(--line);background:var(--surface);color:var(--ink-2)}
.button-ghost:hover{background:var(--surface-2);color:var(--ink)}
.button-ghost .app-icon,.button .app-icon{width:17px;height:17px}
.icon-button{width:38px;padding:0;border-color:var(--line);background:var(--surface);color:var(--ink-2)}
.icon-button:hover{background:var(--surface-2)}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-2);font-size:13px;text-decoration:none}
.chip:hover{background:var(--surface-2)}
.chip.soft{border-color:transparent;background:var(--surface-2)}
.chip .app-icon{width:16px;height:16px}
.danger{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--red);font-size:12px;cursor:pointer}
.danger:hover{border-color:var(--red-line);background:var(--red-soft)}
.form-stack{display:grid;gap:16px;margin:22px 0}
.form-stack label,.field{display:block;font-size:13px;font-weight:500;color:var(--ink-2)}
.form-stack input,.form-stack select,.field input,.field select,.field textarea,.filters input,.filters select,.toolbar input,.toolbar select{display:block;width:100%;min-height:40px;margin-top:6px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);outline:0;transition:border-color .15s,box-shadow .15s}
.field textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--p-2)!important;box-shadow:0 0 0 3px var(--p-ring)}
input[type=checkbox]{width:auto;min-height:0;display:inline-block;margin:0 6px 0 0;accent-color:var(--p)}

/* Метки */
.tag,.status,.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.status{background:var(--green-soft);color:var(--green)}
.badge{border-color:color-mix(in srgb,var(--p) 30%,transparent);background:var(--p-soft);color:var(--p-ink)}
button.status,button.tag,button.badge{cursor:pointer}
.badge-red{border-color:transparent;background:var(--red-soft);color:var(--red)}
.badge-orange{border-color:transparent;background:var(--orange-soft);color:var(--orange)}
.badge-blue{border-color:transparent;background:var(--blue-soft);color:var(--blue)}
.badge-green{border-color:transparent;background:var(--green-soft);color:var(--green)}
.badge-muted{border-color:transparent;background:var(--surface-2);color:var(--muted)}
.delta{font-weight:500;font-size:.62em;letter-spacing:0;vertical-align:.18em;margin-left:8px}
.delta.good{color:var(--green)}.delta.bad{color:var(--red)}
.metric b .delta,.tile b .delta{display:inline;margin-top:0}
.tile b{font-size:clamp(19px,1.35vw,24px)}
.alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);font-size:13px}
.alert a{color:var(--p-ink);font-weight:500;text-decoration:none}
.alert.error{border-color:var(--red-line);background:var(--red-soft);color:var(--red)}
.alert.success{border-color:transparent;background:var(--green-soft);color:var(--green)}
.empty{padding:48px 20px;text-align:center;color:var(--muted)}

/* Каркас */
.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;width:236px;display:flex;flex-direction:column;padding:18px 12px;border-right:1px solid var(--line);background:var(--surface)}
.brand{height:40px;display:flex;align-items:center;gap:10px;margin:0 8px 16px;font-size:16px;font-weight:600;letter-spacing:-.2px}
.brand i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--ink);color:var(--surface);font-style:normal;font-size:14px}
.nav{display:grid;gap:1px;min-height:0;overflow-y:auto;margin:0 -4px;padding:0 4px}
.nav-group{margin:16px 12px 6px;color:var(--muted);font-size:11px;font-weight:500}
.nav-group:first-child{margin-top:0}
.nav a{height:36px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:9px;color:var(--ink-2);font-size:13.5px;text-decoration:none;transition:background .12s}
.nav a:hover{background:var(--surface-2)}
.nav a.active{background:var(--surface-3);color:var(--ink);font-weight:500}
.nav em{width:18px;font-style:normal;color:var(--muted)}
.nav a.active em{color:var(--ink)}
.nav em .app-icon{width:18px;height:18px;stroke-width:1.6}
.nav .count{margin-left:auto;padding:0 7px;border-radius:99px;background:var(--surface-3);color:var(--ink-2);font-size:11px;font-weight:500}
.side-user{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 8px 0;border-top:1px solid var(--line);font-size:12.5px}
.side-user-info{min-width:0;flex:1}
.side-user b,.side-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-user b{font-weight:500}
.side-user a{color:var(--muted);text-decoration:none}
.side-user a:hover{color:var(--red)}
.shell{margin-left:236px;min-width:0}
.topbar{position:sticky;top:0;z-index:8;height:64px;display:flex;align-items:center;gap:12px;padding:0 28px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px)}
.search{display:flex;align-items:center;gap:9px;width:min(380px,45vw);height:40px;padding:0 13px;border-radius:var(--radius-sm);background:var(--surface-3);color:var(--muted)}
.search .app-icon{width:17px;height:17px;flex:0 0 17px}
.search input{width:100%;border:0;outline:0;background:transparent;box-shadow:none!important}
.top-tools{display:flex;align-items:center;gap:6px;margin-left:auto}
.top-tools .icon-button{border-color:transparent;background:transparent}
.top-tools .icon-button:hover{background:var(--surface-3)}
.avatar{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--surface-3);color:var(--ink-2);font-size:13px;font-weight:600}
.top-name{margin-left:4px;font-size:13px;font-weight:500;color:var(--ink-2)}
.content{width:100%;padding:8px 28px 40px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:10px 0 20px}
.pagehead h1{margin:0;font-size:26px;letter-spacing:-.6px}
.pagehead p{margin:4px 0 0;color:var(--muted);font-size:13.5px}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.actions form{margin:0}
.back-link{display:inline-flex;margin-bottom:10px;color:var(--muted);font-size:13px;text-decoration:none}

/* Тема и уведомления */
.theme-toggle .icon-moon,:root[data-theme="dark"] .theme-toggle .icon-sun{display:block}
.theme-toggle .icon-sun,:root[data-theme="dark"] .theme-toggle .icon-moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-toggle .icon-sun{display:block}:root:not([data-theme="light"]) .theme-toggle .icon-moon{display:none}}
.notif{position:relative}
.notif summary{list-style:none;position:relative}
.notif summary::-webkit-details-marker{display:none}
.notif-count{position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;border:2px solid var(--bg);border-radius:99px;background:var(--red);color:#fff;font-size:9.5px;font-weight:600;line-height:12px;text-align:center}
.notif-panel{position:absolute;right:0;top:46px;z-index:40;width:min(380px,calc(100vw - 24px));max-height:70vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 18px 50px #0000001a}
.notif-panel h3{margin:0;padding:14px 16px 10px;font-size:14px}
.notif-panel a{display:grid;grid-template-columns:8px 1fr auto;gap:12px;align-items:start;padding:10px 16px;border-top:1px solid var(--line-soft);text-decoration:none}
.notif-panel a:hover{background:var(--surface-2)}
.notif-panel i{width:7px;height:7px;margin-top:7px;border-radius:50%;background:var(--blue)}
.notif-panel i.red{background:var(--red)}.notif-panel i.orange{background:var(--orange)}
.notif-panel b{display:block;font-size:13px;font-weight:500}
.notif-panel small{font-size:12px}
.notif-panel strong{font-size:12.5px;font-weight:500;white-space:nowrap}

/* Панели и плитки */
.card{min-width:0;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface)}
.card-pad{padding:22px}
.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 20px 12px;font-size:15px;font-weight:600}
.card-title a{color:var(--muted);font-size:13px;font-weight:400;text-decoration:none}
.card-title a:hover{color:var(--ink)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line-soft)}
.panel-head h2{display:flex;align-items:center;gap:10px;margin:0;font-size:17px}
.panel-head h2 .app-icon{width:20px;height:20px}
.panel-body{padding:16px 20px 20px}
.cards,.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.tiles{margin-bottom:0}
.metric,.tile{min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.cards .card.metric{border-color:var(--line);border-radius:var(--radius-md)}
.metric small,.tile small{display:block;font-size:13px}
.metric b,.tile b{display:block;margin-top:6px;font-size:24px;font-weight:500;letter-spacing:-.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric span,.tile span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.metric.negative b,.tile b.negative{color:var(--red)}
.tile{text-decoration:none;transition:border-color .15s}
a.tile:hover{border-color:color-mix(in srgb,var(--ink) 22%,var(--line))}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(430px,100%),1fr));gap:14px;margin-top:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));gap:14px;margin-top:14px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:24px 0 10px}
.section-title h3{margin:0;font-size:16px}
.legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:var(--ink-2);font-size:13px}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:10px;height:10px;border-radius:50%;background:var(--orange)}
.legend i.prev{background:var(--surface-3)}
.legend i.bars{border-radius:3px;background:repeating-linear-gradient(45deg,var(--blue) 0 1.5px,transparent 1.5px 4px)}

/* Таблицы */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.toolbar input[data-filter]{width:280px;margin:0;border-color:transparent;background:var(--surface-2)}
.toolbar-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12.5px}
.toolbar-meta b{color:var(--ink);font-weight:500}
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}
.filters label{display:grid;font-size:12px;font-weight:400;color:var(--muted)}
.filters input,.filters select{min-height:36px;margin-top:4px;padding:6px 10px;font-size:13px}
.filters input[type=date]{width:150px}.filters select{width:170px}
.filters .button,.filters .button-ghost{min-height:36px}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:12px 16px;border-top:1px solid var(--line-soft);text-align:left;vertical-align:middle}
th{border-top:0;color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}
tbody tr{transition:background .12s}
tbody tr:hover{background:var(--surface-2)}
td b{font-weight:500}
th[data-sortable]{cursor:pointer;user-select:none}
th[data-sortable]:hover{color:var(--ink)}
th[data-sortable]::after{content:"↕";margin-left:5px;opacity:0;font-size:10px;transition:opacity .12s}
th[data-sortable]:hover::after{opacity:.5}
th[aria-sort="ascending"]::after{content:"↑";opacity:1;color:var(--ink)}
th[aria-sort="descending"]::after{content:"↓";opacity:1;color:var(--ink)}
td.amount,th.amount{text-align:right;white-space:nowrap}
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.row-actions form{margin:0}
.row-actions .button-ghost{min-height:30px;padding:5px 9px;font-size:12px}
.edit-icon{display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:15px;line-height:1}
.edit-icon:hover{background:var(--surface-2)}

/* Модальные окна */
.modal{position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:20px;background:var(--overlay);backdrop-filter:blur(3px)}
.modal.show{display:grid;animation:fade .15s ease}
.dialog{width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:24px;border-radius:var(--radius);box-shadow:0 30px 80px #0000002a}
.dialog-wide{width:min(820px,calc(100vw - 32px))}
.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dialog-top h2{margin:0;font-size:20px}
.dialog-top p{margin:5px 0 0;color:var(--muted);font-size:13px}
.close{border:0;background:none;color:var(--muted);font-size:24px;line-height:1;text-decoration:none;cursor:pointer}
.close:hover{color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.field.full{grid-column:1/-1}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}

/* Вход */
.auth-body{display:grid;place-items:center;padding:24px;background:var(--bg)}
.auth-card{width:min(420px,100%);padding:32px;border:1px solid var(--line-soft);border-radius:24px;background:var(--surface)}
.auth-brand{display:flex;align-items:center;gap:10px;font-weight:600}
.auth-brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--ink);color:var(--surface)}
.auth-card h1{margin:26px 0 6px;font-size:24px}
.auth-card>p{color:var(--muted)}
.auth-card .button{width:100%}

/* Dashboard */
.dash-panel{margin-bottom:14px}
.chart-box{position:relative;height:320px}
.chart-box svg{display:block;width:100%;height:100%;overflow:visible}
.chart-box .grid-line{stroke:var(--line);stroke-dasharray:2 4}
.chart-box .axis{fill:var(--muted);font-size:11.5px}
.chart-box .line{fill:none;stroke:var(--orange);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-box .prev{fill:none;stroke:var(--muted);stroke-opacity:.55;stroke-width:1.6;stroke-dasharray:4 5;stroke-linejoin:round}
.chart-box .bar{fill:url(#hatch-blue)}
.chart-box .guide{stroke:var(--ink);stroke-opacity:.15}
.chart-box .dot{fill:var(--surface);stroke:var(--orange);stroke-width:2}
.chart-tip{position:absolute;z-index:3;min-width:200px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px #0000001a;font-size:12.5px;pointer-events:none;transform:translate(-50%,calc(-100% - 12px))}
.chart-tip b{display:block;margin-bottom:6px;font-weight:600}
.chart-tip div{display:flex;justify-content:space-between;gap:14px;color:var(--ink-2)}
.chart-tip div span:last-child{font-variant-numeric:tabular-nums}
.chart-tip i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%}
.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dash-wide{grid-column:1/-1}
.bar-list{display:grid;gap:2px;padding:0 8px 12px}
.bar-list>a,.bar-list>div{display:grid;gap:7px;padding:9px 12px;border-radius:12px;text-decoration:none;transition:background .12s}
.bar-list>a:hover{background:var(--surface-2)}
.bar-row{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.bar-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.bar-row b{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.bar-row small{margin-left:6px;font-weight:400}
.bar-track{height:6px;overflow:hidden;border-radius:99px;background:var(--surface-2)}
.bar-track em{display:block;height:100%;border-radius:99px;background:var(--ink);opacity:.8;transform-origin:left;animation:grow-x .9s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(.15s + var(--d,0) * 60ms)}
.bar-track em.p{background:var(--p);opacity:1}
.payment-list{padding:0 8px 10px}
.payment-list>a{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;text-decoration:none;transition:background .12s}
.payment-list>a:hover{background:var(--surface-2)}
.payment-list time{display:grid;place-content:center;width:42px;height:42px;border-radius:11px;background:var(--surface-2);text-align:center;font-size:10px;color:var(--muted)}
.payment-list time b{font-size:14px;color:var(--ink);font-weight:600}
.payment-list time.overdue{background:var(--red-soft);color:var(--red)}
.payment-list time.overdue b{color:var(--red)}
.payment-list>a>span{display:grid;gap:2px;min-width:0}
.payment-list>a>span>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.payment-list small{font-size:12px}
.payment-list strong{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.split{display:flex;height:8px;overflow:hidden;gap:3px;margin:4px 0 10px}
.split em{display:block;height:100%;border-radius:99px;background:var(--ink);opacity:.85;transform-origin:left;animation:grow-x .9s .2s cubic-bezier(.2,.7,.2,1) backwards}
.split em+em{background:var(--surface-3);opacity:1}
.split-legend{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted)}
.split-legend b{color:var(--ink);font-weight:500}

/* Календарь */
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-week div{padding:10px;text-align:center;color:var(--muted);font-size:12px}
.calendar-day{position:relative;min-height:118px;padding:9px;border-top:1px solid var(--line-soft);border-right:1px solid var(--line-soft);cursor:pointer;transition:background .12s}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.out{background:var(--surface-2);color:var(--muted)}
.calendar-day:hover,.calendar-day:focus{background:var(--surface-2);outline:0}
.calendar-day.today{box-shadow:inset 0 0 0 1.5px var(--ink)}
.day-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
.day-head small{font-size:10px;font-weight:500}
.event{display:block;margin-top:6px;padding:6px 7px;border-left:2px solid var(--p);border-radius:6px;background:var(--p-soft);color:var(--p-ink);font-size:11px}
.event-button,.tax-event{display:flex!important;flex-direction:column;align-items:stretch;width:100%;border:0;text-align:left;font:inherit;cursor:pointer;text-decoration:none}
.event-button span,.tax-event span{font-weight:600;margin-top:2px}
.event-button small,.tax-event small{display:block;margin-top:3px;font-size:9.5px;line-height:1.2;color:inherit;opacity:.8}
.event-button.status-paid{border-left-color:var(--green);background:var(--green-soft);color:var(--green)}
.event-button.status-cancelled{border-left-color:var(--muted);background:var(--surface-2);color:var(--muted);text-decoration:line-through}
.event-button.priority-high{box-shadow:inset 2px 0 #f59e0b}
.event-button.priority-urgent{box-shadow:inset 2px 0 var(--red)}
.tax-event{border-left-color:var(--orange);background:var(--orange-soft);color:var(--orange)}
.calendar-event-wrap{position:relative}
.calendar-event-wrap .event-button{padding-right:30px}
.calendar-edit{position:absolute;right:5px;top:12px;z-index:2;display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:12px}
.payment-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
.payment-details>div{padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.payment-details .full{grid-column:1/-1}
.payment-details small{display:block;margin-bottom:4px}
.payment-details p{margin:0;white-space:pre-wrap}
.detail-actions,.status-form{display:flex;align-items:center;gap:10px}
.detail-actions{justify-content:space-between;padding-top:16px;border-top:1px solid var(--line-soft)}
.status-form select{min-width:160px;margin:0}

/* Банк */
.seg{display:inline-flex;gap:2px;flex-wrap:wrap;margin-bottom:14px}
.seg a{padding:8px 14px;border-radius:10px;color:var(--ink-2);font-size:13.5px;text-decoration:none}
.seg a:hover{color:var(--ink)}
.seg a.active{background:var(--surface-3);color:var(--ink);font-weight:500}
.reconcile{display:flex;flex-direction:column;gap:6px;min-width:250px}
.reconcile form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}
.reconcile select{width:auto;max-width:210px;min-height:32px;margin:0;padding:5px 8px;font-size:12px}
.reconcile .button,.reconcile .button-ghost{min-height:32px;padding:5px 10px;font-size:12px}
.tx-income{color:var(--green)}
.tx-match{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.account-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--line-soft)}
.account-row span{flex:1;min-width:160px}
.account-row select{width:auto;margin:0}

/* Сдержанная анимация: появление и прорисовка */
@keyframes rise{from{opacity:0;transform:translateY(6px)}}
@keyframes fade{from{opacity:0}}
@keyframes grow-x{from{transform:scaleX(0)}}
@keyframes grow-y{from{transform:scaleY(0)}}
@keyframes draw{from{stroke-dashoffset:var(--len)}}
.content>*{animation:rise .4s cubic-bezier(.2,.7,.2,1) backwards}
.content>*:nth-child(2){animation-delay:.04s}.content>*:nth-child(3){animation-delay:.08s}.content>*:nth-child(4){animation-delay:.12s}.content>*:nth-child(5){animation-delay:.16s}.content>*:nth-child(n+6){animation-delay:.2s}
.chart-box .bar{transform-box:fill-box;transform-origin:bottom;animation:grow-y .7s cubic-bezier(.2,.7,.2,1) backwards}
.chart-box .line{stroke-dasharray:var(--len);animation:draw 1.3s .1s cubic-bezier(.4,.2,.2,1) backwards}
.chart-box .prev{animation:fade .8s .3s backwards}

/* Адаптив */
.menu-toggle,.sidebar-close,.sidebar-overlay{display:none}
@media(max-width:1300px){.dash-grid{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){
  .sidebar{width:72px;padding:16px 10px}
  .brand span,.nav span,.nav-group,.nav .count,.side-user-info,.side-user a{display:none}
  .brand{justify-content:center;margin:0 0 16px}
  .nav a{justify-content:center;padding:0}
  .side-user{justify-content:center;padding:10px 0 0}
  .shell{margin-left:72px}
  .content{padding:8px 20px 32px}
  .top-name{display:none}
}
@media(max-width:900px){
  .payment-details{grid-template-columns:1fr}.payment-details .full{grid-column:auto}
  .detail-actions,.status-form{align-items:stretch;flex-direction:column}
  .calendar-grid{min-width:860px}.card:has(.calendar-grid){overflow:auto}
  .dash-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  body.menu-open{overflow:hidden}
  .shell{margin-left:0}
  .topbar{gap:8px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}
  .menu-toggle{display:grid;flex:0 0 38px;width:38px;height:38px;place-content:center;gap:4px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}
  .menu-toggle span{display:block;width:16px;height:1.6px;border-radius:2px;background:var(--ink)}
  .search{flex:1;width:auto;min-width:0}
  .sidebar{width:min(290px,86vw);z-index:60;padding:16px 12px;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 45px #0002}
  .menu-open .sidebar{transform:none}
  .sidebar .brand span,.sidebar .nav span,.sidebar .nav-group,.sidebar .nav .count,.sidebar .side-user-info,.sidebar .side-user a{display:block}
  .sidebar .brand{justify-content:flex-start;margin:0 8px 16px}
  .sidebar .nav a{justify-content:flex-start;padding:0 11px}
  .sidebar .side-user{justify-content:flex-start;padding:12px 8px 0}
  .sidebar-close{display:grid;place-items:center;width:32px;height:32px;margin-left:auto;padding:0;border:0;border-radius:9px;background:var(--surface-2);color:var(--ink-2);font-size:22px;cursor:pointer}
  .sidebar-overlay{position:fixed;inset:0;z-index:55;display:block;border:0;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .22s}
  .menu-open .sidebar-overlay{opacity:1;pointer-events:auto}
  .content{padding:6px 12px 30px}
  .pagehead{align-items:flex-start;flex-direction:column}
  .pagehead h1{font-size:23px}
  .actions{width:100%}.actions>*{flex:1}
  .cards,.tiles{grid-template-columns:1fr 1fr}
  .metric b,.tile b{font-size:20px}
  .toolbar{align-items:stretch;flex-direction:column}
  .toolbar input[data-filter]{width:100%}
  .filters label,.filters input[type=date],.filters select{width:100%}
  .filters label{flex:1 1 140px}
  .form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
  .chart-box{height:240px}
  .panel-head{flex-wrap:wrap}
  .notif-panel{position:fixed;left:12px;right:12px;top:60px;width:auto}
}
@media(max-width:430px){.cards,.tiles{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ===== v3 · «вау»-слой: таблетки, hero-карточка, капсульный график ===== */
:root{--radius:26px;--radius-md:20px;--shadow-soft:0 1px 0 #ffffff inset,0 10px 30px -18px #1d1a4a40}
:root[data-theme="dark"]{--shadow-soft:0 10px 30px -18px #000}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--shadow-soft:0 10px 30px -18px #000}}
.card{border-color:transparent;box-shadow:var(--shadow-soft)}
.button,.button-ghost,.chip,.icon-button,.danger,.seg a{border-radius:999px}
.button{background:var(--ink);color:var(--surface)}
.button:hover{background:color-mix(in srgb,var(--ink) 82%,var(--p))}
.button-ghost{background:var(--surface)}
.search{border-radius:999px}
.tag,.status,.badge{border-radius:999px}

/* Меню: активный пункт — тёмная таблетка с иконкой в круге */
.nav a{height:40px;border-radius:999px;padding:0 6px 0 5px}
.nav em{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;transition:background .15s}
.nav a.active{background:var(--p-soft);color:var(--p-ink);font-weight:600}
.nav a.active em{background:linear-gradient(135deg,#8a7bff,#5b4be0);color:#fff;box-shadow:0 4px 12px #5b4be04d}
.nav a.active .count{background:var(--surface);color:var(--p-ink)}
.brand i{border-radius:50%;background:linear-gradient(135deg,#7c6cf5,#4a3ad0);color:#fff;box-shadow:0 6px 16px #5b4be04d}

/* Промо-плашка в шапке */
.promo{display:flex;align-items:center;gap:10px;min-width:0;max-width:640px;height:40px;margin-left:8px;padding:0 6px 0 14px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-soft);font-size:13px;text-decoration:none;color:var(--ink-2)}
.promo>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.promo b{color:var(--ink);font-weight:600}
.promo-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 18%,transparent)}
.promo-dot.red{background:var(--red);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 18%,transparent);animation:beat 2s ease-in-out infinite}
.promo-dot.orange{background:var(--orange)}
.promo-cta{flex:0 0 auto;padding:6px 12px;border-radius:999px;background:var(--surface-2);color:var(--p-ink);font-weight:600}
@keyframes beat{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--red) 6%,transparent)}}

/* Заголовок страницы крупнее */
.pagehead h1{font-size:34px;letter-spacing:-1.1px;line-height:1.1}
.round-btn{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #0000000f;font-style:normal;transition:transform .2s ease,background .2s}
.round-btn .app-icon{width:18px;height:18px}
.round-btn.accent{background:linear-gradient(135deg,#8a7bff,#5b4be0);color:#fff;box-shadow:0 8px 20px #5b4be066}
a:hover>.kpi-top .round-btn,.round-btn:hover{transform:rotate(45deg)}

/* KPI-ряд */
.kpi-grid{display:grid;grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.kpi,.hero-card{position:relative;display:flex;flex-direction:column;min-height:200px;padding:22px 24px;overflow:hidden;border-radius:var(--radius);text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.kpi:hover,.hero-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -24px #3a2fa080}
.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;font-size:15px;color:var(--ink-2)}
.kpi b,.hero-value{display:block;margin-top:auto;padding-top:24px;font-size:clamp(26px,2.3vw,38px);font-weight:500;letter-spacing:-1.4px;line-height:1.05;white-space:nowrap;font-variant-numeric:tabular-nums}
.kpi b.negative{color:var(--red)}
.kpi-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:12.5px}
.kpi{background:var(--surface)}
.kpi.tint-violet{background:radial-gradient(130% 120% at 100% 0%,#efeaff 0,transparent 55%),radial-gradient(90% 90% at 0% 100%,#f3f0ff,transparent 60%),var(--surface)}
.kpi.tint-peach{background:radial-gradient(130% 120% at 100% 0%,#fff0e6 0,transparent 55%),radial-gradient(90% 90% at 0% 100%,#fff6f0,transparent 60%),var(--surface)}
.kpi.tint-mint{background:radial-gradient(130% 120% at 100% 0%,#e6f8ef 0,transparent 55%),radial-gradient(90% 90% at 0% 100%,#f0fbf5,transparent 60%),var(--surface)}
:root[data-theme="dark"] .kpi.tint-violet{background:radial-gradient(130% 120% at 100% 0%,#2a2450,transparent 60%),var(--surface)}
:root[data-theme="dark"] .kpi.tint-peach{background:radial-gradient(130% 120% at 100% 0%,#3a2619,transparent 60%),var(--surface)}
:root[data-theme="dark"] .kpi.tint-mint{background:radial-gradient(130% 120% at 100% 0%,#143024,transparent 60%),var(--surface)}
.pill-delta{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.pill-delta.good{background:var(--green-soft);color:var(--green)}
.pill-delta.bad{background:var(--red-soft);color:var(--red)}
.pill-delta.dark{background:var(--ink);color:var(--surface)}
.pill-soft{padding:4px 10px;border-radius:999px;background:#ffffff1f;color:#fff;font-weight:500}

/* Hero: тёмная карточка с «живым» свечением */
.hero-card{color:#fff;background:#0c0b1a;min-height:220px}
.hero-card .kpi-top{color:#c9c6e8;z-index:1}
.hero-card .kpi-meta{z-index:1;color:#b8b4da}
.hero-value{position:relative;z-index:1;font-size:clamp(32px,3vw,48px)}
.hero-glow{position:absolute;inset:-40%;background:radial-gradient(35% 40% at 75% 30%,#6d5cff99,transparent 70%),radial-gradient(30% 35% at 20% 85%,#2fb3ff55,transparent 70%),radial-gradient(25% 30% at 95% 95%,#ff6ad566,transparent 70%);filter:blur(10px);animation:drift 14s ease-in-out infinite alternate;pointer-events:none}
@keyframes drift{to{transform:translate(-6%,4%) rotate(8deg) scale(1.08)}}
.hero-spark{position:absolute;left:0;right:0;bottom:0;z-index:0;height:64px;opacity:.85;pointer-events:none}
.hero-card{padding-bottom:84px}
.hero-card .kpi-top,.hero-card .kpi-meta,.hero-value{position:relative;z-index:1}
.hero-card .kpi-meta span:last-child{text-shadow:0 1px 8px #0c0b1a}
.hero-spark svg{display:block;width:100%;height:100%;overflow:visible}

/* Ряды Dashboard */
.dash-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.dash-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding:20px 22px 8px}
.card-head h3{margin:0;font-size:18px;letter-spacing:-.4px}
.card-head small{display:block;margin-top:3px;font-size:12.5px}
.legend .dot-p{background:linear-gradient(180deg,#8a7bff,#5b4be0)}
.legend .dot-muted{background:var(--surface-3)}

/* Капсульный график: сумма — чистым текстом над капсулой, «год назад» — риска */
.chart-card{display:flex;flex-direction:column}
.pill-chart{position:relative;display:flex;flex:1;align-items:flex-end;gap:clamp(6px,1.1vw,16px);min-height:280px;padding:64px 22px 0}
.pill-col{display:flex;flex:1;flex-direction:column;align-items:center;gap:12px;height:100%;min-width:0;padding:0;border:0;background:none;color:var(--muted);cursor:pointer}
.pill-track{position:relative;display:block;width:min(100%,56px);flex:1}
.pill-fill{position:absolute;left:0;right:0;bottom:0;height:var(--h);min-height:12px;border-radius:999px;background:var(--surface-3);transform-origin:bottom;animation:grow-y .8s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--d) * 45ms);transition:background .25s,box-shadow .25s}
.pill-prev{position:absolute;left:-5px;right:-5px;bottom:var(--ph);height:2px;border-radius:2px;background:var(--ink);opacity:.28;transition:opacity .2s}
.pill-col.no-prev .pill-prev{display:none}
.pill-val{position:absolute;left:50%;bottom:calc(var(--h) + 8px);transform:translateX(-50%);color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap;transition:opacity .2s}
.pill-col small{font-size:12px;transition:color .2s}
.pill-col:hover .pill-fill{background:color-mix(in srgb,var(--p) 22%,var(--surface-3))}
.pill-col:hover .pill-val{color:var(--ink)}
.pill-col.zero .pill-fill{background:transparent;border:1.5px dashed var(--line)}
.pill-col.active .pill-fill{background:linear-gradient(180deg,#9f92ff 0%,#6c5ce7 55%,#5443d6 100%);box-shadow:0 14px 30px -10px #5b4be0aa}
.pill-col.active .pill-prev{background:#fff;opacity:.85}
.pill-col.active .pill-val{opacity:0}
.pill-col.active small{color:var(--p-ink);font-weight:600}
.pill-tip{position:absolute;top:0;left:0;z-index:2;padding:7px 13px;border-radius:999px;background:var(--ink);color:var(--surface);font-size:12.5px;font-weight:600;white-space:nowrap;transform:translate(-50%,0);transition:left .35s cubic-bezier(.2,.7,.2,1),top .35s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.pill-tip::after{content:"";position:absolute;left:calc(50% + var(--arrow,0px));bottom:-4px;width:8px;height:8px;background:inherit;transform:translateX(-50%) rotate(45deg);border-radius:2px}
.legend .tick{width:14px;height:2px;border-radius:2px;background:var(--ink);opacity:.35}
.chart-foot{padding:14px 22px 20px;color:var(--muted);font-size:12.5px}
.chart-foot b{color:var(--ink);font-weight:600}

/* Платёжный план: полоса недели и список */
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:8px 16px 6px}
.week-strip a{position:relative;display:grid;justify-items:center;gap:6px;padding:8px 0 12px;border-radius:999px;text-decoration:none;transition:background .15s}
.week-strip a:hover{background:var(--surface-2)}
.week-strip small{font-size:11.5px}
.week-strip b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:500}
.week-strip a.today b{background:linear-gradient(135deg,#8a7bff,#5b4be0);color:#fff;box-shadow:0 6px 16px #5b4be055}
.week-strip i{position:absolute;bottom:3px;width:5px;height:5px;border-radius:50%;background:var(--orange)}
.plan-list-v,.alert-list{display:grid;gap:2px;padding:6px 10px 14px}
.plan-list-v>a,.alert-list>a,.people>div,.people>a,.tx-list>a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;text-decoration:none;transition:background .15s}
.plan-list-v>a:hover,.alert-list>a:hover,.people>a:hover,.tx-list>a:hover{background:var(--surface-2)}
.ico{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:var(--surface-2);color:var(--ink-2)}
.ico .app-icon{width:19px;height:19px}
.ico.red{background:var(--red-soft);color:var(--red)}
.ico.orange{background:var(--orange-soft);color:var(--orange)}
.ico.blue{background:var(--blue-soft);color:var(--blue)}
.ico.green{background:var(--green-soft);color:var(--green)}
.plan-main{display:grid;gap:3px;flex:1;min-width:0}
.plan-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.plan-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.plan-list-v strong,.alert-list strong,.people strong,.tx-list strong{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.alert-list strong.neg{color:var(--red)}
.split-box{margin:8px 12px 0;padding:14px 0 0;border-top:1px solid var(--line-soft)}
.people{display:grid;gap:2px;padding:6px 10px 14px}
.people strong{display:grid;justify-items:end;gap:2px}
.people strong small{font-weight:400;font-size:11.5px}
.people .bar-track{margin-top:4px}
.ava{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:hsl(var(--h) 85% 93%);color:hsl(var(--h) 55% 38%);font-weight:600;font-size:15px}
:root[data-theme="dark"] .ava{background:hsl(var(--h) 40% 20%);color:hsl(var(--h) 80% 75%)}
.card .bar-list{padding:4px 10px 14px}

/* История расходов */
.tx-list{display:grid;gap:4px;padding:6px 12px 14px}
.tx-list>a{display:grid;grid-template-columns:42px minmax(0,2.2fr) minmax(90px,.8fr) minmax(0,1fr) minmax(110px,.7fr) 160px;gap:16px;padding:12px}
.tx-list>a:nth-child(odd){background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.tx-list>a:hover{background:var(--surface-3)}
.tx-date{color:var(--ink-2);font-size:13px}
.tx-list .tag{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tx-list strong{text-align:right}
.state{display:inline-flex;align-items:center;justify-self:end;gap:6px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}
.state .app-icon{width:14px;height:14px;stroke-width:2.4}
.state.ok{background:var(--green-soft);color:var(--green)}
.state.docs{background:var(--blue-soft);color:var(--blue)}
.state.warn{background:var(--orange-soft);color:var(--orange)}

@media(max-width:1500px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tx-list>a{grid-template-columns:42px minmax(0,2fr) 100px minmax(110px,.8fr) 150px}.tx-list .tag{display:none}}
@media(max-width:1250px){.promo{display:none}.dash-row,.dash-row.three{grid-template-columns:1fr}}
@media(max-width:760px){.card-head .legend{width:100%;gap:14px}.hero-card{padding-bottom:78px}.hero-spark{height:58px}.pill-tip{font-size:12px;padding:6px 11px}.pill-prev{left:-2px;right:-2px}.kpi-grid{grid-template-columns:1fr}.kpi{min-height:0}.kpi b{padding-top:14px}.hero-card{min-height:190px}.pill-chart{min-height:220px;gap:4px;padding:52px 10px 0}.pill-val{display:none}.pagehead h1{font-size:27px}.tx-list>a{grid-template-columns:42px minmax(0,1fr) auto}.tx-list .tx-date,.tx-list .tag,.tx-list .state{display:none}}

.pick-hint{display:block;margin-top:6px;font-size:12px;font-weight:400}
.month-row td{padding:20px 16px 8px;border-top:0;background:var(--surface)}
.month-row:hover{background:none}
.month-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.month-head b{font-size:14px;font-weight:600;color:var(--ink)}
.month-head span{color:var(--muted);font-size:12.5px}
.month-head strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.person{display:flex;align-items:center;gap:12px;min-width:220px}
.person>span:last-child{display:grid;gap:2px;min-width:0}
.person b{font-weight:500}
.person small{font-size:12px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person .ava{width:36px;height:36px;flex-basis:36px;font-size:14px}
.contract{display:grid;gap:6px;min-width:150px;font-size:12.5px}
.contract b.neg{color:var(--red)}
.bar-track em.over{background:var(--red);opacity:1}
.tx-month{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 12px 6px}
.tx-month:first-child{padding-top:4px}
.tx-month b{font-size:14px;font-weight:600}
.tx-month span{color:var(--muted);font-size:12.5px}
.tx-month strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.tx-list>a{background:transparent!important}
.tx-list>a:hover{background:var(--surface-2)!important}

/* ===== Календарь платежей ===== */
.k-planned{--kc:var(--p);--kb:var(--p-soft);--kt:var(--p-ink)}
.k-overdue,.k-tax-late{--kc:var(--red);--kb:var(--red-soft);--kt:var(--red)}
.k-paid,.k-tax-paid{--kc:var(--green);--kb:var(--green-soft);--kt:var(--green)}
.k-tax{--kc:var(--orange);--kb:var(--orange-soft);--kt:var(--orange)}
.k-cancelled{--kc:var(--muted);--kb:var(--surface-2);--kt:var(--muted)}
.k-entity{--kc:var(--ink);--kb:var(--surface-3);--kt:var(--ink)}
.cal-layout{display:grid;grid-template-columns:268px minmax(0,1fr);gap:14px;align-items:start}
.cal-side{position:sticky;top:76px;display:grid;padding:6px 0}
.cal-side-sec{padding:16px 20px;border-top:1px solid var(--line-soft)}
.cal-side-sec:first-child{border-top:0}
.cal-side h3{margin:0 0 12px;font-size:15px}
.cal-filter{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;cursor:pointer;user-select:none}
.cal-filter input{position:absolute;opacity:0;pointer-events:none}
.cal-filter .box{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:6px;background:var(--kb);border:1.5px solid color-mix(in srgb,var(--kc) 35%,transparent);transition:background .15s}
.cal-filter input:checked+.box{background:var(--kc);border-color:var(--kc)}
.cal-filter input:checked+.box::after{content:"";width:9px;height:5px;margin-top:-2px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg)}
.cal-filter input:focus-visible+.box{outline:2px solid var(--p);outline-offset:2px}
.cal-filter b{margin-left:auto;color:var(--muted);font-size:12px;font-weight:500}
.cal-filter-sep{height:1px;margin:8px 0;background:var(--line-soft)}
.mini-head{margin-bottom:8px;font-size:14px}
.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.mini-cal small{padding:4px 0;font-size:10.5px}
.mini-cal button{position:relative;display:grid;place-items:center;height:32px;padding:0 0 4px;border:0;border-radius:50%;background:none;color:var(--ink);font-size:12.5px;cursor:pointer}
.mini-cal button:hover{background:var(--surface-2)}
.mini-cal button.out{color:var(--muted);opacity:.55}
.mini-cal button.today{background:var(--ink);color:var(--surface);font-weight:600}
.mini-cal .dots{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:center;gap:2px}
.mini-cal .dots i{width:4px;height:4px;border-radius:50%;background:var(--kc)}
.mini-cal button.today .dots i{box-shadow:0 0 0 1px var(--ink)}
.cal-summary h3{margin-bottom:12px}
.sum-progress{display:grid;gap:7px;margin-bottom:12px;font-size:12.5px;color:var(--muted)}
.sum-progress b{color:var(--ink);font-size:18px;font-weight:600}
.sum-progress i{height:6px;overflow:hidden;border-radius:99px;background:var(--surface-3)}
.sum-progress em{display:block;height:100%;border-radius:99px;background:var(--green)}
.sum-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:13px}
.sum-row span{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.sum-row span i{width:8px;height:8px;border-radius:50%;background:var(--kc)}
.sum-row b{font-weight:600;font-variant-numeric:tabular-nums}.sum-row b.neg{color:var(--red)}
.cal-main{overflow:hidden}
.cal-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line-soft)}
.cal-head h2{margin:0;font-size:22px;letter-spacing:-.5px}
.cal-head h2 span{color:var(--muted);font-weight:500}
.view-toggle{display:inline-flex;margin-left:auto;padding:3px;border-radius:999px;background:var(--surface-2)}
.view-toggle button{padding:7px 16px;border:0;border-radius:999px;background:none;color:var(--ink-2);font-size:13px;font-weight:500;cursor:pointer}
.view-toggle button.active{background:var(--ink);color:var(--surface)}
.cal-nav{display:flex;gap:6px}
.cal-nav .icon-button{width:36px;min-height:36px;font-size:16px}
.cal-nav .button-ghost{min-height:36px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(118px,1fr)}
.cal-cell{display:flex;flex-direction:column;gap:5px;min-width:0;padding:8px;border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft);cursor:pointer;transition:background .12s;overflow:hidden}
.cal-cell:nth-child(7n+1){border-left:0}
.cal-cell:nth-child(-n+7){border-top:0}
.cal-cell:hover{background:var(--surface-2)}
.cal-cell.weekend{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.cal-cell.out .cal-cell-head b{color:var(--muted);opacity:.5}
.cal-cell.out .cal-items{opacity:.55}
.cal-cell-head{display:flex;align-items:center;gap:6px;min-height:26px}
.cal-cell-head b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;font-size:13px;font-weight:600}
.cal-cell.today .cal-cell-head b{background:var(--ink);color:var(--surface)}
.cal-cell-head small{color:var(--muted);font-size:11px}
.cal-cell-head em{margin-left:auto;color:var(--muted);font-size:11px;font-style:normal;font-variant-numeric:tabular-nums}
.cal-items{display:grid;gap:4px;min-width:0}
.cal-chip{display:flex;align-items:center;gap:6px;min-width:0;padding:5px 7px;border-radius:7px;background:var(--kb);color:var(--kt);font-size:11.5px;line-height:1.25}
.cal-chip b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.cal-chip span{flex:0 0 auto;font-weight:600;font-variant-numeric:tabular-nums}
.cal-chip.k-cancelled b{text-decoration:line-through}
.cal-group{display:flex;align-items:center;gap:7px;padding:4px 5px 4px 7px;border-radius:7px;background:var(--kb);color:var(--kt);font-size:11.5px}
.cal-group i{font-style:normal;font-weight:700;width:12px;text-align:center}
.cal-group span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-group b{display:grid;place-items:center;min-width:20px;height:18px;padding:0 5px;border-radius:5px;background:var(--kc);color:#fff;font-size:11px}
.day-list{display:grid;gap:6px;margin-top:16px}
.day-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--kb)}
.day-row .k-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface);color:var(--kc);font-style:normal;font-weight:700}
.day-main{display:grid;gap:2px;min-width:0;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.day-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--ink)}
.day-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.day-row strong{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.day-actions{display:flex;align-items:center;gap:6px}
.day-actions form{margin:0}
.day-actions .button,.day-actions .button-ghost{min-height:32px;padding:5px 12px;font-size:12.5px}
.cal-list{padding:8px 16px 16px}
.list-day{padding:10px 0;border-top:1px solid var(--line-soft)}
.list-day:first-child{border-top:0}
.list-day-head{display:flex;justify-content:space-between;gap:10px;padding:6px 4px 10px;font-size:13px}
.list-day-head b{font-weight:600}
.list-day-head span{color:var(--muted);font-variant-numeric:tabular-nums}
.list-day.today .list-day-head b::after{content:"сегодня";margin-left:8px;padding:2px 8px;border-radius:99px;background:var(--ink);color:var(--surface);font-size:11px;text-transform:none}
.list-day .day-row{margin-bottom:6px}
.pf-list{display:grid;gap:4px;padding:6px 12px 16px}
.pf-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(120px,2fr) repeat(3,minmax(100px,.8fr));align-items:center;gap:14px;padding:9px 10px;border-radius:12px;font-size:13px}
.pf-row:hover{background:var(--surface-2)}
.pf-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-bars{position:relative;display:grid;gap:3px}
.pf-bars i,.pf-bars em{display:block;height:5px;border-radius:99px;transform-origin:left;animation:grow-x .8s cubic-bezier(.2,.7,.2,1) backwards}
.pf-bars i{background:var(--surface-3)}
.pf-bars em{background:var(--p)}.pf-bars em.over{background:var(--red)}
.pf-num{display:grid;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.pf-num small{font-size:11px;font-weight:400}
.pf-num.neg{color:var(--red)}.pf-num.pos{color:var(--green)}
@media(max-width:1200px){.cal-layout{grid-template-columns:1fr}.cal-side{position:static;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.cal-side-sec{border-top:0}}
@media(max-width:760px){.cal-head{flex-wrap:wrap}.view-toggle{margin-left:0}.cal-nav{margin-left:auto}.cal-grid{grid-auto-rows:minmax(64px,auto)}.cal-cell{padding:4px}.cal-cell-head small,.cal-cell-head em{display:none}.cal-chip b,.cal-group span{display:none}.cal-chip,.cal-group{justify-content:center;padding:3px}.cal-chip span{font-size:10px}.day-row{grid-template-columns:30px minmax(0,1fr) auto}.day-actions{grid-column:2/-1;justify-content:flex-end}.pf-row{grid-template-columns:repeat(3,1fr);gap:8px 12px}.pf-name,.pf-bars{grid-column:1/-1}.pf-num{text-align:left}}
.cal-warning{margin:12px 16px}

/* Выбор нескольких расходов для займа */
.pick-box{display:grid;margin-top:8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;font-weight:400}
.pick-search{margin:0!important;border:0!important;border-bottom:1px solid var(--line-soft)!important;border-radius:0!important;background:var(--surface-2)!important;box-shadow:none!important}
.pick-list{max-height:280px;overflow-y:auto;padding:4px 6px}
.pick-month{position:sticky;top:0;z-index:1;padding:10px 8px 4px;background:var(--surface);color:var(--muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.pick-item{display:grid;grid-template-columns:20px 44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;border-radius:10px;color:var(--ink);font-size:13px;cursor:pointer}
.pick-item:hover{background:var(--surface-2)}
.pick-item.checked{background:var(--p-soft)}
.pick-item input{margin:0;width:16px;height:16px}
.pick-date{color:var(--muted);font-variant-numeric:tabular-nums}
.pick-name{display:grid;min-width:0}
.pick-name b,.pick-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pick-name b{font-weight:500}
.pick-name small{font-size:11.5px}
.pick-item strong{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.pick-item.match strong::before{content:"★ ";color:var(--orange)}
.pick-foot{padding:10px 14px;border-top:1px solid var(--line-soft);background:var(--surface-2);color:var(--muted);font-size:12.5px}
.pick-foot.ok{background:var(--green-soft);color:var(--green)}
.pick-foot.warn{background:var(--orange-soft);color:var(--orange)}
.pick-foot b{color:inherit;font-weight:700}
.link-btn{margin-left:6px;padding:0;border:0;background:none;color:var(--p-ink);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}
.warn-text{color:var(--orange)}.neg-text{color:var(--red)}

/* Скрытие сумм */
.privacy-toggle .icon-eye-off,.privacy .privacy-toggle .icon-eye{display:none}
.privacy .privacy-toggle .icon-eye-off{display:block}
.privacy .privacy-toggle{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.privacy [data-privacy-zone]:not([data-masked="1"]){visibility:hidden}
/* Если скрипт не сработал, страница всё равно появится через секунду */
.privacy body[data-privacy-zone]:not([data-masked="1"]){visibility:hidden;animation:privacy-reveal 0s 1.2s forwards}
@keyframes privacy-reveal{to{visibility:visible}}
.privacy .kpi b,.privacy .hero-value{letter-spacing:1px}

/* Команда: увольнение */
.row-muted td{color:var(--muted)}
.row-muted td b{color:var(--ink-2)}
a.card.metric{color:inherit;text-decoration:none}
.settle-table select{min-height:34px;margin:0;padding:6px 28px 6px 10px;font-size:13px;max-width:240px}
.settle-table td{vertical-align:middle}

/* Сверка займов: окно оформления */
.link-list{display:grid;gap:8px;margin-top:6px;max-height:260px;overflow:auto}
.link-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font-weight:400}
.link-option:has(input:checked){border-color:var(--p);background:var(--p-soft)}
.field .link-option input[type=radio]{display:inline-block;flex:none;width:16px;height:16px;min-height:0;margin:3px 0 0;padding:0;box-shadow:none;accent-color:var(--p)}
.link-option span{display:grid;gap:2px}
.link-option small{color:var(--muted)}
.settle-note{display:flex;align-items:center;justify-content:space-between;gap:16px;border-color:color-mix(in srgb,var(--orange) 35%,transparent);background:var(--orange-soft)}
.settle-note form{margin:0}

/* Аналитика. Серии — проверенная палитра для дальтоников, цвет закреплён за категорией */
:root{--s0:#9b9a97;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#6250d6;--fund:#0b0b0b;--h0:var(--surface-3);--h1:#cde2fb;--h2:#86b6ef;--h3:#3987e5;--h4:#256abf;--h5:#104281}
:root[data-theme="dark"]{--s0:#77767a;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--fund:#f0efec;--h1:#184f95;--h2:#1c5cab;--h3:#2a78d6;--h4:#5598e7;--h5:#9ec5f4}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s0:#77767a;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--fund:#f0efec;--h1:#184f95;--h2:#1c5cab;--h3:#2a78d6;--h4:#5598e7;--h5:#9ec5f4}}
.s0{--c:var(--s0)}.s1{--c:var(--s1)}.s2{--c:var(--s2)}.s3{--c:var(--s3)}.s4{--c:var(--s4)}.s5{--c:var(--s5)}.s6{--c:var(--s6)}.s7{--c:var(--s7)}
.an-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px}
.an-filters .seg{margin:0}
.an-compare{font-size:12px;color:var(--muted)}
.an-kpis{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.an-kpi{position:relative;display:flex;flex-direction:column;gap:8px;min-height:150px;padding:20px 22px;overflow:hidden;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}
.an-kpi small{font-size:13px;color:var(--muted)}
.an-kpi b{font-size:clamp(24px,2.4vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.an-kpi>span{font-size:12px;color:var(--muted)}
.an-kpi-hero{padding-bottom:70px;color:#fff;background:radial-gradient(120% 140% at 100% 0,#3b2fb0 0,#141238 45%,#0c0b1a 100%);border-color:transparent}
.an-kpi-hero small,.an-kpi-hero>span{color:#c9c6e8}
.an-kpi-hero b.neg{color:#ff9b9b}
.an-spark{position:absolute;left:0;right:0;bottom:8px;width:100%;height:54px}
.an-spark-line{fill:none;stroke:#a99cff;stroke-width:2;vector-effect:non-scaling-stroke}
.an-delta{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--ink-2)}
.an-delta.good{background:var(--green-soft);color:var(--green)}
.an-delta.bad{background:var(--red-soft);color:var(--red)}
.an-delta-note{margin-left:6px;font-size:12px;color:var(--muted)}
.an-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.an-span-4{grid-column:span 4}.an-span-6{grid-column:span 6}.an-span-8{grid-column:span 8}.an-span-12{grid-column:span 12}
.an-card{padding:20px 22px;min-width:0}
.an-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.an-head h3{margin:0;font-size:17px}
.an-head small{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.an-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:8px;font-size:12px;color:var(--ink-2)}
.an-legend span{display:inline-flex;align-items:center;gap:6px}
.an-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:3px;background:var(--c,var(--s1))}
.an-fund-key{display:inline-block;flex:none;width:14px;height:2px;border-radius:2px;background:var(--fund)}
.an-chart{width:100%;min-height:300px}
.an-chart-sm{min-height:200px}
.an-svg{display:block;width:100%;height:auto;overflow:visible}
.an-axis{font-size:11px;fill:var(--muted)}
.an-grid-line{stroke:var(--line-soft);stroke-width:1}
.an-zero{stroke:var(--line);stroke-width:1}
.an-hit{fill:transparent}
.an-col:hover .an-hit{fill:color-mix(in srgb,var(--p) 6%,transparent)}
.an-seg{fill:var(--c)}
.an-fund{stroke:var(--fund);stroke-width:2.5;stroke-linecap:round}
.an-line{fill:none;stroke:var(--s1);stroke-width:2;stroke-linejoin:round}
.an-area{fill:color-mix(in srgb,var(--s1) 14%,transparent)}
.an-cross{stroke:var(--line);stroke-dasharray:3 3}
.an-point{fill:var(--s1);stroke:var(--surface);stroke-width:2}
.an-point.neg{fill:var(--red)}
.an-bars{display:grid;gap:14px}
.an-bar-top{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.an-bar-top span{display:inline-flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-bar-top small{color:var(--muted)}
.an-track{height:8px;margin:6px 0 3px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.an-track span{display:block;height:100%;border-radius:999px;background:repeating-linear-gradient(135deg,var(--c),var(--c) 5px,color-mix(in srgb,var(--c) 70%,var(--surface)) 5px,color-mix(in srgb,var(--c) 70%,var(--surface)) 9px)}
.an-bar>small{font-size:11px;color:var(--muted)}
.an-heat{overflow-x:auto;padding-bottom:4px}
.an-heat-svg{min-width:720px}
.an-cell{fill:var(--h0)}
.an-cell.h1{fill:var(--h1)}.an-cell.h2{fill:var(--h2)}.an-cell.h3{fill:var(--h3)}.an-cell.h4{fill:var(--h4)}.an-cell.h5{fill:var(--h5)}
.an-cell:hover{stroke:var(--ink);stroke-width:1.5}
.an-scale{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--muted);white-space:nowrap}
.an-cell-key{display:inline-block;width:11px;height:11px;border-radius:3px;background:var(--h0)}
.an-cell-key.h1{background:var(--h1)}.an-cell-key.h2{background:var(--h2)}.an-cell-key.h3{background:var(--h3)}.an-cell-key.h4{background:var(--h4)}.an-cell-key.h5{background:var(--h5)}
.an-cell-key:first-child{margin-left:4px}.an-cell-key:last-child{margin-right:4px}
.an-donut{display:flex;flex-direction:column;align-items:center;gap:14px}
.an-donut-svg{width:180px;height:180px}
.an-arc{fill:none;stroke:var(--c);stroke-width:20;cursor:pointer;transition:stroke-width .15s}
.an-arc:hover{stroke-width:24}
.an-donut-big{font-size:30px;font-weight:600;fill:var(--ink)}
.an-donut-list{display:grid;gap:8px;width:100%}
.an-donut-list div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;font-size:13px}
.an-donut-list small{grid-column:2/4;margin-top:-4px;color:var(--muted);font-size:11px}
.an-dots-peak{display:inline-block;margin-bottom:12px;padding:4px 10px;border-radius:999px;background:var(--surface-2);font-size:12px;color:var(--muted)}
.an-dots-peak b{color:var(--ink)}
.an-dots-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end}
.an-dots-col{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.an-dots-col b{font-size:12px;color:var(--ink-2);font-weight:500}
.an-dots-stack{display:flex;flex-direction:column-reverse;gap:4px;min-height:132px;justify-content:flex-start}
.an-dots-stack i{width:12px;height:12px;border-radius:50%;background:var(--h2)}
.an-dots-col.peak .an-dots-stack i{background:var(--h4)}
.an-dots-col.peak small{color:var(--ink);font-weight:600}
.an-insight{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;padding:22px;overflow:hidden;border-radius:var(--radius);color:#fff;background:radial-gradient(90% 70% at 100% 0,#ff9a62 0,transparent 60%),radial-gradient(80% 80% at 0 100%,#1f3fb8 0,transparent 70%),linear-gradient(160deg,#f6c9a4,#5b6fd8 55%,#13207a);box-shadow:var(--shadow-soft)}
.an-insight-tag{position:absolute;top:18px;left:20px;padding:5px 11px;border-radius:999px;background:#ffffff2e;backdrop-filter:blur(6px);font-size:12px}
.an-insight-slide{display:none}
.an-insight-slide.active{display:block;animation:an-fade .4s ease}
.an-insight-slide b{display:block;font-size:clamp(40px,4.4vw,64px);font-weight:600;letter-spacing:-.03em;line-height:1}
.an-insight-slide h4{margin:12px 0 6px;font-size:17px;line-height:1.25}
.an-insight-slide p{margin:0;font-size:13px;line-height:1.45;color:#ffffffd9}
.an-insight-nav{display:flex;gap:6px;margin-top:18px}
.an-insight-nav button{flex:1;height:3px;padding:0;border:0;border-radius:3px;background:#ffffff4d;cursor:pointer}
.an-insight-nav button.active{background:#fff}
@keyframes an-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.an-company-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.an-cv{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;background:var(--surface-2)}
.an-cv small{font-size:12px;color:var(--muted)}
.an-cv b{font-size:22px;font-weight:600;letter-spacing:-.01em}
.an-cv span{font-size:11px;color:var(--muted)}
.an-cv-soon{border:1px dashed var(--line);background:transparent}
.an-cv-soon b{color:var(--muted)}
.an-modules{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;font-size:12px;color:var(--muted)}
.an-modules>div{display:flex;flex-wrap:wrap;gap:6px}
.an-tip{position:fixed;z-index:200;min-width:180px;max-width:280px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 34px -12px rgba(0,0,0,.28);font-size:12px;pointer-events:none}
.an-tip-title{margin-bottom:6px;font-weight:600;color:var(--ink)}
.an-tip-row{display:flex;align-items:center;gap:7px;padding:2px 0;color:var(--ink-2)}
.an-tip-row b{margin-left:auto;color:var(--ink);font-weight:600}
.an-tip-sep{height:1px;margin:6px 0;background:var(--line-soft)}
@media (max-width:1100px){.an-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.an-span-4,.an-span-6,.an-span-8{grid-column:span 12}.an-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.an-kpis,.an-company-grid{grid-template-columns:1fr}.an-card{padding:16px}.an-kpi{min-height:0}.an-kpi-hero{min-height:170px}}
@media (prefers-reduced-motion:reduce){.an-insight-slide.active{animation:none}}
.an-heat-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.an-heat-stats>div{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:12px;background:var(--surface-2)}
.an-heat-stats small{font-size:11px;color:var(--muted)}
.an-heat-stats b{font-size:18px;font-weight:600}
.an-heat-stats span{font-size:11px;color:var(--muted)}
@media (max-width:640px){.an-heat-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Разработка и отчёты */
.rm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.rm-kpi{display:flex;flex-direction:column;gap:6px;min-height:150px;padding:20px 22px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft)}
.rm-kpi small{font-size:13px;color:var(--muted)}
.rm-kpi b{font-size:clamp(26px,2.6vw,38px);font-weight:600;letter-spacing:-.02em;line-height:1.1}
.rm-kpi span{margin-top:auto;font-size:12px;color:var(--muted)}
.rm-kpi-dark{position:relative;color:#fff;background:#141414;border-color:transparent}
.rm-kpi-dark small,.rm-kpi-dark span{color:#b9b9b9}
.rm-kpi-warn{background:color-mix(in srgb,var(--red-soft) 70%,var(--surface));border-color:color-mix(in srgb,var(--red) 25%,transparent)}
.rm-kpi-warn b{color:var(--red)}
.rm-kpi-green{background:#b9f5a8;border-color:transparent;color:#10210b}
.rm-kpi-green small,.rm-kpi-green span{color:#2f4a27}
.rm-gauge{position:relative;width:130px;margin-top:4px}
.rm-gauge svg{display:block;width:100%;height:auto}
.rm-gauge path{fill:none;stroke-width:12;stroke-linecap:round}
.rm-gauge-bg{stroke:#ffffff1f}
.rm-gauge-fill{stroke:#a6f08f;stroke-dasharray:calc(var(--p)*1) 100}
.rm-gauge b{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:26px}
.rm-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.rm-span-4{grid-column:span 4}.rm-span-8{grid-column:span 8}.rm-span-12{grid-column:span 12}
.rm-card{padding:20px 22px;min-width:0}
.rm-nav{display:flex;gap:6px}
.rm-nav .round-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;color:var(--ink);text-decoration:none}
.rm-nav .round-btn:hover{background:var(--surface-2)}
.rm-gantt{overflow-x:auto}
.rm-row{display:grid;grid-template-columns:minmax(150px,220px) minmax(420px,1fr);align-items:center;gap:12px;min-height:46px}
.rm-label{display:flex;flex-direction:column;min-width:0}
.rm-label b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rm-label small{font-size:11px;color:var(--muted);white-space:nowrap}
.rm-track{position:relative;height:30px}
.rm-head .rm-track{height:26px;border-bottom:1px solid var(--line-soft)}
.rm-head .rm-track span{position:absolute;bottom:6px;padding-left:6px;font-size:11px;color:var(--muted)}
.rm-gridline{position:absolute;top:-8px;bottom:-8px;border-left:1px dashed var(--line-soft)}
.rm-today{position:absolute;top:0;height:9999px;border-left:2px solid var(--red);z-index:2;pointer-events:none}
.rm-today em{position:absolute;top:-2px;left:4px;font-size:10px;font-style:normal;font-weight:600;color:var(--red)}
.rm-gantt{position:relative;overflow-x:auto;overflow-y:hidden}
.rm-group{margin:14px 0 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rm-bar{--c:var(--s1);position:absolute;top:3px;height:24px;padding:0;overflow:hidden;border:1.5px solid var(--c);border-radius:8px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,transparent) 0 4px,transparent 4px 8px);cursor:pointer;z-index:1}
.rm-bar:disabled,.rm-bar:not([data-open]){cursor:default}
.rm-fill{position:absolute;inset:0 auto 0 0;background:var(--c)}
.rm-bar-text{position:relative;padding:0 8px;font-size:11px;font-weight:600;line-height:21px;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.st-planned{--c:var(--s0)}.st-in_progress{--c:var(--s1)}.st-review{--c:var(--s7)}.st-done{--c:var(--s3)}.st-paused{--c:var(--s4)}
.rm-bar.late{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 25%,transparent)}
.rm-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:12px;color:var(--ink-2)}
.rm-legend span{display:inline-flex;align-items:center;gap:6px}
.rm-key{display:inline-block;width:14px;height:10px;border-radius:3px;background:var(--c)}
.rm-key.late{background:transparent;border:1.5px solid var(--red)}
.rm-milestones{position:relative;margin:0;padding:0;list-style:none}
.rm-milestones::before{content:"";position:absolute;left:9px;top:10px;bottom:10px;border-left:2px solid var(--line)}
.rm-milestones li{position:relative;display:flex;gap:14px;padding:0 0 18px}
.rm-milestones li>i{flex:none;width:20px;height:20px;margin-top:2px;border:2px solid var(--line);border-radius:50%;background:var(--surface);z-index:1}
.rm-milestones li:first-child>i{border-color:var(--ink);background:var(--ink)}
.rm-milestones li.late>i{border-color:var(--red);background:var(--red-soft)}
.rm-milestones li div{display:flex;flex-direction:column;gap:2px}
.rm-milestones b{font-size:15px}
.rm-milestones li.late b{color:var(--red)}
.rm-milestones span{font-size:13px;color:var(--ink-2)}
.rm-milestones small{font-size:11px;color:var(--muted)}
.rm-people{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.rm-person{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border:1px dashed var(--line);border-radius:999px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}
.rm-person span:last-child{display:flex;flex-direction:column}
.rm-person b{font-size:13px;font-weight:500}
.rm-person small{font-size:11px;color:var(--muted)}
.rm-person.done{border-style:solid;border-color:transparent;background:var(--green-soft);cursor:default}
.rm-person.done small{color:var(--green)}
.rm-person .avatar,.rm-report .avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--p-soft);color:var(--p-ink);font-size:12px;font-weight:600}
.rm-reports{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:12px}
.rm-report{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--line-soft);border-radius:16px;background:var(--surface-2)}
.rm-report header{display:flex;align-items:center;gap:10px}
.rm-report header>div:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}
.rm-report header small{font-size:11px;color:var(--muted)}
.rm-report-body{display:grid;gap:10px}
.rm-report-body small{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.rm-report-body p{margin:3px 0 0;font-size:13px;line-height:1.5}
.rm-blockers{padding:8px 10px;border-radius:10px;background:var(--orange-soft)}
.rm-history{margin-top:18px}
.rm-history-head{margin-bottom:6px;color:var(--muted)}
.rm-cell{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 6px;border-radius:7px;font-size:12px;font-weight:600}
.rm-cell.ok{background:var(--green-soft);color:var(--green)}
.rm-cell.miss{background:var(--red-soft);color:var(--red)}
.rm-cell.wait{background:var(--surface-2);color:var(--muted)}
.rm-stage-delete{display:none}
@media (max-width:1100px){.rm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rm-span-4,.rm-span-8{grid-column:span 12}}
@media (max-width:640px){.rm-kpis{grid-template-columns:1fr}.rm-card{padding:16px}.rm-row{grid-template-columns:130px minmax(420px,1fr)}.rm-gantt{overflow-x:auto}}
.rm-bar.low .rm-bar-text{color:var(--ink);text-shadow:none}

/* Доходы и активы */
.an-income{fill:var(--s3);stroke:var(--surface);stroke-width:2}
.an-income-key{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:var(--s3)}
.an-cv-main{color:#10210b;background:#b9f5a8}
.an-cv-main small,.an-cv-main span{color:#2f4a27}
.cm-flow{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;align-items:end;height:230px}
.cm-flow-col{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.cm-flow-col small{font-size:11px;color:var(--muted)}
.cm-flow-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%}
.cm-flow-bars i{display:block;width:min(16px,40%);min-height:2px;border-radius:4px 4px 0 0}
.cm-flow-bars .out{background:var(--surface-3)}
.cm-flow-bars .in{background:var(--s3)}
.cm-wear{width:80px;height:6px;margin-bottom:3px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.cm-wear span{display:block;height:100%;border-radius:999px;background:var(--s1)}
.cm-value{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.cm-value-hero,.cm-method{display:flex;flex-direction:column;gap:8px;min-height:170px;padding:22px;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.cm-value-hero{color:#fff;background:#141414}
.cm-value-hero small,.cm-value-hero span{color:#b9b9b9;font-size:12px}
.cm-value-hero b{margin-top:auto;font-size:clamp(30px,3.4vw,48px);font-weight:600;letter-spacing:-.02em}
.cm-method{border:1px solid var(--line-soft);background:var(--surface)}
.cm-method small{font-size:12px;color:var(--muted)}
.cm-method b{margin-top:auto;font-size:24px;font-weight:600}
.cm-method span{font-size:11px;color:var(--muted)}
.cm-method.active{border-color:transparent;background:#b9f5a8;color:#10210b}
.cm-method.active small,.cm-method.active span{color:#2f4a27}
@media (max-width:1100px){.cm-value{grid-template-columns:1fr 1fr}.cm-value-hero{grid-column:1/-1}}
@media (max-width:640px){.cm-value{grid-template-columns:1fr}.cm-flow{gap:3px}}

/* ===== Общий стиль разделов =====
   Один язык для всех страниц: тёмная карточка-герой со свечением, пастельные карточки с оттенком,
   мягкие тени и подъём при наведении. Различается только акцентный цвет группы разделов. */
body{--accent:#7c6cff;--accent-2:#5b4be0;--accent-glow:#6d5cff;--accent-glow-2:#2fb3ff;--accent-glow-3:#ff6ad5}
body[data-accent="blue"]{--accent:#4d8dff;--accent-2:#2a62e0;--accent-glow:#3d7bff;--accent-glow-2:#35d0ff;--accent-glow-3:#8a7bff}
body[data-accent="green"]{--accent:#34c38f;--accent-2:#14935f;--accent-glow:#2fd28b;--accent-glow-2:#b6f36a;--accent-glow-3:#2fb3ff}
body[data-accent="orange"]{--accent:#ff8a4c;--accent-2:#e2581c;--accent-glow:#ff7a3d;--accent-glow-2:#ffc24d;--accent-glow-3:#ff6ad5}
body[data-accent="teal"]{--accent:#22b8a8;--accent-2:#0e8a7e;--accent-glow:#1fc7b5;--accent-glow-2:#4d8dff;--accent-glow-3:#b6f36a}
body[data-accent="slate"]{--accent:#7d8aa3;--accent-2:#4f5b73;--accent-glow:#7d8aa3;--accent-glow-2:#4d8dff;--accent-glow-3:#8a7bff}
body{--accent-soft:color-mix(in srgb,var(--accent) 14%,var(--surface));--accent-ink:color-mix(in srgb,var(--accent-2) 80%,var(--ink))}

/* Акцент в навигации и кнопках */
.nav a.active{background:var(--accent-soft);color:var(--accent-ink)}
.nav a.active em{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 4px 12px color-mix(in srgb,var(--accent-2) 30%,transparent)}
.nav a.active .count{color:var(--accent-ink)}
.round-btn.accent{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 20px color-mix(in srgb,var(--accent-2) 40%,transparent)}
.seg a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}

/* Карточка-герой: как «Общий остаток» на главной, свечение в цвете раздела */
.an-kpi-hero,.rm-kpi-dark,.cm-value-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:#0c0b1a;border-color:transparent}
.an-kpi-hero::before,.rm-kpi-dark::before,.cm-value-hero::before{content:"";position:absolute;inset:-40%;z-index:-1;background:radial-gradient(35% 40% at 75% 30%,color-mix(in srgb,var(--accent-glow) 60%,transparent),transparent 70%),radial-gradient(30% 35% at 20% 85%,color-mix(in srgb,var(--accent-glow-2) 33%,transparent),transparent 70%),radial-gradient(25% 30% at 95% 95%,color-mix(in srgb,var(--accent-glow-3) 40%,transparent),transparent 70%);filter:blur(10px);animation:drift 14s ease-in-out infinite alternate}
.an-kpi-hero small,.an-kpi-hero>span,.rm-kpi-dark small,.rm-kpi-dark span,.cm-value-hero small,.cm-value-hero span{color:#c9c6e8}
.an-spark-line{stroke:color-mix(in srgb,var(--accent) 70%,#fff)}
.rm-gauge-fill{stroke:color-mix(in srgb,var(--accent) 75%,#fff)}

/* Пастельные карточки: оттенки по очереди, как на главной (фиолетовый → персик → мята) */
.an-kpi:not(.an-kpi-hero),.rm-kpi:not(.rm-kpi-dark),.cm-method,.cards>.metric{--tint:#7c6cff;border:0;border-radius:var(--radius);box-shadow:var(--shadow-soft);background:radial-gradient(130% 120% at 100% 0%,color-mix(in srgb,var(--tint) 13%,var(--surface)) 0,transparent 55%),radial-gradient(90% 90% at 0% 100%,color-mix(in srgb,var(--tint) 6%,var(--surface)),transparent 60%),var(--surface);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s}
.an-kpi:not(.an-kpi-hero):hover,.rm-kpi:not(.rm-kpi-dark):hover,.cm-method:hover,.cards>.metric:hover{transform:translateY(-3px);box-shadow:0 22px 44px -24px color-mix(in srgb,var(--accent-2) 50%,transparent)}
.an-kpis>:nth-child(4n+2),.rm-kpis>:nth-child(4n+2),.cm-value>:nth-child(4n+2),.cards>.metric:nth-child(4n+1){--tint:#7c6cff}
.an-kpis>:nth-child(4n+3),.rm-kpis>:nth-child(4n+3),.cm-value>:nth-child(4n+3),.cards>.metric:nth-child(4n+2){--tint:#ff8a4c}
.an-kpis>:nth-child(4n),.rm-kpis>:nth-child(4n),.cm-value>:nth-child(4n),.cards>.metric:nth-child(4n+3){--tint:#34c38f}
.cards>.metric:nth-child(4n){--tint:#4d8dff}
.cards>.metric{padding:18px 20px}
/* Выделенная карточка — заливка акцентом раздела */
.rm-kpi.rm-kpi-green,.cm-method.active,.an-cv-main{--tint:var(--accent);color:var(--ink);background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--accent) 34%,var(--surface)),color-mix(in srgb,var(--accent) 18%,var(--surface)))}
.rm-kpi.rm-kpi-green small,.rm-kpi.rm-kpi-green span,.cm-method.active small,.cm-method.active span,.an-cv-main small,.an-cv-main span{color:var(--ink-2)}
.rm-kpi.rm-kpi-warn{--tint:#e34948}
/* Большие карточки разделов тоже со скруглением и мягкой тенью главной */
.an-card,.rm-card{border:0;box-shadow:var(--shadow-soft)}
@media (prefers-reduced-motion:reduce){.an-kpi-hero::before,.rm-kpi-dark::before,.cm-value-hero::before{animation:none}}
