/* FFXIV day toggles */
.days-grid{display:flex;flex-wrap:wrap;gap:8px;}
.day-toggle{border:1px solid rgba(255,255,255,0.18);background:rgba(255,255,255,0.06);color:inherit;border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer;}
.day-toggle.on{background:rgba(88,101,242,0.35);border-color:rgba(88,101,242,0.8);}
.day-toggle:focus{outline:2px solid rgba(88,101,242,0.6);outline-offset:2px;}

.job-wrap{display:flex;align-items:center;gap:8px;}
.job-icon{width:20px;height:20px;border-radius:4px;object-fit:contain;}
.job-icon.placeholder{display:inline-block;background:rgba(255,255,255,0.08);}
:root{
  --bg:#1f1f1f;
  --panel:#2a2f34;
  --panel2:#24282c;
  --text:#f2f2f2;
  --muted:#aab3bb;
  --accent:#f2b84b;
  --chart-line:#e9f0ff;
  --chart-fill:rgba(157,178,255,.18);
  --chart-grid:rgba(255,255,255,.10);
  --chart-text:rgba(242,242,242,.78);
  --chart-muted:rgba(242,242,242,.55);
  --tab-bg:rgba(255,255,255,.06);
  --tab-bg2:rgba(255,255,255,.10);
  --tab-border:rgba(255,255,255,.14);
  --link:#9db2ff;
  --shadow: 0 8px 24px rgba(0,0,0,.35);
  --radius: 10px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:var(--bg);
  color:var(--text);
}

.hidden{display:none !important}

.nav{
  position:sticky;
  top:0;
  z-index:10;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:16px 22px;
  padding-top:calc(env(safe-area-inset-top, 0px) + 16px);
  background:rgba(31,31,31,.92);
  backdrop-filter: blur(10px);
}

.nav-hamburger{
  display:none;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:12px;
  padding:8px 10px;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}

.nav-left{
  display:flex;
  gap:18px;
  align-items:center;
}

.nav-dropdown{
  position:relative;
}

.nav-dropdown summary{
  list-style:none;
}

.nav-dropdown summary::-webkit-details-marker{
  display:none;
}

.nav-dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  user-select:none;
}

.nav-dropdown-toggle::after{
  content:"▾";
  font-size:.82rem;
  opacity:.7;
}

.nav-dropdown[open] .nav-dropdown-toggle::after{
  transform:rotate(180deg);
}

.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:190px;
  padding:10px;
  border-radius:16px;
  background:rgba(20,24,31,.96);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 34px rgba(0,0,0,.28);
  display:none;
  flex-direction:column;
  gap:6px;
  z-index:60;
}

.nav-dropdown[open] .nav-dropdown-menu,
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  display:flex;
}

.nav-dropdown-item{
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.03);
}

.nav-dropdown-item:hover{
  background:rgba(242,184,75,.1);
  opacity:1;
}

/* Mobile-only hamburger nav */
@media (max-width: 820px){
  .nav{position:sticky}
  .nav-hamburger{display:inline-flex}
  .nav-left{
    display:none;
    position:absolute;
    top:64px;
    left:12px;
    right:12px;
    padding:12px;
    background:rgba(20,20,20,.95);
    border:1px solid rgba(255,255,255,.10);
    border-radius:16px;
    gap:12px;
    flex-wrap:wrap;
    z-index:50;
  }
  body.nav-open .nav-left{display:flex}
  .nav-dropdown{width:100%}
  .nav-dropdown-menu{
    position:static;
    min-width:0;
    margin-top:8px;
  }
}

.nav-link{
  color:var(--link);
  text-decoration:none;
  font-weight:500;
}
.nav-link:hover{opacity:.85}
.nav-link-commands{
  color:#ff6b6b;
  font-weight:800;
  text-shadow:0 0 18px rgba(255,107,107,.18);
}
.nav-link-commands:hover{
  color:#ff8888;
  opacity:1;
}
.nav-link-premium{
  color:var(--accent);
  font-weight:800;
}
.nav-link-premium:hover{
  color:#ffd37a;
  opacity:1;
}

/* Premium page */
.premium-shell{max-width:960px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.premium-hero{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:18px 18px;box-shadow:var(--shadow)}
.premium-kicker{margin:0 0 6px;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.premium-title{margin:0 0 6px;font-size:34px;line-height:1.1}
.premium-subtitle{margin:0;color:var(--text);opacity:.9}
.premium-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.premium-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.premium-card-title{font-size:18px;font-weight:900}
.premium-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:rgba(242,184,75,.14);border:1px solid rgba(242,184,75,.22);color:var(--accent);font-weight:900;font-size:12px;letter-spacing:.04em}
.premium-perks{margin:0;padding-left:18px;display:grid;gap:8px;line-height:1.35}
.premium-perks li{color:rgba(242,242,242,.92)}


.nav-login-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 16px;
  background:#5865F2;
  color:#fff;
  border-radius:8px;
  font-weight:600;
  font-size:.9rem;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s;
}
.nav-login-btn:hover{background:#4752c4}

.nav-right{
  display:flex;
  align-items:center;
  gap:16px;
}

.guilds{
  display:flex;
  gap:10px;
  align-items:center;
}

.round-icon{
  width:34px;
  height:34px;
  border-radius:999px;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.08);
  box-shadow: 0 3px 10px rgba(0,0,0,.25);
  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease;
}
.round-icon:hover{transform: translateY(-1px); border-color: rgba(255,255,255,.25)}
.round-icon.active{border-color: var(--accent)}

.avatar{
  width:36px;
  height:36px;
  border-radius:999px;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.12);
}

.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:36px 22px 64px;
}

.hero{
  display:flex;
  gap:18px;
  align-items:center;
  margin: 18px 0 28px;
}

.hero-logo{
  width:70px;
  height:70px;
  border-radius:10px;
  background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.02));
  box-shadow: var(--shadow);
}

.hero h1{
  font-size:64px;
  line-height:1;
  margin:0;
  letter-spacing:.5px;
}
.hero p{
  margin:10px 0 0;
  color:var(--muted);
}

.server-header{
  display:flex;
  align-items:center;
  gap:14px;
  margin: 22px 0 18px;
}
.server-icon{
  width:54px;
  height:54px;
  border-radius:12px;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.10);
}
.server-header h2{
  margin:0;
  font-size:34px;
}

.card-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:22px;
  margin-top: 12px;
}

.card{
  background: linear-gradient(180deg, var(--panel), var(--panel2));
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:22px;
  min-height:145px;
  border:1px solid rgba(255,255,255,.06);
  position:relative;

  cursor:pointer;
  transition: transform .12s ease, border-color .12s ease, opacity .12s ease;
}
.card:hover{transform: translateY(-2px); border-color: rgba(255,255,255,.12);}
.card:active{transform: translateY(-1px);}

.card-title{
  font-size:28px;
  margin:0 0 6px;
}
.card-tier{
  font-weight:700;
  font-size:14px;
  color: var(--accent);
  margin-bottom: 10px;
}
.card-tier.standard{color:#7fb3ff}
.card-desc{
  color:var(--muted);
  margin:0;
  line-height:1.35;
}

.card-icon{
  position:absolute;
  right:18px;
  top:18px;
  font-size:26px;
  opacity:.9;
}

/* Module SVG icons (local assets) */
.card-icon .module-svg{
  width:26px;
  height:26px;
  display:inline-block;
  opacity:.95;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.35));
}

.hint-box{
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding:18px 18px;
  max-width: 520px;
}

/* âœ… Modal */
.modal-backdrop{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.55);
  display:flex;
  justify-content:center;
  /* For tall modals: start at top and allow scrolling when content exceeds viewport */
  align-items:flex-start;
  padding:24px;
  z-index:50;
  overflow-y:auto;
}

.modal{
  width: min(1200px, 100%);
background: linear-gradient(180deg, var(--panel), var(--panel2));
  border:1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: var(--shadow);
  overflow:hidden;
  /* Make the modal itself fit within the viewport */
  max-height: calc(100vh - 48px);
  display:flex;
  flex-direction:column;
  margin: 0 auto;
}

.modal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding:18px 18px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.modal-title{
  font-size:22px;
  font-weight:800;
}
.modal-sub{
  color: var(--muted);
  margin-top:6px;
  font-size:14px;
}

.modal-close{
  border:none;
  background: transparent;
  color: rgba(255,255,255,.8);
  font-size:20px;
  cursor:pointer;
}

.modal-body{
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:14px;
  /* Scroll long content inside the modal */
  overflow:auto;
  flex: 1 1 auto;
  min-height: 0;
}

.modal-actions{
  padding:14px 18px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  border-top:1px solid rgba(255,255,255,.06);
}

.modal-status{
  color: var(--muted);
  font-size:14px;
}

