/* Unified issue center: fast capture on mobile, clear triage on desktop. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.issue-nav-badge {
  min-width: 20px;
  height: 20px;
  margin-left: auto;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: var(--ios-red);
  font-size: 11px;
  font-weight: 750;
}

.issue-hero {
  position: relative;
  min-height: 174px;
  margin-bottom: 16px;
  padding: 28px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  overflow: hidden;
  border: 1px solid rgba(0, 122, 255, .16);
  border-radius: 24px;
  background:
    radial-gradient(circle at 88% 12%, rgba(50, 173, 230, .26), transparent 34%),
    linear-gradient(135deg, rgba(0, 122, 255, .13), rgba(88, 86, 214, .08)),
    #fff;
  box-shadow: 0 14px 36px rgba(24, 64, 120, .08);
}

.issue-hero::after {
  content: "";
  position: absolute;
  top: -58px;
  right: 8%;
  width: 180px;
  height: 180px;
  border: 22px solid rgba(255, 255, 255, .52);
  border-radius: 50%;
  pointer-events: none;
}

.issue-hero > * { position: relative; z-index: 1; }
.issue-kicker {
  display: block;
  margin-bottom: 6px;
  color: var(--ios-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.issue-hero h2 { max-width: 680px; margin: 0; font-size: clamp(24px, 3vw, 38px); line-height: 1.16; letter-spacing: -.035em; }
.issue-hero p { max-width: 680px; margin: 10px 0 0; color: var(--ios-secondary); font-size: 14px; }
.issue-hero-action { flex: 0 0 auto; min-height: 48px; padding-inline: 20px !important; }
.issue-hero-actions { display: flex; align-items: center; gap: 10px; }
.quality-create-action { color: #5b3aa8 !important; border-color: rgba(88, 86, 214, .24) !important; background: rgba(88, 86, 214, .08) !important; }
.issue-grid-entry-action { color: #155e75 !important; border-color: rgba(8,145,178,.25) !important; background: rgba(8,145,178,.09) !important; }
.quality-path-banner { padding: 12px 14px; display: flex; justify-content: space-between; gap: 12px; border-radius: 12px; color: #49358a; background: rgba(88, 86, 214, .08); }
.quality-path-banner span { color: var(--ios-secondary); font-size: 12px; }

.issue-capsule {
  position: relative;
  min-height: 66px;
  padding: 8px 9px 8px 15px;
  display: grid;
  grid-template-columns: 14px minmax(220px, 1fr) auto auto auto auto;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(60, 60, 67, .13);
  border-radius: 22px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 12px 34px rgba(27, 31, 43, .09);
}
.issue-capsule:focus-within { border-color: rgba(0, 122, 255, .42); box-shadow: 0 0 0 4px rgba(0, 122, 255, .09), 0 12px 34px rgba(27, 31, 43, .09); }
.issue-capsule-leading { color: var(--ios-blue); font-size: 12px; }
.issue-capsule-input { min-width: 0; margin: 0 !important; }
.issue-capsule textarea {
  width: 100%;
  min-height: 44px;
  max-height: 130px;
  padding: 10px 4px !important;
  resize: none;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 16px;
  line-height: 1.5;
}
.issue-capsule select { width: auto; min-width: 88px; border: 0 !important; background-color: var(--ios-fill) !important; }
.issue-camera-btn {
  min-height: 42px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  border-radius: 12px;
  color: var(--ios-blue);
  background: var(--ios-blue-soft);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.issue-camera-btn input { display: none; }
.issue-capsule-hint { margin: 8px 6px 18px; color: var(--ios-tertiary); font-size: 12px; }
.issue-capsule-hint strong { color: var(--ios-secondary); }
.issue-voice-button { color: #087f5b !important; border-color: rgba(8,127,91,.2) !important; background: rgba(8,127,91,.09) !important; }
.issue-voice-button.is-listening { color: #fff !important; background: #087f5b !important; animation: issue-voice-pulse 1.1s ease-in-out infinite; }
@keyframes issue-voice-pulse { 50% { box-shadow: 0 0 0 5px rgba(8,127,91,.14); } }
.issue-ai-button { color: #4f46a8 !important; border-color: rgba(88,86,214,.2) !important; background: rgba(88,86,214,.09) !important; }
.issue-ai-button:disabled { opacity: .46; cursor: not-allowed; }
.issue-ai-panel { padding: 14px 16px; border: 1px solid rgba(88,86,214,.18); border-radius: 14px; background: rgba(88,86,214,.06); }
.issue-ai-panel > strong { color: #4f46a8; }
.issue-ai-panel p { margin: 7px 0 0; color: var(--ios-secondary); font-size: 12px; }
.issue-ai-duplicates { margin-top: 10px; display: grid; gap: 6px; }
.issue-ai-duplicates > strong { color: var(--ios-label); font-size: 12px; }
.issue-ai-duplicates button { padding: 8px 10px; display: flex; justify-content: space-between; gap: 10px; border: 0; border-radius: 9px; color: var(--ios-blue); background: rgba(0,122,255,.07); text-align: left; cursor: pointer; }
.issue-ai-duplicates button span { color: var(--ios-tertiary); flex: 0 0 auto; }
.issue-ai-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.issue-ai-heading h4 { margin-bottom: 4px; }
.issue-ai-heading small, .issue-ai-disclaimer { color: var(--ios-tertiary); font-size: 11px; }
.issue-ai-analysis { margin-top: 13px; display: grid; gap: 10px; color: var(--ios-secondary); font-size: 12px; }
.issue-ai-analysis p, .issue-ai-analysis ul { margin: 0; }
.issue-ai-analysis ul { padding-left: 19px; }
.issue-ai-analysis li + li { margin-top: 4px; }
.issue-ai-loading { margin: 12px 0 0; color: var(--ios-tertiary); font-size: 12px; }

.issue-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.issue-metric-card {
  min-height: 92px;
  padding: 16px 18px;
  border: 1px solid var(--ios-separator-soft);
  border-radius: 18px;
  background: rgba(255, 255, 255, .82);
}
.issue-metric-card strong { display: block; font-size: 28px; line-height: 1; letter-spacing: -.03em; }
.issue-metric-card span { display: block; margin-top: 8px; color: var(--ios-secondary); font-size: 12px; }
.issue-metric-card.attention strong { color: var(--ios-red); }
.issue-metric-card.verify strong { color: var(--ios-orange); }
.issue-metric-card.progress strong { color: var(--ios-blue); }
.issue-metric-card.closed strong { color: var(--ios-green); }

.issue-analytics-panel { margin: 18px 0 22px; padding: 20px; border: 1px solid rgba(88,86,214,.18); border-radius: 20px; background: linear-gradient(145deg,rgba(88,86,214,.07),rgba(255,255,255,.94)); box-shadow: 0 12px 32px rgba(39,38,88,.06); }
.issue-analytics-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.issue-analytics-heading h3 { margin: 0; font-size: 20px; }
.issue-analytics-heading p { margin: 6px 0 0; color: var(--ios-secondary); font-size: 12px; }
.issue-analytics-kpis { margin-top: 16px; display: grid; grid-template-columns: repeat(8,minmax(90px,1fr)); gap: 8px; }
.issue-analytics-kpi { min-height: 78px; padding: 12px; display: flex; flex-direction: column; justify-content: space-between; border-radius: 13px; background: rgba(255,255,255,.9); }
.issue-analytics-kpi span { color: var(--ios-secondary); font-size: 11px; }
.issue-analytics-kpi strong { font-size: 21px; font-variant-numeric: tabular-nums; }
.issue-analytics-kpi.attention strong,.issue-analytics-kpi.warning strong { color: #b56b00; }
.issue-analytics-kpi.danger strong { color: var(--ios-red); }
.issue-analytics-kpi.blue strong { color: var(--ios-blue); }
.issue-analytics-kpi.success strong { color: var(--ios-green); }
.issue-analytics-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.issue-analytics-grid article { min-height: 210px; padding: 15px; border-radius: 15px; background: rgba(255,255,255,.9); }
.issue-analytics-grid h4 { margin: 0 0 13px; font-size: 13px; }
.issue-bar-chart { display: grid; gap: 9px; }
.issue-bar-row { display: grid; grid-template-columns: 84px minmax(80px,1fr) 28px; align-items: center; gap: 8px; font-size: 11px; }
.issue-bar-row > span { overflow: hidden; color: var(--ios-secondary); text-overflow: ellipsis; white-space: nowrap; }
.issue-bar-row > strong { text-align: right; font-variant-numeric: tabular-nums; }
.issue-bar-track { height: 8px; overflow: hidden; border-radius: 5px; background: rgba(118,118,128,.12); }
.issue-bar-track i { height: 100%; display: block; border-radius: inherit; background: var(--ios-blue); }
.issue-bar-track i.green { background: var(--ios-green); }
.issue-bar-track i.orange { background: var(--ios-orange); }
.issue-trend-chart { height: 155px; display: grid; grid-template-columns: repeat(8,minmax(28px,1fr)); align-items: end; gap: 8px; }
.issue-trend-week { height: 100%; display: grid; grid-template-rows: 1fr auto; gap: 6px; }
.issue-trend-bars { min-height: 120px; display: flex; align-items: end; justify-content: center; gap: 3px; border-bottom: 1px solid var(--ios-separator-soft); }
.issue-trend-bars i { width: 10px; min-height: 3px; border-radius: 4px 4px 0 0; }
.issue-trend-bars .created { background: var(--ios-blue); }
.issue-trend-bars .closed { background: var(--ios-green); }
.issue-trend-week span { color: var(--ios-tertiary); font-size: 9px; text-align: center; }
.issue-analytics-focus { margin-top: 10px; padding: 13px 15px; border-radius: 13px; background: rgba(255,255,255,.88); }
.issue-analytics-focus > strong { font-size: 12px; }
.issue-analytics-focus > div { margin-top: 8px; display: flex; gap: 7px; flex-wrap: wrap; }
.issue-analytics-focus span { padding: 6px 9px; border-radius: 999px; color: var(--ios-secondary); background: var(--ios-fill); font-size: 10px; }
.issue-analytics-focus b { margin-left: 4px; color: var(--ios-label); }
.issue-analytics-focus small { display: block; margin-top: 9px; color: var(--ios-tertiary); font-size: 9px; }
.issue-analytics-loading,.issue-analytics-error { grid-column: 1 / -1; padding: 16px; color: var(--ios-tertiary); text-align: center; }
.issue-analytics-error { color: var(--ios-red); }

.issue-integration-panel { margin: 18px 0; padding: 18px; border: 1px solid rgba(50,173,230,.2); border-radius: 18px; background: linear-gradient(135deg,rgba(50,173,230,.07),rgba(255,255,255,.88)); }
.issue-integration-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.issue-integration-heading h3 { margin: 0; font-size: 18px; }
.issue-integration-heading p { margin: 5px 0 0; color: var(--ios-secondary); font-size: 12px; }
.issue-integration-status { margin-top: 15px; display: grid; grid-template-columns: repeat(auto-fit,minmax(120px,1fr)); gap: 8px; }
.issue-integration-status > div { min-height: 80px; padding: 12px; display: flex; flex-direction: column; border-radius: 13px; background: rgba(255,255,255,.84); }
.issue-integration-status span,.issue-integration-status small { color: var(--ios-tertiary); font-size: 10px; }
.issue-integration-status strong { margin: 7px 0 4px; font-size: 18px; overflow-wrap: anywhere; }
.issue-integration-status .has-error strong { color: var(--ios-red); }
.issue-wechat-readiness { margin-top: 10px; padding: 13px 14px; border-radius: 13px; background: rgba(255,255,255,.84); }
.issue-wechat-readiness-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; font-weight: 750; }
.issue-wechat-readiness-heading strong { padding: 4px 8px; border-radius: 999px; font-size: 11px; }
.issue-wechat-readiness-heading .is-ready { color: #147d45; background: rgba(52,199,89,.13); }
.issue-wechat-readiness-heading .not-ready { color: var(--ios-red); background: rgba(255,59,48,.1); }
.issue-wechat-readiness-grid { margin-top: 10px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.issue-wechat-readiness-grid span { padding: 8px 9px; border-radius: 9px; color: var(--ios-secondary); background: var(--ios-fill); font-size: 10px; }
.issue-wechat-readiness-grid strong { display: block; margin-top: 3px; color: var(--ios-label); font-size: 12px; }
.issue-wechat-readiness ul { margin: 10px 0 0; padding-left: 18px; color: var(--ios-red); font-size: 11px; }
.issue-wechat-readiness ul.is-warning { color: #9a6700; }
.issue-wechat-readiness p,.issue-wechat-readiness small { display: block; margin: 9px 0 0; color: var(--ios-secondary); font-size: 10px; overflow-wrap: anywhere; }
.issue-integration-details { margin-top: 12px; }
.issue-integration-details summary { color: var(--ios-blue); font-size: 12px; font-weight: 750; cursor: pointer; }
.issue-integration-columns { margin-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.issue-integration-columns h4 { margin: 0 0 8px; font-size: 13px; }
.issue-integration-list { display: grid; gap: 7px; }
.issue-integration-row { width: 100%; padding: 10px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 0; border-radius: 11px; background: var(--ios-fill); text-align: left; cursor: pointer; }
.issue-integration-row span { min-width: 0; color: var(--ios-secondary); font-size: 11px; overflow-wrap: anywhere; }
.issue-integration-row strong,.issue-integration-row small { display: block; }
.issue-integration-row strong { color: var(--ios-label); font-size: 12px; }
.issue-integration-row small,.issue-integration-failure small { margin-top: 2px; color: var(--ios-tertiary); font-size: 10px; }
.issue-integration-failure { padding: 10px 11px; display: grid; gap: 4px; border-radius: 11px; background: rgba(255,59,48,.07); }
.issue-integration-failure strong { color: var(--ios-red); font-size: 11px; }
.issue-integration-failure span { color: var(--ios-secondary); font-size: 11px; overflow-wrap: anywhere; }
.issue-integration-map-form { margin-top: 10px; padding-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; border-top: 1px solid var(--ios-separator-soft); }
.issue-integration-map-form label { margin: 0; font-size: 10px; }
.issue-integration-map-form label:nth-child(3) { grid-column: 1 / -1; }
.issue-integration-map-form .btn { grid-column: 1 / -1; }
.issue-integration-empty,.issue-integration-loading,.issue-integration-error { margin: 0; padding: 13px; color: var(--ios-tertiary); font-size: 11px; text-align: center; }
.issue-integration-error { color: var(--ios-red); }

.issue-toolbar { margin: 20px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.issue-register-tabs { margin: 20px 0 10px; display: flex; gap: 2px; border-bottom: 1px solid var(--ios-separator-soft); }
.issue-register-tabs button { min-height: 44px; padding: 0 18px; border: 0; border-bottom: 3px solid transparent; color: var(--ios-secondary); background: transparent; font-size: 14px; font-weight: 700; cursor: pointer; }
.issue-register-tabs button.active { color: var(--ios-blue); border-bottom-color: var(--ios-blue); }
.issue-filter-tabs { padding: 4px; display: flex; gap: 3px; border-radius: 13px; background: rgba(118, 118, 128, .12); }
.issue-filter-tabs button { min-height: 36px; padding: 0 14px; border: 0; border-radius: 10px; color: var(--ios-secondary); background: transparent; font-weight: 650; cursor: pointer; }
.issue-filter-tabs button.active { color: var(--ios-label); background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.issue-filter-selects { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.issue-date-filter { margin: 0; display: flex; align-items: center; gap: 5px; color: var(--ios-secondary); font-size: 10px; white-space: nowrap; }
.issue-date-filter input { width: 132px; min-height: 36px; padding: 6px 8px; }
.issue-analysis-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 4px 0 14px; padding: 12px 14px; border: 1px solid #dbe7f3; border-radius: 12px; background: #f7fbff; }
.issue-analysis-filters > strong { color: #17324d; }
.issue-analysis-filters > small { color: #64748b; }
.issue-date-separator { color: #64748b; }
.issue-filter-selects select { min-width: 140px; }
.issue-filter-selects input[type="search"] { width: min(300px, 26vw); min-width: 210px; }

.issue-list { display: grid; gap: 10px; }
.issue-card-list { display: none; }
.issue-table-wrap { width: 100%; overflow-x: auto; overflow-y: visible; border: 1px solid var(--ios-separator-soft); border-radius: 14px; background: rgba(255,255,255,.9); box-shadow: 0 8px 24px rgba(27,31,43,.04); }
.issue-register-table { width: max-content; min-width: 100%; border-collapse: collapse; table-layout: auto; font-size: 12px; }
.issue-register-table th { position: sticky; top: 0; z-index: 1; padding: 11px 10px; border-bottom: 1px solid var(--ios-separator-soft); color: var(--ios-secondary); background: #f6f8fb; text-align: left; white-space: nowrap; }
.issue-register-table th,.issue-register-table td { min-width: 88px; }
.issue-register-table td { max-width: 260px; padding: 11px 10px; border-bottom: 1px solid rgba(60,60,67,.08); color: var(--ios-label); vertical-align: top; overflow-wrap: break-word; word-break: normal; line-height: 1.55; }
.issue-register-table tbody tr:hover { background: rgba(0,122,255,.035); }
.issue-register-table tbody tr:last-child td { border-bottom: 0; }
.issue-register-table [data-column="title"] { width: 300px; min-width: 300px; max-width: 360px; }
.issue-register-table [data-column="issue_no"] { min-width: 150px; }
.issue-register-table [data-column="detected_at"] { min-width: 142px; }
.issue-register-table [data-column="product"],.issue-register-table [data-column="product_name"],.issue-register-table [data-column="product_no"],.issue-register-table [data-column="trace"],.issue-register-table [data-column="site"],.issue-register-table [data-column="equipment"],.issue-register-table [data-column="location"] { min-width: 150px; }
.issue-register-table [data-column="source"],.issue-register-table [data-column="scope"],.issue-register-table [data-column="category"],.issue-register-table [data-column="stage"] { min-width: 112px; }
.issue-register-table [data-column="owner"],.issue-register-table [data-column="verifier"] { min-width: 96px; }
.issue-register-table [data-column="due"] { min-width: 108px; }
.issue-register-table [data-column="actions"] { min-width: 86px; }
.issue-register-table td[data-column="issue_no"] { color: var(--ios-blue); font-weight: 750; white-space: nowrap; }
.issue-register-table td[data-column="status"],.issue-register-table td[data-column="severity"],.issue-register-table td[data-column="due"] { white-space: nowrap; }
.issue-table-open { padding: 5px 9px; border: 1px solid rgba(0,122,255,.2); border-radius: 8px; color: var(--ios-blue); background: rgba(0,122,255,.06); font-size: 11px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.issue-card {
  position: relative;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  border: 1px solid var(--ios-separator-soft);
  border-radius: 18px;
  background: rgba(255, 255, 255, .88);
  cursor: pointer;
  transition: border-color .18s, transform .18s, box-shadow .18s;
}
.issue-card:hover { transform: translateY(-1px); border-color: rgba(0, 122, 255, .24); box-shadow: 0 10px 24px rgba(27, 31, 43, .07); }
.issue-card:focus-visible { outline: 3px solid rgba(0,122,255,.28); outline-offset: 2px; }
.issue-card-main { min-width: 0; }
.issue-card-topline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.issue-number { color: var(--ios-secondary); font-size: 12px; font-variant-numeric: tabular-nums; }
.issue-card h3 { margin: 8px 0 6px; overflow: hidden; color: var(--ios-label); font-size: 16px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.issue-card-description { margin: 0; overflow: hidden; color: var(--ios-secondary); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.issue-card-meta { margin-top: 11px; display: flex; gap: 13px; flex-wrap: wrap; color: var(--ios-tertiary); font-size: 11px; }
.issue-card-side { min-width: 125px; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 12px; }
.issue-status, .issue-type-pill, .issue-severity-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
}
.issue-type-pill { color: #315b94; background: rgba(0, 122, 255, .1); }
.issue-severity-pill.general { color: #4b647f; background: #edf2f7; }
.issue-severity-pill.important { color: #8a5a00; background: rgba(255,149,0,.15); }
.issue-severity-pill.serious, .issue-severity-pill.critical { color: #a92b23; background: rgba(255,59,48,.13); }
.issue-status.pending_assignment { color: #765500; background: rgba(255,204,0,.18); }
.issue-status.pending_acceptance { color: #8a5a00; background: rgba(255,149,0,.16); }
.issue-status.in_progress { color: #0b64bd; background: rgba(0,122,255,.12); }
.issue-status.pending_verification { color: #6046b8; background: rgba(88,86,214,.13); }
.issue-status.closed { color: #23763e; background: rgba(52,199,89,.14); }
.issue-status.rejected { color: #a92b23; background: rgba(255,59,48,.13); }
.issue-status.cancelled { color: #636366; background: rgba(118,118,128,.12); }
.issue-due.overdue { color: var(--ios-red); font-weight: 700; }
.issue-empty { padding: 52px 20px; border: 1px dashed rgba(60,60,67,.18); border-radius: 18px; color: var(--ios-tertiary); text-align: center; background: rgba(255,255,255,.5); }

.issue-dialog { width: min(760px, calc(100vw - 32px)); max-width: 760px; }
.issue-dialog form { max-width: none !important; }
.issue-dialog .dialog-heading p { margin: 6px 0 18px; color: var(--ios-secondary); font-size: 13px; }
.issue-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.issue-grid-wide { grid-column: 1 / -1; }
.issue-type-fields { padding: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; border: 1px solid var(--ios-separator-soft); border-radius: 14px; background: rgba(247,249,252,.9); }
.issue-type-fields-heading { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--ios-separator-soft); }
.issue-type-fields-heading strong { font-size: 13px; }
.issue-type-fields-heading span { color: var(--ios-tertiary); font-size: 11px; }
.issue-inline-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.issue-assignment-fields { padding: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border-radius: 14px; background: var(--ios-blue-soft); }
.issue-checks { display: flex; gap: 16px; flex-wrap: wrap; }
.issue-checks label { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; }
.issue-checks input { width: 20px; height: 20px; }
.issue-dialog-actions { position: sticky; bottom: -20px; margin: 20px -20px -20px; padding: 14px 20px 20px; background: rgba(255,255,255,.94); border-top: 1px solid var(--ios-separator-soft); backdrop-filter: blur(18px); }

.mobile-issue-launcher { display: none; }
.mobile-app-home,.mobile-s5-home,.mobile-plan-home,.mobile-mine-home { display: none; }
.mobile-production-dialog { padding: 0 !important; }
.mobile-production-dialog form { max-width: none !important; }
.mobile-record-topbar,.mobile-record-submitbar { display: flex; align-items: center; }
.mobile-record-topbar { padding: calc(15px + env(safe-area-inset-top)) 18px 15px; gap: 12px; border-bottom: 1px solid var(--ios-separator-soft); }
.mobile-record-topbar > div { min-width: 0; flex: 1; }
.mobile-record-topbar span,.mobile-record-topbar strong { display: block; }
.mobile-record-topbar > div span { color: var(--ios-tertiary); font-size: 11px; }
.mobile-record-topbar > div strong { margin-top: 2px; font-size: 17px; }
.mobile-record-back { width: 40px; height: 40px; border: 0; border-radius: 12px; color: var(--ios-blue); background: var(--ios-fill); font-size: 30px; line-height: 1; }
.mobile-record-step { color: var(--ios-tertiary); font-size: 11px; }
.mobile-record-body { padding: 15px; display: grid; gap: 12px; }
.mobile-record-section,.mobile-record-more { padding: 16px; border: 1px solid var(--ios-separator-soft); border-radius: 18px; background: #fff; }
.mobile-factor-context { padding: 16px; display: flex; align-items: center; gap: 13px; border-radius: 19px; color: #fff; background: linear-gradient(135deg,#126bd2,#0f4f9c); box-shadow: 0 12px 26px rgba(15,79,156,.22); }
.mobile-factor-context > span { width: 52px; height: 52px; display: grid; place-items: center; flex: 0 0 52px; border-radius: 17px; background: rgba(255,255,255,.18); font-size: 25px; font-weight: 900; }
.mobile-factor-context div { min-width: 0; }
.mobile-factor-context small,.mobile-factor-context strong,.mobile-factor-context p { display: block; }
.mobile-factor-context small { color: rgba(255,255,255,.72); font-size: 10px; }
.mobile-factor-context strong { margin-top: 3px; font-size: 18px; }
.mobile-factor-context p { margin: 4px 0 0; color: rgba(255,255,255,.82); font-size: 11px; line-height: 1.4; }
.mobile-record-section-heading { margin-bottom: 13px; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.mobile-record-section-heading strong { font-size: 16px; }
.mobile-record-section-heading span { color: var(--ios-tertiary); font-size: 11px; }
.mobile-factor-tabs { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
.mobile-factor-tabs button { min-width: 0; min-height: 76px; padding: 9px 3px; display: grid; place-items: center; gap: 4px; border: 1px solid #dfe7f1; border-radius: 15px; color: #526278; background: #f7f9fc; }
.mobile-factor-tabs button b { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; color: #285b92; background: #e8f2ff; font-size: 19px; }
.mobile-factor-tabs button span { font-size: 10px; white-space: nowrap; }
.mobile-factor-tabs button.active { border-color: #1677ff; color: #0a5fc2; background: #eef6ff; box-shadow: 0 0 0 2px rgba(22,119,255,.1); }
.mobile-factor-tabs button.active b { color: #fff; background: #1677ff; }
.mobile-owner-preview { margin-top: 11px; padding: 10px 12px; border-radius: 12px; color: #526278; background: #f2f6fb; font-size: 12px; }
.mobile-owner-preview.matched { color: #176536; background: #edf8f1; }
.mobile-record-primary { margin: 0; font-size: 16px; font-weight: 760; }
.mobile-record-primary textarea { min-height: 126px; margin-top: 9px; font-size: 16px; line-height: 1.55; }
.mobile-capture-actions { margin-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.mobile-capture-actions .btn { width: 100% !important; height: 52px; min-height: 52px; margin: 0 !important; padding: 0 12px !important; display: flex; align-items: center; justify-content: center; box-sizing: border-box; line-height: 1; }
.mobile-capture-actions #mobile-production-voice.is-listening { color: #fff !important; background: #087f5b !important; animation: issue-voice-pulse 1.1s ease-in-out infinite; }
.mobile-voice-status { margin: 8px 2px 0; padding: 9px 11px; border-radius: 10px; color: #75600f; background: #fff7d8; font-size: 11px; line-height: 1.45; }
.mobile-photo-action input { display: none; }
.mobile-record-two-columns { margin-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.mobile-record-two-columns label { margin: 0; }
.mobile-record-more summary { color: #285b92; font-weight: 730; cursor: pointer; }
.mobile-record-more-fields { margin-top: 14px; display: grid; gap: 10px; }
.mobile-record-more-fields label { margin: 0; }
.mobile-record-submitbar { position: sticky; bottom: 0; padding: 12px 15px calc(12px + env(safe-area-inset-bottom)); justify-content: space-between; gap: 12px; border-top: 1px solid var(--ios-separator-soft); background: rgba(255,255,255,.96); backdrop-filter: blur(18px); }
.mobile-s5-report-dialog form { max-width: none !important; }
.s5-report-body { padding: 16px; display: grid; gap: 14px; }
.s5-report-submitbar small { max-width: 55%; color: var(--ios-secondary); font-size: 10px; line-height: 1.4; }
.mobile-record-submitbar small { max-width: 48%; color: var(--ios-tertiary); font-size: 10px; line-height: 1.35; }
.mobile-record-submitbar .btn { min-height: 48px; flex: 1; }
.s5-mobile-list { display: none; }
.s5-photo-button {
  width: 58px;
  height: 58px;
  padding: 0;
  display: block;
  flex: 0 0 58px;
  overflow: hidden;
  border: 0;
  border-radius: 9px;
  background: #e8efeb;
  cursor: pointer;
}
.s5-photo-button img {
  width: 58px;
  height: 58px;
  display: block;
  object-fit: cover;
}
.s5-table-photo-compare { display:flex; gap:8px; align-items:flex-start; }
.s5-table-photo-compare .s5-photo-button,.s5-photo-empty { position:relative; width:64px; height:78px; border-radius:9px; overflow:hidden; background:#e8efeb; }
.s5-table-photo-compare .s5-photo-button img { width:64px; height:58px; object-fit:cover; }
.s5-table-photo-compare small { position:absolute; right:0; bottom:0; left:0; height:20px; display:grid; place-items:center; color:#506070; background:#eef3f0; font-size:10px; }
.s5-action-modal { position:fixed; inset:0; z-index:10020; display:grid; place-items:center; padding:18px; background:rgba(0,0,0,.62); }
.s5-action-panel { width:min(440px,100%); padding:22px; border:1px solid var(--tech-border); border-radius:16px; color:var(--tech-text); background:var(--tech-bg); box-shadow:0 16px 50px rgba(0,0,0,.35); }
.s5-action-panel h3 { margin:0 0 8px; }
.s5-action-panel p { margin:0 0 16px; color:var(--text-secondary); line-height:1.55; }
.s5-action-panel label { display:grid; gap:7px; margin-top:13px; font-size:13px; }
.s5-action-panel input,.s5-action-panel select,.s5-action-panel textarea { width:100%; min-width:0; padding:10px; border:1px solid var(--tech-border); border-radius:9px; color:inherit; background:var(--tech-surface); }
.s5-action-panel > div:last-child { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.s5-action-panel form > div:last-child { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.s5-rejection-requirement { margin:-6px 0 16px; padding:12px; border:1px solid #ef9a9a; border-radius:9px; color:#ffcdd2; background:rgba(198,40,40,.16); }
.s5-rejection-requirement p { margin:6px 0 0; line-height:1.5; }
.task-record-guidance { margin: 0; padding: 11px 13px; border-radius: 13px; color: #625a9f; background: #f0eefc; font-size: 12px; line-height: 1.5; }
.task-record-body > label { margin: 0; }
.task-week-legacy { display: none; }

.issue-spreadsheet-dialog { padding: 0 !important; overflow: hidden !important; }
dialog.issue-spreadsheet-dialog[open] { position: fixed !important; inset: 8px !important; width: auto !important; max-width: none !important; height: auto !important; max-height: none !important; margin: 0 !important; border-radius: 16px !important; }
.issue-spreadsheet-shell { height: 100%; display: grid; grid-template-rows: auto auto auto minmax(0,1fr) auto; background: #f5f7fa; }
.issue-spreadsheet-heading { padding: 11px 18px 9px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #dce2e9; background: #fff; }
.issue-spreadsheet-heading span { color: #087f9d; font-size: 11px; font-weight: 850; letter-spacing: .08em; }
.issue-spreadsheet-heading h3 { margin: 2px 0; font-size: 20px; }
.issue-spreadsheet-heading p { margin: 0; color: var(--ios-secondary); font-size: 12px; }
.issue-spreadsheet-heading .mobile-icon-btn { display: grid !important; flex: 0 0 40px; place-items: center; color: #687384; background: #eef1f5; font-size: 24px; }
.issue-spreadsheet-tabs { min-height: 48px; padding: 7px 18px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #dce2e9; background: #fff; }
.issue-spreadsheet-tabs button { min-height: 34px; padding: 6px 14px; border: 1px solid #d7dde5; border-radius: 9px; color: #526071; background: #fff; font-weight: 800; cursor: pointer; }
.issue-spreadsheet-tabs button.active { color: #fff; border-color: #087f9d; background: #087f9d; }
.issue-spreadsheet-tabs span { margin-left: auto; color: #7a8492; font-size: 11px; }
.issue-spreadsheet-toolbar { min-height: 48px; padding: 7px 18px; display: flex; flex-wrap:wrap; align-items: center; gap: 8px; border-bottom: 1px solid #dce2e9; background: #f9fafb; }
.issue-spreadsheet-toolbar span { margin-left: 6px; color: #6f7886; font-size: 11px; }
.issue-spreadsheet-wrap { min-width: 0; overflow: auto; background: #fff; }
.issue-spreadsheet-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 12px; }
.issue-spreadsheet-table th { height: 42px; padding: 7px 8px; position: sticky; top: 0; z-index: 3; border-right: 1px solid #d9dfe7; border-bottom: 1px solid #cbd3dd; color: #384454; background: #edf1f5; text-align: left; white-space: nowrap; }
.issue-spreadsheet-table td { height: 42px; padding: 0; border-right: 1px solid #e0e5eb; border-bottom: 1px solid #e0e5eb; background: #fff; }
.issue-spreadsheet-table tr:nth-child(even) td { background: #fbfcfd; }
.issue-spreadsheet-table tr.grid-row-success td { background: #eef9f2; }
.issue-spreadsheet-table tr.grid-row-error td { background: #fff0ee; }
.issue-spreadsheet-table .grid-row-index { width: 46px; min-width: 46px; text-align: center; color: #778292; background: #f4f6f8; }
.issue-spreadsheet-table input,.issue-spreadsheet-table select { width: 100%; min-width: 0; height: 41px; padding: 7px 8px; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 12px; }
.issue-spreadsheet-table input:focus,.issue-spreadsheet-table select:focus { position: relative; z-index: 2; outline: 2px solid #0a89a7; outline-offset: -2px; background: #fff !important; }
.issue-spreadsheet-table .grid-cell-description { width: 220px; min-width: 220px; }
.issue-spreadsheet-table .grid-cell-medium { width: 98px; min-width: 98px; }
.issue-spreadsheet-table .grid-cell-small { width: 84px; min-width: 84px; }
.issue-spreadsheet-table .grid-cell-number { width: 68px; min-width: 68px; }
.issue-spreadsheet-table .grid-row-result { width: 110px; min-width: 110px; padding: 0 8px; color: #6f7886; font-size: 11px; }
.issue-spreadsheet-dialog[data-type="quality"] .grid-cell-description { width: 180px; min-width: 180px; }
.issue-spreadsheet-dialog[data-type="quality"] .grid-cell-medium { width: 90px; min-width: 90px; }
.issue-spreadsheet-dialog[data-type="quality"] .grid-cell-small { width: 78px; min-width: 78px; }
.issue-spreadsheet-dialog[data-type="quality"] .grid-cell-number { width: 60px; min-width: 60px; }
.issue-spreadsheet-dialog[data-type="quality"] .grid-row-result { width: 100px; min-width: 100px; }
.issue-spreadsheet-table th:first-child,.issue-spreadsheet-table td:first-child { position: sticky; left: 0; z-index: 4; }
.issue-spreadsheet-table th:nth-child(2),.issue-spreadsheet-table td.grid-cell-description { position: sticky; left: 46px; z-index: 4; box-shadow: 5px 0 8px rgba(38,51,65,.07); }
.issue-spreadsheet-table th:nth-child(2) { z-index: 5; }
.issue-spreadsheet-table .grid-row-result.success { color: #137245; font-weight: 750; }
.issue-spreadsheet-table .grid-row-result.error { color: #b1362d; font-weight: 750; }
.issue-spreadsheet-table .grid-delete-row { width: 44px; height: 41px; border: 0; color: #a23a32; background: transparent; cursor: pointer; }
.issue-spreadsheet-footer { min-height: 64px; padding: 10px 18px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; border-top: 1px solid #dce2e9; background: #fff; }
.issue-spreadsheet-footer > span { margin-right: auto; color: #657183; font-size: 12px; }

.issue-detail-dialog { width: min(1240px, calc(100vw - 32px)); max-width: 1240px; padding: 0 !important; overflow: hidden; }
.issue-detail-shell { height: min(92vh, 960px); max-height: min(92vh, 960px); min-height: 620px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.issue-detail-topbar { padding: 19px 22px 14px; display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--ios-separator-soft); }
.issue-detail-topbar h3 { margin: 7px 0 0; font-size: 21px; }
.issue-detail-topbar .mobile-icon-btn { display: grid !important; flex: 0 0 40px; place-items: center; color: var(--ios-secondary); background: var(--ios-fill); font-size: 24px; }
.issue-detail-content { min-width: 0; min-height: 0; padding: 20px 22px 28px; overflow: auto; }
.issue-detail-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, 440px); gap: 18px; align-items: start; }
.issue-detail-summary > div { min-width: 0; }
.issue-detail-summary.quality-detail { grid-template-columns: 1fr; }
.issue-detail-summary.quality-detail .issue-field-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.issue-detail-section { margin-bottom: 16px; padding: 17px; border: 1px solid var(--ios-separator-soft); border-radius: 16px; background: rgba(255,255,255,.75); }
.issue-detail-section h4 { margin: 0 0 12px; font-size: 14px; }
.issue-detail-section .issue-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.issue-detail-section .issue-form-grid > * { min-width: 0; }
.issue-detail-section .issue-form-grid > .btn { align-self: end; min-height: 42px; }
.issue-description { margin: 0; color: var(--ios-secondary); white-space: pre-wrap; }
.issue-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.issue-field { min-width: 0; }
.issue-field span { display: block; color: var(--ios-tertiary); font-size: 11px; }
.issue-field strong { display: block; margin-top: 3px; overflow-wrap: anywhere; font-size: 13px; }
.issue-linked-task { padding: 11px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 12px; background: var(--ios-fill); }
.issue-linked-task span { min-width: 0; }
.issue-linked-task strong,.issue-linked-task small { display: block; }
.issue-linked-task strong { overflow-wrap: anywhere; font-size: 13px; }
.issue-linked-task small { margin-top: 4px; color: var(--ios-secondary); font-size: 11px; }
.issue-linked-task .btn { flex: 0 0 auto; }
.issue-evidence-list, .issue-timeline { display: grid; gap: 9px; }
.issue-evidence-item { padding: 11px 12px; border-radius: 12px; background: var(--ios-fill); }
.issue-evidence-item a { color: var(--ios-blue); font-weight: 700; text-decoration: none; }
.issue-evidence-item p { margin: 5px 0 0; color: var(--ios-secondary); font-size: 12px; }
.issue-evidence-image { width: 100%; padding: 0; overflow: hidden; display: grid; border: 0; border-radius: 12px; color: #fff; background: #14243a; text-align: left; cursor: pointer; }
.issue-evidence-image img { width: 100%; max-height: 260px; display: block; object-fit: contain; background: #0e1724; }
.issue-evidence-image span { padding: 9px 11px; font-size: 12px; font-weight: 700; }
.issue-image-preview-dialog { width: min(960px,calc(100vw - 24px)); max-width: 960px; padding: 0 !important; overflow: hidden; background: #0b121d !important; }
.issue-image-preview-shell { max-height: 92dvh; display: grid; grid-template-rows: auto minmax(0,1fr); }
.issue-image-preview-heading { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #fff; background: #151f2d; }
.issue-image-preview-shell img { width: 100%; height: 100%; max-height: calc(92dvh - 65px); object-fit: contain; }
.issue-timeline-item { position: relative; padding: 0 0 12px 19px; border-left: 1px solid rgba(0,122,255,.2); }
.issue-timeline-item::before { content: ""; position: absolute; top: 3px; left: -5px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: var(--ios-blue); box-shadow: 0 0 0 1px rgba(0,122,255,.2); }
.issue-timeline-item strong { display: block; font-size: 12px; }
.issue-timeline-item span { display: block; margin-top: 2px; color: var(--ios-tertiary); font-size: 11px; }
.issue-timeline-item p { margin: 4px 0 0; color: var(--ios-secondary); font-size: 12px; }
.issue-detail-actions { padding: 14px 22px calc(14px + env(safe-area-inset-bottom)); display: flex; align-items: flex-end; justify-content: flex-end; gap: 9px; flex-wrap: wrap; border-top: 1px solid var(--ios-separator-soft); background: rgba(255,255,255,.95); backdrop-filter: blur(20px); }
.issue-action-form { min-width: 0; flex: 1 1 360px; display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.issue-action-form label { min-width: 220px; flex: 1 1 260px; margin: 0; }
.issue-action-form input[type="file"] { width: 100%; max-width: 100%; min-width: 0; }
.issue-action-form .btn { flex: 0 0 auto; }
.issue-action-form textarea { min-height: 46px; max-height: 96px; resize: vertical; }

@media (min-width: 761px) {
  dialog.issue-detail-dialog[open] {
    position: fixed !important;
    inset: 16px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  .issue-detail-shell { height: 100%; max-height: none; min-height: 0; }
}

@media (max-width: 1020px) and (min-width: 761px) {
  .issue-detail-summary { grid-template-columns: minmax(0, 1fr) minmax(330px, 390px); }
  .issue-detail-section .issue-form-grid { grid-template-columns: 1fr; }
}

.notification-center-btn {
  position: relative;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--ios-separator-soft);
  border-radius: 14px;
  color: var(--ios-label);
  background: rgba(255,255,255,.86);
  cursor: pointer;
  font-size: 17px;
}
.notification-center-btn:focus-visible { outline: 3px solid rgba(0,122,255,.25); outline-offset: 2px; }
.notification-center-badge {
  position: absolute;
  top: -6px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: var(--ios-red);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}
.notification-center-dialog { width: min(620px, calc(100vw - 32px)); max-width: 620px; padding: 0 !important; }
.notification-center-shell { max-height: min(82vh, 760px); display: grid; grid-template-rows: auto auto minmax(0,1fr); }
.notification-center-heading { padding: 20px 22px 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--ios-separator-soft); }
.notification-center-heading h3 { margin: 6px 0 0; font-size: 21px; }
.notification-center-heading p { margin: 7px 0 0; color: var(--ios-secondary); font-size: 12px; }
.notification-center-actions { padding: 10px 22px; display: flex; justify-content: flex-end; gap: 8px; border-bottom: 1px solid var(--ios-separator-soft); background: rgba(248,249,252,.86); }
.notification-center-list { padding: 12px; display: grid; gap: 8px; overflow-y: auto; }
.notification-center-item {
  width: 100%;
  padding: 14px 15px;
  display: grid;
  grid-template-columns: 9px minmax(0,1fr) auto;
  align-items: start;
  gap: 11px;
  border: 1px solid var(--ios-separator-soft);
  border-radius: 15px;
  color: var(--ios-label);
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.notification-center-item.unread { border-color: rgba(0,122,255,.22); background: rgba(0,122,255,.045); }
.notification-center-item:hover { border-color: rgba(0,122,255,.28); }
.notification-center-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: transparent; }
.notification-center-item.unread .notification-center-dot { background: var(--ios-blue); box-shadow: 0 0 0 4px rgba(0,122,255,.1); }
.notification-center-copy { min-width: 0; }
.notification-center-copy strong { display: block; font-size: 13px; }
.notification-center-copy p { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--ios-secondary); font-size: 12px; line-height: 1.45; }
.notification-center-copy small { display: block; margin-top: 6px; color: var(--ios-tertiary); font-size: 10px; }
.notification-center-arrow { margin-top: 2px; color: var(--ios-tertiary); font-size: 18px; }
.notification-center-empty { padding: 54px 18px; color: var(--ios-tertiary); text-align: center; }
.notification-center-error { color: var(--ios-red); }

.admin-role-config > label { display: grid; gap: 6px; }
.admin-role-summary { margin: 12px 0; padding: 12px 14px; border-radius: 14px; color: var(--ios-secondary); background: var(--ios-fill); font-size: 12px; line-height: 1.55; }
.admin-role-options { margin: 12px 0 15px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.admin-role-option { padding: 12px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 10px; border: 1px solid var(--ios-separator-soft); border-radius: 14px; background: #fff; cursor: pointer; }
.admin-role-option input { width: 20px; min-height: 20px; margin: 1px 0 0; }
.admin-role-option strong,.admin-role-option small { display: block; }
.admin-role-option small { margin-top: 3px; color: var(--ios-secondary); font-size: 10px; line-height: 1.4; }
.admin-assignment-form { margin-top: 12px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.admin-assignment-form label { margin: 0; }
.admin-assignment-form .btn { grid-column: 1 / -1; }

@media (max-width: 760px) {
  .issue-grid-entry-action,.issue-spreadsheet-dialog { display: none !important; }
  html,body,#app,.app-container,.app-main,.scroll-content,.tab-panel { max-width: 100%; overflow-x: hidden; }
  input,select,textarea,button,form,.card,.table-wrap { min-width: 0; max-width: 100%; box-sizing: border-box; }
  .mobile-app-home,.mobile-s5-home,.mobile-plan-home,.mobile-mine-home { display: block; }
  .mobile-mine-home { padding-bottom: calc(120px + env(safe-area-inset-bottom)); }
  #notification-center-btn { display: none !important; }
  #tab-home > .week-overview { display: none !important; }
  .mobile-home-greeting,.mobile-module-hero { padding: 20px; overflow: hidden; position: relative; border-radius: 24px; color: #fff; background: linear-gradient(135deg,#0f67c7,#16437f); box-shadow: 0 16px 36px rgba(15,67,127,.22); }
  .mobile-home-greeting::after,.mobile-module-hero::after { content: ''; position: absolute; width: 150px; height: 150px; right: -45px; top: -55px; border-radius: 50%; background: rgba(255,255,255,.1); }
  .mobile-home-greeting span,.mobile-module-hero > span { position: relative; z-index: 1; color: rgba(255,255,255,.75); font-size: 11px; font-weight: 800; letter-spacing: .07em; }
  .mobile-home-greeting h2,.mobile-module-hero h2 { position: relative; z-index: 1; margin: 7px 0 5px; font-size: 25px; }
  .mobile-home-greeting p,.mobile-module-hero p { position: relative; z-index: 1; max-width: 86%; margin: 0; color: rgba(255,255,255,.8); font-size: 12px; line-height: 1.55; }
  .mobile-module-hero.s5 { background: linear-gradient(135deg,#12704a,#169462); }
  .mobile-module-hero.plan { background: linear-gradient(135deg,#4f46a5,#7066d6); }
  .mobile-home-status { margin: 12px 0 0; padding: 9px; position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid rgba(255,255,255,.9); border-radius: 19px; background: rgba(255,255,255,.94); box-shadow: 0 10px 25px rgba(35,52,76,.12); }
  .mobile-home-status button { min-width: 0; padding: 9px 3px; display: grid; gap: 3px; border: 0; border-right: 1px solid #e8edf4; color: #172438; background: transparent; }
  .mobile-home-status button:last-child { border-right: 0; }
  .mobile-home-status strong { font-size: 18px; }
  .mobile-home-status span { color: #718097; font-size: 9px; }
  .mobile-home-section-heading { margin: 22px 2px 10px; display: flex; justify-content: space-between; align-items: baseline; }
  .mobile-home-section-heading strong { font-size: 17px; }
  .mobile-home-section-heading span { color: #8490a2; font-size: 10px; }
  .mobile-home-actions { display: grid; gap: 10px; }
  .mobile-home-actions button { min-height: 78px; padding: 13px 15px; display: flex; align-items: center; gap: 13px; border: 1px solid #e0e7f1; border-radius: 19px; color: #18273c; background: #fff; text-align: left; box-shadow: 0 7px 20px rgba(31,55,88,.055); }
  .mobile-home-actions button > span { width: 46px; height: 46px; display: grid; place-items: center; flex: 0 0 46px; border-radius: 15px; color: #1766bd; background: #eaf4ff; font-size: 17px; font-weight: 900; }
  .mobile-home-actions button.primary-action > span { color: #fff; background: #1677ff; }
  .mobile-home-actions button.quality-action { border-color: #ded5f3; background: #fbf9ff; }
  .mobile-home-actions button.quality-action > span { color: #fff; background: #7c4dce; }
  .mobile-home-actions button div { min-width: 0; display: grid; gap: 4px; }
  .mobile-home-actions strong { font-size: 15px; }
  .mobile-home-actions small { color: #758399; font-size: 10px; line-height: 1.4; }
  .mobile-module-hero.mine { background: linear-gradient(135deg,#5550a8,#2f3277); box-shadow: 0 16px 36px rgba(59,56,135,.22); }
  .mobile-mine-reminder { width: 100%; min-height: 86px; margin: 12px 0 0; padding: 14px; position: relative; z-index: 2; display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; border: 1px solid rgba(255,255,255,.9); border-radius: 19px; color: #172438; background: rgba(255,255,255,.96); box-shadow: 0 10px 25px rgba(35,52,76,.12); text-align: left; }
  .mobile-mine-reminder > span,.mobile-mine-actions button > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: #5953b0; font-size: 15px; font-weight: 850; }
  .mobile-mine-reminder div,.mobile-mine-actions button div { min-width: 0; }
  .mobile-mine-reminder strong,.mobile-mine-actions strong { display: block; font-size: 15px; }
  .mobile-mine-reminder small,.mobile-mine-actions small { display: block; margin-top: 4px; color: #758399; font-size: 10px; line-height: 1.4; }
  .mobile-mine-reminder b { min-width: 44px; padding: 6px 8px; border-radius: 999px; color: #504aa2; background: #efedff; font-size: 10px; text-align: center; }
  .mobile-mine-actions { display: grid; gap: 9px; }
  .mobile-mine-actions button { min-height: 76px; padding: 12px 14px; display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 12px; border: 1px solid #e2e6ed; border-radius: 18px; color: #172438; background: #fff; box-shadow: 0 6px 18px rgba(31,55,88,.05); text-align: left; }
  .mobile-mine-actions button > i { color: #a1a9b5; font-size: 25px; font-style: normal; }
  .mobile-mine-tab { position: relative; }
  .mobile-mine-badge { min-width: 18px; height: 18px; padding: 0 5px; position: absolute; top: 5px; right: 22%; display: grid; place-items: center; border: 2px solid #fff; border-radius: 999px; color: #fff; background: #ff3b30; font-size: 8px; line-height: 1; }
  .mobile-s5-actions { margin-top: 12px; display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
  .mobile-s5-actions button { min-width: 0; min-height: 116px; padding: 12px 7px; display: flex; align-items: center; flex-direction: column; border: 1px solid #dfe8e3; border-radius: 19px; color: #1c3529; background: #fff; }
  .mobile-s5-actions button span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: #168a59; font-weight: 900; }
  .mobile-s5-actions strong { margin-top: 9px; font-size: 12px; }
  .mobile-s5-actions small { margin-top: 3px; color: #7a8c83; font-size: 9px; }
  .mobile-flow-hint { margin: 11px 0 15px; padding: 10px; display: flex; align-items: center; justify-content: center; gap: 5px; border-radius: 14px; color: #567266; background: #eef7f2; font-size: 9px; }
  .mobile-flow-hint i { color: #91aa9d; font-style: normal; }
  #tab-5s .sub-nav { padding: 4px !important; gap: 4px !important; border: 0 !important; border-radius: 15px; background: #edf1f6; }
  #tab-5s .sub-nav .btn { min-height: 40px; flex: 1; padding: 7px !important; border: 0 !important; border-radius: 12px !important; background: transparent !important; font-size: 11px !important; }
  #tab-5s .sub-nav .btn.primary { color: #176d48 !important; background: #fff !important; box-shadow: 0 3px 10px rgba(34,55,45,.09) !important; }
  #tab-5s .plan-controls { align-items: stretch; }
  #tab-5s .plan-controls > div:first-child { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
  #tab-5s .plan-controls label { min-width: 0; font-size: 10px; }
  #tab-5s .plan-controls select { width: 100%; }
  #tab-5s #open-5s-report-btn { display: none; }
  .mobile-plan-home + .plan-controls,.mobile-plan-home ~ .dual-week-layout,.mobile-plan-home ~ .history-section { display: none !important; }
  .mobile-primary-button { width: 100%; min-height: 52px; margin: 12px 0; border: 0; border-radius: 17px; color: #fff; background: #5a51b8; box-shadow: 0 10px 22px rgba(90,81,184,.2); font-size: 15px; font-weight: 800; }
  .mobile-plan-switch { padding: 4px; display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; border-radius: 15px; background: #eceff5; }
  .mobile-plan-owner-filter { display: grid; gap: 7px; padding: 12px 14px; border: 1px solid #e1e6ef; border-radius: 14px; color: #56657b; background: #fff; font-size: 12px; font-weight: 700; }
  .mobile-plan-owner-filter select { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #d9e0eb; border-radius: 11px; color: #25344b; background: #f7f9fc; font-size: 14px; }
  .mobile-plan-switch button { min-height: 40px; padding: 6px 3px; border: 0; border-radius: 12px; color: #718097; background: transparent; font-size: 10px; font-weight: 700; }
  .mobile-plan-switch button.active { color: #4c439e; background: #fff; box-shadow: 0 3px 10px rgba(45,45,75,.09); }
  .mobile-plan-list { margin-top: 10px; display: grid; gap: 9px; }
  .mobile-plan-card { padding: 15px; border: 1px solid #e2e7ef; border-radius: 19px; background: #fff; box-shadow: 0 6px 18px rgba(31,55,88,.05); }
  .mobile-plan-card.overdue { border-color: #f3c1bb; }
  .mobile-plan-card-top { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
  .mobile-plan-card-top > span { color: #7269bd; font-size: 10px; font-weight: 800; }
  .mobile-plan-card h3 { margin: 10px 0 5px; font-size: 15px; line-height: 1.45; }
  .mobile-plan-card p { margin: 0; color: #7b8798; font-size: 10px; }
  .mobile-plan-owner { display: block; margin: 7px 0 5px; color: #526278; font-size: 11px; font-weight: 750; }
  .mobile-plan-card-actions { margin-top: 12px; display: flex; gap: 7px; flex-wrap: wrap; }
  .mobile-plan-card-actions .btn { min-height: 39px; flex: 1; }
  .mobile-plan-empty { padding: 34px 18px; border: 1px dashed #dce3ed; border-radius: 18px; color: #8490a2; background: #fff; text-align: center; font-size: 12px; line-height: 1.6; }
  .mobile-task-dialog-heading span { color: #5a51b8; font-size: 10px; font-weight: 850; letter-spacing: .08em; }
  .mobile-task-dialog-heading h3 { margin: 6px 0 4px; font-size: 24px; }
  .mobile-task-dialog-heading p { margin: 0 0 17px; color: #7b8798; font-size: 11px; line-height: 1.5; }
  #task-form > label { margin-bottom: 12px; }
  #task-form .mobile-task-advanced { display: none !important; }
  #task-form > .actions { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; }
  #task-form > .actions > label { display: none; }
  #task-form > .actions .btn { min-height: 50px; }
  #task-form > .actions .btn.primary { grid-column: 1 / -1; }
  .s5-photo-first { padding: 14px; border: 1px dashed #66a886; border-radius: 17px; color: #235b41; background: #eff9f4; font-weight: 800; }
  .s5-photo-first input { display: none; }
  .s5-photo-first span { min-height: 52px; margin-top: 9px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: #168a59; }
  .s5-report-photo-preview { padding: 10px; display: grid; gap: 9px; border: 1px solid #cfe6d9; border-radius: 17px; background: #f5fbf8; }
  .s5-report-photo-preview.hidden { display: none !important; }
  .s5-report-photo-preview > button:first-child { min-height: 150px; padding: 0; position: relative; overflow: hidden; border: 0; border-radius: 14px; background: #16251e; }
  .s5-report-photo-preview img { width: 100%; height: 190px; display: block; object-fit: contain; }
  .s5-report-photo-preview > button:first-child span { position: absolute; right: 8px; bottom: 8px; left: 8px; padding: 7px 9px; border-radius: 10px; color: #fff; background: rgba(0,0,0,.62); font-size: 11px; font-weight: 750; }
  .s5-mobile-step-title { margin: 18px 0 2px; color: #24543e; font-size: 15px; font-weight: 850; }
  .s5-mobile-dialog-heading p { margin: 5px 0 14px; color: #758399; font-size: 11px; line-height: 1.5; }
  .issue-hero { display: none; }
  #tab-issues[data-mobile-view="list"] .mobile-issue-launcher,
  #tab-issues[data-mobile-view="list"] #issue-metrics,
  #tab-issues[data-mobile-view="list"] .issue-analysis-filters,
  #tab-issues[data-mobile-view="list"] #issue-analytics-panel,
  #tab-issues[data-mobile-view="list"] #issue-integration-panel { display: none !important; }
  #tab-issues[data-mobile-view="create"] #issue-metrics,
  #tab-issues[data-mobile-view="create"] .issue-analysis-filters,
  #tab-issues[data-mobile-view="create"] #issue-analytics-panel,
  #tab-issues[data-mobile-view="create"] #issue-integration-panel,
  #tab-issues[data-mobile-view="create"] .issue-toolbar,
  #tab-issues[data-mobile-view="create"] #issue-list { display: none !important; }
  #tab-issues[data-mobile-view="analytics"] .mobile-issue-launcher,
  #tab-issues[data-mobile-view="analytics"] .issue-toolbar,
  #tab-issues[data-mobile-view="analytics"] #issue-list { display: none !important; }
  .desktop-quick-capsule,.issue-capsule-hint { display: none !important; }
  .mobile-issue-launcher { padding: 18px 0 8px; display: block; }
  .mobile-issue-launcher-heading span { color: var(--ios-blue); font-size: 11px; font-weight: 800; letter-spacing: .08em; }
  .mobile-issue-launcher-heading h3 { margin: 5px 0 6px; font-size: 24px; }
  .mobile-issue-launcher-heading p { margin: 0; color: var(--ios-secondary); font-size: 12px; line-height: 1.5; }
  .mobile-issue-entry-grid { margin-top: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .mobile-issue-entry { min-height: 140px; padding: 16px; display: flex; align-items: flex-start; flex-direction: column; border: 1px solid #e1e8f2; border-radius: 20px; color: #1b2a40; background: #fff; text-align: left; box-shadow: 0 8px 22px rgba(31,55,88,.06); }
  .mobile-entry-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: #1677ff; font-size: 17px; font-weight: 850; }
  .mobile-issue-entry.quality .mobile-entry-icon { background: #7c4dce; }
  .mobile-issue-entry.five-s .mobile-entry-icon { background: #15955b; }
  .mobile-issue-entry.other .mobile-entry-icon { color: #526278; background: #eaf0f7; }
  .mobile-issue-entry.factor-personnel .mobile-entry-icon { background: #1677ff; }
  .mobile-issue-entry.factor-equipment .mobile-entry-icon { background: #d66b18; }
  .mobile-issue-entry.factor-material .mobile-entry-icon { background: #9b6a18; }
  .mobile-issue-entry.factor-process .mobile-entry-icon { background: #16858f; }
  .mobile-issue-entry.factor-environment .mobile-entry-icon { background: #247b50; }
  .mobile-issue-entry strong { margin-top: 13px; font-size: 16px; }
  .mobile-issue-entry small { margin-top: 5px; color: var(--ios-secondary); font-size: 10px; line-height: 1.4; }
  .issue-hero h2 { font-size: 26px; }
  .issue-hero-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .issue-hero-action { width: 100%; }
  .issue-analytics-panel { padding: 15px; }
  .issue-analytics-heading { flex-direction: column; }
  .issue-analytics-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .issue-analytics-grid { grid-template-columns: 1fr; }
  .issue-analysis-filters { align-items: stretch; }
  .issue-analysis-filters > strong, .issue-analysis-filters > small { flex-basis: 100%; }
  .issue-analysis-filters .issue-date-filter { flex: 1 1 130px; }
  .issue-analysis-filters .issue-date-filter input { min-width: 0; width: 100%; }
  .issue-capsule { padding: 11px; grid-template-columns: 10px minmax(0, 1fr) auto; border-radius: 18px; }
  .issue-capsule textarea { min-height: 62px; }
  .issue-capsule select { grid-column: 2; width: 100%; }
  .issue-camera-btn { grid-column: 3; grid-row: 2; justify-content: center; }
  .issue-capsule .btn { grid-column: 2 / -1; width: 100%; }
  .issue-ai-heading { align-items: stretch; flex-direction: column; }
  .issue-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .issue-metric-card { min-height: 78px; padding: 13px; border-radius: 15px; }
  .issue-metric-card strong { font-size: 24px; }
  .issue-integration-heading { flex-direction: column; }
  .issue-integration-heading .btn { width: 100%; }
  .issue-integration-status { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .issue-wechat-readiness-grid { grid-template-columns: 1fr; }
  .issue-integration-columns { grid-template-columns: 1fr; }
  .issue-integration-map-form { grid-template-columns: 1fr; }
  .issue-integration-map-form label:nth-child(3),.issue-integration-map-form .btn { grid-column: auto; }
  .issue-toolbar { align-items: stretch; flex-direction: column; }
  .issue-register-tabs { display: none; }
  .issue-filter-tabs { display: none !important; }
  .issue-filter-tabs button { flex: 1; padding-inline: 8px; }
  .issue-filter-selects { width: 100%; }
  .issue-filter-selects { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
  .issue-filter-selects select { min-width: 0; flex: 1; }
  #refresh-issues-btn { width: auto !important; min-width: 88px; }
  .issue-filter-selects input[type="search"], #export-issues-btn { display: none !important; }
  .issue-table-wrap { display: none; }
  .issue-card-list { display: grid; gap: 10px; }
  .issue-card { padding: 15px; grid-template-columns: 1fr; gap: 10px; }
  .issue-card h3, .issue-card-description { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .issue-card-side { min-width: 0; align-items: center; flex-direction: row; }
  .issue-form-grid, .issue-type-fields, .issue-inline-fields, .issue-assignment-fields, .issue-detail-summary, .issue-field-grid,.issue-detail-summary.quality-detail .issue-field-grid { grid-template-columns: 1fr; }
  .issue-type-fields-heading { grid-column: auto; flex-direction: column; }
  .issue-grid-wide { grid-column: auto; }
  dialog.issue-dialog[open] { position: fixed !important; inset: 0 !important; width: 100vw !important; max-width: none !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
  .issue-dialog form { min-height: 100%; }
  .mobile-production-dialog form,.mobile-s5-report-dialog form { height: 100%; padding: 0 !important; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
  .mobile-task-dialog form { height: 100%; padding: 0 !important; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
  .task-record-body { padding: 16px; align-content: start; overflow-y: auto; background: #f5f4fb; }
  .task-record-body > label { padding: 15px; border: 1px solid #e4e1f1; border-radius: 17px; background: #fff; }
  .task-record-submitbar small { max-width: 48%; }
  .mobile-record-body { overflow-y: auto; background: #f5f7fb; }
  .issue-dialog-actions { bottom: 0; }
  dialog.issue-detail-dialog[open] { position: fixed !important; inset: 0 !important; width: 100vw !important; max-width: none !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
  .issue-detail-shell { height: 100dvh; max-height: none; }
  .issue-detail-content { padding: 16px 15px 24px; }
  .issue-detail-section { min-width: 0; overflow: hidden; }
  .issue-linked-task { width: 100%; box-sizing: border-box; align-items: stretch; flex-direction: column; }
  .issue-linked-task > span { width: 100%; display: block; }
  .issue-linked-task strong,.issue-linked-task small { width: 100%; writing-mode: horizontal-tb; word-break: break-word; overflow-wrap: anywhere; }
  .issue-linked-task .btn { width: 100%; min-height: 44px; white-space: nowrap; }
  .issue-detail-actions { align-items: stretch; flex-direction: column; }
  .issue-detail-actions > .btn, .issue-action-form, .issue-action-form .btn { width: 100%; }
  .issue-action-form { align-items: stretch; flex-direction: column; }
  .notification-center-dialog { width: 100vw; max-width: none; height: min(82dvh, 760px); max-height: none; margin: auto 0 0; border-radius: 24px 24px 0 0 !important; }
  .notification-center-shell { height: 100%; max-height: none; }
  .notification-center-heading { padding: 18px 16px 13px; }
  .notification-center-actions { padding-inline: 16px; }
  .notification-center-list { padding: 10px 12px calc(18px + env(safe-area-inset-bottom)); }
  .notification-center-item { padding: 13px; }
  dialog.issue-image-preview-dialog[open] { position: fixed !important; inset: 0 !important; width: 100vw !important; max-width: none !important; height: 100dvh !important; max-height: 100dvh !important; margin: 0 !important; border-radius: 0 !important; }
  .issue-image-preview-shell { height: 100dvh; max-height: none; padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); }
  .issue-image-preview-shell img { max-height: none; }
  .issue-image-preview-heading { min-height: 60px; padding: 10px 14px; }
  .issue-image-preview-heading strong { min-width: 0; flex: 1; overflow-wrap: anywhere; }
  .issue-image-preview-heading .btn { width: auto !important; min-width: 76px; flex: 0 0 auto; }
  .admin-role-options,.admin-assignment-form { grid-template-columns: 1fr; }
  #tab-5s .s5-desktop-table { display: none !important; }
  .s5-mobile-list { margin-top: 12px; padding-bottom: 8px; display: grid; gap: 12px; }
  .s5-mobile-empty { padding: 34px 18px; border: 1px dashed #cee0d5; border-radius: 19px; color: #71867a; background: #fff; text-align: center; }
  .s5-mobile-empty.error { color: #a33b32; border-color: #edc8c4; }
  .s5-issue-card { padding: 15px; overflow: hidden; border: 1px solid #dce7e1; border-left: 5px solid #e6574e; border-radius: 20px; background: #fff; box-shadow: 0 8px 22px rgba(36,70,51,.065); }
  .s5-issue-card.fixing { border-left-color: #1677ff; }
  .s5-issue-card.reviewing { border-left-color: #ed930e; }
  .s5-issue-card.closed { border-left-color: #15955b; }
  .s5-issue-card-top,.s5-issue-card-bottom,.s5-issue-people { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .s5-issue-tags { min-width: 0; display: flex; gap: 5px; flex-wrap: wrap; }
  .s5-issue-tags span,.s5-card-status { padding: 5px 8px; border-radius: 999px; color: #526278; background: #eef2f6; font-size: 9px; font-weight: 800; }
  .s5-issue-tags .severity-major { color: #9b6110; background: #fff3dd; }
  .s5-issue-tags .severity-critical,.s5-issue-tags .repeat { color: #a6352e; background: #ffebe8; }
  .s5-card-status.open { color: #a6352e; background: #ffebe8; }
  .s5-card-status.fixing { color: #0d65bf; background: #e9f4ff; }
  .s5-card-status.reviewing { color: #96600b; background: #fff3dd; }
  .s5-card-status.closed { color: #126940; background: #eaf8f0; }
  .s5-issue-main { margin-top: 13px; display:block; }
  .s5-photo-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:11px; }
  .s5-card-photo { width: 88px; height: 88px; position: relative; border-radius: 14px; }
  .s5-photo-compare .s5-card-photo,.s5-photo-compare .s5-card-photo img { width:100%; height:126px; object-fit:cover; }
  .s5-card-photo small { position: absolute; right: 4px; bottom: 4px; left: 4px; padding: 4px; border-radius: 7px; color: #fff; background: rgba(0,0,0,.6); font-size: 8px; text-align: center; }
  .s5-card-photo.placeholder { display: grid; place-items: center; color: #91a097; background: #edf2ef; font-size: 9px; }
  .s5-issue-main h3 { margin: 1px 0 8px; color: #172438; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
  .s5-issue-main p { margin: 4px 0; color: #758399; font-size: 10px; }
  .s5-issue-people { margin-top: 13px; padding: 11px 12px; border-radius: 14px; background: #f5f7f9; }
  .s5-issue-people span { min-width: 0; flex: 1; display: grid; gap: 3px; }
  .s5-issue-people span + span { padding-left: 12px; border-left: 1px solid #dfe5e8; }
  .s5-issue-people small { color: #8a96a3; font-size: 9px; }
  .s5-issue-people strong { color: #27374a; font-size: 12px; overflow-wrap: anywhere; }
  .s5-card-note.rejected { color:#a61b1b; background:#fff0f0; }
  .s5-card-note { margin: 10px 0 0; padding: 9px 10px; border-radius: 11px; color: #1764ad; background: #edf6ff; font-size: 10px; line-height: 1.45; }
  .s5-card-note.success { color: #176b45; background: #edf8f2; }
  .s5-issue-card-bottom { margin-top: 13px; padding-top: 11px; border-top: 1px solid #edf0f2; align-items: flex-end; }
  .s5-issue-card-bottom time { color: #96a0ad; font-size: 9px; }
  .s5-card-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
  .s5-card-actions .btn { width: auto !important; min-width: 70px; min-height: 34px; margin: 0 !important; padding: 6px 10px !important; font-size: 10px !important; }
  .s5-card-actions .btn[onclick^="delete5S"] { color: #b7352d !important; background: #ffebe8 !important; border-color: #ffd3ce !important; }
  .admin-assignment-form .btn { grid-column: auto; }
}

/* Compact phones need touch-friendly rows instead of compressed mini cards. */
@media (max-width: 420px) {
  .mobile-issue-entry-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .mobile-issue-entry {
    min-height: 86px;
    padding: 13px 14px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 13px;
  }

  .mobile-entry-icon {
    width: 48px;
    height: 48px;
    grid-column: 1;
    grid-row: 1 / 3;
    border-radius: 15px;
  }

  .mobile-issue-entry strong {
    margin: 0;
    align-self: end;
  }

  .mobile-issue-entry small {
    margin: 2px 0 0;
    align-self: start;
  }

  .mobile-s5-actions {
    grid-template-columns: 1fr;
  }

  .mobile-s5-actions button {
    min-height: 82px;
    padding: 13px 14px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 13px;
    text-align: left;
  }

  .mobile-s5-actions button span {
    width: 44px;
    height: 44px;
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .mobile-s5-actions strong,
  .mobile-s5-actions small {
    margin: 0;
    grid-column: 2;
  }

  .mobile-s5-actions strong { align-self: end; font-size: 14px; }
  .mobile-s5-actions small { margin-top: 2px; align-self: start; font-size: 10px; }

  #tab-5s .plan-controls > div:first-child,
  .mobile-record-two-columns {
    grid-template-columns: 1fr;
  }

  .mobile-record-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .s5-issue-card-bottom { align-items: stretch; flex-direction: column; }
  .s5-issue-card-bottom time { width: 100%; }
  .s5-card-actions { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .s5-card-actions .btn { width: 100% !important; min-width: 0; white-space: nowrap; writing-mode: horizontal-tb; }
}

@media (min-width: 761px) {
  .issue-capsule, .issue-capsule-hint,.mobile-production-dialog { display: none; }
  .issue-hero { min-height: 132px; }
}
