/* ============================================================
   FlipMap - modals.css
   Reuses abyssal-engine's .modal-overlay / .modal-box /
   .confirm-panel pattern so users see consistent dialog chrome.
   ============================================================ */

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:10500;display:flex;align-items:center;justify-content:center;animation:modalFadeIn 0.15s ease;padding:1em;}
@keyframes modalFadeIn{from{opacity:0;}to{opacity:1;}}
.modal-box{background:var(--bg-dark);border:1px solid var(--border-thin);border-radius:var(--radius-lg);padding:1.4em 1.8em;max-width:560px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-high);}
.modal-box h3{font-size:1.15em;border-bottom:1px solid var(--border-thin);padding-bottom:0.4em;margin-bottom:0.9em;}
.modal-box .form-group{margin-bottom:0.9em;}
.modal-actions{display:flex;justify-content:flex-end;gap:0.5em;margin-top:1.2em;padding-top:0.8em;border-top:1px solid var(--border-thin);}

/* Confirm panel - matches abyssal-engine's .confirm-panel style */
.confirm-panel{background:var(--bg-dark);border:1px solid var(--border-thin);border-radius:var(--radius-lg);padding:1.4em 1.6em;max-width:440px;width:100%;box-shadow:var(--shadow-high);}
.confirm-panel h3{color:var(--text-primary);font-size:1.1em;margin-bottom:0.6em;}
.confirm-panel p{color:var(--text-muted);font-size:0.92em;margin-bottom:1.2em;}

/* Admin settings panel - wide variant for the admin cog */
.admin-settings-panel{max-width:760px;}
.admin-settings-panel .panel-section{margin-bottom:1.4em;padding-bottom:1em;border-bottom:1px solid var(--border-thin);}
.admin-settings-panel .panel-section:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0;}
.admin-settings-panel .panel-section h4{font-family:var(--font-display);font-size:0.85em;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-abyssal);margin-bottom:0.7em;}

/* Sync status log */
.sync-status{background:var(--bg-darkest);border:1px solid var(--border-thin);border-radius:var(--radius-sm);padding:0.7em 0.9em;font-family:var(--font-code);font-size:0.78em;color:var(--text-muted);max-height:240px;overflow-y:auto;white-space:pre-wrap;}
.sync-status.sync-running{border-color:var(--accent-blue);color:var(--accent-cyan);}
.sync-status.sync-ok{border-color:var(--accent-green);}
.sync-status.sync-fail{border-color:var(--accent-red);color:#ffb3b5;}

/* User mgmt table inside admin panel */
.user-table{width:100%;font-size:0.82em;border-collapse:collapse;}
.user-table th{font-family:var(--font-display);font-size:0.7em;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-faint);text-align:left;padding:0.5em 0.6em;border-bottom:1px solid var(--border-thin);}
.user-table td{padding:0.6em;border-bottom:1px solid var(--border-thin);}
.user-table tr:last-child td{border-bottom:none;}
.user-table .uname{color:var(--text-primary);font-weight:600;}
.user-table .uid{font-family:var(--font-code);font-size:0.85em;color:var(--text-faint);}
.user-table .count{font-family:var(--font-code);color:var(--accent-cyan);font-size:0.85em;}
.user-table .row-disabled{opacity:0.5;}
.user-table .btn-mini{padding:0.25em 0.55em;font-size:0.65em;}

/* Release notes panel */
.release-notes-panel{max-width:640px;}
.release-entry{margin-bottom:0.6em;}
.release-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.2em;}
.release-version{font-family:var(--font-display);font-size:1.0em;color:var(--accent-abyssal);font-weight:700;letter-spacing:0.06em;}
.release-date{font-family:var(--font-code);font-size:0.75em;color:var(--text-faint);}
.release-title{font-family:var(--font-display);font-size:0.95em;color:var(--text-primary);margin-bottom:0.5em;letter-spacing:0.04em;}
.release-notes{margin:0 0 0.5em 1.2em;padding:0;list-style:disc outside;}
.release-notes li{margin-bottom:0.3em;font-size:0.88em;color:var(--text-secondary);line-height:1.5;}

