/* ============ Fancy text generator (fancy-text-generator/index.php) ============ */
.fg-label{ display:block; font-weight:600; margin-bottom:6px; color:var(--cc-text); }
.fg-field{
  width:100%; box-sizing:border-box; padding:12px 14px; font-size:1.1rem; line-height:1.5; min-height:96px; resize:vertical;
  font-family:system-ui,"Segoe UI","Noto Sans",sans-serif; color:var(--cc-text); background:var(--cc-surface);
  border:1px solid var(--cc-border); border-radius:var(--cc-radius-md);
}
.fg-field:focus{ outline:none; border-color:var(--cc-primary); box-shadow:0 0 0 3px rgba(79,70,229,.15); }
.fg-row-tools{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:10px; }
.fg-hint{ color:var(--cc-text-muted); font-size:.85rem; margin-right:4px; }
.fg-btn{
  appearance:none; cursor:pointer; border:1px solid var(--cc-primary); background:var(--cc-surface); color:var(--cc-primary);
  padding:7px 16px; border-radius:var(--cc-radius-sm); font-weight:600; font-size:.9rem;
}
.fg-btn:hover{ background:var(--cc-surface-2); color:var(--cc-primary-dark); }
.fg-btn:focus-visible, .fg-chip:focus-visible, .fg-copy:focus-visible{ outline:2px solid var(--cc-primary); outline-offset:2px; }

.fg-chip{
  appearance:none; cursor:pointer; background:var(--cc-surface-2); color:var(--cc-text);
  border:1px solid var(--cc-border); border-radius:999px; padding:5px 14px; font-size:.88rem;
}
.fg-chip:hover{ border-color:var(--cc-primary); color:var(--cc-primary); }
.fg-chip[aria-pressed="true"]{ background:var(--cc-primary); border-color:var(--cc-primary); color:#fff; font-weight:600; }
.fg-sample{
  appearance:none; cursor:pointer; background:none; border:0; border-bottom:1px dashed var(--cc-text-muted);
  border-radius:0; padding:2px 1px; font-size:.88rem; color:var(--cc-primary);
}
.fg-sample:hover{ border-bottom-style:solid; color:var(--cc-primary-dark); }
.fg-sample:focus-visible{ outline:2px solid var(--cc-primary); outline-offset:2px; }
.fg-samples{ display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; margin-top:12px; }
.fg-browse{ margin:30px 0 12px; padding-top:18px; border-top:1px solid var(--cc-border); }
.fg-browse .fg-bar{ margin:0; }
.fg-browse-title{ font-weight:600; font-size:.95rem; margin:0 0 10px; color:var(--cc-text); }

.fg-bar{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; margin:26px 0 12px; }
.fg-cats{ display:flex; flex-wrap:wrap; gap:8px; }
.fg-count{ color:var(--cc-text-muted); font-size:.88rem; }

.fg-list{ border:1px solid var(--cc-border); border-radius:var(--cc-radius-md); overflow:hidden; background:var(--cc-surface); }
.fg-list[hidden], .fg-empty[hidden]{ display:none; }
.fg-cat{ padding:9px 16px; background:var(--cc-border); font-weight:700; font-size:.92rem; color:var(--cc-text); }
.fg-row{
  display:grid; grid-template-columns:190px 1fr 86px; align-items:center; gap:14px;
  padding:10px 16px; border-top:1px solid var(--cc-border);
}
.fg-cat + .fg-row{ border-top:none; }
.fg-row:hover{ background:rgba(79,70,229,.05); }
.fg-name{ font-size:.86rem; font-weight:600; color:var(--cc-text-muted); }
.fg-out{
  font-size:1.3rem; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; min-width:0;
  font-family:system-ui,"Segoe UI","Segoe UI Symbol","Noto Sans","Noto Sans Math","Noto Sans Symbols","Noto Sans Symbols 2",sans-serif;
}
.fg-out--tall{ padding:14px 0; line-height:2.3; overflow:hidden; }
.fg-act{ text-align:right; }
.fg-copy{
  appearance:none; cursor:pointer; min-width:72px; padding:6px 12px; border-radius:var(--cc-radius-sm);
  border:1px solid var(--cc-primary); background:var(--cc-primary); color:#fff; font-weight:600; font-size:.85rem;
}
.fg-copy:hover{ background:var(--cc-primary-dark); border-color:var(--cc-primary-dark); }
.fg-copy.is-done{ background:#059669; border-color:#059669; }
.fg-empty{ padding:26px; text-align:center; color:var(--cc-text-muted); border:1px dashed var(--cc-border); border-radius:var(--cc-radius-md); }

@media (max-width:640px){
  .fg-row{ grid-template-columns:1fr auto; grid-template-areas:"name name" "out act"; gap:4px 12px; }
  .fg-name{ grid-area:name; }
  .fg-out{ grid-area:out; font-size:1.2rem; }
  .fg-act{ grid-area:act; align-self:start; }
}

.fg-toast{
  position:fixed; left:50%; bottom:28px; transform:translateX(-50%); background:var(--cc-text); color:#fff;
  padding:8px 18px; border-radius:999px; font-size:.9rem; z-index:9999; opacity:0; pointer-events:none; transition:opacity .2s;
}
.fg-toast.is-on{ opacity:1; }
@media (prefers-reduced-motion:reduce){ .fg-toast{ transition:none; } }

.fg-about{ margin-top:34px; padding-top:6px; border-top:1px solid var(--cc-border); }
.fg-about h2{ font-size:1.55rem; margin:22px 0 8px; }
.fg-about h3{ font-size:1.02rem; margin:26px 0 10px; }
.fg-about p, .fg-about li{ line-height:1.65; }
.fg-defs{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.fg-def{ border:1px solid var(--cc-border); border-radius:var(--cc-radius-md); padding:12px 16px; background:var(--cc-surface); }
.fg-def strong{ display:block; margin-bottom:4px; }
.fg-def p{ margin:0 0 6px; font-size:.92rem; }
.fg-def .fg-eg{ font-size:1.15rem; margin:0 0 6px; font-family:system-ui,"Segoe UI","Segoe UI Symbol","Noto Sans Math","Noto Sans Symbols 2",sans-serif; }
.fg-def .fg-src{ font-size:.82rem; color:var(--cc-text-muted); margin:0; }
.fg-note{ margin-top:12px; padding:14px 18px; border-radius:var(--cc-radius-md); border:1px solid var(--cc-border); border-left:6px solid #f59e0b; background:linear-gradient(90deg,#fffbeb 0,var(--cc-surface) 55%); }
.fg-note p{ margin:0 0 8px; }
.fg-note ul{ margin:0; padding-left:20px; }