/* Shared page layout. Equipment maps keep their own geometry in style.css. */
:root {
  --bg:#f4f6f9;
  --text:#192638;
  --muted:#697789;
  --line:#dfe5ed;
  --primary:#2563eb;
  --soft:#f1f5fb;
  --radius:14px;
  --shadow:0 2px 8px rgba(27,43,65,.035);
  --page-gutter:24px;
  --page-width:1360px;
}
body {background:var(--bg);font-family:"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}
body::before,.brandTop::after {display:none}
[hidden] {display:none!important}
body>.brandTop,body:not(.loginPage)>main,body>.tabs,.pageFooter {
  width:calc(100% - var(--page-gutter)*2);
  max-width:var(--page-width);
  margin-left:auto;
  margin-right:auto;
}
body>.brandTop {
  display:grid;grid-template-columns:minmax(0,1fr);gap:20px;
  padding:24px;margin-top:24px;margin-bottom:20px;
  border:1px solid var(--line);border-radius:var(--radius);
  background:#fff;box-shadow:var(--shadow);overflow:visible;
}
.brandIntro {display:flex;flex-direction:row;align-items:center;gap:24px;min-width:0}
.brandLogoBox {flex:0 0 148px;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.brandLogo {width:148px;max-width:100%;height:auto}
.brandText {min-width:0}
.brandText h1,.top h1 {font-size:28px;font-weight:700;line-height:1.2;margin:0;letter-spacing:-.4px;overflow-wrap:anywhere}
.brandText p {margin-top:6px;font-size:14px}
.heroRibbon {padding:0;margin:0 0 6px;border-radius:0;background:none;box-shadow:none;color:var(--muted);font-size:12px;font-weight:600}
.brandMeta {margin-top:12px;gap:6px}
.brandChip {padding:4px 9px;border-radius:7px;background:#f8fafc;box-shadow:none;font-size:12px;font-weight:600;gap:5px}
body .brandTop.compactBrand .badges {
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;
  width:100%;align-self:stretch;justify-content:start;
  border-top:1px solid var(--line);padding-top:18px;
}
.badge.link {display:flex;align-items:center;justify-content:center;min-width:0;min-height:42px;padding:8px 10px;
  border-radius:8px;box-shadow:none;background:#fff;font-size:13px;font-weight:600;line-height:1.35;text-align:center}
.badge.link:hover {background:#f6f8fb;border-color:#bdc9da}
.badge.link[aria-current="page"] {background:#eff5ff;border-color:#bcd1f8;color:#1d4ed8}
body>.tabs {padding:0;margin-top:0;margin-bottom:20px;gap:8px}
.tabs button {box-shadow:none;border-radius:8px;padding:10px 16px;font-weight:600;min-height:42px}
body:not(.loginPage)>main {padding:0 0 28px}
.screen.active {display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
.screen.active>* {grid-column:1/-1!important;min-width:0;margin-top:0!important;margin-bottom:0!important}
.grid {grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;align-items:start}
.grid>* {min-width:0}
.grid>.span4 {grid-column:span 4}
.grid>.span6 {grid-column:span 6}
.grid>.span8 {grid-column:span 8}
.grid>.span12 {grid-column:1/-1}
.card {padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);min-width:0}
.card h2 {font-size:20px;line-height:1.3;font-weight:650;margin:0 0 18px;letter-spacing:-.2px}
.card h3 {font-size:15px;line-height:1.4;margin:24px 0 12px;font-weight:650}
.card>p {line-height:1.6}
.notice {padding:12px 14px;border-radius:8px;border-left-width:3px;background:#f3f6fc;color:#40536f;font-size:13px}
.smallNotice {margin-bottom:16px}
.sectionHead,.cardCollapseHead {gap:16px;align-items:center;margin-bottom:16px}
.sectionHead h2,.cardCollapseHead h2 {margin:0}
.sectionHead p {margin:6px 0 0}
.info {padding:16px;border-radius:10px;line-height:1.6;background:#f8fafc}
label {grid-column:auto;min-width:0;font-weight:600;font-size:13px;line-height:1.45}
input,select,textarea {font-family:inherit;font-size:14px;font-weight:400;max-width:100%;min-width:0;
  margin-top:8px;padding:10px 12px;border-radius:8px;line-height:1.4;box-shadow:none}
input:not([type="checkbox"]):not([type="file"]),select {height:42px}
textarea {min-height:108px;line-height:1.5}
input:focus,select:focus,textarea:focus {outline:2px solid #c4d7fc;outline-offset:1px;border-color:#7ca4ed}
input[readonly] {background:#f7f9fc}
input[type="checkbox"] {width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--primary)}
.row {grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin:20px 0}
.row>label {grid-column:span 3;min-width:0}
.row>label.wide {grid-column:span 6}
.row>label.full {grid-column:1/-1;margin-top:0}
label.full {margin-top:16px}
.filters,.planningFilters,.historyFilters {grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;align-items:end;margin:0}
.filters>label,.filters>label:nth-child(n) {grid-column:auto;min-width:0}
.filters>:is(button,a) {grid-column:auto;min-width:0;align-self:end}
.filters>button {height:42px;margin:0}
.checks {grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;border-radius:10px;padding:8px}
.check {padding:10px;border-radius:7px;min-height:42px;font-weight:500}
.fullServiceCheck {padding:14px;border-radius:8px;line-height:1.5;flex-wrap:wrap;font-size:14px;background:#f1f7f3}
.fullServiceCheck input {margin:0}
.partLine {grid-template-columns:minmax(0,2fr) minmax(70px,.65fr) minmax(0,1.4fr) auto;gap:10px;align-items:end;margin:12px 0}
.partLine>* {min-width:0}
.row.carLookupRow {grid-template-columns:minmax(0,2fr) auto minmax(0,1fr)}
.row.carLookupRow>label {grid-column:auto!important}
.row.carLookupRow>.carFindPhotoBtn {grid-column:auto;min-width:140px;height:42px;margin:0;white-space:nowrap}
button,.buttonlike {border-radius:8px;font-weight:600;font-family:inherit;line-height:1.4;box-shadow:none}
button:not(.mapBlock):not(.mapMarker):not(.carMapDot):not(.expandArrow):not(.audioCard),.buttonlike {min-height:42px}
button:not(:disabled):hover {filter:brightness(.98)}
button:disabled {opacity:.55;cursor:default}
.secondary {background:#f1f4f8!important;border-color:#dbe2ec!important;color:#35465e!important}
.actions {gap:10px;margin-top:24px;align-items:center}
.actions button {min-width:140px}
.statsGrid,.partsKpi,.historyStats {grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:16px;margin-bottom:0}
.kpi {padding:18px 20px;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column;justify-content:space-between}
.kpi>span {font-size:12px;line-height:1.4;font-weight:600}
.kpi b,.historyStats .kpi b {font-size:28px;font-weight:700;line-height:1.2;margin-top:12px;overflow-wrap:anywhere}
.audioCounters {margin-bottom:16px}
#audioCashierCount {color:#16764b}
#audioRepairCount {color:#b44120}
.trainKpi {grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.trainKpi .kpi b {font-size:20px}
.tableWrap {min-width:0;max-width:100%;border-radius:10px;margin-top:20px;overscroll-behavior-x:contain}
table {min-width:900px}
th,td {padding:12px 14px;font-size:13px;line-height:1.5}
th {font-weight:600;background:#f6f8fb;white-space:normal}
.editTable {min-width:0}
.editTable input:not([type="checkbox"]),.editTable select {min-width:120px}
.editTable input[type="checkbox"] {min-width:18px;width:18px}
.planningTaskTable {min-width:1100px}
.miniHistoryTable {min-width:540px}
.tag {padding:3px 8px;font-weight:600;border-radius:6px}
.barRow {grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) 58px;gap:12px;line-height:1.4;margin:14px 0}
.bar {height:10px}
.bar i {background:var(--primary)}
.empty {padding:24px 16px;font-size:14px;line-height:1.6}
.adminLayout {grid-template-columns:228px minmax(0,1fr);gap:20px;align-items:start}
.adminLayout>.side {padding:12px;gap:4px;position:sticky;top:20px;max-height:calc(100vh - 40px);overflow:auto}
.side button {padding:10px 12px;font-size:13px;font-weight:500;border-color:transparent;background:transparent;min-width:0;white-space:normal}
.side button.active {background:#eff5ff;color:#1d4ed8;border-color:#c5d7f4;font-weight:600}
.sideGroup {padding:10px 12px 4px;margin:6px 0 0;background:none;color:#7a8798;font-size:11px;letter-spacing:.07em}
.passwordBox {padding:20px 24px;gap:12px}
.passwordBox label {min-width:0;width:300px;flex:0 1 300px}
.passwordBox button {height:42px}
.passwordBox #authStatus {align-self:center}
#createForm {grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:18px 0 24px}
#createForm>* {grid-column:auto!important;min-width:0}
#createForm label:has(input[type="checkbox"]) {display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:42px;align-self:end;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.adminCreateAction>button {width:100%;height:42px}
.adminTableHead {margin:20px 0 0}
.adminTableHead h3 {margin:0!important}
.planning-page .planningTopBlocks {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.planning-page .planningTopBlocks>.planningMiniCard {height:auto;display:flex;flex-direction:column;padding:24px;min-width:0;grid-column:auto!important}
.planning-page .planningTopBlocks>.ueCalculatorCard {grid-column:1/-1!important}
.planningAssignee {grid-column:1/-1;grid-template-columns:minmax(0,380px) minmax(0,1fr);padding:20px 24px;gap:24px}
.planningAssignee p {font-size:13px;margin:0}
.planning-page .planningMiniCard h2 {margin:0 0 8px!important}
.formHint {font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.5}
.planning-page .planningForm {display:flex;flex:1;flex-direction:column;gap:16px}
.planning-page .planningForm label {display:block;margin:0!important}
.planning-page .planningForm input,.planning-page .planningForm textarea {margin-top:8px}
.planning-page .planningActionBtn {width:100%;margin-top:auto;min-height:42px;padding:10px 16px}
.planning-page .ueCalculatorCard .sectionHead {margin-bottom:20px}
.planning-page .ueCriteria {grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:0}
.planning-page .ueCriteria>label {grid-column:auto;display:flex;flex-direction:column;justify-content:space-between;gap:0;min-width:0;font-size:12px;color:#526174}
.planning-page .ueCriteria select {margin-top:8px;font-size:13px}
.ueResult {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px;padding:18px 20px;border-radius:10px;background:#f6f8fc}
.ueResult>div,.ueResult .ueMainValue {display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;border:0;padding:0}
.ueResult b,.ueResult .ueMainValue b {font-size:26px;font-weight:700;line-height:1.2}
.ueResult small {grid-column:1/-1;font-size:12px;line-height:1.5;color:var(--muted)}
.employeePlanCard {padding:24px;border-radius:var(--radius);box-shadow:var(--shadow)}
.employeeSummaryPills {gap:6px}
.historyMonthGroup {padding:16px;border-radius:12px}
.historyTaskLine {padding:16px;border-radius:10px;margin:12px 0 0}
.historyTaskMain {display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.historyTaskMain .employeeSummaryPills {justify-content:flex-start}
.audioCards {grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:20px}
.audioCard {min-height:132px;gap:8px;padding:16px;border-radius:10px;box-shadow:none}
.audioCard b {font-size:26px;line-height:1.2;font-weight:700}
.audioCard span {font-weight:600;font-size:12px}
.audioCard:hover {border-color:#7da1d3}
.railProblemPoint {position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;
  min-width:22px;height:22px;padding:0 4px;border:2px solid #fff;border-radius:50%;background:#dc2626;color:#fff;
  font-size:11px;font-weight:700;line-height:1;box-shadow:0 0 0 2px rgba(220,38,38,.3)}
#audioForm>label {display:block;margin-top:20px}
#audioForm .row {grid-template-columns:repeat(3,minmax(0,1fr))}
#audioForm .row>label {grid-column:auto}
#audioDevice {margin:20px 0;padding:20px}
.reportCard {max-width:none;margin:0}
.reportCard>p {max-width:85ch}
.reportCard .row {grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0}
.reportCard .row>label {grid-column:auto}
.reportCard #reportDownload {min-height:44px;padding:12px 20px;margin:0}
.reportCard #reportMessage {margin:12px 0 0}
.pageFooter {padding:0;margin-top:0;margin-bottom:24px}
.pageFooterCard {padding:20px 24px;border-radius:12px;box-shadow:none;gap:24px}
.pageFooterCard b {font-size:13px;font-weight:600;margin:0 0 4px}
.pageFooterCard p {font-size:12px;max-width:90ch}
.footerMiniLogo {width:96px;flex:0 0 96px}
.loginPage {background:var(--bg)}
.loginCard {padding:32px}
.loginCard h1 {font-size:26px}
.loginCard form {display:flex;flex-direction:column;gap:18px}
.loginCard form>label {grid-column:auto}
.loginLogo img {max-width:100%}
@media(min-width:701px) {
  .trainKpi:has(>.kpi:nth-child(5):last-child) {grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
  .trainKpi .kpi {padding:14px}
  .trainKpi .kpi b {font-size:18px}
}
@media(max-width:1199px) {
  .planning-page .ueCriteria {grid-template-columns:repeat(2,minmax(0,1fr))}
  .planning-page .ueCriteria>label:last-child {grid-column:1/-1}
}
@media(max-width:1100px) {
  .grid>.span4,.grid>.span8 {grid-column:1/-1}
  .brandText h1,.top h1 {font-size:26px}
  .adminLayout {grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:900px) {
  body .brandTop.compactBrand .badges {grid-template-columns:repeat(3,minmax(0,1fr))}
  .row>label {grid-column:span 6}
  .row>label.wide {grid-column:span 6}
  .adminLayout {grid-template-columns:minmax(0,1fr)}
  .adminLayout>.side {position:static;max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible}
  .sideGroup {grid-column:1/-1}
  .partLine {grid-template-columns:minmax(0,2fr) minmax(70px,.7fr) minmax(0,1.4fr) auto}
}
@media(max-width:700px) {
  :root {--page-gutter:16px}
  body>.brandTop {padding:18px;margin-top:16px;margin-bottom:16px;gap:16px}
  .brandIntro {gap:16px}
  .brandLogoBox {flex-basis:104px}
  .brandLogo {width:104px}
  .brandText h1,.top h1 {font-size:22px;letter-spacing:-.2px}
  .brandMeta {margin-top:8px}
  .brandChip {font-size:11px;padding:4px 7px}
  .heroRibbon {font-size:11px}
  body>.tabs {gap:6px;margin-bottom:16px}
  .tabs button {padding:9px 12px;font-size:13px;flex:1 1 auto}
  .card,.planning-page .planningTopBlocks>.planningMiniCard,.employeePlanCard {padding:18px}
  .card h2 {font-size:19px}
  .screen.active,.grid,.planning-page .planningTopBlocks {gap:16px}
  .grid>.span6 {grid-column:1/-1}
  .planning-page .planningTopBlocks {grid-template-columns:minmax(0,1fr)}
  .planningAssignee {grid-template-columns:minmax(0,1fr);gap:12px;padding:18px}
  .statsGrid,.partsKpi,.historyStats,.trainKpi {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .statsGrid:has(>.kpi:nth-child(5):last-child)>.kpi:last-child {grid-column:1/-1}
  .kpi {padding:16px}
  .kpi b,.historyStats .kpi b {font-size:25px}
  .trainKpi .kpi b {font-size:20px}
  .row {gap:14px;margin:18px 0}
  .row>label,.row>label.wide {grid-column:1/-1}
  .partLine {grid-template-columns:minmax(0,1fr);gap:8px}
  .row.carLookupRow {grid-template-columns:minmax(0,1fr)}
  .ueResult {padding:16px;gap:14px}
  .ueResult>div:first-child {grid-column:1/-1}
  .ueResult {grid-template-columns:repeat(2,minmax(0,1fr))}
  #audioForm .row,.reportCard .row {grid-template-columns:minmax(0,1fr)}
  .pageFooterCard {padding:18px;flex-direction:row;align-items:center;gap:16px}
  .footerMiniLogo {width:72px;flex-basis:72px}
  .passwordBox {padding:18px}
  .passwordBox label {width:100%;flex-basis:100%}
  .passwordBox #authStatus {width:100%}
}
@media(max-width:480px) {
  body .brandTop.compactBrand .badges {grid-template-columns:repeat(2,minmax(0,1fr))}
  .brandIntro {gap:12px;align-items:flex-start}
  .brandLogoBox {flex-basis:80px;padding-top:4px}
  .brandLogo {width:80px}
  .brandText h1,.top h1 {font-size:20px}
  .brandMeta .brandChip {font-size:10px}
  .planning-page .ueCriteria {grid-template-columns:minmax(0,1fr)}
  .filters,.planningFilters,.historyFilters {grid-template-columns:minmax(0,1fr)}
  .actions>button {flex:1 1 140px;min-width:0}
  .adminLayout>.side {grid-template-columns:repeat(2,minmax(0,1fr))}
  #createForm {grid-template-columns:minmax(0,1fr)}
  .barRow {grid-template-columns:minmax(0,1fr) 55px}
  .barRow>.bar {grid-row:2;grid-column:1/-1}
  .pageFooterCard {align-items:flex-start}
}
@media print {
  body>.brandTop {margin-top:0;box-shadow:none}
  .card,.kpi {box-shadow:none}
}