/* ============================================================
   Right-click context menu (map_actions.cog.js)
   ============================================================ */
.ctx-menu{
  position:fixed;
  min-width:220px;
  background:var(--bg-dark);
  border:1px solid var(--border-thin);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-high);
  padding:0.35em 0;
  z-index:11000;
  animation:modalFadeIn 0.08s ease;
}
.ctx-item{
  display:flex;align-items:center;gap:0.7em;
  width:100%;padding:0.55em 0.95em;
  background:transparent;border:none;
  color:var(--text-secondary);
  font-family:var(--font-body);font-size:0.92em;
  text-align:left;cursor:pointer;
  transition:background 0.08s;
}
.ctx-item:hover{background:var(--bg-hover);color:var(--text-primary);}
.ctx-item i{width:1em;text-align:center;color:var(--text-faint);}
.ctx-item:hover i{color:var(--accent-abyssal);}
.ctx-sep{height:1px;background:var(--border-thin);margin:0.3em 0;}

/* ============================================================
   Page-view modal (iframe wrapper for wiki / Paizo pages)
   ============================================================ */
.page-view-panel{max-width:90vw;width:90vw;max-height:90vh;padding:1em 1em 0.8em;display:flex;flex-direction:column;}
.page-view-bar{display:flex;align-items:center;gap:0.6em;margin-bottom:0.5em;}
.page-view-url{flex:1;font-family:var(--font-code);font-size:0.78em;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.page-view-frame{flex:1;width:100%;min-height:70vh;border:1px solid var(--border-thin);border-radius:var(--radius-sm);background:#fff;}
.page-view-hint{margin:0.5em 0 0;font-size:0.72em;color:var(--text-faint);text-align:center;}

/* ============================================================
   Edit-image modal (admin)
   ============================================================ */
.edit-image-panel{max-width:640px;}
.edit-image-current{display:flex;gap:1em;align-items:flex-start;background:var(--bg-darkest);border:1px solid var(--border-thin);border-radius:var(--radius-sm);padding:0.7em;}
.edit-image-current img{width:120px;height:120px;object-fit:cover;border-radius:var(--radius-sm);background:#000;flex-shrink:0;}
.edit-image-meta{flex:1;min-width:0;font-size:0.82em;}
.meta-line{display:flex;gap:0.5em;margin-bottom:0.25em;}
.meta-key{font-family:var(--font-display);text-transform:uppercase;letter-spacing:0.08em;font-size:0.78em;color:var(--text-faint);width:5.5em;flex-shrink:0;}
.meta-val{flex:1;min-width:0;color:var(--text-secondary);word-break:break-all;}
.meta-val.mono{font-family:var(--font-code);font-size:0.85em;}

.src-row{display:flex;gap:0.4em;margin-bottom:0.4em;}
.src-row input{flex:1;}
.btn-mini{padding:0.25em 0.55em;font-size:0.7em;}
#ei-file{display:block;width:100%;padding:0.5em 0;color:var(--text-secondary);font-family:var(--font-body);font-size:0.88em;}

/* Toast (transient feedback) */
.toast-stack{position:fixed;bottom:6em;right:1.5em;z-index:11000;display:flex;flex-direction:column;gap:0.5em;}
.toast{background:var(--bg-dark);border:1px solid var(--border-thin);border-left:4px solid var(--accent-abyssal);border-radius:var(--radius-sm);padding:0.7em 1em;font-size:0.85em;color:var(--text-primary);box-shadow:var(--shadow-med);min-width:240px;animation:toastIn 0.2s ease;}
.toast-ok{border-left-color:var(--accent-green);}
.toast-err{border-left-color:var(--accent-red);}
@keyframes toastIn{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