.btn{
  background: var(--accent);
  color:#1a1a1a;
  border:none;
  padding:10px 14px;
  border-radius:10px;
  font-weight:800;
  cursor:pointer;
}

.btn-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn.ghost{background:rgba(255,255,255,.04);color:var(--text);border:1px solid rgba(255,255,255,.12)}
.btn.ghost:hover{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06)}

.setting-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 12px;
  border:1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
}

.setting-left{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.setting-name{
  font-weight:800;
}
.setting-help{
  color: var(--muted);
  font-size:13px;
}

.input{
  width:160px;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  color: var(--text);
}

.select{
  width:260px;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  color: var(--text);
}

.textarea{
  width:360px;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
  color: var(--text);
  resize: vertical;
  min-height: 84px;
}

.subsettings{
  margin-left: 12px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

/* message tooltip */
.msg-wrap{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.qmark{
  width:22px;
  height:22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  cursor:help;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  position:relative;
  user-select:none;
}

.qmark:hover::after{
  content: attr(data-tip);
  position:absolute;
  right: 0;
  top: 30px;
  width: 280px;
  padding:10px 10px;
  border-radius:10px;
  background: rgba(0,0,0,.92);
  border:1px solid rgba(255,255,255,.10);
  color: var(--text);
  font-size: 12px;
  line-height: 1.35;
  box-shadow: var(--shadow);
  z-index: 80;
}

/* Toggle switch */
.switch{
  position:relative;
  width:54px;
  height:30px;
  display:inline-block;
}
.switch input{
  display:none;
}
.slider{
  position:absolute;
  inset:0;
  background: rgba(255,255,255,.12);
  border-radius:999px;
  transition:.15s ease;
  border:1px solid rgba(255,255,255,.12);
}
.slider:before{
  content:"";
  position:absolute;
  width:24px;
  height:24px;
  left:3px;
  top:2px;
  border-radius:999px;
  background:#fff;
  transition:.15s ease;
}
.switch input:checked + .slider{
  background: rgba(242,184,75,.35);
  border-color: rgba(242,184,75,.55);
}
.switch input:checked + .slider:before{
  transform: translateX(24px);
}

@media (max-width: 1000px){
  .card-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .hero h1{font-size:48px;}
}
@media (max-width: 640px){
  .card-grid{grid-template-columns: 1fr;}
  .hero{flex-direction:column; align-items:flex-start}
  .hero h1{font-size:42px;}
}


/* ---------------------------
   Embed Creator styles
---------------------------- */
.tabs{
  display:flex;
  gap:10px;
  margin-bottom:14px;
}
.tab{
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding:8px 12px;
  border-radius: 999px;
  cursor:pointer;
}
.tab.active{
  border-color: rgba(242,184,75,.55);
  box-shadow: 0 0 0 2px rgba(242,184,75,.08);
}

.embed-builder-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
gap:16px;
}

.embed-builder-left{
  background: var(--panel2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding:14px;
}

.embed-builder-right{
  background: var(--panel2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding:14px;
  position: sticky;
  top: 16px;
  align-self: start;
}

.preview-title{
  font-weight: 650;
  margin-bottom: 10px;
}

.setting-row.wide{
  grid-template-columns: 260px 1fr;
}

.setting-right{
  width: 100%;
}

.section-title{
  font-weight: 700;
  margin: 8px 0 10px;
  color: rgba(255,255,255,.92);
}

.divider{
  height:1px;
  background: rgba(255,255,255,.08);
  margin: 14px 0;
}

.mini-label{
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
}

.btn.small{
  padding: 7px 10px;
  font-size: 13px;
  border-radius: 10px;
}
.btn.danger{
  border-color: rgba(255,120,120,.35);
}

.field-card{
  background: rgba(255,255,255,.02);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 10px;
}


/* ---------------------------
   TDL (Private task board)
---------------------------- */
.tdl-actions{
  display:flex;
  gap:10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tdl-board{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
  margin-top: 12px;
}

@media (max-width: 820px){
  .tdl-board{grid-template-columns: 1fr;}
}

.tdl-user-box{
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 12px;
}

.tdl-user-box-title{
  font-weight: 750;
  margin-bottom: 10px;
  color: rgba(255,255,255,.92);
}

.tdl-task-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.tdl-task{
  display:grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap:10px;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.07);
  background: rgba(0,0,0,.15);
}

.tdl-task.done .tdl-task-text{
  text-decoration: line-through;
  opacity: .75;
}

.tdl-task-left{
  display:flex;
  align-items:center;
  gap:8px;
}

.tdl-drag{
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.75);
  border-radius: 10px;
  width: 30px;
  height: 30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor: grab;
  user-select:none;
}
.tdl-drag:active{cursor:grabbing}
.tdl-task.dragging{opacity:.55}
.tdl-task.drop-target{
  border-color: rgba(74, 222, 128, .65);
  background: rgba(74, 222, 128, .10);
  box-shadow: 0 0 0 2px rgba(74, 222, 128, .18);
}

.tdl-bullet{
  width: 22px;
  height: 22px;
  border-radius: 6px;
  object-fit: cover;
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
}

.tdl-kanban-stack{
  display:flex;
  flex-direction:column;
  gap: 20px;
  margin-top: 14px;
}

.kanban-user-panel{
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  padding: 14px;
}

.kanban-user-title{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 750;
  margin-bottom: 12px;
  color: rgba(255,255,255,.92);
}

.kanban-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-bottom: 12px;
}

.kanban-board-picker-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.kanban-trash{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 2px dashed rgba(255,255,255,.18);
  background: rgba(0,0,0,.2);
  color: rgba(255,255,255,.75);
  margin-bottom: 14px;
  transition: border-color .15s, background .15s;
}

.kanban-trash.kanban-trash-active{
  border-color: rgba(251, 191, 36, .75);
  background: rgba(251, 191, 36, .12);
  color: rgba(255,255,255,.95);
}

.kanban-trash-icon{font-size:1.25rem}

.kanban-columns-wrap{
  overflow-x:auto;
  padding-bottom: 6px;
}

.kanban-columns{
  display:flex;
  gap:12px;
  align-items:flex-start;
  min-height: 120px;
}

.kanban-column{
  flex: 0 0 260px;
  max-width: min(260px, 92vw);
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.1);
  border-top: 3px solid var(--kan-col, #64748b);
  background: rgba(0,0,0,.22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

.kanban-column-inner{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.kanban-column-head-row{
  display:flex;
  gap:8px;
  align-items:center;
}

.kanban-col-name-input{
  flex:1;
  min-width:0;
  font-size: 13px;
}

.kanban-col-color{
  width: 34px;
  height: 34px;
  padding:0;
  border: none;
  border-radius: 8px;
  cursor:pointer;
  background: transparent;
}

.kanban-column-head-readonly{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight: 650;
  font-size: 14px;
}

.kanban-col-dot{
  width:10px;
  height:10px;
  border-radius: 99px;
  flex-shrink:0;
}

.kanban-add-card{width:100%}

.kanban-column-body{
  position: relative;
  min-height: 56px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding: 6px;
  border-radius: 10px;
  background: rgba(0,0,0,.12);
  transition: box-shadow .15s, background .15s;
}

/* While dragging, the source card stays in the DOM; stack non-dragging cards above it so dragover/drop hit the intended column/cards (pointer-events:none on the source broke DnD in several browsers). */
.kanban-column-body .kanban-card:not(.kanban-card-dragging){
  position: relative;
  z-index: 2;
}

.kanban-column-body.kanban-drop-hover{
  box-shadow: 0 0 0 2px rgba(74, 222, 128, .45);
  background: rgba(74, 222, 128, .08);
}

.kanban-empty-col{
  font-size: 13px;
  padding: 8px;
  text-align:center;
}

.kanban-card{
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.1);
  border-left: 4px solid var(--kan-col, rgba(255,255,255,.18));
  background: rgba(255,255,255,.05);
  padding: 8px;
}

.kanban-card-dragging{
  position: relative;
  z-index: 1;
  opacity: 0.7;
  outline: 1px dashed rgba(255,255,255,.35);
}

/* Images inside cards must not become the native drag source (breaks Kanban move). */
.kanban-card img{
  -webkit-user-drag: none;
}

.kanban-card-top{
  display:flex;
  gap:8px;
  align-items:flex-start;
}

.kanban-card-drag{
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.7);
  border-radius: 8px;
  width: 28px;
  height: 28px;
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor: grab;
  font-size: 11px;
  padding:0;
  line-height:1;
}
.kanban-card-drag:active{cursor:grabbing}

.kanban-card-text{
  flex:1;
  min-width:0;
  font-size: 14px;
  line-height:1.35;
  white-space:pre-wrap;
  word-break:break-word;
}

.kanban-card-actions{
  display:flex;
  gap:6px;
  justify-content:flex-end;
  margin-top:8px;
  flex-wrap:wrap;
}

.kanban-archive-details{
  margin-top: 14px;
}

.kanban-archive-details summary{
  cursor:pointer;
  font-weight: 600;
}

.kanban-archive-list{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.kanban-archive-card{
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(0,0,0,.2);
  border: 1px solid rgba(255,255,255,.08);
}

.kanban-archive-meta{
  font-size: 12px;
  margin-bottom: 6px;
}

.kanban-archive-text{
  font-size: 14px;
  line-height:1.35;
  white-space:pre-wrap;
  word-break:break-word;
}

.kanban-shared-ico{
  font-size: 1.25rem;
  line-height: 1;
}

.kanban-pm-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.kanban-filter-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size: 13px;
}

.kanban-filter-label .select{
  min-width: 120px;
}

.kanban-card-text-wrap{
  flex:1;
  min-width:0;
}

.kanban-card-assignees{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
  margin-top: 6px;
}

.kanban-assignee{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 99px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  flex-shrink:0;
}

.kanban-assignee-img{
  width:22px;
  height:22px;
  object-fit:cover;
  display:block;
}

.kanban-assignee-fallback{
  min-width:22px;
  height:22px;
  padding:0 6px;
  font-size:11px;
  font-weight:700;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.85);
}

.kanban-list-assigned{
  font-size:13px;
  color:rgba(255,255,255,.75);
  max-width:140px;
}

.kanban-card-due{
  font-size: 12px;
  margin-top: 4px;
  color: rgba(255,255,255,.55);
}

.kanban-due-today{
  color: rgba(251, 191, 36, .95);
  font-weight: 600;
}

.kanban-due-overdue{
  color: rgba(248, 113, 113, .95);
  font-weight: 600;
}

.kanban-list-wrap{
  overflow-x:auto;
  margin-bottom: 8px;
}

.kanban-list-table{
  width:100%;
  border-collapse: collapse;
  font-size: 14px;
}

.kanban-list-table th,
.kanban-list-table td{
  padding: 8px 10px;
  text-align:left;
  border-bottom: 1px solid rgba(255,255,255,.08);
  vertical-align: top;
}

.kanban-list-table th{
  font-weight: 650;
  color: rgba(255,255,255,.75);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.kanban-list-actions{
  white-space: nowrap;
}

.kanban-list-hint{
  font-size: 13px;
  margin-top: 8px;
}

.kanban-due-toast-host{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom: 10px;
  min-height: 0;
}

.kanban-due-toast-row{
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(251, 191, 36, .12);
  border: 1px solid rgba(251, 191, 36, .35);
  color: rgba(255,255,255,.9);
  font-size: 13px;
  line-height: 1.35;
}

.book-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 16px;
  flex-wrap:wrap;
}

.book-toolbar-left,
.book-toolbar-right,
.book-sort-wrap,
.book-counts-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.book-sort-wrap{
  justify-content:flex-end;
}

.book-count-card{
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  min-width:140px;
}

.book-count-card.total{
  background:rgba(255,255,255,.05);
  min-width:160px;
}

.book-count-label{
  margin-bottom:6px;
}

.book-count-value{
  font-size:24px;
  font-weight:700;
  line-height:1;
}

.book-item-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:64px;
}

.book-item{
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.04);
  padding:12px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.book-item.draggable{
  cursor:grab;
}

.book-item.dragging{
  opacity:.55;
}

.book-item-main{
  min-width:0;
}

.book-item-title{
  font-weight:700;
  line-height:1.3;
}

.book-item-author{
  margin-top:4px;
  color:var(--muted);
  line-height:1.35;
}

.book-item-meta{
  margin-top:6px;
  font-size:.82rem;
  color:var(--muted);
}

.book-item-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}

