/* Focuses & Assets section — used inside Account Settings */

.fm-section {
  margin-bottom: 1.75rem;
  padding: 1.5rem;
  background: var(--color-overlay-white-3);
  border: 1px solid var(--color-border-white-6);
  border-radius: 12px;
}
.fm-section .section-header { display:flex; align-items:center; gap:.5rem; margin-bottom:1.25rem; }
.fm-section .section-header svg { color: var(--color-brand-red); flex-shrink:0; }
.fm-section .section-title { font-size:1rem; font-weight:600; color: var(--color-text-heading); margin:0; }

.fm-toolbar { display:flex; gap:.5rem; align-items:center; margin-bottom:1rem; flex-wrap:wrap; }
.fm-toolbar input[type="search"] {
  flex:1; min-width:160px;
  background: var(--color-overlay-black-30);
  border: 1px solid var(--color-border-white-10);
  color: var(--color-text-heading);
  padding: .45rem .65rem; border-radius:8px; font-size:.8rem;
}
.fm-toolbar select {
  background: var(--color-overlay-black-30);
  border: 1px solid var(--color-border-white-10);
  color: var(--color-text-heading);
  padding: .4rem .55rem; border-radius:8px; font-size:.8rem;
}
.fm-toolbar .btn { white-space: nowrap; }

.fm-list { display:flex; flex-direction:column; gap:.5rem; }
.fm-row {
  background: var(--color-overlay-black-25);
  border: 1px solid var(--color-overlay-white-8);
  border-radius: 10px;
  padding: .7rem .85rem;
  display:flex; align-items:center; gap:.75rem;
  transition: border-color .15s;
}
.fm-row:hover { border-color: var(--color-brand-red-40); }
.fm-row.fm-paused { opacity: .7; }
.fm-row-main { flex:1; min-width:0; }
.fm-row-name {
  display:flex; align-items:center; gap:.4rem;
  color: var(--color-text-heading); font-weight:600; font-size:.85rem;
  margin-bottom: 2px;
}
.fm-row-name .fm-pill {
  font-size:.6rem; padding:1px 6px; border-radius:9999px; font-weight:600;
  text-transform: uppercase; letter-spacing:.5px;
}
.fm-pill-paused { background: var(--color-overlay-white-8); color: var(--color-text-muted); }
.fm-pill-global { background: var(--color-info-border); color: var(--color-info-lighter); }
.fm-row-meta { color: var(--color-text-muted); font-size:.72rem; display:flex; gap:.6rem; flex-wrap:wrap; }
.fm-row-actions { display:flex; gap:.35rem; flex-shrink:0; }
.fm-row-actions button {
  background: transparent; border: 1px solid var(--color-overlay-white-8);
  color: var(--color-text-muted); padding: .35rem .55rem; border-radius: 6px;
  font-size:.72rem; cursor:pointer; display:inline-flex; align-items:center; gap:4px;
}
.fm-row-actions button:hover { color: var(--color-text-heading); border-color: var(--color-brand-red-40); }
.fm-row-actions button.fm-danger:hover { color: var(--color-impact-critical-text); border-color: var(--color-impact-critical-border); }

.fm-empty {
  text-align:center; padding: 2rem 1rem;
  color: var(--color-text-muted); font-size:.85rem;
  border: 1px dashed var(--color-overlay-white-8); border-radius:10px;
}
.fm-empty .fm-empty-title { color: var(--color-text-heading); font-weight:600; margin-bottom:.4rem; }
.fm-skeleton { height: 56px; background: var(--color-overlay-white-3); border-radius: 10px; animation: fm-pulse 1.4s ease-in-out infinite; }
@keyframes fm-pulse { 0%,100% { opacity: .5 } 50% { opacity: .9 } }

