/* ═══════════════════════════════════════════════════════════
   NearStanford.com — Trip Plan System (Shared)
   ═══════════════════════════════════════════════════════════
   Include on every guide page AFTER guide-styles.css:
   <link rel="stylesheet" href="/guides/shared/trip-plan.css"/>
   ═══════════════════════════════════════════════════════════ */

/* ── Save Button (on each activity card) ── */
.save-btn{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.92);backdrop-filter:blur(4px);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:all .2s;z-index:5}
.save-btn:hover{transform:scale(1.12);background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.18)}
.save-btn svg{width:20px;height:20px;transition:all .2s}
.save-btn .heart-outline{color:#94a3b8}
.save-btn .heart-filled{display:none;color:#ef4444}
.save-btn.saved .heart-outline{display:none}
.save-btn.saved .heart-filled{display:block}
.save-btn.saved{background:#fef2f2;box-shadow:0 2px 8px rgba(239,68,68,.2)}

/* Pulse animation on save */
@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
.save-btn.just-saved svg{animation:heartPop .3s ease-out}

/* "Saved!" toast next to heart */
.save-toast{position:absolute;top:12px;right:54px;background:#065f46;color:#fff;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:8px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}
.save-toast.show{opacity:1}


/* ── Floating Trip Plan FAB ── */
.trip-fab{position:fixed;bottom:28px;right:28px;display:flex;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;border:none;background:linear-gradient(135deg,#1e40af 0%,#3b82f6 100%);color:#fff;font-size:.92rem;font-weight:700;cursor:pointer;box-shadow:0 6px 24px rgba(30,64,175,.35);transition:all .2s;z-index:100}
.trip-fab:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(30,64,175,.45)}
.trip-fab svg{width:20px;height:20px}
.trip-fab .fab-count{background:rgba(255,255,255,.25);padding:2px 8px;border-radius:999px;font-size:.8rem;margin-left:2px}
.trip-fab.empty{opacity:.7;pointer-events:none}


/* ── Slide-out Trip Panel ── */
.trip-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;opacity:0;pointer-events:none;transition:opacity .25s}
.trip-overlay.open{opacity:1;pointer-events:auto}
.trip-panel{position:fixed;top:0;right:-420px;width:400px;max-width:90vw;height:100vh;background:#fff;z-index:201;box-shadow:-4px 0 24px rgba(0,0,0,.12);transition:right .3s ease;display:flex;flex-direction:column}
.trip-panel.open{right:0}
.trip-panel-header{padding:20px 24px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}
.trip-panel-header h3{font-size:1.1rem;font-weight:800;color:#0f172a;display:flex;align-items:center;gap:8px}
.trip-close{width:32px;height:32px;border-radius:8px;border:none;background:#f1f5f9;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;color:#64748b;transition:background .15s}
.trip-close:hover{background:#e2e8f0}
.trip-panel-body{flex:1;overflow-y:auto;padding:16px 24px}
.trip-empty{text-align:center;padding:40px 20px;color:#94a3b8}
.trip-empty svg{width:48px;height:48px;color:#cbd5e1;margin-bottom:12px}
.trip-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #f1f5f9}
.trip-item:last-child{border-bottom:none}
.trip-item-info{flex:1}
.trip-item-name{font-weight:700;font-size:.9rem;color:#0f172a;line-height:1.3}
.trip-item-meta{font-size:.78rem;color:#64748b;margin-top:2px}
.trip-item-summary{font-size:.78rem;color:#64748b;margin-top:4px;line-height:1.45}
.trip-item-remove{width:28px;height:28px;border-radius:6px;border:none;background:none;cursor:pointer;color:#94a3b8;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.trip-item-remove:hover{background:#fef2f2;color:#ef4444}
.trip-panel-footer{padding:16px 24px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px}
.trip-panel-footer button{width:100%;padding:12px;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .15s}
.btn-email-trip{background:#1e40af;color:#fff;border:none}
.btn-email-trip:hover{background:#1e3a8a}
.btn-print-trip{background:#fff;color:#334155;border:1px solid #e2e8f0}
.btn-print-trip:hover{background:#f8fafc}
.btn-clear-trip{background:none;color:#94a3b8;border:none;font-size:.82rem;font-weight:600;padding:8px}
.btn-clear-trip:hover{color:#ef4444}


/* ── Email Modal ── */
.email-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:300;display:none;align-items:center;justify-content:center}
.email-modal-overlay.open{display:flex}
.email-modal{background:#fff;border-radius:16px;padding:28px;max-width:400px;width:90%;box-shadow:0 12px 40px rgba(0,0,0,.15)}
.email-modal h4{font-size:1.05rem;font-weight:800;margin-bottom:12px;color:#0f172a}
.email-modal input[type="email"]{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:10px;font-size:.9rem;outline:none;margin-bottom:8px}
.email-modal input[type="email"]:focus{border-color:#3b82f6}
.email-modal label{display:flex;align-items:flex-start;gap:8px;font-size:.82rem;color:#64748b;margin-bottom:14px;cursor:pointer}
.email-modal label input{margin-top:2px}
.email-modal-btns{display:flex;gap:8px;justify-content:flex-end}
.email-modal-btns button{padding:10px 18px;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer}
.email-cancel{border:1px solid #ddd;background:#fff;color:#475569}
.email-send{border:none;background:#1e40af;color:#fff}


/* ── Print: hide trip plan UI ── */
@media print{
  .save-btn,.save-toast,.trip-fab,.trip-overlay,.trip-panel,.email-modal-overlay{display:none!important}
}