.book-drag-handle{
  color:var(--muted);
  font-size:1rem;
  user-select:none;
}

.watch-board{display:grid;gap:12px}
.watch-item.dragging,.watch-entry.dragging{opacity:.65}
.watch-create-form{margin-bottom:12px}
.watch-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.watch-field{display:grid;gap:6px;margin-bottom:8px}
.watch-form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.watch-form-tab-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:6px}
.watch-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.watch-item-title{font-weight:700}
.watch-item-actions{display:flex;gap:8px;flex-wrap:wrap}
.watch-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.watch-tab{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:4px 10px;cursor:pointer}
.watch-tab.active{border-color:rgba(120,255,130,.8);background:rgba(120,255,130,.18)}
.watch-entry{border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:10px;margin-bottom:10px;background:rgba(0,0,0,.24)}
.watch-entry-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.watch-entry-title{font-weight:600}
.watch-entry-actions{display:flex;gap:8px}
.watch-embed-wrap{width:100%;border-radius:10px;overflow:hidden;background:#000}
.watch-embed{width:100%;min-height:280px;border:0;display:block}

.tdl-check{
  width: 18px;
  height: 18px;
}

.tdl-task-actions{
  display:flex;
  gap:8px;
}

.btn.btn-sm{
  padding: 7px 10px;
  font-size: 13px;
  border-radius: 10px;
}
.field-grid{
  display:grid;
  grid-template-columns: 1fr 1.4fr 160px;
  gap: 10px;
  align-items: start;
}
.field-actions{
  display:flex;
  flex-direction:column;
  gap: 10px;
  align-items: stretch;
}
.inline-check{
  display:flex;
  gap:8px;
  align-items:center;
  color: var(--muted);
  font-size: 13px;
}

.embed-preview{
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  padding: 12px;
  width: 100%;
  max-width: 680px;
}

.embed-content{
  margin-bottom: 10px;
  color: rgba(255,255,255,.92);
  white-space: normal;
  line-height: 1.35;
}

.embed-card{
  position: relative;
  display:flex;
  gap: 12px;
  background: #2b2d31;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.06);

  width: 100%;
}

.embed-color{
  width: 4px;
  background: #5865f2;
}

.embed-main{
  padding: 10px 10px 12px;
  flex: 1;
  min-width: 0;
}

.embed-thumb{
  width: 80px;
  height: 80px;
  object-fit: cover;
  margin: 10px 10px 0 0;
  border-radius: 10px;
}

.embed-author{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom: 6px;
  color: rgba(255,255,255,.86);
  font-size: 13px;
  font-weight: 600;
}
.embed-author-icon{
  width: 20px;
  height: 20px;
  border-radius: 999px;
  object-fit: cover;
}

.embed-title{
  display:block;
  font-weight: 750;
  color: #00a8fc;
  text-decoration: none;
  margin-bottom: 6px;
  word-break: break-word;
}
.embed-title:hover{ text-decoration: underline; }

.embed-desc{
  color: rgba(255,255,255,.86);
  line-height: 1.35;
  margin-bottom: 10px;
  word-break: break-word;
}

.embed-fields{
  display:grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
.embed-field.inline{
  grid-column: span 1;
}
.embed-field{
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  padding: 8px;
}
.embed-field-name{
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 4px;
}
.embed-field-value{
  color: rgba(255,255,255,.86);
  font-size: 13px;
  line-height: 1.35;
}

.embed-image{
  width: 100%;
  max-height: 260px;
  object-fit: cover;
  border-radius: 10px;
  margin-top: 10px;
  border: 1px solid rgba(255,255,255,.06);
}

.embed-footer{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top: 10px;
  color: rgba(255,255,255,.62);
  font-size: 12px;
}
.embed-footer-icon{
  width: 16px;
  height: 16px;
  border-radius: 4px;
  object-fit: cover;
}

.json-wrap{
  background: var(--panel2);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: 12px;
}
textarea.json{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12.5px;
}
.json-actions{
  display:flex;
  gap:10px;
  margin-top: 10px;
}

@media (max-width: 980px){
  .embed-builder-grid{ grid-template-columns: 1fr; }
  .embed-builder-right{ position: static; }
  .field-grid{ grid-template-columns: 1fr; }
  .setting-row.wide{ grid-template-columns: 1fr; }
}



/* ---------------------------
   Prettier Home Hero
---------------------------- */
.hero{display:flex; flex-direction:column; gap:14px;}
.hero-banner{
  position:relative;
  border: 1px solid rgba(255,255,255,.10);
  border-radius:16px;
  overflow:hidden;
  box-shadow: var(--shadow);
  background: radial-gradient(circle at 50% 20%, rgba(255,255,255,.08), rgba(255,255,255,0) 55%), linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,0));
  min-height: 220px;
}
.hero-banner-img{
  width:100%;
  height: 240px;
  object-fit: cover;
  display:block;
  filter: saturate(1.06) contrast(1.05);
}
.hero-banner-overlay{
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 35%, rgba(0,0,0,.15), rgba(0,0,0,.70));
}
.hero-center{
  position:absolute; inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.hero-avatar-frame{
  width: 132px;
  height: 132px;
  border-radius:999px;
  padding: 6px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  box-shadow: 0 14px 42px rgba(0,0,0,.45);
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-avatar{
  width: 120px;
  height: 120px;
  border-radius:999px;
  object-fit: cover;
  background: rgba(0,0,0,.2);
}
.hero-text{display:flex; flex-direction:column; gap:6px;}
.hero-text h1{margin:0; font-size: 34px; letter-spacing: .2px;}
.hero-text p{margin:0; color: var(--muted);}

/* Policy pages (Privacy / Terms) */
.policy{
  max-width: 920px;
  margin: 18px auto 0;
  padding: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 16px;
  background: rgba(255,255,255,0.03);
}

.policy h2{margin:0 0 6px;}
.policy h3{margin:18px 0 8px;}
.policy p{line-height: 1.55;}
.policy ul{margin: 8px 0 8px 20px;}
.policy .muted{opacity:0.8; font-size:0.95rem;}

/* ---------------------------
   Insights chart tabs
---------------------------- */
.chart-tabs{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  margin-top:8px;
}
.chart-tab{
  border:1px solid var(--tab-border);
  background: var(--tab-bg);
  color: var(--text);
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  cursor:pointer;
  user-select:none;
}
.chart-tab:hover{background: var(--tab-bg2);}
.chart-tab.active{
  background: rgba(157,178,255,.18);
  border-color: rgba(157,178,255,.35);
}
.chart-wrap{
  margin-top:10px;
  padding: 10px;
  border-radius: 12px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.08);
}

.hero-banner{min-height:240px;width:100%;display:block;}
.hero-banner--nobanner{background: radial-gradient(circle at 50% 15%, rgba(255,255,255,.10), rgba(255,255,255,0) 60%), radial-gradient(circle at 20% 80%, rgba(157,178,255,.10), rgba(0,0,0,0) 55%), linear-gradient(180deg, rgba(255,255,255,.07), rgba(0,0,0,0));}
.hero-center{z-index:2;}
.hero-avatar-frame{z-index:3;}


/* ---------- FFXIV Status Page ---------- */
.status-dot{
  display:inline-block;
  width:10px;height:10px;
  border-radius:50%;
  margin-right:8px;
  box-shadow:0 0 0 2px rgba(255,255,255,0.08);
}
.dot-up{ background:#2ecc71; }
.dot-down{ background:#e74c3c; }
.dot-degraded{ background:#f1c40f; }

.region-block{ margin-top:18px; }
.dc-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:12px;
  margin-top:10px;
}
.dc-card{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 12px;
}
.dc-head{ display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.dc-title{ display:flex; align-items:center; font-weight:700; }
.dc-meta{ font-size:12px; opacity:0.8; }
.dc-worlds{ display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; }
.world-row{ display:flex; align-items:center; font-size:13px; opacity:0.95; }
.world-name{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:520px){
  .dc-worlds{ grid-template-columns:1fr; }
}

/* PokÃ©mon NPCs tab - card styling */
.npc-card{
  border:1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  border-radius:16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.20);
  overflow:hidden;
}
.npc-card:hover{
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 14px 32px rgba(0,0,0,.26);
}
.npc-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 14px 12px;
  background: rgba(0,0,0,.14);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.npc-meta{display:flex;align-items:center;gap:12px;min-width:0}
.npc-avatar{width:56px;height:56px;border-radius:14px;overflow:hidden;flex:0 0 auto;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10)}
.npc-avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.npc-avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.02))}
.npc-title{min-width:0}
.npc-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.npc-title-strong{font-weight:800;font-size:14px}
.npc-sub{opacity:.75;font-size:12px;margin-top:4px}
.npc-pill{
  font-size:11px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
  opacity:.92;
}
.npc-pill-tier{
  text-transform:capitalize;
  border-color: rgba(99,102,241,.35);
  background: rgba(99,102,241,.16);
}
.npc-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}