/* Tier upgrade gate */
.fm-upgrade-gate {
  text-align:center; padding: 2rem 1rem;
  border: 1px dashed var(--color-brand-red-40); border-radius: 10px;
  background: var(--color-overlay-black-25);
}
.fm-upgrade-gate h4 { color: var(--color-text-heading); margin: 0 0 .5rem 0; font-size: 1rem; }
.fm-upgrade-gate p { color: var(--color-text-muted); font-size: .8rem; margin: 0 0 1rem 0; }

/* Detail panel (right-side drawer) */
.fm-drawer-overlay {
  position: fixed; inset: 0; background: var(--color-overlay-black-55);
  display: none; z-index: 9000;
}
.fm-drawer-overlay.open { display: block; }
.fm-drawer {
  position: fixed; top:0; right:0; height:100vh; width: min(560px, 96vw);
  background: var(--color-bg-card-3);
  border-left: 1px solid var(--color-overlay-white-8);
  box-shadow: -8px 0 24px var(--color-overlay-black-40);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .25s ease;
  z-index: 9001;
}
.fm-drawer-overlay.open .fm-drawer { transform: translateX(0); }
.fm-drawer-header {
  display:flex; align-items:center; gap:.75rem;
  padding: 1rem 1.25rem; border-bottom: 1px solid var(--color-overlay-white-8);
}
.fm-drawer-title { flex:1; min-width:0; font-size:1rem; font-weight:600; color: var(--color-text-heading); }
.fm-drawer-close {
  background:transparent; border:0; color: var(--color-text-muted);
  font-size:1.25rem; cursor:pointer; padding:.25rem .5rem; line-height:1;
}
.fm-drawer-close:hover { color: var(--color-text-heading); }

.fm-tabs { display:flex; gap: 4px; padding: 0 1rem; border-bottom: 1px solid var(--color-overlay-white-8); overflow-x:auto; }
.fm-tab {
  background:transparent; border:0; color: var(--color-text-muted);
  padding: .65rem .8rem; font-size:.78rem; cursor:pointer;
  border-bottom: 2px solid transparent; white-space:nowrap;
}
.fm-tab.active { color: var(--color-brand-gold); border-bottom-color: var(--color-brand-gold); }

.fm-drawer-body { flex:1; overflow-y:auto; padding: 1rem 1.25rem; }
.fm-drawer-section { margin-bottom: 1.25rem; }
.fm-drawer-section h5 { color: var(--color-text-heading); font-size:.78rem; text-transform:uppercase; letter-spacing:.5px; margin:0 0 .5rem 0; }
.fm-kv { display:flex; justify-content:space-between; padding:.4rem 0; border-bottom:1px dashed var(--color-overlay-white-8); font-size:.8rem; }
.fm-kv:last-child { border-bottom: 0; }
.fm-kv-key { color: var(--color-text-muted); }
.fm-kv-val { color: var(--color-text-heading); font-weight:500; }

.fm-asset-mini {
  background: var(--color-overlay-black-25);
  border: 1px solid var(--color-overlay-white-8);
  border-radius: 8px; padding: .55rem .7rem; margin-bottom: .4rem;
  display:flex; gap:.5rem; align-items:center;
}
.fm-asset-mini .fm-asset-name { flex:1; color: var(--color-text-heading); font-size:.8rem; font-weight:500; }
.fm-asset-mini .fm-asset-meta { color: var(--color-text-muted); font-size:.7rem; }
.fm-health-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.fm-health-active { background: var(--color-impact-low-bright); }
.fm-health-stale { background: var(--color-brand-gold); }
.fm-health-failing { background: var(--color-impact-critical); }
.fm-health-unknown { background: var(--color-text-muted); }

.fm-activity-row {
  padding: .5rem 0; border-bottom: 1px dashed var(--color-overlay-white-8);
  font-size:.78rem; color: var(--color-text-heading);
}
.fm-activity-row:last-child { border-bottom: 0; }
.fm-activity-meta { color: var(--color-text-muted); font-size:.7rem; margin-top:2px; }

