/* Approved Поток tokens over the existing login, onboarding and demo screens. */
html[data-theme="light"] { --page:var(--bg); --panel:var(--card); --ink:var(--fg); --muted:#50627c; --line:#dce5f1; --blue:#315ed7; --blue-hover:#244dbb; --soft:#e9effb; --focus:#315ed7; --danger:#b54b54; }
html[data-theme="dark"] { --page:var(--bg); --panel:var(--card); --ink:var(--fg); --muted:#afc0d7; --line:#304662; --blue:#8dacff; --blue-hover:#a9c0ff; --soft:#213c60; --focus:#8dacff; --danger:#f5a3aa; }
body.finemio-auth, body.finemio-portal { background:var(--bg); color:var(--fg); font-family:'Segoe UI',Arial,sans-serif; }
html[data-theme] body.finemio-auth { min-height:100vh; min-height:100dvh; display:flex; align-items:center; padding:24px 16px; background:var(--bg); color:var(--fg); }
body.finemio-auth main { width:min(100%,420px); max-width:420px; margin:auto; padding:26px 28px; background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:9px; box-shadow:none; }
.auth-card-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
body.finemio-auth .brand { min-width:0; color:var(--fg); font-size:25px; font-weight:700; letter-spacing:-.04em; }
body.finemio-auth .brand img { width:38px; height:38px; border-radius:8px; background:#fff; }
body.finemio-auth .auth-card-head .theme-switch { flex:none; width:38px; height:38px; padding:0; border:0; background:transparent; color:var(--muted); }
body.finemio-auth .eyebrow { margin:18px 0 6px; color:var(--muted); font-size:10px; letter-spacing:.14em; }
body.finemio-auth h1 { margin:0 0 15px; color:var(--fg); font-size:25px; line-height:1.2; font-weight:650; letter-spacing:-.04em; }
body.finemio-auth main>p:not(.eyebrow) { margin:0 0 13px; color:var(--fg); font-size:13px; }
body.finemio-auth form p { margin:0 0 11px; }
body.finemio-auth label { margin-bottom:5px; color:var(--fg); font-size:13px; }
body.finemio-auth input, body.finemio-auth select { width:100%; min-height:42px; padding:9px 11px; background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:8px; }
body.finemio-auth input::placeholder { color:var(--muted); }
body.finemio-auth button[type="submit"] { min-height:44px; padding:9px 14px; background:#315ed7; color:#fff; border-radius:8px; }
body.finemio-auth .auth-secondary { display:grid; gap:9px; margin-top:15px; padding-top:14px; border-top:1px solid var(--line); font-size:12px; }
body.finemio-auth .auth-secondary :is(p,form) { margin:0; }
body.finemio-auth .auth-secondary nav { display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:flex-start; }
body.finemio-auth .auth-secondary a { color:var(--blue); text-decoration:none; }
body.finemio-auth .auth-secondary a:hover { text-decoration:underline; }
body.finemio-auth .hint, body.finemio-auth .helptext { color:var(--muted); font-size:12px; line-height:1.45; }
body.finemio-auth .helptext ul { margin:6px 0; }
body.finemio-auth .secondary button { min-height:38px; padding:7px 12px; background:var(--card); color:var(--blue); border:1px solid var(--line); font-size:12px; }
body.finemio-auth article { margin:10px 0; padding:11px; color:var(--fg); background:var(--card); border:1px solid var(--line); border-radius:8px; }
body.finemio-auth .errorlist { margin:0 0 12px; padding:9px 10px 9px 27px; background:var(--soft); color:var(--danger); font-size:12px; }
body.finemio-auth :focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
@media(max-width:480px) { html[data-theme] body.finemio-auth { padding:16px 12px; } body.finemio-auth main { padding:22px 20px; } body.finemio-auth h1 { font-size:23px; } }

body.finemio-portal { font-size:14px; }
.portal-skip { position:fixed; left:12px; top:-80px; z-index:100; padding:9px 12px; background:var(--card); color:var(--fg); }
.portal-skip:focus { top:8px; }
.portal-sidebar { position:fixed; inset:0 auto 0 0; z-index:35; width:236px; padding:24px 16px 18px; display:flex; flex-direction:column; overflow:auto; background:var(--bg); border-right:1px solid var(--line); }
.portal-side-brand { display:flex; align-items:center; gap:10px; color:var(--fg); text-decoration:none; padding:0 8px; font-size:25px; font-weight:700; letter-spacing:-.04em; white-space:nowrap; }
.portal-side-brand img { border-radius:9px; background:#fff; flex:none; }
.portal-side-brand small { display:block; margin-top:2px; color:var(--muted); font-size:9px; font-weight:500; letter-spacing:0; }
.portal-nav-label { margin:28px 12px 8px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.14em; }
.portal-sidebar nav { display:grid; gap:4px; }
.portal-sidebar nav a { display:block; padding:10px 12px; border-radius:7px; color:var(--muted); font-size:13px; font-weight:550; text-decoration:none; }
.portal-sidebar nav a, .portal-side-logout button { display:flex; align-items:center; gap:10px; }
.portal-sidebar .finemio-nav-icon { display:inline-block; flex:none; width:19px; height:19px; }
.portal-sidebar nav a.active .finemio-nav-icon { color:var(--blue); }
html[data-theme="dark"] .portal-sidebar nav a.active .finemio-nav-icon { color:#8dacff; }
.portal-sidebar nav a:hover, .portal-sidebar nav a.active { background:var(--soft); color:var(--fg); }
.portal-sidebar nav a.active { border-left:3px solid var(--blue); padding-left:9px; }
.portal-side-logout { margin:auto 8px 0; padding-top:18px; border-top:1px solid var(--line); }
.portal-side-logout button { border:0; padding:8px 0; background:transparent; color:var(--muted); font-size:13px; }
.portal-side-logout button:hover { color:var(--fg); }
.portal-menu-button, .portal-menu-close, .portal-backdrop { display:none; }
body.finemio-portal .app-shell { max-width:none; margin-left:236px; padding:0 32px 48px; min-width:0; }
body.finemio-portal .app-header { min-height:72px; gap:16px; }
body.finemio-portal .app-header .brand { font-size:19px; }
body.finemio-portal .app-header .brand img { width:33px; height:33px; }
body.finemio-portal .app-header .brand small { font-size:9px; }
.portal-header-actions { display:flex; align-items:center; gap:10px; }
body.finemio-portal .hero { padding:54px 0 47px; }
body.finemio-portal h1 { font-size:clamp(32px,3.7vw,52px); }
body.finemio-portal .panel, body.finemio-portal .metric { border-radius:9px; box-shadow:none; }
body.finemio-portal .hero-visual { border-radius:9px; box-shadow:none; }
body.finemio-portal .metric-accent { background:var(--soft); border-color:var(--line); }
body.finemio-portal input, body.finemio-portal select { background:var(--card); color:var(--fg); border-color:var(--line); }
body.finemio-portal .button { background:#315ed7; border-color:#315ed7; color:#fff; border-radius:8px; }
body.finemio-portal .button-outline { background:transparent; color:var(--blue); }
body.finemio-portal .button-outline:hover { background:var(--soft); }
body.finemio-portal .cash-chart .chart-line { stroke:var(--blue); }
body.finemio-portal .chart-point { fill:var(--aqua); stroke:var(--card); }
body.finemio-portal .table-wrap { max-width:100%; overflow-x:auto; }
body.finemio-portal :focus-visible { outline:2px solid var(--focus); outline-offset:3px; }
@media(max-width:1100px) { .portal-sidebar { width:210px; } body.finemio-portal .app-shell { margin-left:210px; padding-inline:24px; } }
@media(max-width:720px) {
  .portal-sidebar { width:min(270px,85vw); transform:translateX(-100%); transition:transform .18s ease; }
  .portal-menu-open .portal-sidebar { transform:translateX(0); }
  .portal-backdrop:not([hidden]) { display:block; position:fixed; inset:0; z-index:34; width:100%; border:0; border-radius:0; background:#08152899; }
  .portal-menu-button { display:inline-grid; place-items:center; width:38px; height:38px; border:1px solid var(--line); border-radius:7px; background:var(--card); color:var(--fg); }
  .portal-menu-close { display:grid; place-items:center; position:absolute; top:18px; right:12px; width:32px; height:32px; border:0; background:transparent; color:var(--fg); font-size:22px; }
  .portal-menu-open { overflow:hidden; }
  body.finemio-portal .app-shell { margin-left:0; padding-inline:16px; }
  body.finemio-portal .app-header { flex-direction:row; align-items:center; min-height:60px; padding:10px 0; }
  body.finemio-portal .hero { padding:35px 0 30px; }
}
@media(max-width:375px) { body.finemio-portal .app-header .brand small { display:none; } body.finemio-portal .app-header .brand { font-size:19px; } }
@media(prefers-reduced-motion:reduce) { .portal-sidebar { transition:none; } }

/* 2.0.02: the home rail follows the company rail. */
.portal-sidebar { scrollbar-width:thin; scrollbar-color:var(--muted) transparent; }
.portal-sidebar::-webkit-scrollbar { width:6px; }
.portal-sidebar::-webkit-scrollbar-thumb { background:var(--muted); border-radius:10px; }
.portal-sidebar::-webkit-scrollbar-track { background:transparent; }
.portal-side-brand { min-height:42px; }
.portal-sidebar nav:first-of-type { margin-top:22px; }
.portal-sidebar nav + nav { margin-top:14px; }

/* Shared my.finemio.ru navigation: the same desktop state on home and company. */
.portal-sidebar { box-sizing:border-box; }
.portal-collapse-button { display:grid; place-items:center; align-self:flex-end; flex:none; width:32px; height:32px; margin:18px 8px 0; padding:0; border:0; border-radius:8px; background:transparent; color:var(--muted); font:25px/1 'Segoe UI',Arial,sans-serif; cursor:pointer; }
.portal-collapse-button:hover { background:var(--soft); color:var(--fg); }
.portal-sidebar, body.finemio-portal .app-shell { transition:width .2s ease,margin-left .2s ease,padding .2s ease; }
@media(min-width:721px) {
  body.finemio-portal.finemio-my-collapsed .portal-sidebar { width:68px; padding-inline:10px; overflow-x:hidden; }
  body.finemio-portal.finemio-my-collapsed .app-shell { margin-left:68px; }
  .finemio-my-collapsed .portal-side-brand { justify-content:center; padding:0; }
  .finemio-my-collapsed .portal-side-brand>span, .finemio-my-collapsed .portal-nav-label, .finemio-my-collapsed .portal-sidebar .nav-text { display:none; }
  .finemio-my-collapsed .portal-sidebar nav a { justify-content:center; min-height:42px; padding:10px; }
  .finemio-my-collapsed .portal-sidebar nav a.active { border-left:0; padding-left:10px; box-shadow:inset 3px 0 var(--blue); }
  .finemio-my-collapsed .portal-side-logout { margin-inline:0; }
  .finemio-my-collapsed .portal-side-logout button { justify-content:center; width:100%; min-height:42px; }
  .finemio-my-collapsed .portal-collapse-button { align-self:center; margin-inline:0; }
}
@media(max-width:720px) {
  .portal-collapse-button { display:none; }
  body.finemio-portal .portal-sidebar { overflow-y:auto; }
  body.finemio-portal .portal-sidebar nav a { min-height:42px; }
}
@media(prefers-reduced-motion:reduce) { .portal-sidebar, body.finemio-portal .app-shell { transition:none; } }
