 /* 既存のスタイル定義をそのまま維持 */
 #taskModal,
 #editTaskModal {
   display: none;
   position: fixed;
   left: 50%;
   top: 50%;
   transform: translate(-50%, -50%);
   background: white;
   padding: 20px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
   border-radius: 5px;
   z-index: 1000;
   max-height: 100vh;
   overflow-y: auto;
   width: 1400px;
 }

 #overlay {
   display: none;
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: rgba(0, 0, 0, 0.5);
   z-index: 999;
 }

 .gantt .tooltip {
   white-space: pre-line;
 }

 textarea {
   width: 100%;
   min-height: 100px;
   margin: 10px 0;
 }

 .form-group {
   margin-bottom: 15px;
 }

 label {
   display: block;
   margin-bottom: 15px;
 }

 .gantt .bar-wrapper .bar {
   fill: var(--bar-color, #C7C7C7);
   pointer-events: all;
 }

 .gantt .bar-wrapper:hover .bar {
   fill: var(--bar-color, #C7C7C7) !important;
 }

 .gantt .bar-wrapper {
   cursor: pointer;
 }

 .image-preview {
   margin-top: 10px;
 }

 .image-preview img {
   max-width: 200px;
   border: 1px solid #ddd;
   border-radius: 4px;
   padding: 5px;
 }

 /* ポップアップのスタイル改善 */
 .details-container {
   width: 350px;
   max-width: 400px;
   padding: 15px;
   background: white;
   color: #333;
   border-radius: 5px;
   box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
 }

 .details-container h5 {
   margin-top: 0;
   font-size: 16px;
   color: #444;
   border-bottom: 2px solid #aaaaac;
   padding-bottom: 8px;
   margin-bottom: 15px;
 }

 .details-container p {
   margin: 8px 0;
   line-height: 1.4;
 }

 .details-container .task-dates {
   margin-bottom: 10px;
   font-size: 13px;
   color: #666;
 }

 .details-container .rich-content {
   background-color: #f9f9f9;
   border-radius: 4px;
   padding: 10px;
   margin-bottom: 12px;
   max-height: 180px;
   overflow-y: auto;
 }

 .details-container img {
   max-width: 100%;
   border-radius: 4px;
   margin-top: 5px;
   border: 1px solid #eee;
 }

 .details-container a {
   color: #0066cc;
   text-decoration: none;
 }

 .details-container a:hover {
   text-decoration: underline;
 }

 #tagFilter {
   min-width: 200px;
   padding: 5px;
   margin-right: 10px;
 }

 .view-container {
   margin: 20px 0;
   padding: 10px;
   background: #f5f5f5;
   border-radius: 5px;
 }

 .view-button {
   padding: 8px 16px;
   margin-right: 10px;
   border: 1px solid #ddd;
   border-radius: 4px;
   background: white;
   cursor: pointer;
 }

 .view-button:hover {
   background: #e9e9e9;
 }

 .view-button.active {
   background: #007bff;
   color: white;
   border-color: #0056b3;
 }

 /* タイムラインマーカーの強化スタイル - 完全に非表示にする */
 .timeline-marker .bar {
   fill: transparent !important;
   stroke: transparent !important;
   pointer-events: none !important;
 }

 .timeline-marker .bar-wrapper {
   pointer-events: none !important;
   cursor: default !important;
   opacity: 0 !important;
 }

 .timeline-marker text {
   fill: transparent !important;
   pointer-events: none !important;
 }

 /* バーの上のテキストを非表示 */
 .timeline-marker .bar-label {
   display: none !important;
 }

 /* 強化: タイムラインマーカーを完全に非表示 */
 .timeline-marker,
 .timeline-marker .bar-wrapper,
 .timeline-marker .bar,
 .timeline-marker .handle {
   opacity: 0 !important;
   visibility: hidden !important;
   display: none !important;
   pointer-events: none !important;
   height: 0 !important;
   overflow: hidden !important;
 }

 .gantt .row:empty,
 .gantt .bar-wrapper:empty {
   display: none !important;
   height: 0 !important;
   min-height: 0 !important;
   overflow: hidden !important;
 }

 /* 空のガントチャートメッセージ用スタイル */
 #empty-gantt-message {
   text-align: center;
   padding: 30px;
   color: #666;
   background-color: #f9f9f9;
   border-radius: 5px;
   margin: 20px 0;
   font-size: 16px;
   border: 1px dashed #ddd;
 }

 .date-jumper {
   padding: 8px;
   border: 1px solid #ddd;
   border-radius: 4px;
   margin-right: 10px;
 }

 .jump-button {
   padding: 8px 16px;
   margin-right: 10px;
   border: 1px solid #ddd;
   border-radius: 4px;
   background: white;
   cursor: pointer;
 }

 .jump-button:hover {
   background: #e9e9e9;
 }

 /* Quillエディタのスタイル */
 .editor-container {
   height: 200px;
   margin-bottom: 15px;
   border-radius: 4px;
 }

 .ql-toolbar {
   border-top-left-radius: 4px;
   border-top-right-radius: 4px;
 }

 .ql-container {
   font-size: 14px;
   border-bottom-left-radius: 4px;
   border-bottom-right-radius: 4px;
 }

 /* リッチテキスト表示用のスタイル */
 .rich-content {
   max-height: 200px;
   overflow-y: auto;
   padding: 8px;
   border: 1px solid #eee;
   border-radius: 4px;
   background-color: #fafafa;
   margin-bottom: 10px;
 }

 .rich-content img {
   max-width: 100%;
 }

 .rich-content blockquote {
   border-left: 3px solid #ccc;
   margin-left: 5px;
   padding-left: 10px;
 }

 .rich-content code {
   background-color: #f0f0f0;
   padding: 2px 4px;
   border-radius: 3px;
 }

 /* タスク編集モーダルの横並びフィールド用スタイル */
 .form-row {
   display: flex;
   flex-wrap: wrap;
   gap: 15px;
   align-items: center;
   /* 中央揃え */
 }

 /* 全幅のフォームグループ（タスク名用） */
 .form-group.full-width {
   width: 100%;
   margin-bottom: 15px;
 }

 .form-group.full-width input[type="text"] {
   width: 100%;
   padding: 8px;
   border: 1px solid #ddd;
   border-radius: 4px;
   box-sizing: border-box;
   height: 38px;
 }

 /* 吹き出し用のフレックス設定 */
 .form-group.flex-grow {
   flex: 4.5;
   min-width: 300px;
 }

 /* 日付フィールド用のフレックス設定 */
 .form-group.date-field {
   flex: 0.3;
   /* 比率を0.8に減少 */
   min-width: 130px;
   /* 最小幅を小さく */
   max-width: 130px;
   /* 最大幅を制限 */
 }

 /* 入力フィールドのスタイル調整 */
 .form-group.flex-grow input[type="text"] {
   width: 100%;
   padding: 8px;
   border: 1px solid #ddd;
   border-radius: 4px;
   box-sizing: border-box;
   height: 38px;
 }

 /* 日付フィールドのスタイル調整 */
 .form-group.date-field input[type="date"] {
   padding: 8px;
   border: 1px solid #ddd;
   border-radius: 4px;
   box-sizing: border-box;
   height: 38px;
 }

 /* ラベルのスタイル調整 */
 .form-group label {
   display: block;
   margin-bottom: 5px;
 }

 /* Quillエディタの高さ調整 */
 .editor-container.expanded {
   height: 300px;
   margin-top: 10px;
   margin-bottom: 15px;
 }

 /* ボタン行のスタイル */
 .button-row {
   display: flex;
   gap: 10px;
   margin-top: 15px;
 }

 .form-group.flex-grow,
 .form-group.date-field {
   width: 100%;
 }

 /* 削除ボタンのスタイル */
 #deleteEditTask {
   background-color: #dc3545;
   color: white;
   margin-right: 10px;
   padding: 8px 16px;
   border: none;
   border-radius: 4px;
   cursor: pointer;
 }

 #deleteEditTask:hover {
   background-color: #c82333;
 }

 /* タスクインジケーターの表示制御 */
 @media (max-width: 768px) {
   .task-indicators {
     display: none !important;
     /* SPモードでは常に非表示 */
   }
 }

 /* タスクインジケーターのスタイル */
 .task-indicators {
   position: fixed;
   right: 20px;
   display: flex;
   flex-direction: column;
   z-index: 900;
   pointer-events: none;
   opacity: 1;
   transition: opacity 0.3s ease;
 }

 /* 非表示状態のスタイル */
 .task-indicators.hidden {
   opacity: 0;
   pointer-events: none;
 }

 .task-indicators.top {
   top: 20px;
 }

 .task-indicators.bottom {
   bottom: 20px;
 }

 .task-indicator {
   background-color: #fff;
   border: 2px solid #007bff;
   border-radius: 8px;
   padding: 8px 12px;
   margin: 5px 0;
   box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
   cursor: pointer;
   max-width: 250px;
   text-overflow: ellipsis;
   white-space: nowrap;
   overflow: hidden;
   font-size: 14px;
   opacity: 0.9;
   transform: translateX(0);
   transition: transform 0.3s, opacity 0.3s;
   pointer-events: auto;
 }

 .task-indicator:hover {
   opacity: 1;
   transform: translateX(-5px);
 }

 .task-indicator .indicator-color {
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 50%;
   margin-right: 8px;
   vertical-align: middle;
 }

 .task-indicator .direction-icon {
   margin-left: 8px;
   font-weight: bold;
 }

 /* アニメーション効果 */
 @keyframes pulseIndicator {
   0% {
     transform: translateX(0);
   }

   50% {
     transform: translateX(-5px);
   }

   100% {
     transform: translateX(0);
   }
 }

 .task-indicator.pulse {
   animation: pulseIndicator 2s infinite;
 }

 /* ハイライト効果のスタイル */
 .highlight-task .bar {
   stroke: #007bff !important;
   stroke-width: 3px !important;
   filter: drop-shadow(0 0 3px rgba(0, 123, 255, 0.7)) !important;
 }

 .popup-wrapper,
 .pointer {
   pointer-events: none !important;
   z-index: 999 !important;
 }

 /* バーとハンドルのイベント伝播を確保 */
 .gantt .bar {
   pointer-events: auto !important;
   z-index: 10 !important;
 }

 .gantt .handle {
   pointer-events: auto !important;
   z-index: 11 !important;
 }

 /* ツールチップのスタイル強化 */
 .gantt-container .popup-wrapper {
   position: absolute;
   top: 0;
   left: 0;
   padding: 0;
   color: #333;
   border-radius: 8px;
   filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.15));
   backdrop-filter: blur(2px);
   opacity: 0;
   transition: opacity 0.2s ease, transform 0.2s ease;
   transform: translateY(5px);
   z-index: 100;
   overflow: visible;
   pointer-events: none;
 }

 .gantt-container:hover .popup-wrapper {
   opacity: 1;
   transform: translateY(0);
 }

 .gantt-container .popup-wrapper.fixed {
   opacity: 1 !important;
   transform: translateY(0) !important;
   pointer-events: auto !important;
 }

 /* ポインター（吹き出しの矢印）のスタイル - 問題解決用 */
 .gantt-container .popup-wrapper>.pointer,
 .gantt-container .popup-wrapper .details-container>.pointer {
   position: absolute;
   bottom: 0px;
   left: 50%;
   margin-left: -5px;
   width: 20px;
   height: 10px;
   clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
   background-color: white;
   border: none;
   /* 重要: 既存のborderスタイルを上書き */
   filter: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.07));
 }


 /* その他のポインターを非表示 */
 .pointer:not(.popup-wrapper > .pointer):not(.popup-wrapper .details-container > .pointer) {
   display: none !important;
 }

 /* 詳細コンテナの洗練されたデザイン */
 .details-container {
   width: 320px;
   max-width: 400px;
   padding: 16px;
   background: white;
   color: #333;
   border-radius: 8px;
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
   box-shadow: none;
   overflow: hidden;
 }

 .details-container h5 {
   margin-top: 0;
   font-size: 16px;
   color: #2c3e50;
   font-weight: 600;
   padding-bottom: 10px;
   margin-bottom: 12px;
   border-bottom: 1px solid #eaeaea;
 }

 .details-container .task-dates {
   margin-bottom: 12px;
   font-size: 13px;
   color: #5a6772;
   display: flex;
   align-items: center;
 }

 .details-container .task-dates:before {
   content: '📅';
   margin-right: 6px;
   opacity: 0.7;
 }

 .details-container .rich-content {
   background-color: #f8f9fa;
   border-radius: 6px;
   padding: 12px;
   margin-bottom: 12px;
   max-height: 160px;
   overflow-y: auto;
   font-size: 14px;
   line-height: 1.5;
   color: #4a4a4a;
   border: 1px solid #f0f0f0;
 }

 .details-container .task-meta {
   font-size: 13px;
   color: #6c757d;
   padding-bottom: 8px;
 }

 .details-container .meta-item {
   align-items: center;
 }

 .details-container .meta-item:before {
   content: '🏷️';
   margin-right: 6px;
   opacity: 0.7;
 }

 .details-container .meta-label {
   font-weight: 500;
   margin-right: 5px;
 }

 .details-container a {
   color: #3498db;
   text-decoration: none;
   font-weight: 500;
 }

 .details-container a:hover {
   color: #2980b9;
   text-decoration: underline;
 }

 .details-container img {
   max-width: 100%;
   border-radius: 6px;
   margin-top: 8px;
   border: 1px solid #f0f0f0;
 }

 /*ここから追加
/* タスクバーのスタイリッシュな外観 */
 .gantt .bar-wrapper .bar {
   fill: var(--bar-color, #C7C7C7);
   stroke: rgba(0, 0, 0, 0.08);
   stroke-width: 0.5px;
   filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
   transition: all 0.2s ease;
   height: 20px !important;
   /* バーの高さを増加 */
 }

 /* ホバー時のエフェクト */
 .gantt .bar-wrapper:hover .bar {
   fill: var(--bar-color, #C7C7C7) !important;
   filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2)) !important;
   transform: translateY(-1px);
 }

 /* アクティブ/クリック時のエフェクト */
 .gantt .bar-wrapper:active .bar {
   transform: translateY(0px);
   filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.15)) !important;
 }

 /* プログレスバーのスタイル改善 */
 .gantt .bar-wrapper .bar-progress {
   opacity: 0.7;
   stroke: rgba(0, 0, 0, 0.1);
   stroke-width: 0.5px;
 }

 /* ハンドルのスタイル改善 */
 .gantt .handle {
   fill: #fff;
   stroke: rgba(0, 0, 0, 0.15);
   stroke-width: 1px;
   cursor: ew-resize;
   filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
   transition: all 0.2s ease;
 }

 .gantt .handle:hover {
   fill: #f5f5f5;
   stroke: rgba(0, 0, 0, 0.25);
   filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.15));
 }

 /* ハイライト効果の強化 */
 .highlight-task .bar {
   stroke: #007bff !important;
   stroke-width: 2px !important;
   filter: drop-shadow(0 0 5px rgba(0, 123, 255, 0.5)) !important;
   animation: pulse-highlight 1.5s ease-in-out;
 }

 @keyframes pulse-highlight {
   0% {
     stroke-width: 2px;
     filter: drop-shadow(0 0 3px rgba(0, 123, 255, 0.5));
   }

   50% {
     stroke-width: 3px;
     filter: drop-shadow(0 0 8px rgba(0, 123, 255, 0.7));
   }

   100% {
     stroke-width: 2px;
     filter: drop-shadow(0 0 3px rgba(0, 123, 255, 0.5));
   }
 }

 /* 各コントロールコンテナのスタイル */
 .date-navigation {
   padding-top: 10px;
   padding-bottom: 10px;
   background: #f5f5f5;
   flex: 1;
   display: flex;
   align-items: center;
   border-radius: 0;
   box-shadow: none;
   justify-content: space-evenly;
 }

 /* タグフィルターのスタイル改善 */
 #tagFilter {
   min-width: 180px;
   padding: 8px 12px;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   font-size: 14px;
   color: #333;
   background-color: white;
   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
   transition: all 0.2s ease;
 }

 #tagFilter:focus {
   border-color: #007bff;
   outline: none;
   box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
 }

 /* ボタン共通スタイル */
 .view-button,
 .jump-button {
   padding: 8px 16px;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   background: white;
   color: #333;
   font-size: 14px;
   font-weight: 500;
   cursor: pointer;
   transition: all 0.2s ease;
   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
 }

 /* アクティブなビューボタン */
 .view-button.active {
   background: #007bff;
   color: white;
   border-color: #0056b3;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
 }

 /* 日付選択のスタイル改善 */
 #dateJumper {
   padding: 8px 12px;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   font-size: 14px;
   color: #333;
   background-color: white;
   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
   transition: all 0.2s ease;
 }

 #dateJumper:focus {
   border-color: #007bff;
   outline: none;
   box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
 }

 /* レスポンシブ対応の強化 */
 @media (max-width: 700px) {

   #tagFilter {
     width: 100%;
     max-width: none;
   }

   .view-button,
   .jump-button {
     flex: 1;
     min-width: 80px;
     text-align: center;
     margin: 4px;
   }

   /* タイトル行のスタイル - ナビゲーションボタンをタイトル右側に配置 */
   .task-navigation {
     display: flex;
     gap: 5px;
     margin-left: 10px;
   }

   .nav-button {
     padding: 3px 8px;
     background-color: #f8f9fa;
     border: 1px solid #e0e0e0;
     border-radius: 20px;
     font-size: 12px;
     color: #333;
     cursor: pointer;
     transition: all 0.2s ease;
   }

   .nav-button:hover {
     background-color: #007bff;
     color: white;
     border-color: #0056b3;
   }

   /* フィルターモード選択のスタイル */
   .filter-mode-select {
     padding: 6px 10px;
     border-radius: 4px;
     border: 1px solid #ccc;
     background-color: #fff;
     font-size: 14px;
     min-width: 220px;
   }

   /* ファイル入力とクリアボタンのコンテナ */
   .file-input-container {
     position: relative;
     display: flex;
     align-items: center;
   }

   /* クリアボタンのスタイル */
   .clear-image-btn {
     position: absolute;
     right: 10px;
     top: 50%;
     transform: translateY(-50%);
     background-color: #ff5555;
     color: white;
     border: none;
     border-radius: 50%;
     width: 20px;
     height: 20px;
     font-size: 12px;
     line-height: 1;
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 0;
     margin-left: 5px;
   }

   .clear-image-btn:hover {
     background-color: #ff3333;
   }

   /* 画像プレビューエリアのスタイル改善 */
   .image-preview {
     margin-top: 10px;
     position: relative;
   }

   .image-preview img {
     max-width: 200px;
     max-height: 150px;
     border: 1px solid #ddd;
     border-radius: 4px;
     padding: 5px;
   }

   /* プレビュー画像のクリアボタン */
   .preview-clear-btn {
     position: absolute;
     top: 0;
     right: 0;
     background-color: #ff5555;
     color: white;
     border: none;
     border-radius: 50%;
     width: 24px;
     height: 24px;
     font-size: 14px;
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     margin: 5px;
   }

   .preview-clear-btn:hover {
     background-color: #ff3333;
   }
 }

 /* タスク詳細表示エリアのスタイル */
 .task-detail-area {
   margin-top: 20px;
   padding: 20px;
   border-radius: 8px;
   box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
   display: none;
   /* 初期状態では非表示 */
 }

 .task-detail-area.visible {
   display: block;
 }

 .task-detail-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
   border-bottom: 1px solid #eaeaea;
   padding-bottom: 10px;
 }

 .task-detail-header h3 {
   margin: 0;
   color: #2c3e50;
   font-weight: 600;
 }

 .task-detail-content {
   display: flex;
   flex-direction: row;
   gap: 20px;
   padding: 15px;
 }

 /* Quillリッチテキストスタイルをタスク詳細表示エリアに適用 */
 .task-detail-description {
   /* 既存のスタイルを維持 */
   grid-column: 1 / -1;
   background-color: white;
   padding: 15px;
   border-radius: 6px;
   border: 1px solid #f0f0f0;

   /* Quillスタイルの適用 */
   font-family: inherit;
   line-height: 1.5;
 }

 /* コードブロック */
 .task-detail-description pre.ql-syntax,
 .task-detail-description .ql-code-block-container {
   background-color: #23241f;
   border-radius: 3px;
   padding: 8px 12px;
   margin: 8px 0;
   font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
   font-size: 0.9em;
   overflow-x: auto;
   color: #f8f8f2;
   white-space: pre-wrap;
 }

 /* ブロッククォート */
 .task-detail-description .ql-blockquote,
 .task-detail-description blockquote {
   border-left: 4px solid #ccc;
   padding-left: 16px;
   margin: 16px 0;
   color: #666;
 }

 /* リスト */
 .task-detail-description ul,
 .task-detail-description ol {
   padding-left: 25px;
   margin: 8px 0;
 }

 .task-detail-description ul.ql-indent-1,
 .task-detail-description ol.ql-indent-1 {
   padding-left: 45px;
 }

 .task-detail-description ul.ql-indent-2,
 .task-detail-description ol.ql-indent-2 {
   padding-left: 65px;
 }

 /* 太字 */
 .task-detail-description strong,
 .task-detail-description .ql-bold {
   font-weight: bold;
 }

 /* 斜体 */
 .task-detail-description em,
 .task-detail-description .ql-italic {
   font-style: italic;
 }

 /* 取り消し線 */
 .task-detail-description s,
 .task-detail-description .ql-strike {
   text-decoration: line-through;
 }

 /* インラインコード */
 .task-detail-description code {
   background-color: #f0f0f0;
   padding: 2px 4px;
   border-radius: 3px;
   font-family: monospace;
   font-size: 0.9em;
   color: #e83e8c;
 }

 /* 見出し */
 .task-detail-description h1 {
   font-size: 2em;
   margin: 0.67em 0;
 }

 .task-detail-description h2 {
   font-size: 1.5em;
   margin: 0.75em 0;
 }

 .task-detail-description h3 {
   font-size: 1.17em;
   margin: 0.83em 0;
 }

 /* リンク */
 .task-detail-description a {
   color: #0366d6;
   text-decoration: underline;
 }

 .task-detail-description a:hover {
   text-decoration: none;
 }

 /* 画像サイズ調整 */
 .task-detail-description img {
   max-width: 100%;
   height: auto;
 }

 .task-detail-description iframe {
   max-width: 100%;
   width: 100%;
   height: 200px;
   border: none;
   display: block;
   margin: 12px auto;
   box-sizing: border-box;
 }

 @media screen and (max-width: 767px) {
   .task-detail-description iframe {
     height: 160px;
     max-width: 100vw;
   }
 }

 /* テーブル */
 .task-detail-description table {
   border-collapse: collapse;
   width: 100%;
   margin: 16px 0;
 }

 .task-detail-description table td,
 .task-detail-description table th {
   border: 1px solid #ddd;
   padding: 8px;
 }

 .task-detail-description table tr:nth-child(even) {
   background-color: #f2f2f2;
 }

 /* メタ情報エリアを縦書き表示用に修正 */
 .task-detail-period {
   flex: 0 0 50px;
   display: flex;
   flex-direction: column;
   gap: 10px;
   padding-right: 50px;
   border-right: 1px solid #e0e0e0;
   /* 縦書き表示のための設定 */
   writing-mode: vertical-rl;
   text-orientation: mixed;
   min-height: 400px;
   overflow-x: auto;
   font-size: 1.8em;
   font-family: monospace;
 }

 .task-detail-period p {
   margin: 0 5px 0 5px;
   line-height: 1.6;
   white-space: nowrap;
 }

 .task-detail-period strong {
   display: inline-block;
   margin-left: 5px;
   font-weight: bold;
 }

 /* 説明文とその他のメタ情報を含むコンテナ */
 .task-detail-main {
   flex: 1;
   display: flex;
   flex-direction: column;
 }

 /* 縦書き時の画像スタイル調整 */
 .task-detail-image {
   max-width: 650px;
   max-height: 350px;
   object-fit: contain;
   margin: 20px 0 0 20px;
 }

 /* タスク名、タグ、URL、画像を含むメタ情報 - 横書き */
 .task-detail-meta {
   margin-bottom: 15px;
   padding-bottom: 15px;
   border-bottom: 1px solid #e0e0e0;
 }

 /* 縦書き時の強調テキスト調整 */
 .task-detail-meta strong {
   display: inline-block;
   margin-left: 5px;
   font-weight: bold;
 }

 /* 縦書き時のタイトルスタイル調整 */
 .task-detail-title {
   margin: 10px 0 10px 10px;
   word-break: break-word;
   font-size: 2.0em;
   line-height: 1.4;
 }

 /* 縦書き時の段落スタイル調整 */
 .task-detail-meta p {
   margin: 0 5px 0 5px;
   line-height: 1.6;
   white-space: nowrap;
 }

 .show-full-details {
   padding: 8px 12px;
   color: white;
   border: none;
   border-radius: 10px;
   cursor: pointer;
   font-size: 14px;
   transition: background-color 0.2s;
 }

 .show-full-details:hover {
   background-color: #e9ecef;
 }

 .back-to-gantt {
   background-color: #fff;
   border: 1px solid #dee2e6;
   border-radius: 4px;
   padding: 5px 12px;
   font-size: 18px;
   color: #495057;
   cursor: pointer;
   transition: all 0.2s ease;
   display: flex;
   align-items: center;
   gap: 5px;
 }

 .back-to-gantt:hover {
   background-color: #e9ecef;
   color: #212529;
 }

 .back-to-gantt:active {
   transform: translateY(1px);
 }

 .task-detail-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
   border-bottom: 1px solid #eaeaea;
   padding-bottom: 10px;
 }

 /* タブメニュー用のスタイル */
 .task-tabs {
   display: flex;
   flex-direction: column;
   width: 100%;
 }

 .tab-buttons {
   display: flex;
   overflow-x: auto;
   border-bottom: 1px solid #ddd;
   border-top-left-radius: 8px;
   border-top-right-radius: 8px;
 }

 .tab-button {
   padding: 10px 15px;
   background-color: #f0f0f0;
   border: 1px solid #ddd;
   border-bottom: none;
   margin-right: 2px;
   border-top-left-radius: 5px;
   border-top-right-radius: 5px;
   cursor: pointer;
   display: flex;
   align-items: center;
   white-space: nowrap;
   max-width: 200px;
   position: relative;
   top: 1px;
 }

 .tab-button.active {
   background-color: white;
   border-bottom: 1px solid white;
   font-weight: bold;
 }

 .tab-title {
   max-width: 150px;
   overflow: hidden;
   text-overflow: ellipsis;
 }

 .close-tab {
   margin-left: 8px;
   font-weight: bold;
   color: #999;
   cursor: pointer;
 }

 .close-tab:hover {
   color: #333;
 }

 .tab-contents {
   background-color: white;
   border: 1px solid #ddd;
   border-top: none;
   padding: 15px;
   border-bottom-left-radius: 8px;
   border-bottom-right-radius: 8px;
 }

 .tab-content {
   display: none;
 }

 .tab-content.active {
   display: block;
   z-index: 1500 !important;
 }

 .task-detail-header {
   display: flex;
   background-color: #f8f9fa;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 8px;
   padding: 7px;
   border-radius: 5px;
   border: solid 1px #ddd;
 }

 .close-all-tabs {
   background-color: #fff;
   border: 1px solid #dee2e6;
   border-radius: 4px;
   padding: 5px 10px;
   cursor: pointer;
 }

 .close-all-tabs:hover {
   background-color: #e9ecef;
 }

 /* 臨時矢印のスタイル */
 path.temporary-arrow {
   stroke: #0056b3;
   stroke-width: 1.5;
   stroke-dasharray: 5, 5;
   animation: arrow-pulse 2s infinite;
 }

 path.tag-filter-arrow {
   stroke: #0066cc;
   stroke-width: 2;
   stroke-dasharray: 5, 3;
 }

 /* 矢印のパルスアニメーション */
 @keyframes arrow-pulse {
   0% {
     opacity: 0.7;
   }

   50% {
     opacity: 1;
   }

   100% {
     opacity: 0.7;
   }
 }

 /* 通知スタイル */
 .notification {
   position: fixed;
   top: 20px;
   right: 20px;
   padding: 12px 20px;
   border-radius: 4px;
   color: white;
   font-weight: 500;
   box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
   transform: translateY(-20px);
   opacity: 0;
   transition: all 0.3s ease;
   z-index: 9999;
 }

 .notification.show {
   transform: translateY(0);
   opacity: 1;
 }

 .notification.success {
   background-color: #28a745;
 }

 .notification.info {
   background-color: #17a2b8;
 }

 .notification.warning {
   background-color: #ffc107;
   color: #212529;
 }

 .notification.error {
   background-color: #dc3545;
 }

 /* タスク詳細編集関連のスタイル */
 .task-detail-actions {
   display: flex;
   gap: 10px;
 }

 .edit-task-detail {
   background-color: #fff;
   border: 1px solid #dee2e6;
   border-radius: 4px;
   padding: 5px 12px;
   font-size: 18px;
   color: #495057;
   cursor: pointer;
   transition: all 0.2s ease;
 }

 .edit-task-detail:hover {
   background-color: #e9ecef;
   color: #212529;
 }

 /* タスク詳細エディタのレイアウト修正 */
 .task-detail-editor-container {
   display: flex;
   flex-direction: column;
   margin-top: 15px;
   border: 1px solid #e0e0e0;
   border-radius: 6px;
   overflow: hidden;
   /* 最小高さを設定して、コンテンツが少なくてもスペースを確保 */
   min-height: 300px;
 }

 /* エディタ本体のスタイル */
 .task-detail-editor {
   flex: 1;
   min-height: 200px;
   /* エディタが少なくとも200pxの高さを持つようにする */
   display: flex;
   flex-direction: column;
 }

 /* Quillエディタのコンテナ */
 .task-detail-editor-container .ql-container {
   flex: 1;
   min-height: 200px;
   /* スクロールを許可するが、最小高さは確保 */
   overflow-y: auto;
 }

 /* エディタのツールバー */
 .task-detail-editor-container .ql-toolbar {
   border-top-left-radius: 4px;
   border-top-right-radius: 4px;
   background-color: #f8f9fa;
   /* ツールバーを固定位置に */
   position: sticky;
   top: 0;
   z-index: 10;
 }

 /* アクションボタンのコンテナ */
 .editor-actions {
   display: flex;
   justify-content: flex-end;
   padding: 10px;
   background-color: #f8f9fa;
   border-top: 1px solid #e0e0e0;
   /* ボタンを固定位置に */
   position: sticky;
   bottom: 0;
   z-index: 10;
   /* 確実に表示されるようにする */
   margin-top: auto;
 }

 /* ボタンのスタイル */
 .editor-actions button {
   padding: 8px 16px;
   border-radius: 4px;
   border: 1px solid #dee2e6;
   background-color: white;
   cursor: pointer;
   margin-left: 10px;
   transition: all 0.2s ease;
 }

 .editor-actions .save-task-detail {
   background-color: #007bff;
   color: white;
   border-color: #0069d9;
 }

 .editor-actions .save-task-detail:hover {
   background-color: #0069d9;
 }

 .editor-actions .cancel-task-detail {
   background-color: #f8f9fa;
   color: #495057;
 }

 .editor-actions .cancel-task-detail:hover {
   background-color: #e9ecef;
 }

 /* Quillエディタのスタイル調整 */
 .task-detail-editor-container .ql-container {
   min-height: 200px;
   max-height: 500px;
   overflow-y: auto;
 }

 .task-detail-editor-container .ql-toolbar {
   border-top-left-radius: 4px;
   border-top-right-radius: 4px;
   background-color: #f8f9fa;
 }

 .task-detail-editor-container .ql-container {
   border-bottom-left-radius: 4px;
   border-bottom-right-radius: 4px;
 }

 /* 既存のCSSの末尾などに追加 */
 .indicators-hidden {
   display: none !important;
 }

 /* 臨時ナビゲーションボタンのスタイル */
 .temporary-navigation {
   background-color: rgba(0, 102, 204, 0.1);
   padding: 2px 5px;
   border-radius: 3px;
   border: 1px dashed #0066cc;
 }

 .nav-button.temp-nav {
   color: #0066cc;
   font-weight: bold;
   background-color: rgba(0, 102, 204, 0.1);
   border: 1px solid #0066cc;
 }

 .nav-button.temp-nav:hover {
   background-color: rgba(0, 102, 204, 0.3);
 }

 /* 適用ボタンと投稿順ボタンの間隔を広げる */
 #applyFilter {
   margin-right: 15px;
   /* ここの数値を大きくすると間隔が広がります */
 }

 #toggleSortMode {
   margin-left: 15px;
 }

 /* タグ、URL、画像、色の入力フィールドの高さを揃える */
 .form-row .form-group {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
   height: 70px;
   /* 固定の高さを設定 */
 }

 /* 入力フィールドのスタイル統一 */
 .form-row .form-group input[type="text"],
 .form-row .form-group input[type="file"],
 .form-row .form-group input[type="color"] {
   padding: 6px 8px;
   border: 1px solid #ddd;
   border-radius: 4px;
   box-sizing: border-box;
   width: 100%;
 }

 /* カラーピッカーの特別な調整 */
 .form-row .form-group input[type="color"] {
   padding: 2px;
   cursor: pointer;
 }

 /* ファイル入力コンテナのスタイル */
 .file-input-container {
   position: relative;
   display: flex;
   align-items: center;
   height: 38px;
 }

 /* 各フォームグループの幅を均等に */
 .form-row .form-group {
   flex: 1;
 }

 .form-row .image-preview {
   flex-basis: 100%;
   margin-top: 10px;
 }

 /* Emoji Picker のスタイル */
 .input-with-emoji {
   display: flex;
   align-items: center;
   width: 80%;
 }


 .input-with-emoji input {
   flex: 1;
   width: auto !important;
 }

 .emoji-button {
   background: none;
   border: none;
   font-size: 1.2em;
   cursor: pointer;
   padding: 0 8px;
   transition: transform 0.2s;
   color: #666;
 }

 .emoji-button:hover {
   transform: scale(1.2);
   color: #333;
 }

 .emoji-picker-container {
   position: absolute;
   z-index: 2000;
   display: none;
   box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
   border-radius: 8px;
 }

 .emoji-picker-container.visible {
   display: block;
 }

 /* emoji-mart用のカスタムスタイル */
 .emoji-mart {
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
   border-radius: 8px;
   border: 1px solid #e0e0e0;
 }

 /* Quillエディタ内の絵文字ボタン */
 .ql-emoji {
   position: relative;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 24px;
 }

 /* ビューポート端のタスクラベル用スタイル - 修正版 */
 .viewport-edge-labels {
   position: absolute;
   z-index: 100;
   max-width: 200px;
   max-height: 80%;
   overflow-y: auto;
   background-color: rgba(255, 255, 255, 0.95);
   border: 1px solid #ddd;
   border-radius: 4px;
   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
   padding: 5px 0;
   pointer-events: auto;
   /* 重要: クリックイベントを確実に受け取る */
 }

 .left-edge-labels {
   left: 10px;
   top: 50%;
   transform: translateY(-50%);
 }

 .right-edge-labels {
   right: 10px;
   top: 50%;
   transform: translateY(-50%);
 }

 .edge-label {
   padding: 6px 10px;
   margin: 3px 0;
   cursor: pointer;
   display: flex;
   align-items: center;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   transition: background-color 0.2s;
   user-select: none;
   /* テキスト選択を防止 */
 }

 .edge-label:hover {
   background-color: #f0f0f0;
 }

 .edge-label-color {
   display: inline-block;
   width: 12px;
   height: 12px;
   border-radius: 2px;
   margin-right: 8px;
   flex-shrink: 0;
 }

 .edge-label-text {
   font-size: 12px;
   color: #333;
   overflow: hidden;
   text-overflow: ellipsis;
 }

 /* ハイライト効果の強化 */
 .bar-wrapper.highlight-task {
   animation: pulse-highlight 2s;
   z-index: 10;
   /* ハイライト時に前面に表示 */
 }

 @keyframes pulse-highlight {
   0% {
     filter: brightness(1);
   }

   25% {
     filter: brightness(1.3);
   }

   50% {
     filter: brightness(1);
   }

   75% {
     filter: brightness(1.3);
   }

   100% {
     filter: brightness(1);
   }
 }

 /* SP用のレスポンシブデザイン追加 */
 @media screen and (max-width: 767px) {

   /* コントロールパネルをアコーディオン化 */
   .controls-row {
     flex-direction: column;
     width: 100%;
   }

   .controls-accordion-toggle {
     display: flex;
     align-items: center;
     justify-content: space-between;
     width: 10%;
     padding: 10px;
     background-color: #f5f5f5;
     border-radius: 4px;
     margin-bottom: 5px;
     cursor: pointer;
   }

   .controls-accordion-toggle .toggle-icon {
     font-size: 20px;
     align-items: center;
   }

   .controls-accordion-content {
     display: none;
     width: 100%;
     padding: 0px 0;
   }

   .controls-accordion-content.open {
     display: block;
   }

   /* SP用のナビゲーション調整 */
   .date-navigation {
     flex-wrap: wrap;
     justify-content: center;
     gap: 5px;
   }

   .date-navigation button,
   .date-navigation select,
   .date-navigation input {
     margin: 2px;
     padding: 6px 8px;
     font-size: 12px;
   }

   /* 日付ジャンパーの幅調整 */
   .date-jumper {
     width: 120px;
   }

   /* タグフィルターの調整 */
   .ts-wrapper {
     min-width: 100%;
     max-width: 100%;
   }

   /* ガントチャートのヘッダー高さ調整 */
   .gantt .grid-header {
     height: 60px;
   }
 }

 /* SP表示用のベーススタイル */
 .sp-only {
   display: none;
 }

 @media screen and (max-width: 767px) {
   .sp-only {
     display: flex;
   }

   /* タスク詳細モーダルの調整 */
   #taskModal,
   #editTaskModal {
     width: 90%;
     max-width: 100%;
     padding: 15px;
   }

   /* フォーム要素の調整 */
   .form-group {
     margin-bottom: 10px;
   }

   .form-row {
     flex-direction: column;
   }

   /* エディタコンテナの調整 */
   .editor-container {
     max-height: 200px;
   }

   /* ボタンサイズの調整 */
   .button-row button {
     padding: 8px 12px;
     font-size: 14px;
   }

   /* タスク詳細エリアの調整 */
   .task-detail-area {
     width: 90%;
     max-width: 100%;
   }

   .gantt-container {
     height: calc(78vh - var(--header-height, 60px) - var(--footer-height, 0px) - var(--controls-height, 50px)) !important;
     max-height: none !important;
     overflow-y: auto;
   }
 }

 /* SP用表示のカスタマイズ - アコーディオン内の表示制御 */
 @media screen and (max-width: 768px) {

   /* アコーディオン内の全要素をデフォルトで非表示 */
   .controls-accordion-content .date-navigation>* {
     display: none;
   }

   /* 🔍モード: タグ検索とAND/ORフィルタのみ表示 */
   .controls-accordion-content.search-mode .date-navigation #tagFilterMode,
   .controls-accordion-content.search-mode .date-navigation #applyFilter,
   .controls-accordion-content.search-mode .date-navigation #tagFilter,
   .controls-accordion-content.search-mode .date-navigation .ts-wrapper,
   /* 既存の互換性のために、モードなしでも表示 */
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation #tagFilterMode,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation #applyFilter,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation #tagFilter,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation .ts-wrapper {
     display: inline-block;
   }

   /* 📅モード: 日付ナビゲーション関連のみ表示 */
   .controls-accordion-content.calendar-mode .date-navigation #moveTimelinePrev,
   .controls-accordion-content.calendar-mode .date-navigation #toggleSortMode,
   .controls-accordion-content.calendar-mode .date-navigation #dateJumper,
   .controls-accordion-content.calendar-mode .date-navigation #jumpToDate,
   .controls-accordion-content.calendar-mode .date-navigation #moveTimelineNext,
   .controls-accordion-content.calendar-mode .date-navigation #jumpToToday,
   .controls-accordion-content.calendar-mode .date-navigation .view-button[data-view] {
     display: inline-block;
   }

   /* Tom Selectのコンテナが正しく表示されるように */
   .controls-accordion-content.search-mode .date-navigation .ts-wrapper,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation .ts-wrapper {
     width: calc(100% - 120px);
     max-width: none;
     margin-right: 5px;
   }

   /* フィルタボタンのスタイル調整 */
   .controls-accordion-content.search-mode .date-navigation #applyFilter,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation #applyFilter {
     margin-right: 5px;
   }

   /* モードセレクタのスタイル調整 */
   .controls-accordion-content.search-mode .date-navigation #tagFilterMode,
   .controls-accordion-content:not(.calendar-mode):not(.search-mode) .date-navigation #tagFilterMode {
     width: auto;
     min-width: 60px;
   }

   /* 📅モード: 日付ジャンパーの幅調整 */
   .controls-accordion-content.calendar-mode .date-navigation #dateJumper {
     width: 120px;
   }

   /* 📅モード: ボタン間の余白調整 */
   .controls-accordion-content.calendar-mode .date-navigation button {
     margin: 2px;
   }
 }

 @media screen and (max-width: 768px) {
   .controls-accordion-toggle.sp-only {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     width: 30px;
     height: 28px;
     font-size: 1.7em;
     background: #fff;
     border-radius: 50%;
     margin-right: 8px;
     box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
     cursor: pointer;
     border: 1px solid #eee;
     transition: background 0.2s;
   }

   .controls-accordion-toggle.sp-only+.controls-accordion-toggle.sp-only {
     margin-right: 0;
   }

   /* 📅アコーディオンのSP専用表示 */
   .calendar-accordion-content.sp-only {
     display: none;
     background: #fff;
     border-radius: 8px;
     margin: 10px 0 0 0;
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
     padding: 12px 10px;
     z-index: 100;
   }

   .calendar-accordion-content.sp-only.open {
     display: block;
   }

   /* 📅アコーディオン内のボタンだけ横並び */
   .calendar-accordion-content .calendar-nav-only {
     display: flex;
     flex-wrap: wrap;
     gap: 8px;
     justify-content: flex-start;
   }

   /* PCでは非表示 */
   @media screen and (min-width: 769px) {

     .calendar-accordion-content.sp-only,
     .controls-accordion-toggle.sp-only {
       display: none !important;
     }
   }
 }

 /* トグルボタンコンテナのスタイル */
 .toggle-buttons-container {
   display: flex;
   align-items: center;
   gap: 8px;
   /* ボタン間の間隔 */
   position: fixed;
   /* 元の位置を維持するために固定位置に */
   top: 10px;
   /* 上部からの位置調整（必要に応じて変更） */
   right: 10px;
   /* 右側からの位置調整（必要に応じて変更） */
 }

 /* SP表示時のみ表示 */
 @media screen and (max-width: 767px) {
   .toggle-buttons-container {
     display: flex;
   }
 }

 /* PC表示時は非表示 */
 @media screen and (min-width: 768px) {
   .toggle-buttons-container {
     display: none;
   }
 }

 /* 重要: これらの要素が他の場所に移動しないようにする */
 .toggle-buttons-container .controls-accordion-toggle.sp-only {
   position: static !important;
   /* 他のスタイルを確実に上書き */
   margin: 0 !important;
   /* マージンをリセット */
   top: auto !important;
   /* 上部配置をリセット */
   left: auto !important;
   /* 左配置をリセット */
 }

 /* 📅ボタンを確実に固定する */
 .toggle-buttons-container .controls-accordion-toggle.sp-only.calendar-toggle {
   position: static !important;
   display: inline-flex !important;
 }

 /* 📅メニューの位置は変えない */
 .calendar-accordion-content.sp-only {
   position: absolute;
   top: 54px;
   /* トグルボタンの下に配置 */
   right: 10px;
   width: auto;
   max-width: 90vw;
 }


 /* PC表示時は非表示 */
 @media screen and (min-width: 768px) {
   .toggle-buttons-container {
     display: none;
   }
 }

 /* デバッグ用スタイル - アコーディオンの状態を視覚的に確認 */
 .controls-accordion-toggle.sp-only {
   position: relative;
 }

 .controls-accordion-toggle.sp-only::after {
   content: "";
   position: absolute;
   top: -3px;
   right: -3px;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background-color: transparent;
 }

 .controls-accordion-content.open {
   display: block !important;
   /* 確実に表示されるようにする */
   border: 2px;
 }

 /*.controls-accordion-content.calendar-mode {
  border-color: #4dabf7;
}

.controls-accordion-content.search-mode {
  border-color: #82c91e;
}


/* SPモード用カレンダーアコーディオンメニューのレイアウト修正 */
 @media screen and (max-width: 768px) {

   /* コントロール行の基本スタイル調整 */
   .controls-accordion-content .date-navigation {
     display: flex;
     flex-wrap: wrap;
     justify-content: space-between;
     gap: 5px;
     padding: 8px;
   }

   /* 1行目: 投稿順ボタンと今日ボタン */
   #toggleSortMode,
   #jumpToToday {
     order: 1;
     flex: 1;
     max-width: calc(50% - 5px);
     margin: 0;
   }

   /* 2行目: 日次・週次・月次ボタン */
   .view-button[data-view] {
     order: 2;
     flex: 1;
     max-width: calc(33.33% - 5px);
     margin: 5px 0;
   }

   /* 3行目: ナビゲーションコントロール */
   #moveTimelinePrev {
     order: 3;
     flex: 0 0 auto;
     width: auto;
     margin: 0;
   }

   #dateJumper {
     order: 4;
     flex: 1;
     margin: 0 5px;
   }

   #moveTimelineNext {
     order: 5;
     flex: 0 0 auto;
     width: auto;
     margin: 0;
   }

   #jumpToDate {
     order: 6;
     flex: 0 0 auto;
     width: auto;
     margin: 0;
   }

   /* フィルター関連は別グループとして扱う */
   #tagFilterMode,
   #applyFilter,
   #tagFilter {
     order: 7;
     margin-top: 5px;
   }

   /* ボタンサイズの統一と余白調整 */
   .controls-accordion-content .date-navigation button,
   .controls-accordion-content .date-navigation input,
   .controls-accordion-content .date-navigation select {
     height: 41px;
     padding: 0 8px;
     font-size: 14px;
     box-sizing: border-box;
   }

   /* date-jumperの幅調整 */
   #dateJumper {
     min-width: 0;
     width: 100%;
   }

   /* Tom Selectのコンテナ幅調整 */
   .ts-wrapper {
     width: 100%;
     min-width: 0;
     max-width: 100%;
   }
 }

 /* アコーディオンの開閉状態に応じた表示調整 */
 @media screen and (max-width: 768px) {
   .controls-accordion-content {
     max-height: none;
     overflow: visible;
   }
 }

 /* 「投稿順」と「今日」ボタンのwidth調整 */
 @media screen and (max-width: 768px) {

   #toggleSortMode,
   #jumpToToday {
     order: 1;
     flex: 0 0 48.5%;
     max-width: 48.5%;
     margin: 0;
     box-sizing: border-box;
   }

   .view-button[data-view] {
     order: 2;
     flex: 0 0 31%;
     /* flexベースのサイズを32%に固定 */
     max-width: 31%;
     /* 最大幅も32%に設定 */
     margin: 5px 0;
     box-sizing: border-box;
   }
 }

 /* SP用のtaskDetailAreaカスタマイズ - 更新版 */
 @media screen and (max-width: 768px) {

   /* 基本構造の変更 */
   .task-detail-area {
     position: fixed;
     bottom: 0;
     left: 0;
     right: 0;
     z-index: 1500 !important;
     display: flex;
     flex-direction: column-reverse;
     /* タブボタンを下に配置 */
     background-color: transparent;
     max-height: 100vh;
     overflow: hidden;
     pointer-events: none;
     /* コンテナ自体はポインタイベントを受け付けない */
   }

   /* ヘッダーを非表示 */
   .task-detail-header {
     display: none;
   }

   /* タブボタンをボトムシートとして表示 */
   .tab-buttons {
     display: flex;
     justify-content: space-around;
     background: white;
     border-top-left-radius: 12px;
     border-top-right-radius: 12px;
     box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
     margin-top: 10px;
     position: relative;
     pointer-events: auto;
     /* タブボタンはポインタイベントを受け付ける */
     z-index: 101;
     /* controls-row controls-accordion-content calendar-modeの下に配置 */
     bottom: 0;
     transition: transform 0.3s ease;
   }

   /* タブコンテンツ部分のスタイル - 修正 */
   .tab-content {
     display: none !important;
     /* 初期状態では非表示 */
     background: white;
     border-radius: 12px;
     box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.15);
     max-height: 70vh;
     overflow-y: auto;
     pointer-events: auto;
   }

   /* タブが選択されたときのコンテンツ表示 */
   .tab-content.active {
     display: block !important;
     /* アクティブな場合のみ表示 */
     transform: translateY(0);
   }

   /* オーバーレイ背景 */
   .task-detail-overlay {
     position: fixed;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background-color: rgba(0, 0, 0, 0.5);
     opacity: 0;
     pointer-events: none;
     transition: opacity 0.3s ease;
     z-index: 99;
   }

   /* タブコンテンツがアクティブな時のオーバーレイ表示 */
   .task-detail-overlay.active {
     opacity: 1;
     pointer-events: auto;
   }

   /* タブボタンの位置調整 - controls-row controls-accordion-content calendar-modeの下に配置 */
   .controls-row .controls-accordion-content.calendar-mode {
     position: relative;
     z-index: 102;
     /* タブボタンより上に表示 */
   }

   /* タブボタンを固定位置に */
   .task-detail-area .tab-buttons {
     position: fixed;
     bottom: 0;
     left: 0;
     right: 0;
     z-index: 101;
   }

   /* コンテンツエリアの位置調整 */
   .tab-contents {
     display: block !important;
     position: fixed;
     bottom: 500px;
     left: 0;
     right: 0;
     max-height: calc(100vh - 100px);
     z-index: 1500 !important;
     background: white;
     border-top-left-radius: 12px;
     border-top-right-radius: 12px;
     box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
     transform: translateY(100%);
     transition: transform 0.3s ease;
     overflow-y: auto;
     pointer-events: auto;
   }

   /* アクティブなタブコンテンツを表示 */
   .tab-contents.active {
     transform: translateY(0);
   }

   /* スワイプ後にタブコンテンツを非表示にするCSSを追加 */
   .tab-content:not(.active) {
     display: none !important;
   }

   /* tab-contents内にアクティブなタブがない場合に非表示にする */
   .tab-contents:not(:has(.tab-content.active)) {
     display: none !important;
   }
 }

 /* SP用のタスク詳細レイアウト調整 */
 @media screen and (max-width: 767px) {

   /* タスク詳細コンテンツのレイアウト変更 */
   .task-detail-content {
     flex-direction: column;
     padding: 10px;
   }

   /* 期間情報を横書きに変更 */
   .task-detail-period {
     flex: 0 0 auto;
     writing-mode: horizontal-tb;
     text-orientation: mixed;
     min-height: auto;
     padding-right: 0;
     border-right: none;
     border-bottom: 1px solid #e0e0e0;
     padding-bottom: 10px;
     margin-bottom: 10px;
     font-size: 1em;
     font-family: inherit;
     width: 100%;
     overflow-x: visible;
   }

   /* 期間情報の段落を横書き用に調整 */
   .task-detail-period p {
     margin: 5px 0;
     line-height: 1.4;
     white-space: normal;
     display: block;
   }

   /* メインコンテンツエリアの調整 */
   .task-detail-main {
     width: 100%;
   }

   /* タイトルの後に期間情報を配置するための順序変更 */
   .task-detail-meta {
     order: 1;
   }

   .task-detail-period {
     order: 2;
   }

   .task-detail-description {
     order: 3;
   }

   /* タイトルのスタイル調整 */
   .task-detail-title {
     margin: 10px 0;
     font-size: 1.5em;
     line-height: 1.3;
   }

   /* 画像サイズの調整 */
   .task-detail-image {
     max-width: 100%;
     max-height: 200px;
     margin: 10px 0;
   }

   /* 説明文エリアの調整 */
   .task-detail-description {
     margin-top: 10px;
   }
 }

 /* SP表示時のタブコンテンツ内のレイアウト調整 */
 @media screen and (max-width: 767px) {
   .tab-content.active {
     padding: 10px;
   }

   /* 期間情報をタイトルの下に移動するための調整 */
   .task-detail-main {
     display: flex;
     flex-direction: column;
   }

   /* タスク詳細メタ情報の順序変更 */
   .task-detail-meta {
     display: flex;
     flex-direction: column;
   }

   /* 期間情報を横書きでタイトルの下に表示 */
   .task-detail-meta+.task-detail-period {
     margin-top: 5px;
     font-size: 0.9em;
     color: #666;
     background-color: #f8f9fa;
     border-radius: 4px;
   }
 }

 /* SP向けモーダルウィンドウカスタマイズ */
 @media screen and (max-width: 768px) {

   /* 共通モーダルスタイル */
   #taskModal,
   #editTaskModal {
     width: 100%;
     height: 100%;
     max-width: 100%;
     max-height: 100%;
     border-radius: 0;
     top: 0;
     left: 0;
     transform: none;
     overflow-y: auto;
     padding: 15px;
     box-sizing: border-box;
   }

   /* フォームレイアウトの調整 */
   .form-row {
     flex-direction: column;
     gap: 12px;
   }

   .form-group {
     width: 100%;
     margin-bottom: 12px;
   }

   /* 入力フィールドの拡大 */
   input[type="text"],
   input[type="date"],
   input[type="color"],
   .ts-wrapper {
     font-size: 16px;
     /* iOS自動ズームを防止 */
     width: 100%;
     max-width: 100%;
     box-sizing: border-box;
   }

   /* ラベルの調整 */
   label {
     display: block;
     margin-bottom: 5px;
     font-size: 14px;
     font-weight: bold;
   }

   /* エディタコンテナの調整 */
   .editor-container {
     max-height: 200px;
     margin-bottom: 15px;
   }

   /* ツールバーの簡素化 */
   .ql-toolbar {
     flex-wrap: wrap;
     padding: 5px !important;
   }

   .ql-toolbar button {
     width: 28px;
     height: 28px;
   }

   /* ボタンの調整 */
   .button-row {
     /*position: sticky;*/
     bottom: 0;
     background: white;
     padding: 10px 0;
     margin-top: 15px;
     border-top: 1px solid #eee;
     display: flex;
     justify-content: space-between;
     width: 100%;
   }

   .button-row button {
     flex: 1;
     margin: 0 5px;
     height: 44px;
     font-size: 13px;
   }

   /* 画像プレビューの調整 */
   .image-preview {
     max-height: 150px;
     margin: 10px 0;
   }

   .image-preview img {
     max-height: 140px;
   }

   /* ファイル入力の調整 */
   .file-input-container {
     display: flex;
     align-items: center;
     width: 100%;
   }

   input[type="file"] {
     flex: 1;
     height: 44px;
     padding: 10px 0;
   }

   /* クリアボタンの調整 */
   .clear-image-btn {
     width: 44px;
     height: 44px;
     font-size: 20px;
   }

   /* タグ選択の調整 */
   .ts-control {
     min-height: 44px;
     padding: 8px;
   }

   .ts-wrapper.multi .ts-control .item {
     margin: 3px;
     padding: 3px 8px;
     font-size: 14px;
   }

   /* カラーピッカーの調整 */
   input[type="color"] {
     min-width: 44px;
     height: 44px;
   }

   /* 日付フィールドのグループ化 */
   .date-field {
     width: 100%;
   }

   /* モーダルタイトルの追加 */
   .modal-title {
     font-size: 18px;
     text-align: center;
     margin-bottom: 15px;
     padding-bottom: 10px;
     border-bottom: 1px solid #eee;
   }

   /* スクロールバーのカスタマイズ */
   #taskModal::-webkit-scrollbar,
   #editTaskModal::-webkit-scrollbar {
     width: 6px;
   }

   #taskModal::-webkit-scrollbar-thumb,
   #editTaskModal::-webkit-scrollbar-thumb {
     background-color: rgba(0, 0, 0, 0.2);
     border-radius: 3px;
   }
 }

 /* SP向けフォームレイアウト調整 - flexboxを無効化 */
 @media screen and (max-width: 768px) {

   /* form-rowのflexboxを無効化 */
   .form-row {
     display: block !important;
     /* flexを上書き */
     flex-wrap: unset !important;
     /* flex-wrapも無効化 */
     gap: 15px;
     /* 間隔は維持 */
   }

   /* form-row内のform-groupのflexboxも無効化 */
   .form-row .form-group {
     display: block !important;
     /* flexを上書き */
     flex-direction: unset !important;
     /* flex-directionも無効化 */
     width: 100%;
     /* 幅を100%に */
     margin-bottom: 15px;
     /* 下部マージンを追加 */
   }

   /* 入力フィールドの幅を調整 */
   .form-row .form-group input[type="text"],
   .form-row .form-group input[type="date"],
   .form-row .form-group input[type="color"],
   .form-row .form-group input[type="file"],
   .form-row .form-group .ts-wrapper {
     width: 100%;
     box-sizing: border-box;
   }
 }

 /* SP表示時のz-index調整 - モーダルを最前面に */
 @media screen and (max-width: 768px) {

   /* タスクモーダルを最前面に */
   #taskModal,
   #editTaskModal {
     z-index: 2000 !important;
     /* より高いz-indexを設定 */
   }

   /* オーバーレイも前面に */
   #overlay {
     z-index: 1999 !important;
     /* モーダルの下、他のすべての上 */
   }

   /* タブボタンのz-indexを下げる */
   .task-detail-area .tab-buttons,
   .task-detail-area .tab-contents,
   .tab-content,
   .task-detail-overlay {
     z-index: 1500 !important;
     /* モーダルとオーバーレイより低く */
   }

   /* アクティブなタブコンテンツのz-indexも調整 */
   .tab-content.active {
     z-index: 1500 !important;
   }

   /* タブコンテンツ全体のz-index調整 */
   .tab-contents.active {
     z-index: 1500 !important;
   }

   /* モーダル表示時にタブを非表示にする */
   body.modal-open .task-detail-area {
     display: none !important;
   }
 }

 /* SP表示でのタスク詳細テキスト表示問題の修正 */
 @media screen and (max-width: 768px) {

   /* タブコンテンツの高さ制限を修正 */
   .tab-content {
     max-height: none !important;
     /* 70vhの制限を解除 */
     height: auto !important;
     /* 高さを自動調整に */
     padding-bottom: 80px !important;
     /* 下部にパディングを追加してスクロール時に全体が見えるように */
   }

   /* タブコンテンツの親要素の高さ制限も修正 */
   .tab-contents {
     bottom: 650px !important;
     /* 位置を下部に固定 */
   }

   /* タスク詳細説明のスクロール問題を修正 */
   .task-detail-description {
     overflow-wrap: break-word !important;
     /* 長いテキストを折り返す */
     word-break: break-all !important;
     /* 必要に応じて単語の途中でも折り返す */
   }

   /* 二重スクロールを防止 */
   .tab-content.active {
     overflow-y: visible !important;
     /* 内部コンテンツのスクロールを親要素に任せる */
   }

   /* スクロール可能な領域を明確にするためのスタイル */
   .tab-contents.active {
     -webkit-overflow-scrolling: touch !important;
     /* iOSでのスムーズなスクロール */
     overflow-y: auto !important;
     /* スクロール可能に */
   }

   /* タブボタンの位置を調整して、コンテンツが隠れないようにする */
   .task-detail-area .tab-buttons {
     position: fixed !important;
     bottom: 0 !important;
     padding-bottom: env(safe-area-inset-bottom, 0) !important;
     /* iOSのセーフエリアに対応 */
     background-color: white !important;
     z-index: 1510 !important;
     /* コンテンツより上に表示 */
   }

   /* エディタ関連の調整 */
   .task-detail-editor-container {
     padding-bottom: 60px !important;
     /* エディタ使用時も下部が見えるように */
   }

   /* iOS Safariでの100vh問題対策 */
   @supports (-webkit-touch-callout: none) {
     .tab-contents {
       /* iOS Safariでは実際の画面高さの85%を使用 */
       max-height: 85% !important;
       height: 85% !important;
     }
   }
 }

 /* スワイプ中のコンテンツが見切れないようにする */
 @media screen and (max-width: 768px) {
   .tab-content.swiping {
     max-height: none !important;
     height: auto !important;
   }

   /* スワイプ中は親要素のスクロールを無効化 */
   .tab-contents:has(.tab-content.swiping) {
     overflow: hidden !important;
   }
 }

 .highlight-task {
   box-shadow: 0 0 10px 3px rgba(255, 193, 7, 0.8) !important;
   z-index: 999 !important;
 }

 .highlight-task .bar {
   stroke: #ffc107 !important;
   stroke-width: 3px !important;
 }

 /* 🆕 slug経由タスク詳細表示用スタイル */
 .task-detail-area {
   margin: 20px 0;
   display: none;
 }

 .task-detail-content.slug-accessed {
   background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
   color: white;
   border-radius: 12px;
   box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
   padding: 25px;
   margin: 15px 0;
   border: 3px solid #ffd700;
 }

 .task-detail-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   border-bottom: 2px solid rgba(255, 255, 255, 0.3);
   padding-bottom: 15px;
   margin-bottom: 20px;
 }

 .task-detail-header h3 {
   margin: 0;
   font-size: 1.4em;
   text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
 }

 .header-actions {
   display: flex;
   align-items: center;
   gap: 10px;
 }

 .slug-badge {
   background: rgba(255, 255, 255, 0.2);
   padding: 4px 8px;
   border-radius: 20px;
   font-size: 0.8em;
   border: 1px solid rgba(255, 255, 255, 0.3);
 }

 .close-detail-btn {
   background: #ff4757;
   color: white;
   border: none;
   border-radius: 50%;
   width: 35px;
   height: 35px;
   cursor: pointer;
   font-size: 18px;
   font-weight: bold;
   transition: all 0.3s ease;
 }

 .close-detail-btn:hover {
   background: #ff3838;
   transform: scale(1.1);
 }

 .task-detail-body {
   display: grid;
   gap: 20px;
 }

 .task-meta-info .meta-row {
   display: flex;
   align-items: center;
   margin-bottom: 10px;
   background: rgba(255, 255, 255, 0.1);
   padding: 8px 12px;
   border-radius: 6px;
 }

 .meta-label {
   font-weight: bold;
   min-width: 100px;
   color: #ffd700;
 }

 .meta-value {
   color: black;
   flex: 1;
 }

 .meta-value a {
   color: #87ceeb;
   text-decoration: underline;
 }

 .task-description {
   background: rgba(255, 255, 255, 0.1);
   padding: 15px;
   border-radius: 8px;
   border-left: 4px solid #ffd700;
 }

 .task-description h4 {
   margin: 0 0 10px 0;
   color: #ffd700;
 }

 .description-content {
   line-height: 1.6;
   color: rgba(255, 255, 255, 0.9);
 }

 .task-image {
   text-align: center;
   background: rgba(255, 255, 255, 0.1);
   padding: 15px;
   border-radius: 8px;
 }

 .task-actions {
   display: flex;
   gap: 15px;
   justify-content: center;
   margin-top: 20px;
 }

 .edit-task-btn,
 .focus-task-btn {
   background: linear-gradient(45deg, #4CAF50, #45a049);
   color: white;
   border: none;
   padding: 12px 20px;
   border-radius: 25px;
   cursor: pointer;
   font-weight: bold;
   transition: all 0.3s ease;
   box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
 }

 .focus-task-btn {
   background: linear-gradient(45deg, #2196F3, #1976D2);
 }

 .edit-task-btn:hover,
 .focus-task-btn:hover {
   transform: translateY(-2px);
   box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
 }

 /* ガントチャート上でのハイライト効果 */
 .highlight-task-slug {
   animation: slugHighlightPulse 3s ease-in-out;
   z-index: 1000;
   position: relative;
 }

 /* 🆕 **ポップアップアクションボタンのスタイル** */
 .popup-action-buttons {
   display: flex;
   gap: 8px;
   flex-direction: row;
   margin-top: 8px;
 }

 .show-full-details,
 .copy-slug-url {
   background: none;
   border: none;
   font-size: 16px;
   cursor: pointer;
   padding: 4px 8px;
   border-radius: 4px;
   transition: all 0.2s ease;
   min-width: 32px;
   height: 32px;
   display: flex;
   align-items: center;
   justify-content: center;
 }

 .show-full-details:hover,
 .copy-slug-url:hover {
   background-color: rgba(0, 0, 0, 0.1);
   transform: scale(1.1);
 }

 .copy-slug-url:active {
   transform: scale(0.95);
 }

 /* 🆕 **コピーフィードバックのスタイル** */
 .copy-feedback-success {
   background-color: #4CAF50 !important;
   color: white !important;
   font-size: 12px !important;
   padding: 2px 6px !important;
   border-radius: 4px !important;
   min-width: auto !important;
   white-space: nowrap !important;
 }

 .copy-feedback-error {
   background-color: #f44336 !important;
   color: white !important;
   font-size: 12px !important;
   padding: 2px 6px !important;
   border-radius: 4px !important;
   min-width: auto !important;
   white-space: nowrap !important;
 }

 /* 🆕 **SlugURLコピーボタンの特別スタイル** */
 .copy-slug-url {
   opacity: 0.7;
 }

 .copy-slug-url:hover {
   opacity: 1;
   background-color: rgba(0, 123, 255, 0.1);
   color: #007bff;
 }


 @keyframes slugHighlightPulse {

   0%,
   100% {
     transform: scale(1);
     box-shadow: 0 0 0 rgba(255, 215, 0, 0);
     border: 2px solid transparent;
   }

   25%,
   75% {
     transform: scale(1.08);
     box-shadow: 0 0 30px rgba(255, 215, 0, 0.8);
     border: 2px solid #ffd700;
   }

   50% {
     transform: scale(1.12);
     box-shadow: 0 0 40px rgba(255, 215, 0, 1);
     border: 3px solid #ffd700;
   }
 }

 /* レスポンシブ対応 */
 @media (max-width: 768px) {
   .task-detail-content.slug-accessed {
     margin: 10px;
     padding: 15px;
   }

   .task-actions {
     flex-direction: column;
     gap: 10px;
   }

   .edit-task-btn,
   .focus-task-btn {
     padding: 10px 15px;
     font-size: 0.9em;
   }
 }

 /* 🆕 SPモード用task-detail-header非表示スタイル */
 @media (max-width: 768px) {
   .task-detail-header {
     display: none !important;
   }

   .task-detail-area .task-detail-header {
     display: none !important;
   }

   /* タスク詳細エリア全体のヘッダー部分を非表示 */
   #taskDetailArea .task-detail-header,
   #taskDetailArea .detail-header,
   #taskDetailArea .task-header {
     display: none !important;
   }

   /* SPモードでタスク詳細エリアの上部マージンを調整 */
   .task-detail-area {
     margin-top: 0 !important;
     padding-top: 0 !important;
   }

   /* SPモードでコントロール要素との重複を防ぐ */
   .task-detail-area.sp-mode {
     position: relative;
     z-index: 1;
   }

   .controls-row {
     position: relative;
     z-index: 10;
   }
 }

 .ql-tooltip.ql-editing {
   left: 10px !important;
   top: 10px !important;
 }

 /* ツールチップスタイル */
 h4[title] {
   position: relative;
   cursor: help;
 }

 h4[title]:hover::after {
   content: attr(title);
   position: absolute;
   bottom: 35%;
   left: 50%;
   transform: translateX(-50%);
   background: #333;
   color: white;
   padding: 8px 12px;
   border-radius: 4px;
   white-space: nowrap;
   z-index: 1000;
   font-size: 14px;
   font-weight: normal;
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
 }

 h4[title]:hover::before {
   content: '';
   position: absolute;
   bottom: 100%;
   left: 50%;
   transform: translateX(-50%) translateY(100%);
   border: 5px solid transparent;
   border-top-color: #333;
   z-index: 1000;
 }

 /* 🆕 制限メッセージのスタイル */
 .limit-warning {
   background: #fff3cd;
   border: 1px solid #ffeaa7;
   border-radius: 8px;
   padding: 16px;
   margin: 0 0 16px 0;
   text-align: center;
   animation: slideDown 0.3s ease-out;
 }

 @keyframes slideDown {
   from {
     opacity: 0;
     transform: translateY(-10px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 .limit-warning h4 {
   color: #856404;
   margin: 0 0 8px 0;
   font-size: 1.1rem;
   font-weight: 600;
 }

 .limit-warning p {
   color: #856404;
   margin: 4px 0;
   font-size: 0.9rem;
   line-height: 1.4;
 }

 .limit-warning .primary-button {
   margin-top: 12px;
   background: #007bff;
   color: white;
   border: none;
   padding: 8px 16px;
   border-radius: 4px;
   cursor: pointer;
   font-size: 0.9rem;
   transition: background-color 0.2s;
 }

 .limit-warning .primary-button:hover {
   background: #0056b3;
 }

 .alert-warning {
   background-color: #fff3cd;
   border-color: #ffeaa7;
   color: #856404;
   border: 1px solid transparent;
   border-radius: 4px;
 }

 /* 🆕 制限警告メッセージのスタイル */
 .limit-warning {
   background: #fff3cd;
   border: 1px solid #ffeaa7;
   border-radius: 8px;
   padding: 16px;
   margin-bottom: 20px;
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
 }

 .limit-warning h4 {
   color: #856404;
   margin: 0 0 12px 0;
   font-size: 1.1rem;
   display: flex;
   align-items: center;
   gap: 8px;
 }

 .limit-warning p {
   color: #856404;
   margin: 8px 0;
   line-height: 1.5;
 }

 .limit-actions {
   display: flex;
   gap: 12px;
   margin-top: 16px;
 }

 .limit-actions .btn {
   padding: 8px 16px;
   border: none;
   border-radius: 4px;
   font-size: 0.9rem;
   cursor: pointer;
   transition: all 0.2s ease;
 }

 .limit-actions .btn-primary {
   background: #007bff;
   color: white;
 }

 .limit-actions .btn-primary:hover {
   background: #0056b3;
 }

 .limit-actions .btn-secondary {
   background: #6c757d;
   color: white;
 }

 .limit-actions .btn-secondary:hover {
   background: #545b62;
 }

 /* アニメーション効果 */
 .limit-warning {
   animation: slideIn 0.3s ease-out;
 }

 @keyframes slideIn {
   from {
     opacity: 0;
     transform: translateY(-10px);
   }

   to {
     opacity: 1;
     transform: translateY(0);
   }
 }

 /* レスポンシブ対応 */
 @media (max-width: 768px) {
   .limit-actions {
     flex-direction: column;
   }

   .limit-actions .btn {
     width: 100%;
   }
 }

 .task-edit-restriction {
   background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
   border: 1px solid #ffa502;
   border-radius: 8px;
   padding: 16px;
   margin: 16px 0;
   box-shadow: 0 2px 4px rgba(255, 165, 2, 0.1);
 }

 .task-edit-restriction .restriction-header {
   display: flex;
   align-items: center;
   margin-bottom: 12px;
 }

 .task-edit-restriction .restriction-icon {
   font-size: 20px;
   margin-right: 8px;
 }

 .task-edit-restriction .restriction-title {
   font-weight: bold;
   color: #d35400;
   font-size: 16px;
 }

 .task-edit-restriction .restriction-details {
   color: #d35400;
   margin-bottom: 16px;
 }

 .task-edit-restriction .restriction-details p {
   margin: 4px 0;
 }

 .task-edit-restriction .restriction-details strong {
   color: #e74c3c;
 }

 .task-edit-restriction .upgrade-button {
   background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
   color: white;
   border: none;
   padding: 8px 16px;
   border-radius: 4px;
   cursor: pointer;
   font-weight: bold;
   transition: all 0.3s ease;
 }

 .task-edit-restriction .upgrade-button:hover {
   background: linear-gradient(135deg, #2980b9 0%, #1f618d 100%);
 }

 /* SP表示時にタスク詳細タブが表示されている場合、ページ下部に余白を追加して重なりを防止 */
 @media screen and (max-width: 768px) {
   body:has(.task-detail-area.visible) {
     padding-bottom: 60px;
     /* tab-buttonsのおおよその高さ */
   }

   /* アコーディオンコンテンツが画面下部に固定されるように調整 */
   .controls-accordion-content.open {
     position: sticky;
     /* fixed → sticky */
     bottom: 0;
     left: 0;
     right: 0;
     background-color: #f5f5f5;
     z-index: 100;
     box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
     border-top: 1px solid #ddd;
     max-height: none;
     /* 高さ制限を解除 */
     overflow: visible;
   }

   /* タスク詳細タブが表示されている場合は、アコーディオンの位置をタブの上に調整 */
   body:has(.task-detail-area.visible) .controls-accordion-content.open {
     bottom: 50px;
     /* tab-buttonsのおおよその高さ */
   }
 }

 /* 制限時の入力フィールド */
 input:disabled,
 textarea:disabled,
 select:disabled {
   background-color: #f8f9fa !important;
   color: #6c757d !important;
   cursor: not-allowed !important;
 }

 button:disabled {
   opacity: 0.5 !important;
   cursor: not-allowed !important;
 }

 /* 削除ボタンは制限時も有効 */
 .delete-button-enabled {
   opacity: 1 !important;
   cursor: pointer !important;
 }

 /* SPモード用の編集ボタンスタイル */
 .edit-task-button-sp {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   background-color: transparent;
   border: 1px solid transparent;
   border-radius: 4px;
   padding: 4px 8px;
   margin-left: 5px;
   cursor: pointer;
   font-size: 14px;
   transition: all 0.2s ease;
 }

 .edit-task-button-sp:hover {
   background-color: transparent;
 }

 @media screen and (max-width: 767px) {
   .edit-task-button-sp {
     padding: 6px 10px;
     font-size: 16px;
   }
 }

 .edit-task-button-sp:hover {
   background-color: transparent;
 }

 @media screen and (max-width: 767px) {
   .edit-task-button-sp {
     padding: 6px 10px;
     font-size: 16px;
   }
 }

 /* タブコンテンツの閉じるボタン */
 .tab-content-close-btn {
   position: absolute;
   top: 10px;
   right: 10px;
   width: 32px;
   height: 32px;
   border-radius: 50%;
   background-color: #f5f5f5;
   border: 1px solid #ddd;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 16px;
   color: #666;
   cursor: pointer;
   z-index: 10;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
 }

 .tab-content-close-btn:hover {
   background-color: #e0e0e0;
   color: #333;
 }

 /* SP表示時のみ表示 */
 @media screen and (min-width: 769px) {
   .tab-content-close-btn {
     display: none;
   }
 }

 /* タブコンテンツのスクロール改善 */
 @media screen and (max-width: 768px) {
   .tab-content {
     position: relative;
     /* 閉じるボタンの基準位置 */
     overflow-y: auto !important;
     /* スクロールを有効に */
     -webkit-overflow-scrolling: touch;
     /* iOSでのスムーズなスクロール */
     padding-top: 15px !important;
     /* 閉じるボタン用の余白 */
   }

   .tab-contents.active {
     overflow-y: auto !important;
   }
 }

 /* タブコンテンツの閉じるボタンのスタイル改善 */
 .tab-content-close-btn {
   position: absolute;
   top: 10px;
   right: 10px;
   width: 32px;
   height: 32px;
   border-radius: 50%;
   background-color: rgba(240, 240, 240, 0.9);
   border: 1px solid #ccc;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 18px;
   color: #555;
   cursor: pointer;
   z-index: 1000;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
   transition: all 0.2s ease;
 }

 .tab-content-close-btn:hover {
   background-color: rgba(220, 220, 220, 0.95);
   color: #333;
   transform: scale(1.05);
 }

 /* PC表示では必要に応じて非表示にする */
 @media screen and (min-width: 769px) {
   .tab-content:not(:hover) .tab-content-close-btn {
     opacity: 0.4;
   }
 }

 /* SP表示時のタブコンテンツの位置調整 */
 @media screen and (max-width: 768px) {
   .tab-content {
     position: relative;
     padding-top: 40px;
     /* 閉じるボタンのスペースを確保 */
   }

   .tab-contents.active {
     z-index: 1000;
   }

   /* タブコンテンツが表示されている時のスクロール調整 */
   body:has(.tab-contents.active) {
     overflow: hidden;
   }

   .tab-contents.active .tab-content.active {
     overflow-y: auto;
     max-height: 80vh;
   }
 }

 /* 新規・編集タスクモーダル内のQuillエディタ入力欄をさらに拡大 */
 #taskModal .editor-container,
 #editTaskModal .editor-container,
 #taskModal .editor-container.expanded,
 #editTaskModal .editor-container.expanded {
   min-height: 280px;
   height: 630px;
   max-height: 880px;
 }

 @media (max-width: 768px) {
   .modal-close-btn.sp-only {
     position: absolute;
     top: 12px;
     right: 12px;
     width: 36px;
     height: 36px;
     border-radius: 50%;
     background: #f5f5f5;
     border: 1px solid #ddd;
     font-size: 22px;
     color: #666;
     cursor: pointer;
     z-index: 2100;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
     transition: background 0.2s;
   }

   .modal-close-btn.sp-only:hover {
     background: #e0e0e0;
     color: #333;
   }
 }

 #savingIndicator {
   display: none;
   position: fixed;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   z-index: 3000;
   background: rgba(255, 255, 255, 0.95);
   padding: 32px 24px;
   border-radius: 12px;
   box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
   font-size: 1.4em;
   color: #333;
   text-align: center;
   max-width: 90vw;
   min-width: 200px;
   word-break: break-word;
   overflow-wrap: break-word;
   box-sizing: border-box;
 }

 @media (max-width: 768px) {
   #savingIndicator {
     padding: 16px 8px;
     font-size: 1.1em;
     max-width: 96vw;
     min-width: 300px;
     border-radius: 8px;
     box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
   }
 }