.fm-drawer-footer {
  padding: .85rem 1.25rem; border-top: 1px solid var(--color-overlay-white-8);
  display:flex; justify-content:space-between; gap:.5rem; flex-wrap:wrap;
}

/* Create-focus modal (map-free) */
.fm-modal-overlay {
  position: fixed; inset:0; background: var(--color-bg-overlay);
  display:none; align-items:center; justify-content:center; z-index: 9100;
}
.fm-modal-overlay.open { display:flex; }
.fm-modal {
  background: var(--color-bg-card-3);
  border: 1px solid var(--color-overlay-white-8); border-radius: 12px;
  width: min(560px, 94vw); max-height: 90vh; overflow-y: auto;
  padding: 1.25rem 1.5rem;
}
.fm-modal h3 { margin: 0 0 .75rem 0; color: var(--color-text-heading); font-size: 1.05rem; }
.fm-modal .form-group { margin-bottom: 1rem; }
.fm-modal label { color: var(--color-text-muted); font-size: .75rem; display:block; margin-bottom: .25rem; }
.fm-modal input, .fm-modal select, .fm-modal textarea {
  width: 100%;
  background: var(--color-overlay-black-30);
  border: 1px solid var(--color-border-white-10);
  color: var(--color-text-heading);
  padding: .5rem .65rem; border-radius: 8px; font-size: .85rem;
  font-family: inherit;
}
.fm-modal .fm-scope-tabs { display:flex; gap: .25rem; margin-bottom: .75rem; }
.fm-modal .fm-scope-tabs button {
  flex:1; background: var(--color-overlay-black-30);
  border: 1px solid var(--color-overlay-white-8); color: var(--color-text-muted);
  padding: .5rem; border-radius: 8px; font-size: .75rem; cursor: pointer;
}
.fm-modal .fm-scope-tabs button.active {
  border-color: var(--color-brand-red);
  color: var(--color-text-heading);
  background: var(--color-brand-red-20);
}
.fm-modal .fm-modal-actions {
  display:flex; justify-content:space-between; gap:.5rem; margin-top: 1rem;
  padding-top: 1rem; border-top: 1px solid var(--color-overlay-white-8);
}
.fm-modal .fm-hint { color: var(--color-text-muted); font-size:.7rem; margin-top:.25rem; }

/* Confirm-with-undo toast */
.fm-toast {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  background: var(--color-bg-card-3);
  border: 1px solid var(--color-overlay-white-8);
  border-left: 4px solid var(--color-brand-gold);
  padding: .7rem 1rem; border-radius: 8px;
  color: var(--color-text-heading); font-size:.8rem;
  display:none; align-items:center; gap:1rem; z-index: 9500;
  box-shadow: var(--shadow-overlay);
}
.fm-toast.open { display:flex; }
.fm-toast button {
  background: transparent; border: 1px solid var(--color-brand-gold);
  color: var(--color-brand-gold);
  padding: .3rem .7rem; border-radius: 6px; font-size:.75rem; cursor:pointer; font-weight:600;
}

/* Confirm dialog */
.fm-confirm-overlay {
  position: fixed; inset:0; background: var(--color-bg-overlay);
  display:none; align-items:center; justify-content:center; z-index: 9200;
}
.fm-confirm-overlay.open { display:flex; }
.fm-confirm {
  background: var(--color-bg-card-3);
  border: 1px solid var(--color-overlay-white-8);
  border-radius: 10px; padding: 1.25rem 1.5rem;
  width: min(440px, 92vw);
}
.fm-confirm h4 { margin: 0 0 .5rem 0; color: var(--color-text-heading); font-size: 1rem; }
.fm-confirm p { color: var(--color-text-muted); font-size:.85rem; margin: 0 0 1rem 0; line-height:1.5; }
.fm-confirm ul { color: var(--color-text-muted); font-size:.78rem; margin: .25rem 0 1rem 1.25rem; }
.fm-confirm-actions { display:flex; justify-content:flex-end; gap:.5rem; }
