    /* weekly.htmlのみ：ヘッダーをstickyではなく通常フローに */
    .gs-topbar {
      position: static !important;
      backdrop-filter: none !important;
    }
    body { background: #f3f4f6; }
    .container { max-width: 1300px; padding: 12px; }

    .ctrl-bar {
      display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
      background: #fff; padding: 10px 14px; border-radius: var(--radius-sm);
      box-shadow: var(--shadow-sm); margin-bottom: 10px;
    }
    .ctrl-bar select, .ctrl-bar button, .ctrl-bar input[type="date"] {
      padding: 8px 16px; border: 1px solid rgba(60,64,67,.14); border-radius: 9999px;
      font-size: 14px; font-family: inherit; background: #fff; cursor: pointer;
      color: #202124;
      box-shadow: 0 1px 2px rgba(60,64,67,.12), 0 1px 3px 1px rgba(60,64,67,.08);
      transition: background 180ms;
    }
    .ctrl-bar select:hover, .ctrl-bar button:hover, .ctrl-bar input[type="date"]:hover { background: #eef3fd; }
    .ctrl-bar select:focus, .ctrl-bar input[type="date"]:focus {
      outline: none; border-color: #1a73e8; box-shadow: 0 0 0 3px rgba(26,115,232,.18);
    }
    .ctrl-bar .spacer { flex: 1; }
    .week-range { font-weight: 700; color: var(--navy); padding: 0 10px; }

    .summary {
      background: #fff; border-radius: var(--radius-md); padding: 12px;
      box-shadow: var(--shadow-sm); margin-bottom: 10px;
      display: flex; gap: 16px; flex-wrap: wrap;
    }
    .sm-item { font-size: 13px; }
    .sm-item strong { font-size: 18px; color: var(--navy); margin-right: 4px; }

    .week-table {
      background: #fff; border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
      overflow: hidden;
    }
    .day-row {
      display: flex; border-bottom: 1px solid var(--gray-200); min-height: 50px;
    }
    .day-row:last-child { border-bottom: none; }
    .day-cell {
      width: 130px; flex-shrink: 0; padding: 10px 12px;
      background: #f8fafc; border-right: 2px solid var(--gray-200);
      display: flex; flex-direction: column; gap: 2px;
    }
    .day-cell.sat { background: #eff6ff; color: #2563eb; }
    .day-cell.sun { background: #fef2f2; color: #dc2626; }
    .day-md { font-size: 16px; font-weight: 700; }
    .day-count { font-size: 11px; color: var(--gray-600); }

    .job-list { flex: 1; padding: 6px 10px; display: flex; flex-direction: column; gap: 4px; }
    .job-row {
      display: flex; align-items: center; gap: 8px; padding: 4px 0;
      font-size: 13px; flex-wrap: wrap;
      border-bottom: 1px dashed var(--gray-200);
    }
    .job-row:last-child { border-bottom: none; }
    .type-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .td-交通誘導 { background: #f59e0b; }
    .td-管制     { background: #8b5cf6; }
    .td-イベント { background: #10b981; }
    .td-施設     { background: #3b82f6; }
    .td-unknown  { background: #9ca3af; }
    .j-name { font-weight: 700; min-width: 130px; }
    .j-time { color: var(--gray-700); font-variant-numeric: tabular-nums; }
    .j-members { color: var(--gray-700); flex: 1; min-width: 150px; font-size: 12px; }
    .j-members .empty { color: var(--gray-400); }
    .j-count { font-size: 11px; color: var(--gray-600); }
    /* v6.2 ポスト単位ステータスチップ (POST_LEVEL_CONFIRM_DESIGN.md §3-1 配色) */
    .post-chip {
      display: inline-block; padding: 1px 8px; border-radius: 9999px;
      font-size: 11px; margin: 0 2px 2px 0; line-height: 1.5;
      border: 1px solid transparent;
    }
    .post-chip.post-draft      { background: transparent; border-color: var(--gray-300, #d0d7de); color: var(--gray-700); }
    .post-chip.post-planned    { background: rgba(76,175,80,.15); color: #1b5e20; }
    .post-chip.post-ng         { background: rgba(244,67,54,.15); color: #b71c1c; }
    .post-chip.post-confirmed  { background: rgba(33,150,243,.15); color: #0d47a1; }
    .post-chip.post-locked     { background: rgba(158,158,158,.15); color: #424242; }

    .empty-day { font-size: 12px; color: var(--gray-400); padding: 4px 0; }
    .empty-all { padding: 40px; text-align: center; color: var(--gray-600); }

    /* ============ スマホ専用ビュー ============ */
    .mobile-view { display: none; }
    @media (max-width: 768px) {
      .week-table { display: none !important; }
      .mobile-view { display: block; padding: 0 6px 40px; }
    }

    .m-day-block { margin-bottom: 4px; }
    .m-day-header {
      position: sticky; top: 8px; z-index: 20;
      background: color-mix(in srgb, #e8f0fe 96%, transparent);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid #c5d8f6;
      border-radius: 10px;
      padding: 7px 12px;
      margin-bottom: 6px;
      display: flex; align-items: baseline; gap: 8px;
      box-shadow: 0 2px 8px rgba(26,115,232,.12);
    }
    .m-day-date { font-size: 14px; font-weight: 600; color: #1a73e8; }
    .m-day-count { font-size: 11px; color: #5f8dd3; }
    .m-job-list { margin-bottom: 12px; }
    .m-job-item {
      background: #ffffff;
      border: 1px solid rgba(60,64,67,.14);
      border-radius: 12px;
      padding: 10px 10px;
      margin-bottom: 6px;
      box-shadow: 0 1px 2px rgba(60,64,67,.12), 0 1px 3px 1px rgba(60,64,67,.08);
    }
    .m-job-row1 { display: flex; align-items: flex-start; gap: 6px; margin-bottom: 4px; }
    .m-job-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }
    .m-job-dot.traffic  { background: #f59e0b; }
    .m-job-dot.control  { background: #8b5cf6; }
    .m-job-dot.event    { background: #10b981; }
    .m-job-dot.facility { background: #3b82f6; }
    .m-job-name { font-size: 14px; font-weight: 500; color: #202124; flex: 1; line-height: 1.4; }
    .m-job-time { font-size: 11px; color: #5f6368; white-space: nowrap; padding-top: 2px; }
    .m-job-row2 { display: flex; align-items: center; justify-content: space-between; padding-left: 14px; gap: 8px; }
    .m-job-staff { font-size: 12px; color: #5f6368; flex: 1; line-height: 1.5; }
    .m-job-footer { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
    .m-job-count { font-size: 11px; color: #5f6368; }
    .m-job-badge {
      height: 20px; padding: 0 8px; border-radius: 9999px;
      font-size: 10px; font-weight: 600;
      display: inline-flex; align-items: center;
    }
    .m-job-badge.confirmed   { background: rgba(24,128,56,.10);  color: #188038; }
    .m-job-badge.unconfirmed { background: rgba(242,153,0,.12);  color: #b06000; }
    .m-empty { font-size: 12px; color: #80868b; padding: 4px 14px 8px; }

    @media print {
      body { background: #fff; }
      .header, .ctrl-bar, #btnPrint { display: none !important; }
      .container { max-width: 100%; padding: 0; }
      .week-table { box-shadow: none; border: 1px solid #000; }
      .day-row { page-break-inside: avoid; }
    }
    @page { size: A4 landscape; margin: 10mm; }
