/* HOHMAN / Workplace 2026.09 — shared employee, admin and login interface.
   Product states and permissions remain owned by the existing application. */
:root {
  color-scheme: light;
  --bg: #f3f4f6;
  --surface: #fff;
  --surface-2: #f7f8fa;
  --surface-3: #eceef2;
  --border: #dfe3e9;
  --border-strong: #cbd1da;
  --text: #20242c;
  --text-secondary: #596271;
  --accent: #e2231a;
  --accent-strong: #b91e18;
  --accent-bg: #fff1ef;
  --accent-border: #f2c6c1;
  --green: #217443;
  --green-bg: #edf8f0;
  --green-border: #b9dfc5;
  --ok: var(--green);
  --ok-bg: var(--green-bg);
  --warn: #8b590b;
  --warn-bg: #fff6e8;
  --orange: var(--warn);
  --orange-bg: var(--warn-bg);
  --orange-border: #e9cea4;
  --danger: #b42318;
  --danger-bg: #fff1ef;
  --shadow-xs: 0 1px 2px rgba(24,32,45,.035);
  --shadow-sm: 0 4px 18px rgba(24,32,45,.045);
  --shadow-md: 0 16px 48px rgba(24,32,45,.13);
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 18px;
  --shell-bg: var(--bg);
  --shell-panel: var(--surface);
  --shell-line: var(--border);
  --shell-muted: var(--text-secondary);
  --shell-text: var(--text);
  --shell-red: var(--accent);
  --shell-red-soft: var(--accent-bg);
  --shell-shadow: var(--shadow-sm);
  --ui-bg: var(--bg);
  --ui-surface: var(--surface);
  --ui-surface-2: var(--surface-2);
  --ui-surface-3: var(--surface-3);
  --ui-border: var(--border);
  --ui-text: var(--text);
  --ui-text-2: var(--text);
  --ui-text-secondary: var(--text-secondary);
  --ui-warn: var(--warn);
  --ui-hover: var(--surface-2);
}
html { background: var(--bg); scroll-padding-top: 88px; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 14px; line-height: 1.55; -webkit-font-smoothing: auto;
}
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
:focus-visible { outline: 3px solid #386baf; outline-offset: 3px; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #386baf; outline-offset: 3px;
}
.hh-skip { position: fixed; left: 16px; top: -80px; z-index: 100000; padding: 10px 16px; background: #fff; color: var(--text); border-radius: 8px; }
.hh-skip:focus { top: 10px; }
h1, h2, h3, h4 { color: var(--text); font-weight: 650; }
:is(.sectiontitle,.cabinet-section-title) { font-size: clamp(22px,2vw,28px); line-height: 1.25; letter-spacing: -.035em; margin-bottom: 8px; }
:is(.sectionsub,.cabinet-section-sub) { font-size: 14px; line-height: 1.6; color: var(--text-secondary); margin-bottom: 24px; }
.backlink { display: inline-flex; gap: 6px; margin-bottom: 18px; font-size: 13px; }

/* Shell: one navigation, aligned branding, content first. */
body:not(.hohman-admin):not(.hohman-login) > .topbar { padding: 0; background: #fff; box-shadow: none; backdrop-filter: none; }
.topbar-inner { max-width: 1680px; min-height: 60px; padding: 0 24px; }
.topbar-product { font-size: 12px; color: var(--text-secondary); gap: 14px; }
.topbar-product b { font-size: 14px; letter-spacing: .04em; }
.topbar-product .topbar-logo { display: block; width: 120px; height: auto; max-width: none; flex: 0 0 auto; object-fit: contain; }
.topbar-iconbtn { width: 36px; height: 36px; border-radius: 9px; background: var(--surface-2); }
.topbar-iconbtn:hover { transform: none; background: var(--accent-bg); border-color: var(--accent-border); }
.topbar-pop, .topbar-user-pop { box-shadow: var(--shadow-md); border-radius: 12px; }
.topbar-user { min-height: 40px; padding: 4px 8px; }
.tbu-avatar { width: 30px; height: 30px; background: #2d3440; font-size: 12px; }
.tbu-info b { font-size: 12px; }
.tbu-info small { font-size: 11px; }
.app-shell { max-width: 1680px; padding: 24px; gap: 28px; }
.app-shell > .sidebar {
  width: 252px; flex-basis: 252px; padding: 20px 14px 14px;
  top: 80px; height: calc(100dvh - 100px); min-height: 0; max-height: calc(100dvh - 100px);
  border-radius: 18px; box-shadow: var(--shadow-xs); scrollbar-width: thin;
  scrollbar-color: #cbd1da transparent;
}
.sidebar .logo-row { min-height: 50px; padding: 4px 12px; margin: 0 0 16px; justify-content: center; }
.sidebar .logo-img { width: 148px; height: auto; max-height: 38px; object-fit: contain; }
.sidebar .search-trigger { min-height: 42px; padding: 9px 10px; border-radius: 9px; font-size: 13px; box-shadow: none; }
.sidebar .sidebar-workspace { border: 0; padding: 10px; margin-bottom: 8px; background: var(--surface-2); border-radius: 10px; }
.sidebar-workspace .sp-avatar { width: 30px; height: 30px; border-radius: 9px; font-size: 12px; }
.sidebar-workspace .sp-info small { font-size: 11px; color: var(--text-secondary); }
.sidebar .sidebar-grouplabel {
  box-sizing: border-box; width: 100%; min-height: 32px; flex: 0 0 auto;
  margin: 12px 0 5px; padding: 7px 10px; border: 1px solid #e1e5eb;
  border-radius: 8px; background: var(--surface-3); color: #3f4856;
  font-size: 12px; font-weight: 750; letter-spacing: .055em; line-height: 1.4;
  text-align: left; white-space: normal; cursor: default;
}
.sidebar #planGroupLabel { margin-top: 8px; }
.sidebar .sidebar-grouplabel::before { display: none; }
.sidebar .sidebar-grouplabel.active-group {
  background: #e3e7ed; color: var(--text); border-color: #d7dde5;
}
nav.maintabs { gap: 2px; align-items: stretch; padding-bottom: 0; }
nav.maintabs button {
  box-sizing: border-box; width: calc(100% - 8px); margin: 0 0 0 8px;
  padding: 7px 10px; min-height: 36px;
  border-radius: 9px; border: 1px solid transparent; color: var(--text-secondary);
  font-size: 13px; font-weight: 550; line-height: 1.4; box-shadow: none;
}
nav.maintabs button:hover { transform: none; background: var(--surface-2); border-color: transparent; }
nav.maintabs button.active { color: var(--accent-strong); background: var(--accent-bg); border-color: #f5d5d1; box-shadow: none; font-weight: 650; }
nav.maintabs button .nav-ico { width: 17px; height: 17px; opacity: 1; }
.sidebar .sidebar-bottomlink { padding-top: 12px; }
.sidebar-topcard { padding: 10px; }
.sidebar-bottomlink .sidebar-topcard { opacity: 1; }
.sidebar-contact { font-size: 11px; line-height: 1.6; }
.app-main > main, .app-shell > .app-main > main { width: 100%; max-width: none; padding: 3px 0 48px; }
.app-main footer { color: var(--text-secondary); font-size: 12px; }
.cabinet-shell { margin: 0; background: transparent; border: 0; box-shadow: none; }
.cabinet-body > .cabinet-nav, .cabinet-shell > .cabinet-topbar { display: none !important; }
.cabinet-content { min-width: 0; }
.hh-menu-toggle { display: none; }

/* Shared cards, reading surfaces and key figures. */
:is(.homecard,.card,.refblock,.machinecard,.methodcard,.typecard,.objcard,.lecturecard,.stagecard,
    .cabinet-planblock,.cabinet-checklist,.cabinet-tplcard,.cabinet-roadmap-panel,.cra-card,
    .cabinet-home-card,.cabinet-toolcard,.cabinet-linkcard,.cabinet-roadmap-card,.training-block,.report-card) {
  border-color: var(--border); border-radius: 14px; box-shadow: var(--shadow-xs);
}
:is(.homecard,.card,.refblock,.machinecard,.methodcard,.typecard,.cabinet-planblock,.cabinet-checklist,
    .cabinet-home-card,.cabinet-toolcard,.cabinet-linkcard,.cabinet-roadmap-card,.cabinet-roadmap-panel,.cra-card) { background: var(--surface); }
:is(.homecard,.cabinet-home-card,.cabinet-toolcard,.cabinet-linkcard):hover {
  transform: none; box-shadow: var(--shadow-sm); border-color: var(--accent-border);
}
.cabinet-toolcard::before { display: none; }
.cabinet-toolcard { display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
.cabinet-toolcard .cti-meta { margin-top: auto; padding-top: 12px; }
.cabinet-tool-grid { grid-template-columns: repeat(auto-fit,minmax(min(230px,100%),1fr)); }
.cabinet-banner:not(.report-reminder) { background: var(--green-bg); border-color: var(--green-border); color: #235b38; }
.homecard .ico, .cabinet-toolcard .cti-ico { background: var(--accent); box-shadow: none; border-radius: 9px; }
.trainoverview { border-radius: 14px; background: #242830; padding: 22px; }
.trainoverview-sub, .trainoverview-badge { color: #c6cbd4; font-size: 13px; }
.trainoverview-pct { color: #fff; font-variant-numeric: tabular-nums; }
.cabinet-planblock, .cabinet-roadmap-panel { padding: 22px; margin-bottom: 20px; }
.cabinet-planblock h3 { font-size: 17px; margin-bottom: 14px; letter-spacing: -.02em; }
.cabinet-demo-note, .cabinet-rank-sub, .lectures-hint { font-size: 13px; color: var(--text-secondary); }
.cabinet-statrow { grid-template-columns: repeat(auto-fit,minmax(min(175px,100%),1fr)); gap: 12px; margin-bottom: 20px; }
.cabinet-stat { padding: 18px; background: #fff; border: 1px solid var(--border); border-radius: 12px; box-shadow: none; }
.cabinet-stat .cs-label { font-size: 11px; color: var(--text-secondary); letter-spacing: .055em; line-height: 1.4; }
.cabinet-stat .cs-value { font-size: 27px; font-weight: 700; letter-spacing: -.045em; line-height: 1.25; font-variant-numeric: tabular-nums; }
.cabinet-stat .cs-sub { font-size: 12px; line-height: 1.45; }
.moneycell { padding: 14px 16px; border-radius: 10px; box-shadow: none; min-width: 0; }
.moneycell .mc-label { font-size: 11px; line-height: 1.45; letter-spacing: .04em; }
.moneycell .mc-val { font-size: 19px; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
/* Values share the label's left edge and the same row across adjacent cards.
   The fallback reserves two label lines; subgrid also handles longer labels.
   .dr-card-nums added (admin.php's own moneycell-grid wrapper class, distinct from
   app.html's .moneygrid) so the same row-alignment applies in the admin panel too. */
:is(.moneygrid,.forecast-quartercards,.dr-card-nums) > .moneycell,
.cabinet-statrow > .cabinet-stat {
  display: grid; grid-template-rows: minmax(2.9em,auto) auto 1fr;
  align-content: start; text-align: left;
}
:is(.moneygrid,.forecast-quartercards,.dr-card-nums) > .moneycell > .mc-label { grid-row: 1; margin: 0 0 6px; }
:is(.moneygrid,.forecast-quartercards,.dr-card-nums) > .moneycell > .mc-val { grid-row: 2; margin: 0; }
:is(.moneygrid,.forecast-quartercards,.dr-card-nums) > .moneycell > .mc-sub { grid-row: 3; }
.cabinet-statrow > .cabinet-stat > .cs-label { grid-row: 1; margin: 0 0 6px; }
.cabinet-statrow > .cabinet-stat > .cs-value { grid-row: 2; margin: 0; }
.cabinet-statrow > .cabinet-stat > .cs-sub { grid-row: 3; }
@supports (grid-template-rows: subgrid) {
  :is(.moneygrid,.forecast-quartercards,.dr-card-nums) > .moneycell,
  .cabinet-statrow > .cabinet-stat {
    grid-row: span 3; grid-template-rows: subgrid; row-gap: 0;
  }
}
.cabinet-tplcard { padding: 16px 18px; margin-bottom: 12px; }
.cabinet-tplcard p, .objfield p, .lecturebody, .stagebody { font-size: 15px; line-height: 1.7; }
.machinecard { padding: 18px; }
.machinecard h3 { font-size: 16px; line-height: 1.35; }
.machinegrid { grid-template-columns: repeat(auto-fit,minmax(min(270px,100%),1fr)); gap: 16px; }
.machinecard .desc, .machinecard .spec { font-size: 13px; line-height: 1.6; }
.hero { border-radius: 16px; box-shadow: none; }
.hero h1 { font-size: clamp(25px,2.7vw,34px); letter-spacing: -.04em; }
.hero p { font-size: 15px; line-height: 1.65; }

/* Controls: red for action, underline for level-two navigation. */
:is(.btn,.dr-savebtn,.report-cal-navbtn,.cabinet-copy-btn,.copybtn,.pill,.crp-tab,.dp-quickbtn,.adm-cat,.adm-sub) {
  min-height: 36px; font-size: 13px; border-radius: 8px;
  transition: color .14s,background-color .14s,border-color .14s,box-shadow .14s;
}
:is(.dr-savebtn,button.primary) { background: var(--accent); color: #fff; box-shadow: none; }
:is(.dr-savebtn,button.primary):hover { background: var(--accent-strong); box-shadow: none; }
:is(.report-cal-navbtn,.cabinet-copy-btn,.copybtn) { background: #fff; border: 1px solid var(--border-strong); color: var(--text); padding: 7px 12px; }
:is(.report-cal-navbtn,.cabinet-copy-btn,.copybtn):hover { background: var(--accent-bg); color: var(--accent-strong); border-color: var(--accent-border); transform: none; box-shadow: none; }
:is(.cabinet-copy-btn,.copybtn).is-copied, .copybtn.copied { background: var(--green-bg); color: var(--green); border-color: var(--green-border); }
.subtabs { background: transparent; gap: 22px; padding: 0; margin-bottom: 20px; border-bottom: 1px solid var(--border); }
.subtabs button { border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; box-shadow: none; padding: 10px 0; min-height: 42px; font-size: 14px; color: var(--text-secondary); }
.subtabs button.active { border-bottom-color: var(--accent); background: transparent; color: var(--accent-strong); box-shadow: none; }
.statusfilter { background: transparent; padding: 0; gap: 8px; }
.statusfilter button, .pill { border-radius: 999px; font-size: 13px; padding: 7px 13px; box-shadow: none; }
.statusfilter button[data-s="all"].active { background: var(--accent); border-color: var(--accent); box-shadow: none; }
.statusfilter button[data-s="flagship"].active { background: var(--green-bg); color: var(--green); border-color: var(--green-border); box-shadow: none; }
.statusfilter button[data-s="onrequest"].active { background: var(--warn-bg); color: var(--warn); border-color: var(--orange-border); box-shadow: none; }
.statusfilter button[data-s="discontinued"].active { background: #e9edf2; color: #47515f; border-color: #cbd1da; box-shadow: none; }
:is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.search-input),select,textarea) {
  max-width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--border-strong);
  border-radius: 8px; background: #fff; color: var(--text); font-size: 14px; line-height: 1.4;
}
textarea { min-height: 88px; resize: vertical; }
input[type=checkbox], input[type=radio] { accent-color: var(--accent); }
input:hover, select:hover, textarea:hover { border-color: #aeb7c3; }
input:disabled, select:disabled, textarea:disabled { background: var(--surface-2); color: var(--text-secondary); }
.search-input { min-width: 0; }
.search-modal, .report-modal, .board-modal { border-radius: 16px; border: 1px solid var(--border); box-shadow: var(--shadow-md); }
.search-result-item { padding: 11px 12px; }
.search-result-item .sr-title { font-size: 14px; }
.search-result-item .sr-snippet { font-size: 13px; }

/* Tables are real tables. Horizontal scrolling stays local to the table. */
table { font-variant-numeric: tabular-nums; }
:is(.metricstable,.forecast-periodtable,.contable,.hohman-admin table) {
  width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; color: var(--text);
}
:is(.metricstable,.forecast-periodtable,.contable,.hohman-admin table) th {
  padding: 11px 12px; background: #f6f7f9; color: #596271; font-size: 11px;
  font-weight: 650; letter-spacing: .045em; line-height: 1.4; border-bottom: 1px solid var(--border);
}
:is(.metricstable,.forecast-periodtable,.contable,.hohman-admin table) td { padding: 12px; line-height: 1.5; border-bottom: 1px solid #eceef2; }
:is(.metricstable,.forecast-periodtable,.contable,.hohman-admin table) tbody tr:hover td { background-color: #f9fafb; }
.hh-table-scroll { max-width: 100%; overflow: auto; overscroll-behavior-x: contain; border: 1px solid var(--border); border-radius: 10px; margin-block: 12px; scrollbar-width: thin; }
.hh-table-scroll > table { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.hh-table-scroll:focus-visible { outline-offset: 2px; }
.hh-number { text-align: left; font-variant-numeric: tabular-nums; }
.hh-table-scroll .hh-number { white-space: nowrap; }
/* One content axis per column, including legacy inline alignment rules.
   Leave merged cells (empty states, section headings) in their original layout.
   Do not change display/width: native table column sizing remains intact. */
:is(.app-main,.hohman-admin main) table :is(th,td):not([colspan]),
:is(.app-main,.hohman-admin main) table :is(th,td)[colspan="1"] {
  text-align: left !important; vertical-align: middle;
  padding-inline: 12px;
}
:is(.app-main,.hohman-admin main) table th { white-space: normal; }
:is(.app-main,.hohman-admin main) table .mt-bar {
  margin-inline: 0; max-width: 100%;
}
.ap-totalrow td { background: #f1f4f7; font-weight: 700; }

/* Analytics uses the same surface, with legible chart labels. */
.cra-2col { gap: 16px; }
.cra-card { padding: 18px; }
.crp-head { gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.crp-head > b { font-size: 18px; font-weight: 650; letter-spacing: -.025em; }
.crp-headbtns { gap: 6px; flex-wrap: wrap; }
.crp-daterange, .crp-filters { gap: 8px; flex-wrap: wrap; }
.crp-tabs[aria-label="Тип аналитики"] { border-bottom: 1px solid var(--border); gap: 22px; }
.crp-tabs[aria-label="Тип аналитики"] .crp-tab { background: transparent; color: var(--text-secondary); border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 10px 0; box-shadow: none; }
.crp-tabs[aria-label="Тип аналитики"] .crp-tab.active { color: var(--accent-strong); border-bottom-color: var(--accent); background: transparent; }
.crp-tabs[aria-label="Направление продаж"] { background: transparent; gap: 8px; }
.crp-tabs[aria-label="Направление продаж"] .crp-tab { border-radius: 999px; padding: 8px 14px; }
.cra-formula { border-radius: 10px; }
.cra-formula span, .cra-formula small, .cra-io-stat small, .cra-insight-body small { font-size: 12px; }
.cra-formula strong { font-size: 24px; letter-spacing: -.04em; }
.cra-chart-wrap { min-height: 240px; }
.cra-chart-wrap.cra-chart-tall { min-height: 280px; }
.cra-flow { gap: 10px; }
.wz-tip { font-size: 13px; line-height: 1.6; border-radius: 10px; }
.hz-toast { border-radius: 12px; box-shadow: var(--shadow-md); }

/* Administration keeps its existing categories and all action handlers. */
.hohman-admin > .topbar { position: relative; display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 28px; background: #fff; color: var(--text-secondary); border-bottom: 1px solid var(--border); }
.hohman-admin > .topbar a { color: var(--text-secondary); }
.hohman-admin > .topbar a:hover { color: var(--accent); }
.hohman-admin > header { display: flex; align-items: center; min-height: 84px; padding: 22px 28px; background: var(--bg); border: 0; }
.hohman-admin > header .logo-img { width: 148px; height: auto; max-height: 32px; }
.hohman-admin > main { width: calc(100% - 56px); max-width: 1624px; padding: 0 0 56px; }
.hohman-admin .adm-nav { top: 0; padding: 12px 16px 0; border-radius: 14px; background: #fff; box-shadow: var(--shadow-xs); margin-bottom: 24px; }
.hohman-admin .adm-cats { gap: 6px; margin-bottom: 8px; }
.hohman-admin .adm-cat { padding: 9px 14px; font-size: 13px; border: 1px solid transparent; border-radius: 9px; background: #fff; color: var(--text-secondary); box-shadow: none; }
.hohman-admin .adm-cat.active { background: var(--text); color: #fff; border-color: var(--text); box-shadow: none; }
.hohman-admin .adm-subs { gap: 22px; border: 0; padding: 0; }
.hohman-admin .adm-sub { padding: 9px 0 12px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--text-secondary); background: transparent; box-shadow: none; }
.hohman-admin .adm-sub.active { background: transparent; border-color: var(--accent); color: var(--accent-strong); box-shadow: none; }
.hohman-admin h2[data-seckey] { font-size: 24px; line-height: 1.3; color: var(--text); margin: 20px 0 14px; letter-spacing: -.03em; }
.hohman-admin .card { padding: 22px; border-radius: 14px; box-shadow: var(--shadow-xs); }
.hohman-admin .subbox { background: var(--surface-2); padding: 16px; border-radius: 10px; }
.hohman-admin .subbox-title { font-size: 13px; }
.hohman-admin .dr-toolbar, .hohman-admin .ap-toolbar { gap: 12px; }
.hohman-admin .dr-card { box-shadow: none; border-radius: 12px; }
.hohman-admin .dr-card-name { font-size: 15px; }
.hohman-admin .dr-wrap { border-radius: 10px; }
.hohman-admin .board-columns { grid-template-columns: repeat(6,minmax(220px,1fr)); overflow-x: auto; padding-bottom: 12px; }
.hohman-admin .board-card { padding: 13px; border-radius: 9px; }
.hohman-admin .board-card .bc-meta { font-size: 12px; }

/* Login: calm entrance, same brand and form controls. */
.hohman-login { min-height: 100dvh; background: var(--bg); }
.hohman-login::before, .hohman-login::after, .hohman-login .grid-bg { display: none; }
.hohman-login .page { max-width: 780px; padding: 36px 24px 48px; }
.hohman-login .nav-tag { font-size: 11px; letter-spacing: .1em; color: var(--text-secondary); margin-bottom: 28px; }
.hohman-login .logo-wrap { margin-bottom: 24px; }
.hohman-login .logo-wrap img { width: 184px; height: auto; filter: none; }
.hohman-login h1 { font-size: clamp(25px,3vw,34px); max-width: 650px; letter-spacing: -.04em; line-height: 1.25; }
.hohman-login .hero-sub { font-size: 14px; line-height: 1.7; max-width: 610px; margin-bottom: 28px; }
.hohman-login .cardwrap { max-width: 460px; padding: 28px; border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow-sm); }
.hohman-login .card-title { font-size: 18px; }
.hohman-login .card-sub { font-size: 12px; color: var(--text-secondary); }
.hohman-login .dept-tabs { gap: 6px; }
.hohman-login .dept-tab { padding: 8px 10px; font-size: 12px; border-radius: 8px; }
.hohman-login .dept-tab.active { background: var(--accent-bg); border-color: var(--accent-border); color: var(--accent-strong); box-shadow: none; }
.hohman-login label { font-size: 13px; color: var(--text); }
.hohman-login input[type=text], .hohman-login input[type=password] { background: #fff; min-height: 46px; font-size: 16px; }
.hohman-login form button { min-height: 46px; background: var(--accent); border-radius: 9px; box-shadow: none; }
.hohman-login form button:hover { background: var(--accent-strong); transform: none; box-shadow: none; }

@media (max-width: 1180px) {
  .app-shell { padding: 18px; gap: 20px; }
  .app-shell > .sidebar { width: 230px; flex-basis: 230px; }
  .cra-2col { grid-template-columns: 1fr; }
}
@media (max-width: 880px) {
  .scriptlayout > .scriptmain { width: 100%; max-width: 100%; }
}
@media (max-width: 860px) {
  .app-shell { padding: 0; gap: 0; }
  .topbar-inner { min-height: 56px; padding: 0 14px; gap: 8px; }
  .topbar-actions { gap: 4px; }
  .topbar-product { flex: 1; }
  .hh-menu-toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 8px 11px; background: #fff; border: 1px solid var(--border); border-radius: 9px; font-size: 13px; }
  .hh-menu-toggle[aria-expanded=true] { background: var(--accent-bg); border-color: var(--accent-border); color: var(--accent); }
  .app-shell > .sidebar { position: static; width: 100%; flex: 0 0 auto; height: auto; min-height: 0; max-height: none; padding: 14px; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; box-shadow: none; }
  .hh-enhanced .app-shell > .sidebar:not(.hh-open) { display: none; }
  .sidebar .logo-row { display: none; }
  .sidebar .sidebar-workspace { display: flex; }
  nav.maintabs { flex-direction: column; flex-wrap: nowrap; overflow: visible; }
  nav.maintabs button { flex: 0 0 auto; white-space: normal; min-height: 40px; }
  .sidebar-bottomlink, .sidebar-contact { display: block; }
  .app-main { width: 100%; }
  .app-main > main, .app-shell > .app-main > main { padding: 22px 16px 40px; }
  .cabinet-roadmap-grid { grid-template-columns: repeat(auto-fit,minmax(min(180px,100%),1fr)); }
  .hohman-admin > .topbar { padding: 12px 16px; flex-wrap: wrap; }
  .hohman-admin > header { padding: 18px 16px; min-height: 70px; }
  .hohman-admin > main { width: calc(100% - 28px); }
  .hohman-admin .adm-nav { padding: 10px 10px 0; }
  .hohman-admin .adm-cats, .hohman-admin .adm-subs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
  .hohman-admin .adm-cat, .hohman-admin .adm-sub { flex-shrink: 0; }
  .hh-table-scroll > table { min-width: 640px; }
}
@media (max-width: 560px) {
  .topbar-product { font-size: 0; }
  .topbar-product b { font-size: 13px; }
  .topbar-product .topbar-logo { width: 100px; }
  .topbar-product i, .tbu-info, .tbu-chev { display: none; }
  .cabinet-planblock, .cabinet-roadmap-panel, .hohman-admin .card { padding: 16px; }
  .cabinet-statrow { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .cabinet-tool-grid { grid-template-columns: 1fr; }
  .cabinet-stat { padding: 12px; }
  .cabinet-stat .cs-value { font-size: 23px; }
  .cabinet-stat .cs-label { font-size: 10.5px; }
  .moneygrid, .forecast-quartercards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .crp-tabs { flex-wrap: wrap; }
  .crp-daterange { align-items: stretch; }
  .crp-headbtns { width: 100%; }
  .report-cal-navbtn { font-size: 12px; }
  input:not([type=checkbox]):not([type=radio]), select, textarea { font-size: 16px; }
  .cra-card { padding: 14px; }
  .cra-flow, .cra-io-grid { grid-template-columns: 1fr; }
  .hohman-admin h2[data-seckey] { font-size: 21px; }
  .hohman-login .page { padding: 24px 16px 40px; }
  .hohman-login .cardwrap { padding: 22px; }
}
@media (max-width: 360px) {
  .topbar-product .topbar-logo { width: 84px; }
}
@media (pointer: coarse) {
  .sidebar nav.maintabs button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media print {
  .hh-menu-toggle, .hh-skip { display: none !important; }
  .hh-table-scroll { overflow: visible; border: 0; }
  body { background: #fff; }
}
