/* Shared app presentation. Screen-only: printed QR labels retain their geometry. */
:root {
  --app-ink:#182c2a;
  --app-muted:#52645d;
  --app-border:#dce5e0;
  --app-section-size:20px;
  --app-section-line:28px;
  --app-body-size:15px;
  --app-body-line:24px;
  --app-help-size:13px;
  --app-help-line:20px;
  --app-card-pad:20px;
}
.guard,.login { color:var(--app-ink); }
.guard .greeting-row { height:auto; min-height:44px; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
.guard .greeting-row h1 { font-size:28px; line-height:36px; font-weight:600; letter-spacing:-.5px; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
.guard .greeting-row .back { flex-shrink:0; }
.guard .duty-identity > .eyebrow,.guard .off-duty-identity > .eyebrow { white-space:normal; overflow:visible; line-height:18px; }
.guard .activity-intro,.guard .card > p,.login .card > p { font-size:var(--app-body-size); line-height:var(--app-body-line); }
.guard .muted,.login .muted { color:var(--app-muted); }
.guard:not(.owner-home) .card { padding:var(--app-card-pad); border-radius:var(--container-radius); }
.guard .card h2,.guard .activity-section h2,.supervisor-standard .card h2,.supervisor-problems .problem-list h2,.subscription-page h2 { font-size:var(--app-section-size); line-height:var(--app-section-line); font-weight:600; color:var(--app-ink); }
.guard .activity-guard-list summary h2 { color:var(--app-ink); }
.guard .card h3 { font-size:16px; line-height:24px; font-weight:600; }
.guard .card > h2:first-child { margin-top:0; }
.guard .card > p:last-child { margin-bottom:0; }
.guard .card > :first-child:where(p) { margin-top:0; }
.guard .last-record-received,.guard .activity-freshness,.guard .report-period-note,.guard .activity-section-intro,.guard .activity-timezone,.guard .activity-intro,.guard .subscription-muted,.guard .subscription-caption,.guard .checkpoint-count { color:var(--app-muted); }
.guard .last-record-received,.guard .activity-freshness,.guard .report-period-note { font-size:var(--app-help-size); line-height:var(--app-help-line); }
.guard .activity-guard p,.guard .activity-patrol summary small,.guard .activity-patrol-evidence li span { line-height:var(--app-help-line); }
.guard .activity-patrol summary strong { color:var(--app-ink); font-weight:600; }
.guard .activity-expand { font-size:13px; }

/* Settings and property editors share label, input and helper rhythm. */
#settings-panel .settings-fields { gap:20px; padding-top:20px; }
#settings-panel .settings-shift .settings-fields { gap:20px; }
#settings-panel label,.property-editor label { gap:8px; line-height:22px; }
#settings-panel small,#settings-panel .settings-helper,#settings-panel .team-row-text small,.property-editor small,.login .field-help { font-size:var(--app-help-size); line-height:var(--app-help-line); font-weight:400; color:var(--app-muted); }
#settings-panel .checkpoint-heading,.guard .shift-editor-heading { flex-wrap:wrap; gap:8px 16px; align-items:center; }
#settings-panel .checkpoint-heading h2 { min-width:0; overflow-wrap:anywhere; }
#settings-panel .settings-time-row,.report-range { min-width:0; gap:16px; }
#settings-panel input:not([type=checkbox]):not([type=radio]),#settings-panel select,#settings-panel textarea,.property-editor input:not([type=checkbox]),.property-editor select,.property-editor textarea,.login input:not([type=checkbox]):not([type=radio]),.login select,.login textarea { font-size:16px; line-height:24px; min-width:0; max-width:100%; }
.guard input:not([type=checkbox]):not([type=radio]),.guard select { min-height:48px; }
.guard input[type=time],.guard input[type=date],.report-range input { min-width:0; width:100%; }
.guard textarea,.login textarea { line-height:24px; }
.guard .settings-button-row { flex-wrap:wrap; gap:12px; }
.guard .settings-button-row button { min-height:44px; }
.supervisor-standard .settings-index .settings-tabs button { height:auto; min-height:104px; grid-template-rows:32px auto; padding:16px 8px; gap:10px; }
.supervisor-standard .settings-index .actions { grid-auto-rows:minmax(104px,auto); }
.supervisor-standard .settings-index .settings-tabs .button-label { font-size:14px; line-height:20px; }
.supervisor-standard .settings-index .settings-tabs button[aria-selected=true] { background:#e1f1eb; color:#006b56; box-shadow:inset 0 -3px 0 #006b56; outline:none; }

/* A common row hierarchy without hiding guard names behind ellipses. */
#settings-panel .checkpoint-list-row { min-height:64px; padding:14px 0; border-color:var(--app-border); }
#settings-panel .team-row-text { display:grid; gap:6px; min-width:0; }
#settings-panel .checkpoint-name { font-size:15px; line-height:22px; font-weight:600; white-space:normal; overflow-wrap:anywhere; }
#settings-panel .team-row-text small { white-space:normal; overflow-wrap:anywhere; }
.supervisor-problems .problem-list { padding:var(--app-card-pad); }
.supervisor-problems .problem-row { min-height:72px; padding-top:14px; padding-bottom:14px; }
.supervisor-problems .problem-overview { display:grid; gap:6px; }
.supervisor-problems .problem-overview strong { font-size:15px; line-height:22px; font-weight:600; color:var(--app-ink); }
.supervisor-problems .problem-overview small { font-size:13px; line-height:20px; color:var(--app-muted); }
.supervisor-problems .problem-list .empty,#settings-panel .checkpoint-empty { font-size:15px; line-height:24px; color:var(--app-muted); }
.guard .problem-written,.guard .resolution-comments { font-size:15px; line-height:24px; }
.guard .problemResolve label { font-size:14px; line-height:22px; margin-top:16px; }
.guard .problemResolve textarea { margin-top:8px; }

/* Bring billing into the same flat surface language as the rest of the app. */
.subscription-page .subscription-card { border-radius:var(--container-radius); border-color:var(--app-border); box-shadow:none; padding:var(--app-card-pad); }
.subscription-page .subscription-menu { border-radius:var(--container-radius); border-color:var(--app-border); }
.subscription-page .subscription-primary,.subscription-pagination button { border-radius:var(--container-radius); }
.subscription-page .subscription-price { line-height:1.3; }
.subscription-page .subscription-price span { display:inline-block; vertical-align:baseline; }
.subscription-page .subscription-row { padding:16px 20px; }
.subscription-confirmation { border-radius:8px; }
.subscription-confirmation-actions button { border-radius:var(--container-radius); }

/* Shared keyboard states, calm disabled controls, and readable account forms. */
.guard button:disabled,.login button:disabled { cursor:not-allowed; }
.guard :is(button,input,select,textarea,summary):focus-visible,.login :is(button,input,select,textarea,summary):focus-visible { outline:3px solid #087e70; outline-offset:3px; }
.supervisor-standard .settings-index .settings-tabs button:focus-visible { outline:3px solid #087e70; outline-offset:3px; }
.login h1 { font-size:28px; line-height:36px; font-weight:600; letter-spacing:-.5px; }
.login h2 { font-size:20px; line-height:28px; font-weight:600; }
.login .label { font-size:14px; line-height:22px; font-weight:600; }
.login .card { padding:24px; }
.login .field-help,.login form > small { font-size:13px; line-height:20px; color:var(--app-muted); }
.login form > button { min-height:48px; }
.guard .activity-guard-list summary,.guard .activity-patrol summary { min-height:48px; }
.guard .checkpoint-choice:not(:disabled):not([aria-pressed=true]) { background:#f1f5f2; color:var(--app-ink); border-color:var(--app-border); }
.guard .checkpoint-choice:not(:disabled):not([aria-pressed=true]) .pill { background:#e5ece7; color:var(--app-muted); }
.guard .checkpoint-choice:disabled { cursor:default; }
.supervisor-standard .settings-index .settings-tabs .action-icon,.supervisor-home .supervisor-actions .action-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:#e8f3ef; color:#006b56; }
.supervisor-standard .settings-index .settings-tabs .action-icon svg,.supervisor-home .supervisor-actions .action-icon svg { width:28px; height:28px; }
.supervisor-standard .settings-index .settings-tabs button,.supervisor-home .supervisor-actions button[data-page] { height:auto; min-height:112px; grid-template-rows:40px auto; gap:10px; padding:16px 8px; }
.supervisor-standard .settings-index .actions,.supervisor-home .supervisor-actions { grid-auto-rows:minmax(112px,auto); }
.supervisor-home .supervisor-actions .button-label { font-size:14px; line-height:20px; }
.report-view-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.report-view-actions button { min-height:48px; height:100%; padding:12px; }
.guard .card .report-period-note { margin-top:16px; }
.guard:not(.owner-home):not(.activity-page) .last-record-received { margin-top:16px; }
.guard :is(input,select,textarea):focus,.login :is(input,select,textarea):focus { box-shadow:none; }
.guard :is(input,select,textarea):focus-visible,.login :is(input,select,textarea):focus-visible { outline-width:2px; outline-offset:2px; }
.supervisor-home .attention-heading { flex-wrap:wrap; gap:12px; }
.supervisor-home .attention-heading h2 { white-space:normal; min-width:0; }
.supervisor-home .attention-sort-picker { max-width:100%; }
.supervisor-home .attention-sort-picker > summary { white-space:normal; }
@media(min-width:600px) { :root { --app-card-pad:24px; } }
@media(max-width:380px) {
  :root { --app-card-pad:16px; }
  #settings-panel .settings-time-row,.report-range { grid-template-columns:1fr; }
  .login .card { padding:20px 16px; }
  .guard .greeting-row { gap:8px; }
  .supervisor-home .attention-heading { flex-direction:column; align-items:flex-start; }
  .supervisor-home .attention-sort-picker { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { button,.button,.card { transition:none; } }
