/* ═══════════════════════════════════════
   MODALS
═══════════════════════════════════════ */
.modal-ov{
  display:none;position:fixed;inset:0;
  background:var(--overlay);backdrop-filter:blur(8px);
  z-index:500;align-items:flex-end;justify-content:center;
}
.modal-ov.open{display:flex;}
@media(min-width:768px){.modal-ov{align-items:center;}}

.modal{
  background:var(--bg2);
  border-radius:20px 20px 0 0;
  width:100%;max-width:600px;
  max-height:88vh;overflow-y:auto;
  padding:24px;border:1px solid var(--border);
  animation:modal-up .3s ease;
  padding-bottom:calc(24px + var(--safe-bottom));
}
@media(min-width:768px){.modal{border-radius:16px;padding-bottom:24px;max-width:520px;}}
@keyframes modal-up{from{transform:translateY(80px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ── Global desktop sidebar respect ──
   Every fixed/fullscreen element must start at left:260px on desktop. */
@media(min-width:768px){
  /* ALL overlays and full-screen pages — just offset sidebar */
  .modal-ov,
  .content-panel-ov,
  .sub-modal-ov,
  .settings-modal-ov,
  .act-browser-ov,
  .journal-ov,
  .fs-activity-ov,
  .rings-fs-ov,
  .author-panel-ov,
  .upgrade-prompt-ov {
    left:260px !important;
  }
  /* Floating panel overlays only — center their content */
  .modal-ov,
  .content-panel-ov,
  .sub-modal-ov,
  .settings-modal-ov,
  .author-panel-ov,
  .upgrade-prompt-ov {
    align-items:center !important;
    justify-content:center !important;
  }
  /* Floating modal cards */
  .modal,
  .sub-modal,
  .settings-modal,
  .author-panel,
  .upgrade-prompt-card {
    border-radius:16px !important;
    border:none !important;
    box-shadow:0 8px 48px rgba(0,0,0,.6) !important;
    margin:auto !important;
    scrollbar-width:none !important;
  }
  .modal{ width:min(560px, calc(100vw - 300px)) !important; max-height:85vh !important; }
  .sub-modal{ width:min(860px, calc(100vw - 300px)) !important; max-height:85vh !important; }
  .settings-modal{ width:min(780px, calc(100vw - 300px)) !important; max-height:85vh !important; }
  .author-panel{ width:min(560px, calc(100vw - 300px)) !important; max-height:85vh !important; }
  .upgrade-prompt-card{ padding-bottom:28px !important; }
}

.modal-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:700;color:var(--text);}
.modal-x{
  width:30px;height:30px;border-radius:50%;background:var(--bg3);
  border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:14px;color:var(--text2);transition:.2s;
}
.modal-x:hover{background:var(--border2);}

.dim-item{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);}
.dim-item:last-child{border-bottom:none;}
.dim-name{font-size:13px;font-weight:600;color:var(--text);flex:1;}
.dim-bar{width:110px;height:3px;background:var(--bg3);border-radius:2px;overflow:hidden;}
.dim-fill{height:100%;border-radius:2px;}
.dim-val{font-size:12px;font-weight:600;width:28px;text-align:right;}
.m-sec{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin:14px 0 8px;font-weight:600;}
.m-info{padding:12px;background:var(--bg3);border-radius:8px;font-size:12px;color:var(--text2);line-height:1.55;}

/* SHARE CARD */
.share-arch-card{
  background:linear-gradient(135deg,#0a0807,#1c0804);
  border-radius:14px;padding:24px;text-align:center;
  margin-bottom:18px;position:relative;overflow:hidden;
  border:1px solid rgba(196,61,26,.18);
}
.sac-bg{position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(196,61,26,.1),transparent 60%);}
.sac-c{position:relative;}
.sac-lbl{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent2);margin-bottom:8px;font-weight:600;}
.sac-name{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:900;color:#f0ebe1;margin-bottom:7px;}
.sac-quote{font-size:13px;color:rgba(240,235,225,.5);margin-bottom:14px;line-height:1.5;font-style:italic;}
.sac-stats{display:flex;justify-content:center;gap:22px;margin-bottom:14px;}
.sac-stat{text-align:center;}
.sac-sv{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:700;color:#f0ebe1;}
.sac-sl{font-size:9px;color:rgba(240,235,225,.35);letter-spacing:.08em;text-transform:uppercase;}
.sac-wm{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(240,235,225,.18);}
.share-opts{display:flex;gap:8px;flex-wrap:wrap;}
.so-btn{
  flex:1;min-width:80px;padding:11px 8px;border-radius:9px;
  border:1px solid var(--border2);background:var(--bg);
  color:var(--text2);font-family:'Outfit',sans-serif;font-size:12px;
  font-weight:500;cursor:pointer;transition:.2s;text-align:center;
}
.so-btn:hover{border-color:var(--accent2);color:var(--accent2);}

