  /* ---------- APP SHELL ---------- */
  .app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr var(--rightcol-w);min-height:100vh;}
  .app-shell-no-rightcol{grid-template-columns:var(--sidebar-w) 1fr;}
  .icon-16 svg{width:16px;height:16px;flex:none;}

  /* ---------- SIDEBAR ---------- */
  .sidebar{
    background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);
    padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
  }
  .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px 8px;}
  .brand-mark{
    width:36px;height:36px;border-radius:10px;
    background:linear-gradient(145deg,var(--accent),var(--accent-deep));
    display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--text-on-accent);font-size:16px;flex:none;
  }
  .brand-text{display:flex;flex-direction:column;line-height:1.15;}
  .brand-text b{font-size:14.5px;letter-spacing:-0.01em;}
  .brand-text span{font-size:11px;color:var(--text-low);}
  .demo-chip{
    display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--warn-strong);
    background:var(--warn-soft);border:1px solid rgba(240,164,58,0.35);
    padding:6px 10px;border-radius:9px;margin:0 4px 14px 4px;
  }
  .demo-chip svg{width:13px;height:13px;flex:none;}

  .nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;flex:1;}
  .nav-item{
    display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;
    color:var(--text-mid);font-size:13.5px;font-weight:560;border:1px solid transparent;background:transparent;width:100%;text-align:left;
    text-decoration:none;
  }
  .nav-item svg{width:18px;height:18px;flex:none;opacity:0.9;}
  .nav-item:hover{background:var(--bg-card-alt);color:var(--text-hi);}
  .nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:rgba(36,107,253,0.3);font-weight:650;}
  .nav-item.active svg{color:var(--accent);}

  .sidebar-foot{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle);}
  .mini-user{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-subtle);margin-bottom:10px;}
  .mini-avatar{width:36px;height:36px;border-radius:10px;overflow:hidden;flex:none;background:linear-gradient(145deg,var(--accent),var(--accent-deep));display:flex;align-items:center;justify-content:center;font-size:17px;}
  .mini-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
  .mini-user-info{min-width:0;}
  .mini-user-info b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mini-user-info span{font-size:11px;color:var(--text-low);}
  .reset-btn{width:100%;padding:8px 10px;border-radius:10px;background:transparent;border:1px solid var(--border-subtle);color:var(--text-low);font-size:12px;font-weight:600;}
  .reset-btn:hover{border-color:var(--bad);color:var(--bad);}

  /* ---------- MAIN ---------- */
  .main{padding:26px 28px 90px 28px;min-width:0;}
  .topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:14px;flex-wrap:wrap;}
  .page-title{font-size:22px;}
  .page-sub{color:var(--text-mid);font-size:13px;margin-top:3px;}
  .streak-chip{display:flex;align-items:center;gap:7px;background:var(--bg-card);border:1px solid var(--border-subtle);padding:8px 13px;border-radius:100px;font-size:12.5px;color:var(--text-mid);white-space:nowrap;}
  .streak-chip b{color:var(--accent-2);}

  .card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);}
  .glass{background:rgba(255,255,255,0.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(200,212,226,0.6);}

  .warning-banner{
    display:flex;align-items:flex-start;gap:11px;background:var(--warn-soft);
    border:1px solid rgba(240,164,58,0.4);border-radius:var(--radius-md);
    padding:13px 15px;margin-bottom:16px;font-size:12.5px;color:var(--text-hi);
  }
  .warning-banner svg{width:18px;height:18px;color:var(--warn-strong);flex:none;margin-top:1px;}
  .warning-banner button{background:none;border:none;color:var(--text-low);font-size:16px;margin-left:auto;flex:none;}
  .warning-banner button:hover{color:var(--text-hi);}
  .urgent-deadline-banner{
    display:flex;align-items:center;gap:11px;background:var(--bad-soft);
    border:1px solid rgba(217,75,86,0.35);border-radius:var(--radius-md);
    padding:13px 15px;margin-bottom:16px;font-size:12.5px;color:var(--text-hi);
  }
  .urgent-deadline-banner svg{width:18px;height:18px;color:var(--bad-strong);flex:none;}
  .urgent-deadline-banner span{flex:1;}

  /* ---------- HERO (CSS/SVG-визуал вместо фото — этап B, доработка 3) ---------- */
  .hero-main{
    position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:270px;padding:30px 32px;
    display:flex;flex-direction:column;justify-content:center;
    background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));
    border:1px solid var(--border-subtle);margin-bottom:20px;
    box-shadow:0 20px 60px rgba(8,20,36,0.3);
  }
  .hero-main .eyebrow{margin-bottom:10px;position:relative;z-index:1;color:var(--accent-2);}
  .hero-greeting{font-size:27px;max-width:560px;margin-bottom:8px;position:relative;z-index:1;color:var(--text-on-dark);}
  .hero-motivation{color:var(--text-on-muted);font-size:14.5px;max-width:520px;margin-bottom:20px;position:relative;z-index:1;}
  .hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1;}
  .hero-visual-svg{position:absolute;right:-30px;top:50%;transform:translateY(-50%);width:440px;height:340px;max-width:55%;color:#EAF1F8;opacity:0.5;pointer-events:none;z-index:0;}
  @media (max-width:900px){ .hero-visual-svg{display:none;} }

  .btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:12px;font-size:13.5px;font-weight:650;border:1px solid transparent;text-decoration:none;}
  .btn svg{width:16px;height:16px;flex:none;}
  .btn-primary{background:linear-gradient(140deg,var(--accent),var(--accent-deep));color:var(--text-on-accent);}
  .btn-primary:hover{filter:brightness(1.08);}
  .btn-ghost{background:rgba(255,255,255,0.08);color:var(--text-on-dark);border-color:rgba(255,255,255,0.16);backdrop-filter:blur(2px);}
  .btn-ghost:hover{background:rgba(255,255,255,0.14);}
  .btn-outline{background:transparent;border-color:var(--border-strong);color:var(--text-hi);}
  .btn-outline:hover{border-color:var(--accent);color:var(--accent-2);}
  /* На тёмных hero-фонах (.hero-main/.public-hero) обычный .btn-outline
     не читается — border-strong/text-hi рассчитаны на светлый фон. */
  .hero-actions .btn-outline, .public-hero-actions .btn-outline{border-color:rgba(255,255,255,0.4);color:var(--text-on-dark);}
  .hero-actions .btn-outline:hover, .public-hero-actions .btn-outline:hover{border-color:var(--accent-2);color:var(--accent-2);}
  .btn-danger-outline{background:transparent;border-color:var(--bad);color:var(--bad);}
  .btn-sm{padding:8px 13px;font-size:12.5px;border-radius:10px;}
  .btn-xs{padding:6px 10px;font-size:11.5px;border-radius:8px;}

  .section-head{display:flex;align-items:center;justify-content:space-between;margin:26px 0 13px 0;gap:10px;flex-wrap:wrap;}
  .section-head h3{font-size:15.5px;}
  .link-more{font-size:12.5px;color:var(--accent-2);font-weight:650;background:none;border:none;}

  /* ---------- PUBLIC HOME (гость без заполненного профиля/анкеты) ---------- */
  .public-shell{min-height:100vh;background:var(--bg-app);}
  .public-topnav{position:sticky;top:0;z-index:30;background:#FFFFFF;border-bottom:1px solid var(--border-subtle);}
  .public-topnav-inner{max-width:1280px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:24px;}
  .public-topnav .brand{padding:0;flex:none;}
  .public-topnav-links{display:flex;align-items:center;gap:22px;flex:1;flex-wrap:wrap;}
  .public-topnav-links button,.public-topnav-links a{background:none;border:none;color:var(--text-mid);font-size:13.5px;font-weight:600;padding:6px 0;text-decoration:none;font-family:inherit;}
  .public-topnav-links button:hover,.public-topnav-links a:hover{color:var(--accent);}
  .public-topnav-actions{display:flex;align-items:center;gap:10px;flex:none;}
  .public-shell-inner{max-width:1280px;margin:0 auto;padding:28px 28px 90px 28px;}
  .public-mobile-menu{display:none;position:relative;}

  /* PORTAL-PRESENTATION-1A: presentation-only public landing page. */
  .portal-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:20px;margin-bottom:20px;}
  .portal-hero-main,.portal-compass-card,.portal-map-card,.portal-section-card{border:1px solid rgba(123,184,255,.2);box-shadow:0 20px 60px rgba(0,15,44,.24);}
  .portal-hero-main{position:relative;min-height:470px;overflow:hidden;padding:54px 50px;border-radius:24px;background:radial-gradient(circle at 86% 15%,rgba(26,193,205,.18),transparent 34%),linear-gradient(145deg,#08152f,#102b56);color:#fff;}
  .portal-kicker,.portal-card-label{display:block;margin-bottom:15px;color:#65e4e1;font-size:12px;font-weight:750;letter-spacing:.11em;text-transform:uppercase;}
  .portal-hero-main h1{position:relative;z-index:2;max-width:680px;margin:0 0 20px;font-size:48px;line-height:1.08;letter-spacing:-.035em;color:#fff;}
  .portal-hero-main h1 span{color:#75dff3;}.portal-hero-lead{position:relative;z-index:2;max-width:650px;margin:0 0 14px;color:#dceaff;font-size:18px;line-height:1.55;}.portal-hero-note{position:relative;z-index:2;max-width:580px;margin:0;color:#aabedc;font-size:14px;line-height:1.6;}
  .portal-city-art{position:absolute;right:18px;bottom:0;left:18px;height:130px;opacity:.5;}.portal-city-art svg{position:absolute;right:0;bottom:0;width:72%;height:auto;fill:none;stroke:#69dfe8;stroke-width:2;}.portal-route-line{position:absolute;left:2%;bottom:48px;width:40%;height:55px;border-top:1px dashed rgba(116,218,242,.8);border-radius:50%;transform:rotate(-7deg);}.portal-route-dot{position:absolute;width:9px;height:9px;border:2px solid #07172f;border-radius:50%;background:#6ce0ed;box-shadow:0 0 15px #63e4ee;}.portal-route-dot.dot-one{left:7%;bottom:76px}.portal-route-dot.dot-two{left:38%;bottom:73px}
  .portal-compass-card{position:relative;display:flex;min-height:470px;overflow:hidden;padding:34px 30px;border-radius:24px;background:radial-gradient(circle at 70% 75%,rgba(49,193,218,.24),transparent 37%),linear-gradient(160deg,#102747,#0a1934);color:#fff;}.portal-compass-copy{position:relative;z-index:2;align-self:flex-start;}.portal-compass-copy h2,.portal-map-copy h2,.portal-section-heading h2{margin:0 0 13px;color:inherit;font-size:27px;letter-spacing:-.02em;}.portal-compass-copy p{max-width:280px;margin:0;color:#c6d7ee;line-height:1.55;}.portal-cta{position:relative;z-index:3;margin-top:22px;}.portal-mascot{position:absolute;right:-3px;bottom:0;width:60%;max-height:235px;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 14px 25px rgba(0,0,0,.3));}
  .portal-map-card{display:grid;grid-template-columns:1.25fr .75fr;min-height:280px;overflow:hidden;margin-bottom:54px;border-radius:24px;background:#102443;color:#fff;}.portal-map-preview{position:relative;overflow:hidden;min-height:280px;background:linear-gradient(130deg,#132f55,#0b1d38);}.map-water{position:absolute;top:-20%;left:42%;width:20%;height:150%;background:linear-gradient(90deg,rgba(33,153,190,.08),rgba(40,186,213,.36),rgba(33,153,190,.08));transform:rotate(23deg);}.map-road{position:absolute;height:2px;background:rgba(156,196,231,.22);transform-origin:left}.road-a{top:25%;left:0;width:110%;transform:rotate(17deg)}.road-b{top:67%;left:3%;width:100%;transform:rotate(-12deg)}.road-c{top:0;left:32%;width:85%;transform:rotate(67deg)}.map-marker{position:absolute;display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(104,231,232,.35);border-radius:50%;background:#123a5a;color:#6ce2df;box-shadow:0 0 24px rgba(56,211,222,.3)}.map-marker svg{width:19px}.marker-a{top:24%;left:22%}.marker-b{top:58%;left:61%}.marker-c{top:30%;left:78%}.portal-map-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:36px;}.portal-map-copy p{margin:0 0 22px;color:#bacde6;line-height:1.55}.portal-map-copy .btn-outline{border-color:rgba(255,255,255,.35);color:#fff;}
  .portal-section-heading{text-align:center;margin-bottom:25px;color:var(--text-hi)}.portal-section-heading .portal-card-label{color:var(--accent)}.portal-section-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;}.portal-section-card{display:flex;min-height:245px;flex-direction:column;align-items:flex-start;padding:25px;border-radius:18px;background:linear-gradient(155deg,#122a4c,#0c1d38);color:#fff;}.portal-section-icon{display:grid;width:43px;height:43px;place-items:center;margin-bottom:22px;border:1px solid rgba(101,225,229,.24);border-radius:12px;background:rgba(59,204,214,.1);color:#6ce0e3}.portal-section-icon svg{width:21px;height:21px}.portal-section-card h3{margin:0 0 10px;font-size:19px}.portal-section-card p{margin:0 0 22px;color:#afc2db;font-size:13.5px;line-height:1.55}.portal-card-link{display:flex;align-items:center;gap:5px;margin-top:auto;padding:8px 0;border:0;background:none;color:#6edfe3;font:inherit;font-size:13px;font-weight:700}.portal-card-link svg{width:15px;}.portal-card-link:focus-visible,.public-mobile-menu summary:focus-visible,.public-mobile-menu nav button:focus-visible,.public-mobile-menu nav a:focus-visible{outline:3px solid #73e2e5;outline-offset:4px;}

  .public-hero{
    position:relative;border-radius:var(--radius-lg);overflow:hidden;padding:44px 40px;margin-bottom:24px;
    background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));
    border:1px solid var(--border-subtle);box-shadow:0 20px 60px rgba(8,20,36,0.3);
  }
  .public-hero .eyebrow{position:relative;z-index:1;margin-bottom:14px;color:var(--accent-2);}
  .public-hero-title{position:relative;z-index:1;font-size:38px;line-height:1.15;max-width:640px;color:var(--text-on-dark);margin-bottom:14px;}
  .public-hero-title .accent-text{color:var(--accent-2);}
  .public-hero-sub{position:relative;z-index:1;font-size:15px;color:var(--text-on-muted);max-width:520px;margin-bottom:24px;}
  .public-search{position:relative;z-index:1;display:flex;align-items:stretch;gap:0;background:#FFFFFF;border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-card);max-width:640px;overflow:hidden;}
  .public-search-field{display:flex;align-items:center;gap:8px;padding:0 14px;flex:1;min-width:0;color:var(--text-low);}
  .public-search-field svg{width:18px;height:18px;flex:none;}
  .public-search-field input{border:none;outline:none;flex:1;min-width:0;font-size:14px;padding:14px 0;color:var(--text-hi);background:transparent;}
  .public-search-loc{display:flex;align-items:center;gap:6px;padding:0 14px;border-left:1px solid var(--border-subtle);color:var(--text-mid);font-size:13.5px;white-space:nowrap;}
  .public-search-loc svg{width:16px;height:16px;flex:none;}
  .public-search .btn{border-radius:0;flex:none;}
  .public-hero-actions{position:relative;z-index:1;display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}

  .public-stats{padding:20px 22px;margin-bottom:24px;}
  .public-stats-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:650;color:var(--text-hi);margin-bottom:16px;flex-wrap:wrap;}
  .public-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
  .public-stat-item b{display:block;font-size:20px;color:var(--text-hi);margin-bottom:3px;}
  .public-stat-item span{font-size:12px;color:var(--text-low);}

  .public-route-teaser{padding:22px 24px;}
  .route-teaser-stepper{display:flex;align-items:flex-start;gap:6px;}
  .rt-stage{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex:1;min-width:0;}
  .rt-dot{width:42px;height:42px;border-radius:50%;background:var(--bg-card-alt);border:1.5px solid var(--border-strong);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
  .rt-dot svg{width:19px;height:19px;}
  .rt-stage b{font-size:12.5px;color:var(--text-hi);font-weight:600;max-width:120px;}
  .rt-line{flex:none;width:40px;height:2px;background:var(--border-strong);margin-top:20px;}

  /* ---------- HEATMAP ---------- */
  .heatmap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
  .heat-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px;}
  .heat-item .top{display:flex;justify-content:space-between;font-size:12px;color:var(--text-mid);margin-bottom:9px;}
  .heat-item .top b{color:var(--text-hi);font-size:13px;}
  .heat-track{height:8px;border-radius:100px;background:var(--bg-card-alt);border:1px solid var(--border-subtle);overflow:hidden;}
  .heat-fill{height:100%;border-radius:100px;}
  .heat-fill.lvl-bad{background:linear-gradient(90deg,#B23A44,var(--bad));}
  .heat-fill.lvl-warn{background:linear-gradient(90deg,#C98A28,var(--warn));}
  .heat-fill.lvl-good{background:linear-gradient(90deg,#128A80,var(--good));}

  /* ---------- QUICK ACTIONS ---------- */
  .grid-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
  .action-card{padding:16px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:10px;text-align:left;color:var(--text-hi);transition:border-color .15s, transform .1s;will-change:transform;text-decoration:none;}
  .action-card:hover{border-color:var(--accent);}
  .action-ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--accent);}
  .action-ico svg{width:18px;height:18px;}
  .action-card b{font-size:13.5px;}
  .action-card span{font-size:12px;color:var(--text-low);}

  /* ---------- NEXT STEP CARD ---------- */
  .nextstep-card{display:flex;align-items:center;gap:16px;padding:18px 20px;margin-bottom:20px;flex-wrap:wrap;}
  .nextstep-card .ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;}
  .nextstep-card .ico svg{width:22px;height:22px;}
  .nextstep-card .body{flex:1;min-width:200px;}
  .nextstep-card .body b{font-size:14.5px;display:block;margin-bottom:3px;}
  .nextstep-card .body span{font-size:12.5px;color:var(--text-mid);}

  /* ---------- DIRECTIONS ---------- */
  .grid-directions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .dir-card{border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card);border:1px solid var(--border-subtle);display:flex;flex-direction:column;transition:border-color .15s, transform .1s;will-change:transform;}
  .dir-card:hover{border-color:var(--accent);}
  .dir-img{height:120px;width:100%;position:relative;background:linear-gradient(140deg,#EAF1F8,#F4F7FB);display:flex;align-items:center;justify-content:center;font-size:34px;border:none;padding:0;margin:0;cursor:pointer;font-family:inherit;}
  .dir-img .fallback-content svg{width:40px;height:40px;color:var(--accent);}
  .dir-img img{width:100%;height:100%;object-fit:cover;display:block;}
  .dir-img .dir-match{position:absolute;top:10px;right:10px;background:rgba(10,13,18,0.78);backdrop-filter:blur(3px);color:var(--accent-2);font-weight:800;font-size:12.5px;padding:5px 9px;border-radius:100px;border:1px solid rgba(36,107,253,0.5);}
  .dir-img .dir-tag{position:absolute;left:10px;bottom:10px;font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;background:rgba(10,13,18,0.7);padding:4px 8px;border-radius:100px;color:var(--text-on-muted);}
  .dir-body{padding:14px 14px 15px 14px;display:flex;flex-direction:column;gap:9px;flex:1;}
  .dir-body h4{font-size:14.5px;}
  .dir-body p.desc{font-size:12.5px;color:var(--text-mid);}
  .dir-reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;}
  .dir-reasons li{font-size:11.5px;color:var(--text-low);display:flex;gap:6px;align-items:flex-start;}
  .dir-reasons li:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:5px;flex:none;}
  .dir-actions-desktop{display:flex;gap:8px;margin-top:auto;padding-top:4px;}
  .btn-icon-like{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card-alt);color:var(--text-mid);}
  .btn-icon-like svg{width:17px;height:17px;}
  .btn-icon-like:hover{border-color:var(--good);color:var(--good);}
  .btn-icon-like.active{border-color:var(--good);color:var(--good);background:var(--good-soft);}
  .btn-icon-like.active svg{fill:var(--good);}
  .dir-actions-mobile{display:none;gap:6px;margin-top:auto;padding-top:4px;}
  .dir-actions-mobile button{flex:1;font-size:11px;padding:9px 4px;border-radius:9px;border:1px solid var(--border-subtle);background:var(--bg-card-alt);color:var(--text-mid);}
  .dir-actions-mobile button.like{color:var(--good);}
  .dir-actions-mobile button.like.active{background:var(--good-soft);border-color:var(--good);font-weight:650;}
  .dir-actions-mobile button.save{color:var(--accent);border-color:rgba(36,107,253,0.35);}
  .dismissed-hint{font-size:12px;color:var(--text-low);margin-top:12px;}
  .dismissed-hint button{background:none;border:none;color:var(--accent-2);font-size:12px;}

  /* ---------- FILTERS / PROGRAMS ---------- */
  .filters-bar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:16px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px;align-items:center;}
  .filters-bar input[type=text]{flex:1 1 200px;min-width:160px;}
  /* DEMO-RUNTIME-1D: <select> без явного min-width наследует браузерный
     min-width:auto, который на flex-item эквивалентен ширине, нужной для
     отображения САМОЙ длинной <option> без переноса (перенос текста внутри
     select невозможен) — на 360px это форсирует горизонтальный overflow
     страницы для select сортировки ("Сортировка: по проходному баллу...").
     min-width:0 снимает этот форсированный минимум и позволяет обычному
     flex-shrink (уже 1 по умолчанию) реально сжать элемент до ширины ряда;
     max-width:100% — защитный потолок на случай ещё более узких viewport.
     Без width:100% — на desktop это раздуло бы каждый select на всю ширину
     ряда (flex-basis:auto резолвится в width:100% контейнера), сломав
     текущую компактную раскладку фильтров, которую нужно сохранить. */
  .field-select{min-width:0;max-width:100%;}
  .field-input,.field-select{background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-hi);padding:9px 11px;border-radius:9px;font-size:12.5px;}
  .field-input:focus,.field-select:focus{outline:none;border-color:var(--accent);}
  .chk-pill{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-mid);background:var(--bg-card-alt);border:1px solid var(--border-subtle);padding:8px 11px;border-radius:9px;}
  .chk-pill input{accent-color:var(--accent);}

  .compare-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
  .compare-fab{position:fixed;right:24px;bottom:24px;z-index:40;box-shadow:0 10px 30px rgba(22,52,91,0.22);}

  .program-list{display:flex;flex-direction:column;gap:10px;}
  .program-card{display:grid;grid-template-columns:1fr auto;gap:14px;padding:16px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);}
  .program-main{min-width:0;}
  .program-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:5px;}
  .badge-type{font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;font-weight:700;padding:3px 8px;border-radius:100px;}
  .badge-type.university{background:var(--info-soft);color:var(--info-strong);}
  .badge-type.college{background:var(--good-soft);color:var(--good-strong);}
  .badge-verify{font-size:10px;color:var(--warn-strong);border:1px solid rgba(240,164,58,0.4);background:var(--warn-soft);padding:2px 8px;border-radius:100px;display:inline-flex;align-items:center;gap:4px;}
  .badge-verify svg{width:11px;height:11px;}
  .badge-source-missing{font-size:10px;color:var(--bad-strong);border:1px solid rgba(217,75,86,0.4);background:var(--bad-soft);padding:2px 8px;border-radius:100px;}
  /* DEMO-CATALOG-LABELS (docs/demo-catalog-labels.md) — field-level verification labeling.
     Тот же паттерн pill-бейджа, что .badge-verify/.badge-type: .good-* для "проверено",
     .warn-* (как и существующий блок .badge-verify) для демонстрационных сведений. */
  .verification-badge{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:100px;display:inline-flex;align-items:center;gap:4px;white-space:normal;}
  .verification-badge--verified{color:var(--good-strong);background:var(--good-soft);border:1px solid rgba(66,163,101,0.35);}
  .verification-badge--pending{color:var(--warn-strong);background:var(--warn-soft);border:1px solid rgba(240,164,58,0.4);}
  .demo-field-tag{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.03em;color:var(--warn-strong);background:var(--warn-soft);border:1px solid rgba(240,164,58,0.35);padding:1px 6px;border-radius:100px;margin-left:4px;cursor:help;white-space:nowrap;}
  .demo-field-tag:focus-visible{outline:2px solid var(--warn-strong);outline-offset:2px;}
  .event-demo-badge{font-size:10.5px;font-weight:600;color:var(--warn-strong);background:var(--warn-soft);border:1px solid rgba(240,164,58,0.4);padding:3px 9px;border-radius:100px;display:inline-flex;align-items:center;gap:4px;}
  .verification-source-link{font-size:12px;color:var(--accent-2);text-decoration:underline;word-break:break-word;}
  .verification-source-link:hover{color:var(--accent-2-strong,var(--accent-2));}
  /* DEMO-RUNTIME-1, фаза B — static_fallback banner (переиспользует базовый
     .warning-banner, не переопределяет ничего из него) и лёгкий inline
     loading-индикатор фонового обновления каталога из API. */
  .warning-banner--fallback{border-color:rgba(217,75,86,0.35);background:var(--bad-soft);}
  .warning-banner--fallback svg{color:var(--bad-strong);}
  .catalog-loading-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-mid);margin-bottom:10px;}
  .catalog-loading-note svg{width:14px;height:14px;flex:none;}
  @media (max-width:480px){
    .verification-badge,.event-demo-badge{white-space:normal;line-height:1.3;}
    .demo-field-tag{margin-left:2px;}
  }
  .program-title{font-size:15px;margin-bottom:2px;display:block;width:100%;text-align:left;background:none;border:none;padding:0;font-family:inherit;color:inherit;cursor:pointer;}
  .program-title:hover{color:var(--accent-2);}
  .program-inst{font-size:12.5px;color:var(--text-mid);margin-bottom:8px;}
  .program-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--text-low);margin-bottom:8px;}
  .program-meta b{color:var(--text-mid);font-weight:600;}
  .program-flags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
  .flag-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-mid);background:var(--bg-card-alt);border:1px solid var(--border-subtle);padding:4px 9px;border-radius:100px;}
  .program-skills{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--text-mid);margin-bottom:8px;}
  .program-skills b{font-weight:650;margin-right:2px;}
  .flag-pill svg{width:12px;height:12px;}
  .program-links{display:flex;gap:10px;font-size:11.5px;}
  .program-links a,.program-links button.linklike{color:var(--accent-2);display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-size:11.5px;}
  .program-links a svg,.program-links button svg{width:12px;height:12px;}
  .program-links button.linklike{color:var(--text-low);}
  .program-comment{font-size:11px;color:var(--text-low);margin-top:6px;}
  .program-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:8px;min-width:176px;}
  .pill-row{display:flex;flex-direction:column;gap:6px;align-items:flex-end;}
  .chance-pill,.match-pill{font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:100px;white-space:nowrap;}
  .chance-high{background:var(--good-soft);color:var(--good-strong);}
  .chance-medium{background:var(--warn-soft);color:var(--warn-strong);}
  .chance-risky{background:var(--bad-soft);color:var(--bad-strong);}
  .chance-unknown{background:var(--bg-card-alt);color:var(--text-low);}
  .match-pill{background:var(--accent-soft);color:var(--accent);}
  .btn-compare-on{background:var(--accent-soft-strong);border-color:var(--accent);color:var(--accent-2);}
  .program-side .btn{width:100%;justify-content:center;}
  .program-explain{font-size:11px;color:var(--text-low);max-width:210px;text-align:right;}

  /* ---------- ROUTE ---------- */
  .route-col-title{font-size:13px;color:var(--text-mid);margin-bottom:10px;font-weight:650;}
  .route-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .empty-state{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:26px;text-align:center;color:var(--text-low);font-size:12.5px;display:flex;flex-direction:column;align-items:center;gap:12px;}
  .route-item{display:flex;align-items:center;gap:11px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:11px 13px;margin-bottom:9px;}
  .route-item .ico-box{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none;overflow:hidden;}
  .route-item .ico-box img{width:100%;height:100%;object-fit:cover;}
  .route-item .info{flex:1;min-width:0;}
  .route-item .info b{display:block;font-size:13px;}
  .route-item .info span{font-size:11.5px;color:var(--text-low);}
  .route-item .remove-x{background:none;border:none;color:var(--text-low);font-size:16px;padding:4px 6px;border-radius:8px;}
  .route-item .remove-x:hover{color:var(--bad);background:var(--bad-soft);}

  /* ---------- CALENDAR ---------- */
  .deadline-row{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:10px;flex-wrap:wrap;}
  .deadline-date{width:56px;height:56px;border-radius:12px;background:var(--bg-card-alt);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;border:1px solid var(--border-subtle);}
  .deadline-date b{font-size:17px;line-height:1;}
  .deadline-date span{font-size:9.5px;color:var(--text-low);text-transform:uppercase;}
  .deadline-info{flex:1;min-width:160px;}
  .deadline-info b{font-size:13.5px;display:block;}
  .deadline-info span{font-size:11.5px;color:var(--text-low);}
  .deadline-countdown{font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:100px;white-space:nowrap;}
  .cd-soon{background:var(--bad-soft);color:var(--bad-strong);}
  .cd-mid{background:var(--warn-soft);color:var(--warn-strong);}
  .cd-far{background:var(--good-soft);color:var(--good-strong);}
  .cd-done{background:var(--bg-card-alt);color:var(--text-low);text-decoration:line-through;}
  .deadline-row .remove-x{background:none;border:none;color:var(--accent);font-size:16px;padding:4px 6px;border-radius:8px;flex:none;}
  .deadline-row .remove-x:hover{color:var(--accent-2);background:var(--accent-soft);}

  .cal-view-toggle{display:flex;gap:8px;}
  .cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
  .cal-nav-btn{background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-hi);width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;}
  .cal-nav-btn:hover{border-color:var(--accent);color:var(--accent-2);}
  .cal-nav-btn svg{width:16px;height:16px;}
  .cal-nav-title{font-size:15px;font-weight:650;color:var(--text-hi);text-transform:capitalize;}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:18px;}
  .cal-weekday{font-size:10.5px;color:var(--text-low);text-transform:uppercase;text-align:center;padding-bottom:4px;}
  .cal-cell{aspect-ratio:1/1;min-height:44px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative;padding:0;font-family:inherit;color:var(--text-hi);font-size:13px;cursor:pointer;}
  .cal-cell:hover{border-color:var(--accent);}
  .cal-cell.cal-empty{visibility:hidden;pointer-events:none;}
  .cal-cell.cal-today{border-color:var(--accent);font-weight:700;}
  .cal-cell.cal-selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
  .cal-cell .cal-dots{display:flex;gap:3px;}
  .cal-dot{width:5px;height:5px;border-radius:50%;}
  .cal-dot-deadline{background:var(--bad-strong);}
  .cal-dot-event{background:var(--accent);}
  .cal-agenda{margin-bottom:18px;}
  .cal-agenda-empty{font-size:12.5px;color:var(--text-low);}

  /* ---------- CAREER EVENTS ---------- */
  .career-events-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .ce-summary-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px;text-align:center;}
  .ce-summary-item b{display:block;font-size:18px;color:var(--accent-2);margin-bottom:3px;}
  .ce-summary-item span{font-size:11px;color:var(--text-low);}
  .ce-month-heading{font-size:12px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-low);font-weight:700;margin:20px 0 10px 0;}
  .career-event-card{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:16px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);margin-bottom:10px;}
  .ce-date-box{width:56px;height:56px;border-radius:12px;background:var(--bg-card-alt);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;border:1px solid var(--border-subtle);}
  .ce-date-box b{font-size:17px;line-height:1;}
  .ce-date-box span{font-size:9.5px;color:var(--text-low);text-transform:uppercase;}
  .ce-main{min-width:0;}
  .ce-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px;}
  .ce-category-badge{font-size:10.5px;text-transform:uppercase;letter-spacing:0.04em;font-weight:700;padding:3px 8px;border-radius:100px;background:var(--info-soft);color:var(--info-strong);}
  .ce-format{font-size:11px;color:var(--text-mid);background:var(--bg-card-alt);border:1px solid var(--border-subtle);padding:3px 9px;border-radius:100px;}
  .ce-recommend-badge{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;background:var(--good-soft);color:var(--good-strong);}
  .ce-title{font-size:15px;margin-bottom:2px;}
  .ce-organizer{font-size:12.5px;color:var(--text-mid);margin-bottom:6px;}
  .ce-location{font-size:12px;color:var(--text-low);margin-bottom:8px;}
  .ce-desc{font-size:12.5px;color:var(--text-mid);margin-bottom:8px;}
  .ce-meta-row{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;color:var(--text-low);margin:8px 0;}
  .ce-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
  .ce-modal-icon svg{width:26px;height:26px;color:var(--accent);}

  /* ---------- OPPORTUNITY MAP (Leaflet + OpenStreetMap) ---------- */
  .opportunity-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start;}
  .opportunity-map-canvas{position:relative;min-height:620px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);background:var(--bg-card-alt);}
  .opportunity-leaflet-map{width:100%;height:620px;min-height:620px;z-index:1;}
  .om-map-controls{position:absolute;top:12px;right:12px;z-index:400;display:flex;flex-direction:column;gap:8px;}
  .om-map-control-btn{background:var(--bg-card);box-shadow:0 4px 10px rgba(22,52,91,0.18);}
  .om-map-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;text-align:center;padding:24px;font-size:13px;color:var(--text-mid);background:var(--bg-card-alt);}
  .om-map-error svg{width:28px;height:28px;color:var(--warn-strong);}
  .om-leaflet-icon-wrap{background:none;border:none;}
  .om-pin{width:38px;height:38px;border-radius:50%;border:2px solid #FFFFFF;box-shadow:0 4px 10px rgba(22,52,91,0.25);display:flex;align-items:center;justify-content:center;color:#FFFFFF;transition:transform .12s;cursor:pointer;padding:0;}
  .om-pin svg{width:17px;height:17px;}
  .om-pin:hover{transform:scale(1.12);}
  .om-pin.active{outline:3px solid var(--accent);outline-offset:2px;transform:scale(1.15);}
  .om-pin-employer{background:var(--accent);}
  .om-pin-education{background:var(--violet);}
  .om-pin-event{background:var(--warn);}
  .om-pin-internship{background:var(--info);}
  .om-pin-youth_space{background:var(--good);}
  .om-user-location-dot{display:block;width:16px;height:16px;border-radius:50%;background:var(--primary,var(--accent));border:3px solid #FFFFFF;box-shadow:0 0 0 4px rgba(36,107,253,0.25);}
  .om-empty{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:rgba(244,247,251,0.85);}
  .opportunity-map-side{display:flex;flex-direction:column;gap:14px;}
  .om-legend{display:flex;flex-direction:column;gap:8px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-card);}
  .om-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-mid);}
  .om-legend-dot{width:11px;height:11px;border-radius:50%;flex:none;}
  .om-detail-card{padding:16px;}
  /* Оформление карты в духе современных городских картографических сервисов
     (аналог 2ГИС) — крупные аккуратные контролы, мягкие тени, не копирует
     фирменные элементы 2ГИС, только общий визуальный язык. */
  .leaflet-container{font-family:inherit;background:var(--bg-card-alt);}
  .leaflet-control-zoom{border-radius:12px !important;overflow:hidden;box-shadow:0 6px 16px rgba(22,52,91,0.22) !important;border:none !important;}
  .leaflet-control-zoom a{width:34px !important;height:34px !important;line-height:34px !important;font-size:17px !important;border-radius:0 !important;color:var(--text-hi) !important;background:var(--bg-card) !important;}
  .leaflet-control-zoom a:hover{background:var(--bg-card-alt) !important;color:var(--accent) !important;}
  .leaflet-control-zoom-in{border-bottom:1px solid var(--border-subtle) !important;}
  .leaflet-tooltip{font-family:inherit;font-size:12px;font-weight:600;border-radius:8px;border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);color:var(--text-hi);padding:6px 10px;}
  .leaflet-popup-content-wrapper{border-radius:var(--radius-md);}
  .leaflet-control-attribution{background:rgba(255,255,255,0.85) !important;font-size:10.5px !important;border-radius:8px 0 0 0 !important;padding:2px 8px !important;color:var(--text-mid) !important;}
  .leaflet-control-attribution a{color:var(--text-mid) !important;}

  /* ---------- DOCUMENTS ---------- */
  .doc-row{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:13px 15px;margin-bottom:9px;}
  .doc-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none;}
  .doc-row .label{flex:1;font-size:13px;color:var(--text-hi);}
  .doc-row .label.done{color:var(--text-low);text-decoration:line-through;}
  .upload-zone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:22px;text-align:center;color:var(--text-mid);font-size:12.5px;margin-top:16px;}
  .upload-zone input{margin-top:10px;}
  .upload-ico svg{width:32px;height:32px;color:var(--accent);}
  .file-list{list-style:none;margin:12px 0 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
  .file-list li{font-size:12px;color:var(--text-mid);background:var(--bg-card-alt);padding:8px 11px;border-radius:8px;display:flex;justify-content:space-between;}

  /* ---------- КОНСТРУКТОР РЕЗЮМЕ ---------- */
  .resume-builder-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
  .resume-preview{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:22px;box-shadow:var(--shadow-card);}
  .resume-preview h3{font-size:18px;margin-bottom:2px;}
  .resume-preview .resume-role{font-size:12.5px;color:var(--accent-2);margin-bottom:14px;}
  .resume-preview .resume-block{margin-bottom:14px;}
  .resume-preview .resume-block h5{font-size:11px;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-low);margin-bottom:5px;}
  .resume-preview .resume-block p{font-size:12.5px;color:var(--text-mid);white-space:pre-line;}
  .resume-preview .resume-block ul{margin:0;padding-left:18px;font-size:12.5px;color:var(--text-mid);}
  .resume-empty-hint{font-size:12px;color:var(--text-low);font-style:italic;}
  @media (max-width:1220px){ .resume-builder-grid{grid-template-columns:1fr;} }
  @media print{
    body *{visibility:hidden;}
    #resume-print-area,#resume-print-area *{visibility:visible;}
    #resume-print-area{position:absolute;left:0;top:0;width:100%;padding:0;border:none;box-shadow:none;}
  }

  /* ---------- CABINET ---------- */
  .cabinet-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:start;}
  .form-block{padding:20px;margin-bottom:16px;}
  .form-block h4{font-size:11.5px;margin-bottom:14px;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.04em;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
  .form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;}
  .form-group{display:flex;flex-direction:column;gap:6px;}
  .form-group label{font-size:12px;color:var(--text-mid);}
  .form-group input,.form-group select,.form-group textarea{background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-hi);padding:10px 12px;border-radius:9px;font-size:13px;width:100%;}
  .form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);}
  .form-group textarea{resize:vertical;min-height:64px;line-height:1.5;}
  .password-field{position:relative;}
  .password-field input{padding-right:40px;}
  .password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:none;border:none;padding:6px;display:flex;align-items:center;justify-content:center;color:var(--text-mid);cursor:pointer;}
  .password-toggle:hover{color:var(--text-hi);}
  .password-toggle svg{width:17px;height:17px;}
  .chip-group{display:flex;flex-wrap:wrap;gap:8px;}
  .chip-toggle{padding:8px 13px;border-radius:100px;font-size:12px;background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-mid);}
  .chip-toggle.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2);font-weight:650;}
  .hint-text{font-size:11px;color:var(--text-low);margin-top:8px;}
  .avatar-current{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
  .avatar-current .pic{width:58px;height:58px;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,var(--accent),var(--accent-deep));display:flex;align-items:center;justify-content:center;font-size:26px;flex:none;border:none;padding:0;cursor:pointer;}
  .avatar-current .pic img{width:100%;height:100%;object-fit:cover;}

  /* ---------- ACHIEVEMENTS ---------- */
  .grid-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .badge-card{padding:18px;border-radius:var(--radius-md);text-align:center;background:var(--bg-card);border:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;gap:10px;}
  .badge-card.locked{opacity:0.55;}
  .badge-card.locked .badge-pic{filter:grayscale(1);}
  .badge-pic{width:64px;height:64px;border-radius:16px;overflow:hidden;background:var(--bg-card-alt);display:flex;align-items:center;justify-content:center;font-size:30px;}
  .badge-pic img{width:100%;height:100%;object-fit:cover;}
  .badge-card b{font-size:13px;color:var(--text-hi);}
  .badge-card .cond{font-size:11.5px;color:var(--text-mid);}
  .badge-status{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;text-transform:uppercase;letter-spacing:0.04em;}
  .badge-status.open{background:var(--good-soft);color:var(--good-strong);}
  .badge-status.locked{background:var(--bg-card-alt);color:var(--text-disabled);}

  /* ---------- ASSISTANT ---------- */
  .navik-shell{display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:420px;}
  .navik-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
  .navik-quick button{background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-mid);padding:8px 13px;border-radius:100px;font-size:12px;}
  .navik-quick button:hover{border-color:var(--accent);color:var(--accent-2);}
  .navik-log{flex:1;overflow-y:auto;padding:6px 4px 14px 4px;display:flex;flex-direction:column;gap:12px;}
  .msg{max-width:78%;padding:12px 15px;border-radius:14px;font-size:13.5px;line-height:1.5;white-space:pre-line;}
  .msg.bot{background:var(--bg-card);border:1px solid var(--border-subtle);align-self:flex-start;border-bottom-left-radius:4px;color:var(--text-hi);max-width:88%;}
  .msg.user{background:linear-gradient(140deg,var(--accent),var(--accent-deep));color:#FFFFFF;align-self:flex-end;border-bottom-right-radius:4px;font-weight:560;}
  .navik-inputbar{display:flex;gap:9px;padding-top:12px;border-top:1px solid var(--border-subtle);}
  .navik-inputbar input{flex:1;background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-hi);padding:12px 14px;border-radius:12px;font-size:13.5px;}
  .navik-inputbar input:focus{outline:none;border-color:var(--accent);}

  /* ---------- QUIZ ---------- */
  .quiz-wrap{max-width:640px;}
  .quiz-progress{display:flex;gap:6px;margin-bottom:22px;}
  .quiz-progress span{height:4px;flex:1;border-radius:3px;background:var(--border-subtle);}
  .quiz-progress span.done{background:var(--accent);}
  .quiz-step-title{font-size:19px;margin-bottom:6px;}
  .quiz-step-sub{color:var(--text-mid);font-size:13px;margin-bottom:20px;}
  .quiz-options{display:flex;flex-direction:column;gap:9px;margin-bottom:24px;}
  .quiz-option{display:flex;align-items:center;gap:11px;padding:14px 16px;border-radius:12px;background:var(--bg-card);border:1.5px solid var(--border-subtle);text-align:left;font-size:13.5px;color:var(--text-hi);}
  .quiz-option:hover{border-color:var(--accent-2);}
  .quiz-option.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-2);font-weight:600;}
  .quiz-option .chk{width:19px;height:19px;border-radius:6px;border:1.5px solid var(--border-strong);flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;}
  .quiz-option.selected .chk{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);}
  .quiz-nav{display:flex;justify-content:space-between;}
  .quiz-tags-hint{font-size:11.5px;color:var(--text-low);margin:-14px 0 16px 0;}

  /* ---------- RIGHT COLUMN ---------- */
  .rightcol{padding:22px 20px;display:flex;flex-direction:column;gap:16px;border-left:1px solid var(--border-subtle);height:100vh;position:sticky;top:0;overflow-y:auto;}
  .hero-card{padding:18px;text-align:center;}
  .hero-card .avatar-big{width:84px;height:84px;border-radius:20px;margin:0 auto 12px auto;overflow:hidden;background:linear-gradient(145deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:38px;border:3px solid var(--bg-card);box-shadow:0 0 0 2px var(--accent-soft-strong);padding:0;cursor:pointer;}
  .hero-card .avatar-big img{width:100%;height:100%;object-fit:cover;}
  .hero-card h3{font-size:16px;}
  .hero-card .role{font-size:12px;color:var(--accent-2);font-weight:650;margin-top:2px;}
  .hero-card .lvl{font-size:11px;color:var(--text-low);margin-top:8px;}
  .hero-card .desc{font-size:12px;color:var(--text-mid);margin-top:10px;}
  .xp-bar-wrap{margin-top:14px;}
  .xp-bar-track{height:8px;background:var(--bg-card-alt);border-radius:100px;overflow:hidden;border:1px solid var(--border-subtle);}
  .xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-deep),var(--accent));border-radius:100px;}
  .xp-bar-label{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-low);margin-top:6px;}
  .rightcol .btn{width:100%;justify-content:center;margin-top:12px;}

  .panel-title{font-size:12px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-low);font-weight:700;margin-bottom:10px;padding:0 3px;}
  .nextstep-mini{padding:14px;}
  .nextstep-mini b{display:block;font-size:13px;margin-bottom:4px;}
  .nextstep-mini span{font-size:11.5px;color:var(--text-mid);}
  .event-item{display:flex;gap:10px;padding:9px 3px;border-bottom:1px solid var(--border-subtle);}
  .event-item:last-child{border-bottom:none;}
  .event-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px;flex:none;pointer-events:none;}
  .event-item .txt{font-size:12px;color:var(--text-mid);}
  .event-item .txt b{color:var(--accent-2);}
  .event-item .time{font-size:10.5px;color:var(--text-low);margin-top:2px;}
  .events-empty,.badges-empty{font-size:12px;color:var(--text-low);padding:6px 3px;}

  .mini-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
  .mini-badge{aspect-ratio:1/1;border-radius:12px;background:var(--bg-card-alt);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;position:relative;padding:0;cursor:pointer;width:100%;}
  .mini-badge.locked{opacity:0.35;filter:grayscale(1);}
  .mini-badge img{width:100%;height:100%;object-fit:cover;}
  .mini-badge .tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface-readable);border:1px solid var(--border-strong);color:var(--text-on-dark);font-size:10.5px;padding:6px 9px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:5;}
  .mini-badge:hover .tip{opacity:1;}

  /* ---------- IMAGE FALLBACK ---------- */
  .imgbox{position:relative;width:100%;height:100%;}
  .imgbox img{width:100%;height:100%;object-fit:cover;display:block;}
  .imgbox .fallback-content{display:none;position:absolute;inset:0;align-items:center;justify-content:center;pointer-events:none;}
  .imgbox.is-fallback img{display:none;}
  .imgbox.is-fallback .fallback-content{display:flex;}

  /* ---------- MODALS ---------- */
  .modal-backdrop{position:fixed;inset:0;background:rgba(10,25,45,0.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;}
  .modal-box{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:86vh;overflow-y:auto;padding:26px;position:relative;color:var(--text-hi);box-shadow:var(--shadow-card);}
  .modal-close{position:absolute;top:16px;right:16px;background:var(--bg-card-alt);border:1px solid var(--border-subtle);width:32px;height:32px;border-radius:10px;color:var(--text-mid);font-size:16px;}
  .modal-close:hover{color:var(--bad);}
  .avatar-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;}
  .avatar-pick-card{padding:14px;border-radius:14px;background:var(--bg-card-alt);border:1.5px solid var(--border-subtle);text-align:center;}
  .avatar-pick-card.current{border-color:var(--accent);}
  .avatar-pick-card .pic{width:64px;height:64px;border-radius:16px;margin:0 auto 10px auto;overflow:hidden;background:var(--bg-card-alt);}
  .avatar-pick-card .pic img{width:100%;height:100%;object-fit:cover;}
  .avatar-pick-card b{font-size:13px;display:block;color:var(--text-hi);}
  .avatar-pick-card .role{font-size:11px;color:var(--accent-2);margin:2px 0 8px 0;display:block;}
  .avatar-pick-card p{font-size:11px;color:var(--text-mid);margin-bottom:10px;}

  .modal-detail-head{display:flex;gap:14px;align-items:center;margin-bottom:14px;}
  .modal-detail-head .pic{width:56px;height:56px;border-radius:14px;overflow:hidden;background:var(--bg-card-alt);display:flex;align-items:center;justify-content:center;font-size:26px;flex:none;}
  .modal-detail-head h2{font-size:18px;}
  .modal-detail-head span{font-size:12px;color:var(--accent-2);}
  .modal-reason-list{list-style:none;margin:10px 0 0 0;padding:0;}
  .modal-reason-list li{font-size:12.5px;color:var(--text-mid);padding:6px 0;border-bottom:1px solid var(--border-subtle);}
  .modal-reason-list li:last-child{border-bottom:none;}
  .modal-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;}
  .career-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
  .career-chip{font-size:11.5px;background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-mid);padding:5px 10px;border-radius:100px;}

  .compare-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}
  .compare-table th,.compare-table td{padding:9px 10px;border-bottom:1px solid var(--border-subtle);text-align:left;color:var(--text-mid);vertical-align:top;}
  .compare-table th{color:var(--text-low);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:0.03em;}
  .compare-table td.compare-best{color:var(--good-strong);font-weight:700;background:var(--good-soft);border-radius:6px;}

  /* ---------- CELEBRATION ---------- */
  .celeb-backdrop{position:fixed;inset:0;background:rgba(8,20,36,0.6);z-index:200;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .celeb-box{background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));border:1px solid rgba(36,107,253,0.4);border-radius:24px;padding:38px 34px;text-align:center;max-width:400px;width:92%;position:relative;z-index:2;box-shadow:0 20px 60px rgba(8,20,36,0.4);}
  .celeb-avatar{width:76px;height:76px;border-radius:20px;margin:0 auto 16px auto;overflow:hidden;background:linear-gradient(145deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:34px;}
  .celeb-avatar img{width:100%;height:100%;object-fit:cover;}
  .celeb-box .eyebrow{display:block;margin-bottom:8px;}
  .celeb-box h2{font-size:22px;margin-bottom:6px;color:var(--text-on-dark);}
  .celeb-box .sub{color:var(--accent-2);font-size:13.5px;font-weight:650;margin-bottom:10px;}
  .celeb-box .txt{font-size:13px;color:var(--text-on-muted);margin-bottom:18px;}
  .celeb-xp{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent-2);padding:8px 16px;border-radius:100px;font-weight:800;font-size:13.5px;margin-bottom:18px;}
  .confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall linear forwards;pointer-events:none;}
  @keyframes confetti-fall{to{transform:translateY(560px) rotate(540deg);opacity:0;}}

  /* ---------- РАБОТОДАТЕЛЯМ (тёмный блок-исключение) ---------- */
  .employer-hero{background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));border-radius:var(--radius-lg);padding:32px 30px;margin-bottom:16px;box-shadow:0 20px 60px rgba(8,20,36,0.3);}
  .employer-hero .eyebrow{display:block;margin-bottom:10px;}
  .employer-hero h2{font-size:24px;color:var(--text-on-dark);margin-bottom:10px;max-width:560px;}
  .employer-hero p{font-size:13.5px;color:var(--text-on-muted);max-width:560px;margin-bottom:18px;}
  .employer-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .employer-stat-card{background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));border-radius:var(--radius-md);padding:18px 16px;text-align:center;box-shadow:0 10px 26px rgba(8,20,36,0.22);border:none;width:100%;font-family:inherit;}
  button.employer-stat-card{cursor:pointer;transition:transform .12s;}
  button.employer-stat-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(8,20,36,0.3);}
  .employer-stat-card b{display:block;font-size:24px;color:var(--accent-2);margin-bottom:4px;}
  .employer-stat-card span{font-size:11.5px;color:var(--text-on-muted);}
  .employer-benefits-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  .employer-benefit-card{background:linear-gradient(165deg,var(--dark-secondary),var(--dark-bg));border-radius:var(--radius-md);padding:20px;box-shadow:0 10px 26px rgba(8,20,36,0.22);border:none;width:100%;text-align:left;font-family:inherit;}
  button.employer-benefit-card{cursor:pointer;transition:transform .12s;}
  button.employer-benefit-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(8,20,36,0.3);}
  .employer-benefit-ico{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-2);display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
  .employer-benefit-ico svg{width:19px;height:19px;}
  .employer-benefit-card b{display:block;color:var(--text-on-dark);font-size:14px;margin-bottom:6px;}
  .employer-benefit-card p{font-size:12.5px;color:var(--text-on-muted);}

  /* ---------- TOASTS ---------- */
  .toast-stack{position:fixed;top:18px;right:18px;z-index:500;display:flex;flex-direction:column;gap:10px;max-width:340px;}
  .toast{
    background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--accent);
    color:var(--text-hi);padding:12px 15px;border-radius:12px;font-size:12.5px;box-shadow:0 10px 26px rgba(22,52,91,0.18);
    display:flex;align-items:center;gap:9px;animation:toast-in .18s ease-out;
  }
  .toast.success{border-left-color:var(--good);}
  .toast.warn{border-left-color:var(--warn);}
  .toast.error{border-left-color:var(--bad);}
  @keyframes toast-in{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}

  /* ---------- MOBILE NAV ---------- */
  .mobile-nav{display:none;}

  /* ---------- АУДИТОРИЯ НА ГЛАВНОЙ ---------- */
  .audience-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
  .audience-picker-label{font-size:12px;font-weight:650;color:var(--text-on-muted);text-transform:uppercase;letter-spacing:0.04em;}
  .audience-picker-options{display:flex;flex-wrap:wrap;gap:8px;}
  .audience-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:100px;font-size:12.5px;font-weight:600;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.22);color:var(--text-on-dark);backdrop-filter:blur(2px);}
  .audience-chip svg{width:15px;height:15px;flex:none;}
  .audience-chip:hover{background:rgba(255,255,255,0.18);}
  .audience-chip.active{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);}

  /* ---------- ВХОД / РЕГИСТРАЦИЯ ---------- */
  .auth-tabs{display:flex;gap:6px;background:var(--bg-card-alt);border-radius:12px;padding:4px;}
  .auth-tab{flex:1;padding:9px 12px;border-radius:9px;font-size:13px;font-weight:650;color:var(--text-mid);background:none;border:none;text-align:center;}
  .auth-tab.active{background:var(--bg-card);color:var(--text-hi);box-shadow:var(--shadow-card);}
  .auth-form .form-group label{display:block;margin-bottom:6px;}
  .auth-form input,.auth-form select{background:var(--bg-card-alt);border:1px solid var(--border-subtle);color:var(--text-hi);padding:10px 12px;border-radius:9px;font-size:13px;width:100%;}
  .auth-form input:focus,.auth-form select:focus{outline:none;border-color:var(--accent);}
  .topnav-user-email{font-size:12px;color:var(--text-mid);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .sidebar-account{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--text-low);margin:8px 0;}
  .sidebar-account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  /* ---------- RESPONSIVE ---------- */
