/* Schedule - PREP */
:root {
  --color-primary: #5a189a;
  --color-secondary: #ffc300;
  --color-dark-purple: #3c096c;
  --color-background: #f4f7f9;
  --color-card-background: #ffffff;
  --color-text: #2d3748;
  --color-soft-gray: #718096;
  --color-light-gray: #e2e8f0;
  --color-success: #38a169;
  --color-error: #e53e3e;
  --bg-body: var(--color-background);
  --bg-glass-panel: rgba(255,255,255,0.55);
  --bg-glass-card: rgba(255,255,255,0.6);
  --bg-input: rgba(255,255,255,0.75);
  --glass-blur: blur(18px) saturate(180%);
  --border-glass: rgba(255,255,255,0.7);
  --border-color: rgba(192,192,192,0.5);
  --shadow-sm: 0 2px 8px rgba(90,24,154,0.06);
  --shadow-md: 0 8px 32px rgba(90,24,154,0.12), 0 2px 8px rgba(0,0,0,0.06);
  --shadow-lg: 0 16px 40px rgba(90,24,154,0.18), 0 4px 12px rgba(0,0,0,0.08);
  --font-family-sans: 'Poppins', system-ui, sans-serif;
  --font-family-logo: 'Montserrat', sans-serif;
  --border-radius-sm: 8px;
  --border-radius-md: 12px;
  --border-radius-pill: 50px;
  --transition-fast: 0.2s cubic-bezier(0.4,0,0.2,1);
}
body.dark {
  --bg-body: #050505;
  --bg-glass-panel: rgba(15,10,25,0.65);
  --bg-glass-card: rgba(20,15,35,0.6);
  --bg-input: rgba(30,25,45,0.75);
  --color-text: #f7fafc;
  --color-soft-gray: #a0aec0;
  --border-color: rgba(90,24,154,0.3);
  --border-glass: rgba(90,24,154,0.35);
  --color-secondary: #f6e05e;
  --color-card-background: #1a202c;
  --shadow-md: 0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(90,24,154,0.15);
}
*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:var(--font-family-sans);background:var(--bg-body);color:var(--color-text);min-height:100vh;margin:0;padding:0 0 80px;transition:background .3s,color .3s}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 20% 20%,rgba(90,24,154,0.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(255,195,0,0.08) 0%,transparent 60%);pointer-events:none;z-index:0}
body>*{position:relative;z-index:1}

/* CONTAINER */
.container{width:100%;padding:20px}

