:root { --header-bg:#f8f9fa; --vvh: 100dvh; }
    *, *::before, *::after { box-sizing: border-box; }
    html, body { height:100%; }
    html {
      -webkit-text-size-adjust: 100%;
      text-size-adjust: 100%;
      overflow-x: clip;
      overflow-y: hidden;
    }
    body{
      font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:#f6f7f9;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      overscroll-behavior-x: none;
      -webkit-tap-highlight-color: rgba(15, 39, 68, .12);
    }
    img, svg, video, canvas { max-width: 100%; }
    img { height: auto; }
    button, a, .nav-link, .btn, summary { touch-action: manipulation; }
    .page-wrap {
      max-width: 1200px;
      margin: 0 auto;
      padding: clamp(.75rem, 3vw, 1.5rem);
      padding-left: max(clamp(.75rem, 3vw, 1.5rem), env(safe-area-inset-left));
      padding-right: max(clamp(.75rem, 3vw, 1.5rem), env(safe-area-inset-right));
      width: 100%;
      box-sizing: border-box;
    }
    #topBar.page-wrap {
      flex-shrink: 0;
      padding-top: max(.65rem, env(safe-area-inset-top));
      padding-bottom: 0;
    }
    #appRoot.page-wrap {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
    }
    .zone-plan-root.page-wrap {
      max-width: none;
      width: 100%;
      min-width: 0;
      flex: 1 1 auto;
      padding: .85rem max(clamp(.75rem, 2.5vw, 1.15rem), env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(clamp(.75rem, 2.5vw, 1.15rem), env(safe-area-inset-left));
      display: flex;
      flex-direction: column;
      height: auto;
      min-height: 0;
      overflow: hidden;
    }
    .zone-plan-root > .nav-tabs { flex-shrink: 0; margin-bottom: .75rem !important; }
    .zone-plan-root > .tab-content {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
      overflow: hidden;
    }
    #swManageTab.tab-pane.active.show {
      flex: 1;
      min-height: 0;
      overflow: auto;
    }
    #swReportsTab.tab-pane { display: none; }
    #swReportsTab.tab-pane.active.show {
      display: flex !important;
      flex: 1;
      flex-direction: column;
      min-height: 0;
      overflow: hidden;
    }
    #swPlanTab.tab-pane { display: none; }
    #swPlanTab.tab-pane.active.show {
      display: flex !important;
      flex: 1;
      flex-direction: column;
      min-height: 0;
    }
    #stPlanTab.tab-pane,
    #stManageTab.tab-pane,
    #stReportsTab.tab-pane,
    #bbsPlanTab.tab-pane,
    #bbsReportsTab.tab-pane,
    #bbsManageTab.tab-pane { display: none; }
    #stPlanTab.tab-pane:not(.active),
    #stManageTab.tab-pane:not(.active),
    #stReportsTab.tab-pane:not(.active),
    #bbsPlanTab.tab-pane:not(.active),
    #bbsReportsTab.tab-pane:not(.active),
    #bbsManageTab.tab-pane:not(.active) {
      display: none !important;
      flex: 0 0 0 !important;
      height: 0 !important;
      min-height: 0 !important;
      overflow: hidden !important;
    }
    #stPlanTab.tab-pane.active.show,
    #bbsPlanTab.tab-pane.active.show {
      display: flex !important;
      flex: 1;
      flex-direction: column;
      min-height: 0;
    }
    #stReportsTab.tab-pane.active.show,
    #bbsReportsTab.tab-pane.active.show {
      display: flex !important;
      flex: 1;
      flex-direction: column;
      min-height: 0;
      overflow: auto;
    }
    #stManageTab.tab-pane.active.show,
    #bbsManageTab.tab-pane.active.show {
      display: flex !important;
      flex: 1;
      flex-direction: column;
      min-height: 0;
      overflow: hidden;
    }
    #safetyTalkRoot:not(.is-auditor-view) #stAuditorHome,
    #bbsRoot:not(.is-auditor-view) #bbsAuditorHome {
      display: none !important;
      height: 0 !important;
      overflow: hidden !important;
    }
    #stManageTab .mg-section:not(.d-none),
    #bbsManageTab .mg-section:not(.d-none) {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: auto;
    }
    #stManageTab .mg-section:not(.d-none) .st-talk-catalog,
    #bbsManageTab .mg-section:not(.d-none) .st-talk-catalog {
      flex: 1;
      min-height: 0;
      overflow: auto;
    }
    .sw-plan-shell {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
      gap: .7rem;
    }
    .sw-plan-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: .85rem 1rem;
      flex-shrink: 0;
    }

    .st-year-shell {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-height: 0;
      gap: .85rem;
    }
    .st-year-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: .85rem 1.25rem;
      flex-shrink: 0;
      padding: .15rem 0 .85rem;
      border-bottom: 1px solid #e2e8f0;
      width: 100%;
    }
    .st-year-kicker {
      font-size: .68rem;
      letter-spacing: .16em;
      text-transform: uppercase;
      color: #1e3a8a;
      font-weight: 700;
      margin-bottom: .2rem;
    }
    .st-year-title {
      font-size: 1.35rem;
      font-weight: 700;
      letter-spacing: -.02em;
      color: #0f2744;
      margin: 0 0 .2rem;
      line-height: 1.2;
    }
    .st-year-sub { font-size: .82rem; color: #64748b; }
    .st-year-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: flex-end;
      gap: .55rem .65rem;
      max-width: 100%;
    }
    #stRegenBtn, #stPublishBtn, #stExcelBtn { flex-shrink: 0; }
    .st-year-filter { min-width: 9rem; }
    .st-year-filter .form-select { min-width: 9rem; }
    .st-year-nav {
      display: flex;
      align-items: center;
      gap: .35rem;
      background: #fff;
      border: 1px solid #dbe3ee;
      border-radius: 12px;
      padding: .28rem;
      box-shadow: 0 1px 2px rgba(15, 39, 68, .04);
    }
    .st-year-nav .btn { min-width: 36px; border: 0; }
    .st-year-label {
      min-width: 4.6rem;
      text-align: center;
      font-weight: 700;
      font-size: 1.15rem;
      letter-spacing: .04em;
      color: #0f2744;
      font-variant-numeric: tabular-nums;
    }
    .st-rep-week-label {
      min-width: 6.8rem;
      font-size: 1rem;
      letter-spacing: 0;
    }
    .st-year-legend {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: .55rem 1.05rem;
      font-size: .78rem;
      color: #64748b;
      flex-shrink: 0;
      padding: .45rem .75rem;
      background: #fff;
      border: 1px solid #e8edf3;
      border-radius: 10px;
    }
    .st-year-legend-note { margin-left: auto; color: #94a3b8; font-variant-numeric: tabular-nums; }
    .st-dot {
      display: inline-block;
      width: .55rem;
      height: .55rem;
      border-radius: 50%;
      margin-right: .3rem;
      vertical-align: middle;
      background: #cbd5e1;
    }
    .st-dot.is-draft { background: #d97706; }
    .st-dot.is-published { background: #1e3a8a; }
    .st-dot.is-done { background: #15803d; }
    .st-dot.is-missed { background: #b91c1c; }
    .st-year-cal {
      flex: 1;
      min-height: 0;
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: .9rem;
      padding-bottom: .5rem;
    }
    .st-q {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 14px;
      box-shadow: 0 1px 2px rgba(15, 39, 68, .045);
      overflow: visible;
      border-left: 3px solid #1e3a8a;
    }
    .st-q:nth-child(2) { border-left-color: #334155; }
    .st-q:nth-child(3) { border-left-color: #0f766e; }
    .st-q:nth-child(4) { border-left-color: #9a3412; }
    .st-q-head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: .75rem;
      padding: .7rem 1rem .65rem;
      background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
      border-bottom: 1px solid #e8edf3;
      border-radius: 0 14px 0 0;
    }
    .st-q-title {
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: #0f2744;
      margin: 0;
    }
    .st-q-range { font-size: .78rem; color: #64748b; font-variant-numeric: tabular-nums; }
    .st-week-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .45rem;
      padding: .7rem .75rem .85rem;
      width: 100%;
    }
    .st-week-card {
      appearance: none;
      text-align: left;
      border: 1px solid #e2e8f0;
      background: #fbfdff;
      border-radius: 11px;
      padding: .65rem .7rem .6rem;
      min-height: 128px;
      display: flex;
      flex-direction: column;
      gap: .18rem;
      cursor: pointer;
      transition: border-color .15s, box-shadow .15s, transform .15s;
      color: inherit;
      position: relative;
      min-width: 0;
      overflow: hidden;
    }
    .st-week-card:hover {
      border-color: #94a3b8;
      box-shadow: 0 8px 20px rgba(15, 39, 68, .08);
      transform: translateY(-1px);
    }
    .st-week-card.is-now {
      border-color: #1e3a8a;
      box-shadow: 0 0 0 1px #1e3a8a inset, 0 8px 20px rgba(30, 58, 138, .12);
      background: #f8fbff;
    }
    .st-week-card.is-empty { background: #fff; border-style: dashed; }
    .st-week-card.is-draft { background: #fffbeb; border-color: #f6d58a; }
    .st-week-card.is-published { background: #f4f7fb; border-color: #c7d2e5; }
    .st-week-card.is-done { background: #f3faf5; border-color: #b7e0c4; }
    .st-week-card.is-missed { background: #fdf6f6; border-color: #e8c5c5; }
    .st-week-card.is-dim { opacity: .34; }
    .st-week-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .35rem;
    }
    .st-week-no {
      font-size: .66rem;
      font-weight: 700;
      letter-spacing: .12em;
      color: #64748b;
    }
    .st-week-card.is-now .st-week-no { color: #1e3a8a; }
    .st-week-now {
      font-size: .58rem;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      color: #fff;
      background: #1e3a8a;
      border-radius: 999px;
      padding: .12rem .4rem;
      white-space: nowrap;
    }
    .st-week-dates {
      font-size: .9rem;
      font-weight: 700;
      color: #0f2744;
      letter-spacing: -.02em;
      font-variant-numeric: tabular-nums;
    }
    .st-week-status {
      font-size: .66rem;
      font-weight: 700;
      letter-spacing: .05em;
      text-transform: uppercase;
      color: #94a3b8;
    }
    .st-week-status.is-ratio {
      letter-spacing: .02em;
      text-transform: none;
      font-variant-numeric: tabular-nums;
      font-size: .72rem;
    }
    .st-week-card.is-draft .st-week-status { color: #b45309; }
    .st-week-card.is-published .st-week-status { color: #1e3a8a; }
    .st-week-card.is-done .st-week-status { color: #15803d; }
    .st-week-card.is-missed .st-week-status { color: #b91c1c; }
    .st-week-people {
      margin-top: auto;
      font-size: .76rem;
      color: #334155;
      line-height: 1.35;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .st-week-person.is-done { color: #15803d; font-weight: 700; }
    .st-week-person-row.is-done {
      background: #f3faf5;
      color: #15803d;
    }
    .st-week-person-row.is-done .fw-semibold { color: #15803d; }
    .st-week-person-state { color: #15803d; font-weight: 650; }
    .st-week-topic {
      font-size: .78rem;
      font-weight: 650;
      color: #0f2744;
      line-height: 1.3;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .st-week-card.is-empty .st-week-topic { color: #94a3b8; font-weight: 500; }
    .st-talk-catalog {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: .7rem;
      align-content: start;
    }
    .st-talk-item {
      appearance: none;
      text-align: left;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .85rem .95rem;
      cursor: pointer;
    }
    .st-talk-item:hover { border-color: #94a3b8; }
    .st-talk-item-kicker {
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .1em;
      color: #1e3a8a;
      margin-bottom: .25rem;
    }
    .st-talk-item-title { font-weight: 650; color: #0f2744; line-height: 1.35; }
    #stWeekTopic option:disabled { color: #94a3b8; }
    .st-talk-sheet .st-talk-h {
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .04em;
      color: #1e3a8a;
      margin: .85rem 0 .25rem;
    }
    .st-talk-sheet .st-talk-p { margin: 0 0 .35rem; color: #334155; font-size: .9rem; }
    .st-talk-view-card {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 16px;
      padding: 1.25rem 1.35rem 1.4rem;
      box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
    }
    #bbsObsView.is-7k {
      width: 100%;
      max-width: none;
      display: flex;
      flex-direction: column;
      min-height: 0;
      flex: 1;
    }
    .bbs-7k-screen {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 1.1rem;
      flex: 1;
      min-height: 0;
    }
    .bbs-7k-screen img {
      display: block;
      width: 100%;
      height: auto;
      max-height: calc(100dvh - 11rem);
      object-fit: contain;
      background: #fff;
      border-radius: 18px;
      border: 1px solid #e2e8f0;
      box-shadow: 0 18px 50px rgba(15, 39, 68, .14);
      padding: .7rem .85rem;
    }
    .bbs-7k-actions {
      display: flex;
      justify-content: flex-end;
      flex-wrap: wrap;
      gap: .65rem;
      flex-shrink: 0;
      position: sticky;
      bottom: 0;
      background: linear-gradient(180deg, transparent, #f6f7f9 28%);
      padding: .85rem 0 .15rem;
    }
    .bbs-7k-screen.is-card {
      align-items: center;
    }
    .bbs-7k-screen.is-card.has-notes img {
      max-height: calc(100dvh - 22rem);
    }
    .bbs-7k-notes {
      width: 100%;
      max-width: min(420px, 100%);
    }
    .bbs-7k-notes textarea {
      min-height: 110px;
      border-radius: 12px;
    }
    .bbs-feedback-box {
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .9rem 1rem 1rem;
      margin-bottom: 1rem;
    }
    .bbs-feedback-label {
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
      color: #1e4a7a;
      margin-bottom: .35rem;
    }
    .bbs-feedback-text {
      color: #0f172a;
      white-space: pre-wrap;
      line-height: 1.45;
    }
    .bbs-7k-actions .btn {
      min-width: 7.8rem;
      min-height: 46px;
      font-weight: 750;
      border-radius: 12px;
    }
    @media (max-width: 640px) {
      .bbs-7k-screen img {
        padding: .35rem;
        border-radius: 12px;
      }
      .bbs-7k-screen.is-card img { padding: 0; }
      .bbs-7k-actions { display: flex; }
      .bbs-7k-actions .btn { min-width: 0; width: 100%; }
    }
    .st-talk-checks {
      display: flex;
      flex-direction: column;
      gap: .55rem;
      margin: 1.15rem 0 1rem;
    }
    .st-check {
      display: flex;
      align-items: center;
      gap: .7rem;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .7rem .85rem;
      font-weight: 650;
      color: #0f2744;
      cursor: pointer;
    }
    .st-check input {
      width: 1.2rem;
      height: 1.2rem;
      accent-color: #1e3a8a;
      flex-shrink: 0;
    }
    .st-check.is-off { cursor: default; opacity: .92; }
    .bbs-obs-q {
      padding: .85rem 0;
      border-bottom: 1px solid #eef2f6;
    }
    .bbs-obs-q.is-miss {
      background: #fff5f5;
      border-radius: 12px;
      outline: 2px solid #dc2626;
      outline-offset: 4px;
    }
    .bbs-obs-q:last-of-type { border-bottom: 0; }
    .bbs-obs-q-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: .75rem;
      margin-bottom: .35rem;
    }
    .bbs-obs-pts {
      flex-shrink: 0;
      font-size: .78rem;
      font-weight: 700;
      color: #1e4a7a;
      background: #eef4ff;
      border-radius: 999px;
      padding: .12rem .55rem;
      white-space: nowrap;
    }
    .bbs-obs-pts.is-off {
      background: #eef2f6;
      color: #64748b;
      font-weight: 600;
    }
    .bbs-obs-score {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: .35rem .75rem;
      margin: 1rem 0 .25rem;
      padding: .85rem 1rem;
      border-radius: 12px;
      background: #f0f7ff;
      border: 1px solid #d7e6f8;
    }
    .bbs-obs-score strong {
      font-size: 1.35rem;
      color: #0f2744;
    }
    .bbs-obs-score span {
      color: #475569;
      font-size: .9rem;
    }
    .sw-rate-row input:checked + .bbs-guvenli { background: #dcfce7; border-color: #16a34a; color: #166534; }
    .sw-rate-row input:checked + .bbs-guvensiz { background: #fee2e2; border-color: #dc2626; color: #991b1b; }
    .sw-rate-row input:checked + .bbs-disi { background: #eef2f6; border-color: #64748b; color: #334155; }
    .st-talk-notes {
      min-height: 96px;
      resize: vertical;
    }
    .st-sign-box {
      border: 1px dashed #94a3b8;
      border-radius: 12px;
      padding: .85rem;
      background: #f8fafc;
      margin: .4rem 0 1.1rem;
    }
    .st-sign-preview {
      width: 100%;
      min-height: 120px;
      border-radius: 10px;
      overflow: hidden;
      background: #e2e8f0;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #64748b;
      font-size: .85rem;
      margin-bottom: .65rem;
    }
    .st-sign-preview img {
      width: 100%;
      max-height: 220px;
      object-fit: contain;
      display: block;
      background: #fff;
    }
    .st-complete-hint { margin: .55rem 0 0; }
    #stWeekTopicPreview {
      max-height: 220px;
      overflow: auto;
    }
    @media (min-width: 700px) {
      .st-week-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    }
    @media (min-width: 1100px) {
      .st-week-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    }
    @media (min-width: 1600px) {
      .st-week-grid { grid-template-columns: repeat(13, minmax(0, 1fr)); }
      .st-week-card { min-height: 132px; padding: .55rem .5rem .55rem; }
      .st-week-dates { font-size: .78rem; }
    }
    @media (max-width: 767px) {
      .st-year-legend-note { margin-left: 0; width: 100%; }
      .st-year-filter, .st-year-filter .form-select { min-width: 0; width: 100%; }
      .st-year-nav { width: 100%; justify-content: space-between; }
      .st-year-title { font-size: 1.15rem; }
    }

    .sw-month-nav {
      display: flex;
      align-items: center;
      gap: .4rem;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .28rem .35rem;
    }
    .sw-month-nav .btn { min-width: 36px; }
    .sw-month-label {
      min-width: 9.5rem;
      text-align: center;
      font-weight: 700;
      font-size: 1.05rem;
      color: #0f2744;
      letter-spacing: .01em;
      padding: 0 .35rem;
    }
    .sw-plan-legend {
      display: flex;
      flex-wrap: wrap;
      gap: .75rem 1.1rem;
      align-items: center;
      font-size: .86rem;
      color: #475569;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: .45rem .85rem;
      flex-shrink: 0;
    }
    .sw-month-cal {
      flex: 1 1 auto;
      min-height: 0;
      min-width: 0;
      display: block;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      background: #fff;
      border: 1px solid #dbe3ee;
      border-radius: 14px;
      box-shadow: 0 8px 24px rgba(15, 39, 68, .06);
    }
    .sw-month-table {
      --sw-zone-row-h: 5.6rem;
      width: 100%;
      max-width: 100%;
      height: auto;
      min-width: 0;
      border-collapse: separate;
      border-spacing: 0;
      table-layout: fixed;
    }
    .sw-month-table thead { height: 2.35rem; }
    .sw-month-table thead th {
      position: sticky;
      top: 0;
      z-index: 3;
      background: #f4f7fb;
      border-bottom: 1px solid #d7e0ea;
      border-right: 1px solid #edf1f6;
      font-weight: 600;
      color: #334155;
      padding: .22rem .08rem;
      text-align: center;
      overflow: hidden;
    }
    .sw-month-table thead th.sw-zone-col,
    .sw-month-table .sw-zone-label {
      position: sticky;
      left: 0;
      z-index: 4;
      width: 5.6rem;
      min-width: 5.6rem;
      max-width: 5.6rem;
      text-align: left;
      background: #0f2744;
      color: #fff;
      border-right: 1px solid #1b3c61;
    }
    .sw-month-table thead th.sw-zone-col { z-index: 5; padding: .35rem .5rem; }
    .sw-month-table .sw-day-head {
      width: auto;
      min-width: 0;
      font-size: .62rem;
      line-height: 1.1;
    }
    .sw-month-table .sw-day-head.is-today {
      background: #dbeafe;
      color: #1e3a8a;
    }
    .sw-month-table .sw-day-num {
      display: block;
      font-size: .8rem;
      font-weight: 700;
      color: #0f2744;
      line-height: 1.15;
    }
    .sw-month-table .sw-day-head.is-today .sw-day-num { color: #1e3a8a; }
    .sw-month-table .sw-day-dow {
      display: block;
      font-size: .58rem;
      color: #64748b;
      text-transform: uppercase;
      letter-spacing: 0;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .sw-month-table td {
      border-right: 1px solid #edf1f6;
      border-bottom: 1px solid #edf1f6;
      vertical-align: top;
      padding: .22rem .15rem;
      height: var(--sw-zone-row-h);
      min-height: var(--sw-zone-row-h);
      min-width: 0;
      overflow: hidden;
    }
    .sw-month-table tbody tr { height: var(--sw-zone-row-h); }
    .sw-month-table .sw-zone-label {
      padding: .5rem .45rem;
      vertical-align: middle;
      z-index: 4;
      overflow: hidden;
    }
    .sw-zone-code {
      display: block;
      font-weight: 800;
      font-size: .82rem;
      letter-spacing: .02em;
      line-height: 1.2;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .sw-zone-sublabel {
      font-size: .68rem;
      opacity: .78;
      font-weight: 500;
      line-height: 1.2;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      white-space: normal;
    }
    .sw-month-table td.is-today { background: #f8fbff; }
    .sw-month-table .cell-wrap {
      min-height: 0;
      height: 100%;
      align-content: flex-start;
      align-items: stretch;
      gap: .2rem;
      overflow: hidden;
    }
    .sw-month-table .name-chip {
      display: flex;
      width: 100%;
      max-width: 100%;
      min-width: 0;
      justify-content: flex-start;
      align-items: flex-start;
      white-space: normal !important;
      font-size: .68rem;
      line-height: 1.2;
      padding: .12rem .28rem;
      border-radius: 8px;
    }
    .sw-month-table .name-chip span:first-child {
      flex: 1 1 auto;
      min-width: 0;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      white-space: normal !important;
      word-break: break-word;
      line-height: 1.2;
    }
    .sw-month-table .cell-add {
      width: 22px;
      height: 22px;
      line-height: 20px;
      flex: 0 0 22px;
    }
    .sw-month-table td.sw-empty-cell { cursor: pointer; }
    .sw-month-table td.sw-empty-cell:hover { background: #f1f5f9; }
    .sw-month-table td.sw-empty-cell.is-today:hover { background: #e8f0fe; }
    .sw-month-table .sw-empty-slot { cursor: pointer; }

    .table thead th{position:sticky; top:0; background:var(--header-bg); z-index:2}
    .plan-zone-row td {
      background: #0f2744;
      color: #fff;
      font-weight: 700;
      font-size: .82rem;
      letter-spacing: .03em;
      padding: .45rem .75rem;
    }
    .plan-zone-row td.area-col { background: #0f2744; color: #fff; }
    .sw-zone-list { display: flex; flex-direction: column; gap: 1rem; }
    .sw-zone-card { border: 1px solid #e2e8f0; border-radius: 14px; background: #fff; box-shadow: 0 4px 14px rgba(15,23,42,.04); overflow: hidden; }
    .sw-zone-card.is-inactive { opacity: .72; }
    .sw-zone-head {
      display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap;
      padding: .85rem 1rem; background: #f8fafc; border-bottom: 1px solid #e2e8f0;
    }
    .sw-zone-title { font-weight: 700; color: #0f2744; }
    .sw-zone-sub { font-size: .82rem; color: #64748b; }
    .sw-quota-cell { font-variant-numeric: tabular-nums; white-space: nowrap; color: #0f2744; }
    .sw-quota-cell .sw-quota-num { font-weight: 700; }
    .sw-quota-cell .sw-quota-unit { font-size: .78rem; color: #64748b; font-weight: 500; }
    .name-chip{border:1px solid rgba(0,0,0,.1); background:#f5f5f5; border-radius:999px; padding:.15rem .5rem; cursor:pointer; display:inline-flex; gap:.35rem; align-items:center;}
    .name-chip:hover{background:#e9ecef}
    .done-ico{font-size:.9rem; color:#198754; line-height:1;}
    .small-muted{font-size:.86rem; color:#6c757d}
    .cell-wrap{display:flex; flex-wrap:wrap; gap:.35rem}
    .q-missing{ border-color:#dc3545 !important; box-shadow:0 0 0 3px rgba(220,53,69,.14) !important; }
    .pv-img{height:64px; width:64px; object-fit:cover; border:1px solid rgba(0,0,0,.1); border-radius:.5rem}
    .pv-item{position:relative; display:inline-block}
    .pv-del{position:absolute; top:-7px; right:-7px; width:22px; height:22px; border-radius:50%; border:2px solid #fff; background:#dc3545; color:#fff; font-size:13px; line-height:18px; text-align:center; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.2)}
    .pv-del:hover{ background:#bb2d3b; }
    .ph-box{border:1px dashed #cbd5e1; border-radius:.75rem; padding:.65rem .85rem; background:#f8fafc;}
    .ph-title{font-size:.82rem; font-weight:600; color:#475569}

    /* Denetim formu */
    .audit-modal .modal-header { border-bottom:1px solid #e2e8f0; padding:1rem 1.25rem; }
    .audit-modal .modal-footer { border-top:1px solid #e2e8f0; background:#f8fafc; padding:.85rem 1.25rem; }
    .audit-progress { height:8px; border-radius:999px; background:#e2e8f0; }
    .audit-progress .progress-bar { border-radius:999px; transition:width .25s ease; }
    .audit-accordion .accordion-button { font-weight:700; font-size:.92rem; }
    .audit-accordion .accordion-button:not(.collapsed) { background:#eef4ff; color:#0d47a1; }
    .audit-q-card {
      background:#fff; border:1px solid #e2e8f0; border-radius:12px;
      padding:1rem 1.1rem; transition:border-color .2s, box-shadow .2s;
    }
    .audit-q-card.q-answered { border-color:#b8dfc8; background:#fcfffe; }
    .audit-q-header { display:flex; gap:.75rem; align-items:flex-start; margin-bottom:.85rem; }
    .audit-q-num {
      flex-shrink:0; width:30px; height:30px; border-radius:8px;
      background:#eef2f6; color:#475569; font-weight:700; font-size:.82rem;
      display:flex; align-items:center; justify-content:center;
    }
    .audit-q-card.q-answered .audit-q-num { background:#d1e7dd; color:#0f5132; }
    .audit-q-text { flex:1; font-weight:600; color:#1e293b; line-height:1.45; font-size:.95rem; }
    .audit-q-status { flex-shrink:0; font-size:.72rem; font-weight:600; padding:.2rem .5rem; border-radius:999px; background:#f1f5f9; color:#64748b; }
    .audit-q-card.q-answered .audit-q-status { background:#d1e7dd; color:#0f5132; }
    .audit-answer-group .btn { min-width:78px; font-weight:600; }
    .audit-note-input { max-width:320px; }
    .audit-missing-list .list-group-item { cursor:pointer; border-left:3px solid transparent; }
    .audit-missing-list .list-group-item:hover { border-left-color:#dc3545; background:#fff5f5; }
    .audit-section-badge { font-size:.72rem; font-weight:600; margin-left:.5rem; }
    .audit-comment-box {
      background:#fff; border:1px solid #e2e8f0; border-radius:12px;
      padding:1rem 1.1rem;
    }
    .audit-comment-box textarea { resize:vertical; min-height:100px; }

    .badge-soft{background:#eef2f6; color:#334155; border:1px solid #e2e8f0}
    .score-pill{min-width:44px; display:inline-flex; justify-content:center}
    .chip-locked{ cursor:not-allowed; opacity:.55 }
    .name-chip.status-planned { background:#e7f1ff; border-color:#b6d4fe; color:#084298; }
    .name-chip.status-in_progress { background:#fff3cd; border-color:#ffe69c; color:#664d03; }
    .name-chip.status-completed { background:#d1e7dd; border-color:#a3cfbb; color:#0f5132; }
    .name-chip.status-missed { background:#f8d7da; border-color:#f1aeb5; color:#842029; }
    .status-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:.35rem; vertical-align:middle; }
    .status-dot.status-planned { background:#0d6efd; }
    .status-dot.status-in_progress { background:#ffc107; }
    .status-dot.status-completed { background:#198754; }
    .status-dot.status-missed { background:#dc3545; }
    .cell-add { border:1px dashed #adb5bd; background:#fff; color:#6c757d; border-radius:999px; width:28px; height:28px; line-height:26px; padding:0; }
    .inactive-badge { font-size:.7rem; }

    /* Login — tam ekran arka plan */
    #loginScreen {
      position:fixed; inset:0; z-index:9999; overflow:auto;
    }
    .login-bg {
      position:fixed; inset:0;
      background:
        url('../images/login-hero.jpg') center center / cover no-repeat,
        linear-gradient(145deg, #0f2744 0%, #1e4a7a 50%, #163556 100%);
    }
    .login-scrim {
      position:fixed; inset:0;
      background:linear-gradient(
        135deg,
        rgba(15,23,42,.72) 0%,
        rgba(15,23,42,.45) 45%,
        rgba(15,23,42,.65) 100%
      );
    }
    .login-content {
      position:relative; z-index:1;
      min-height:100vh; min-height:100dvh;
      display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      gap:clamp(1.25rem, 3vh, 2rem);
      padding:
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-top))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-right))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-bottom))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-left));
    }
    .login-brand { text-align:center; color:#fff; }
    .login-hero-brand {
      font-size:clamp(1.75rem, 5vw, 2.75rem); font-weight:800;
      letter-spacing:.14em; line-height:1.1;
      text-shadow:0 2px 24px rgba(0,0,0,.35);
    }
    .login-hero-tagline {
      font-size:clamp(.95rem, 2.2vw, 1.15rem);
      opacity:.95; margin-top:.5rem;
      text-shadow:0 1px 12px rgba(0,0,0,.3);
    }
    .login-card{
      width:min(420px, 100%);
      border:1px solid rgba(255,255,255,.25) !important;
      box-shadow:0 24px 60px rgba(15,23,42,.35) !important;
      border-radius:16px;
      background:rgba(255,255,255,.97) !important;
      backdrop-filter:blur(8px);
    }
    .login-logo{ height:64px; width:auto; }
    .brand-title{ letter-spacing:.3px; }
    .topbar{
      display:flex; gap:.75rem; align-items:center; justify-content:space-between;
      flex-wrap: wrap;
    }
    #mainTabs, #swMainTabs, #stMainTabs {
      flex-wrap: nowrap;
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    #mainTabs::-webkit-scrollbar,
    #swMainTabs::-webkit-scrollbar,
    #stMainTabs::-webkit-scrollbar { display: none; }
    #mainTabs .nav-link, #swMainTabs .nav-link, #stMainTabs .nav-link { white-space: nowrap; }

    /* Modül seçimi — giriş sonrası 3 pencere */
    #moduleScreen {
      position:fixed; inset:0; z-index:9998; overflow:auto;
    }
    .module-content {
      position:relative; z-index:1;
      min-height:100vh; min-height:100dvh;
      display:flex; flex-direction:column;
      justify-content:center;
      gap:clamp(1.5rem, 4vh, 2.5rem);
      padding:
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-top))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-right))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-bottom))
        max(clamp(1rem, 4vw, 2.5rem), env(safe-area-inset-left));
      max-width:1120px; margin:0 auto;
    }
    .module-top {
      display:flex; flex-wrap:wrap; align-items:flex-end;
      justify-content:space-between; gap:1rem;
    }
    .module-user {
      display:flex; align-items:center; gap:.75rem;
    }
    .module-grid {
      display:grid;
      grid-template-columns:1fr;
      gap:1.15rem;
    }
    @media (min-width: 640px) {
      .module-grid { grid-template-columns:repeat(2, 1fr); }
      .module-card { min-height: 220px; padding: 1.25rem 1.1rem 1.1rem; }
    }
    @media (min-width: 1024px) {
      .module-grid { grid-template-columns:repeat(3, 1fr); }
      .module-card { min-height: 260px; padding: 1.6rem 1.5rem 1.35rem; }
    }
    .module-card {
      display:flex; flex-direction:column; align-items:flex-start;
      text-align:left; gap:.45rem;
      width:100%;
      appearance:none; -webkit-appearance:none;
      cursor:pointer;
      font-family:inherit;
      min-height:260px;
      padding:1.6rem 1.5rem 1.35rem;
      border:1px solid rgba(255,255,255,.28);
      border-radius:18px;
      background:rgba(255,255,255,.97);
      box-shadow:0 24px 60px rgba(15,23,42,.32);
      color:#1e293b;
      transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }
    .module-card:hover, .module-card:focus-visible {
      transform:translateY(-6px);
      border-color:#8bb7f5;
      box-shadow:0 28px 56px rgba(13,110,253,.22);
      outline:none;
    }
    .module-card-icon {
      width:48px; height:48px; color:#0d47a1; margin-bottom:.35rem;
    }
    .module-card-icon svg { width:48px; height:48px; display:block; }
    .module-card-kicker {
      font-size:.72rem; font-weight:800; letter-spacing:.12em;
      color:#0d6efd; text-transform:uppercase;
    }
    .module-card-title {
      font-size:1.28rem; font-weight:800; line-height:1.2;
    }
    .module-card-desc {
      font-size:.92rem; color:#64748b; line-height:1.45; flex:1;
    }
    .module-card-cta {
      font-size:.88rem; font-weight:700; color:#0d47a1; margin-top:.5rem;
    }
    .module-card.is-locked {
      opacity:.78;
      cursor:not-allowed;
      background:rgba(248,250,252,.96);
    }
    .module-card.is-locked:hover, .module-card.is-locked:focus-visible {
      transform:none;
      border-color:rgba(255,255,255,.28);
      box-shadow:0 16px 36px rgba(15,23,42,.2);
    }
    .module-card.is-locked .module-card-icon,
    .module-card.is-locked .module-card-kicker,
    .module-card.is-locked .module-card-cta { color:#64748b; }
    .module-pill {
      font-size:.7rem; font-weight:700; letter-spacing:.02em;
      border-radius:999px; padding:.15rem .5rem;
      background:#eef4ff; color:#084298; border:1px solid #cfe2ff;
    }
    .ep-mod-box {
      border:1px solid #e2e8f0; border-radius:12px;
      padding:.85rem 1rem; background:#f8fafc; margin-bottom:.75rem;
    }
    .module-home-hero {
      display:flex; align-items:flex-start; gap:1rem;
      margin-bottom:1.25rem;
    }
    .module-home-badge {
      flex-shrink:0; width:52px; height:52px; border-radius:14px;
      background:#0f2744; color:#fff; font-weight:800;
      display:flex; align-items:center; justify-content:center;
    }
    .module-home-panel {
      background:#fff; border:1px solid #e2e8f0; border-radius:16px;
      padding:1.5rem; box-shadow:0 4px 14px rgba(15,23,42,.04);
    }
    .module-home-empty { color:#475569; }

    .zone-plan-root.is-auditor-view {
      min-width: 0;
      max-width: 720px;
      width: 100%;
      margin: 0 auto;
      height: auto;
      min-height: 0;
      overflow: auto;
    }
    #bbsRoot.is-auditor-view.is-7k-open {
      max-width: min(1280px, 100%);
    }
    #bbsRoot.is-auditor-view.is-7k-open.is-card-open {
      max-width: min(480px, 100%);
    }
    .zone-plan-root.is-auditor-view > .nav-tabs,
    .zone-plan-root.is-auditor-view > .tab-content {
      display: none !important;
    }
    .sw-auditor-home {
      display: flex;
      flex-direction: column;
      gap: 1.25rem;
      padding: .35rem 0 2rem;
    }
    .sw-auditor-hero {
      display: flex;
      align-items: flex-start;
      gap: 1rem;
    }
    .sw-auditor-badge {
      flex-shrink: 0;
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: #0f2744;
      color: #fff;
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .sw-auditor-list {
      display: flex;
      flex-direction: column;
      gap: .85rem;
    }
    .sw-auditor-card {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      text-align: left;
      width: 100%;
      border: 1px solid #e2e8f0;
      background: #fff;
      border-radius: 16px;
      padding: 1.15rem 1.25rem;
      box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
      transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
    }
    .sw-auditor-card.is-openable {
      cursor: pointer;
    }
    .sw-auditor-card.is-openable:hover {
      transform: translateY(-2px);
      border-color: #b6d4fe;
      box-shadow: 0 10px 24px rgba(13, 110, 253, .1);
    }
    .sw-auditor-card.is-done {
      background: #f8fafc;
    }
    .sw-auditor-card.is-locked {
      opacity: .78;
      cursor: not-allowed;
    }
    .sw-auditor-card-kicker {
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .12em;
      color: #0d6efd;
      text-transform: uppercase;
      margin-bottom: .2rem;
    }
    .sw-auditor-card-title {
      font-size: 1.12rem;
      font-weight: 800;
      color: #0f2744;
      line-height: 1.25;
    }
    .sw-auditor-card-meta {
      font-size: .88rem;
      color: #64748b;
      margin-top: .25rem;
    }
    .sw-auditor-empty {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 16px;
      padding: 2rem 1.5rem;
      text-align: center;
      color: #475569;
    }

    /* Yönetim */
    .mg-menu-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1rem;
    }
    @media (min-width: 768px) {
      .mg-menu-grid { grid-template-columns: 1fr 1fr; }
    }
    .mg-menu-card {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: .35rem;
      text-align: left;
      border: 1px solid #e2e8f0;
      background: #fff;
      border-radius: 14px;
      padding: 1.25rem 1.35rem;
      box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
      transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
      cursor: pointer;
      min-height: 140px;
    }
    .mg-menu-card:hover {
      transform: translateY(-2px);
      border-color: #b6d4fe;
      box-shadow: 0 10px 24px rgba(13, 110, 253, .1);
    }
    .mg-menu-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 42px;
      height: 42px;
      border-radius: 10px;
      background: #eef2f6;
      color: #334155;
      font-size: .82rem;
      font-weight: 700;
      letter-spacing: .04em;
    }
    .mg-menu-title { font-size: 1.05rem; font-weight: 700; color: #1e293b; }
    .mg-menu-desc { font-size: .86rem; color: #64748b; flex: 1; }
    .mg-menu-count {
      font-size: .78rem;
      font-weight: 600;
      color: #0d6efd;
      background: #eef4ff;
      border-radius: 999px;
      padding: .2rem .65rem;
      margin-top: .25rem;
    }
    .mg-section-header {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-bottom: 1rem;
      flex-wrap: wrap;
    }
    .mg-section-header > div { flex: 1; min-width: 180px; }
    .mg-section-header .mg-back-btn { flex-shrink: 0; }
    .pill{border:1px solid #dee2e6; padding:.25rem .5rem; border-radius:999px; background:#fff;}
    .table-sm td, .table-sm th{ padding:.35rem .5rem; }

    /* Rapor detayındaki küçük görseller tıklanabilir (zoom) olsun */
    .zoomable { cursor: zoom-in; }

    /* Haftalık rapor — drill-down */
    .rep-week-banner {
      background:linear-gradient(135deg, #f8fafc 0%, #eef4ff 100%);
      border:1px solid #e2e8f0; border-radius:16px; padding:1.25rem 1.5rem;
    }
    .rep-week-banner .rep-week-title { font-size:1.1rem; font-weight:800; color:#1e293b; }
    .rep-week-banner .rep-week-sub { color:#64748b; font-size:.9rem; }
    .rep-week-stats { display:flex; flex-wrap:wrap; gap:1.5rem; margin-top:.75rem; }
    .rep-week-stat strong { font-size:1.35rem; display:block; line-height:1.2; }
    .rep-week-stat span { font-size:.78rem; color:#64748b; }
    .rep-week-stat.danger strong { color:#dc3545; }
    .rep-empty-state { color:#94a3b8; }
    .rep-empty-icon { font-size:2rem; opacity:.6; }

    .rep-cat-tile {
      border:1px solid #e2e8f0; border-radius:16px; background:#fff;
      padding:1.35rem 1.4rem; height:100%; cursor:pointer;
      transition:transform .15s, box-shadow .15s, border-color .15s;
      display:flex; flex-direction:column; gap:.5rem;
    }
    .rep-cat-tile:hover {
      transform:translateY(-3px);
      box-shadow:0 12px 28px rgba(15,23,42,.1);
      border-color:#b6d4fe;
    }
    .rep-cat-tile.is-clean { border-color:#a3cfbb; }
    .rep-cat-tile.is-clean:hover { border-color:#75b798; }
    .rep-cat-tile-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
    .rep-cat-badge {
      width:48px; height:48px; border-radius:12px;
      display:flex; align-items:center; justify-content:center;
      font-weight:800; font-size:.85rem; letter-spacing:.03em;
    }
    .rep-cat-tile[data-cat="isg"] .rep-cat-badge { background:#fde8ea; color:#842029; }
    .rep-cat-tile[data-cat="kalite"] .rep-cat-badge { background:#e7f1ff; color:#084298; }
    .rep-cat-tile[data-cat="bes"] .rep-cat-badge { background:#d1e7dd; color:#0f5132; }
    .rep-cat-tile[data-color="cat4"] .rep-cat-badge { background:#fff3cd; color:#664d03; }
    .rep-cat-tile[data-color="cat5"] .rep-cat-badge { background:#cff4fc; color:#055160; }
    .rep-cat-tile[data-color="cat6"] .rep-cat-badge { background:#e2e3e5; color:#41464b; }
    .rep-cat-count { font-size:2rem; font-weight:800; line-height:1; }
    .rep-cat-tile.has-issues .rep-cat-count { color:#dc3545; }
    .rep-cat-tile.is-clean .rep-cat-count { color:#198754; }
    .rep-cat-name { font-weight:700; font-size:1.05rem; color:#1e293b; }
    .rep-cat-hint { font-size:.82rem; color:#64748b; margin-top:auto; }
    .rep-cat-hint::after { content:' →'; color:#0d6efd; font-weight:600; }

    .rep-back-btn { text-decoration:none; font-weight:600; color:#0d6efd; }
    .rep-cat-detail-head {
      background:#fff; border:1px solid #e2e8f0; border-radius:14px;
      padding:1rem 1.25rem;
    }
    .rep-finding-list { display:flex; flex-direction:column; gap:.65rem; }
    .rep-finding-row {
      display:flex; align-items:center; gap:1rem;
      background:#fff; border:1px solid #e2e8f0; border-radius:12px;
      padding:.9rem 1.1rem; cursor:pointer; text-align:left; width:100%;
      transition:border-color .15s, box-shadow .15s;
    }
    .rep-finding-row:hover {
      border-color:#f1aeb5; box-shadow:0 4px 14px rgba(220,53,69,.08);
    }
    .rep-finding-row-icon {
      flex-shrink:0; width:40px; height:40px; border-radius:10px;
      background:#fde8ea; color:#dc3545;
      display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.9rem;
    }
    .rep-finding-row-body { flex:1; min-width:0; }
    .rep-finding-row-meta { font-size:.78rem; color:#64748b; margin-bottom:.2rem; }
    .rep-finding-row-q {
      font-weight:600; color:#1e293b; font-size:.92rem;
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .rep-finding-row-side { flex-shrink:0; text-align:right; }
    .rep-finding-row-arrow { color:#adb5bd; font-size:1.2rem; }

    .rep-finding-q-box {
      background:#fff5f5; border:1px solid #f1aeb5; border-radius:12px;
      padding:1rem 1.15rem; font-weight:600; color:#842029; line-height:1.5;
    }
    .rep-finding-note-box {
      background:#f8fafc; border-radius:10px; padding:.75rem 1rem;
      font-style:italic; color:#495057; white-space:pre-wrap;
    }
    .rep-finding-photos {
      display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:.65rem;
    }
    .rep-finding-photos img {
      width:100%; height:100px; object-fit:cover; border-radius:10px;
      border:1px solid #e2e8f0; cursor:zoom-in;
    }
    .rep-empty { color:#94a3b8; font-size:.9rem; padding:1rem; text-align:center; }

    /* Dashboard */
    .dash-wrap { padding-bottom:2rem; }
    .dash-toolbar {
      display:flex; flex-direction:column; gap:1rem; margin-bottom:1.5rem;
    }
    .dash-toolbar-head { }
    .dash-title { font-size:1.35rem; font-weight:800; color:#0f2744; letter-spacing:.02em; }
    .dash-subtitle { color:#64748b; font-size:.9rem; }

    .dash-filter-card {
      background:#fff; border:1px solid #e2e8f0; border-radius:14px;
      padding:1rem 1.15rem; box-shadow:0 4px 14px rgba(15,23,42,.04);
    }
    .dash-filter-row {
      display:flex; flex-wrap:wrap; align-items:flex-end; gap:.75rem 1rem;
    }
    .dash-filter-field {
      flex:0 0 auto; min-width:180px;
    }
    .dash-filter-field .form-control { min-width:170px; }
    .dash-filter-actions {
      display:flex; flex-wrap:wrap; align-items:center; gap:.5rem;
      flex:1 1 auto;
    }
    .dash-filter-chips-wrap {
      margin-top:.85rem; padding-top:.85rem; border-top:1px solid #f1f5f9;
    }
    .dash-filter-chips-label {
      font-size:.72rem; font-weight:700; text-transform:uppercase;
      letter-spacing:.06em; color:#64748b; margin-bottom:.45rem;
    }
    .dash-week-chips { display:flex; flex-wrap:wrap; gap:.45rem; min-height:28px; align-items:center; }
    .dash-week-chip {
      display:inline-flex; align-items:center; gap:.4rem;
      background:#eef4ff; border:1px solid #cfe2ff; color:#084298;
      border-radius:999px; padding:.28rem .55rem .28rem .75rem;
      font-size:.78rem; font-weight:600;
    }
    .dash-week-chip button {
      border:none; background:transparent; color:#084298;
      font-size:1rem; line-height:1; padding:0 .15rem; cursor:pointer; opacity:.75;
    }
    .dash-week-chip button:hover { opacity:1; }

    @media (max-width: 640px) {
      .dash-filter-field, .dash-filter-field .form-control { width:100%; min-width:0; }
      .dash-filter-actions { width:100%; }
      .dash-filter-actions .btn { flex:1 1 calc(50% - .25rem); }
    }
    .dash-loading {
      display:flex; align-items:center; justify-content:center; gap:.75rem;
      padding:4rem 1rem; color:#64748b;
    }
    .dash-empty {
      text-align:center; padding:4rem 1.5rem;
      background:linear-gradient(135deg, #f8fafc 0%, #eef4ff 100%);
      border:1px dashed #cbd5e1; border-radius:16px; color:#64748b;
    }
    .dash-empty-icon { font-size:2.5rem; margin-bottom:.75rem; opacity:.7; }

    .dash-hero {
      background:linear-gradient(135deg, #0f2744 0%, #1e4a7a 55%, #163556 100%);
      border-radius:18px; padding:1.5rem 1.75rem; color:#fff;
      box-shadow:0 16px 40px rgba(15,39,68,.22);
    }
    .dash-hero-top { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:1rem; }
    .dash-hero-brand { font-size:.75rem; font-weight:700; letter-spacing:.18em; opacity:.75; }
    .dash-hero-week { font-size:1.45rem; font-weight:800; line-height:1.2; margin-top:.25rem; }
    .dash-hero-range { opacity:.85; font-size:.95rem; margin-top:.35rem; }
    .dash-hero-badges { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
    .dash-hero-badge {
      background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
      border-radius:999px; padding:.35rem .85rem; font-size:.78rem; font-weight:600;
    }
    .dash-hero-badge.is-success { background:rgba(25,135,84,.35); border-color:rgba(25,135,84,.5); }
    .dash-hero-badge.is-warning { background:rgba(255,193,7,.25); border-color:rgba(255,193,7,.45); }
    .dash-hero-badge.is-danger { background:rgba(220,53,69,.3); border-color:rgba(220,53,69,.45); }
    .dash-hero-progress { margin-top:1.25rem; }
    .dash-hero-progress-label {
      display:flex; justify-content:space-between; font-size:.82rem; opacity:.9; margin-bottom:.4rem;
    }
    .dash-hero-progress-bar {
      height:10px; background:rgba(255,255,255,.15); border-radius:999px; overflow:hidden;
    }
    .dash-hero-progress-fill {
      height:100%; background:linear-gradient(90deg, #4ade80, #22c55e);
      border-radius:999px; transition:width .6s ease;
    }

    .dash-kpi-grid {
      display:grid;
      grid-template-columns:repeat(4, 1fr);
      gap:.85rem;
    }
    @media (max-width: 1100px) { .dash-kpi-grid { grid-template-columns:repeat(2, 1fr); } }
    @media (max-width: 520px) { .dash-kpi-grid { grid-template-columns:1fr; } }

    .dash-kpi {
      background:#fff; border:1px solid #e2e8f0; border-radius:14px;
      padding:1rem 1.1rem; position:relative; overflow:hidden;
      box-shadow:0 4px 14px rgba(15,23,42,.04);
      transition:transform .15s, box-shadow .15s;
    }
    .dash-kpi:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(15,23,42,.08); }
    .dash-kpi::before {
      content:''; position:absolute; top:0; left:0; right:0; height:3px;
      background:var(--dash-kpi-accent, #0d6efd);
    }
    .dash-kpi-label { font-size:.75rem; color:#64748b; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
    .dash-kpi-value { font-size:1.85rem; font-weight:800; line-height:1.15; color:#1e293b; margin-top:.25rem; }
    .dash-kpi-hint { font-size:.78rem; color:#94a3b8; margin-top:.2rem; }
    .dash-kpi.is-success { --dash-kpi-accent:#198754; }
    .dash-kpi.is-warning { --dash-kpi-accent:#ffc107; }
    .dash-kpi.is-danger { --dash-kpi-accent:#dc3545; }
    .dash-kpi.is-info { --dash-kpi-accent:#0dcaf0; }
    .dash-kpi.is-primary { --dash-kpi-accent:#0d6efd; }
    .dash-kpi.is-dark { --dash-kpi-accent:#0f2744; }

    .dash-card {
      background:#fff; border:1px solid #e2e8f0; border-radius:16px;
      padding:1.15rem 1.25rem; height:100%;
      box-shadow:0 4px 14px rgba(15,23,42,.04);
    }
    .dash-card-chart { min-height:280px; }
    .dash-card-head {
      font-weight:800; font-size:.95rem; color:#1e293b;
      margin-bottom:1rem; padding-bottom:.65rem; border-bottom:1px solid #f1f5f9;
    }
    .dash-card-head-warn { color:#b45309; }
    .dash-card-head-info { color:#0369a1; }
    .dash-card-head-danger { color:#b91c1c; }
    .dash-card-sub { font-weight:500; font-size:.75rem; color:#94a3b8; margin-left:.35rem; }

    .dash-donut-wrap { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
    .dash-donut {
      width:140px; height:140px; border-radius:50%; flex-shrink:0;
      position:relative; box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
    }
    .dash-donut-hole {
      position:absolute; inset:28%; background:#fff; border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      font-weight:800; font-size:1.1rem; color:#1e293b;
    }
    .dash-legend { display:flex; flex-direction:column; gap:.45rem; flex:1; min-width:140px; }
    .dash-legend-item { display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:#475569; }
    .dash-legend-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }

    .dash-cat-bar-row { margin-bottom:.85rem; }
    .dash-cat-bar-head { display:flex; justify-content:space-between; font-size:.82rem; margin-bottom:.35rem; }
    .dash-cat-bar-head strong { color:#1e293b; }
    .dash-cat-bar-track { height:10px; background:#f1f5f9; border-radius:999px; overflow:hidden; }
    .dash-cat-bar-fill { height:100%; border-radius:999px; transition:width .5s ease; }
    .dash-cat-bar-fill.is-isg { background:linear-gradient(90deg, #f87171, #dc3545); }
    .dash-cat-bar-fill.is-kalite { background:linear-gradient(90deg, #60a5fa, #0d6efd); }
    .dash-cat-bar-fill.is-bes { background:linear-gradient(90deg, #4ade80, #198754); }

    .dash-quality-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
    .dash-quality-item {
      background:#f8fafc; border-radius:12px; padding:.85rem; text-align:center;
    }
    .dash-quality-item strong { display:block; font-size:1.5rem; font-weight:800; color:#1e293b; }
    .dash-quality-item span { font-size:.75rem; color:#64748b; }

    .dash-bar-chart { display:flex; flex-direction:column; gap:.75rem; }
    .dash-bar-row { }
    .dash-bar-row-head {
      display:flex; justify-content:space-between; align-items:baseline;
      font-size:.8rem; margin-bottom:.3rem; gap:.5rem;
    }
    .dash-bar-row-name { font-weight:600; color:#334155; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .dash-bar-row-pct { font-weight:800; color:#0f2744; flex-shrink:0; }
    .dash-bar-stack {
      display:flex; height:12px; border-radius:999px; overflow:hidden; background:#f1f5f9;
    }
    .dash-bar-seg { height:100%; transition:width .5s ease; }
    .dash-bar-seg.completed { background:#198754; }
    .dash-bar-seg.in_progress { background:#ffc107; }
    .dash-bar-seg.missed { background:#dc3545; }
    .dash-bar-seg.planned { background:#adb5bd; }
    .dash-bar-seg.iyi { background:#1e4a7a; }
    .dash-bar-seg.orta { background:#c2410c; }
    .dash-bar-seg.kotu { background:#be123c; }
    .dash-bar-legend {
      display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.75rem; font-size:.72rem; color:#64748b;
    }
    .dash-bar-legend span::before {
      content:''; display:inline-block; width:8px; height:8px; border-radius:2px;
      margin-right:.3rem; vertical-align:middle;
    }
    .dash-bar-legend .lg-completed::before { background:#198754; }
    .dash-bar-legend .lg-progress::before { background:#ffc107; }
    .dash-bar-legend .lg-missed::before { background:#dc3545; }
    .dash-bar-legend .lg-planned::before { background:#adb5bd; }
    .dash-bar-legend .lg-iyi::before { background:#1e4a7a; }
    .dash-bar-legend .lg-orta::before { background:#c2410c; }
    .dash-bar-legend .lg-kotu::before { background:#be123c; }

    .dash-list { display:flex; flex-direction:column; gap:.55rem; max-height:320px; overflow-y:auto; }
    .dash-list-item {
      display:flex; align-items:center; gap:.75rem;
      padding:.7rem .85rem; background:#f8fafc; border-radius:10px;
      border:1px solid #eef2f7; font-size:.85rem;
    }
    .dash-list-item.is-danger { background:#fff5f5; border-color:#fecaca; }
    .dash-list-item.is-warning { background:#fffbeb; border-color:#fde68a; }
    .dash-list-item.is-success { background:#f0fdf4; border-color:#bbf7d0; }
    .dash-list-icon {
      flex-shrink:0; width:36px; height:36px; border-radius:10px;
      display:flex; align-items:center; justify-content:center;
      font-weight:800; font-size:.75rem; background:#e2e8f0; color:#475569;
    }
    .dash-list-body { flex:1; min-width:0; }
    .dash-list-title { font-weight:600; color:#1e293b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .dash-list-meta { font-size:.75rem; color:#64748b; margin-top:.1rem; }
    .dash-list-badge {
      flex-shrink:0; font-size:.7rem; font-weight:700; padding:.2rem .55rem;
      border-radius:999px; background:#e2e8f0; color:#475569;
    }
    .dash-list-badge.completed { background:#d1e7dd; color:#0f5132; }
    .dash-list-badge.in_progress { background:#fff3cd; color:#664d03; }
    .dash-list-badge.missed { background:#f8d7da; color:#842029; }
    .dash-list-badge.planned { background:#e9ecef; color:#495057; }
    .dash-list-empty { text-align:center; color:#94a3b8; font-size:.85rem; padding:1.5rem .5rem; }

    .dash-recur-row {
      display:flex; align-items:center; gap:.75rem; padding:.75rem .85rem;
      background:#f8fafc; border-radius:10px; border:1px solid #eef2f7;
    }
    .dash-recur-count {
      flex-shrink:0; width:40px; height:40px; border-radius:10px;
      background:#fde8ea; color:#dc3545; font-weight:800;
      display:flex; align-items:center; justify-content:center;
    }
    .dash-recur-text { flex:1; min-width:0; font-size:.85rem; font-weight:600; color:#1e293b; line-height:1.35; }
    .dash-recur-cat { font-size:.72rem; color:#64748b; font-weight:500; margin-top:.15rem; }

    .dash-area-row { display:flex; align-items:center; gap:.75rem; padding:.65rem 0; border-bottom:1px solid #f1f5f9; }
    .dash-area-row:last-child { border-bottom:none; }
    .dash-area-rank {
      width:28px; height:28px; border-radius:8px; background:#0f2744; color:#fff;
      font-weight:800; font-size:.78rem; display:flex; align-items:center; justify-content:center;
    }
    .dash-area-name { flex:1; font-weight:600; color:#334155; font-size:.88rem; }
    .dash-area-count { font-weight:800; color:#dc3545; font-size:1rem; }

    .dash-finding-strip { display:flex; flex-direction:column; gap:.55rem; }
    .dash-finding-chip {
      display:flex; align-items:center; gap:.85rem; padding:.75rem 1rem;
      background:#fff5f5; border:1px solid #fecaca; border-radius:12px;
      font-size:.85rem;
    }
    .dash-finding-chip .dash-finding-cat {
      flex-shrink:0; font-size:.7rem; font-weight:800; padding:.25rem .5rem;
      border-radius:6px; background:#dc3545; color:#fff;
    }
    .dash-finding-chip .dash-finding-body { flex:1; min-width:0; }
    .dash-finding-chip .dash-finding-q {
      font-weight:600; color:#842029;
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .dash-finding-chip .dash-finding-meta { font-size:.75rem; color:#64748b; margin-top:.15rem; }

    /* Safety Walk tutorial + walk */
    .sw-flow-root {
      position: fixed;
      inset: 0;
      z-index: 1080;
      background: #071422;
      display: flex;
      flex-direction: column;
      color: #fff;
      height: 100dvh;
      height: var(--vvh, 100dvh);
      padding-left: env(safe-area-inset-left);
      padding-right: env(safe-area-inset-right);
    }
    .sw-flow-root[hidden] { display: none !important; }
    .sw-flow-root[data-tone="1"] { --sw-accent:#3b82f6; --sw-accent-2:#1d4ed8; }
    .sw-flow-root[data-tone="2"] { --sw-accent:#14b8a6; --sw-accent-2:#0f766e; }
    .sw-flow-root[data-tone="3"] { --sw-accent:#f59e0b; --sw-accent-2:#b45309; }
    .sw-flow-root[data-tone="4"] { --sw-accent:#a78bfa; --sw-accent-2:#6d28d9; }
    .sw-flow-root.is-tutorial {
      background: rgba(7, 20, 34, .55);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      align-items: center;
      justify-content: center;
      padding: max(.75rem, env(safe-area-inset-top)) .75rem max(.75rem, env(safe-area-inset-bottom));
    }
    .sw-tut-pane, .sw-walk-pane {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
    }
    .sw-flow-root.is-walk .sw-walk-pane { width: 100%; flex: 1; }
    .sw-flow-root.is-tutorial .sw-tut-pane {
      flex: 0 1 auto;
      width: min(560px, 100%);
      max-height: min(780px, 100%);
    }
    .sw-tut-modal {
      background: #fff;
      color: #0f172a;
      border-radius: 24px;
      box-shadow: 0 28px 80px rgba(7, 20, 34, .35);
      display: flex;
      flex-direction: column;
      min-height: 0;
      max-height: min(780px, 100%);
      overflow: hidden;
      width: 100%;
    }
    .sw-tut-top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding: 1rem 1.1rem .55rem;
      gap: .75rem;
      flex-shrink: 0;
    }
    .sw-tut-kicker {
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--sw-accent, #2563eb);
    }
    .sw-tut-stepcount {
      font-size: .82rem;
      font-weight: 700;
      color: #64748b;
      margin-top: .15rem;
    }
    .sw-tut-top-actions { display: flex; align-items: center; gap: .4rem; }
    .sw-tut-skip {
      border: 0;
      background: transparent;
      color: #64748b;
      font-weight: 700;
      font-size: .88rem;
      padding: .4rem .65rem;
      border-radius: 10px;
    }
    .sw-tut-skip:hover { background: #f1f5f9; color: #0f172a; }
    .sw-tut-close {
      border: 0;
      background: #f1f5f9;
      color: #334155;
      width: 40px;
      height: 40px;
      border-radius: 12px;
      font-size: 1.25rem;
      line-height: 1;
    }
    .sw-flow-root.is-walk .sw-tut-close {
      background: rgba(255,255,255,.08);
      color: #fff;
    }
    .sw-tut-viewport {
      flex: 1;
      min-height: 220px;
      overflow: hidden;
      position: relative;
      touch-action: pan-y;
    }
    .sw-tut-track {
      display: flex;
      height: 100%;
      transition: transform .35s cubic-bezier(.22,1,.36,1);
      will-change: transform;
    }
    .sw-tut-slide {
      min-width: 100%;
      height: 100%;
      overflow: auto;
      padding: .15rem 1.25rem 1rem;
      -webkit-overflow-scrolling: touch;
    }
    .sw-tut-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: .4rem;
      background: #eff6ff;
      border: 1px solid #dbeafe;
      border-radius: 999px;
      padding: .25rem .7rem;
      font-size: .75rem;
      font-weight: 800;
      color: var(--sw-accent-2, #1d4ed8);
      margin-bottom: .7rem;
    }
    .sw-tut-slide h2 {
      font-size: clamp(1.45rem, 4.5vw, 1.85rem);
      font-weight: 800;
      letter-spacing: -.03em;
      line-height: 1.15;
      margin: 0 0 .5rem;
      color: #0f172a;
    }
    .sw-tut-slide p.lead {
      font-size: .98rem;
      color: #475569;
      line-height: 1.45;
      margin-bottom: .85rem;
    }
    .sw-tut-zone {
      display: inline-block;
      background: linear-gradient(135deg, var(--sw-accent), var(--sw-accent-2));
      color: #fff;
      border-radius: 16px;
      padding: .75rem 1rem;
      font-weight: 800;
      font-size: 1.05rem;
      margin-bottom: .85rem;
      box-shadow: 0 10px 24px rgba(37, 99, 235, .25);
    }
    .sw-tut-feature {
      display: flex;
      gap: .75rem;
      align-items: flex-start;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 14px;
      padding: .75rem .85rem;
      margin-bottom: .55rem;
    }
    .sw-tut-feature p { margin: .15rem 0 0; font-size: .86rem; color: #64748b; line-height: 1.4; }
    .sw-tut-feature strong { font-size: .92rem; color: #0f172a; }
    .sw-tut-feature-ico {
      flex-shrink: 0;
      width: 36px; height: 36px;
      border-radius: 10px;
      background: #e2e8f0;
      color: #334155;
      display: grid; place-items: center;
      font-weight: 800; font-size: .78rem;
    }
    .sw-tut-feature.is-hot,
    .sw-tut-dept.is-hot,
    .sw-qr-card.is-hot,
    .sw-criteria-list li.is-hot,
    .sw-tut-zone.is-hot,
    .sw-tut-rate-demo.is-hot {
      border-color: var(--sw-accent, #3b82f6);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--sw-accent, #3b82f6) 22%, transparent);
    }
    .sw-tut-feature.is-hot { background: #eff6ff; }
    .sw-tut-feature.is-hot .sw-tut-feature-ico {
      background: var(--sw-accent, #3b82f6);
      color: #fff;
    }
    .sw-tut-rate-demo {
      display: flex;
      gap: .4rem;
      margin-bottom: .75rem;
      padding: .45rem;
      border-radius: 14px;
      border: 1px solid #e2e8f0;
      background: #fff;
    }
    .sw-tut-rate-demo span {
      flex: 1;
      text-align: center;
      font-weight: 800;
      font-size: .85rem;
      padding: .5rem .2rem;
      border-radius: 10px;
      border: 2px solid #e2e8f0;
    }
    .sw-tut-rate-demo .sw-iyi { background: #dcfce7; border-color: #16a34a; color: #166534; }
    .sw-tut-rate-demo .sw-orta { background: #fef3c7; border-color: #d97706; color: #92400e; }
    .sw-tut-rate-demo .sw-kotu { background: #fee2e2; border-color: #dc2626; color: #991b1b; }
    .sw-tut-depts {
      display: flex;
      flex-direction: column;
      gap: .4rem;
      margin-top: .35rem;
    }
    .sw-tut-dept {
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .6rem .8rem;
      font-weight: 700;
      display: flex;
      gap: .7rem;
      align-items: center;
      color: #0f172a;
    }
    .sw-tut-dept span {
      width: 28px; height: 28px; border-radius: 8px;
      background: var(--sw-accent);
      color: #fff;
      display: grid; place-items: center;
      font-size: .78rem; font-weight: 800; flex-shrink: 0;
    }
    .sw-qr-grid { display: flex; flex-direction: column; gap: .75rem; margin-top: .35rem; }
    .sw-qr-card {
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 16px;
      padding: .75rem;
    }
    .sw-qr-card h3 { font-size: .95rem; font-weight: 800; margin: 0 0 .5rem; color: #0f172a; }
    .sw-photo-slot {
      border: 2px dashed #cbd5e1;
      border-radius: 14px;
      min-height: 120px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .35rem;
      color: #94a3b8;
      background: #fff;
      overflow: hidden;
    }
    .sw-photo-slot img { width: 100%; height: 140px; object-fit: cover; display: block; }
    .sw-photo-slot .slot-ico { font-size: 1.6rem; opacity: .8; }
    .sw-criteria-list { display: flex; flex-direction: column; gap: .35rem; }
    .sw-criteria-list li {
      list-style: none;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .55rem .8rem;
      font-weight: 650;
      color: #0f172a;
    }
    .sw-tut-dots {
      display: flex;
      justify-content: center;
      gap: .4rem;
      padding: .15rem 0 .35rem;
      flex-shrink: 0;
    }
    .sw-tut-dots button {
      width: 8px; height: 8px; border-radius: 99px; border: 0;
      background: #cbd5e1;
      padding: 0;
    }
    .sw-tut-dots button.is-on {
      width: 22px;
      background: var(--sw-accent, #3b82f6);
    }
    .sw-tut-nav, .sw-walk-nav {
      display: flex;
      gap: .65rem;
      padding: .75rem 1rem calc(.9rem + env(safe-area-inset-bottom));
      flex-shrink: 0;
    }
    .sw-tut-nav .btn, .sw-walk-nav .btn { flex: 1; padding: .75rem .5rem; font-weight: 700; border-radius: 14px; }
    .sw-tut-nav .btn-primary, .sw-walk-nav .btn-primary {
      background: var(--sw-accent, #3b82f6);
      border-color: transparent;
      color: #fff;
    }
    .sw-walk-nav .btn-primary { color: #071422; }
    .sw-walk-head {
      padding: max(.85rem, env(safe-area-inset-top)) 1rem .5rem;
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: .75rem;
    }
    .sw-walk-progress {
      height: 6px;
      background: rgba(255,255,255,.12);
      border-radius: 99px;
      margin: 0 1rem .75rem;
      overflow: hidden;
    }
    .sw-walk-progress > div {
      height: 100%;
      background: var(--sw-accent, #3b82f6);
      width: 0;
      transition: width .25s ease;
    }
    .sw-walk-body {
      flex: 1;
      min-height: 0;
      overflow: auto;
      padding: 0 1rem 1rem;
      -webkit-overflow-scrolling: touch;
    }
    .sw-walk-card {
      background: #fff;
      color: #0f172a;
      border-radius: 20px;
      padding: 1.1rem;
      box-shadow: 0 18px 40px rgba(0,0,0,.28);
    }
    .sw-walk-card h2 { font-size: 1.45rem; font-weight: 800; margin: 0 0 .35rem; }
    .sw-walk-card .muted { color: #64748b; }
    .sw-hint-btn {
      display: flex;
      align-items: center;
      gap: .55rem;
      width: 100%;
      margin: .65rem 0 .85rem;
      border: 1px solid #d7e0ea;
      background: #f4f7fb;
      color: #0f2744;
      border-radius: 12px;
      padding: .7rem .85rem;
      font-weight: 700;
      text-align: left;
    }
    .sw-hint-btn:hover { background: #eaf0f6; border-color: #c5d0dc; color: #0f2744; }
    .sw-hint-btn-ico {
      flex-shrink: 0;
      width: 28px; height: 28px;
      border-radius: 8px;
      display: grid; place-items: center;
      background: #0f2744;
      color: #fff;
      font-size: .82rem;
      font-weight: 800;
      font-style: italic;
    }
    .sw-hint-card {
      text-align: left;
      width: min(440px, 100%);
    }
    .sw-hint-kicker {
      font-size: .72rem;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: #64748b;
      margin-bottom: .35rem;
    }
    .sw-hint-card h3 { text-align: left; }
    .sw-hint-body {
      white-space: pre-wrap;
      text-align: left;
      max-height: min(52dvh, 420px);
      overflow: auto;
      color: #334155 !important;
      line-height: 1.55 !important;
    }
    .sw-hint-card .btn { width: 100%; min-width: 0; }
    .sw-qr-reader {
      width: 100%;
      min-height: 220px;
      border-radius: 14px;
      overflow: hidden;
      background: #0b1220;
      margin: .75rem 0;
    }
    .sw-qr-reader video { width: 100% !important; border-radius: 14px; }
    .sw-admin-qr-reader {
      width: 100%;
      min-height: 200px;
      border-radius: 10px;
      overflow: hidden;
      background: #0b1220;
      margin: .55rem 0 .35rem;
    }
    .sw-admin-qr-reader video { width: 100% !important; }
    .sw-rate-row { display: flex; gap: .4rem; margin: .45rem 0 .35rem; }
    .sw-rate-row label {
      flex: 1;
      text-align: center;
      border-radius: 12px;
      padding: .55rem .2rem;
      font-weight: 800;
      font-size: .92rem;
      border: 2px solid #e2e8f0;
      cursor: pointer;
    }
    .sw-rate-row input { display: none; }
    .sw-rate-row input:checked + .sw-iyi { background: #dcfce7; border-color: #16a34a; color: #166534; }
    .sw-rate-row input:checked + .sw-orta { background: #fef3c7; border-color: #d97706; color: #92400e; }
    .sw-rate-row input:checked + .sw-kotu { background: #fee2e2; border-color: #dc2626; color: #991b1b; }
    .sw-crit-block {
      border-top: 1px solid #e2e8f0;
      padding: .85rem 0 0;
      margin-top: .85rem;
    }
    .sw-crit-block:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
    .sw-evidence { display: none; margin-top: .45rem; }
    .sw-evidence.is-on { display: block; }
    .sw-cam-err {
      background: #fef2f2;
      color: #991b1b;
      border-radius: 12px;
      padding: .7rem .85rem;
      font-size: .9rem;
      margin: .5rem 0;
    }
    .sw-talk-list { display: flex; flex-direction: column; gap: .55rem; }
    .sw-finish-ok { font-size: 2.2rem; }
    .sw-dept-open {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: .1rem;
      border: 0;
      background: transparent;
      color: #fff;
      text-align: left;
      padding: .15rem 0;
      margin-top: .15rem;
    }
    .sw-dept-open span {
      font-size: 1.05rem;
      font-weight: 800;
      line-height: 1.2;
    }
    .sw-dept-open small {
      font-size: .75rem;
      font-weight: 700;
      color: #93c5fd;
    }
    .sw-dept-overlay {
      background: rgba(3, 10, 20, .58);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      padding: .85rem;
    }
    .sw-dept-modal-card.sw-dialog-card {
      width: min(420px, 100%);
      text-align: left;
      max-height: min(90dvh, 760px);
      display: flex;
      flex-direction: column;
      background: #0b1726;
      color: #f8fafc;
      border: 1px solid rgba(255,255,255,.08);
      box-shadow: 0 28px 80px rgba(0,0,0,.48);
      padding: 1.15rem 1rem 1rem;
    }
    .sw-dept-modal-card h3 {
      color: #fff;
      text-align: left;
      margin: 0 0 .2rem;
    }
    .sw-dept-modal-card .sw-dept-modal-sub {
      color: #93a4bb;
      font-size: .86rem;
      margin: 0 0 .85rem;
    }
    .sw-dept-modal-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .6rem;
      overflow: auto;
      margin: 0 0 .9rem;
      max-height: min(62dvh, 520px);
      padding: .1rem .15rem .1rem .1rem;
      align-items: stretch;
    }
    .sw-dept-tile {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: space-between;
      gap: .4rem;
      min-height: 102px;
      width: 100%;
      height: 100%;
      border: 2px solid transparent;
      border-radius: 18px;
      padding: .65rem .6rem .5rem;
      text-align: left;
      color: #fff;
      box-shadow: 0 10px 22px rgba(0,0,0,.22);
    }
    .sw-dept-tile.is-ok {
      background: linear-gradient(165deg, #22c55e 0%, #15803d 100%);
    }
    .sw-dept-tile.is-wait {
      background: linear-gradient(165deg, #f43f5e 0%, #b91c1c 100%);
    }
    .sw-dept-tile.is-on {
      border-color: #fff;
      box-shadow: 0 0 0 3px rgba(59,130,246,.88), 0 12px 24px rgba(0,0,0,.28);
      transform: translateY(-1px);
    }
    .sw-dept-tile-mark {
      position: absolute;
      top: .4rem;
      right: .4rem;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      font-weight: 900;
      font-size: 1rem;
      line-height: 1;
      border: 2px solid rgba(255,255,255,.85);
      background: rgba(0,0,0,.18);
      color: #fff;
    }
    .sw-dept-tile.is-ok .sw-dept-tile-mark {
      background: #fff;
      color: #15803d;
      border-color: #fff;
    }
    .sw-dept-tile-name {
      display: -webkit-box;
      -webkit-line-clamp: 2;
      line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      overflow-wrap: anywhere;
      font-weight: 800;
      font-size: .86rem;
      line-height: 1.2;
      padding-right: 2rem;
      min-height: 2.3em;
      color: #fff;
    }
    .sw-dept-tile-ticks {
      display: flex;
      flex-wrap: wrap;
      gap: .28rem;
    }
    .sw-dept-tick {
      display: inline-flex;
      align-items: center;
      gap: .18rem;
      border-radius: 999px;
      padding: .12rem .4rem .12rem .28rem;
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .01em;
      background: rgba(0,0,0,.22);
      color: rgba(255,255,255,.78);
    }
    .sw-dept-tick b { font-size: .72rem; }
    .sw-dept-tick.is-on {
      background: rgba(255,255,255,.24);
      color: #fff;
    }
    .sw-dept-modal-card .sw-dept-modal-close {
      width: 100%;
      min-width: 0 !important;
      background: transparent;
      border: 1px solid rgba(255,255,255,.22);
      color: #e2e8f0;
    }
    .sw-dept-modal-card .sw-dept-modal-close:hover {
      background: rgba(255,255,255,.08);
      color: #fff;
    }
    @media (min-width: 560px) {
      .sw-dept-modal-card { width: min(620px, 100%); }
      .sw-dept-modal-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
      .sw-dept-tile { min-height: 116px; }
    }
    .sw-photo-grid {
      display: flex;
      flex-wrap: wrap;
      gap: .45rem;
      margin-bottom: .5rem;
      min-height: 0;
    }
    .sw-thumb {
      position: relative;
      width: 76px;
      height: 76px;
    }
    .sw-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 10px;
      display: block;
    }
    .sw-thumb-del {
      position: absolute;
      top: -7px;
      right: -7px;
      width: 22px;
      height: 22px;
      border: 0;
      border-radius: 50%;
      background: #dc2626;
      color: #fff;
      font-size: 14px;
      line-height: 20px;
      padding: 0;
    }
    .sw-cam-sheet {
      position: absolute;
      inset: 0;
      z-index: 30;
      background: #000;
      display: flex;
      flex-direction: column;
    }
    .sw-cam-sheet[hidden] { display: none !important; }
    .sw-cam-sheet video {
      flex: 1;
      width: 100%;
      object-fit: cover;
      background: #000;
    }
    .sw-cam-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .75rem;
      padding: .9rem 1rem calc(1rem + env(safe-area-inset-bottom));
      background: #0b1220;
    }
    .sw-cam-shutter {
      width: 62px;
      height: 62px;
      border-radius: 50%;
      border: 4px solid #fff;
      background: #fff;
      box-shadow: 0 0 0 4px rgba(255,255,255,.25);
    }
    .sw-cam-hint {
      color: #94a3b8;
      font-size: .75rem;
      font-weight: 700;
      min-width: 5.5rem;
      text-align: right;
    }
    .sw-dialog {
      position: absolute;
      inset: 0;
      z-index: 20;
      background: rgba(7, 20, 34, .48);
      display: flex;
      align-items: center;
      justify-content: center;
      padding:
        max(1rem, env(safe-area-inset-top))
        max(1rem, env(safe-area-inset-right))
        max(1rem, env(safe-area-inset-bottom))
        max(1rem, env(safe-area-inset-left));
    }
    .sw-dialog[hidden] { display: none !important; }
    .sw-dialog-card {
      background: #fff;
      color: #0f172a;
      width: min(400px, 100%);
      border-radius: 22px;
      padding: 1.45rem 1.4rem 1.25rem;
      text-align: center;
      box-shadow: 0 28px 70px rgba(7, 20, 34, .32);
    }
    .sw-dialog-ico {
      width: 48px; height: 48px;
      margin: 0 auto .85rem;
      border-radius: 14px;
      display: grid; place-items: center;
      font-weight: 800;
      font-size: 1.25rem;
      background: #fef3c7;
      color: #b45309;
    }
    .sw-dialog.is-ok .sw-dialog-ico { background: #dcfce7; color: #166534; }
    .sw-dialog.is-err .sw-dialog-ico { background: #fee2e2; color: #b91c1c; }
    .sw-dialog-card h3 {
      font-size: 1.15rem;
      font-weight: 800;
      margin: 0 0 .4rem;
    }
    .sw-dialog-card p {
      margin: 0 0 1.1rem;
      color: #475569;
      line-height: 1.45;
      font-size: .95rem;
    }
    .sw-dialog-card .btn {
      min-width: 140px;
      font-weight: 700;
      border-radius: 12px;
      padding: .65rem 1.1rem;
    }
    .app-dialog {
      position: fixed;
      inset: 0;
      z-index: 2000;
      background: rgba(7, 20, 34, .48);
      display: flex;
      align-items: center;
      justify-content: center;
      padding:
        max(1rem, env(safe-area-inset-top))
        max(1rem, env(safe-area-inset-right))
        max(1rem, env(safe-area-inset-bottom))
        max(1rem, env(safe-area-inset-left));
    }
    .app-dialog[hidden] { display: none !important; }
    .app-dialog-card {
      background: #fff;
      color: #0f172a;
      width: min(420px, 100%);
      border-radius: 22px;
      padding: 1.45rem 1.4rem 1.25rem;
      text-align: center;
      box-shadow: 0 28px 70px rgba(7, 20, 34, .32);
    }
    .app-dialog-ico {
      width: 48px; height: 48px;
      margin: 0 auto .85rem;
      border-radius: 14px;
      display: grid; place-items: center;
      font-weight: 800;
      font-size: 1.25rem;
      background: #fef3c7;
      color: #b45309;
    }
    .app-dialog.is-danger .app-dialog-ico { background: #fee2e2; color: #b91c1c; }
    .app-dialog.is-ok .app-dialog-ico { background: #dcfce7; color: #166534; }
    .app-dialog-card h3 {
      font-size: 1.15rem;
      font-weight: 800;
      margin: 0 0 .4rem;
    }
    .app-dialog-card p {
      margin: 0 0 1.15rem;
      color: #475569;
      line-height: 1.45;
      font-size: .95rem;
      white-space: pre-line;
    }
    .app-dialog-actions {
      display: flex;
      gap: .55rem;
      justify-content: center;
      flex-wrap: wrap;
    }
    .app-dialog-actions .btn {
      min-width: 118px;
      font-weight: 700;
      border-radius: 12px;
      padding: .65rem 1.1rem;
    }

    @media (min-width: 768px) {
      .sw-walk-head, .sw-walk-progress, .sw-walk-body, .sw-walk-nav {
        max-width: 720px;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
      }
      .sw-flow-root.is-tutorial .sw-tut-pane { width: min(580px, 100%); }
      .sw-qr-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .85rem;
      }
    }
    @media (min-width: 1100px) {
      .sw-qr-grid { grid-template-columns: repeat(3, 1fr); }
      .sw-walk-head, .sw-walk-progress, .sw-walk-body, .sw-walk-nav {
        max-width: 860px;
      }
    }
    @media (max-width: 1099px) {
      /* Mobil/tablet: sabit yükseklikli iç içe paneller yerine sayfanın tamamı dikey kaydırılır */
      .zone-plan-root.page-wrap:not(.is-auditor-view) {
        height: auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
      }
      .zone-plan-root:not(.is-auditor-view) > .tab-content,
      #swPlanTab.tab-pane.active.show,
      #swReportsTab.tab-pane.active.show,
      #swManageTab.tab-pane.active.show,
      #stPlanTab.tab-pane.active.show,
      #stReportsTab.tab-pane.active.show,
      #stManageTab.tab-pane.active.show,
      #bbsPlanTab.tab-pane.active.show,
      #bbsReportsTab.tab-pane.active.show,
      #bbsManageTab.tab-pane.active.show,
      #stManageTab .mg-section:not(.d-none),
      #stManageTab .mg-section:not(.d-none) .st-talk-catalog,
      #bbsManageTab .mg-section:not(.d-none),
      #bbsManageTab .mg-section:not(.d-none) .st-talk-catalog,
      #bbsReportsTab .bbs-rep-pane:not(.d-none),
      #swReportsTab .sw-rep-pane:not(.d-none),
      .zone-plan-root:not(.is-auditor-view) .sw-plan-shell,
      .zone-plan-root:not(.is-auditor-view) .st-year-shell,
      .zone-plan-root:not(.is-auditor-view) .st-year-cal {
        flex: 0 0 auto;
        min-height: auto;
        overflow: visible;
      }
      /* SW takvimi yatay + dikey kayar; zone satırları eşit yükseklik */
      .zone-plan-root:not(.is-auditor-view) .sw-month-cal {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        min-height: 0;
      }
      .zone-plan-root:not(.is-auditor-view) .sw-month-table {
        --sw-zone-row-h: 4.75rem;
        min-width: calc(5.6rem + var(--sw-day-count, 22) * 4.5rem);
        height: auto;
      }
      .zone-plan-root:not(.is-auditor-view) .sw-month-table td,
      .zone-plan-root:not(.is-auditor-view) .sw-month-table tbody tr {
        height: var(--sw-zone-row-h);
        min-height: var(--sw-zone-row-h);
      }
      .table-responsive {
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
      }
    }
    @media (max-width: 767px) {
      .module-card { min-height: 0; }
      .sw-auditor-hero { gap: .75rem; }
      .sw-auditor-card {
        flex-direction: column;
        align-items: flex-start;
        padding: 1rem 1.05rem;
      }
      .sw-auditor-card .badge { align-self: flex-start; }
      .sw-tut-nav, .sw-walk-nav { gap: .5rem; }
      .sw-tut-nav .btn, .sw-walk-nav .btn { padding: .75rem .45rem; min-height: 44px; }
      .sw-walk-card { padding: .95rem .85rem; border-radius: 16px; }
      .sw-walk-card h2 { font-size: 1.22rem; }
      .sw-rate-row label { font-size: .8rem; padding: .55rem .15rem; min-height: 44px; }
      .sw-photo-slot { min-height: 110px; }
      .login-logo { height: 52px; }
      .form-control, .form-select, input, select, textarea {
        font-size: 16px !important;
      }
      .sw-plan-toolbar, .sw-rep-toolbar {
        flex-direction: column;
        align-items: stretch;
      }
      .sw-plan-toolbar .ms-auto,
      .sw-rep-toolbar > .d-flex {
        width: 100%;
        margin-left: 0 !important;
      }
      .sw-month-nav { width: 100%; justify-content: space-between; }
      .sw-month-label { flex: 1; min-width: 0; }
      .sw-plan-toolbar .form-select { width: 100%; min-width: 0; }
      .module-home-hero { gap: .75rem; }
      .module-home-hero h1, .module-home-hero .h3 { font-size: 1.2rem; }
      #planTable .area-col { width: 148px !important; }
      .dash-hero { padding: 1.1rem 1.15rem; }
      .dash-hero-week { font-size: 1.2rem; }
      .dash-kpi-value { font-size: 1.5rem; }
      .dash-card-chart { min-height: 220px; }
      .dash-quality-grid { grid-template-columns: 1fr; }
      .topbar { gap: .5rem; }
      #mainTabs .nav-link, #swMainTabs .nav-link, #stMainTabs .nav-link {
        padding: .55rem .7rem;
        font-size: .9rem;
      }
      #planTab .ms-auto,
      #reportsTab .d-flex.ms-auto,
      #planTab .form-control,
      #planTab .form-select {
        width: 100%;
        min-width: 0;
        margin-left: 0 !important;
      }
      #planTab .form-control,
      #planTab .form-select { max-width: 100%; }
    }
    @media (max-width: 480px) {
      .sw-tut-slide { padding: .35rem .9rem .75rem; }
      .sw-tut-dept { padding: .55rem .7rem; }
      .audit-answer-group { display: flex; width: 100%; }
      .audit-answer-group .btn { min-width: 0; flex: 1; }
      .audit-note-input { max-width: 100%; }
      .sw-auditor-badge, .module-home-badge { width: 44px; height: 44px; }
    }

    .sw-rep-shell {
      display: flex;
      flex-direction: column;
      gap: .9rem;
      padding-bottom: 1.25rem;
      min-width: 0;
      overflow-x: hidden;
    }
    #bbsReportsTab .sw-rep-shell,
    #stReportsTab .sw-rep-shell,
    #swReportsTab .sw-rep-shell {
      flex: 1 1 auto;
      min-height: 0;
      overflow: hidden;
    }
    #bbsReportsTab .bbs-rep-pane:not(.d-none),
    #swReportsTab .sw-rep-pane:not(.d-none) {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
    }
    .bbs-rep-subtabs {
      flex-shrink: 0;
      display: flex;
      flex-wrap: wrap;
      gap: .4rem;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .bbs-rep-subtabs .nav-link {
      border: 1px solid #d7e0ea;
      background: #fff;
      color: #334155;
      font-weight: 650;
      font-size: .9rem;
      border-radius: 999px;
      padding: .42rem .95rem;
    }
    .bbs-rep-subtabs .nav-link:hover {
      background: #f4f7fb;
      color: #0f2744;
    }
    .bbs-rep-subtabs .nav-link.active {
      background: #0f2744;
      color: #fff;
      border-color: #0f2744;
    }
    .sw-rep-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: .75rem;
    }
    .sw-rep-toolbar h1 { margin: 0; }
    .sw-rep-kpis:empty,
    .sw-rep-crit-row:empty { display: none; }
    .sw-rep-kpis {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: .7rem;
    }
    .sw-rep-kpi {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .85rem 1rem;
      box-shadow: 0 4px 14px rgba(15,23,42,.04);
      min-height: 78px;
      position: relative;
    }
    .sw-rep-kpi::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 3px;
      background: #0f2744;
      border-radius: 12px 12px 0 0;
    }
    .sw-rep-kpi strong { display: block; font-size: 1.45rem; line-height: 1.1; color: #0f2744; }
    .sw-rep-kpi span {
      font-size: .72rem;
      color: #64748b;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: .04em;
    }
    .sw-rep-kpi.is-walks::before { background: #0f2744; }
    .sw-rep-kpi.is-ok::before { background: #1e4a7a; }
    .sw-rep-kpi.is-orta::before { background: #b45309; }
    .sw-rep-kpi.is-kotu::before { background: #9f1239; }
    .sw-rep-kpi.is-orta strong { color: #9a3412; }
    .sw-rep-kpi.is-kotu strong { color: #9f1239; }
    .sw-rep-crit-row {
      display: grid;
      grid-template-columns: repeat(7, minmax(0, 1fr));
      gap: .5rem;
      min-width: 0;
      overflow: hidden;
    }
    .sw-rep-crit {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: .55rem .45rem .6rem;
      min-width: 0;
      text-align: center;
      background: #fff;
      box-shadow: 0 2px 8px rgba(15,23,42,.03);
    }
    .sw-rep-crit b {
      display: block;
      font-size: .74rem;
      font-weight: 700;
      line-height: 1.2;
      color: #0f2744;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .sw-rep-crit[data-crit]::before {
      content: '';
      display: block;
      width: 18px;
      height: 3px;
      border-radius: 2px;
      margin: 0 auto .4rem;
      background: #94a3b8;
    }
    .sw-rep-crit[data-crit="talimat"]::before { background: #0f2744; }
    .sw-rep-crit[data-crit="kkd"]::before { background: #7a3b3b; }
    .sw-rep-crit[data-crit="bes"]::before { background: #3d5348; }
    .sw-rep-crit[data-crit="ergonomi"]::before { background: #3f4560; }
    .sw-rep-crit[data-crit="acil"]::before { background: #7a5c3a; }
    .sw-rep-crit[data-crit="ekipman"]::before { background: #3a5360; }
    .sw-rep-crit[data-crit="izin"]::before { background: #4b5563; }
    .sw-rep-crit-nums {
      display: flex;
      justify-content: center;
      gap: .35rem;
      margin-top: .35rem;
      font-size: .72rem;
      font-weight: 700;
    }
    .sw-rep-crit-nums .orta { color: #9a3412; }
    .sw-rep-crit-nums .kotu { color: #9f1239; }
    .sw-rep-zones {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .85rem;
    }
    .sw-rep-zone {
      display: flex;
      flex-direction: column;
      gap: .45rem;
      text-align: left;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: 1rem 1.05rem;
      background: #fff;
      box-shadow: 0 4px 14px rgba(15,23,42,.04);
      cursor: pointer;
      width: 100%;
      min-height: 168px;
      border-left: 4px solid #0f2744;
    }
    .sw-rep-zone:hover { border-color: #cbd5e1; box-shadow: 0 8px 22px rgba(15,39,68,.08); }
    .sw-rep-zone[data-z="1"] { border-left-color: #0f2744; background: #f4f7fb; }
    .sw-rep-zone[data-z="2"] { border-left-color: #0f766e; background: #f2faf8; }
    .sw-rep-zone[data-z="3"] { border-left-color: #5b4b8a; background: #f6f4fb; }
    .sw-rep-zone[data-z="4"] { border-left-color: #9a6b2f; background: #f8f3eb; }
    .sw-rep-zone-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .5rem;
    }
    .sw-rep-zone-code {
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
      border-radius: 4px;
      padding: .18rem .5rem;
      background: #0f2744;
      color: #fff;
    }
    .sw-rep-zone[data-z="2"] .sw-rep-zone-code,
    .sw-rep-chart-zone[data-z="2"] .sw-rep-zone-code,
    .sw-rep-hot-zone[data-z="2"] .sw-rep-zone-code { background: #0f766e; }
    .sw-rep-zone[data-z="3"] .sw-rep-zone-code,
    .sw-rep-chart-zone[data-z="3"] .sw-rep-zone-code,
    .sw-rep-hot-zone[data-z="3"] .sw-rep-zone-code { background: #5b4b8a; }
    .sw-rep-zone[data-z="4"] .sw-rep-zone-code,
    .sw-rep-chart-zone[data-z="4"] .sw-rep-zone-code,
    .sw-rep-hot-zone[data-z="4"] .sw-rep-zone-code { background: #9a6b2f; }
    .sw-rep-flag {
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .02em;
      color: #64748b;
    }
    .sw-rep-flag.is-hot { color: #9f1239; }
    .sw-rep-zone h3 { font-size: 1.12rem; margin: 0; color: #0f2744; }
    .sw-rep-zone .sw-rep-sub { font-size: .78rem; color: #64748b; }
    .sw-rep-stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: .4rem;
      margin-top: auto;
    }
    .sw-rep-stats > div {
      background: #f8fafc;
      border: 1px solid #eef2f6;
      border-radius: 8px;
      padding: .45rem .3rem .4rem;
      text-align: center;
    }
    .sw-rep-stats b { display: block; font-size: 1.08rem; line-height: 1.1; color: #0f2744; }
    .sw-rep-stats span { font-size: .68rem; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
    .sw-rep-stats .is-ok {
      background: #e8f4ee;
      border-color: #cfe4d8;
    }
    .sw-rep-stats .is-ok b { color: #2d6a4f; }
    .sw-rep-stats .is-ok span { color: #4d8a6e; }
    .sw-rep-stats .is-orta {
      background: #f7efe2;
      border-color: #ead9bf;
    }
    .sw-rep-stats .is-orta b { color: #9a6b2f; }
    .sw-rep-stats .is-orta span { color: #b08548; }
    .sw-rep-stats .is-kotu {
      background: #f6e7ea;
      border-color: #e5c9d0;
    }
    .sw-rep-stats .is-kotu b { color: #9f4a5c; }
    .sw-rep-stats .is-kotu span { color: #b56b7a; }
    .sw-rep-stats-sm { grid-template-columns: 1fr 1fr; }
    .sw-rep-areas {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: .7rem;
    }
    .sw-rep-area {
      display: flex;
      flex-direction: column;
      text-align: left;
      border-radius: 10px;
      border: 1px solid #e2e8f0;
      padding: .85rem .9rem;
      background: #fff;
      cursor: pointer;
      min-height: 118px;
      min-width: 0;
      border-left: 3px solid #0f2744;
    }
    .sw-rep-areas[data-z="1"] .sw-rep-area { border-left-color: #0f2744; }
    .sw-rep-areas[data-z="2"] .sw-rep-area { border-left-color: #0f766e; }
    .sw-rep-areas[data-z="3"] .sw-rep-area { border-left-color: #5b4b8a; }
    .sw-rep-areas[data-z="4"] .sw-rep-area { border-left-color: #9a6b2f; }
    .sw-rep-area:hover { border-color: #cbd5e1; box-shadow: 0 6px 16px rgba(15,39,68,.06); }
    .sw-rep-detail-head {
      display: flex;
      align-items: center;
      gap: .85rem;
      flex-wrap: wrap;
      margin-bottom: .85rem;
      padding: .7rem .9rem;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      border-left: 4px solid #0f2744;
    }
    .sw-rep-detail-head h2 { margin: 0; font-size: 1.1rem; color: #0f2744; }
    .sw-rep-detail-head[data-z="1"] { border-left-color: #0f2744; }
    .sw-rep-detail-head[data-z="2"] { border-left-color: #0f766e; }
    .sw-rep-detail-head[data-z="3"] { border-left-color: #5b4b8a; }
    .sw-rep-detail-head[data-z="4"] { border-left-color: #9a6b2f; }
    .sw-rep-area.is-hot { border-color: #e2e8f0; }
    .sw-rep-area h4 {
      font-size: .92rem;
      margin: 0 0 .55rem;
      color: #0f2744;
      line-height: 1.3;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      min-height: 2.4em;
    }
    .sw-rep-back {
      font-weight: 600;
      text-decoration: none;
      border: 1px solid #e2e8f0;
      background: #fff;
      color: #0f2744;
      border-radius: 10px;
      padding: .35rem .7rem;
    }
    .sw-rep-back:hover { background: #f8fafc; color: #0f2744; }
    .sw-rep-find { display: flex; flex-direction: column; gap: .65rem; }
    .sw-rep-find-card {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: .9rem 1rem;
      border-left: 3px solid #0f2744;
    }
    .sw-rep-find-card[data-crit="talimat"] { border-left-color: #0f2744; }
    .sw-rep-find-card[data-crit="kkd"] { border-left-color: #7a3b3b; }
    .sw-rep-find-card[data-crit="bes"] { border-left-color: #3d5348; }
    .sw-rep-find-card[data-crit="ergonomi"] { border-left-color: #3f4560; }
    .sw-rep-find-card[data-crit="acil"] { border-left-color: #7a5c3a; }
    .sw-rep-find-card[data-crit="ekipman"] { border-left-color: #3a5360; }
    .sw-rep-find-card[data-crit="izin"] { border-left-color: #4b5563; }
    .sw-rep-find-chip {
      display: inline-block;
      font-size: .66rem;
      font-weight: 700;
      letter-spacing: .06em;
      text-transform: uppercase;
      border-radius: 4px;
      padding: .12rem .45rem;
      margin-right: .35rem;
      color: #0f2744;
      background: #f4f7fb;
      border: 1px solid #d7e0ea;
      vertical-align: middle;
    }
    .sw-rep-find-chip[data-crit="kkd"] { color: #7a3b3b; border-color: #d6c4c4; }
    .sw-rep-find-chip[data-crit="bes"] { color: #3d5348; border-color: #c5d0cb; }
    .sw-rep-find-chip[data-crit="ergonomi"] { color: #3f4560; border-color: #c7cad6; }
    .sw-rep-find-chip[data-crit="acil"] { color: #7a5c3a; border-color: #d6cbb8; }
    .sw-rep-find-chip[data-crit="ekipman"] { color: #3a5360; border-color: #c3ced3; }
    .sw-rep-find-chip[data-crit="izin"] { color: #4b5563; border-color: #cdd3db; }
    .sw-rep-find-meta { font-size: .78rem; color: #64748b; margin-bottom: .25rem; display: flex; align-items: center; flex-wrap: wrap; gap: .25rem; }
    .sw-rep-find-q { font-weight: 700; color: #0f2744; }
    .sw-rep-find-note { margin: .45rem 0 0; color: #334155; font-size: .9rem; }
    .sw-rep-xlsx-wrap {
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      border: 1px solid #d7e0ea;
      border-radius: 10px;
      max-height: min(64dvh, 680px);
      background: #fff;
    }
    .sw-rep-xlsx {
      width: 100%;
      min-width: 860px;
      border-collapse: collapse;
      font-size: .82rem;
    }
    .sw-rep-xlsx th {
      position: sticky;
      top: 0;
      z-index: 2;
      background: #0f2744;
      color: #fff;
      font-weight: 650;
      letter-spacing: .02em;
      padding: .55rem .6rem;
      white-space: nowrap;
      text-align: left;
      border-right: 1px solid rgba(255,255,255,.08);
    }
    .sw-rep-xlsx th:has(.bbs-rep-th-filter) {
      white-space: normal;
      vertical-align: bottom;
    }
    .sw-rep-xlsx td {
      padding: .48rem .6rem;
      border-bottom: 1px solid #edf1f6;
      border-right: 1px solid #f1f5f9;
      vertical-align: middle;
      color: #0f172a;
    }
    .sw-rep-xlsx tbody tr:nth-child(even) { background: #f8fafc; }
    .sw-rep-xlsx tbody tr:hover { background: #eef4ff; }
    .sw-rep-xlsx .sw-rep-td-date { white-space: nowrap; font-variant-numeric: tabular-nums; color: #334155; }
    .sw-rep-xlsx .sw-rep-td-q {
      font-size: .74rem;
      color: #64748b;
      margin-top: .12rem;
      line-height: 1.3;
      max-width: 220px;
    }
    .sw-rep-xlsx .sw-rep-td-note {
      max-width: 260px;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      line-height: 1.35;
      color: #334155;
    }
    .sw-rep-xlsx.is-st { min-width: 740px; }
    .sw-rep-xlsx-wrap.is-paged { max-height: none; }
    .sw-rep-xlsx th .bbs-rep-th-filter {
      display: block;
      margin-top: .32rem;
      width: 100%;
      min-width: 8.5rem;
      max-width: 14rem;
      border: 1px solid rgba(255,255,255,.28);
      background: rgba(255,255,255,.14);
      color: #fff;
      border-radius: 6px;
      font-size: .74rem;
      font-weight: 650;
      padding: .18rem .35rem;
    }
    .sw-rep-xlsx th .bbs-rep-th-filter.is-sm {
      min-width: 5.2rem;
      max-width: 8rem;
    }
    .sw-rep-xlsx th .bbs-rep-th-filter option {
      color: #0f172a;
      background: #fff;
    }
    .sw-rep-xlsx tbody tr.is-clickable { cursor: pointer; }
    .bbs-rep-unsafe-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 2rem;
      border: 1px solid #fecaca;
      background: #fee2e2;
      color: #991b1b;
      font-weight: 700;
      border-radius: 8px;
      padding: .15rem .45rem;
    }
    .bbs-rep-unsafe-btn:hover { background: #fecaca; }
    .bbs-unsafe-item {
      padding: .9rem 0;
      border-bottom: 1px solid #eef2f6;
    }
    .bbs-unsafe-item:last-child { border-bottom: 0; }
    .bbs-unsafe-q {
      font-weight: 600;
      color: #842029;
      margin-bottom: .4rem;
      line-height: 1.45;
    }
    .bbs-unsafe-note {
      background: #f8fafc;
      border-radius: 10px;
      padding: .7rem .9rem;
      color: #334155;
      white-space: pre-wrap;
    }
    .sw-rep-rate.is-planned { background: #eef2f6; color: #64748b; }
    .sw-rep-rate {
      display: inline-block;
      font-size: .72rem;
      font-weight: 800;
      border-radius: 999px;
      padding: .18rem .55rem;
      letter-spacing: .02em;
    }
    .sw-rep-rate.is-orta { background: #f7efe2; color: #9a6b2f; }
    .sw-rep-rate.is-kotu { background: #f6e7ea; color: #9f4a5c; }
    .sw-rep-rate.is-iyi { background: #e8f4ee; color: #2d6a4f; }
    .sw-rep-thumbs { display: flex; align-items: center; gap: .28rem; }
    .sw-rep-thumb {
      width: 42px;
      height: 42px;
      padding: 0;
      border: 1px solid #d7e0ea;
      border-radius: 8px;
      overflow: hidden;
      background: #fff;
      cursor: zoom-in;
    }
    .sw-rep-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .sw-rep-thumb-more {
      min-width: 42px;
      height: 42px;
      border: 1px dashed #cbd5e1;
      border-radius: 8px;
      background: #f8fafc;
      color: #0f2744;
      font-size: .72rem;
      font-weight: 800;
    }
    .sw-rep-pager {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: .5rem .75rem;
    }
    .sw-rep-pager-info { font-size: .8rem; font-weight: 650; color: #64748b; }
    .sw-rep-pager-btns { display: flex; flex-wrap: wrap; align-items: center; gap: .28rem; }
    .sw-rep-page-btn {
      min-width: 36px;
      min-height: 36px;
      border: 1px solid #d7e0ea;
      background: #fff;
      color: #0f2744;
      border-radius: 8px;
      font-weight: 700;
      font-size: .82rem;
    }
    .sw-rep-page-btn.is-on { background: #0f2744; color: #fff; border-color: #0f2744; }
    .sw-rep-page-btn:disabled { opacity: .4; cursor: default; }
    .sw-rep-page-gap { color: #94a3b8; padding: 0 .15rem; }
    .sw-lb-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 48px;
      height: 48px;
      border: 0;
      border-radius: 50%;
      background: rgba(15, 23, 42, .55);
      color: #fff;
      font-size: 1.8rem;
      line-height: 1;
      z-index: 2;
    }
    .sw-lb-nav.is-prev { left: .75rem; }
    .sw-lb-nav.is-next { right: .75rem; }
    .sw-lb-nav:hover { background: rgba(15, 23, 42, .8); }
    .sw-rep-photos { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
    .sw-rep-photos img {
      width: 88px; height: 88px; object-fit: cover; border-radius: 10px; cursor: zoom-in;
      border: 1px solid #e2e8f0;
    }
    .sw-rep-empty { text-align: center; color: #94a3b8; padding: 2.5rem 1rem; }
    .sw-rep-block {
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: 1rem 1.05rem 1.1rem;
      margin-bottom: .85rem;
      box-shadow: 0 4px 14px rgba(15,23,42,.04);
    }
    .sw-rep-block h2 {
      font-size: 1.02rem;
      margin: 0;
      color: #0f2744;
    }
    .sw-rep-block.is-people {
      padding: .75rem .9rem .85rem;
    }
    .sw-rep-block.is-people h2 { font-size: .95rem; }
    .sw-rep-block.is-people .sw-rep-block-sub { margin: .12rem 0 0; font-size: .74rem; }
    .sw-rep-people-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: .75rem;
      margin-bottom: .7rem;
      flex-wrap: wrap;
    }
    .sw-rep-scope {
      display: inline-flex;
      border: 1px solid #d7e0ea;
      border-radius: 8px;
      overflow: hidden;
      flex-shrink: 0;
      background: #fff;
    }
    .sw-rep-scope-btn {
      border: 0;
      background: transparent;
      color: #64748b;
      font-size: .74rem;
      font-weight: 700;
      padding: .38rem .75rem;
      letter-spacing: .01em;
    }
    .sw-rep-scope-btn.is-on {
      background: #0f2744;
      color: #fff;
    }
    .sw-vchart {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: .55rem .45rem;
    }
    .sw-vchart.is-people {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(min(100%, 92px), 1fr));
      align-items: end;
      gap: .9rem .55rem;
    }
    .sw-vcol {
      width: 46px;
      flex: 0 0 46px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .28rem;
    }
    .sw-vchart.is-people .sw-vcol {
      width: auto;
      flex: none;
      max-width: 100%;
    }
    .sw-vcol-num {
      font-size: .78rem;
      font-weight: 800;
      color: #0f2744;
      line-height: 1;
      white-space: nowrap;
    }
    .sw-vcol-track {
      width: 16px;
      height: 58px;
      background: #eef2f6;
      border-radius: 3px 3px 1px 1px;
      display: flex;
      flex-direction: column-reverse;
      overflow: hidden;
      border: 1px solid #e2e8f0;
      border-bottom-width: 2px;
      border-bottom-color: #0f2744;
    }
    .sw-vchart.is-people .sw-vcol-track {
      width: 22px;
      height: 88px;
      border-radius: 5px 5px 2px 2px;
    }
    .sw-vcol-seg {
      width: 100%;
      flex: 0 0 auto;
      min-height: 0;
    }
    .sw-vcol-seg.completed { background: #0f2744; }
    .sw-vcol-seg.planned { background: transparent; }
    .sw-vcol-seg.iyi { background: #2d6a4f; }
    .sw-vcol-seg.orta { background: #c4a574; }
    .sw-vcol-seg.kotu { background: #c48a96; }
    .sw-vcol-name {
      font-size: .74rem;
      line-height: 1.2;
      color: #475569;
      text-align: center;
      width: 100%;
      min-height: 2.55em;
      font-weight: 600;
    }
    .sw-vcol-first, .sw-vcol-last {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      line-height: 1.25;
    }
    .sw-vcol-first { font-weight: 700; font-size: .8rem; color: #0f2744; }
    .sw-vcol-last { font-weight: 600; font-size: .74rem; color: #64748b; }
    .sw-vcol-sub {
      font-size: .68rem;
      color: #94a3b8;
      font-weight: 600;
      line-height: 1;
    }
    .sw-rep-people-note {
      margin: .45rem 0 0;
      font-size: .72rem;
      color: #94a3b8;
    }
    .sw-rep-empty-sm { padding: .6rem .4rem; font-size: .8rem; }
    .sw-rep-who {
      margin-top: .45rem;
      font-size: .72rem;
      color: #64748b;
      line-height: 1.3;
      font-weight: 600;
    }
    .sw-rep-find-meta b { color: #0f2744; font-weight: 700; }
    .sw-rep-chart-zone {
      border: 1px solid #e8eef4;
      border-radius: 10px;
      padding: .75rem .85rem .85rem;
      margin-bottom: .7rem;
      border-left: 4px solid #0f2744;
      background: #fafbfd;
    }
    .sw-rep-chart-zone[data-z="1"] { border-left-color: #0f2744; background: #f4f7fb; }
    .sw-rep-chart-zone[data-z="2"] { border-left-color: #0f766e; background: #f2faf8; }
    .sw-rep-chart-zone[data-z="3"] { border-left-color: #5b4b8a; background: #f6f4fb; }
    .sw-rep-chart-zone[data-z="4"] { border-left-color: #9a6b2f; background: #f8f3eb; }
    .sw-rep-chart-zone-title {
      display: flex;
      align-items: center;
      gap: .45rem;
      font-weight: 700;
      color: #0f2744;
      font-size: .88rem;
      margin-bottom: .65rem;
    }
    .sw-rep-hot-title {
      font-size: .88rem;
      font-weight: 700;
      color: #0f2744;
      margin: 1rem 0 .55rem;
    }
    .sw-rep-hot {
      display: grid;
      grid-template-columns: 1fr;
      gap: .85rem;
    }
    .sw-rep-hot-zone {
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      padding: .85rem 1rem 1rem;
      background: #fafbfd;
      border-left: 4px solid #0f2744;
      min-width: 0;
    }
    .sw-rep-hot-zone[data-z="1"] { border-left-color: #0f2744; }
    .sw-rep-hot-zone[data-z="2"] { border-left-color: #0f766e; }
    .sw-rep-hot-zone[data-z="3"] { border-left-color: #5b4b8a; }
    .sw-rep-hot-zone[data-z="4"] { border-left-color: #9a6b2f; }
    .sw-rep-hot-head {
      display: flex;
      align-items: center;
      gap: .45rem;
      font-weight: 700;
      font-size: .95rem;
      color: #0f2744;
      margin-bottom: .7rem;
    }
    .sw-rep-hot-empty { font-size: .8rem; color: #94a3b8; padding: .4rem 0; }
    .sw-vcol-note {
      font-size: .68rem;
      line-height: 1.25;
      color: #64748b;
      text-align: center;
      width: 100%;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      min-height: 1.6em;
    }
    .sw-vchart.is-depts {
      grid-template-columns: repeat(auto-fill, minmax(min(100%, 92px), 1fr));
      gap: .9rem .55rem;
    }
    .sw-vchart.is-zones {
      grid-template-columns: repeat(4, minmax(88px, 140px));
      justify-content: start;
    }
    @media (max-width: 899px) {
      .sw-rep-crit-row {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: .35rem;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
      }
      .sw-rep-crit { flex: 0 0 108px; }
      .sw-rep-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .sw-rep-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 767px) {
      .sw-rep-kpis, .sw-rep-zones { grid-template-columns: 1fr 1fr; }
      .sw-rep-areas { grid-template-columns: 1fr 1fr; }
      .sw-rep-hot { grid-template-columns: 1fr; }
      .sw-vchart.is-zones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .sw-vchart.is-people,
      .sw-vchart.is-depts {
        grid-template-columns: repeat(auto-fill, minmax(min(100%, 76px), 1fr));
        gap: .75rem .4rem;
      }
      .sw-vchart.is-people .sw-vcol-track {
        width: 20px;
        height: 76px;
      }
      .sw-rep-block.is-people { padding: .7rem .7rem .8rem; }
      .sw-rep-hot-zone { padding: .7rem .7rem .85rem; }
      .sw-rep-scope { width: 100%; }
      .sw-rep-scope-btn { flex: 1; min-height: 40px; }
      .sw-rep-people-head { align-items: stretch; }
    }
    @media (max-width: 480px) {
      .sw-rep-zones,
      .sw-rep-areas { grid-template-columns: 1fr; }
      .sw-rep-zone { min-height: 0; }
      .sw-rep-kpi { min-height: 0; padding: .7rem .75rem; }
      .sw-rep-detail-head { gap: .5rem; }
      .sw-rep-page-btn { min-width: 44px; min-height: 44px; }
      .sw-rep-xlsx { min-width: 720px; font-size: .78rem; }
      .sw-rep-xlsx-wrap { max-height: min(55dvh, 520px); }
    }

    @media (pointer: coarse) {
      .sw-month-nav .btn,
      .sw-rep-back,
      .sw-tut-close,
      .sw-tut-skip {
        min-width: 44px;
        min-height: 44px;
      }
      .nav-tabs .nav-link { min-height: 44px; }
    }

    @media (hover: none) {
      .module-card:hover,
      .module-card:focus-visible,
      .mg-menu-card:hover,
      .sw-auditor-card.is-openable:hover,
      .dash-kpi:hover,
      .sw-rep-zone:hover,
      .sw-rep-area:hover {
        transform: none;
      }
    }

    @media (max-height: 500px) and (orientation: landscape) {
      .login-content, .module-content {
        justify-content: flex-start;
        padding-top: max(.75rem, env(safe-area-inset-top));
        padding-bottom: max(.75rem, env(safe-area-inset-bottom));
      }
      .module-card { min-height: 0; }
      .sw-tut-modal, .sw-flow-root.is-tutorial .sw-tut-pane {
        max-height: 100%;
      }
      .zone-plan-root:not(.is-auditor-view) .sw-month-cal { min-height: 220px; }
    }

    @media (max-width: 575.98px) {
      .modal-fullscreen-sm-down .modal-footer {
        padding-bottom: max(.85rem, env(safe-area-inset-bottom));
      }
    }

    @media print {
      body * { visibility:hidden; }
      #repPrintArea, #repPrintArea * { visibility:visible; }
      #repPrintArea { position:absolute; left:0; top:0; width:100%; }
      .rep-no-print { display:none !important; }
      .rep-print-header { display:block !important; }
      .rep-card { box-shadow:none; break-inside:avoid; }
      .rep-photo-card img { height:90px; }
      .tab-content, .page-wrap { padding:0 !important; }
      .topbar, .nav-tabs, #loginScreen, #moduleScreen { display:none !important; }
    }