.npc-card-body{padding:14px}
.npc-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:12px;
}
@media (max-width: 820px){
  .npc-grid{grid-template-columns: 1fr;}
  .npc-actions{width:100%;justify-content:flex-end}
  .npc-card-header{flex-wrap:wrap}
}
.npc-divider{
  margin:14px 0;
  height:1px;
  background: rgba(255,255,255,.08);
}

.npc-upload-row{align-items:center}
.npc-upload-right{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.npc-file{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.18);
  background: rgba(255,255,255,.04);
  cursor:pointer;
  transition: transform .08s ease, border-color .12s ease, background .12s ease;
}
.npc-file:hover{transform: translateY(-1px); border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.06)}
.npc-file input{position:absolute; inset:0; opacity:0; cursor:pointer}
.npc-file span{font-size:12px; opacity:.9}

/* RP module */
.rp-guild-block{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:18px;margin-bottom:18px}
.rp-guild-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.rp-guild-title-wrap{display:flex;align-items:center;gap:12px}
.rp-guild-title{font-size:1.1rem;font-weight:700}
.rp-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.rp-card{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden}
.rp-banner,.rp-editor-banner{height:90px;background:linear-gradient(135deg,#2f7f73,#315f5a);background-size:cover;background-position:center}
.rp-card-head{display:flex;align-items:center;gap:12px;padding:0 14px;margin-top:-24px}
.rp-avatar,.rp-editor-avatar{width:74px;height:74px;border-radius:999px;object-fit:cover;border:4px solid #26282d;background:#d9d9d9}
.rp-card-title{font-size:1.05rem;font-weight:700}
.rp-meta{padding:10px 14px 0 14px}
.rp-actions{display:flex;gap:8px;padding:14px}
.rp-editor .setting-row{align-items:flex-start}
.rp-brackets{display:flex;align-items:center;gap:8px}
.rp-brackets .input{max-width:120px}
.rp-command-builder{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
.rp-command-builder .input{min-width:0;flex:1 1 140px}
.rp-command-builder-text{font-weight:700;opacity:.9}
.rp-card-simple{padding-top:18px}
.rp-card-head-simple{flex-direction:column;justify-content:center;text-align:center;gap:10px;padding:8px 18px 0;margin-top:0}
.rp-card-head-text{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%}
.rp-avatar-simple{width:96px;height:96px;border-width:4px;object-position:center top;margin:0 auto}
.hidden{display:none!important}
.rp-upload-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rp-upload-inline .input{min-width:240px;flex:1}
.rp-emotes-right{width:100%}
.rp-emotes-top{display:flex;justify-content:flex-end;margin-bottom:10px}
.rp-emote-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;margin-bottom:10px}
.rp-emote-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rp-emote-summary-left{display:flex;align-items:center;gap:10px;min-width:0}
.rp-emote-thumb{width:46px;height:46px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.18);background:#d9d9d9}
.rp-emote-trigger code{font-size:.92rem}
.rp-emote-editor{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.rp-emote-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rp-emote-inline>.input{min-width:220px;flex:1}

.rp-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rp-card-desc{margin-top:8px;line-height:1.35}
.directory-card{cursor:pointer}
.directory-card-footer{padding:0 14px 14px 14px;font-weight:600}
.directory-card-footer a{text-decoration:none}
.carrd-preview{display:block;padding:14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);text-decoration:none;color:inherit}
.carrd-preview-top{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.carrd-preview-title{font-weight:700;margin-bottom:4px}
.carrd-preview-url{color:var(--muted);word-break:break-all}
.carrd-preview-cta{margin-top:8px;font-weight:600}
.rp-directory-popout{display:grid;gap:16px}
.rp-directory-details{display:grid;gap:10px}
.rp-directory-carrd-wrap{margin-top:6px}
@media (max-width: 980px){.rp-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 640px){.rp-profile-grid{grid-template-columns:1fr;}}

/* Roleplay tabs (My Characters | Character Sheet) */
.rp-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:0}
.rp-tab{border:none;background:transparent;color:var(--muted);padding:10px 16px;font-size:14px;cursor:pointer;border-radius:8px 8px 0 0;border-bottom:2px solid transparent}
.rp-tab:hover{color:var(--text)}
.rp-tab.active{color:var(--accent);border-bottom-color:var(--accent)}

/* D&D Character Sheet tab */
.rp-character-sheet-block .rp-sheet-selector-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.rp-character-sheet-block .rp-sheet-label{font-weight:600}
.rp-character-sheet-block .rp-sheet-select{min-width:200px;max-width:320px}
.rp-sheet-placeholder{padding:24px;text-align:center;color:var(--muted)}
.rp-character-sheet-form{max-width:720px;padding-top:8px;overflow:hidden}
/* Keep inputs inside their boxes: constrain width and allow grid to shrink */
.rp-character-sheet-form .rp-sheet-grid{min-width:0}
.rp-character-sheet-form .rp-sheet-grid > *{min-width:0}
.rp-character-sheet-form .setting-row{min-width:0;overflow:hidden}
.rp-character-sheet-form .setting-row .setting-right{min-width:0;flex:1 1 auto}
.rp-character-sheet-form .input,
.rp-character-sheet-form .textarea,
.rp-character-sheet-block select.input.rp-sheet-select{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  border-color:rgba(255,255,255,.06);
  background:rgba(0,0,0,.18);
}
.rp-character-sheet-form .textarea{max-width:100%}
.rp-character-sheet-form .input:focus,
.rp-character-sheet-form .textarea:focus,
.rp-character-sheet-block select.input.rp-sheet-select:focus{
  outline:none;
  border-color:rgba(255,255,255,.12);
  background:rgba(0,0,0,.22);
}
.rp-character-sheet-form .input::placeholder,
.rp-character-sheet-form .textarea::placeholder{
  color:var(--muted);
  opacity:.85;
}
.rp-character-sheet-form input[type="checkbox"]{
  accent-color:var(--accent);
  width:1rem;
  height:1rem;
  flex-shrink:0;
}
.rp-sheet-section{font-size:13px;font-weight:600;color:var(--accent);margin:20px 0 10px;padding-bottom:4px}
.rp-sheet-section:first-child{margin-top:0}
.rp-sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 16px;margin-bottom:8px}
.rp-sheet-grid.rp-sheet-abilities{grid-template-columns:repeat(3,minmax(0,1fr))}
.rp-sheet-grid.rp-sheet-skills{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){.rp-sheet-grid.rp-sheet-abilities,.rp-sheet-grid.rp-sheet-skills{grid-template-columns:repeat(2,minmax(0,1fr))}}


.rp-guild-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rp-post-count-inline{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-weight:700}
.rp-link-accent{color:var(--accent,#f6c344)!important;font-weight:700;text-decoration:none}
.rp-link-accent:hover{text-decoration:underline}
.carrd-preview{display:block;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.1);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.04);max-width:360px}
.carrd-preview-top{padding:10px 12px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.carrd-preview-shot{aspect-ratio:16/10;background:rgba(0,0,0,.25);overflow:hidden}
.carrd-preview-shot img{display:block;width:100%;height:100%;object-fit:cover}
.carrd-preview-title{padding:12px 12px 0 12px;font-weight:700}
.carrd-preview-url{padding:4px 12px 10px 12px;color:rgba(255,255,255,.7)}
.carrd-preview-cta{padding:0 12px 12px 12px;color:var(--accent,#f6c344);font-weight:700}
.rp-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 14px}


/* Roleplay request/NSFW additions */
.directory-card-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.directory-card-footer a,.directory-card-footer .rp-link-accent{color:var(--accent,#f6c453)!important;text-decoration:none;font-weight:700;}
.rp-req-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.rp-request-card{display:grid;gap:12px;}
.pill.danger{background:rgba(220,38,38,.18);color:#ffb4b4;border:1px solid rgba(220,38,38,.35);}


/* RP directory and editor refinements */
.switch.switch-sm{width:44px;height:24px}
.switch.switch-sm .slider:before{width:18px;height:18px;left:3px;top:2px}
.switch.switch-sm input:checked + .slider:before{transform:translateX(19px)}
.setting-row>.setting-right,.setting-row>div:last-child{justify-self:end;max-width:100%}
.rp-toggle-row .setting-right,.rp-open-to-row .setting-right{width:100%;max-width:100%;justify-self:stretch}
.rp-icon-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rp-editor-avatar-inline{width:56px;height:56px;border-width:3px}
.rp-open-to-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px 18px;max-width:720px}
.rp-open-to-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;margin:0}
.rp-open-to-label{font-size:.96rem;line-height:1.2}
.rp-open-to-note{margin-top:10px;font-size:.95rem}
.directory-search-wrap{min-width:220px;flex:0 1 320px}
.directory-search-input{width:100%}
.directory-card{display:flex;flex-direction:column;cursor:pointer;padding-top:18px}
.directory-card-top{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 18px 0;text-align:center}
.directory-avatar{width:96px;height:96px;border-width:4px;object-position:center top;margin:0 auto 12px}
.directory-card-title{width:100%;text-align:center}
.directory-card-tag{text-align:center;margin-top:2px}
.directory-card-meta{padding-top:12px}
.directory-open-to-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.rp-open-pill{padding:4px 10px;font-size:.82rem}
@media (max-width: 760px){.rp-open-to-grid{grid-template-columns:1fr}}

.admin-page-shell{display:flex;flex-direction:column;gap:18px}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.admin-server-card{padding:18px 18px 16px}
.admin-server-icon{width:96px;height:96px;border-radius:999px;object-fit:cover;border:4px solid rgba(255,255,255,.12);background:#2a2d31;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.admin-server-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding-bottom:8px}
.admin-server-name{font-size:1.08rem;font-weight:800}
.admin-server-desc{min-height:48px;margin-top:10px;color:var(--muted);line-height:1.4;text-align:center}
.admin-server-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.admin-stat{padding:12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.admin-stat-label{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.admin-stat-value{font-size:1.1rem;font-weight:800}
.admin-users-wrap{display:flex;flex-direction:column;gap:14px}
.admin-users-group{padding:16px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
.admin-users-group-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.admin-users-group-title{font-size:1.02rem;font-weight:800}
.admin-users-group-sub{color:var(--muted);font-size:.92rem}
.admin-users-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.admin-user-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.admin-user-avatar{width:42px;height:42px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.12)}
.admin-user-name{font-weight:700}
.admin-user-meta{color:var(--muted);font-size:.88rem;line-height:1.35}
.admin-empty{padding:18px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:var(--muted)}
@media (max-width: 700px){.admin-server-stats{grid-template-columns:1fr}.admin-toolbar{align-items:flex-start}.admin-users-list{grid-template-columns:1fr}}

.home-banner{margin:10px 0 28px;padding:20px 24px;border-radius:18px;background:linear-gradient(135deg,#1ea0b8,#2fbfd1);color:#f8feff;font-size:1.1rem;font-weight:700;text-align:center;box-shadow:var(--shadow)}
.home-features{display:flex;flex-direction:column;gap:18px}
.home-features-head h2{margin:0;font-size:52px;line-height:1}
.home-features-head p{margin:8px 0 0;color:var(--muted);font-size:1.06rem}
.feature-grid{margin-top:0}
.feature-card{cursor:default;min-height:220px}
.feature-card:hover,.feature-card:active{transform:none;border-color:rgba(255,255,255,.06)}
.home-welcome{display:flex;align-items:center;gap:18px;margin:4px 0 22px;padding:20px 22px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));box-shadow:var(--shadow)}
.home-user-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:120px;gap:10px}
.home-user-avatar{width:92px;height:92px;border-radius:999px;object-fit:cover;border:4px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08)}
.home-user-name{font-weight:800;text-align:center;font-size:1rem}
.home-welcome-copy{display:flex;flex-direction:column;gap:8px}
.home-welcome-title{font-size:1.8rem;font-weight:800;line-height:1.1}
.home-welcome-sub{color:var(--muted);font-size:1rem;line-height:1.45}
@media (max-width: 820px){.home-features-head h2{font-size:42px}.home-welcome{flex-direction:column;align-items:flex-start}.home-user-stack{align-items:flex-start}}
@media (max-width: 640px){.home-features-head h2{font-size:34px}.home-banner{font-size:1rem;padding:18px}.feature-card{min-height:unset}}

/* Conversion-focused homepage sections */
.home2-shell{display:flex;flex-direction:column;gap:18px}
.home2-hero{background:radial-gradient(circle at top right, rgba(242,184,75,.18), transparent 34%),radial-gradient(circle at 10% 25%, rgba(157,178,255,.14), transparent 42%),linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:26px;box-shadow:var(--shadow)}
.home2-hero h2{margin:0;font-size:38px;line-height:1.08}
.home2-hero p{margin:10px 0 0;color:var(--muted);line-height:1.55;font-size:1.05rem;max-width:920px}
.home2-cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.home2-mini{margin-top:10px;color:rgba(242,242,242,.85);font-size:13px}
.home2-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.home2-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:rgba(242,242,242,.9);font-size:12px}
.home2-section{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.home2-section h3{margin:0 0 8px;font-size:22px}
.home2-section p{margin:0;color:var(--muted);line-height:1.55}
.home2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.home2-card{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:16px;min-width:0}
.home2-card h4{margin:0 0 8px;font-size:16px}
.home2-card p{margin:0;color:var(--muted);line-height:1.5}
.home2-shot{padding:14px}
.home2-shot-img{width:100%;height:220px;object-fit:cover;display:block;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);margin-bottom:12px}
.home2-shot:hover .home2-shot-img{border-color:rgba(255,255,255,.18)}
.home2-list{margin:12px 0 0;padding-left:18px;display:grid;gap:8px;color:rgba(242,242,242,.92);line-height:1.4}
.home2-banner{padding:18px 22px;border-radius:18px;background:linear-gradient(135deg,#1ea0b8,#2fbfd1);color:#f8feff;font-size:1.15rem;font-weight:800;text-align:center;box-shadow:var(--shadow)}
.home2-split{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;align-items:start}
.home2-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.home2-logo{height:56px;border-radius:14px;background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:rgba(242,242,242,.65);font-weight:800;font-size:12px;overflow:hidden}
.home2-logo-img{width:100%;height:100%;object-fit:cover;display:block}
.home2-logo-text{padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home2-final{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
@media (max-width: 980px){.home2-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home2-split{grid-template-columns:1fr}.home2-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.home2-grid{grid-template-columns:1fr}.home2-hero h2{font-size:32px}}

.commands-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}
.commands-sidebar{position:sticky;top:92px;display:flex;flex-direction:column;gap:16px}
.commands-sidebar-card,.commands-jumpnav,.commands-hero-card,.commands-section{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09);border-radius:22px;box-shadow:var(--shadow)}
.commands-sidebar-card,.commands-jumpnav{padding:20px}
.commands-main{display:flex;flex-direction:column;gap:18px}
.commands-hero-card{padding:24px;background:radial-gradient(circle at top right, rgba(242,184,75,.18), transparent 34%),linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.commands-hero-copy h2,.commands-sidebar-card h2,.commands-section-head h2{margin:0}
.commands-hero-copy p,.commands-sidebar-copy,.commands-section-copy{color:var(--muted);line-height:1.55}
.commands-kicker{margin:0 0 8px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:800}
.commands-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.commands-stat-card{padding:14px 16px;border-radius:16px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.08)}
.commands-stat-label{display:block;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.commands-stat-value{font-size:1.9rem;line-height:1;font-weight:900}
.commands-jumpnav-head{font-size:.9rem;font-weight:800;margin-bottom:12px;color:rgba(255,255,255,.92)}
.commands-jump-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:14px;color:var(--text);text-decoration:none;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);transition:transform .12s ease,border-color .12s ease,background .12s ease}
.commands-jump-link + .commands-jump-link{margin-top:8px}
.commands-jump-link:hover{transform:translateY(-1px);border-color:rgba(242,184,75,.35);background:rgba(242,184,75,.08)}
.commands-jump-count,.commands-section-badge,.command-chip,.commands-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-weight:800}
.commands-jump-count{min-width:34px;padding:4px 9px;background:rgba(242,184,75,.14);color:var(--accent)}
.commands-hero-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.commands-pill{padding:8px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);color:rgba(255,255,255,.95)}
.commands-section{padding:22px;scroll-margin-top:96px}
.commands-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:8px}
.commands-section-badge{padding:8px 12px;background:rgba(242,184,75,.14);color:var(--accent);white-space:nowrap}
.commands-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.command-card{padding:18px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);min-height:154px;display:flex;flex-direction:column;justify-content:flex-start;gap:12px;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.command-card:hover{transform:translateY(-2px);border-color:rgba(242,184,75,.3);box-shadow:0 16px 28px rgba(0,0,0,.22)}
.command-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.command-name-wrap{display:flex;align-items:center;gap:8px;min-width:0}
.command-slash{color:var(--accent);font-size:1.2rem;font-weight:900}
.command-name{margin:0;font-size:1.02rem;line-height:1.2;word-break:break-word}
.command-chip{padding:6px 10px;background:rgba(157,178,255,.12);color:#c9d6ff;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(157,178,255,.2)}
.command-desc{margin:0;color:var(--muted);line-height:1.55}
@media (max-width: 1040px){.commands-shell{grid-template-columns:1fr}.commands-sidebar{position:static}}
@media (max-width: 760px){.commands-grid{grid-template-columns:1fr}.commands-section-head{align-items:flex-start;flex-direction:column}.commands-stat-grid{grid-template-columns:1fr 1fr}}
@media (max-width: 520px){.commands-stat-grid{grid-template-columns:1fr}}

.site-footer{margin-top:48px;border-top:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.site-footer-inner{max-width:1200px;margin:0 auto;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.site-footer-copy{margin:0;color:var(--muted);font-weight:700;letter-spacing:.04em}
.site-footer-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.site-footer-link{color:var(--link);text-decoration:none;font-weight:700}
.site-footer-link:hover{color:#c9d6ff}
.commands-return{position:fixed;right:24px;bottom:24px;width:52px;height:52px;border-radius:999px;display:none;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--accent),#d89f35);color:#1d1607;text-decoration:none;font-size:1.4rem;font-weight:900;box-shadow:0 18px 28px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.18);z-index:25;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}
.commands-return:hover{transform:translateY(-2px);box-shadow:0 20px 32px rgba(0,0,0,.34);filter:brightness(1.04)}
@media (max-width: 640px){.commands-return{display:inline-flex;right:16px;bottom:16px;width:48px;height:48px}}

.felix-shell{display:flex;flex-direction:column;gap:20px}
.felix-main-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:20px;align-items:start}
.felix-main-column,.felix-side-column{display:flex;flex-direction:column;gap:20px}
.felix-card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.09);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.felix-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.felix-card-head h2,.felix-detail-card h3{margin:0}
.felix-card-note,.felix-stat-detail,.felix-empty,.felix-steps,.felix-good-box,.felix-success-box p{color:var(--muted)}
.felix-kicker{margin:0 0 8px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:800}
.felix-guild-tabs{display:flex;flex-wrap:wrap;gap:10px}
.felix-guild-tab{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;font:inherit}
.felix-guild-tab.active{border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.12)}
.felix-guild-icon{width:28px;height:28px;border-radius:999px;object-fit:cover}
.felix-view-tabs{display:flex;gap:10px;flex-wrap:wrap}
.felix-view-tab{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;font:inherit;font-weight:700}
.felix-view-tab.active{border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.12);color:#fff5d6}
.felix-mirror-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"main-hand head off-hand" "body stage earrings" "hands stage necklace" "legs stage bracelets" "left-ring soul-crystal right-ring" ". feet .";gap:14px;align-items:stretch}
.felix-mirror-slot{padding:14px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);min-width:0;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.felix-mirror-slot.empty{border-style:dashed;opacity:.82}
.felix-mirror-slot:hover{border-color:rgba(242,184,75,.26);background:rgba(242,184,75,.06);transform:translateY(-1px)}
.felix-mirror-slot.active{border-color:rgba(242,184,75,.4);background:rgba(242,184,75,.08);box-shadow:0 0 0 1px rgba(242,184,75,.12) inset}
.felix-mirror-slot-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:800}
.felix-mirror-slot-body{display:flex;align-items:flex-start;gap:12px;min-width:0}
.felix-mirror-slot-icon{width:44px;height:44px;border-radius:12px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-mirror-slot-icon.fallback{display:block}
.felix-mirror-slot-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.felix-mirror-slot-copy strong{font-size:.96rem;overflow-wrap:anywhere}
.felix-mirror-slot-copy span{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}
.felix-mirror-stage{appearance:none;border:1px solid rgba(242,184,75,.18);background:radial-gradient(circle at top, rgba(242,184,75,.14), rgba(255,255,255,.03) 42%, rgba(0,0,0,.18) 100%);border-radius:28px;padding:20px;min-height:100%;cursor:pointer;transition:transform .5s ease,border-color .18s ease,box-shadow .18s ease;box-shadow:0 18px 38px rgba(0,0,0,.24);min-width:0}
.felix-mirror-stage:hover{border-color:rgba(242,184,75,.35);box-shadow:0 22px 44px rgba(0,0,0,.28)}
.felix-mirror-stage.spinning{transform:rotateY(360deg)}
.felix-mirror-stage-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100%;position:relative}
.felix-mirror-stage-glow{position:absolute;inset:12% 18%;border-radius:999px;background:radial-gradient(circle, rgba(242,184,75,.16), rgba(242,184,75,0) 68%);filter:blur(8px)}
.felix-mirror-stage-avatar{position:relative;width:168px;height:168px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.2), rgba(242,184,75,.22), rgba(0,0,0,.5));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 8px rgba(255,255,255,.04),0 24px 48px rgba(0,0,0,.35);z-index:1}
.felix-mirror-stage-avatar span{font-size:3.4rem;font-weight:900;letter-spacing:.08em;color:#fff5d6;text-shadow:0 4px 14px rgba(0,0,0,.28)}
.felix-mirror-stage-portrait{position:relative;width:min(320px,100%);aspect-ratio:3 / 4;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 26px 54px rgba(0,0,0,.38);z-index:1;background:rgba(0,0,0,.28)}
.felix-mirror-stage-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.felix-mirror-stage-portrait[data-felix-mirror-preview-open]{cursor:zoom-in}
.felix-mirror-preview-modal{width:min(1080px,100%);}
.felix-mirror-preview-modal-body{display:flex;justify-content:center;align-items:center}
.felix-mirror-preview-modal-image{display:block;max-width:100%;max-height:78vh;border-radius:22px;object-fit:contain;box-shadow:0 28px 80px rgba(0,0,0,.45);background:rgba(0,0,0,.22)}
.felix-mirror-stage-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;max-width:320px}
.felix-mirror-stage-copy strong{font-size:1.28rem}
.felix-mirror-stage-copy span{color:var(--muted);line-height:1.45}
.felix-mirror-stage-stats{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.felix-mirror-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:rgba(242,184,75,.14);border:1px solid rgba(242,184,75,.22);color:#ffe9b2;font-size:.82rem;font-weight:800;letter-spacing:.04em}
.felix-mirror-chip.ghost{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--muted)}
.felix-mirror-studio-grid{margin-top:16px}
.felix-mirror-active-slot{display:inline-flex;align-items:center;padding:8px 12px;border-radius:12px;background:rgba(242,184,75,.12);border:1px solid rgba(242,184,75,.22);font-weight:800;color:#ffe9b2}
.felix-mirror-search-input{flex:0 0 auto !important;width:100%;min-width:0;max-width:100%;height:42px;min-height:42px;padding:10px 12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.felix-mirror-actions{justify-content:flex-start}
.felix-mirror-search-results{display:flex;flex-direction:column;gap:10px;margin-top:12px;max-height:420px;overflow:auto}
.felix-mirror-search-item{appearance:none;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text);cursor:pointer;transition:border-color .18s ease,background .18s ease}
.felix-mirror-search-item:hover{border-color:rgba(242,184,75,.28);background:rgba(242,184,75,.08)}
.felix-mirror-search-icon{width:42px;height:42px;border-radius:12px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-mirror-search-icon.fallback{display:block}
.felix-mirror-search-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.felix-mirror-search-copy strong{overflow-wrap:anywhere}
.felix-mirror-search-copy span{color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}
.felix-mirror-preview-card{align-items:center}
.felix-mirror-preview-icon{width:54px;height:54px;border-radius:14px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-mirror-preview-icon.fallback{display:block}
.felix-mirror-preview-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.felix-mirror-preview-copy strong,.felix-mirror-preview-copy span{overflow-wrap:anywhere}
.felix-mirror-preview-copy span{color:var(--muted);font-size:.88rem}
.felix-mirror-override-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.felix-mirror-override-item{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:4px}
.felix-mirror-override-item span{color:var(--muted);overflow-wrap:anywhere}
.felix-fc-tag{font-size:.9em;color:var(--muted);font-weight:700}
.felix-fc-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.felix-fc-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border:1px solid rgba(255,255,255,.08)}
.felix-fc-badge.preview{background:rgba(255,255,255,.05);color:var(--muted)}
.felix-fc-badge.registered{background:rgba(74,128,89,.18);border-color:rgba(116,196,139,.24);color:#d7f4df}
.felix-fc-badge.leader{background:rgba(242,184,75,.14);border-color:rgba(242,184,75,.24);color:#ffe9b2}
.felix-fc-members{margin-top:14px}
.felix-fc-member-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.felix-fc-member{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.felix-fc-member-main{display:flex;align-items:center;gap:12px;min-width:0}
.felix-fc-avatar{width:42px;height:42px;border-radius:12px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-fc-avatar.fallback{display:block}
.felix-fc-member-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.felix-fc-member-copy span{color:var(--muted);overflow-wrap:anywhere}
.felix-fc-editor{margin-top:14px}
.felix-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.felix-form-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.felix-form-field span{font-size:.9rem;color:var(--muted);font-weight:700}
.felix-form-field-wide{grid-column:1 / -1}
.felix-textarea{resize:vertical;min-height:96px}
.felix-war-room-caption{min-height:72px;max-height:132px}
.felix-form-actions{margin-top:14px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.felix-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.felix-stat-card{padding:16px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
.felix-stat-title{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.felix-stat-value{font-size:1.5rem;font-weight:900;line-height:1.05;margin-bottom:6px}
.felix-detail-grid,.felix-subgrid,.felix-device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.felix-detail-card{padding:18px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
.felix-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.felix-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:10px}
.felix-list li:last-child{border-bottom:none;padding-bottom:0}
.felix-list span{color:var(--muted)}
.felix-list strong,.felix-list code{min-width:0;max-width:62%;text-align:right;overflow-wrap:anywhere;word-break:break-word}
.felix-pairing-form{display:flex;gap:10px;flex-wrap:wrap}
.felix-input{min-width:220px;flex:1 1 220px;max-width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.24);color:var(--text)}
.felix-war-room-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.felix-war-room-line .felix-input,
.felix-war-room-progress-field .felix-input{flex:0 0 auto;min-height:42px;height:42px}
.felix-war-room-progress-field{max-width:140px}
.felix-war-room-progress{width:120px;min-width:120px;max-width:120px;height:42px;min-height:42px;text-align:center;font-weight:800}
.felix-war-room-progress.low{border-color:rgba(214,86,86,.45);background:rgba(155,43,43,.18);color:#ffd8d8}
.felix-war-room-progress.mid{border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.14);color:#ffe9b2}
.felix-war-room-progress.high{border-color:rgba(116,196,139,.35);background:rgba(74,128,89,.18);color:#d7f4df}
.felix-war-room-line input[type="file"].felix-input{padding:8px 10px;line-height:1.2}
.felix-token-list,.felix-session-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.felix-inline-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08)}
.felix-inline-title{font-weight:800}
.felix-token-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.felix-token-row code{display:block;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.32);border:1px solid rgba(255,255,255,.08);word-break:break-all}
.felix-device-grid{grid-template-columns:1fr}
.felix-device-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.felix-device-head > div,.felix-device-head h3,.felix-detail-card,.felix-inline-card{min-width:0}
.felix-device-head h3{overflow-wrap:anywhere}
.felix-device-head .btn{flex-shrink:0}
.felix-session-metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;color:var(--muted);font-size:.92rem}
.felix-error-box,.felix-good-box,.felix-success-box{margin-top:14px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.08)}
.felix-error-box{background:rgba(155,43,43,.15);border-color:rgba(214,86,86,.28);color:#ffd8d8}
.felix-good-box,.felix-success-box{background:rgba(74,128,89,.16);border-color:rgba(116,196,139,.24)}
.felix-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;line-height:1.55}
.felix-collection-grid{display:flex;flex-direction:column;gap:14px}
.felix-collection-section{border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(0,0,0,.18);overflow:hidden}
.felix-collection-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}
.felix-collection-summary::-webkit-details-marker{display:none}
.felix-collection-summary-text{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.felix-collection-summary-text strong{font-size:1rem}
.felix-collection-summary-text span:last-child{color:var(--muted)}
.felix-collection-arrow{width:11px;height:11px;border-right:2px solid rgba(255,255,255,.72);border-bottom:2px solid rgba(255,255,255,.72);transform:rotate(45deg);transition:transform .18s ease}
.felix-collection-section[open] .felix-collection-arrow{transform:rotate(225deg)}
.felix-collection-body{padding:0 18px 18px}
.felix-collection-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.felix-collection-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.felix-collection-item.locked{opacity:.7}
.felix-collection-item.clickable{cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.felix-collection-item.clickable:hover{border-color:rgba(242,184,75,.28);background:rgba(242,184,75,.08);transform:translateY(-1px)}
.felix-collection-item-main{display:flex;align-items:center;gap:12px;min-width:0}
.felix-collection-icon{width:36px;height:36px;border-radius:10px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-collection-icon.fallback{display:block}
.felix-collection-name{min-width:0;overflow-wrap:anywhere}
.felix-collection-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
.felix-collection-status.owned{background:rgba(74,128,89,.18);border:1px solid rgba(116,196,139,.24);color:#d7f4df}
.felix-collection-status.locked{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:var(--muted)}
.felix-guide-overlay{position:fixed;inset:0;z-index:2000;background:rgba(10,12,18,.76);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px}
.felix-guide-modal{width:min(920px,100%);max-height:90vh;overflow:auto;background:linear-gradient(180deg,#232323,#1a1a1a);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:22px;box-shadow:0 28px 80px rgba(0,0,0,.48)}
.felix-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.felix-guide-titlewrap{display:flex;align-items:flex-start;gap:14px;min-width:0}
.felix-guide-image{width:72px;height:72px;border-radius:18px;object-fit:cover;background:rgba(255,255,255,.06);flex-shrink:0}
.felix-guide-image.fallback{display:block}
.felix-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.felix-guide-description{margin:0;color:var(--text);line-height:1.55}
.felix-guide-notes{margin:14px 0 0;padding-left:18px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.felix-guide-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.felix-empty.small{font-size:.95rem}
.felix-tracker-tabs{margin-bottom:16px}
.felix-tracker-checklist,.felix-tracker-duty-list{display:flex;flex-direction:column;gap:12px}
.felix-tracker-check,.felix-tracker-duty-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.03)}
.felix-tracker-check.done,.felix-tracker-duty-item.done{border-color:rgba(90,196,140,.24);background:rgba(90,196,140,.07)}
.felix-tracker-duty-item.pending{border-color:rgba(255,196,90,.2);background:rgba(255,196,90,.06)}
.felix-tracker-check>div,.felix-tracker-duty-item>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.felix-tracker-check strong,.felix-tracker-duty-item strong{font-size:.98rem}
.felix-tracker-check span:not(.felix-tracker-box),.felix-tracker-duty-item span:not(.felix-tracker-box){color:var(--muted);line-height:1.45}
.felix-tracker-box{width:24px;height:24px;border-radius:8px;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:800;color:transparent;background:rgba(255,255,255,.04)}
.felix-tracker-box.done,.felix-tracker-check.done .felix-tracker-box{color:#11261b;background:rgba(90,196,140,.92);border-color:rgba(90,196,140,.92)}
.felix-tracker-detail-card-wide{grid-column:1 / -1}
.felix-tracker-subdetails{margin-top:10px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(0,0,0,.14);padding:10px 12px}
.felix-tracker-subdetails summary{cursor:pointer;font-weight:800;color:var(--text);list-style:none}
.felix-tracker-subdetails summary::-webkit-details-marker{display:none}
.felix-tracker-subdetails summary::after{content:"▾";float:right;color:var(--muted)}
.felix-tracker-subdetails[open] summary::after{content:"▴"}
.felix-tracker-sublist{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.felix-tracker-sublist li{color:var(--muted);line-height:1.4}
@media (max-width: 1180px){.felix-main-grid{grid-template-columns:1fr}.felix-side-column{order:-1}}
@media (max-width: 900px){.felix-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.felix-detail-grid,.felix-subgrid,.felix-device-grid,.felix-collection-list,.felix-guide-grid,.felix-form-grid,.felix-mirror-board{grid-template-columns:1fr}.felix-mirror-board{grid-template-areas:"stage" "main-hand" "head" "off-hand" "body" "hands" "legs" "feet" "earrings" "necklace" "bracelets" "soul-crystal" "left-ring" "right-ring"}}
@media (max-width: 560px){.felix-stat-grid{grid-template-columns:1fr}.felix-inline-card,.felix-device-head,.felix-collection-item,.felix-guide-head,.felix-guide-titlewrap,.felix-fc-member{flex-direction:column;align-items:flex-start}.felix-session-metrics{justify-content:flex-start}.felix-collection-status{align-self:flex-start}.felix-guide-overlay{padding:14px}.felix-guide-modal{padding:16px}}
.felix-team-tabs,
.felix-team-inner-tabs,
.felix-expansion-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:16px;
}

.felix-muted{
  color:var(--muted);
  font-size:13px;
}

.felix-pill{
  display:inline-flex;
  align-items:center;
  margin:2px 4px 2px 0;
  padding:2px 8px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.02em;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
}

.felix-pill.felix-pill-subtle{
  opacity:.88;
  font-size:10px;
  font-weight:600;
}

.felix-social-radar{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.08);
}

.felix-social-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

@media (max-width:900px){
  .felix-social-columns{grid-template-columns:1fr}
}

.felix-rp-scene-card{
  margin-top:16px;
}

.felix-rp-scene-create{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-bottom:10px;
}

.felix-rp-scene-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 8px;
}

.felix-rp-scene-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:var(--text);
  cursor:pointer;
  font:inherit;
  font-size:13px;
  font-weight:700;
}

.felix-rp-scene-tab-label{
  line-height:1.2;
}

.felix-rp-scene-tab:hover{
  border-color:rgba(255,255,255,.2);
  background:rgba(255,255,255,.07);
}

.felix-rp-scene-tab.active{
  border-color:rgba(242,184,75,.45);
  background:rgba(242,184,75,.12);
  color:#fff5d6;
}

.felix-rp-scene-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:6px;
}

.felix-rp-scene-toolbar-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
  margin:0;
  cursor:pointer;
  user-select:none;
}

.felix-rp-scene-toolbar-check input{
  margin:0;
}

.felix-rp-scene-live-hint{
  margin:0 0 12px;
  font-size:12px;
}

.felix-rp-scene-tag-picks{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  align-items:center;
  margin:0 0 10px;
  font-size:13px;
}

.felix-rp-scene-tag-pick{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  user-select:none;
}

.felix-rp-scene-tag-pick input{
  margin:0;
}

.felix-rp-scene-owner-tags{
  margin:0 0 14px;
  padding-bottom:4px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.felix-rp-scene-share-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:0 0 12px;
}

.felix-rp-scene-members-wrap{
  margin-bottom:14px;
}

.felix-rp-feed-card{
  margin-top:16px;
}

.felix-rp-feed{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:420px;
  overflow:auto;
}

.felix-rp-line{
  margin:0;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
}

.felix-rp-line.felix-rp-own{
  border-color:rgba(212,175,55,.35);
  background:rgba(212,175,55,.08);
}

.felix-rp-line.felix-rp-line-emote .felix-rp-text{
  font-style:italic;
  color:#e8eaef;
}

.felix-rp-line.felix-rp-line-emote.felix-rp-own .felix-rp-channel{
  background:rgba(147,197,253,.18);
}

.felix-rp-meta{
  font-size:12px;
  color:var(--muted);
  margin-bottom:6px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.felix-rp-channel{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding:1px 6px;
  border-radius:4px;
  background:rgba(255,255,255,.1);
}

.felix-rp-time{
  margin-left:auto;
  font-variant-numeric:tabular-nums;
}

.felix-rp-text{
  font-size:14px;
  line-height:1.45;
  white-space:pre-wrap;
  word-break:break-word;
}

.felix-table-wrap{
  width:100%;
  overflow:auto;
}

.felix-table{
  width:100%;
  border-collapse:collapse;
}

.felix-table th,
.felix-table td{
  padding:12px 10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  text-align:left;
  vertical-align:top;
}

.felix-table th{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}

.felix-mount-subtle{
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
}

.felix-status-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.felix-member-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-size:12px;
}

.felix-member-status.owned{
  color:#9dd9a2;
  border-color:rgba(157,217,162,.35);
}

.felix-member-status.missing{
  color:#ffb4a2;
  border-color:rgba(255,180,162,.35);
}

.felix-member-status.n-a---sync{
  color:#ffd37a;
  border-color:rgba(242,184,75,.28);
}

.btn.small{
  padding:6px 10px;
  font-size:12px;
}

.felix-divider{
  border:none;
  border-top:1px solid rgba(255,255,255,.08);
  margin:18px 0;
}

.felix-resource-grid{
  display:grid;
  gap:12px;
}
.felix-resource-card{padding:16px;border-radius:18px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px}
.felix-resource-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.felix-resource-video,
.felix-resource-image{width:100%;max-height:340px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#000;object-fit:contain}
.felix-embed-frame{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#000}
.felix-embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.felix-progress-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}
.felix-progress-pill.low{background:rgba(155,43,43,.18);border:1px solid rgba(214,86,86,.28);color:#ffd8d8}
.felix-progress-pill.mid{background:rgba(242,184,75,.14);border:1px solid rgba(242,184,75,.28);color:#ffe9b2}
.felix-progress-pill.high{background:rgba(74,128,89,.18);border:1px solid rgba(116,196,139,.24);color:#d7f4df}

.felix-toast-tray{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:100050;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
  max-width:min(420px,calc(100vw - 32px));
  pointer-events:none;
}

.felix-toast{
  pointer-events:auto;
  padding:12px 16px;
  border-radius:12px;
  font-size:14px;
  line-height:1.35;
  color:#f4f6fb;
  background:rgba(22,26,36,.94);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(0,0,0,.35);
  opacity:0;
  transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease;
}

.felix-toast-visible{
  opacity:1;
  transform:translateY(0);
}

.felix-toast-error{
  border-color:rgba(248,113,113,.45);
  background:rgba(60,24,24,.95);
}