/* HEADER */
.header-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-bottom:16px;padding:12px 14px;border-radius:14px;border:1px solid rgba(90,24,154,0.18);background:rgba(255,255,255,0.92);box-shadow:0 6px 18px rgba(0,0,0,0.10);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s,box-shadow .2s}
.header-section:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,0.12)}
body.dark .header-section{background:rgba(20,20,20,0.92);border-color:rgba(255,255,255,0.12)}
#projectTitle{flex-grow:1;font-family:var(--font-family-logo);font-size:1.1rem;font-weight:700;color:var(--color-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.dark #projectTitle{color:white;text-shadow:0 0 10px rgba(90,24,154,0.6)}
.back-btn{background:var(--color-primary);color:white;border:none;font-size:1.1em;cursor:pointer;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}
.back-btn:hover{background:var(--color-dark-purple);transform:translateX(-3px)}
body.dark .back-btn:hover{color:#000;background:var(--color-secondary)}
.header-actions{display:flex;align-items:center;gap:10px}
.action-btn{background:var(--color-primary);color:white;border:none;font-size:.95rem;cursor:pointer;padding:10px 14px;min-height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;font-family:var(--font-family-sans);transition:all var(--transition-fast)}
.action-btn:hover{background:var(--color-dark-purple)}
body.dark .action-btn:hover{color:#000;background:var(--color-secondary)}
.secondary-action-btn{background:transparent;color:var(--color-primary);border:1px solid rgba(90,24,154,0.18);box-shadow:none}
.secondary-action-btn:hover{background:rgba(90,24,154,0.08)!important;color:var(--color-primary)!important}
body.dark .secondary-action-btn{color:var(--color-secondary);border-color:rgba(246,224,94,0.22)}
body.dark .secondary-action-btn:hover{background:rgba(246,224,94,0.10)!important;color:var(--color-secondary)!important}
.export-header-btn{background:linear-gradient(135deg,var(--color-secondary),#ffd60a);color:#3E1F47;border-radius:999px;box-shadow:0 2px 8px rgba(255,195,0,0.3);font-weight:600;padding:10px 16px}
.export-header-btn:hover{background:linear-gradient(135deg,#ffe066,#ffcd3c)!important;color:#240f44!important}

/* STATS BAR */
.stats-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:center;background:var(--bg-glass-card);border:1px solid var(--border-glass);padding:8px 10px;border-radius:12px;flex:1 1 260px;min-width:200px;color:var(--color-text);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
body.dark .stats-bar{background:var(--bg-glass-card);border-color:var(--border-glass)}
.stat-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.dark .stat-item{background:rgba(255,255,255,0.06);border-color:rgba(90,24,154,0.25)}
.stat-item i{font-size:1.1rem;color:var(--color-primary);background:linear-gradient(135deg,rgba(90,24,154,0.12),rgba(149,76,233,0.12));padding:8px;border-radius:8px}
body.dark .stat-item i{color:var(--color-secondary);background:rgba(246,224,94,0.1)}
.stat-info{display:flex;flex-direction:column}
.stat-item span{font-size:1.1rem;font-weight:700;color:var(--color-text);line-height:1.2}
.stat-item small{font-size:.7rem;color:var(--color-soft-gray);text-transform:uppercase;letter-spacing:.5px;font-weight:600}

/* VIEW SWITCHER */
.view-switcher{display:flex;gap:4px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;padding:3px}
.view-btn{width:34px;height:34px;border-radius:8px;border:none;background:transparent;color:var(--color-soft-gray);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all var(--transition-fast)}
.view-btn:hover{color:var(--color-primary)}
.view-btn.active{background:var(--color-primary);color:#fff}

/* SCHEDULE NAV */
.schedule-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:12px 14px;border-radius:12px;background:var(--bg-glass-panel);border:1px solid var(--border-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.nav-btn{background:var(--color-primary);color:white;border:none;cursor:pointer;width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}
.nav-btn:hover{background:var(--color-dark-purple);transform:scale(1.05)}
.schedule-title{margin:0;font-family:var(--font-family-logo);font-size:1rem;font-weight:600;color:var(--color-text);flex:0 0 auto;min-width:100px}
.today-btn{background:var(--color-success);color:white;border:none;cursor:pointer;padding:8px 16px;border-radius:8px;font-weight:600;font-size:.9rem;transition:all var(--transition-fast)}
.today-btn:hover{background:#319c5c}

.schedule-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-left:auto}
.filter-label{font-weight:600;font-size:.85rem;color:var(--color-soft-gray)}
.filter-select{padding:6px 10px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-input);color:var(--color-text);cursor:pointer;font-family:var(--font-family-sans);font-size:.9rem}

/* PRODUCTION OVERVIEW */
.production-overview{display:grid;grid-template-columns:1.4fr .9fr;gap:16px;padding:16px 18px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg, rgba(90,24,154,0.12), rgba(255,195,0,0.08));border:1px solid rgba(90,24,154,0.18);box-shadow:var(--shadow-md)}
.overview-main{display:flex;flex-direction:column;gap:10px}
.overview-badge{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:6px 10px;border-radius:999px;background:rgba(90,24,154,0.12);color:var(--color-primary);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.overview-main h3{margin:0;font-size:1.2rem;font-family:var(--font-family-logo);color:var(--color-text)}
.overview-main p{margin:0;color:var(--color-soft-gray);line-height:1.5;max-width:640px}
.overview-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.overview-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,0.8);border:1px solid rgba(90,24,154,0.12);color:var(--color-text);font-size:.84rem;font-weight:600}
body.dark .overview-chip{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.08)}
.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.overview-card{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px;border-radius:14px;background:rgba(255,255,255,0.75);border:1px solid rgba(255,255,255,0.7);backdrop-filter:blur(10px);min-height:92px}
body.dark .overview-card{background:rgba(20,20,20,0.7);border-color:rgba(255,255,255,0.06)}
.overview-label{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-soft-gray)}
.overview-card strong{font-size:1rem;color:var(--color-primary)}
body.dark .overview-card strong{color:var(--color-secondary)}
.overview-card small{color:var(--color-soft-gray);line-height:1.3}
.insight-panel{margin-bottom:16px}
.insight-card{padding:14px 16px;border-radius:16px;background:var(--color-card-background);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}
.insight-card-title{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:10px;color:var(--color-primary)}
.recommendation-list{display:grid;gap:8px;padding:0;margin:0;list-style:none}
.recommendation-list li{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:rgba(90,24,154,0.04);color:var(--color-text)}
.recommendation-list li i{color:var(--color-primary);margin-top:2px}

/* SCHEDULE WRAP */
.schedule-wrap{display:flex;flex-direction:column;gap:16px}
.empty-state-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:24px;border:1px dashed rgba(90,24,154,0.2);border-radius:16px;background:rgba(255,255,255,0.72);color:var(--color-text)}
.empty-state-card i{font-size:1.25rem;color:var(--color-primary)}
.empty-state-card h4{margin:0;font-size:1rem}
.empty-state-card p{margin:0;color:var(--color-soft-gray);line-height:1.5}
.day-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.priority-pill,.status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.priority-pill{background:rgba(90,24,154,0.08);color:var(--color-primary)}
.status-pill.planned{background:rgba(56,161,105,0.12);color:var(--color-success)}
.status-pill.tentative{background:rgba(255,195,0,0.16);color:#9b6a00}
.status-pill.locked{background:rgba(90,24,154,0.16);color:var(--color-primary)}

/* TIMELINE VIEW */
.timeline-view{display:flex;flex-direction:column;gap:0;border:1px solid var(--border-color);border-radius:12px;overflow:hidden;background:var(--color-card-background);box-shadow:var(--shadow-md)}
.timeline-cell--scheduled{background:linear-gradient(180deg, rgba(90,24,154,0.09), rgba(90,24,154,0.02));}
.timeline-cell--today{box-shadow:inset 0 0 0 1px rgba(255,195,0,0.45)}
.timeline-cell--heavy{background:linear-gradient(180deg, rgba(255,195,0,0.18), rgba(255,195,0,0.04));}
.timeline-cell--open{background:rgba(255,255,255,0.38)}
body.dark .timeline-cell--open{background:rgba(255,255,255,0.03)}
.timeline-header{display:flex;border-bottom:2px solid var(--border-color)}
.timeline-header-day{width:120px;padding:12px;background:var(--bg-glass-panel);font-weight:700;color:var(--color-primary);border-right:2px solid var(--border-color)}
.timeline-header-days{display:flex;flex:1}
.timeline-header-day-cell{flex:1;padding:12px;text-align:center;border-right:1px solid var(--border-color);font-weight:600;font-size:.9rem;background:var(--bg-glass-card)}
.timeline-header-day-cell:last-child{border-right:none}
.timeline-body{display:flex;flex-direction:column}
.timeline-row{display:flex;border-bottom:1px solid var(--border-color);min-height:60px}
.timeline-row:last-child{border-bottom:none}
.timeline-row-label{width:120px;padding:12px;border-right:2px solid var(--border-color);background:var(--bg-glass-panel);font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}
.timeline-row-cells{display:flex;flex:1}
.timeline-cell{flex:1;padding:8px;border-right:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;background:transparent;cursor:pointer;transition:background var(--transition-fast)}
.timeline-cell:hover{background:rgba(90,24,154,0.05)}
.timeline-cell:last-child{border-right:none}
.timeline-scene-badge{background:var(--color-primary);color:white;padding:2px 6px;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}
.timeline-scene-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(90,24,154,0.3)}

/* GRID VIEW */
.grid-view{overflow-x:auto}
.grid-table{width:100%;border-collapse:collapse;background:var(--color-card-background);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-md)}
.grid-table th{background:var(--bg-glass-panel);padding:14px;text-align:left;font-weight:700;border-bottom:2px solid var(--border-color);color:var(--color-primary);font-size:.9rem}
.grid-table td{padding:14px;border-bottom:1px solid var(--border-color);font-size:.9rem}
.grid-table tr:hover{background:rgba(90,24,154,0.03)}
.grid-table tr:last-child td{border-bottom:none}
.scene-count{display:inline-block;background:var(--color-secondary);color:#3E1F47;padding:2px 8px;border-radius:4px;font-weight:600;font-size:.8rem}
.location-tag{display:inline-block;background:rgba(90,24,154,0.15);color:var(--color-primary);padding:4px 8px;border-radius:6px;font-size:.85rem;margin:2px}

/* LIST VIEW */
.list-view{display:flex;flex-direction:column}
.list-filter-bar{display:flex;gap:8px;margin-bottom:16px;padding:8px;background:var(--bg-glass-panel);border-radius:10px}
.list-filter-btn{padding:8px 14px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--color-text);cursor:pointer;font-weight:600;transition:all var(--transition-fast)}
.list-filter-btn.active{background:var(--color-primary);color:white;border-color:var(--color-primary)}
.list-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}
.list-filter-btn.active:hover{color:white}
.list-body{display:flex;flex-direction:column;gap:12px}
.list-day-item{background:var(--color-card-background);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}
.list-day-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.list-day-header{display:flex;align-items:center;gap:12px;padding:14px;background:var(--bg-glass-panel);border-bottom:1px solid var(--border-color);cursor:pointer;}
.list-day-header:hover{background:var(--bg-glass-card)}
.list-day-date{font-weight:700;font-size:1.1rem;color:var(--color-primary);min-width:80px}
.list-day-location{color:var(--color-soft-gray);flex:1}
.list-day-times{color:var(--color-text);font-weight:600;font-size:.9rem}
.list-day-content{padding:12px 14px;display:none}
.list-day-item.expanded .list-day-content{display:block}
.list-scene-item{padding:10px;background:rgba(90,24,154,0.05);border-left:3px solid var(--color-primary);margin:6px 0;border-radius:4px;font-size:.9rem}
.list-scene-title{font-weight:600;color:var(--color-text)}
.list-scene-meta{color:var(--color-soft-gray);font-size:.85rem;margin-top:4px}

