/* Plan Viewer */
.plan-topbar{
  display:flex;align-items:center;gap:16px;
  padding:16px clamp(20px,3vw,32px);
  background:var(--bg-mid);border-bottom:1px solid var(--glass-border);
  position:sticky;top:0;z-index:10;
}
.plan-topbar-title{
  font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:600;
  flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.plan-topbar-actions{display:flex;gap:8px}
.plan-frame-wrap{
  max-width:1200px;margin:0 auto;padding:clamp(16px,3vw,32px);
}
.plan-frame{
  width:100%;border:none;border-radius:var(--radius-xl);
  background:white;min-height:600px;
  box-shadow:0 8px 40px rgba(0,0,0,.3);
}
.plan-floating-actions{
  position:fixed;bottom:24px;right:24px;
  display:flex;gap:10px;z-index:20;
}
.plan-fab{
  padding:12px 24px;border-radius:var(--radius-pill);
  background:var(--rose);color:white;border:none;
  font-size:.85rem;font-weight:600;
  box-shadow:0 4px 20px rgba(224,87,128,.4);
  transition:all .3s;display:flex;align-items:center;gap:8px;
}
.plan-fab:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(224,87,128,.5)}

@media(max-width:768px){
  .plan-topbar{padding:12px 16px}
  .plan-frame-wrap{padding:0}
  .plan-frame{border-radius:0}
  .plan-floating-actions{bottom:80px;right:16px}
}

/* Modal */
.modal-overlay{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,.7);backdrop-filter:blur(4px);
  z-index:100;display:none;align-items:center;justify-content:center;
  padding:20px;
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--bg-mid);border:1px solid var(--glass-border);
  border-radius:var(--radius-xl);padding:clamp(28px,4vw,40px);
  max-width:480px;width:100%;max-height:90vh;overflow-y:auto;
  animation:fadeIn .3s ease;
}
.modal-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:24px;
}
.modal-header h3{font-family:'Playfair Display',serif;font-size:1.2rem}
.modal-close{
  width:36px;height:36px;border-radius:50%;
  background:var(--glass);border:1px solid var(--glass-border);
  color:var(--text-muted);display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:1rem;transition:all .2s;
}
.modal-close:hover{background:rgba(255,255,255,.1);color:white}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}
