/* webai/1012 webapp pages — minimal, theme-agnostic styles. */
.fs-webapp { --fs-bg:#f7f7f5; --fs-fg:#1f2328; --fs-mut:#6b7280; --fs-line:#e5e7eb; --fs-accent:#7c5c3b; }
.fs-webapp .fs-input, .fs-webapp textarea, .fs-webapp input[type=email], .fs-webapp input[type=text], .fs-webapp input[type=number] {
  width:100%; padding:.6rem .7rem; margin:.3rem 0; border:1px solid var(--fs-line); border-radius:.5rem; font:inherit; background:#fff; color:var(--fs-fg);
}
.fs-webapp .fs-btn, .fs-webapp .fs-chip, .fs-webapp .fs-tab {
  display:inline-block; padding:.5rem .9rem; margin:.2rem .3rem .2rem 0; border:1px solid var(--fs-line);
  border-radius:.5rem; background:#fff; color:var(--fs-fg); cursor:pointer; font:inherit; text-decoration:none;
}
.fs-webapp .fs-btn:hover, .fs-webapp .fs-chip:hover { background:var(--fs-bg); }
.fs-webapp .fs-chip.on { background:var(--fs-accent); color:#fff; border-color:var(--fs-accent); }
.fs-webapp .fs-danger { color:#b91c1c; border-color:#fca5a5; }
.fs-webapp .fs-link { background:none; border:none; color:var(--fs-accent); cursor:pointer; padding:0; margin:.4rem 0; font:inherit; }
.fs-webapp .fs-chat, .fs-webapp .fs-thread { display:flex; flex-direction:column; gap:.6rem; max-height:60vh; overflow:auto; padding:.5rem; background:var(--fs-bg); border-radius:.6rem; }
.fs-webapp .fs-msg { display:flex; }
.fs-webapp .fs-msg-user { justify-content:flex-end; }
.fs-webapp .fs-msg-user .fs-bubble, .fs-webapp .fs-bubble { background:#fff; border:1px solid var(--fs-line); border-radius:.7rem; padding:.5rem .7rem; max-width:80%; }
.fs-webapp .fs-msg-user .fs-bubble { background:#eef2ff; }
.fs-webapp .fs-questions { margin:.4rem 0 0 1rem; color:var(--fs-mut); }
.fs-webapp .fs-cites { margin-top:.3rem; color:var(--fs-mut); font-size:.8rem; }
.fs-webapp .fs-score, .fs-webapp .fs-progress { margin:.6rem 0; padding:.6rem; background:#fff7ed; border:1px solid #fed7aa; border-radius:.5rem; }
.fs-webapp .fs-compose { margin-top:.6rem; }
.fs-webapp .fs-compose-row { display:flex; gap:.5rem; align-items:center; }
.fs-webapp .fs-card, .fs-webapp .fs-case, .fs-webapp .fs-review, .fs-webapp .fs-panel {
  border:1px solid var(--fs-line); border-radius:.6rem; padding:.8rem; margin:.5rem 0; background:#fff;
}
.fs-webapp .fs-card-head { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.fs-webapp .fs-rating { color:#b45309; }
.fs-webapp .fs-headline { color:var(--fs-mut); margin:.2rem 0; }
.fs-webapp .fs-tags { display:flex; flex-wrap:wrap; gap:.3rem; margin:.3rem 0; }
.fs-webapp .fs-tag { background:var(--fs-bg); border:1px solid var(--fs-line); border-radius:999px; padding:.1rem .6rem; font-size:.8rem; }
.fs-webapp .fs-meta { color:var(--fs-mut); font-size:.85rem; }
.fs-webapp .fs-filters { display:flex; flex-wrap:wrap; margin-bottom:.5rem; }
.fs-webapp .fs-reason { background:#f0fdf4; border-left:3px solid #16a34a; padding:.4rem .6rem; border-radius:.3rem; }
.fs-webapp .fs-actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.5rem; }
.fs-webapp .fs-status { background:var(--fs-bg); border:1px solid var(--fs-line); border-radius:999px; padding:.1rem .6rem; font-size:.8rem; }
.fs-webapp .fs-timeline { margin:.3rem 0 .8rem 1rem; color:var(--fs-mut); font-size:.85rem; }
.fs-webapp .fs-tabs { display:flex; flex-wrap:wrap; border-bottom:1px solid var(--fs-line); margin-bottom:.6rem; }
.fs-webapp .fs-tab { border:none; border-bottom:2px solid transparent; border-radius:0; }
.fs-webapp .fs-tab:hover { border-bottom-color:var(--fs-accent); }
.fs-webapp .fs-pre { background:var(--fs-bg); padding:.6rem; border-radius:.4rem; overflow:auto; font-size:.85rem; }
.fs-webapp .fs-price { font-weight:600; }
.fs-webapp .fs-master-detail h2 { margin-top:.2rem; }
@media (prefers-color-scheme: dark) {
  .fs-webapp { --fs-bg:#1b1b1d; --fs-fg:#e5e7eb; --fs-mut:#9ca3af; --fs-line:#333; --fs-accent:#c9a06a; }
  .fs-webapp .fs-input, .fs-webapp textarea, .fs-webapp input, .fs-webapp .fs-btn, .fs-webapp .fs-chip, .fs-webapp .fs-tab, .fs-webapp .fs-card, .fs-webapp .fs-panel, .fs-webapp .fs-case, .fs-webapp .fs-review { background:#232326; color:var(--fs-fg); }
  .fs-webapp .fs-msg-user .fs-bubble { background:#2b2b52; }
  .fs-webapp .fs-score, .fs-webapp .fs-progress { background:#3a2a12; border-color:#5a3f1a; }
  .fs-webapp .fs-reason { background:#12301f; }
}