/* MODALS */
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.5);z-index:900;animation:fadeIn .2s ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-content{background:var(--color-card-background);border-radius:12px;max-width:600px;width:95%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.modal-small{max-width:400px}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color);background:var(--bg-glass-panel)}
.modal-header h3{margin:0;color:var(--color-primary);font-family:var(--font-family-logo);font-size:1.2rem}
.modal-close{background:none;border:none;font-size:1.8rem;cursor:pointer;color:var(--color-soft-gray);transition:color var(--transition-fast)}
.modal-close:hover{color:var(--color-primary)}
.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px;border-top:1px solid var(--border-color)}

/* FORM */
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-weight:600;color:var(--color-primary);font-size:.95rem}
.form-group input,.form-group textarea,.form-group select{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-input);color:var(--color-text);font-family:var(--font-family-sans);font-size:.9rem;transition:border-color var(--transition-fast)}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(90,24,154,0.1)}
.form-group input[type="time"],.form-group input[type="date"]{cursor:pointer}

/* BUTTONS */
.btn{padding:10px 16px;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-family:var(--font-family-sans);font-size:.95rem;transition:all var(--transition-fast)}
.btn-primary{background:var(--color-primary);color:white}
.btn-primary:hover{background:var(--color-dark-purple)}
.btn-secondary{background:var(--color-light-gray);color:var(--color-text)}
.btn-secondary:hover{background:var(--color-soft-gray);color:white}
.btn-danger{background:var(--color-error);color:white}
.btn-danger:hover{background:#c93030}
body.dark .btn-secondary{background:rgba(255,255,255,0.2)}
body.dark .btn-secondary:hover{background:rgba(255,255,255,0.3)}

/* SCENE DETAILS */
.scene-details{display:flex;flex-direction:column;gap:16px}
.detail-row{display:flex;gap:12px;border-bottom:1px solid var(--border-color);padding-bottom:10px}
.detail-row:last-child{border-bottom:none;padding-bottom:0}
.detail-row .label{font-weight:700;min-width:100px;color:var(--color-primary)}
.detail-row .value{flex:1;color:var(--color-text)}
.detail-row p{margin:0;line-height:1.5}

/* TOAST NOTIFICATION */
.toast-notification{position:fixed;bottom:20px;right:20px;background:var(--color-primary);color:white;padding:16px 20px;border-radius:8px;box-shadow:var(--shadow-lg);z-index:999;animation:slideIn .3s ease-out}
@keyframes slideIn{from{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}
.toast-notification.error{background:var(--color-error)}
.toast-notification.success{background:var(--color-success)}

/* RESPONSIVE */
@media (max-width:768px){
  .production-overview{grid-template-columns:1fr}
  .overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .header-section{flex-direction:column;align-items:flex-start}
  .header-actions{width:100%;flex-direction:column}
  .header-actions>*{width:100%}
  .schedule-nav{flex-direction:column;align-items:flex-start}
  .schedule-controls{width:100%;flex-direction:column}
  .schedule-controls>*{width:100%}
  .timeline-header-day,.timeline-row-label{width:80px;font-size:.8rem;padding:8px}
  .timeline-header-day-cell,.timeline-cell{padding:6px 4px;font-size:.8rem}
  .timeline-scene-badge{font-size:.7rem;padding:2px 4px}
  .grid-table{font-size:.85rem}
  .grid-table th,.grid-table td{padding:10px}
  .list-day-header{flex-wrap:wrap}
  .modal-content{width:98%;max-height:95vh}
}

/* ─── CONFLICT DETECTION ──────────────────────────────────────────────────── */

/* Conflict button in header */
.conflict-btn {
  background: rgba(90,24,154,0.08);
  color: var(--color-primary);
  border: 1.5px solid rgba(90,24,154,0.2);
  position: relative;
  gap: 6px;
}
.conflict-btn:hover {
  background: rgba(90,24,154,0.14) !important;
  color: var(--color-primary) !important;
}
.conflict-btn.has-conflicts {
  background: rgba(255,195,0,0.12);
  border-color: rgba(255,195,0,0.5);
  color: #9b6a00;
}
body.dark .conflict-btn.has-conflicts {
  background: rgba(255,195,0,0.1);
  color: var(--color-secondary);
}
.conflict-btn.has-critical {
  background: rgba(229,62,62,0.1);
  border-color: rgba(229,62,62,0.45);
  color: #c53030;
  animation: conflict-pulse 2s ease-in-out infinite;
}
body.dark .conflict-btn.has-critical {
  color: #fc8181;
}
@keyframes conflict-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(229,62,62,0.25); }
  50%       { box-shadow: 0 0 0 6px rgba(229,62,62,0); }
}

