:root {
      --bg: #f6f7f9;
      --panel: #ffffff;
      --text: #111827;
      --muted: #6b7280;
      --subtle: #9ca3af;
      --line: #e5e7eb;
      --line-strong: #d1d5db;
      --primary: #2563eb;
      --primary-dark: #1d4ed8;
      --primary-soft: #eff6ff;
      --green: #16a34a;
      --orange: #f97316;
      --red: #ef4444;
      --radius: 14px;
      --radius-sm: 10px;
      --shadow: 0 12px 28px rgba(15, 23, 42, 0.07);
      --shadow-strong: 0 24px 70px rgba(15, 23, 42, 0.24);
      --table-header-top: 58px;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background: var(--bg);
      color: var(--text);
    }

    .startup-loading-screen {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
      background: rgba(246, 247, 249, 0.96);
      backdrop-filter: blur(10px);
      transition: opacity 0.18s ease, visibility 0.18s ease;
    }

    .startup-loading-screen.hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    .startup-loading-card {
      width: min(360px, 100%);
      padding: 24px 22px;
      border: 1px solid var(--line);
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.94);
      box-shadow: var(--shadow-strong);
      text-align: center;
    }

    .startup-loading-spinner {
      width: 34px;
      height: 34px;
      margin: 0 auto 14px;
      border: 3px solid #dbeafe;
      border-top-color: var(--primary);
      border-radius: 50%;
      animation: startupSpin 0.85s linear infinite;
    }

    .startup-loading-title {
      margin: 0;
      font-size: 16px;
      font-weight: 950;
      letter-spacing: -0.04em;
    }

    .startup-loading-message {
      margin: 7px 0 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 700;
      line-height: 1.45;
    }

    @keyframes startupSpin {
      to {
        transform: rotate(360deg);
      }
    }

    button,
    input,
    select,
    textarea {
      font: inherit;
    }

    button {
      border: 0;
      cursor: pointer;
    }

    .app {
      max-width: 1480px;
      margin: 0 auto;
      padding: 24px;
    }

    .topbar {
      display: flex;
      justify-content: space-between;
      gap: 18px;
      align-items: flex-start;
      margin-bottom: 18px;
    }

    .title h1 {
      margin: 0;
      font-size: 26px;
      letter-spacing: -0.04em;
      line-height: 1.15;
    }

    .title p {
      margin: 7px 0 0;
      color: var(--muted);
      font-size: 13px;
    }

    .summary {
      display: grid;
      grid-template-columns: repeat(5, minmax(112px, 1fr));
      gap: 8px;
      min-width: 640px;
    }

    .summary-card {
      background: rgba(255, 255, 255, 0.9);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 12px 13px;
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    }

    .summary-card small {
      display: block;
      color: var(--muted);
      margin-bottom: 4px;
      font-size: 12px;
      font-weight: 700;
    }

    .summary-card strong {
      font-size: 22px;
      letter-spacing: -0.04em;
      line-height: 1;
    }

    .tabs {
      display: flex;
      gap: 6px;
      margin-bottom: 14px;
      position: sticky;
      top: 0;
      z-index: 10;
      padding: 8px 0;
      background: rgba(246, 247, 249, 0.92);
      backdrop-filter: blur(12px);
    }

    .tab-button {
      padding: 9px 13px;
      border-radius: 999px;
      background: #e9edf3;
      color: #334155;
      font-size: 13px;
      font-weight: 800;
      transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
    }

    .tab-button:hover {
      transform: translateY(-1px);
    }

    .tab-button.active {
      background: var(--text);
      color: #fff;
    }

    .panel {
      display: none;
    }

    .panel.active {
      display: block;
    }

    .grid {
      display: grid;
      grid-template-columns: 380px 1fr;
      gap: 16px;
      align-items: start;
    }

    .card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .card-header {
      padding: 16px 16px 0;
    }

    .card-header h2 {
      margin: 0;
      font-size: 17px;
      letter-spacing: -0.03em;
      line-height: 1.25;
    }

    .card-header p {
      margin: 5px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .card-body {
      padding: 16px;
    }

    .form-grid {
      display: grid;
      gap: 10px;
    }

    .field {
      display: grid;
      gap: 5px;
    }

    .field label {
      font-size: 12px;
      color: #475569;
      font-weight: 800;
    }

    .field input,
    .field select,
    .field textarea {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 11px;
      padding: 10px 11px;
      background: #fff;
      outline: none;
      color: var(--text);
    }

    .field input:focus,
    .field select:focus,
    .field textarea:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
    }

    .two-col {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .contract-date-row {
      align-items: end;
    }

    .contract-date-group {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 74px;
      gap: 7px;
      align-items: end;
    }

    .contract-day-field input {
      text-align: center;
    }

    .primary-button,
    .sub-button,
    .danger-button,
    .ghost-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      border-radius: 11px;
      padding: 9px 13px;
      font-size: 13px;
      font-weight: 900;
      transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    }

    .primary-button:hover,
    .sub-button:hover,
    .danger-button:hover,
    .ghost-button:hover {
      transform: translateY(-1px);
    }

    .primary-button {
      background: var(--primary);
      color: #fff;
      box-shadow: 0 8px 18px rgba(37, 99, 235, 0.22);
    }

    .primary-button:hover {
      background: var(--primary-dark);
    }

    .sub-button {
      background: var(--primary-soft);
      color: var(--primary);
    }

    .danger-button {
      background: #fee2e2;
      color: #b91c1c;
    }

    .ghost-button {
      background: #f3f4f6;
      color: #374151;
    }

    .button-row {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      margin-top: 10px;
    }

    .table-wrap {
      width: 100%;
      overflow: auto;
      border-top: 1px solid var(--line);
      border-radius: 0 0 var(--radius) var(--radius);
    }

    table {
      width: 100%;
      border-collapse: separate;
      border-spacing: 0;
      min-width: 1100px;
    }

    th,
    td {
      border-bottom: 1px solid var(--line);
      padding: 10px 10px;
      text-align: left;
      vertical-align: middle;
      font-size: 13px;
    }

    th {
      background: #f9fafb;
      color: #64748b;
      font-size: 11px;
      font-weight: 900;
      letter-spacing: -0.01em;
      position: sticky;
      top: var(--table-header-top);
      z-index: 5;
      white-space: nowrap;
      box-shadow: inset 0 -1px 0 var(--line);
    }

    tr:hover td {
      background: #fbfdff;
    }

    .pill {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      border-radius: 999px;
      padding: 4px 8px;
      font-size: 11px;
      font-weight: 900;
      white-space: nowrap;
    }

    .pill.video { background: #e0f2fe; color: #0369a1; }
    .pill.print { background: #fef3c7; color: #92400e; }
    .pill.sns { background: #fce7f3; color: #9d174d; }
    .pill.done { background: #dcfce7; color: #166534; }
    .pill.normal { background: #e2e8f0; color: #334155; }
    .pill.leave { background: #ede9fe; color: #5b21b6; }

    .mini-actions {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }

    .mini-actions button {
      padding: 7px 9px;
      border-radius: 10px;
      font-size: 12px;
      font-weight: 800;
      background: #eef2ff;
      color: #3730a3;
      white-space: nowrap;
    }

    .mini-actions button.delete {
      background: #fee2e2;
      color: #b91c1c;
    }

    .project-list-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
      align-items: start;
    }

    .project-list-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
      padding: 16px;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    }

    .project-list-head .card-header {
      padding: 0;
    }

    .project-list-toolbar {
      display: flex;
      justify-content: flex-end;
      gap: 8px;
      flex-shrink: 0;
    }

    .project-form-panel[hidden] {
      display: none;
    }

    .company-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      padding: 4px 8px;
      background: #eef2ff;
      color: #3730a3;
      font-size: 11px;
      font-weight: 900;
      line-height: 1;
      white-space: nowrap;
    }

    .company-pill.short {
      min-width: 26px;
      height: 24px;
      padding: 0 7px;
      font-size: 11px;
    }

    .company-pill.short.is-i {
      background: #dbeafe;
      color: #1d4ed8;
    }

    .company-pill.short.is-m {
      background: #ecfdf5;
      color: #047857;
    }

    .col-division {
      width: 38px;
      min-width: 38px;
      text-align: center;
    }

    .project-table {
      min-width: 1040px;
    }

    .project-table th,
    .project-table td {
      padding: 8px 10px;
    }

    .project-table tbody tr {
      transition: background 0.15s ease;
    }

    .project-contract-cell {
      min-width: 132px;
      color: #475569;
      font-size: 12px;
      font-weight: 700;
      white-space: nowrap;
    }

    .project-client-cell strong {
      display: block;
      max-width: 220px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-size: 13px;
      letter-spacing: -0.02em;
    }

    .project-task-cell {
      min-width: 280px;
    }

    .project-task-button {
      display: inline-flex;
      align-items: center;
      padding: 0;
      max-width: 420px;
      background: transparent;
      color: var(--text);
      font-weight: 900;
      text-align: left;
      line-height: 1.35;
      letter-spacing: -0.02em;
    }

    .project-task-button:hover {
      color: var(--primary);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .project-money-cell,
    .project-contact-cell,
    .project-email-cell {
      color: #475569;
      font-size: 12px;
      white-space: nowrap;
    }

    .project-email-cell {
      max-width: 220px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .modal-backdrop {
      position: fixed;
      inset: 0;
      z-index: 100;
      background: rgba(17, 24, 39, 0.28);
      backdrop-filter: blur(12px);
    }

    .modal-backdrop[hidden],
    .modal-panel[hidden] {
      display: none;
    }

    .modal-panel {
      position: fixed;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      z-index: 110;
      width: min(720px, calc(100vw - 32px));
      max-height: calc(100vh - 48px);
      overflow: auto;
      border-radius: 20px;
      box-shadow: var(--shadow-strong);
    }

    .modal-panel.wide {
      width: min(920px, calc(100vw - 32px));
    }

    .modal-panel .card-header {
      padding: 18px 18px 0;
      background: #fff;
    }

    .modal-panel .card-body {
      padding: 18px;
    }

    .modal-close-row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: flex-start;
    }

    .icon-button {
      width: 34px;
      height: 34px;
      border-radius: 999px;
      background: #f3f4f6;
      color: #374151;
      font-weight: 900;
      flex: 0 0 auto;
    }

    .icon-button:hover {
      background: #e5e7eb;
    }

    .detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .detail-item {
      display: grid;
      gap: 4px;
      padding: 11px;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: #f9fafb;
    }

    .detail-item.full {
      grid-column: 1 / -1;
    }

    .detail-item small {
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
    }

    .detail-item strong,
    .detail-item span {
      font-size: 13px;
      line-height: 1.45;
    }

    .project-edit-box {
      display: grid;
      gap: 12px;
      margin-bottom: 16px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #f8fafc;
    }

    .linked-content-list {
      display: grid;
      gap: 8px;
      margin-top: 8px;
    }

    .linked-content-item {
      display: flex;
      justify-content: space-between;
      gap: 10px;
      padding: 9px 10px;
      border: 1px solid var(--line);
      border-radius: 11px;
      background: #fff;
      font-size: 12px;
    }

    .compact-table th,
    .compact-table td {
      padding: 9px 8px;
    }

    .daily-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 16px;
    }

    .daily-add-box {
      display: grid;
      grid-template-columns: 170px 1fr 140px 140px 130px;
      gap: 10px;
      align-items: end;
    }

    .check-list {
      display: grid;
      gap: 7px;
      min-width: 280px;
    }

    .check-item {
      display: grid;
      grid-template-columns: 18px 1fr auto;
      gap: 8px;
      align-items: center;
      padding: 8px;
      border: 1px solid #e5e7eb;
      border-radius: 10px;
      background: #fff;
    }

    .check-item span {
      line-height: 1.35;
    }

    .check-item.done span {
      color: #94a3b8;
      text-decoration: line-through;
    }

    .check-item button {
      background: transparent;
      color: #ef4444;
      font-weight: 900;
    }

    .progress {
      display: grid;
      gap: 6px;
      min-width: 110px;
    }

    .progress-bar {
      height: 10px;
      border-radius: 999px;
      background: #e5e7eb;
      overflow: hidden;
    }

    .progress-fill {
      height: 100%;
      background: var(--green);
      width: 0%;
    }

    .empty {
      padding: 34px;
      text-align: center;
      color: var(--muted);
      font-size: 13px;
    }

    .notice {
      padding: 11px 13px;
      border-radius: 12px;
      background: #fff7ed;
      color: #9a3412;
      border: 1px solid #fed7aa;
      font-size: 12px;
      line-height: 1.5;
      margin-bottom: 12px;
    }


    /* v0.01.5: 장비 리스트 v1.14 디자인 대조 반영 */
    :root {
      --bg-body: linear-gradient(120deg, #e0c3fc 0%, #8ec5fc 100%);
      --bg-glass: rgba(255, 255, 255, 0.72);
      --border-glass: rgba(255, 255, 255, 0.55);
      --shadow-glass: 0 8px 32px rgba(31, 38, 135, 0.15);
      --bg-tab-inactive: rgba(255, 255, 255, 0.4);
      --bg-th: rgba(71, 85, 105, 0.88);
      --bg-hover: rgba(255, 255, 255, 0.62);
      --bg-brand: rgba(241, 245, 249, 0.58);
      --border-color: rgba(148, 163, 184, 0.32);
      --border-light: rgba(255, 255, 255, 0.65);
      --border-th: rgba(255, 255, 255, 0.22);
      --text-main: #1e293b;
      --text-muted: #475569;
      --text-light: #64748b;
      --text-th: #ffffff;
      --title-color: #2563eb;
      --title-shadow: 0 4px 15px rgba(37, 99, 235, 0.3);
      --modal-overlay: rgba(0, 0, 0, 0.42);
      --bg-floating: rgba(255, 255, 255, 0.96);
      --bg: var(--bg-body);
      --panel: var(--bg-glass);
      --text: var(--text-main);
      --muted: var(--text-muted);
      --subtle: var(--text-light);
      --line: var(--border-color);
      --line-strong: rgba(148, 163, 184, 0.48);
      --radius: 16px;
      --radius-sm: 8px;
      --shadow: var(--shadow-glass);
      --shadow-strong: 0 28px 80px rgba(15, 23, 42, 0.32);
      --table-header-top: -1px;
    }

    html {
      min-height: 100%;
      background: #0f172a;
    }

    body {
      min-height: 100vh;
      padding: 20px;
      background: var(--bg-body);
      color: var(--text-main);
      line-height: 1.5;
      overflow-y: scroll;
    }

    body.modal-open {
      overflow: hidden;
    }

    .app {
      max-width: 1400px;
      margin: 0 auto;
      padding: 25px;
      background: var(--bg-glass);
      border: 1px solid var(--border-glass);
      border-radius: 16px;
      box-shadow: var(--shadow-glass);
      backdrop-filter: blur(16px);
    }

    .topbar {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      border-bottom: 1px solid var(--border-color);
      padding-bottom: 15px;
      margin-bottom: 16px;
      gap: 12px;
      position: relative;
      z-index: 100;
    }

    .title {
      width: 100%;
    }

    .title h1 {
      color: var(--title-color);
      text-shadow: var(--title-shadow);
      font-size: 32px;
      font-weight: 800;
      letter-spacing: 0.3px;
    }

    .title p {
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 600;
    }

    .summary {
      width: 100%;
      min-width: 0;
      grid-template-columns: repeat(5, minmax(112px, 1fr));
    }

    .summary-card {
      background: var(--bg-tab-inactive);
      border: 1px solid var(--border-light);
      box-shadow: none;
      backdrop-filter: blur(10px);
    }

    .summary-card small {
      color: var(--text-muted);
    }

    .summary-card strong {
      color: var(--text-main);
    }

    .tabs {
      gap: 5px;
      margin: 0 0 0;
      padding: 0;
      position: relative;
      top: auto;
      z-index: 100;
      background: transparent;
      backdrop-filter: none;
    }

    .tab-button {
      height: 42px;
      padding: 10px 25px;
      border: 1px solid var(--border-color);
      border-bottom: none;
      border-radius: 8px 8px 0 0;
      background: var(--bg-tab-inactive);
      color: var(--text-muted);
      backdrop-filter: blur(10px);
      font-size: 13px;
      font-weight: 800;
    }

    .tab-button.active {
      background: transparent;
      color: var(--primary);
      border-top: 3px solid var(--primary);
    }

    .panel.active {
      border: 1px solid var(--border-color);
      padding: 20px;
      background: transparent;
      border-radius: 0 0 12px 12px;
    }

    .card {
      background: transparent;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      overflow: visible;
    }

    #projectListCard {
      overflow: visible;
    }

    .project-list-head {
      align-items: center;
      padding: 0 0 12px;
      border-bottom: 0;
      background: transparent;
    }

    .project-list-head .card-header h2 {
      color: var(--text-main);
      font-size: 18px;
      font-weight: 900;
    }

    .project-list-head .card-header p {
      display: inline-flex;
      margin-top: 8px;
      padding: 8px 12px;
      border-left: 3px solid var(--primary);
      border-radius: 6px;
      background: rgba(0, 0, 0, 0.035);
      color: var(--text-main);
      font-size: 11px;
      font-weight: 700;
    }

    .project-list-toolbar .primary-button {
      min-height: 34px;
      padding: 8px 18px;
      border-radius: 20px;
      box-shadow: 0 4px 15px rgba(37, 99, 235, 0.35);
    }

    .table-wrap {
      border: 0;
      border-radius: 8px;
      overflow: auto;
    }

    table {
      border-collapse: separate;
      border-spacing: 0;
      border: 1px solid var(--border-color) !important;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.05);
      box-shadow: none;
    }

    th:first-child { border-top-left-radius: 7px; }
    th:last-child { border-top-right-radius: 7px; }
    tr:last-child td:first-child { border-bottom-left-radius: 7px; }
    tr:last-child td:last-child { border-bottom-right-radius: 7px; }

    th,
    td {
      border-bottom: 1px solid var(--border-color);
      border-right: 1px solid var(--border-color);
      background-clip: padding-box;
    }

    th:last-child,
    td:last-child {
      border-right: none;
    }

    tr:last-child td {
      border-bottom: none;
    }

    th {
      background: var(--bg-th);
      color: var(--text-th);
      top: -1px;
      z-index: 100;
      border-bottom: none !important;
      border-right: 1px solid var(--border-th);
      box-shadow: inset 0 -2px 0 var(--text-muted);
      backdrop-filter: blur(10px);
      text-align: center;
    }

    .project-table {
      min-width: 1060px;
      table-layout: fixed;
    }

    .project-table th,
    .project-table td {
      height: 42px;
      padding: 8px 10px;
      text-align: center;
      font-size: 12px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: middle;
    }

    .project-table th:nth-child(1),
    .project-table td:nth-child(1) { width: 132px; }
    .project-table th:nth-child(2),
    .project-table td:nth-child(2) { width: 52px; }
    .project-table th:nth-child(3),
    .project-table td:nth-child(3) { width: 160px; }
    .project-table th:nth-child(4),
    .project-table td:nth-child(4) { width: 300px; }
    .project-table th:nth-child(5),
    .project-table td:nth-child(5) { width: 120px; }
    .project-table th:nth-child(6),
    .project-table td:nth-child(6) { width: 92px; }
    .project-table th:nth-child(7),
    .project-table td:nth-child(7) { width: 128px; }
    .project-table th:nth-child(8),
    .project-table td:nth-child(8) { width: 176px; }

    .project-table tbody tr:hover td {
      background: var(--bg-hover);
    }

    .project-contract-cell,
    .project-money-cell,
    .project-contact-cell,
    .project-email-cell {
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 700;
    }

    .project-client-cell {
      background-color: var(--bg-brand) !important;
      color: var(--text-main);
      font-weight: 800;
    }

    .project-client-cell strong {
      max-width: none;
      font-size: 12px;
    }

    .project-task-cell {
      text-align: left !important;
    }

    .project-task-button {
      display: block;
      width: 100%;
      max-width: none;
      padding: 4px 8px;
      border: 1px solid var(--border-light);
      border-radius: 4px;
      background: var(--bg-hover);
      color: var(--primary);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.25;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .project-task-button:hover {
      background: rgba(255, 255, 255, 0.82);
      color: var(--primary-dark);
      text-decoration: none;
      border-color: var(--primary);
    }

    .company-pill.short {
      min-width: auto;
      height: auto;
      padding: 2px 6px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 900;
      border: 1px solid var(--border-light);
    }

    .company-pill.short.is-i {
      background: var(--bg-hover);
      color: var(--primary);
    }

    .company-pill.short.is-m {
      background: rgba(16, 185, 129, 0.16);
      color: #047857;
      border-color: rgba(16, 185, 129, 0.28);
    }

    .primary-button,
    .sub-button,
    .danger-button,
    .ghost-button {
      border-radius: 20px;
      padding: 8px 20px;
      font-weight: 900;
    }

    .ghost-button,
    .sub-button {
      background: var(--bg-hover);
      border: 1px solid var(--border-light);
    }

    .danger-button {
      background: var(--red);
      color: #fff;
    }

    .modal-backdrop {
      z-index: 9000;
      background: var(--modal-overlay);
      backdrop-filter: blur(5px);
      -webkit-backdrop-filter: blur(5px);
      transform: translateZ(0);
    }

    .modal-panel {
      z-index: 9010;
      width: min(720px, calc(100vw - 30px));
      max-height: calc(100vh - 40px);
      background: var(--bg-glass);
      border: 1px solid var(--border-glass);
      border-radius: 16px;
      box-shadow: var(--shadow-glass);
      backdrop-filter: blur(16px);
      color: var(--text-main);
      overflow: auto;
    }

    .modal-panel.wide {
      width: min(920px, calc(100vw - 30px));
    }

    .modal-panel .card-header,
    .modal-panel .card-body {
      background: transparent;
    }

    .modal-close-row h2 {
      color: var(--primary);
    }

    .icon-button {
      width: 28px;
      height: 28px;
      border: 1px solid var(--border-light);
      background: var(--bg-tab-inactive);
      color: var(--text-muted);
      backdrop-filter: blur(5px);
    }

    .icon-button:hover {
      background: var(--bg-hover);
      color: var(--text-main);
    }

    .field label,
    .form-group label {
      color: var(--text-muted);
      font-weight: 900;
    }

    .field input,
    .field select,
    .field textarea {
      border: 1px solid var(--border-color);
      border-radius: 6px;
      background: rgba(255, 255, 255, 0.24);
      color: var(--text-main);
    }

    .field input:focus,
    .field select:focus,
    .field textarea:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
      background: rgba(255, 255, 255, 0.42);
    }

    .detail-item,
    .project-edit-box,
    .linked-content-item {
      border: 1px solid var(--border-color);
      background: rgba(255, 255, 255, 0.22);
    }

    .detail-item small {
      color: var(--text-muted);
    }

    .empty {
      color: var(--text-muted);
    }



    /* v0.01.7: project row hover/action cleanup */
    .project-table tbody tr.project-row {
      position: relative;
      cursor: pointer;
      transition: box-shadow 0.16s ease, outline-color 0.16s ease;
      outline: 1px solid transparent;
      outline-offset: -1px;
    }

    .project-table tbody tr.project-row:hover {
      box-shadow: inset 3px 0 0 var(--primary), 0 4px 14px rgba(15, 23, 42, 0.12);
      outline-color: rgba(37, 99, 235, 0.35);
      z-index: 4;
    }

    .project-table tbody tr.project-row:hover td {
      background: rgba(255, 255, 255, 0.72) !important;
    }

    .project-table tbody tr.project-row:hover .project-task-action {
      color: var(--primary-dark);
    }

    .project-table tbody tr.project-row:active td {
      background: rgba(255, 255, 255, 0.82) !important;
    }

    .project-task-action {
      display: block;
      width: 100%;
      color: var(--primary);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.25;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      pointer-events: none;
    }

    .modal-panel {
      width: min(430px, calc(100vw - 30px));
      max-height: calc(100vh - 56px);
    }

    .modal-panel.wide {
      width: min(560px, calc(100vw - 30px));
    }

    .modal-panel .card-header {
      padding: 14px 16px 0;
    }

    .modal-panel .card-body {
      padding: 14px 16px 16px;
    }

    .modal-close-row {
      align-items: center;
      gap: 10px;
    }

    .modal-close-row h2 {
      font-size: 17px;
      margin-bottom: 3px;
    }

    .modal-close-row p {
      font-size: 12px;
      line-height: 1.35;
    }

    .modal-panel .form-grid {
      gap: 8px;
    }

    .modal-panel .two-col {
      gap: 8px;
    }

    .modal-panel .field {
      gap: 4px;
    }

    .modal-panel .field label {
      font-size: 11px;
    }

    .modal-panel .field input,
    .modal-panel .field select,
    .modal-panel .field textarea {
      min-height: 34px;
      padding: 7px 9px;
      font-size: 12px;
    }

    .modal-panel .button-row {
      gap: 6px;
      margin-top: 8px;
    }

    .modal-panel .primary-button,
    .modal-panel .sub-button,
    .modal-panel .danger-button,
    .modal-panel .ghost-button {
      padding: 7px 14px;
      font-size: 12px;
      border-radius: 18px;
    }

    .modal-panel .detail-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 7px;
    }

    .modal-panel .detail-item {
      padding: 8px 9px;
      border-radius: 9px;
      gap: 3px;
    }

    .modal-panel .detail-item small {
      font-size: 10px;
    }

    .modal-panel .detail-item strong,
    .modal-panel .detail-item span {
      font-size: 12px;
      line-height: 1.32;
    }

    .modal-panel .linked-content-list {
      gap: 6px;
      margin-top: 6px;
    }

    .modal-panel .linked-content-item {
      padding: 7px 8px;
      font-size: 11px;
      border-radius: 8px;
    }



    /* v0.01.8: project modal section/action alignment cleanup */
    .modal-panel .project-modal-form {
      gap: 9px;
    }

    .modal-panel .modal-section,
    .modal-panel .detail-section {
      display: grid;
      gap: 8px;
      margin-bottom: 9px;
      padding: 10px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.18);
    }

    .modal-panel .modal-section-title {
      display: flex;
      align-items: center;
      min-height: 18px;
      color: var(--primary);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: -0.01em;
    }

    .modal-panel .detail-section .detail-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 7px;
    }

    .modal-panel .content-section {
      padding-bottom: 11px;
    }

    .modal-panel .content-action-row {
      display: flex;
      justify-content: center;
      align-items: center;
      padding-top: 4px;
    }

    .modal-panel .content-action-row .primary-button {
      min-width: 132px;
    }

    .modal-panel .modal-action-row {
      justify-content: center;
      align-items: center;
      gap: 8px;
      margin-top: 10px;
    }

    .modal-panel .detail-action-row {
      padding-top: 2px;
    }



    /* v0.01.9: full viewport modal overlay and compact modal layout */
    .modal-backdrop {
      position: fixed !important;
      inset: 0 !important;
      width: 100vw !important;
      height: 100vh !important;
      height: 100dvh !important;
      z-index: 99990 !important;
      background: rgba(15, 23, 42, 0.38) !important;
      backdrop-filter: blur(10px) saturate(118%) !important;
      -webkit-backdrop-filter: blur(10px) saturate(118%) !important;
      transform: none !important;
    }

    .modal-panel {
      position: fixed !important;
      left: 50% !important;
      top: 50% !important;
      transform: translate(-50%, -50%) !important;
      z-index: 100000 !important;
      width: min(620px, calc(100vw - 32px));
      max-height: none;
      overflow: visible;
      border-radius: 14px;
    }

    .modal-panel.wide {
      width: min(680px, calc(100vw - 32px));
    }

    .modal-panel .card-header {
      padding: 10px 12px 0;
    }

    .modal-panel .card-body {
      padding: 10px 12px 12px;
    }

    .modal-close-row {
      gap: 8px;
      align-items: center;
    }

    .modal-close-row h2 {
      font-size: 15px;
      line-height: 1.2;
      margin: 0 0 2px;
    }

    .modal-close-row p {
      margin: 0;
      font-size: 10px;
      line-height: 1.25;
    }

    .modal-panel .project-modal-form {
      gap: 5px;
    }

    .modal-panel .modal-section,
    .modal-panel .detail-section {
      gap: 5px;
      margin-bottom: 5px;
      padding: 7px;
      border-radius: 10px;
    }

    .modal-panel .project-modal-form .modal-section {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: start;
    }

    .modal-panel .project-modal-form .modal-section-title {
      grid-column: 1 / -1;
    }

    .modal-panel .project-modal-form .two-col {
      display: contents;
    }

    .modal-panel .modal-section-title {
      min-height: 14px;
      font-size: 10px;
      line-height: 1.2;
    }

    .modal-panel .field {
      gap: 2px;
    }

    .modal-panel .field label {
      font-size: 10px;
      line-height: 1.2;
    }

    .modal-panel .field input,
    .modal-panel .field select,
    .modal-panel .field textarea {
      min-height: 29px;
      padding: 5px 7px;
      font-size: 11px;
      line-height: 1.2;
    }

    .modal-panel .detail-section .detail-grid,
    .modal-panel .detail-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 5px;
    }

    .modal-panel .detail-item {
      padding: 6px 7px;
      gap: 2px;
      border-radius: 8px;
      min-width: 0;
    }

    .modal-panel .detail-item.full {
      grid-column: 1 / -1;
    }

    .modal-panel .detail-item small {
      font-size: 9px;
      line-height: 1.15;
    }

    .modal-panel .detail-item strong,
    .modal-panel .detail-item span {
      font-size: 11px;
      line-height: 1.22;
      overflow-wrap: anywhere;
    }

    .modal-panel .content-section {
      padding-bottom: 7px;
    }

    .modal-panel .linked-content-list {
      gap: 4px;
      margin-top: 2px;
    }

    .modal-panel .linked-content-item {
      padding: 5px 7px;
      font-size: 10px;
      line-height: 1.25;
      border-radius: 7px;
    }

    .modal-panel .empty {
      padding: 8px !important;
      font-size: 11px;
    }

    .modal-panel .content-action-row {
      padding-top: 2px;
    }

    .modal-panel .button-row,
    .modal-panel .modal-action-row {
      gap: 6px;
      margin-top: 6px;
    }

    .modal-panel .primary-button,
    .modal-panel .sub-button,
    .modal-panel .danger-button,
    .modal-panel .ghost-button {
      padding: 6px 12px;
      min-height: 28px;
      font-size: 11px;
      border-radius: 16px;
    }

    .modal-panel .content-action-row .primary-button {
      min-width: 110px;
    }



    /* v0.02.1: safer detail actions and custom delete confirm modal */
    .modal-panel .detail-action-row {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 8px;
      width: 100%;
    }

    .modal-panel .detail-danger-zone {
      justify-self: start;
      grid-column: 1;
    }

    .modal-panel .detail-main-actions {
      grid-column: 2;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 6px;
    }

    .modal-panel.delete-confirm-panel {
      width: min(360px, calc(100vw - 32px));
    }

    .delete-confirm-box {
      display: grid;
      gap: 6px;
      padding: 12px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.36);
      text-align: center;
    }

    .delete-confirm-box small {
      color: var(--text-light);
      font-size: 10px;
      font-weight: 800;
    }

    .delete-confirm-box strong {
      color: var(--text-main);
      font-size: 13px;
      line-height: 1.35;
      overflow-wrap: anywhere;
    }

    .delete-confirm-box p {
      margin: 0;
      color: var(--text-muted);
      font-size: 11px;
      line-height: 1.45;
    }

    .delete-confirm-actions {
      justify-content: center;
    }



    /* v0.02.3: content list popup and unified compact table style */
    .content-list-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
      align-items: start;
    }

    .content-list-head .card-header {
      padding: 0;
    }

    .content-table {
      min-width: 1120px;
    }

    .content-table th,
    .content-table td {
      padding: 8px 10px;
    }

    .content-table tbody tr {
      transition: background 0.15s ease, box-shadow 0.15s ease;
    }

    .content-table tbody tr:hover td {
      background: rgba(255, 255, 255, 0.66) !important;
    }

    .content-project-cell strong,
    .content-task-cell,
    .content-title-text {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .content-project-cell strong {
      max-width: 190px;
      font-size: 12px;
      letter-spacing: -0.02em;
    }

    .content-task-cell {
      max-width: 240px;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 700;
    }

    .content-title-text {
      max-width: 260px;
      color: var(--text-main);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: -0.02em;
    }

    .content-meta-cell,
    .content-status-cell,
    .content-date-cell,
    .content-memo-cell {
      color: var(--text-muted);
      font-size: 11px;
      white-space: nowrap;
    }

    .content-memo-cell {
      max-width: 220px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .content-form-panel {
      width: min(560px, calc(100vw - 32px));
    }

    .content-modal-form .full-field {
      grid-column: 1 / -1;
    }

    @media (max-width: 1100px) {
      .topbar {
        display: grid;
      }

      .summary {
        min-width: 0;
        grid-template-columns: repeat(2, 1fr);
      }

      .grid {
        grid-template-columns: 1fr;
      }

      .daily-add-box {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media (max-width: 720px) {
      .app {
        padding: 14px;
      }

      .summary {
        grid-template-columns: 1fr;
      }

      .two-col,
      .daily-add-box {
        grid-template-columns: 1fr;
      }

      .tabs {
        overflow-x: auto;
      }

      .tab-button {
        white-space: nowrap;
      }

      .project-list-head {
        display: grid;
      }

      .project-list-toolbar {
        justify-content: stretch;
      }

      .project-list-toolbar .primary-button {
        width: 100%;
      }

      .detail-grid {
        grid-template-columns: 1fr;
      }
    }



    @media (max-width: 720px) {
      .modal-panel,
      .modal-panel.wide {
        width: calc(100vw - 20px) !important;
        max-height: none !important;
        overflow: visible !important;
      }

      .modal-panel .project-modal-form .modal-section,
      .modal-panel .detail-section .detail-grid,
      .modal-panel .detail-grid {
        grid-template-columns: 1fr;
      }
    }



    /* v0.02.4: content table height/alignment and episode count field */
    .content-table {
      min-width: 1180px;
    }

    .content-table th,
    .content-table td {
      height: 34px;
      padding: 7px 8px;
      text-align: center;
      vertical-align: middle;
    }

    .content-table tbody tr {
      height: 34px;
    }

    .content-table .content-project-cell,
    .content-table .content-task-cell,
    .content-table .content-title-cell,
    .content-table .content-meta-cell,
    .content-table .content-status-cell,
    .content-table .content-date-cell,
    .content-table .content-memo-cell,
    .content-table .content-episode-cell {
      text-align: center;
    }

    .content-table .content-project-cell strong,
    .content-table .content-task-cell,
    .content-table .content-title-text,
    .content-table .content-meta-cell,
    .content-table .content-status-cell,
    .content-table .content-date-cell,
    .content-table .content-memo-cell,
    .content-table .content-episode-cell {
      margin-left: auto;
      margin-right: auto;
    }

    .content-table .content-title-text {
      color: var(--primary);
    }

    .content-episode-cell {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 800;
      white-space: nowrap;
    }

    .content-modal-form .content-title-row {
      grid-template-columns: minmax(0, 1fr) 92px;
    }

    .linked-content-episode {
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 800;
      white-space: nowrap;
    }


    /* v0.02.5: content schedule first-step planning UI */
    .content-schedule-section {
      gap: 8px;
    }

    .schedule-toggle-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 6px 8px;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.26);
    }

    .schedule-toggle {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      color: var(--text-main);
      font-size: 11px;
      font-weight: 900;
      cursor: pointer;
      user-select: none;
    }

    .schedule-toggle input,
    .schedule-step-check {
      accent-color: var(--primary);
    }

    .schedule-total {
      color: var(--green);
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    .schedule-total.invalid {
      color: var(--red);
    }

    .schedule-total.valid {
      color: var(--green);
    }

    .schedule-config[hidden] {
      display: none;
    }

    .schedule-config {
      display: grid;
      gap: 8px;
    }

    .schedule-date-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .schedule-step-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
    }

    .schedule-step-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 64px;
      align-items: center;
      gap: 6px;
      padding: 5px 6px;
      border: 1px solid var(--border-color);
      border-radius: 9px;
      background: rgba(255, 255, 255, 0.24);
    }

    .schedule-step-label {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      min-width: 0;
      color: var(--text-main);
      font-size: 10px;
      font-weight: 800;
      white-space: nowrap;
      cursor: pointer;
    }

    .schedule-ratio-wrap {
      display: flex;
      align-items: center;
      gap: 3px;
      justify-content: flex-end;
      color: var(--text-light);
      font-size: 10px;
      font-weight: 800;
    }

    .schedule-ratio-input {
      width: 44px !important;
      min-height: 26px !important;
      padding: 4px 5px !important;
      text-align: right;
      font-size: 11px !important;
      font-weight: 800;
    }

    .schedule-ratio-input:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .schedule-preview {
      display: grid;
      gap: 4px;
      max-height: 132px;
      overflow-y: auto;
      padding: 6px;
      border: 1px dashed var(--border-color);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.2);
    }

    .schedule-preview-empty {
      color: var(--text-light);
      font-size: 10px;
      font-weight: 700;
      text-align: center;
      padding: 6px;
    }

    .schedule-preview-row {
      display: grid;
      grid-template-columns: 70px 42px minmax(0, 1fr);
      gap: 6px;
      align-items: center;
      padding: 4px 6px;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.28);
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 800;
    }

    .schedule-preview-row strong {
      color: var(--text-main);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .schedule-preview-row span {
      white-space: nowrap;
    }


    /* v0.02.9: segmented schedule ratio bar and collapsible schedule sections */
    .schedule-ratio-summary {
      display: grid;
      gap: 5px;
    }

    .schedule-ratio-summary-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 900;
    }

    .schedule-segmented-bar {
      position: relative;
      display: flex;
      width: 100%;
      min-height: 42px;
      overflow: hidden;
      border: 1px solid var(--border-color);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.18);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
    }

    .schedule-segmented-empty {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      color: var(--text-light);
      font-size: 10px;
      font-weight: 800;
      padding: 8px;
    }

    .schedule-segment {
      position: relative;
      display: grid;
      grid-template-rows: 1fr 1fr;
      align-items: center;
      justify-items: center;
      min-width: 34px;
      padding: 5px 7px 4px;
      background: rgba(37, 99, 235, 0.18);
      color: var(--text-main);
      font-size: 9px;
      font-weight: 900;
      line-height: 1.1;
      text-align: center;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .schedule-segment:not(:last-child)::after {
      display: none;
    }

    .schedule-segment-handle {
      position: absolute;
      top: 7px;
      bottom: 7px;
      width: 12px;
      transform: translateX(-50%);
      border: 0;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.9);
      box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.12), 0 4px 12px rgba(15, 23, 42, 0.2);
      cursor: col-resize;
      z-index: 3;
      touch-action: none;
    }

    .schedule-segment-handle::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 2px;
      height: 16px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.75);
      transform: translate(-50%, -50%);
    }

    .schedule-segment-handle:hover,
    .schedule-segment-handle:focus-visible {
      background: #fff;
      box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.35), 0 6px 18px rgba(15, 23, 42, 0.28);
      outline: none;
    }

    body.schedule-dragging {
      cursor: col-resize;
      user-select: none;
    }

    .schedule-segment:nth-child(2n) {
      background: rgba(139, 92, 246, 0.18);
    }

    .schedule-segment:nth-child(3n) {
      background: rgba(16, 185, 129, 0.16);
    }

    .schedule-segment-label,
    .schedule-segment-ratio {
      display: block;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .schedule-segment-label {
      align-self: end;
      color: var(--text-main);
    }

    .schedule-segment-ratio {
      align-self: start;
      color: var(--primary-dark);
      font-size: 8px;
      opacity: 0.95;
    }

    .schedule-collapsible-group {
      display: grid;
      gap: 5px;
    }

    .schedule-collapse-toggle {
      width: 100%;
      min-height: 28px;
      padding: 6px 9px;
      border: 1px solid var(--border-color);
      border-radius: 9px;
      background: rgba(255, 255, 255, 0.22);
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 900;
      text-align: left;
    }

    .schedule-collapse-toggle:hover {
      background: rgba(255, 255, 255, 0.32);
      color: var(--primary);
    }

    .schedule-collapsible[hidden] {
      display: none;
    }

    .schedule-collapsible {
      display: grid;
      gap: 6px;
    }

    .content-table .content-schedule-cell {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 800;
      white-space: nowrap;
      text-align: center;
    }

    .schedule-status-pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 3px 7px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.1);
      color: var(--primary);
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    .linked-content-schedule {
      color: var(--primary);
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    /* v0.02.6: content schedule period and content detail modal */
    .content-title-button,
    .linked-content-title-button {
      display: inline-flex;
      max-width: 100%;
      border: 0;
      background: transparent;
      color: var(--primary);
      font: inherit;
      font-weight: 900;
      letter-spacing: -0.02em;
      cursor: pointer;
      padding: 0;
      text-align: center;
      text-decoration: none;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .content-title-button:hover,
    .linked-content-title-button:hover {
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .content-table .content-schedule-cell .schedule-period-text,
    .linked-content-schedule .schedule-period-text {
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    .content-detail-schedule-list {
      display: grid;
      gap: 5px;
    }

    .content-detail-schedule-row {
      display: grid;
      grid-template-columns: 74px 42px minmax(0, 1fr);
      gap: 6px;
      align-items: center;
      padding: 6px 7px;
      border: 1px solid var(--border-color);
      border-radius: 9px;
      background: rgba(255, 255, 255, 0.22);
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 800;
    }

    .content-detail-schedule-row strong {
      color: var(--text-main);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .content-detail-schedule-row span {
      white-space: nowrap;
    }

    @media (max-width: 720px) {
      .schedule-date-row,
      .schedule-step-list {
        grid-template-columns: 1fr;
      }
    }

    /* v0.03.1: content schedule layout separation */
    .modal-panel .project-modal-form .content-schedule-section {
      grid-template-columns: 1fr;
      grid-column: 1 / -1;
    }

    .content-schedule-section .modal-section-title,
    .content-schedule-section .schedule-toggle-row,
    .content-schedule-section .schedule-config,
    .content-schedule-section .schedule-date-row,
    .content-schedule-section .schedule-ratio-summary,
    .content-schedule-section .schedule-collapsible-group {
      grid-column: 1 / -1;
    }

    .content-schedule-section .schedule-config {
      margin-top: 2px;
    }


    /* v0.02.7: content list row click and detail action cleanup */
    .content-table {
      min-width: 1080px;
    }

    .content-table tbody tr.content-row {
      position: relative;
      cursor: pointer;
      transition: box-shadow 0.16s ease, outline-color 0.16s ease;
      outline: 1px solid transparent;
      outline-offset: -1px;
    }

    .content-table tbody tr.content-row:hover {
      box-shadow: inset 3px 0 0 var(--primary), 0 4px 14px rgba(15, 23, 42, 0.12);
      outline-color: rgba(37, 99, 235, 0.35);
      z-index: 4;
    }

    .content-table tbody tr.content-row:hover td {
      background: rgba(255, 255, 255, 0.72) !important;
    }

    .content-table tbody tr.content-row:active td {
      background: rgba(255, 255, 255, 0.82) !important;
    }

    .content-table .content-title-text {
      display: block;
      width: 100%;
      color: var(--primary);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.25;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

  

    /* v0.03.3: 일일업무 빠른 입력 / 카드형 기록 UI */
    .daily-card-layout { gap: 18px; }

    .daily-section-header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 12px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border-color);
    }

    .daily-entry-body,
    .daily-record-body { padding-top: 14px; }

    .daily-meta-grid {
      display: grid;
      grid-template-columns: 1.1fr 1.1fr 0.9fr 0.9fr;
      gap: 10px;
      align-items: end;
      margin-bottom: 12px;
    }

    .daily-wide-field textarea {
      min-height: 120px;
      resize: vertical;
      line-height: 1.55;
      white-space: pre-wrap;
    }

    .daily-wide-field + .daily-wide-field { margin-top: 10px; }

    .daily-action-row {
      display: flex;
      justify-content: center;
      gap: 8px;
      margin-top: 12px;
      flex-wrap: wrap;
    }

    .daily-preview-box {
      margin-top: 12px;
      padding: 12px;
      border: 1px solid var(--border-color);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.34);
    }

    .daily-preview-title {
      margin-bottom: 8px;
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 800;
    }

    .daily-preview-body,
    .daily-card-groups {
      display: grid;
      gap: 10px;
    }

    .daily-group {
      display: grid;
      gap: 6px;
      padding: 10px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.28);
    }

    .daily-group-title {
      color: var(--text-main);
      font-size: 13px;
      font-weight: 900;
    }

    .daily-task-list {
      display: grid;
      gap: 5px;
    }

    .daily-task-item {
      display: grid;
      grid-template-columns: 18px 1fr;
      gap: 8px;
      align-items: start;
      min-height: 28px;
      padding: 5px 6px;
      border-radius: 8px;
      color: var(--text-main);
      font-size: 13px;
      line-height: 1.45;
    }

    .daily-task-item:hover { background: rgba(255, 255, 255, 0.24); }

    .daily-task-item input {
      margin-top: 3px;
      accent-color: var(--primary);
    }

    .daily-task-item.done span {
      color: var(--text-light);
      text-decoration: line-through;
    }

    .daily-record-list {
      display: grid;
      gap: 12px;
    }

    .daily-card {
      padding: 14px;
      border: 1px solid var(--border-color);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.36);
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
    }

    .daily-card-head {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 12px;
      align-items: start;
      margin-bottom: 10px;
    }

    .daily-date-title {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
      font-weight: 900;
      color: var(--text-main);
    }

    .daily-date-title small {
      color: var(--text-light);
      font-size: 12px;
      font-weight: 800;
    }

    .daily-card-actions {
      display: flex;
      gap: 6px;
      justify-content: flex-end;
      flex-wrap: wrap;
    }

    .daily-card-actions button {
      padding: 6px 9px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 800;
      background: var(--bg-tab-inactive);
      color: var(--text-main);
      border: 1px solid var(--border-color);
    }

    .daily-card-actions button.delete {
      color: #b91c1c;
      background: rgba(254, 226, 226, 0.65);
      border-color: rgba(248, 113, 113, 0.45);
    }

    .daily-card-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 6px;
    }

    .daily-meta-pill {
      display: inline-flex;
      align-items: center;
      border: 1px solid var(--border-color);
      border-radius: 999px;
      padding: 4px 8px;
      background: rgba(255, 255, 255, 0.28);
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
    }

    .daily-progress-box {
      display: grid;
      gap: 5px;
      min-width: 130px;
      text-align: right;
    }

    .daily-progress-box strong { font-size: 16px; }

    .daily-card-note {
      margin-top: 10px;
      padding: 9px 10px;
      border-left: 3px solid var(--primary);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.24);
      color: var(--text-muted);
      font-size: 13px;
      line-height: 1.45;
      white-space: pre-wrap;
    }

    @media (max-width: 900px) {
      .daily-meta-grid { grid-template-columns: 1fr 1fr; }
      .daily-card-head { grid-template-columns: 1fr; }
      .daily-progress-box { text-align: left; }
    }

    @media (max-width: 640px) {
      .daily-meta-grid { grid-template-columns: 1fr; }
    }


    /* v0.03.4: 일일업무 등록 팝업 / 태그 UI */
    .daily-entry-card { display: none; }

    .daily-list-head { align-items: flex-start; }

    .daily-form-panel { max-width: 680px; }

    .daily-modal-form { gap: 10px; }

    .daily-date-line {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 10px;
      align-items: end;
    }

    .daily-weekday-preview {
      min-width: 86px;
      padding: 10px 12px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.26);
      color: var(--text-main);
      font-size: 13px;
      font-weight: 900;
      text-align: center;
      white-space: nowrap;
    }

    .daily-tag-input-wrap { position: relative; }

    .daily-tag-input-wrap textarea {
      min-height: 220px;
      resize: vertical;
      line-height: 1.55;
      white-space: pre-wrap;
    }

    .daily-tag-suggestions {
      position: absolute;
      left: 0;
      right: 0;
      top: calc(100% + 6px);
      z-index: 30;
      display: grid;
      gap: 6px;
      max-height: 220px;
      overflow-y: auto;
      padding: 8px;
      border: 1px solid var(--border-color);
      border-radius: 14px;
      background: var(--bg-floating);
      backdrop-filter: blur(16px);
      box-shadow: var(--shadow-glass);
    }

    .daily-tag-suggestions[hidden] { display: none; }

    .daily-tag-option {
      display: grid;
      gap: 3px;
      width: 100%;
      padding: 8px 10px;
      border: 1px solid transparent;
      border-radius: 10px;
      background: transparent;
      color: var(--text-main);
      text-align: left;
      cursor: pointer;
    }

    .daily-tag-option:hover,
    .daily-tag-option.is-selected {
      border-color: rgba(37, 99, 235, 0.35);
      background: rgba(37, 99, 235, 0.08);
    }

    .daily-tag-option.is-selected {
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.16);
    }

    .daily-tag-option strong { font-size: 13px; font-weight: 900; }
    .daily-tag-option small { color: var(--text-light); font-size: 11px; line-height: 1.35; }

    .daily-tag-badge {
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      margin: 0 2px;
      padding: 2px 7px;
      border: 1px solid rgba(37, 99, 235, 0.32);
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.12);
      color: var(--primary);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.35;
      vertical-align: baseline;
      cursor: help;
      white-space: nowrap;
    }

    .daily-card-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 6px;
    }

    .daily-card-post-controls {
      display: grid;
      grid-template-columns: 1fr 130px;
      gap: 10px;
      margin-top: 12px;
      padding-top: 10px;
      border-top: 1px dashed var(--border-color);
    }

    .daily-card-post-controls .field label { font-size: 11px; }

    .daily-card-post-controls textarea {
      min-height: 58px;
      resize: vertical;
      line-height: 1.45;
    }

    .daily-card-post-controls input,
    .daily-card-post-controls textarea {
      padding: 8px 9px;
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.22);
    }

    @media (max-width: 720px) {
      .daily-date-line,
      .daily-card-post-controls { grid-template-columns: 1fr; }
      .daily-weekday-preview { text-align: left; }
    }


    /* v0.03.5: 일일업무 카드 재배치 / 태그 상위 항목 / 후속 입력 영역 */
    .daily-record-list { gap: 12px; }

    .daily-card {
      padding: 12px;
      border-radius: 16px;
      overflow: visible;
    }

    .daily-card-topline {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 12px;
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--border-color);
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 900;
    }

    .daily-card-score {
      color: var(--primary);
      font-size: 15px;
      font-weight: 950;
      white-space: nowrap;
    }

    .daily-card-main-grid {
      display: grid;
      grid-template-columns: 120px minmax(260px, 1fr) minmax(160px, 20%) minmax(180px, 0.24fr);
      gap: 10px;
      align-items: stretch;
    }

    .daily-date-block {
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 5px;
      min-height: 120px;
      padding: 10px;
      border: 1px solid var(--border-color);
      border-radius: 14px;
      background: rgba(37, 99, 235, 0.08);
      color: var(--text-main);
      text-align: center;
      font-weight: 900;
    }

    .daily-date-block.is-holiday {
      border-color: rgba(239, 68, 68, 0.26);
      background: rgba(239, 68, 68, 0.12);
      color: #b91c1c;
    }

    .daily-date-block .daily-year {
      color: var(--text-muted);
      font-size: 11px;
      line-height: 1;
      letter-spacing: -0.02em;
    }

    .daily-date-block.is-holiday .daily-year {
      color: rgba(185, 28, 28, 0.72);
    }

    .daily-date-block .daily-date-main {
      color: var(--primary);
      font-size: 28px;
      line-height: 1;
      letter-spacing: -0.06em;
      white-space: nowrap;
    }

    .daily-date-block .daily-weekday-line {
      color: var(--primary);
      font-size: 20px;
      line-height: 1;
      letter-spacing: -0.04em;
      white-space: nowrap;
    }

    .daily-date-block.is-holiday .daily-date-main,
    .daily-date-block.is-holiday .daily-weekday-line {
      color: #dc2626;
    }

    .daily-date-block .daily-holiday-name {
      min-height: 14px;
      color: rgba(185, 28, 28, 0.82);
      font-size: 10px;
      line-height: 1.1;
      font-weight: 950;
    }

    .daily-work-column { min-width: 0; }

    .daily-work-column .daily-card-groups { gap: 8px; }

    .daily-work-column .daily-group {
      padding: 8px 9px;
      background: rgba(255, 255, 255, 0.24);
    }

    .daily-group-title {
      display: flex;
      align-items: center;
      gap: 6px;
      min-height: 24px;
      font-size: 14px;
      font-weight: 950;
    }

    .daily-group-title .daily-tag-badge {
      font-size: 15px;
      padding: 3px 9px;
      border-radius: 999px;
    }

    .daily-task-list { gap: 6px; }

    .daily-task-item {
      grid-template-columns: 28px 1fr;
      gap: 10px;
      min-height: 39px;
      padding: 6px 8px;
      font-size: 20px;
    }

    .daily-task-item input {
      width: 20px;
      height: 20px;
      margin-top: 4px;
    }

    .daily-note-column,
    .daily-side-column,
    .daily-work-record-column {
      display: grid;
      gap: 7px;
      align-content: start;
      padding: 9px;
      border: 1px solid var(--border-color);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.20);
    }

    .daily-card-main-grid label {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
    }

    .daily-note-column {
      grid-template-rows: auto minmax(110px, 1fr);
      align-content: stretch;
    }

    .daily-note-column textarea {
      width: 100%;
      height: 100%;
      min-height: 110px;
      max-height: none;
      resize: none;
      overflow-y: auto;
      line-height: 1.45;
    }

    .daily-side-column input,
    .daily-side-column select,
    .daily-work-record-column input,
    .daily-work-record-column select,
    .daily-note-column textarea {
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      padding: 8px 9px;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.22);
      color: var(--text-main);
    }

    .daily-work-record-block {
      display: grid;
      gap: 5px;
    }

    .daily-overtime-toggle-group {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 5px;
      width: 100%;
    }

    .daily-overtime-toggle {
      min-width: 0;
      padding: 7px 4px;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.18);
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      cursor: pointer;
      transition: all 0.18s ease;
    }

    .daily-overtime-toggle:hover,
    .daily-overtime-toggle.active {
      border-color: rgba(37, 99, 235, 0.45);
      background: rgba(37, 99, 235, 0.14);
      color: var(--primary);
    }

    .daily-holiday-select {
      min-width: 0;
      font-size: 12px;
      appearance: auto;
    }

    /* v0.05.9: annual leave and substitute leave split controls */
    .daily-leave-toggle-group {
      display: grid;
      gap: 4px;
      width: 100%;
    }

    .daily-leave-toggle-group.annual {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .daily-leave-toggle-group.substitute {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .daily-leave-toggle-group .daily-overtime-toggle {
      min-height: 27px;
      padding: 5px 3px;
      font-size: 10.5px;
      line-height: 1.1;
      white-space: nowrap;
    }

    .daily-leave-summary {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      min-height: 23px;
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.08);
      border: 1px solid rgba(37, 99, 235, 0.18);
      color: var(--primary);
      font-size: 10.5px;
      font-weight: 900;
      line-height: 1.2;
    }

    .daily-work-toggle-group {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .daily-side-help {
      color: var(--text-light);
      font-size: 11px;
      line-height: 1.35;
    }

    .daily-side-value {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      min-height: 24px;
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.26);
      border: 1px solid var(--border-color);
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
    }

    .daily-card-actions {
      grid-column: 1 / -1;
      justify-content: flex-end;
      margin-top: 8px;
    }

    .daily-card-post-controls { display: none; }
    .daily-card-tags { display: none; }

    @media (max-width: 1180px) {
      .daily-card-main-grid {
        grid-template-columns: 110px minmax(240px, 1fr) minmax(150px, 0.35fr);
      }
      .daily-work-record-column,
      .daily-side-column { grid-column: span 1; }
      .daily-card-actions { grid-column: 1 / -1; }
    }

    @media (max-width: 820px) {
      .daily-card-main-grid { grid-template-columns: 1fr; }
      .daily-date-block {
        min-height: auto;
        grid-template-columns: auto auto auto;
        justify-content: start;
        justify-items: start;
      }
      .daily-date-block .daily-date-main { font-size: 22px; }
      .daily-date-block .daily-weekday-line { font-size: 15px; }
      .daily-card-topline { align-items: flex-end; flex-direction: row; }
    }


    /* v0.04.0: 일일업무 성과 위치 / 태그 표시 / 그룹 블록 구분 개선 */
    .daily-card-topline {
      display: none;
    }

    .daily-card-main-grid {
      row-gap: 8px;
    }

    .daily-work-column .daily-card-groups {
      gap: 10px;
    }

    .daily-work-column .daily-group {
      gap: 0;
      padding: 0;
      overflow: hidden;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.18);
    }

    .daily-work-column .daily-group-title {
      display: flex;
      align-items: center;
      width: 100%;
      min-height: 34px;
      padding: 7px 10px;
      border-bottom: 1px solid rgba(37, 99, 235, 0.14);
      background: rgba(37, 99, 235, 0.08);
      color: var(--text-main);
      font-size: 15px;
      font-weight: 950;
      letter-spacing: -0.02em;
    }

    .daily-work-column .daily-task-list {
      padding: 8px 10px 9px;
      background: rgba(255, 255, 255, 0.10);
    }

    .daily-work-column .daily-tag-badge {
      margin: 0;
      padding: 3px 10px;
      border-color: rgba(37, 99, 235, 0.26);
      background: rgba(37, 99, 235, 0.12);
      font-size: 16px;
      font-weight: 950;
    }

    .daily-inline-score {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 4px 9px;
      border: 1px solid rgba(37, 99, 235, 0.20);
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.09);
      color: var(--primary);
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .daily-card-actions {
      align-items: center;
      gap: 7px;
      margin-top: 6px;
    }


    /* v0.04.1: 일일업무 클라이언트 상단바 / 체크 텍스트 / 성과 텍스트 정리 */
    .daily-work-column .daily-group-title {
      cursor: help;
    }

    .daily-work-column .daily-group-title .daily-tag-badge {
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      color: inherit;
      font-size: inherit;
      font-weight: inherit;
    }

    .daily-work-column .daily-task-item {
      grid-template-columns: 16px 1fr;
      gap: 7px;
      min-height: 28px;
      padding: 5px 7px;
    }

    .daily-work-column .daily-task-item input {
      width: 14px;
      height: 14px;
      margin-top: 3px;
    }

    .daily-work-column .daily-task-item span {
      font-size: 13.5px;
      line-height: 1.45;
      letter-spacing: -0.02em;
    }

    .daily-inline-score {
      display: inline;
      min-height: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 850;
      white-space: nowrap;
    }



    /* v0.05.0: 우상단 사용자 등록/선택 UI */
    /* v0.05.1: 사용자 비밀번호 해시 확인/초기화 UI */
    /* v0.05.2: 사용자 로그인/등록 modal 및 헤더 우상단 정렬 개선 */
    /* v0.05.3: 로그인/사용자 등록 modal 입력 구조 정리 */
    /* v0.05.4: 사용자 modal 팀 기본값/입력 폭/안내문 정리 */
    /* v0.05.5: 헤더 동기화 시간/새로고침 UI */
    /* v0.06.2: 헤더 타이틀 한 줄 표시 및 소개 문구 축약 */
    /* v0.06.3: 관리자 권한 기반 Sheet 연동 설정 접근 제한 */
    .topbar {
      display: grid;
      grid-template-columns: minmax(360px, 1fr) minmax(560px, 780px);
      align-items: start;
      gap: 16px;
    }

    .title {
      width: auto;
      min-width: 0;
    }

    .title h1 {
      display: flex;
      align-items: baseline;
      gap: 8px;
      white-space: nowrap;
    }

    .topbar-side {
      display: grid;
      gap: 10px;
      justify-self: end;
      justify-items: end;
      width: min(780px, 60vw);
      min-width: 620px;
    }

    .user-dock {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      width: 100%;
      min-height: 38px;
      z-index: 30;
    }

    .header-sync-card {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      min-height: 34px;
      padding: 5px 7px 5px 10px;
      border: 1px solid rgba(148, 163, 184, 0.35);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.62);
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
      backdrop-filter: blur(12px);
      white-space: nowrap;
    }

    .header-sync-time {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: -0.02em;
    }

    .header-sync-button,
    .header-auto-sync-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 26px;
      padding: 5px 10px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.12);
      color: #1d4ed8;
      font-size: 11px;
      font-weight: 950;
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.16);
    }

    .header-sync-button:hover,
    .header-auto-sync-button:hover {
      background: rgba(37, 99, 235, 0.18);
      color: #1e40af;
    }

    .header-auto-sync-button.active {
      background: rgba(22, 163, 74, 0.13);
      color: #15803d;
      box-shadow: inset 0 0 0 1px rgba(22, 163, 74, 0.22);
    }

    .header-auto-sync-button.active:hover {
      background: rgba(22, 163, 74, 0.20);
      color: #166534;
    }

    .header-sync-button:disabled,
    .header-auto-sync-button:disabled {
      opacity: 0.58;
      cursor: wait;
      transform: none;
    }

    .user-login-button,
    .user-session-card,
    .user-manage-button,
    .user-logout-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 34px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
    }

    .user-login-button {
      padding: 8px 14px;
      background: #111827;
      color: #fff;
      box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
    }

    .user-session-card {
      gap: 7px;
      max-width: 100%;
      padding: 5px;
      border: 1px solid rgba(148, 163, 184, 0.35);
      background: rgba(255, 255, 255, 0.68);
      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
      backdrop-filter: blur(12px);
    }

    .user-session-card[hidden],
    .user-login-button[hidden] {
      display: none;
    }

    .user-session-label {
      display: inline-flex;
      align-items: center;
      max-width: 240px;
      min-height: 28px;
      padding: 5px 9px;
      overflow: hidden;
      text-overflow: ellipsis;
      color: #1e293b;
      font-size: 12px;
      font-weight: 950;
    }

    .user-manage-button,
    .user-logout-button {
      min-height: 28px;
      padding: 5px 10px;
      border: 1px solid rgba(148, 163, 184, 0.32);
      box-shadow: none;
    }

    .user-manage-button {
      background: rgba(37, 99, 235, 0.12);
      color: #1d4ed8;
    }

    .user-logout-button {
      background: rgba(254, 242, 242, 0.84);
      color: #b91c1c;
    }

    .user-manage-button[hidden],
    .user-logout-button[hidden] {
      display: none;
    }

    .user-popover.user-modal-panel {
      width: min(680px, calc(100vw - 32px));
      max-height: calc(100vh - 40px);
      overflow: auto;
      z-index: 100000 !important;
    }

    .user-popover[hidden] {
      display: none;
    }

    .user-popover .card-header {
      padding: 14px 16px 0;
      background: transparent;
    }

    .user-popover .card-body {
      padding: 14px 16px 16px;
      background: transparent;
    }

    .user-popover-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
    }

    .user-popover-head strong {
      display: block;
      color: var(--primary);
      font-size: 15px;
      letter-spacing: -0.03em;
    }

    .user-popover-head small {
      display: block;
      margin-top: 3px;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 700;
      line-height: 1.35;
    }

    .user-modal-layout {
      display: grid;
      gap: 10px;
    }

    .user-modal-section {
      display: grid;
      gap: 9px;
      padding: 12px;
      border: 1px solid var(--border-color);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.24);
    }

    .user-modal-section-title {
      color: var(--text-main);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: -0.02em;
    }

    .user-form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .user-password-grid,
    .user-login-select-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .user-login-password-field {
      display: grid;
      gap: 4px;
    }

    .user-login-actions .primary-button,
    .user-register-actions .primary-button,
    .user-register-actions .ghost-button {
      width: 100%;
    }

    .user-register-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

    .user-auth-status {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 54px;
      padding: 3px 7px;
      border-radius: 999px;
      background: rgba(34, 197, 94, 0.12);
      color: #15803d;
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    .user-auth-status.reset {
      background: rgba(245, 158, 11, 0.14);
      color: #b45309;
    }

    .user-auth-status.admin,
    .user-role-badge.admin {
      background: rgba(37, 99, 235, 0.12);
      color: #1d4ed8;
    }

    .user-role-badge.leader {
      background: rgba(124, 58, 237, 0.12);
      color: #6d28d9;
    }

    .user-role-badge.manager {
      background: rgba(148, 163, 184, 0.16);
      color: var(--text-muted);
    }

    .user-role-badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 22px;
      padding: 3px 7px;
      border-radius: 999px;
      background: rgba(148, 163, 184, 0.16);
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 900;
      white-space: nowrap;
    }

    .user-auth-help {
      margin: 0;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 700;
      line-height: 1.45;
    }

    .user-popover select,
    .user-popover input {
      width: 100%;
      height: 34px;
      border: 1px solid rgba(148, 163, 184, 0.5);
      border-radius: 10px;
      padding: 0 10px;
      background: rgba(255, 255, 255, 0.82);
      font-size: 12px;
      font-weight: 750;
      color: var(--text);
    }

    .user-popover-actions {
      display: flex;
      justify-content: flex-end;
      gap: 8px;
      flex-wrap: wrap;
    }

    .user-select-list {
      display: grid;
      gap: 6px;
      max-height: 180px;
      overflow-y: auto;
    }

    .user-select-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 10px;
      border: 1px solid transparent;
      border-radius: 12px;
      background: rgba(241, 245, 249, 0.84);
      color: #334155;
      font-size: 12px;
      font-weight: 800;
      text-align: left;
    }

    .user-select-item:hover {
      border-color: rgba(37, 99, 235, 0.28);
      background: rgba(37, 99, 235, 0.1);
      color: #1d4ed8;
    }

    .user-select-item.active {
      background: #111827;
      color: #fff;
    }

    .user-select-item.active .user-auth-status {
      background: rgba(255, 255, 255, 0.18);
      color: #fff;
    }

    .user-select-item span:first-child {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .user-select-empty {
      padding: 12px;
      border-radius: 12px;
      background: rgba(241, 245, 249, 0.8);
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 750;
      text-align: center;
    }

    @media (max-width: 980px) {
      .topbar {
        grid-template-columns: 1fr;
      }

      .topbar-side {
        width: 100%;
        min-width: 0;
        justify-self: stretch;
        justify-items: stretch;
      }

      .user-dock {
        justify-content: flex-start;
      }
    }

    @media (max-width: 720px) {
      .user-session-card {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
      }

      .user-form-grid,
      .user-password-grid,
      .user-login-select-grid,
      .user-register-actions {
        grid-template-columns: 1fr;
      }

      .user-select-item {
        grid-template-columns: 1fr auto;
      }

      .user-select-item small {
        grid-column: 1 / -1;
      }
    }

    /* v0.04.5~0.04.9: Google Sheets 연동 설정 / 읽기 비교 / 불러오기 / 저장 / 자동동기화 UI */
    .gas-admin-notice {
      margin: 14px 0 0;
      padding: 14px 16px;
      border: 1px solid rgba(148, 163, 184, 0.28);
      border-radius: 16px;
      background: rgba(255, 255, 255, 0.58);
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.5;
    }

    .gas-admin-notice strong {
      display: block;
      margin-bottom: 4px;
      color: var(--text-main);
      font-size: 14px;
      font-weight: 950;
    }

    .gas-admin-actions {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 10px;
      flex-wrap: wrap;
    }

    .gas-admin-actions .sub-button {
      min-height: 30px;
      padding: 7px 13px;
      font-size: 11px;
      border-radius: 999px;
    }

    .gas-admin-role-status {
      margin-top: 7px;
      color: var(--text-light);
      font-size: 11px;
      font-weight: 750;
      line-height: 1.45;
      white-space: pre-line;
    }

    .gas-admin-role-status.success {
      color: #166534;
    }

    .gas-admin-role-status.error {
      color: #991b1b;
    }

    .gas-sync-card {
      margin: 14px 0 0;
      background: rgba(255, 255, 255, 0.78);
      backdrop-filter: blur(14px);
    }

    .gas-sync-card .card-body {
      padding-top: 12px;
    }

    .gas-sync-card .card-body[hidden] {
      display: none;
    }

    .gas-sync-toggle-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      width: 100%;
      padding: 0;
      border: 0;
      background: transparent;
      text-align: left;
      cursor: pointer;
    }

    .gas-sync-toggle-title {
      display: grid;
      gap: 4px;
      min-width: 0;
    }

    .gas-sync-toggle-title h2 {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0;
    }

    .gas-sync-toggle-title p {
      margin: 0;
    }

    .gas-sync-toggle-meta {
      display: flex;
      align-items: center;
      gap: 7px;
      flex-shrink: 0;
    }

    .gas-sync-pill {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      padding: 3px 8px;
      border-radius: 999px;
      border: 1px solid rgba(148, 163, 184, 0.24);
      background: rgba(248, 250, 252, 0.82);
      color: var(--muted);
      font-size: 10.5px;
      font-weight: 900;
      white-space: nowrap;
    }

    .gas-sync-pill.connected,
    .gas-sync-pill.on {
      border-color: rgba(22, 163, 74, 0.26);
      background: rgba(240, 253, 244, 0.88);
      color: #166534;
    }

    .gas-sync-pill.off {
      border-color: rgba(148, 163, 184, 0.24);
      background: rgba(248, 250, 252, 0.82);
      color: var(--subtle);
    }

    .gas-sync-arrow {
      color: var(--muted);
      font-size: 13px;
      font-weight: 950;
      transition: transform 0.16s ease;
    }

    .gas-sync-card:not(.collapsed) .gas-sync-arrow {
      transform: rotate(180deg);
    }

    .gas-auto-sync-field {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      padding: 8px 10px;
      border: 1px solid rgba(226, 232, 240, 0.9);
      border-radius: 12px;
      background: rgba(248, 250, 252, 0.82);
      color: var(--text);
      font-size: 12px;
      font-weight: 900;
      white-space: nowrap;
    }

    .gas-auto-sync-field input {
      width: 16px;
      height: 16px;
      accent-color: var(--primary);
    }

    .gas-sync-grid {
      display: grid;
      grid-template-columns: minmax(260px, 1.6fr) minmax(180px, 0.9fr) auto;
      gap: 10px;
      align-items: end;
    }

    .gas-sync-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      justify-content: flex-end;
      align-items: center;
    }

    .gas-sync-status {
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 12px;
      border: 1px solid var(--line);
      background: rgba(248, 250, 252, 0.92);
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
      white-space: pre-line;
    }

    .gas-sync-status.success {
      border-color: rgba(22, 163, 74, 0.25);
      background: rgba(240, 253, 244, 0.92);
      color: #166534;
    }

    .gas-sync-status.error {
      border-color: rgba(239, 68, 68, 0.25);
      background: rgba(254, 242, 242, 0.92);
      color: #991b1b;
    }

    .gas-sync-status.loading {
      border-color: rgba(37, 99, 235, 0.25);
      background: rgba(239, 246, 255, 0.92);
      color: var(--primary-dark);
    }



    /* v0.04.6~0.04.8: Google Sheets 데이터 비교 미리보기 / 불러오기 / 저장 */
    .gas-sync-preview {
      margin-top: 12px;
      padding: 12px;
      border-radius: 16px;
      border: 1px solid rgba(148, 163, 184, 0.22);
      background: rgba(255, 255, 255, 0.72);
      box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    }

    .gas-sync-preview[hidden] { display: none; }

    .gas-preview-head {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 10px;
    }

    .gas-preview-head h3 {
      margin: 0;
      font-size: 14px;
      font-weight: 900;
      color: var(--text);
    }

    .gas-preview-head p {
      margin: 4px 0 0;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.45;
    }

    .gas-preview-time {
      color: var(--subtle);
      font-size: 11px;
      white-space: nowrap;
    }

    .gas-preview-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .gas-preview-count-card {
      padding: 10px;
      border: 1px solid rgba(226, 232, 240, 0.9);
      border-radius: 13px;
      background: rgba(248, 250, 252, 0.82);
    }

    .gas-preview-count-card small {
      display: block;
      margin-bottom: 6px;
      color: var(--muted);
      font-size: 10px;
      font-weight: 800;
      letter-spacing: -0.01em;
    }

    .gas-preview-count-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 8px;
      color: var(--text);
      font-size: 12px;
      font-weight: 800;
    }

    .gas-preview-count-row strong {
      font-size: 18px;
      font-weight: 950;
    }

    .gas-preview-count-row em {
      color: var(--subtle);
      font-size: 10px;
      font-style: normal;
      font-weight: 800;
    }

    .gas-preview-lists {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 10px;
    }

    .gas-preview-list-card {
      min-width: 0;
      padding: 10px;
      border: 1px solid rgba(226, 232, 240, 0.9);
      border-radius: 13px;
      background: rgba(255, 255, 255, 0.72);
    }

    .gas-preview-list-card h4 {
      margin: 0 0 8px;
      color: var(--text);
      font-size: 12px;
      font-weight: 900;
    }

    .gas-preview-list-card ul {
      display: grid;
      gap: 6px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .gas-preview-list-card li {
      color: var(--muted);
      font-size: 11px;
      line-height: 1.35;
    }

    .gas-preview-list-card li strong {
      color: var(--text);
      font-weight: 900;
    }

    .gas-preview-note {
      margin: 10px 0 0;
      padding: 9px 10px;
      border-radius: 12px;
      background: rgba(239, 246, 255, 0.76);
      color: var(--primary-dark);
      font-size: 11px;
      line-height: 1.45;
    }

    .gas-import-summary {
      display: grid;
      gap: 8px;
      margin-top: 12px;
      padding: 14px;
      border-radius: 16px;
      background: rgba(248, 250, 252, 0.86);
      border: 1px solid rgba(148, 163, 184, 0.26);
      color: var(--text-main);
      font-size: 13px;
      line-height: 1.55;
    }

    .gas-import-summary strong {
      font-weight: 900;
    }

    .gas-import-warning {
      margin: 0;
      color: #b91c1c;
      font-size: 12px;
      line-height: 1.55;
    }

    @media (max-width: 1100px) {
      .gas-preview-grid,
      .gas-preview-lists {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 1100px) {
      .gas-sync-grid {
        grid-template-columns: 1fr;
      }

      .gas-sync-actions {
        justify-content: flex-start;
      }
    }


    /* v0.05.8: project list view toggle and compact project filter table */
    .project-title-row {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
    }

    .project-title-row h2 {
      margin: 0;
    }

    .project-view-toggle {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 3px;
      border: 1px solid var(--border-color);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.26);
    }

    .project-view-button {
      min-height: 26px;
      padding: 5px 10px;
      border-radius: 999px;
      background: transparent;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      white-space: nowrap;
    }

    .project-view-button:hover {
      background: rgba(255, 255, 255, 0.42);
      color: var(--primary);
    }

    .project-view-button.active {
      background: var(--primary);
      color: #fff;
      box-shadow: 0 3px 10px rgba(37, 99, 235, 0.22);
    }

    .daily-title-row {
      display: flex;
      align-items: center;
      gap: 9px;
      flex-wrap: wrap;
    }

    .daily-current-user-pill {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      padding: 4px 9px;
      border: 1px solid rgba(37, 99, 235, 0.24);
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.09);
      color: var(--primary);
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }

    .daily-current-user-pill.required {
      border-color: rgba(239, 68, 68, 0.24);
      background: rgba(254, 242, 242, 0.74);
      color: #b91c1c;
    }

    .daily-list-toolbar .primary-button:disabled {
      opacity: 0.45;
      cursor: not-allowed;
      transform: none;
      box-shadow: none;
    }

    .modal-panel.project-filter-panel {
      width: min(920px, calc(100vw - 32px));
    }

    .project-filter-summary {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
      padding: 9px 10px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.28);
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
    }

    .project-filter-table-wrap {
      width: 80%;
      max-height: min(52vh, 520px);
      margin: 0 auto;
      overflow: auto;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.18);
    }

    .project-filter-table {
      min-width: 610px;
      width: 100%;
      border: 0 !important;
      border-radius: 0;
      background: transparent;
    }

    .project-filter-table th,
    .project-filter-table td {
      height: 32px;
      padding: 5px 7px;
      font-size: 10.5px;
      text-align: left;
      vertical-align: middle;
      white-space: nowrap;
    }

    .project-filter-table th {
      top: 0;
      z-index: 2;
      text-align: center;
    }

    .project-filter-table th:nth-child(1),
    .project-filter-table td:nth-child(1) {
      width: 40px;
      text-align: center;
    }

    .project-filter-table th:nth-child(2),
    .project-filter-table td:nth-child(2) {
      width: 96px;
      text-align: center;
    }

    .project-filter-table th:nth-child(3),
    .project-filter-table td:nth-child(3) {
      width: 152px;
    }

    .project-filter-table td:nth-child(4) {
      max-width: 310px;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .project-filter-row {
      cursor: pointer;
    }

    .project-filter-row:hover td {
      background: rgba(255, 255, 255, 0.66) !important;
    }

    .project-filter-check {
      width: 15px;
      height: 15px;
      accent-color: var(--primary);
      cursor: pointer;
    }

    .project-filter-contract,
    .project-filter-client,
    .project-filter-task {
      color: var(--text-main);
      font-weight: 850;
    }

    .project-filter-task {
      color: var(--primary);
      font-weight: 900;
    }

    .project-filter-role-note {
      color: var(--primary);
      font-weight: 950;
      white-space: nowrap;
    }

    .project-filter-actions {
      margin-top: 10px;
    }


    /* v0.06.9: project detail modal row layout correction */
    .project-detail-basic-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .project-detail-basic-grid .detail-item,
    .project-detail-title-grid .detail-item,
    .project-detail-contact-grid .detail-item,
    .project-detail-assignee-grid .detail-item {
      min-width: 0;
    }

    .project-detail-title-grid {
      grid-template-columns: minmax(150px, 1fr) minmax(240px, 2fr) minmax(110px, 0.72fr) !important;
      align-items: stretch;
    }

    .project-detail-contact-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      align-items: stretch;
    }

    .project-detail-assignee-grid {
      grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
      align-items: stretch;
    }

    .project-detail-task-item {
      min-height: auto;
      align-content: start;
    }

    .project-detail-task-item strong,
    .project-detail-title-grid .detail-item strong,
    .project-detail-contact-grid .detail-item strong,
    .project-detail-assignee-grid .detail-item span {
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: keep-all;
    }

    .project-detail-task-item strong {
      font-size: 13px;
      line-height: 1.45;
    }

    .project-detail-assignee-grid .detail-item small,
    .project-detail-contact-grid .detail-item small {
      font-size: 10px;
    }

    @media (max-width: 760px) {
      .project-detail-basic-grid,
      .project-detail-title-grid,
      .project-detail-contact-grid,
      .project-detail-assignee-grid {
        grid-template-columns: 1fr !important;
      }
    }

    @media (max-width: 720px) {
      .modal-panel.project-filter-panel {
        width: calc(100vw - 20px) !important;
      }

      .project-filter-summary {
        display: grid;
      }

      .project-filter-table-wrap {
        width: 100%;
      }

      .project-filter-table {
        min-width: 640px;
      }
    }



    /* v0.07.4: daily entry modal realtime preview and compact date row */
    .daily-date-section .modal-section-title {
      margin-bottom: 2px;
    }

    .daily-date-inline-row {
      display: grid;
      grid-template-columns: auto minmax(180px, 260px) auto;
      align-items: center;
      justify-content: start;
      gap: 10px;
    }

    .daily-date-label {
      color: var(--text-main);
      font-size: 14px;
      font-weight: 950;
      white-space: nowrap;
    }

    .daily-date-input {
      width: 100%;
      min-height: 38px;
      padding: 7px 10px;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.30);
      color: var(--text-main);
      font-size: 15px;
      font-weight: 900;
    }

    .daily-date-inline-row .daily-weekday-preview {
      min-width: 64px;
      min-height: 36px;
      padding: 8px 12px;
      font-size: 15px;
      border-radius: 999px;
    }

    .daily-preview-action-row {
      justify-content: center;
      margin-top: 10px;
    }

    .daily-preview-action-row .primary-button,
    .daily-preview-action-row .ghost-button {
      min-width: 120px;
    }

    @media (max-width: 640px) {
      .daily-date-inline-row {
        grid-template-columns: 1fr;
        justify-content: stretch;
      }

      .daily-date-inline-row .daily-weekday-preview {
        width: fit-content;
      }
    }

    /* v0.07.5: tab header alignment and daily entry modal cleanup */
    .project-list-head {
      align-items: end;
      column-gap: 18px;
      row-gap: 8px;
    }

    .project-list-head .card-header {
      min-width: 0;
    }

    .project-list-head .card-header p {
      margin-top: 8px;
    }

    .project-list-toolbar {
      align-self: end;
      padding-bottom: 1px;
    }

    .project-list-toolbar .primary-button {
      min-height: 34px;
      white-space: nowrap;
    }

    .daily-record-card .project-list-head {
      padding-bottom: 10px;
    }

    .daily-record-card .daily-record-body {
      padding: 8px 0 0;
    }

    .daily-record-card .daily-record-list {
      gap: 10px;
      width: 100%;
    }

    .daily-record-card .daily-card {
      width: 100%;
      margin: 0;
    }

    .daily-record-card #dailyEmpty {
      margin: 0;
    }

    .daily-modal-form .daily-date-section,
    .daily-modal-form .daily-work-input-section {
      gap: 6px;
    }

    @media (max-width: 720px) {
      .project-list-head {
        align-items: stretch;
      }

      .project-list-toolbar {
        align-self: stretch;
      }
    }



    /* v0.07.6: tab header vertical alignment and compact content/project table matching */
    .title p {
      content: none;
    }

    .project-list-head,
    .content-list-head,
    .daily-list-head {
      align-items: end;
      min-height: 78px;
    }

    .project-list-head .card-header,
    .content-list-head .card-header,
    .daily-list-head .card-header {
      display: grid;
      grid-template-rows: 32px 34px;
      align-content: end;
      min-height: 66px;
      padding: 0;
    }

    .project-title-row,
    .content-list-head .card-header h2,
    .daily-title-row {
      min-height: 32px;
      display: flex;
      align-items: center;
      margin: 0;
    }

    .content-list-head .card-header h2 {
      color: var(--text-main);
      font-size: 18px;
      font-weight: 900;
    }

    .project-list-head .card-header p,
    .content-list-head .card-header p,
    .daily-list-head .card-header p {
      display: flex;
      align-items: center;
      min-height: 34px;
      margin: 0;
    }

    .project-list-toolbar,
    .content-list-toolbar,
    .daily-list-toolbar {
      align-self: end;
      display: flex;
      align-items: center;
      min-height: 34px;
      padding-bottom: 0;
    }

    .project-table th,
    .project-table td,
    .content-table th,
    .content-table td {
      height: 36px;
      padding: 7px 8px;
      vertical-align: middle;
    }

    .project-table tbody tr,
    .content-table tbody tr {
      height: 36px;
    }

    .project-table th:nth-child(1),
    .project-table td:nth-child(1),
    .content-table th:nth-child(1),
    .content-table td:nth-child(1) {
      width: 66px;
      max-width: 66px;
      min-width: 66px;
    }

    .project-contract-cell {
      min-width: 66px;
      font-size: 11px;
    }

    .content-table {
      min-width: 940px;
      table-layout: fixed;
    }

    .content-table th:nth-child(1),
    .content-table td:nth-child(1) { width: 66px; }
    .content-table th:nth-child(2),
    .content-table td:nth-child(2) { width: 150px; }
    .content-table th:nth-child(3),
    .content-table td:nth-child(3) { width: 260px; }
    .content-table th:nth-child(4),
    .content-table td:nth-child(4) { width: 230px; }
    .content-table th:nth-child(5),
    .content-table td:nth-child(5) { width: 70px; }
    .content-table th:nth-child(6),
    .content-table td:nth-child(6) { width: 92px; }
    .content-table th:nth-child(7),
    .content-table td:nth-child(7) { width: 120px; }

    .content-table .content-task-cell,
    .content-table .content-title-text {
      max-width: 100%;
    }

    @media (max-width: 720px) {
      .project-list-head,
      .content-list-head,
      .daily-list-head {
        min-height: auto;
      }

      .project-list-head .card-header,
      .content-list-head .card-header,
      .daily-list-head .card-header {
        grid-template-rows: auto auto;
        min-height: auto;
      }
    }

  

    /* v0.07.8: tab title/description vertical alignment and table header font unification */
    .panel.active {
      padding-top: 22px;
    }

    .project-list-head,
    .content-list-head,
    .daily-list-head {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 12px 18px;
      min-height: 96px;
      padding-top: 4px;
      padding-bottom: 14px;
    }

    .project-list-head .card-header,
    .content-list-head .card-header,
    .daily-list-head .card-header {
      display: grid;
      grid-template-rows: 34px 42px;
      align-content: start;
      min-height: 76px;
      padding: 0;
    }

    .project-title-row,
    .content-list-head .card-header h2,
    .daily-title-row {
      display: flex;
      align-items: center;
      min-height: 34px;
      margin: 0;
      padding: 0;
    }

    .project-title-row h2,
    .content-list-head .card-header h2,
    .daily-title-row h2 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: -0.03em;
    }

    .project-list-head .card-header p,
    .content-list-head .card-header p,
    .daily-list-head .card-header p {
      display: flex;
      align-items: center;
      min-height: 38px;
      margin: 4px 0 0;
      padding: 8px 12px;
      line-height: 1.35;
      font-size: 11px;
    }

    .project-list-toolbar,
    .content-list-toolbar,
    .daily-list-toolbar {
      align-self: start;
      display: flex;
      align-items: center;
      min-height: 38px;
      padding-top: 34px;
      padding-bottom: 0;
    }

    .project-table th,
    .content-table th {
      height: 36px;
      padding: 7px 8px;
      font-size: 11px !important;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: -0.01em;
      vertical-align: middle;
    }

    .project-table td,
    .content-table td {
      height: 36px;
      padding: 7px 8px;
      font-size: 12px;
      line-height: 1.25;
      vertical-align: middle;
    }

    @media (max-width: 720px) {
      .project-list-head,
      .content-list-head,
      .daily-list-head {
        grid-template-columns: 1fr;
        min-height: auto;
      }

      .project-list-head .card-header,
      .content-list-head .card-header,
      .daily-list-head .card-header {
        grid-template-rows: auto auto;
        min-height: auto;
      }

      .project-list-toolbar,
      .content-list-toolbar,
      .daily-list-toolbar {
        padding-top: 0;
      }
    }


    /* v0.07.9: project detail content list transparent table reset */
    .project-detail-content-list {
      display: block;
      width: 100%;
      overflow-x: auto;
      border: 1px solid rgba(255, 255, 255, 0.30);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.10);
      box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.10);
    }

    .project-detail-content-row {
      display: grid;
      grid-template-columns: minmax(190px, 1.8fr) minmax(82px, 0.72fr) minmax(120px, 0.9fr) minmax(62px, 0.42fr);
      align-items: stretch;
      min-width: 520px;
      min-height: 32px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    }

    .project-detail-content-row:last-child {
      border-bottom: 0;
    }

    .project-detail-content-row > span {
      display: flex;
      align-items: center;
      min-width: 0;
      padding: 6px 8px;
      border-right: 1px solid rgba(255, 255, 255, 0.20);
      color: var(--text-main);
      font-size: 10.5px;
      font-weight: 850;
      line-height: 1.3;
      overflow-wrap: anywhere;
    }

    .project-detail-content-row > span:last-child {
      border-right: 0;
    }

    .project-detail-content-head {
      min-height: 30px;
      background: rgba(71, 85, 105, 0.22);
    }

    .project-detail-content-head > span {
      justify-content: center;
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 950;
      text-align: center;
      white-space: nowrap;
    }

    .project-detail-content-title {
      justify-content: flex-start;
      text-align: left;
    }

    .project-detail-content-category,
    .project-detail-content-subtype {
      justify-content: center;
      text-align: center;
    }

    .project-detail-content-episode {
      justify-content: flex-end;
      text-align: right;
      white-space: nowrap;
    }

    .project-detail-content-title .linked-content-title-button {
      justify-content: flex-start;
      width: 100%;
      max-width: 100%;
      color: var(--primary);
      text-align: left;
      line-height: 1.3;
      white-space: normal;
      overflow: visible;
      text-overflow: clip;
    }

    .project-detail-content-title .linked-content-title-button:hover {
      text-decoration: underline;
      text-underline-offset: 3px;
    }


    /* v0.08.0: header sync/user UI simplification and centered project detail content table */
    .header-sync-card {
      gap: 6px;
      min-height: 34px;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      backdrop-filter: none;
    }

    .header-sync-time {
      max-width: 148px;
      overflow: hidden;
      text-overflow: ellipsis;
      color: var(--text-light);
      font-size: 10.5px;
    }

    .header-sync-button {
      width: 32px;
      height: 32px;
      min-width: 32px;
      min-height: 32px;
      padding: 0;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.74);
      color: var(--primary);
      font-size: 17px;
      line-height: 1;
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.18), 0 4px 12px rgba(15, 23, 42, 0.08);
    }

    .header-sync-button:hover {
      background: rgba(37, 99, 235, 0.12);
      color: var(--primary-dark);
    }

    .user-session-card {
      gap: 6px;
      padding: 4px;
    }

    .user-session-label {
      max-width: 270px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.44);
    }

    .user-role-badge {
      display: none !important;
    }

    .user-session-actions {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px;
      border: 1px solid rgba(148, 163, 184, 0.24);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.38);
    }

    .project-detail-content-row > span,
    .project-detail-content-title,
    .project-detail-content-category,
    .project-detail-content-subtype,
    .project-detail-content-episode {
      justify-content: center;
      text-align: center;
    }

    .project-detail-content-title .linked-content-title-button {
      justify-content: center;
      text-align: center;
    }

    @media (max-width: 720px) {
      .header-sync-time {
        display: none;
      }

      .user-session-actions {
        width: 100%;
        justify-content: space-between;
      }
    }



    /* v0.08.2: GAS settings tab right alignment and always-open settings panel */
    .tabs {
      display: flex;
      align-items: flex-end;
      width: 100%;
    }

    .gas-settings-tab {
      margin-left: auto;
    }

    .gas-sync-card {
      margin-top: 0;
    }

    .gas-sync-static-head,
    .gas-sync-toggle-head {
      cursor: default;
    }

    .gas-sync-arrow {
      display: none !important;
    }

    .gas-sync-card .card-body {
      display: block;
    }

    @media (max-width: 720px) {
      .tabs {
        overflow-x: auto;
      }

      .gas-settings-tab {
        margin-left: 16px;
      }
    }



    /* v0.08.4: content list toggle alignment, merged-cell-safe row selection, episode column and stepped episode UI */
    .content-title-row-wrap {
      display: flex;
      align-items: center;
      gap: 10px;
      min-height: 34px;
      margin: 0;
      padding: 0;
      flex-wrap: wrap;
    }

    .content-title-row-wrap h2 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: -0.03em;
    }

    .content-list-head .card-header {
      grid-template-rows: 34px 42px;
    }

    .content-table {
      min-width: 1020px;
      table-layout: fixed;
    }

    .content-table th:nth-child(1),
    .content-table td:nth-child(1) { width: 66px; }
    .content-table th:nth-child(2),
    .content-table td:nth-child(2) { width: 150px; }
    .content-table th:nth-child(3),
    .content-table td:nth-child(3) { width: 240px; }
    .content-table th:nth-child(4),
    .content-table td:nth-child(4) { width: 230px; }
    .content-table th:nth-child(5),
    .content-table td:nth-child(5) { width: 64px; }
    .content-table th:nth-child(6),
    .content-table td:nth-child(6) { width: 92px; }
    .content-table th:nth-child(7),
    .content-table td:nth-child(7) { width: 92px; }
    .content-table th:nth-child(8),
    .content-table td:nth-child(8) { width: 126px; }

    .content-row:hover td {
      background: transparent !important;
    }

    .content-row:hover .content-project-merged-cell {
      background: inherit !important;
      box-shadow: none !important;
    }

    .content-row .content-select-cell {
      border-top: 1px solid transparent;
      border-bottom: 1px solid transparent;
      transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    }

    .content-row:hover .content-select-cell,
    .content-row:focus-within .content-select-cell {
      background: rgba(255, 255, 255, 0.74) !important;
      border-top-color: rgba(37, 99, 235, 0.28);
      border-bottom-color: rgba(37, 99, 235, 0.28);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46), inset 0 -1px 0 rgba(255, 255, 255, 0.22);
    }

    .content-row:hover .content-select-cell:first-of-type,
    .content-row:focus-within .content-select-cell:first-of-type {
      border-left: 1px solid rgba(37, 99, 235, 0.28);
      border-radius: 10px 0 0 10px;
    }

    .content-row:hover .content-select-cell:last-of-type,
    .content-row:focus-within .content-select-cell:last-of-type {
      border-right: 1px solid rgba(37, 99, 235, 0.28);
      border-radius: 0 10px 10px 0;
    }

    .content-episode-label {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      max-width: 100%;
      min-height: 22px;
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.08);
      color: var(--primary);
      font-size: 10.5px;
      font-weight: 950;
      white-space: nowrap;
    }

    .content-episode-label.base {
      background: rgba(148, 163, 184, 0.13);
      color: var(--text-muted);
    }

    .content-episode-list-section {
      grid-template-columns: 1fr !important;
    }

    .content-episode-toolbar {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 8px;
      grid-column: 1 / -1;
    }

    .content-episode-list {
      display: grid;
      gap: 6px;
      grid-column: 1 / -1;
    }

    .content-episode-row {
      display: grid;
      grid-template-columns: minmax(130px, 1fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) auto;
      gap: 7px;
      align-items: end;
      padding: 7px;
      border: 1px solid var(--border-color);
      border-radius: 11px;
      background: rgba(255, 255, 255, 0.18);
    }

    .content-episode-row .danger-button {
      min-width: 56px;
      padding-inline: 10px;
    }

    .content-detail-selected-episode {
      color: var(--primary);
      font-weight: 950;
    }

    @media (max-width: 720px) {
      .content-title-row-wrap {
        align-items: flex-start;
      }

      .content-episode-row {
        grid-template-columns: 1fr;
      }
    }




    /* v0.08.7: content list hover isolation and content detail action/project summary cleanup */
    .content-table tbody tr.content-row,
    .content-table tbody tr.content-row:hover,
    .content-table tbody tr.content-row:focus,
    .content-table tbody tr.content-row:focus-within {
      box-shadow: none !important;
      outline: none !important;
    }

    .content-table tbody tr.content-row:hover td,
    .content-table tbody tr.content-row:focus td,
    .content-table tbody tr.content-row:focus-within td,
    .content-table tbody tr.content-row:active td {
      background: transparent !important;
      box-shadow: none !important;
    }

    .content-table tbody tr.content-row:hover td.content-project-merged-cell,
    .content-table tbody tr.content-row:focus td.content-project-merged-cell,
    .content-table tbody tr.content-row:focus-within td.content-project-merged-cell,
    .content-table tbody tr.content-row:active td.content-project-merged-cell,
    .content-table tbody tr.content-row:hover td.content-project-merged-cell *,
    .content-table tbody tr.content-row:focus td.content-project-merged-cell *,
    .content-table tbody tr.content-row:focus-within td.content-project-merged-cell * {
      background: transparent !important;
      box-shadow: none !important;
      outline: none !important;
    }

    .content-table tbody tr.content-row:hover td.content-select-cell,
    .content-table tbody tr.content-row:focus-within td.content-select-cell {
      background: rgba(255, 255, 255, 0.74) !important;
      border-top-color: rgba(37, 99, 235, 0.28) !important;
      border-bottom-color: rgba(37, 99, 235, 0.28) !important;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46), inset 0 -1px 0 rgba(255, 255, 255, 0.22) !important;
    }

    .content-table tbody tr.content-row:hover td.content-select-cell:first-of-type,
    .content-table tbody tr.content-row:focus-within td.content-select-cell:first-of-type {
      border-left: 1px solid rgba(37, 99, 235, 0.28) !important;
      border-radius: 10px 0 0 10px;
    }

    .content-table tbody tr.content-row:hover td.content-select-cell:last-of-type,
    .content-table tbody tr.content-row:focus-within td.content-select-cell:last-of-type {
      border-right: 1px solid rgba(37, 99, 235, 0.28) !important;
      border-radius: 0 10px 10px 0;
    }

    .content-detail-project-summary {
      text-align: center;
      align-content: center;
    }

    .content-detail-project-summary strong {
      display: grid;
      gap: 4px;
      justify-items: center;
      text-align: center;
    }

    .content-detail-project-summary .content-detail-project-meta {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.3;
    }

    .content-detail-project-summary .content-detail-project-task {
      color: var(--text-main);
      font-size: 13px;
      font-weight: 950;
      line-height: 1.45;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .modal-panel .detail-extra-actions {
      grid-column: 3;
      justify-self: end;
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 6px;
    }

    @media (max-width: 720px) {
      .modal-panel .detail-extra-actions {
        grid-column: 1 / -1;
        justify-self: center;
        justify-content: center;
      }
    }




    /* v0.08.8: content list merged project summary, title-only highlight, episode marker, and episode-count rowspan */
    .content-table {
      min-width: 920px;
      table-layout: fixed;
    }

    .content-table th,
    .content-table td {
      height: 38px;
      font-size: 11px;
      line-height: 1.25;
    }

    .content-table th:nth-child(1),
    .content-table td:nth-child(1) { width: 320px; }
    .content-table th:nth-child(2),
    .content-table td:nth-child(2) { width: 310px; }
    .content-table th:nth-child(3),
    .content-table td:nth-child(3) { width: 64px; }
    .content-table th:nth-child(4),
    .content-table td:nth-child(4) { width: 100px; }
    .content-table th:nth-child(5),
    .content-table td:nth-child(5) { width: 126px; }

    .content-project-summary-cell {
      padding: 7px 9px !important;
      text-align: center !important;
      vertical-align: middle !important;
      background: transparent !important;
      box-shadow: none !important;
      cursor: default !important;
    }

    .content-project-summary-box {
      display: grid;
      gap: 3px;
      justify-items: center;
      align-content: center;
      min-height: 100%;
      color: var(--text-main);
      text-align: center;
      line-height: 1.3;
    }

    .content-project-summary-box span {
      color: var(--text-muted);
      font-size: 10.5px;
      font-weight: 900;
      white-space: normal;
      overflow-wrap: anywhere;
    }

    .content-project-summary-box strong {
      display: block;
      max-width: 100%;
      color: var(--text-main);
      font-size: 11.5px;
      font-weight: 950;
      white-space: normal;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .content-table tbody tr.content-row,
    .content-table tbody tr.content-row:hover,
    .content-table tbody tr.content-row:focus,
    .content-table tbody tr.content-row:focus-within,
    .content-table tbody tr.content-row:active {
      box-shadow: none !important;
      outline: none !important;
      background: transparent !important;
    }

    .content-table tbody tr.content-row:hover td,
    .content-table tbody tr.content-row:focus td,
    .content-table tbody tr.content-row:focus-within td,
    .content-table tbody tr.content-row:active td {
      background: transparent !important;
      box-shadow: none !important;
      outline: none !important;
    }

    .content-table tbody tr.content-row:hover td.content-title-cell,
    .content-table tbody tr.content-row:focus-within td.content-title-cell {
      background: rgba(255, 255, 255, 0.74) !important;
      border: 1px solid rgba(37, 99, 235, 0.28) !important;
      border-radius: 10px !important;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.46), inset 0 -1px 0 rgba(255, 255, 255, 0.22) !important;
    }

    .content-title-cell {
      cursor: pointer;
    }

    .content-title-text {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      width: 100%;
      max-width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .content-episode-marker {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      color: var(--primary);
      font-size: 12px;
      font-weight: 950;
      line-height: 1;
    }

    .content-episode-count-cell {
      text-align: center !important;
      vertical-align: middle !important;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      background: transparent !important;
      cursor: default !important;
    }

    .content-status-cell,
    .content-schedule-cell {
      text-align: center !important;
      cursor: default !important;
    }

    /* v0.09.0: content list cell borders, column balance, title-only highlight, and detail episode action cleanup */
    .content-table {
      min-width: 920px;
      table-layout: fixed;
      border-collapse: separate;
      border-spacing: 0;
      border: 1px solid rgba(148, 163, 184, 0.46) !important;
    }

    .content-table th,
    .content-table td {
      border-right: 1px solid rgba(148, 163, 184, 0.46) !important;
      border-bottom: 1px solid rgba(148, 163, 184, 0.46) !important;
    }

    .content-table th:last-child,
    .content-table td:last-child {
      border-right: 0 !important;
    }

    .content-table tbody tr:last-child td {
      border-bottom: 0 !important;
    }

    .content-table th:nth-child(1),
    .content-table td:nth-child(1) { width: 386px; }
    .content-table th:nth-child(2),
    .content-table td:nth-child(2) { width: 220px; }
    .content-table th:nth-child(3),
    .content-table td:nth-child(3) { width: 34px; }
    .content-table th:nth-child(4),
    .content-table td:nth-child(4) { width: 50px; }
    .content-table th:nth-child(5),
    .content-table td:nth-child(5) { width: 230px; }

    .content-table .content-schedule-cell,
    .content-table .content-schedule-cell .schedule-period-text {
      font-size: 12.5px;
      font-weight: 950;
    }

    .content-table tbody tr.content-row,
    .content-table tbody tr.content-row:hover,
    .content-table tbody tr.content-row:focus,
    .content-table tbody tr.content-row:focus-within,
    .content-table tbody tr.content-row:active {
      box-shadow: none !important;
      outline: none !important;
      background: transparent !important;
    }

    .content-table tbody tr.content-row:hover td,
    .content-table tbody tr.content-row:focus td,
    .content-table tbody tr.content-row:focus-within td,
    .content-table tbody tr.content-row:active td {
      background: transparent !important;
      box-shadow: none !important;
      outline: none !important;
    }

    .content-table tbody tr.content-row:hover td.content-project-summary-cell,
    .content-table tbody tr.content-row:focus td.content-project-summary-cell,
    .content-table tbody tr.content-row:focus-within td.content-project-summary-cell,
    .content-table tbody tr.content-row:active td.content-project-summary-cell,
    .content-table tbody tr.content-row:hover td.content-episode-count-cell,
    .content-table tbody tr.content-row:focus td.content-episode-count-cell,
    .content-table tbody tr.content-row:focus-within td.content-episode-count-cell,
    .content-table tbody tr.content-row:active td.content-episode-count-cell {
      background: transparent !important;
      box-shadow: none !important;
      outline: none !important;
    }

    .content-table tbody tr.content-row:hover td.content-title-cell,
    .content-table tbody tr.content-row:focus-within td.content-title-cell {
      background: rgba(255, 255, 255, 0.76) !important;
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.46) !important;
      outline: none !important;
    }

    .content-title-text {
      gap: 9px;
      justify-content: center;
    }

    .content-title-label-text {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .content-episode-marker {
      margin-left: 2px;
    }

    .content-episode-detail-action {
      background: var(--primary) !important;
      color: #fff !important;
      box-shadow: 0 8px 18px rgba(37, 99, 235, 0.22) !important;
    }

    .modal-panel .detail-extra-actions {
      grid-column: 3 !important;
      justify-self: end !important;
      justify-content: flex-end !important;
      margin-left: auto;
    }



    /* v0.09.0: content list column width rebalance */
    .content-table {
      min-width: 1486px !important;
      table-layout: fixed !important;
    }

    .content-table th:nth-child(1),
    .content-table td:nth-child(1) { width: 965px !important; }

    .content-table th:nth-child(2),
    .content-table td:nth-child(2) { width: 260px !important; }

    .content-table th:nth-child(3),
    .content-table td:nth-child(3) { width: 40px !important; }

    .content-table th:nth-child(4),
    .content-table td:nth-child(4) { width: 60px !important; }

    .content-table th:nth-child(5),
    .content-table td:nth-child(5) { width: 161px !important; }

    .content-project-summary-cell {
      white-space: normal !important;
    }

    .content-project-summary-task {
      max-width: 100%;
      white-space: normal !important;
      overflow-wrap: anywhere;
      word-break: keep-all;
      line-height: 1.35;
    }


    /* v0.09.1: enforce content list column widths with colgroup to avoid rowspan/nth-child conflict */
    .content-table {
      width: 100% !important;
      min-width: 1280px !important;
      table-layout: fixed !important;
    }

    .content-table col.content-col-project { width: 29.4% !important; }
    .content-table col.content-col-title { width: 30% !important; }
    .content-table col.content-col-count { width: 5% !important; }
    .content-table col.content-col-status { width: 7% !important; }
    .content-table col.content-col-schedule { width: 28.6% !important; }

    .content-table th:nth-child(1),
    .content-table td.content-project-summary-cell { width: 29.4% !important; }
    .content-table th:nth-child(2),
    .content-table td.content-title-cell { width: 30% !important; }
    .content-table th:nth-child(3),
    .content-table td.content-episode-count-cell { width: 5% !important; }
    .content-table th:nth-child(4),
    .content-table td.content-status-cell { width: 7% !important; }
    .content-table th:nth-child(5),
    .content-table td.content-schedule-cell { width: 28.6% !important; }

    .content-project-summary-cell,
    .content-project-summary-box,
    .content-project-summary-box span,
    .content-project-summary-box strong {
      max-width: none !important;
    }

    .content-project-summary-box span {
      font-size: 11px;
    }

    /* v0.09.2: content list column balance correction */
    .content-table col.content-col-project { width: 29.4% !important; }
    .content-table col.content-col-schedule { width: 28.6% !important; }
    .content-table th:nth-child(1),
    .content-table td.content-project-summary-cell { width: 29.4% !important; }
    .content-table th:nth-child(5),
    .content-table td.content-schedule-cell { width: 28.6% !important; }
    .content-table td.content-schedule-cell {
      white-space: nowrap;
    }

    .content-project-summary-box strong,
    .content-project-summary-task {
      font-size: 13px !important;
      line-height: 1.45 !important;
      white-space: normal !important;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .content-title-cell,
    .content-title-text,
    .content-title-label-text {
      min-width: 0 !important;
      max-width: 100% !important;
    }

    .content-title-text {
      gap: 12px !important;
    }


    /* v0.09.4: content list 5-state filters and next schedule column */
    .content-filter-toggle {
      gap: 4px;
      flex-wrap: wrap;
      max-width: min(560px, 100%);
    }

    .content-filter-toggle .project-view-button {
      min-width: 48px;
      padding-left: 9px;
      padding-right: 9px;
    }

    .content-table {
      min-width: 1320px !important;
    }

    .content-table col.content-col-project { width: 27% !important; }
    .content-table col.content-col-title { width: 27% !important; }
    .content-table col.content-col-count { width: 5% !important; }
    .content-table col.content-col-status { width: 6% !important; }
    .content-table col.content-col-schedule { width: 18% !important; }
    .content-table col.content-col-next { width: 17% !important; }

    .content-table th:nth-child(1),
    .content-table td.content-project-summary-cell { width: 27% !important; }
    .content-table th:nth-child(2),
    .content-table td.content-title-cell { width: 27% !important; }
    .content-table th:nth-child(3),
    .content-table td.content-episode-count-cell { width: 5% !important; }
    .content-table th:nth-child(4),
    .content-table td.content-status-cell { width: 6% !important; }
    .content-table th:nth-child(5),
    .content-table td.content-schedule-cell { width: 18% !important; }
    .content-table th:nth-child(6),
    .content-table td.content-next-schedule-cell { width: 17% !important; }

    .content-next-schedule-cell {
      text-align: center !important;
      color: var(--primary-dark);
      font-size: 12.5px;
      font-weight: 950;
      white-space: nowrap;
    }

    .content-next-schedule-text {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 23px;
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.08);
      border: 1px solid rgba(37, 99, 235, 0.18);
      color: var(--primary-dark);
      line-height: 1.2;
    }


    /* v0.09.4: content list order/width and schedule date controls */
    .content-table col.content-col-project { width: 24.3% !important; }
    .content-table col.content-col-title { width: 29.7% !important; }
    .content-table col.content-col-count { width: 5% !important; }
    .content-table col.content-col-status { width: 6% !important; }
    .content-table col.content-col-next { width: 17% !important; }
    .content-table col.content-col-schedule { width: 18% !important; }

    .content-table th:nth-child(1),
    .content-table td.content-project-summary-cell { width: 24.3% !important; }
    .content-table th:nth-child(2),
    .content-table td.content-title-cell { width: 29.7% !important; }
    .content-table th:nth-child(3),
    .content-table td.content-episode-count-cell { width: 5% !important; }
    .content-table th:nth-child(4),
    .content-table td.content-status-cell { width: 6% !important; }
    .content-table th:nth-child(5),
    .content-table td.content-next-schedule-cell { width: 17% !important; }
    .content-table th:nth-child(6),
    .content-table td.content-schedule-cell { width: 18% !important; }

    .content-next-schedule-text.is-completed,
    .content-next-schedule-cell.is-completed .content-next-schedule-text {
      display: inline;
      min-height: 0;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text-muted);
      font-weight: 950;
    }

    .schedule-step-list {
      grid-template-columns: 1fr;
    }

    .schedule-step-item {
      grid-template-columns: minmax(92px, 0.8fr) 58px minmax(170px, 1.45fr);
      align-items: center;
    }

    .schedule-step-date-wrap {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      align-items: center;
      gap: 4px;
      color: var(--text-light);
      font-size: 10px;
      font-weight: 900;
    }

    .schedule-step-date-input {
      width: 100% !important;
      min-height: 26px !important;
      padding: 4px 5px !important;
      font-size: 10px !important;
      text-align: center;
    }

    .schedule-step-date-input:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .schedule-preview-row {
      grid-template-columns: 70px 44px minmax(0, 1fr);
    }

    @media (max-width: 720px) {
      .schedule-step-item {
        grid-template-columns: 1fr;
      }
      .schedule-step-date-wrap {
        grid-template-columns: 1fr;
      }
      .schedule-step-date-wrap span {
        display: none;
      }
    }



    /* v0.09.5: content detail grid cleanup and deadline-only schedule UI */
    .content-detail-info-section {
      gap: 8px;
    }

    .modal-panel .content-detail-project-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modal-panel .content-detail-type-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .modal-panel .content-detail-meta-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .modal-panel .content-detail-note-grid {
      grid-template-columns: minmax(130px, 0.8fr) minmax(0, 2fr) !important;
      align-items: stretch;
    }

    .content-detail-memo-item {
      min-height: 72px;
      align-content: start;
    }

    .content-detail-schedule-row {
      grid-template-columns: minmax(90px, 1fr) minmax(120px, 1fr) !important;
    }

    .schedule-ratio-wrap {
      display: none !important;
    }

    .schedule-step-item {
      grid-template-columns: minmax(110px, 0.9fr) minmax(160px, 1.2fr) !important;
      align-items: center;
    }

    .schedule-step-date-wrap {
      display: grid;
      grid-template-columns: 42px minmax(0, 1fr) !important;
      align-items: center;
      gap: 6px;
    }

    .schedule-step-date-label {
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 950;
      text-align: right;
    }

    .schedule-segment-ratio {
      display: none !important;
    }

    .schedule-preview-row {
      grid-template-columns: minmax(90px, 1fr) minmax(120px, 1fr) !important;
    }

    .schedule-preview-row span,
    .content-detail-schedule-row span {
      text-align: center;
    }

    @media (max-width: 720px) {
      .modal-panel .content-detail-project-grid,
      .modal-panel .content-detail-type-grid,
      .modal-panel .content-detail-meta-grid,
      .modal-panel .content-detail-note-grid,
      .schedule-step-item,
      .schedule-step-date-wrap {
        grid-template-columns: 1fr !important;
      }

      .schedule-step-date-label {
        text-align: left;
      }
    }

    /* v0.09.7: restore interactive schedule multi-slider */
    .schedule-segmented-bar {
      position: relative;
    }

    .schedule-segment-handle {
      display: block !important;
    }


    /* v0.09.7: restore visible 1% schedule handles and remove shooting step */
    .schedule-segmented-bar {
      overflow: visible !important;
      position: relative !important;
      min-height: 44px;
    }

    .schedule-segment-handle {
      display: block !important;
      position: absolute !important;
      top: 50% !important;
      bottom: auto !important;
      width: 16px !important;
      height: 28px !important;
      min-width: 16px !important;
      padding: 0 !important;
      transform: translate(-50%, -50%) !important;
      border: 2px solid rgba(37, 99, 235, 0.55) !important;
      border-radius: 999px !important;
      background: #fff !important;
      box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.7), 0 5px 16px rgba(15, 23, 42, 0.28) !important;
      cursor: col-resize !important;
      z-index: 40 !important;
      pointer-events: auto !important;
      touch-action: none !important;
    }

    .schedule-segment-handle::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 3px;
      height: 17px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.9);
      transform: translate(-50%, -50%);
    }

    .schedule-segment-handle:hover,
    .schedule-segment-handle:focus-visible {
      border-color: rgba(29, 78, 216, 0.9) !important;
      box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.18), 0 6px 18px rgba(15, 23, 42, 0.32) !important;
      outline: none;
    }


    /* v0.09.8: compact schedule slider, final deadline lock, and percent-only track */
    .schedule-segmented-bar {
      min-height: 32px !important;
      height: 32px !important;
      margin-top: 24px !important;
      overflow: visible !important;
      align-items: stretch !important;
    }

    .schedule-segment {
      min-height: 32px !important;
      height: 32px !important;
      grid-template-rows: 1fr !important;
      align-items: center !important;
      justify-items: center !important;
      padding: 4px 6px !important;
      overflow: visible !important;
    }

    .schedule-segment-label {
      position: absolute !important;
      left: 50% !important;
      top: -21px !important;
      max-width: 72px !important;
      transform: translateX(-50%) !important;
      color: var(--text-muted) !important;
      font-size: 10px !important;
      font-weight: 950 !important;
      line-height: 1.1 !important;
      text-align: center !important;
      white-space: nowrap !important;
      pointer-events: none !important;
      z-index: 5 !important;
    }

    .schedule-segment-ratio {
      display: block !important;
      align-self: center !important;
      color: var(--primary-dark) !important;
      font-size: 10px !important;
      font-weight: 950 !important;
      line-height: 1 !important;
      opacity: 1 !important;
    }

    .schedule-segment-handle {
      height: 22px !important;
      width: 14px !important;
      min-width: 14px !important;
    }

    .schedule-step-item.is-final-delivery .schedule-step-label {
      opacity: 0.78;
    }

    .schedule-step-item.is-final-delivery .schedule-step-check {
      cursor: not-allowed;
    }

    .schedule-step-fixed-date {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 5px 8px;
      border: 1px solid var(--border-color);
      border-radius: 9px;
      background: rgba(255, 255, 255, 0.26);
      color: var(--primary);
      font-size: 11px;
      font-weight: 950;
      white-space: nowrap;
    }



    /* v0.09.9: content episode hint and compact 2-column schedule step selector */
    .content-linked-field-hint {
      margin-top: -2px;
      color: var(--text-muted);
      font-size: 6px !important;
      font-weight: 800;
      line-height: 1.35;
      letter-spacing: -0.01em;
    }

    .schedule-step-list {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: 6px !important;
    }

    .schedule-step-item {
      grid-template-columns: minmax(58px, 0.72fr) minmax(132px, 1fr) !important;
      min-height: 34px;
      padding: 6px 7px !important;
      align-items: center !important;
    }

    .schedule-step-item .schedule-step-label {
      min-height: 24px;
      font-size: 10px;
    }

    .schedule-step-date-wrap {
      grid-template-columns: 34px minmax(0, 1fr) !important;
      gap: 4px !important;
    }

    .schedule-step-date-input {
      min-height: 25px !important;
      padding: 3px 5px !important;
      font-size: 10px !important;
    }

    @media (max-width: 720px) {
      .schedule-step-list,
      .schedule-step-item,
      .schedule-step-date-wrap {
        grid-template-columns: 1fr !important;
      }
    }


    /* v0.10.2: content detail note width, schedule reset, and linked episode field state */
    .modal-panel .content-detail-note-grid {
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) !important;
      align-items: stretch;
    }

    .schedule-date-control-row {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto !important;
      align-items: end;
    }

    .schedule-reset-field {
      align-self: end;
      min-width: 104px;
    }

    .schedule-reset-button {
      width: 100%;
      min-height: 29px;
      padding: 5px 10px !important;
      border-radius: 10px !important;
      font-size: 10.5px !important;
      white-space: nowrap;
    }

    .content-modal-form.is-child-episode .content-master-field {
      padding: 6px;
      border: 1px solid rgba(71, 85, 105, 0.46);
      border-radius: 10px;
      background: rgba(71, 85, 105, 0.22);
    }

    .content-modal-form.is-child-episode .content-master-field label {
      color: #334155 !important;
      font-weight: 950;
    }

    .content-modal-form.is-child-episode .content-master-field input:disabled,
    .content-modal-form.is-child-episode .content-master-field select:disabled {
      opacity: 1;
      cursor: not-allowed;
      border-color: rgba(71, 85, 105, 0.52) !important;
      background: rgba(71, 85, 105, 0.30) !important;
      color: #1f2937 !important;
      font-weight: 900;
      -webkit-text-fill-color: #1f2937;
    }

    @media (max-width: 720px) {
      .schedule-date-control-row {
        grid-template-columns: 1fr !important;
      }
      .schedule-reset-field {
        min-width: 0;
      }
    }


    /* v0.10.2: lighter locked episode fields, 5% schedule slider floor, and preview removal */
    .content-modal-form.is-child-episode .content-master-field {
      border-color: rgba(148, 163, 184, 0.32) !important;
      background: rgba(148, 163, 184, 0.10) !important;
    }

    .content-modal-form.is-child-episode .content-master-field label {
      color: #64748b !important;
    }

    .content-modal-form.is-child-episode .content-master-field input:disabled,
    .content-modal-form.is-child-episode .content-master-field select:disabled {
      border-color: rgba(148, 163, 184, 0.34) !important;
      background: rgba(248, 250, 252, 0.72) !important;
      color: #475569 !important;
      -webkit-text-fill-color: #475569;
    }

    #contentSchedulePreviewPanel,
    #toggleSchedulePreview {
      display: none !important;
    }

    /* v0.10.5: corrected schedule slider handle sync and rounded track edges */
    .schedule-segmented-bar {
      border-radius: 999px !important;
      background: rgba(255, 255, 255, 0.16) !important;
      box-shadow: inset 0 0 0 1px var(--border-color) !important;
    }

    .schedule-segment {
      background-clip: padding-box !important;
    }

    .schedule-segment:first-of-type {
      border-top-left-radius: 999px !important;
      border-bottom-left-radius: 999px !important;
    }

    .schedule-segment:last-of-type {
      border-top-right-radius: 999px !important;
      border-bottom-right-radius: 999px !important;
    }

    .schedule-segment:only-of-type {
      border-radius: 999px !important;
    }

    /* v0.10.5: exact slider percent basis and clipped segment backgrounds */
    .schedule-segmented-bar {
      isolation: isolate !important;
      background: transparent !important;
      box-shadow: none !important;
      border: 0 !important;
    }

    .schedule-segmented-bar::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.16);
      box-shadow: inset 0 0 0 1px var(--border-color);
      pointer-events: none;
    }

    .schedule-segment {
      position: relative !important;
      flex-grow: 0 !important;
      flex-shrink: 0 !important;
      min-width: 0 !important;
      background: transparent !important;
      overflow: visible !important;
      z-index: 1 !important;
    }

    .schedule-segment::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background: rgba(37, 99, 235, 0.18);
      pointer-events: none;
    }

    .schedule-segment:nth-of-type(2n)::before {
      background: rgba(139, 92, 246, 0.18);
    }

    .schedule-segment:nth-of-type(3n)::before {
      background: rgba(16, 185, 129, 0.16);
    }

    .schedule-segment:first-of-type::before {
      border-top-left-radius: 999px;
      border-bottom-left-radius: 999px;
    }

    .schedule-segment:last-of-type::before {
      border-top-right-radius: 999px;
      border-bottom-right-radius: 999px;
    }

    .schedule-segment:only-of-type::before {
      border-radius: 999px;
    }

    .schedule-segment-label,
    .schedule-segment-ratio {
      z-index: 2 !important;
    }

    .schedule-segment-handle {
      z-index: 80 !important;
    }


    /* v0.10.7: schedule redistribution hint and separate delivery date */
    .schedule-redistribution-hint {
      grid-column: 1 / -1;
      margin: -2px 0 2px;
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 850;
      line-height: 1.35;
      letter-spacing: -0.01em;
    }

    .schedule-step-date-wrap {
      grid-template-columns: minmax(0, 1fr) !important;
    }

    .schedule-delivery-date-row {
      grid-column: 1 / -1;
      display: grid;
      grid-template-columns: minmax(58px, 0.72fr) minmax(132px, 1fr);
      min-height: 34px;
      padding: 6px 7px;
      align-items: center;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.22);
      gap: 8px;
    }

    .schedule-delivery-toggle {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      min-height: 24px;
      color: var(--text);
      font-size: 10px;
      font-weight: 950;
      letter-spacing: -0.02em;
      cursor: pointer;
      user-select: none;
    }

    .schedule-delivery-toggle input {
      width: 14px;
      height: 14px;
      accent-color: var(--primary);
      cursor: pointer;
    }

    .schedule-delivery-date-wrap {
      display: grid;
      grid-template-columns: 38px minmax(0, 1fr);
      align-items: center;
      gap: 4px;
      color: var(--text-light);
      font-size: 10px;
      font-weight: 900;
    }

    .schedule-delivery-date-label {
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 950;
      text-align: right;
    }

    .schedule-delivery-date-input {
      width: 100% !important;
      min-height: 25px !important;
      padding: 3px 5px !important;
      font-size: 10px !important;
      text-align: center;
    }

    .schedule-delivery-date-input:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

    .schedule-delivery-hint {
      grid-column: 1 / -1;
      margin: -2px 0 0;
      color: var(--text-muted);
      font-size: 9px;
      font-weight: 800;
      line-height: 1.35;
      letter-spacing: -0.01em;
    }

    @media (max-width: 720px) {
      .schedule-delivery-date-row,
      .schedule-delivery-date-wrap {
        grid-template-columns: 1fr !important;
      }
      .schedule-delivery-date-label {
        text-align: left;
      }
    }


    /* v0.11.3: content form row layout and explicit two-way schedule sync buttons */
    .content-form-panel {
      width: min(840px, calc(100vw - 32px)) !important;
    }

    .content-modal-form .content-info-section {
      grid-template-columns: 1fr !important;
    }

    .content-info-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
      align-items: stretch;
    }

    .content-info-main-column {
      display: grid;
      gap: 8px;
      min-width: 0;
    }

    .content-info-basic-grid.content-title-row {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, 2.45fr) 84px !important;
      gap: 8px;
      align-items: end;
    }

    .content-project-field {
      grid-column: 1 / -1;
    }

    .content-project-field select:disabled {
      color: var(--text);
      font-weight: 850;
      opacity: 1;
      cursor: not-allowed;
      background: rgba(226, 232, 240, 0.58);
    }

    .content-info-memo-field {
      min-height: auto;
    }

    .content-info-memo-field textarea {
      height: auto;
      min-height: 78px;
      resize: vertical;
    }

    .schedule-date-sync-row {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: center;
      gap: 8px 10px;
      grid-column: 1 / -1;
      padding: 2px 0 0;
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 850;
      line-height: 1.35;
    }

    .schedule-date-sync-buttons {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
    }

    .schedule-date-sync-hints {
      display: grid;
      gap: 2px;
      min-width: 0;
    }

    .schedule-date-sync-button {
      min-height: 28px !important;
      padding: 5px 10px !important;
      border-radius: 10px !important;
      font-size: 10.5px !important;
      font-weight: 950 !important;
      white-space: nowrap;
    }

    #contentScheduleRatioPanel {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
      align-items: stretch;
    }

    #contentScheduleRatioPanel[hidden] {
      display: none !important;
    }

    #contentScheduleSteps {
      grid-column: 1;
      display: grid !important;
      grid-auto-flow: row;
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 6px !important;
    }

    #contentScheduleSteps .schedule-step-item {
      grid-template-columns: minmax(58px, 0.58fr) minmax(0, 1fr) !important;
      min-width: 0;
    }

    #contentScheduleDeliveryRow {
      grid-column: 1;
      grid-row: auto;
      grid-template-columns: minmax(140px, 0.6fr) minmax(190px, 0.75fr) minmax(0, 1.65fr) !important;
      align-content: center;
      min-height: 42px;
      padding: 8px 9px !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-toggle {
      align-self: center;
    }

    #contentScheduleDeliveryRow .schedule-delivery-date-wrap {
      grid-template-columns: 42px minmax(0, 1fr) !important;
      width: 100%;
    }

    #contentScheduleDeliveryRow .schedule-delivery-hint {
      grid-column: auto;
      margin-top: 0;
      align-self: center;
    }

    @media (max-width: 900px) {
      .content-info-basic-grid.content-title-row,
      #contentScheduleSteps {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      }

      .schedule-date-sync-row,
      #contentScheduleDeliveryRow {
        grid-template-columns: 1fr !important;
      }

      #contentScheduleDeliveryRow .schedule-delivery-hint {
        grid-column: 1;
      }
    }

    @media (max-width: 720px) {
      .content-info-basic-grid.content-title-row,
      #contentScheduleSteps,
      #contentScheduleDeliveryRow .schedule-delivery-date-wrap {
        grid-template-columns: 1fr !important;
      }

      .schedule-date-sync-row,
      .schedule-date-sync-buttons {
        align-items: stretch;
      }

      .schedule-date-sync-buttons {
        flex-direction: column;
      }

      .schedule-date-sync-button {
        width: 100%;
      }
    }

      .schedule-date-sync-row {
        align-items: stretch;
        flex-direction: column;
      }

      .schedule-date-sync-button {
        width: 100%;
      }
    }



    /* v0.11.3: content info memo fixed two-line height and always-open final schedule */
    .content-info-memo-field textarea {
      height: 58px !important;
      min-height: 58px !important;
      max-height: 58px !important;
      resize: none !important;
    }

    .schedule-date-sync-row {
      display: flex !important;
      align-items: center !important;
      justify-content: flex-start !important;
      gap: 6px !important;
      grid-column: 1 / -1;
      padding: 2px 0 0 !important;
    }

    .schedule-date-sync-buttons {
      display: flex !important;
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      align-items: center !important;
      gap: 6px !important;
      width: auto !important;
    }

    .schedule-date-sync-button {
      width: auto !important;
    }

    .schedule-date-sync-hints {
      display: none !important;
    }

    .schedule-final-group {
      gap: 8px;
    }

    .schedule-final-title {
      display: flex;
      align-items: center;
      min-height: 34px;
      padding: 9px 12px;
      border: 1px solid var(--border);
      border-radius: 12px;
      background: rgba(248, 250, 252, 0.82);
      color: var(--text);
      font-size: 12px;
      font-weight: 950;
    }

    #contentScheduleRatioPanel {
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 8px !important;
      align-items: stretch !important;
    }

    #contentScheduleRatioPanel[hidden] {
      display: grid !important;
    }

    @media (max-width: 720px) {
      .schedule-date-sync-buttons {
        flex-wrap: wrap !important;
        align-items: stretch !important;
        width: 100% !important;
      }

      .schedule-date-sync-button {
        flex: 1 1 180px;
      }
    }


    /* v0.11.4: content episode hint, schedule sync label, and enlarged final schedule labels */
    .content-linked-field-hint {
      font-size: 10px !important;
      line-height: 1.4 !important;
    }

    .schedule-date-sync-row {
      display: flex !important;
      align-items: center !important;
      justify-content: flex-start !important;
      gap: 8px !important;
      grid-column: 1 / -1;
      padding: 2px 0 0 !important;
    }

    .schedule-date-sync-label {
      flex: 0 0 auto;
      color: var(--text);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }

    .schedule-date-sync-buttons {
      display: flex !important;
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      align-items: center !important;
      gap: 6px !important;
      width: auto !important;
    }

    #contentScheduleSteps .schedule-step-label {
      font-size: 13px !important;
      font-weight: 950 !important;
      line-height: 1.25 !important;
    }

    #contentScheduleSteps .schedule-step-date-wrap,
    #contentScheduleSteps .schedule-step-date-input,
    #contentScheduleDeliveryRow .schedule-delivery-toggle,
    #contentScheduleDeliveryRow .schedule-delivery-date-wrap,
    #contentScheduleDeliveryRow .schedule-delivery-date-label,
    #contentScheduleDeliveryRow .schedule-delivery-date-input {
      font-size: 13px !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-toggle {
      font-weight: 950 !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-date-wrap {
      grid-template-columns: 56px minmax(0, 1fr) !important;
    }

    .schedule-final-title {
      display: none !important;
    }

    @media (max-width: 720px) {
      .schedule-date-sync-row {
        align-items: stretch !important;
        flex-direction: column !important;
      }

      .schedule-date-sync-label {
        width: 100%;
      }
    }


    /* v0.11.5: content info inline memo and schedule inline controls */
    .content-linked-field-hint {
      font-size: 13px !important;
      font-weight: 900 !important;
      line-height: 1.35 !important;
    }

    .content-info-memo-field {
      display: grid !important;
      grid-template-columns: auto minmax(0, 1fr) !important;
      align-items: start !important;
      gap: 7px !important;
    }

    .content-info-memo-field label {
      margin-top: 8px !important;
      white-space: nowrap !important;
    }

    .content-info-memo-field label::after {
      content: " :";
    }

    .schedule-date-control-row {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto !important;
      align-items: center !important;
      gap: 8px !important;
    }

    .schedule-date-control-row > .field:not(.schedule-reset-field) {
      display: grid !important;
      grid-template-columns: auto minmax(0, 1fr) !important;
      align-items: center !important;
      gap: 6px !important;
    }

    .schedule-date-control-row > .field:not(.schedule-reset-field) label {
      margin: 0 !important;
      white-space: nowrap !important;
    }

    .schedule-date-control-row > .field:not(.schedule-reset-field) label::after {
      content: " :";
    }

    .schedule-date-sync-row {
      display: flex !important;
      flex-direction: row !important;
      align-items: center !important;
      justify-content: flex-start !important;
      flex-wrap: wrap !important;
      gap: 6px 8px !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-hint {
      font-size: 13px !important;
      font-weight: 900 !important;
      line-height: 1.35 !important;
    }

    @media (max-width: 720px) {
      .content-info-memo-field,
      .schedule-date-control-row,
      .schedule-date-control-row > .field:not(.schedule-reset-field) {
        grid-template-columns: 1fr !important;
      }

      .content-info-memo-field label,
      .schedule-date-control-row > .field:not(.schedule-reset-field) label {
        margin-top: 0 !important;
      }
    }


    /* v0.11.6: content memo label alignment, centered date sync, and delivery date inline layout */
    .content-info-memo-field {
      align-items: center !important;
    }

    .content-info-memo-field label {
      margin-top: 0 !important;
      align-self: center !important;
      line-height: 1.2 !important;
    }

    .content-info-memo-field label::after {
      content: "" !important;
    }

    .schedule-date-sync-row {
      justify-content: center !important;
      text-align: center !important;
    }

    #contentScheduleDeliveryRow {
      grid-template-columns: auto minmax(160px, 0.55fr) minmax(0, 1fr) !important;
      justify-content: start !important;
      align-items: center !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-toggle {
      justify-self: start !important;
      white-space: nowrap !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-date-wrap {
      grid-template-columns: minmax(0, 1fr) !important;
      width: 100% !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-date-label {
      display: none !important;
    }

    #contentScheduleDeliveryRow .schedule-delivery-date-input {
      width: 100% !important;
    }

    @media (max-width: 900px) {
      #contentScheduleDeliveryRow {
        grid-template-columns: 1fr !important;
      }
    }



    /* v0.11.9: content schedule wizard stage separation */
    .schedule-wizard-indicator {
      grid-column: 1 / -1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: fit-content;
      max-width: 100%;
      padding: 6px 10px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.10);
      color: #1d4ed8;
      font-size: 12px;
      font-weight: 950;
      letter-spacing: -0.02em;
    }

    .schedule-wizard-actions {
      grid-column: 1 / -1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding-top: 6px;
    }

    .schedule-wizard-button {
      min-width: 92px;
    }



    #contentScheduleSteps .schedule-step-item[hidden],
    .schedule-wizard-actions button[hidden] {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="period"] .schedule-reset-field {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-date-control-row,
    #contentScheduleFields[data-schedule-stage="steps"] .schedule-ratio-summary,
    #contentScheduleFields[data-schedule-stage="steps"] .schedule-date-sync-row,
    #contentScheduleFields[data-schedule-stage="steps"] #contentScheduleDeliveryRow,
    #contentScheduleFields[data-schedule-stage="steps"] .schedule-ratio-wrap,
    #contentScheduleFields[data-schedule-stage="steps"] .schedule-step-date-wrap {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] #contentScheduleSteps {
      grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-step-item {
      align-items: center;
      min-height: 46px;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-date-control-row,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-ratio-summary,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-date-sync-row,
    #contentScheduleFields[data-schedule-stage="dates"] #contentScheduleDeliveryRow,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-ratio-wrap,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-check {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-label span,
    #contentScheduleFields[data-schedule-stage="preview"] .schedule-step-label span {
      display: inline-block;
      min-width: 58px;
    }

    #contentScheduleFields[data-schedule-stage="preview"] .schedule-date-control-row,
    #contentScheduleFields[data-schedule-stage="preview"] .schedule-date-sync-row,
    #contentScheduleFields[data-schedule-stage="preview"] #contentScheduleDeliveryRow,
    #contentScheduleFields[data-schedule-stage="preview"] .schedule-ratio-wrap,
    #contentScheduleFields[data-schedule-stage="preview"] .schedule-step-check {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="preview"] .schedule-ratio-summary {
      display: block !important;
    }

    #contentScheduleFields[data-schedule-stage="preview"] .schedule-segment-handle {
      pointer-events: none;
    }

    @media (max-width: 720px) {
      .schedule-wizard-actions {
        align-items: stretch;
        flex-direction: column;
      }

      .schedule-wizard-button {
        width: 100%;
      }
    }

    /* v0.11.7: content episode add feedback and delivery date detail display */
    @keyframes contentEpisodeAddedPulse {
      0% {
        transform: translate(-50%, -50%) scale(1);
      }
      42% {
        transform: translate(-50%, -50%) scale(1.025);
      }
      100% {
        transform: translate(-50%, -50%) scale(1);
      }
    }

    .modal-panel.content-episode-added-feedback {
      animation: contentEpisodeAddedPulse 320ms ease-out;
    }


    /* v0.11.8: content episode detail page navigation */
    .content-episode-nav-button {
      min-width: 34px !important;
      padding-left: 10px !important;
      padding-right: 10px !important;
      font-size: 13px !important;
      font-weight: 950 !important;
      line-height: 1 !important;
    }

    .modal-panel .content-detail-page-actions {
      gap: 7px;
    }


    /* v0.12.0: content schedule auto generation and episode slide navigation */
    @keyframes contentDetailSlideNext {
      0% { opacity: 0; transform: translateX(18px); }
      58% { opacity: 1; }
      100% { opacity: 1; transform: translateX(0); }
    }

    @keyframes contentDetailSlidePrev {
      0% { opacity: 0; transform: translateX(-18px); }
      58% { opacity: 1; }
      100% { opacity: 1; transform: translateX(0); }
    }

    #contentDetailBody.content-detail-slide-next {
      animation: contentDetailSlideNext 360ms cubic-bezier(0.22, 1, 0.36, 1);
      will-change: opacity, transform;
    }

    #contentDetailBody.content-detail-slide-prev {
      animation: contentDetailSlidePrev 360ms cubic-bezier(0.22, 1, 0.36, 1);
      will-change: opacity, transform;
    }

    .schedule-step-item.is-start-anchor .schedule-step-label span::after {
      content: " · 시작";
      color: #2563eb;
      font-size: 11px;
      font-weight: 900;
    }

    /* v0.12.1: step-2-only interactive schedule multi-slider */
    #contentScheduleFields[data-schedule-stage="steps"] .schedule-ratio-summary {
      display: block !important;
      width: 100% !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] #contentScheduleRatioBar {
      pointer-events: auto;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-segment-handle {
      pointer-events: auto;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-ratio-summary {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="preview"] .schedule-ratio-summary {
      display: block !important;
      width: 100% !important;
    }

    #contentScheduleFields[data-schedule-stage="preview"] #contentScheduleRatioBar {
      pointer-events: none;
    }

    /* v0.12.2: schedule wizard date-period display and final kickoff replacement */
    .schedule-period-result-row {
      display: grid;
      grid-template-columns: minmax(90px, 0.42fr) minmax(0, 1fr);
      align-items: center;
      gap: 8px;
      min-height: 42px;
      padding: 8px 10px;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 12px;
      background: rgba(37, 99, 235, 0.08);
      color: var(--text-main);
    }

    .schedule-period-result-row[hidden] {
      display: none !important;
    }

    .schedule-period-result-row strong {
      font-size: 13px;
      font-weight: 950;
      white-space: nowrap;
    }

    .schedule-period-result-row span {
      color: var(--primary-dark);
      font-size: 13px;
      font-weight: 950;
      text-align: center;
      white-space: nowrap;
    }

    #contentScheduleFields[data-schedule-stage="steps"] #contentScheduleSteps {
      grid-template-columns: repeat(7, minmax(72px, 1fr)) !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-step-item {
      grid-template-columns: minmax(0, 1fr) !important;
      min-height: 40px !important;
      padding: 7px 8px !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-step-label {
      justify-content: center;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-step-label span {
      min-width: 0 !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-date-control-row {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-reset-field {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor,
    #contentScheduleFields[data-schedule-stage="preview"] .schedule-step-item.is-start-anchor {
      display: none !important;
    }

    .content-detail-schedule-period-row {
      grid-template-columns: minmax(90px, 0.42fr) minmax(0, 1fr) !important;
      border-color: rgba(37, 99, 235, 0.18) !important;
      background: rgba(37, 99, 235, 0.08) !important;
    }

    .content-detail-schedule-period-row span {
      color: var(--primary-dark);
      font-weight: 950;
    }

    @media (max-width: 1080px) {
      #contentScheduleFields[data-schedule-stage="steps"] #contentScheduleSteps {
        grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)) !important;
      }
    }

    @media (max-width: 720px) {
      #contentScheduleFields[data-schedule-stage="dates"] .schedule-date-control-row,
      .schedule-period-result-row,
      .content-detail-schedule-period-row {
        grid-template-columns: 1fr !important;
      }
    }

    /* v0.12.4: schedule wizard stage display refinement */
    #contentScheduleFields[data-schedule-stage="period"] .schedule-ratio-summary,
    #contentScheduleFields[data-schedule-stage="period"] .schedule-final-group,
    #contentScheduleFields[data-schedule-stage="period"] .schedule-date-sync-row {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-date-control-row {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
      align-items: end;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-reset-field {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="steps"] .schedule-date-control-row input {
      cursor: default;
      pointer-events: none;
      background: rgba(248, 250, 252, 0.82);
      color: #475569;
      -webkit-text-fill-color: #475569;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-date-control-row,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-ratio-summary {
      display: none !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] #contentScheduleSteps {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: 8px !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item {
      display: grid !important;
      grid-template-columns: minmax(70px, 0.42fr) minmax(0, 1fr) !important;
      align-items: center;
      min-height: 42px !important;
      padding: 8px 10px !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-delivery-anchor,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-date-stage-single {
      grid-column: 1 / -1;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-delivery-anchor {
      border-color: rgba(37, 99, 235, 0.20);
      background: rgba(37, 99, 235, 0.08);
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-delivery-anchor {
      display: grid !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor .schedule-step-date-input,
    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-delivery-anchor .schedule-step-date-input {
      cursor: default;
      background: rgba(248, 250, 252, 0.86);
      color: #475569;
      -webkit-text-fill-color: #475569;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-label span {
      min-width: 0 !important;
    }

    #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item.is-start-anchor .schedule-step-label span::after {
      content: none !important;
    }

    #contentScheduleFields[data-schedule-stage="preview"] .schedule-step-item.is-delivery-anchor {
      display: none !important;
    }

    @media (max-width: 720px) {
      #contentScheduleFields[data-schedule-stage="steps"] .schedule-date-control-row,
      #contentScheduleFields[data-schedule-stage="dates"] #contentScheduleSteps {
        grid-template-columns: 1fr !important;
      }

      #contentScheduleFields[data-schedule-stage="dates"] .schedule-step-item {
        grid-template-columns: 1fr !important;
      }
    }


    /* v0.12.8: user role grade leader added */
    .edit-state-tag {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 auto;
      min-height: 22px;
      padding: 3px 8px;
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.12);
      color: var(--primary-dark);
      border: 1px solid rgba(37, 99, 235, 0.22);
      font-size: 10.5px;
      font-weight: 950;
      line-height: 1;
      white-space: nowrap;
      letter-spacing: -0.02em;
    }

    .project-table tbody tr.project-row.is-editing {
      box-shadow: inset 4px 0 0 var(--primary), 0 4px 16px rgba(37, 99, 235, 0.16) !important;
      outline-color: rgba(37, 99, 235, 0.42) !important;
      z-index: 5;
    }

    .project-table tbody tr.project-row.is-editing td {
      background: rgba(219, 234, 254, 0.64) !important;
    }

    .project-table tbody tr.project-row.is-editing .project-task-action {
      color: var(--primary-dark);
    }

    .project-task-edit-wrap {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      width: 100%;
      min-width: 0;
    }

    .project-task-edit-wrap .project-task-action {
      flex: 1 1 auto;
      width: auto;
      min-width: 0;
    }

    .content-table tbody tr.content-row td.content-title-cell.is-editing,
    .content-table tbody tr.content-row:hover td.content-title-cell.is-editing,
    .content-table tbody tr.content-row:focus-within td.content-title-cell.is-editing {
      background: rgba(219, 234, 254, 0.78) !important;
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.40), inset 4px 0 0 var(--primary) !important;
      outline: none !important;
    }

    .content-title-cell.is-editing .content-title-text {
      justify-content: center;
      gap: 8px;
    }

    .content-title-cell.is-editing .content-title-label-text {
      flex: 1 1 auto;
    }

    .content-title-cell.is-editing .edit-state-tag {
      margin-left: 2px;
    }

    @media (max-width: 720px) {
      .project-task-edit-wrap,
      .content-title-cell.is-editing .content-title-text {
        flex-wrap: wrap;
        justify-content: center;
      }
    }


    /* v0.12.8: edit lock loading dialog */
    .edit-lock-loading-overlay[hidden] {
      display: none !important;
    }

    .edit-lock-loading-overlay {
      position: fixed;
      inset: 0;
      z-index: 1200;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
      background: rgba(15, 23, 42, 0.28);
      backdrop-filter: blur(2px);
    }

    .edit-lock-loading-card {
      width: min(320px, calc(100vw - 40px));
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      padding: 22px 20px 20px;
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.96);
      border: 1px solid rgba(226, 232, 240, 0.92);
      box-shadow: 0 24px 70px rgba(15, 23, 42, 0.22);
      text-align: center;
    }

    .edit-lock-loading-spinner {
      width: 34px;
      height: 34px;
      border-radius: 999px;
      border: 3px solid rgba(37, 99, 235, 0.18);
      border-top-color: var(--primary);
      animation: startup-spin 0.82s linear infinite;
    }

    .edit-lock-loading-title {
      margin: 2px 0 0;
      color: var(--ink);
      font-size: 15px;
      font-weight: 950;
      letter-spacing: -0.04em;
    }

    .edit-lock-loading-message {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.45;
      letter-spacing: -0.03em;
    }

    /* v0.13.2: localStorage app-data persistence disabled */


    /* v0.13.6: user role settings modal close after save */
    .user-role-settings-panel {
      width: min(760px, calc(100vw - 32px));
    }

    .user-role-settings-help {
      margin: 0 0 10px;
      padding: 10px 12px;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 13px;
      background: rgba(239, 246, 255, 0.72);
      color: var(--primary-dark);
      font-size: 11px;
      font-weight: 850;
      line-height: 1.5;
      white-space: pre-line;
    }

    .user-role-settings-summary {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 10px;
      padding: 9px 10px;
      border: 1px solid var(--border-color);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.28);
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.35;
    }

    .user-role-settings-list {
      display: grid;
      gap: 8px;
      max-height: min(52vh, 520px);
      overflow-y: auto;
      padding: 4px;
    }

    .user-role-setting-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 150px;
      gap: 10px;
      align-items: center;
      padding: 10px;
      border: 1px solid var(--border-color);
      border-radius: 13px;
      background: rgba(255, 255, 255, 0.24);
    }

    .user-role-setting-user {
      display: grid;
      gap: 4px;
      min-width: 0;
    }

    .user-role-setting-user strong {
      overflow: hidden;
      color: var(--text-main);
      font-size: 13px;
      font-weight: 950;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .user-role-setting-user small {
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 800;
      line-height: 1.35;
    }

    .user-role-select {
      width: 100%;
      min-height: 34px;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      padding: 0 9px;
      background: rgba(255, 255, 255, 0.74);
      color: var(--text-main);
      font-size: 12px;
      font-weight: 900;
    }

    @media (max-width: 720px) {
      .user-role-setting-row,
      .user-role-settings-summary {
        grid-template-columns: 1fr;
        display: grid;
      }
    }



  

    /* v0.13.0: mobile read-first project/content cards and daily input focus */
    .mobile-card-list {
      display: none;
    }

    .mobile-view-note {
      display: none;
    }

    @media (max-width: 720px) {
      body {
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
      }

      .app {
        padding: 10px;
      }

      .summary {
        display: none;
      }

      .tabs {
        position: sticky;
        top: 0;
        z-index: 30;
        gap: 6px;
        padding: 8px 4px;
        background: rgba(246, 247, 249, 0.92);
        backdrop-filter: blur(12px);
      }

      .tab-button {
        flex: 0 0 auto;
        padding: 9px 11px;
        font-size: 12px;
      }

      .panel.active {
        padding: 12px 0;
        border: 0;
      }

      .project-list-head,
      .content-list-head,
      .daily-list-head,
      .weekly-list-head {
        gap: 10px;
        padding: 4px 2px 12px;
      }

      .project-title-row,
      .content-title-row-wrap,
      .daily-title-row {
        align-items: flex-start;
        gap: 8px;
        flex-direction: column;
      }

      .project-view-toggle,
      .content-filter-toggle {
        width: 100%;
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: 2px;
      }

      .project-view-button {
        flex: 0 0 auto;
      }

      .project-list-head .card-header p,
      .content-list-head .card-header p,
      .daily-list-head .card-header p {
        min-height: auto;
        padding: 9px 10px;
        font-size: 11px;
      }

      #openProjectForm,
      #openContentForm,
      .content-action-row,
      .detail-danger-zone,
      .detail-main-actions .sub-button,
      .detail-extra-actions .content-episode-detail-action,
      .user-manage-button {
        display: none !important;
      }

      .table-wrap {
        overflow: visible;
      }

      .project-table,
      .content-table {
        display: none;
      }

      .mobile-card-list {
        display: grid;
        gap: 10px;
      }

      .mobile-card {
        display: grid;
        gap: 10px;
        width: 100%;
        padding: 13px;
        border: 1px solid rgba(148, 163, 184, 0.30);
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.74);
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
      }

      .mobile-project-card {
        cursor: pointer;
      }

      .mobile-project-card.is-editing {
        border-color: rgba(37, 99, 235, 0.45);
        background: rgba(239, 246, 255, 0.96);
        box-shadow: inset 4px 0 0 var(--primary), 0 10px 24px rgba(37, 99, 235, 0.12);
      }

      .mobile-card-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
      }

      .mobile-card-kicker {
        color: var(--text-muted);
        font-size: 11px;
        font-weight: 850;
      }

      .mobile-card-title {
        display: block;
        margin-top: 3px;
        color: var(--text-main);
        font-size: 15px;
        font-weight: 950;
        line-height: 1.35;
        letter-spacing: -0.03em;
        overflow-wrap: anywhere;
      }

      .mobile-card-subtitle {
        color: var(--text-muted);
        font-size: 12px;
        font-weight: 800;
        line-height: 1.35;
        overflow-wrap: anywhere;
      }

      .mobile-meta-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
      }

      .mobile-meta-item {
        display: grid;
        gap: 3px;
        min-width: 0;
        padding: 8px 9px;
        border-radius: 11px;
        background: rgba(248, 250, 252, 0.82);
        border: 1px solid rgba(226, 232, 240, 0.9);
      }

      .mobile-meta-item small {
        color: var(--text-light);
        font-size: 10px;
        font-weight: 900;
      }

      .mobile-meta-item span,
      .mobile-meta-item strong {
        min-width: 0;
        color: var(--text-main);
        font-size: 12px;
        font-weight: 850;
        line-height: 1.3;
        overflow-wrap: anywhere;
      }

      .mobile-content-card {
        padding: 0;
        overflow: hidden;
      }

      .mobile-content-title-area {
        display: grid;
        gap: 4px;
        width: 100%;
        padding: 13px;
        border: 0;
        border-bottom: 1px solid rgba(226, 232, 240, 0.92);
        background: rgba(255, 255, 255, 0.72);
        color: inherit;
        text-align: left;
        cursor: pointer;
      }

      .mobile-content-title-area.is-editing {
        background: rgba(239, 246, 255, 0.98);
        box-shadow: inset 4px 0 0 var(--primary);
      }

      .mobile-content-body {
        display: grid;
        gap: 10px;
        padding: 12px 13px 13px;
      }

      .mobile-content-project {
        color: var(--text-muted);
        font-size: 11px;
        font-weight: 850;
        line-height: 1.35;
        overflow-wrap: anywhere;
      }

      .mobile-card .edit-state-tag {
        align-self: flex-start;
        white-space: nowrap;
      }

      .modal-panel {
        width: min(100vw - 18px, 720px);
        max-height: calc(100vh - 20px);
        border-radius: 18px;
      }

      .detail-grid,
      .project-detail-basic-grid,
      .project-detail-title-grid,
      .project-detail-contact-grid,
      .project-detail-assignee-grid,
      .content-detail-project-grid,
      .content-detail-type-grid,
      .content-detail-meta-grid,
      .content-detail-note-grid {
        grid-template-columns: 1fr !important;
      }

      .project-detail-content-list {
        overflow: visible;
      }

      .project-detail-content-row {
        min-width: 0;
        grid-template-columns: 1fr;
        border: 1px solid rgba(226, 232, 240, 0.9);
        border-radius: 12px;
        margin-bottom: 8px;
        background: rgba(255, 255, 255, 0.62);
      }

      .project-detail-content-head {
        display: none;
      }

      .project-detail-content-row > span {
        justify-content: flex-start;
        text-align: left;
        border-right: 0;
        border-bottom: 1px solid rgba(226, 232, 240, 0.72);
      }

      .project-detail-content-row > span:last-child {
        border-bottom: 0;
      }

      .project-detail-content-title .linked-content-title-button {
        justify-content: flex-start;
        text-align: left;
      }

      .daily-list-toolbar {
        position: fixed;
        left: 12px;
        right: 12px;
        bottom: calc(12px + env(safe-area-inset-bottom));
        z-index: 80;
        min-height: 0;
        padding: 0;
      }

      .daily-list-toolbar .primary-button {
        width: 100%;
        min-height: 52px;
        border-radius: 18px;
        font-size: 14px;
        box-shadow: 0 16px 36px rgba(37, 99, 235, 0.28);
      }

      .daily-record-body {
        padding: 8px 0 0;
      }

      .daily-card-main-grid {
        grid-template-columns: 1fr !important;
      }

      .daily-card-actions {
        justify-content: stretch;
      }

      .daily-card-actions button {
        flex: 1 1 auto;
      }

      .daily-form-panel {
        top: auto;
        bottom: 8px;
        transform: translateX(-50%);
        width: min(100vw - 16px, 680px);
        max-height: calc(100vh - 24px);
        border-radius: 22px 22px 18px 18px;
      }

      .daily-modal-form {
        grid-template-columns: 1fr;
      }

      .daily-wide-field textarea {
        min-height: 180px;
      }
    }

    /* v0.13.1: mobile filter wrapping/alignment and card spacing refinement */
    @media (max-width: 720px) {
      .project-title-row .project-view-toggle {
        justify-content: center !important;
        overflow-x: visible !important;
        flex-wrap: nowrap !important;
      }

      .content-title-row-wrap .content-filter-toggle {
        justify-content: flex-start !important;
        overflow-x: visible !important;
        flex-wrap: wrap !important;
        row-gap: 6px !important;
        padding-bottom: 0 !important;
      }

      .content-title-row-wrap .content-filter-toggle .project-view-button {
        flex: 0 1 auto !important;
      }

      .project-list-head,
      .content-list-head {
        gap: 6px !important;
        padding-bottom: 6px !important;
      }

      .mobile-project-list,
      .mobile-content-list {
        margin-top: -6px;
      }
    }


    /* v0.13.6: daily card PC one-row checklist/action layout */
    .daily-card.daily-check-row-card {
      padding: 12px;
    }

    .daily-card-row-grid {
      display: grid;
      grid-template-columns: 132px minmax(360px, 1fr) 112px 82px 82px;
      gap: 10px;
      align-items: stretch;
      width: 100%;
    }

    .daily-card-row-grid .daily-date-block {
      min-height: 104px;
    }

    .daily-checklist-column {
      min-width: 0;
      display: grid;
      gap: 8px;
      align-content: start;
    }

    .daily-checklist-column .daily-card-groups {
      gap: 8px;
    }

    .daily-card-row-grid .daily-work-column .daily-group-title {
      min-height: 30px;
      padding: 6px 9px;
      font-size: 13px;
    }

    .daily-card-row-grid .daily-work-column .daily-task-list {
      padding: 7px 9px 8px;
    }

    .daily-card-row-grid .daily-work-column .daily-task-item {
      min-height: 26px;
      padding: 4px 6px;
    }

    .daily-card-row-grid .daily-work-column .daily-task-item span {
      font-size: 13px;
    }

    .daily-card-status-line {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: center;
      color: var(--text-muted);
      font-size: 11px;
      font-weight: 900;
    }

    .daily-card-status-pill {
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      padding: 3px 8px;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.08);
      color: var(--primary-dark);
      white-space: nowrap;
    }

    .daily-card-action-slot {
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: 0;
    }

    .daily-card-action-slot button {
      width: 100%;
      min-height: 42px;
      padding: 8px 10px;
      border-radius: 14px;
      font-size: 12px;
      font-weight: 950;
      border: 1px solid var(--border-color);
      background: rgba(255, 255, 255, 0.44);
      color: var(--text-main);
      white-space: nowrap;
      box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
    }

    .daily-card-action-slot button:hover {
      background: rgba(255, 255, 255, 0.74);
      color: var(--primary-dark);
      transform: translateY(-1px);
    }

    .daily-card-action-slot .daily-meta-open-button.has-meta {
      border-color: rgba(37, 99, 235, 0.28);
      background: rgba(37, 99, 235, 0.11);
      color: var(--primary-dark);
    }

    .daily-card-action-slot .daily-delete-button {
      border-color: rgba(248, 113, 113, 0.42);
      background: rgba(254, 226, 226, 0.72);
      color: #b91c1c;
    }

    .daily-meta-panel {
      width: min(520px, calc(100vw - 32px));
    }

    .daily-meta-form {
      gap: 9px;
    }

    .daily-meta-form textarea {
      min-height: 96px;
      resize: vertical;
      line-height: 1.45;
    }

    @media (max-width: 980px) {
      .daily-card-row-grid {
        grid-template-columns: 112px minmax(260px, 1fr) 104px 78px 78px;
      }
    }

    @media (max-width: 760px) {
      .daily-card-row-grid {
        grid-template-columns: 1fr;
      }

      .daily-card-action-slot {
        justify-content: stretch;
      }

      .daily-card-action-slot button {
        min-height: 40px;
      }
    }

    /* v0.13.8: daily action buttons unified and delegated click-safe controls */
    .daily-card-action-slot {
      position: relative;
      z-index: 2;
      pointer-events: auto;
    }

    .daily-card-action-slot button {
      position: relative;
      z-index: 3;
      pointer-events: auto;
    }

    .daily-card-action-slot .daily-meta-open-button,
    .daily-card-action-slot .daily-meta-open-button.has-meta {
      border-color: var(--border-color) !important;
      background: rgba(255, 255, 255, 0.44) !important;
      color: var(--text-main) !important;
    }

    .daily-card-action-slot .daily-meta-open-button:hover,
    .daily-card-action-slot .daily-meta-open-button.has-meta:hover {
      background: rgba(255, 255, 255, 0.74) !important;
      color: var(--primary-dark) !important;
    }



    /* v0.13.9: daily action buttons direct-click reliability */
    .daily-card-action-slot button[data-daily-action] {
      cursor: pointer !important;
      touch-action: manipulation;
      user-select: none;
    }

    .daily-card-action-slot button[data-daily-action]:active {
      transform: translateY(0) scale(0.99);
    }

    /* v0.14.0: daily action button click reliability hardening */
    .daily-card-action-slot .daily-action-button {
      position: relative;
      z-index: 10;
      pointer-events: auto !important;
      -webkit-tap-highlight-color: rgba(37, 99, 235, 0.12);
    }

    .daily-card-action-slot .daily-action-button * {
      pointer-events: none;
    }

    /* v0.14.3: daily memo preview above bottom-aligned action buttons */
    .daily-card-row-grid {
      grid-template-rows: minmax(58px, 1fr) auto;
      align-items: stretch;
    }

    .daily-card-row-grid .daily-date-block,
    .daily-card-row-grid .daily-checklist-column {
      grid-row: 1 / span 2;
    }

    .daily-card-meta-preview {
      grid-column: 3 / 6;
      grid-row: 1;
      display: grid;
      align-content: start;
      gap: 5px;
      min-height: 58px;
      padding: 9px 10px;
      border: 1px solid rgba(148, 163, 184, 0.34);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.30);
      color: var(--text-muted);
      overflow: hidden;
    }

    .daily-card-meta-preview.is-empty {
      align-content: center;
      color: var(--text-light);
      font-size: 11px;
      font-weight: 850;
      text-align: center;
    }

    .daily-meta-preview-note {
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      color: var(--text-main);
      font-size: 12px;
      font-weight: 850;
      line-height: 1.4;
      white-space: pre-wrap;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }

    .daily-meta-preview-summary {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      align-items: center;
    }

    .daily-meta-preview-pill {
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      min-height: 21px;
      padding: 3px 7px;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 999px;
      background: rgba(37, 99, 235, 0.08);
      color: var(--primary-dark);
      font-size: 10.5px;
      font-weight: 950;
      line-height: 1.1;
      white-space: nowrap;
    }

    .daily-card-action-slot {
      grid-row: 2;
      align-items: end;
    }

    .daily-card-action-meta { grid-column: 3; }
    .daily-card-action-edit { grid-column: 4; }
    .daily-card-action-delete { grid-column: 5; }

    .daily-card-action-slot button {
      align-self: end;
    }

    @media (max-width: 760px) {
      .daily-card-row-grid {
        grid-template-rows: auto;
      }

      .daily-card-row-grid .daily-date-block,
      .daily-card-row-grid .daily-checklist-column,
      .daily-card-meta-preview,
      .daily-card-action-slot {
        grid-column: 1 !important;
        grid-row: auto !important;
      }

      .daily-card-action-slot {
        align-items: stretch;
      }
    }


    /* v0.14.4: daily progress moved into date card and checklist fills vertical space */
    .daily-date-block {
      grid-template-rows: auto auto auto auto 1fr auto;
      align-content: stretch !important;
    }

    .daily-date-progress-card {
      align-self: end;
      display: grid;
      gap: 3px;
      width: 100%;
      margin-top: 8px;
      padding: 7px 8px;
      border: 1px solid rgba(37, 99, 235, 0.18);
      border-radius: 12px;
      background: rgba(255, 255, 255, 0.38);
      color: var(--primary-dark);
      font-size: 10.5px;
      font-weight: 950;
      line-height: 1.25;
      text-align: center;
    }

    .daily-date-progress-card small {
      color: var(--text-muted);
      font-size: 9.5px;
      font-weight: 900;
      line-height: 1.1;
    }

    .daily-date-progress-card strong {
      color: var(--primary-dark);
      font-size: 12px;
      font-weight: 950;
      line-height: 1.1;
    }

    .daily-card-row-grid .daily-checklist-column {
      height: 100%;
      align-content: stretch !important;
      grid-template-rows: minmax(0, 1fr);
    }

    .daily-checklist-column .daily-card-groups {
      height: 100%;
      min-height: 100%;
      align-content: stretch;
    }

    .daily-checklist-column .daily-group {
      display: grid;
      grid-template-rows: auto minmax(0, 1fr);
      min-height: 100%;
    }

    .daily-checklist-column .daily-task-list {
      min-height: 100%;
      align-content: start;
    }

    @media (max-width: 760px) {
      .daily-date-block {
        grid-template-rows: auto;
        align-content: start !important;
      }

      .daily-date-progress-card {
        align-self: start;
      }

      .daily-card-row-grid .daily-checklist-column,
      .daily-checklist-column .daily-card-groups,
      .daily-checklist-column .daily-group,
      .daily-checklist-column .daily-task-list {
        height: auto;
        min-height: 0;
      }
    }


    /* v0.14.6: daily background save UX */
    .daily-sync-status {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 21px;
      width: 100%;
      margin-top: 5px;
      padding: 3px 7px;
      border-radius: 999px;
      border: 1px solid rgba(148, 163, 184, 0.24);
      background: rgba(255, 255, 255, 0.34);
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 950;
      line-height: 1.15;
      white-space: nowrap;
    }

    .daily-sync-status.saving {
      border-color: rgba(37, 99, 235, 0.22);
      background: rgba(37, 99, 235, 0.09);
      color: var(--primary-dark);
    }

    .daily-sync-status.saved {
      border-color: rgba(22, 163, 74, 0.22);
      background: rgba(22, 163, 74, 0.09);
      color: #166534;
    }

    .daily-sync-status.error {
      border-color: rgba(239, 68, 68, 0.28);
      background: rgba(254, 242, 242, 0.78);
      color: #b91c1c;
      cursor: pointer;
    }

    .daily-card.daily-sync-saving {
      box-shadow: 0 8px 24px rgba(37, 99, 235, 0.14);
    }

    .daily-card.daily-sync-error {
      box-shadow: 0 8px 24px rgba(239, 68, 68, 0.14);
    }


    /* v0.14.6: date card has progress and save status rows */
    .daily-date-block {
      grid-template-rows: auto auto auto auto 1fr auto auto;
    }

    /* v0.14.8: card-wide overlay for modal-based daily saves */
    .daily-card.daily-check-row-card {
      position: relative;
      overflow: hidden;
    }

    .daily-card.has-card-save-overlay .daily-card-row-grid {
      opacity: 0.28;
      filter: blur(0.7px);
      pointer-events: none;
      user-select: none;
    }

    .daily-card-save-overlay {
      position: absolute;
      inset: 0;
      z-index: 45;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 18px;
      border-radius: inherit;
      background: rgba(255, 255, 255, 0.42);
      backdrop-filter: blur(2px);
      -webkit-backdrop-filter: blur(2px);
    }

    .daily-card-save-message {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: min(420px, calc(100% - 24px));
      min-height: 58px;
      padding: 14px 28px;
      border: 1px solid rgba(37, 99, 235, 0.24);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.92);
      box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18);
      color: var(--primary-dark);
      font-size: 16px;
      font-weight: 950;
      letter-spacing: -0.03em;
      text-align: center;
      white-space: nowrap;
    }

    .daily-card-save-message::before {
      content: "";
      width: 16px;
      height: 16px;
      margin-right: 10px;
      border: 2px solid rgba(37, 99, 235, 0.18);
      border-top-color: var(--primary);
      border-radius: 999px;
      animation: startupSpin 0.82s linear infinite;
    }

    .daily-card-save-message.is-delete {
      border-color: rgba(239, 68, 68, 0.24);
      color: #b91c1c;
    }

    .daily-card-save-message.is-delete::before {
      border-color: rgba(239, 68, 68, 0.18);
      border-top-color: #ef4444;
    }

    /* v0.14.8: preserve overlay status flags while saving */

    /* v0.14.5: daily progress zero-count display fix */


    /* v0.14.9: save status simplification and mobile daily UI refinement */
    .daily-sync-status.saving,
    .daily-sync-status.saved {
      display: none !important;
    }

    @media (max-width: 760px) {
      body {
        padding-left: 10px;
        padding-right: 10px;
      }

      .daily-record-card .project-list-head {
        padding-bottom: 6px !important;
      }

      .daily-record-card .daily-record-body {
        padding-top: 4px !important;
      }

      .daily-card.daily-check-row-card {
        padding: 10px !important;
        border-radius: 15px !important;
      }

      .daily-card-row-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
      }

      .daily-card-row-grid .daily-date-block,
      .daily-card-row-grid .daily-checklist-column,
      .daily-card-row-grid .daily-card-meta-preview {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
      }

      .daily-card-row-grid .daily-date-block {
        min-height: 0 !important;
        padding: 10px !important;
        border-radius: 14px !important;
        grid-template-columns: auto auto minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        align-items: center !important;
        justify-items: start !important;
        gap: 4px 8px !important;
      }

      .daily-card-row-grid .daily-year {
        grid-column: 1 / -1;
        font-size: 10px !important;
      }

      .daily-card-row-grid .daily-date-main {
        font-size: 23px !important;
        letter-spacing: -0.05em !important;
      }

      .daily-card-row-grid .daily-weekday-line {
        font-size: 16px !important;
      }

      .daily-card-row-grid .daily-holiday-name {
        min-height: 0 !important;
        font-size: 10px !important;
      }

      .daily-date-progress-card {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        margin-top: 4px !important;
        padding: 7px 8px !important;
      }

      .daily-checklist-column .daily-card-groups {
        gap: 7px !important;
      }

      .daily-card-row-grid .daily-work-column .daily-group-title {
        min-height: 34px !important;
        padding: 8px 10px !important;
        font-size: 14px !important;
      }

      .daily-card-row-grid .daily-work-column .daily-task-list {
        padding: 8px 10px !important;
      }

      .daily-card-row-grid .daily-work-column .daily-task-item {
        min-height: 38px !important;
        padding: 7px 6px !important;
        grid-template-columns: 22px minmax(0, 1fr) !important;
        align-items: center !important;
      }

      .daily-card-row-grid .daily-work-column .daily-task-item input {
        width: 18px !important;
        height: 18px !important;
        margin-top: 0 !important;
      }

      .daily-card-row-grid .daily-work-column .daily-task-item span {
        font-size: 14px !important;
        line-height: 1.4 !important;
      }

      .daily-card-meta-preview {
        min-height: 54px !important;
        padding: 9px 10px !important;
      }

      .daily-meta-preview-note {
        -webkit-line-clamp: 3 !important;
        font-size: 12.5px !important;
      }

      .daily-card-action-meta {
        grid-column: 1 !important;
      }

      .daily-card-action-edit {
        grid-column: 2 !important;
      }

      .daily-card-action-delete {
        grid-column: 3 !important;
      }

      .daily-card-action-slot {
        grid-row: auto !important;
        align-items: stretch !important;
      }

      .daily-card-action-slot button {
        min-height: 44px !important;
        padding: 9px 6px !important;
        border-radius: 13px !important;
        font-size: 12px !important;
      }

      .daily-meta-panel {
        top: auto !important;
        bottom: 8px !important;
        transform: translateX(-50%) !important;
        width: min(100vw - 16px, 520px) !important;
        max-height: calc(100vh - 24px) !important;
        border-radius: 22px 22px 18px 18px !important;
      }
    }


    /* v0.15.0: mobile login card visibility and daily date/progress alignment */
    @media (max-width: 760px) {
      .user-dock {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
        justify-content: stretch !important;
        gap: 8px !important;
        width: 100% !important;
      }

      .header-sync-card {
        display: flex !important;
        width: 100% !important;
        min-height: 38px !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 6px 8px 6px 12px !important;
        border: 1px solid rgba(148, 163, 184, 0.35) !important;
        border-radius: 14px !important;
        background: rgba(255, 255, 255, 0.68) !important;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06) !important;
        backdrop-filter: blur(12px) !important;
      }

      .header-sync-time {
        display: inline-flex !important;
        flex: 1 1 auto !important;
        max-width: none !important;
        min-width: 0 !important;
        color: var(--text-muted) !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
      }

      .header-sync-button {
        display: inline-flex !important;
        flex: 0 0 34px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
      }

      .user-session-card:not([hidden]) {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
        justify-content: stretch !important;
        gap: 8px !important;
        padding: 8px !important;
        border-radius: 16px !important;
      }

      .user-session-label {
        width: 100% !important;
        max-width: none !important;
        justify-content: center !important;
        text-align: center !important;
      }

      .user-session-actions {
        display: grid !important;
        width: 100% !important;
        grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)) !important;
        gap: 6px !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
      }

      .user-session-actions .user-manage-button:not([hidden]),
      .user-session-actions .user-logout-button:not([hidden]) {
        display: inline-flex !important;
        width: 100% !important;
        min-height: 36px !important;
        padding: 7px 8px !important;
        border-radius: 12px !important;
        font-size: 11px !important;
      }

      .user-session-actions .user-manage-button[hidden],
      .user-session-actions .user-logout-button[hidden] {
        display: none !important;
      }

      .daily-card-row-grid .daily-date-block {
        grid-template-columns: 1fr !important;
        grid-template-rows: auto !important;
        justify-items: center !important;
        align-items: center !important;
        align-content: center !important;
        text-align: center !important;
        gap: 5px !important;
      }

      .daily-card-row-grid .daily-year,
      .daily-card-row-grid .daily-date-main,
      .daily-card-row-grid .daily-weekday-line,
      .daily-card-row-grid .daily-holiday-name {
        grid-column: 1 !important;
        justify-self: center !important;
        text-align: center !important;
      }

      .daily-date-progress-card {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 6px !important;
        width: auto !important;
        max-width: 100% !important;
        min-height: 28px !important;
        margin: 6px auto 0 !important;
        padding: 6px 10px !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
      }

      .daily-date-progress-card small,
      .daily-date-progress-card strong {
        display: inline-flex !important;
        align-items: center !important;
        line-height: 1 !important;
        white-space: nowrap !important;
      }

      .daily-date-progress-card small {
        font-size: 10px !important;
      }

      .daily-date-progress-card strong {
        font-size: 11px !important;
      }
    }



    /* v0.15.1: daily leave registration mode */
    /* v0.15.5: combo-only partial leave registration and combo leave card display */
    /* v0.15.6: hyphen checklist parser and title-only group input preservation */
    /* v0.15.7: preserve daily form text on date change and allow checklist work on leave/holiday days */
    /* v0.15.9: weekly report system */
    .daily-leave-register-section {
      gap: 8px;
    }

    .daily-leave-register-options {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }

    .daily-leave-register-option {
      display: grid;
      grid-template-columns: 18px minmax(0, 1fr);
      gap: 9px;
      align-items: center;
      min-height: 54px;
      padding: 9px 10px;
      border: 1px solid var(--border-color);
      border-radius: 13px;
      background: rgba(255, 255, 255, 0.24);
      cursor: pointer;
      transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    }

    .daily-leave-register-option input {
      width: 16px;
      height: 16px;
      accent-color: var(--primary);
    }

    .daily-leave-register-option strong {
      display: block;
      color: var(--text-main);
      font-size: 12px;
      font-weight: 950;
      line-height: 1.25;
    }

    .daily-leave-register-option small {
      display: block;
      margin-top: 2px;
      color: var(--text-muted);
      font-size: 10px;
      font-weight: 800;
      line-height: 1.35;
    }

    .daily-leave-register-option.is-selected {
      border-color: rgba(37, 99, 235, 0.34);
      background: rgba(37, 99, 235, 0.10);
      box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.12);
    }

    .daily-leave-register-option.is-selected strong {
      color: var(--primary-dark);
    }

    .daily-leave-register-hint {
      margin: 0;
      color: var(--primary-dark);
      font-size: 10.5px;
      font-weight: 850;
      line-height: 1.45;
    }

    .daily-preview-leave-card,
    .daily-leave-display-card {
      display: grid;
      justify-items: center;
      align-content: center;
      gap: 7px;
      min-height: 96px;
      padding: 16px;
      border: 1px solid rgba(37, 99, 235, 0.22);
      border-radius: 14px;
      background: rgba(37, 99, 235, 0.09);
      color: var(--primary-dark);
      text-align: center;
      font-weight: 950;
    }

    .daily-preview-leave-card strong,
    .daily-leave-display-card strong {
      font-size: 20px;
      line-height: 1.15;
      letter-spacing: -0.04em;
    }

    .daily-preview-leave-card span,
    .daily-leave-display-card span {
      color: var(--text-muted);
      font-size: 12px;
      font-weight: 850;
      line-height: 1.45;
    }

    .daily-leave-display-card {
      height: 100%;
      min-height: 100%;
    }

    .daily-date-progress-card.is-leave {
      border-color: rgba(37, 99, 235, 0.22);
      background: rgba(37, 99, 235, 0.10);
    }

    .daily-date-progress-card.is-leave strong {
      font-size: 13px;
    }

    @media (max-width: 980px) {
      .daily-leave-register-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 720px) {
      .daily-leave-register-options {
        grid-template-columns: 1fr;
      }

      .daily-preview-leave-card,
      .daily-leave-display-card {
        min-height: 82px;
      }
    }


  
    /* --- Weekly Report Styles --- */
    .weekly-layout {
      max-width: 100%;
      margin: 0 auto;
    }
    .weekly-toolbar-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 20px;
      gap: 15px;
      flex-wrap: wrap;
    }
    .weekly-week-selector {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .weekly-week-label {
      font-size: 16px;
      font-weight: bold;
      color: var(--text-main, #334155);
      min-width: 220px;
      text-align: center;
    }
    .weekly-report-table {
      width: 100%;
      border-collapse: separate;
      border-spacing: 0;
      margin-top: 10px;
      background-color: var(--card-bg, #fff);
      border: 1px solid var(--border-color, #e2e8f0);
      border-radius: var(--radius-sm, 10px);
      overflow: hidden;
      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    .weekly-report-table th {
      background: var(--bg-th, rgba(71, 85, 105, 0.88));
      color: var(--text-th, #ffffff);
      font-weight: 700;
      text-align: center;
      border-bottom: none !important;
      border-right: 1px solid var(--border-th, rgba(255, 255, 255, 0.22));
      box-shadow: inset 0 -2px 0 var(--text-muted, #475569);
      padding: 12px 10px;
      font-size: 13px;
    }
    .weekly-report-table th:last-child {
      border-right: none;
    }
    .weekly-report-table td {
      border-bottom: 1px solid var(--border-color, #e2e8f0);
      border-right: 1px solid var(--border-color, #e2e8f0);
      padding: 14px 12px;
      vertical-align: top;
      font-size: 13px;
      line-height: 1.6;
      color: var(--text-main, #334155);
    }
    .weekly-report-table td:last-child {
      border-right: none;
    }
    .weekly-report-table tr:last-child td {
      border-bottom: none;
    }
    .weekly-report-table .col-project {
      width: 22%;
    }
    .weekly-report-table td.col-project {
      font-weight: bold;
      vertical-align: middle;
      text-align: left;
      background-color: var(--bg-light, #f8fafc);
    }
    .weekly-report-table .col-content {
      width: 44%;
    }
    .weekly-report-table .col-checklist {
      width: 22%;
    }
    .weekly-report-table .col-remarks {
      width: 12%;
    }
    .weekly-report-table .col-actions {
      width: 5%;
      text-align: center;
      vertical-align: middle;
    }
    .weekly-action-btn {
      padding: 5px 10px;
      font-size: 11px;
      border-radius: 999px; /* Pill style matching daily works */
      cursor: pointer;
      font-weight: 800;
      transition: all 0.15s ease;
      margin: 2px;
      display: inline-block;
      text-align: center;
    }
    .weekly-action-btn.edit-btn {
      background: var(--bg-tab-inactive, rgba(255, 255, 255, 0.4));
      color: var(--text-main, #1e293b);
      border: 1px solid var(--border-color, rgba(148, 163, 184, 0.32));
    }
    .weekly-action-btn.edit-btn:hover {
      background: var(--primary-soft, #eff6ff);
      border-color: var(--primary, #2563eb);
      color: var(--primary-dark, #1d4ed8);
    }
    .weekly-action-btn.delete-btn {
      color: #b91c1c;
      background: rgba(254, 226, 226, 0.65);
      border: 1px solid rgba(248, 113, 113, 0.45);
    }
    .weekly-action-btn.delete-btn:hover {
      background: rgba(254, 226, 226, 0.95);
      border-color: #ef4444;
      color: #b91c1c;
    }
    .weekly-section-title {
      font-weight: bold;
      color: var(--text-main, #1e293b);
      margin-top: 8px;
      margin-bottom: 4px;
      font-size: 13px;
    }
    .weekly-section-title:first-child {
      margin-top: 0;
    }
    .print-only-header {
      display: none;
    }
    
    @media print {
      @page {
        size: A4;
        margin: 15mm 12mm 15mm 12mm;
      }
      html, body {
        background: #fff !important;
        color: #000 !important;
        padding: 0 !important;
        margin: 0 !important;
        font-family: 'Malgun Gothic', 'Dotum', sans-serif !important;
        height: auto !important;
        min-height: auto !important;
        overflow: visible !important;
      }
      .app {
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        height: auto !important;
        min-height: auto !important;
        overflow: visible !important;
      }
      .topbar, .tabs, .app-footer, .weekly-list-head, .weekly-toolbar-row, .weekly-list-toolbar, #openWeeklyFormBtn, #printWeeklyReportBtn {
        display: none !important;
      }
      /* Hide all other panels just in case */
      .panel:not(#weekly) {
        display: none !important;
      }
      #weekly, .weekly-layout, .weekly-card, .weekly-body-content, .weekly-table-wrap {
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        box-shadow: none !important;
        background: #fff !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        height: auto !important;
        min-height: auto !important;
        overflow: visible !important;
      }
      
      /* Print-only Header block styling */
      .print-only-header {
        display: block !important;
        margin-top: 5px !important;
        margin-bottom: 15px !important;
        width: 100% !important;
      }
      .print-only-header h1 {
        text-align: center !important;
        font-size: 24px !important;
        font-weight: bold !important;
        letter-spacing: 8px !important;
        margin: 0 0 15px 0 !important;
        color: #000 !important;
      }
      .print-meta-table {
        width: 100% !important;
        margin-bottom: 15px !important;
      }
      .print-meta-table table {
        width: 100% !important;
        min-width: 100% !important;
        border-collapse: collapse !important;
        border: 2px solid #000 !important;
        border-radius: 0 !important;
        overflow: visible !important;
      }
      .print-meta-table th, .print-meta-table td {
        border: 1px solid #000 !important;
        padding: 6px 10px !important;
        font-size: 11px !important;
        color: #000 !important;
        background: #fff !important;
        vertical-align: middle !important;
        line-height: 1.3 !important;
      }
      .print-meta-table th {
        background-color: #f1f5f9 !important;
        font-weight: bold !important;
        text-align: center !important;
        width: 15% !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      .print-meta-table td {
        width: 35% !important;
        text-align: left !important;
      }

      /* Weekly Report Table print styling */
      .weekly-report-table {
        margin-top: 0 !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        border-collapse: collapse !important;
        table-layout: fixed !important;
        border: 2px solid #000 !important;
        border-radius: 0 !important;
        overflow: visible !important;
      }
      .weekly-report-table th {
        background-color: #d2e5d1 !important; /* Soft green from PDF */
        color: #1e3a24 !important;
        border: 1px solid #000 !important;
        font-weight: bold !important;
        text-align: center !important;
        padding: 8px 6px !important;
        font-size: 12px !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      .weekly-report-table td {
        border: 1px solid #000 !important;
        color: #000 !important;
        background: #fff !important;
        padding: 4px 6px !important;
        font-size: 10.5px !important;
        line-height: 1.2 !important;
        vertical-align: top !important;
        word-break: break-all !important;
        white-space: normal !important;
      }
      .weekly-report-table td * {
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1.2 !important;
      }
      .weekly-report-table .col-project {
        background-color: #fff !important; /* Simple white for clean grid borders */
        font-weight: bold !important;
        vertical-align: middle !important;
        text-align: left !important;
        border-right: 1px solid #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
      }
      .weekly-report-table td strong {
        color: #000 !important;
        font-size: 11px !important;
      }
      .weekly-report-table td span {
        color: #475569 !important; /* Dark slate gray for task name */
        font-size: 10px !important;
      }
      
      /* Column widths specifically for print */
      .weekly-report-table .col-project { width: 22% !important; }
      .weekly-report-table .col-content { width: 44% !important; }
      .weekly-report-table .col-checklist { width: 22% !important; }
      .weekly-report-table .col-remarks { width: 12% !important; }

      /* Hide action column completely in print */
      .weekly-report-table .col-actions, 
      .weekly-report-table td.col-actions,
      .weekly-report-table td:nth-child(5) {
        display: none !important;
      }
      
      .weekly-report-table tr {
        page-break-inside: avoid !important;
      }
      .weekly-section-title {
        font-size: 10.5px !important;
        font-weight: bold !important;
        color: #000 !important;
        margin-top: 2px !important;
        margin-bottom: 0 !important;
      }
      .weekly-report-table td div[style*="white-space"] {
        line-height: 1.2 !important;
        margin: 0 !important;
        white-space: pre-wrap !important;
      }
      .weekly-report-table td div[style*="margin-top"] {
        margin-top: 5px !important;
      }
    }
