/* NeuroPlan — Chat-First AI Planner */
* { box-sizing: border-box; }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }

/* Glass surfaces */
.modal-overlay { position:fixed; inset:0; z-index:40; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.6); backdrop-filter:blur(4px); animation:fadeIn .2s ease; }
.modal-overlay.hidden { display:none; }
.modal-glass { background:rgba(18,18,26,0.95); backdrop-filter:blur(24px); border:1px solid rgba(255,255,255,0.06); box-shadow:0 25px 50px rgba(0,0,0,0.5); }
.chat-input-glass { background:rgba(18,18,26,0.8); border:1px solid rgba(255,255,255,0.06); transition:border-color .2s; }
.chat-input-glass:focus-within { border-color:rgba(129,140,248,0.3); }

/* Chat bubbles */
.msg-user { background:rgba(129,140,248,0.12); border:1px solid rgba(129,140,248,0.15); }
.msg-ai { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.05); }

/* Task suggestion card in chat */
.task-suggestion {
  background: rgba(129,140,248,0.06);
  border: 1px solid rgba(129,140,248,0.15);
  border-left: 3px solid #818cf8;
  transition: all .2s ease;
}
.task-suggestion:hover { background: rgba(129,140,248,0.1); }

/* Task plan card in chat */
.task-plan-card {
  background: rgba(129,140,248,0.04);
  border: 1px solid rgba(129,140,248,0.12);
  border-left: 3px solid #a78bfa;
  transition: all .2s ease;
}
.task-plan-card:hover { background: rgba(129,140,248,0.08); }

/* Photo request card */
.photo-request-card {
  background: rgba(34,211,238,0.04);
  border: 1px solid rgba(34,211,238,0.15);
  border-left: 3px solid #22d3ee;
  transition: all .2s ease;
}
.photo-request-card:hover { background: rgba(34,211,238,0.08); }

/* Task card in sidebar */
.task-card {
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.04);
  transition: all .2s ease;
}
.task-card:hover { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.08); }

/* Sidebar tabs */
.view-tab { color: #64748b; border-bottom: 2px solid transparent; }
.view-tab:hover { color: #94a3b8; }
.view-tab.active { color: #a5b4fc; border-bottom-color: #818cf8; }

/* Checkbox */
.task-check {
  appearance:none; -webkit-appearance:none;
  position:relative;
  width:16px; height:16px; border:2px solid rgba(255,255,255,0.12);
  border-radius:4px; cursor:pointer; transition:all .2s; flex-shrink:0;
}
.task-check:hover { border-color:rgba(129,140,248,0.5); }
.task-check:checked { background:linear-gradient(135deg,#818cf8,#22d3ee); border-color:transparent; }
.task-check:checked::after { content:''; position:absolute; top:1px; left:4px; width:4px; height:8px; border:solid white; border-width:0 2px 2px 0; transform:rotate(45deg); }

/* Priority dots */
.pri-urgent { background:#f87171; }
.pri-high { background:#fb923c; }
.pri-medium { background:#818cf8; }
.pri-low { background:#475569; }

/* Animations */
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes slideUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes bounceIn { 0%{opacity:0;transform:scale(.3)} 50%{opacity:1;transform:scale(1.05)} 70%{transform:scale(.9)} 100%{transform:scale(1)} }
.animate-slide-up { animation:slideUp .3s ease; }
.animate-bounce-in { animation:bounceIn .6s ease; }

/* Toast */
.toast { animation:slideUp .3s ease; backdrop-filter:blur(12px); }
.toast-exit { animation:fadeOut .3s ease forwards; }
@keyframes fadeOut { to{opacity:0;transform:translateY(-10px)} }

/* Image in chat */
.chat-image { border-radius:12px; max-width:280px; max-height:200px; object-fit:cover; cursor:pointer; transition:transform .2s; }
.chat-image:hover { transform:scale(1.02); }

/* Image preview thumbnail */
.img-thumb { position:relative; }
.img-thumb-remove { position:absolute; top:-4px; right:-4px; width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,0.7); color:white; font-size:10px; display:flex; align-items:center; justify-content:center; cursor:pointer; border:1px solid rgba(255,255,255,0.1); }

/* Responsive */
@media(max-width:1023px) { #sidebar.open { transform:translateX(0); } }

select option { background:#12121a; color:#e2e8f0; }
input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(.7); cursor:pointer; }

/* Message action buttons */
.msg-actions { transition: opacity 0.15s ease; }
@media (hover: none) { .msg-actions { opacity: 0.5 !important; } }

/* Subtask progress bar in sidebar */
.subtask-progress { transition: width 0.4s ease; }

/* Task plan subtask list in chat */
.plan-subtask-item { transition: background 0.15s ease; }
.plan-subtask-item:hover { background: rgba(255,255,255,0.02); }

/* Confirm dialog overlay */
.confirm-overlay {
  position: fixed; inset: 0; z-index: 50;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.7); backdrop-filter: blur(4px);
  animation: fadeIn 0.15s ease;
}

/* Memory indicator dot */
.memory-dot { width: 6px; height: 6px; border-radius: 50%; background: #a78bfa; display: inline-block; }