/* Badge counter on button */
.conflict-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--color-error);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1;
}

/* ─── Conflict side panel ─── */
.conflict-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 380px;
  max-width: 95vw;
  background: var(--color-card-background);
  border-left: 1px solid var(--border-color);
  box-shadow: -8px 0 32px rgba(0,0,0,0.15);
  z-index: 850;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.4,0,0.2,1);
  overflow: hidden;
}
.conflict-panel--open {
  transform: translateX(0);
}
body.dark .conflict-panel {
  box-shadow: -8px 0 32px rgba(0,0,0,0.5);
}

.conflict-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  background: var(--bg-glass-panel);
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.conflict-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-family-logo);
  font-weight: 700;
  font-size: 1rem;
  color: var(--color-primary);
}
body.dark .conflict-panel-title { color: var(--color-secondary); }
.conflict-panel-title i { color: inherit; }
.conflict-recheck-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-soft-gray);
  font-size: .95rem;
  padding: 4px 6px;
  border-radius: 6px;
  transition: all var(--transition-fast);
}
.conflict-recheck-btn:hover {
  background: rgba(90,24,154,0.08);
  color: var(--color-primary);
  transform: rotate(180deg);
}
.conflict-panel-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-soft-gray);
  font-size: 1.2rem;
  padding: 4px 6px;
  border-radius: 6px;
  transition: all var(--transition-fast);
}
.conflict-panel-close:hover { color: var(--color-error); }

/* Summary chips row */
.conflict-summary-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border-color);
  flex-shrink: 0;
}
.conflict-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.conflict-chip--critical { background: rgba(229,62,62,0.12); color: #c53030; }
.conflict-chip--warning  { background: rgba(255,195,0,0.18);  color: #9b6a00; }
.conflict-chip--info     { background: rgba(90,24,154,0.1);   color: var(--color-primary); }
.conflict-chip--clean    { background: rgba(56,161,105,0.12); color: var(--color-success); }
body.dark .conflict-chip--info  { color: var(--color-secondary); }
body.dark .conflict-chip--clean { color: #68d391; }

/* Scrollable list */
.conflict-list {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 12px 18px;
  padding-bottom: 32px;
}

/* Individual conflict item */
.conflict-item {
  padding: 12px 14px;
  border-radius: 12px;
  margin-bottom: 10px;
  border: 1px solid transparent;
  transition: box-shadow var(--transition-fast);
}
.conflict-item:hover { box-shadow: var(--shadow-sm); }
.conflict-item--critical {
  background: rgba(229,62,62,0.06);
  border-color: rgba(229,62,62,0.22);
}
.conflict-item--warning {
  background: rgba(255,195,0,0.07);
  border-color: rgba(255,195,0,0.3);
}
.conflict-item--info {
  background: rgba(90,24,154,0.05);
  border-color: rgba(90,24,154,0.15);
}
body.dark .conflict-item--critical { background: rgba(229,62,62,0.1); }
body.dark .conflict-item--warning  { background: rgba(255,195,0,0.08); }
body.dark .conflict-item--info     { background: rgba(90,24,154,0.12); }

.conflict-item-header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px;
}
.conflict-severity-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  margin-top: 1px;
}
.conflict-icon--critical { background: rgba(229,62,62,0.15); color: #c53030; }
.conflict-icon--warning  { background: rgba(255,195,0,0.2);  color: #9b6a00; }
.conflict-icon--info     { background: rgba(90,24,154,0.12); color: var(--color-primary); }
body.dark .conflict-icon--info { color: var(--color-secondary); }

.conflict-message {
  margin: 0;
  font-size: .88rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.45;
}
.conflict-suggestion {
  margin: 0 0 8px;
  font-size: .82rem;
  color: var(--color-soft-gray);
  line-height: 1.4;
  padding-left: 38px;
}
.conflict-suggestion i {
  margin-right: 4px;
  color: var(--color-secondary);
}
.conflict-goto-btn {
  margin-left: 38px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: transparent;
  color: var(--color-primary);
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
}
.conflict-goto-btn:hover {
  background: var(--color-primary);
  color: white;
  border-color: var(--color-primary);
}
body.dark .conflict-goto-btn { color: var(--color-secondary); }
body.dark .conflict-goto-btn:hover {
  background: var(--color-secondary);
  color: #1a1a1a;
  border-color: var(--color-secondary);
}

/* Empty state in panel */
.conflict-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 40px 20px;
  text-align: center;
  color: var(--color-soft-gray);
}
.conflict-empty i {
  font-size: 2rem;
  color: var(--color-success);
}
.conflict-empty p { margin: 0; font-size: .9rem; }

/* Highlight flash when navigating from conflict panel to a list item */
@keyframes conflict-highlight-flash {
  0%   { box-shadow: 0 0 0 3px rgba(229,62,62,0.6); background: rgba(229,62,62,0.06); }
  60%  { box-shadow: 0 0 0 6px rgba(229,62,62,0.15); }
  100% { box-shadow: none; background: transparent; }
}
.conflict-highlight {
  animation: conflict-highlight-flash 2.5s ease-out forwards;
}

/* Conflict indicator dot on timeline / grid cells */
.timeline-cell.has-conflict::after,
.grid-table tr.has-conflict td:first-child::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-error);
  margin-left: 4px;
  vertical-align: middle;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .conflict-panel { width: 100%; }
  .conflict-btn span { display: none; }
}
