/* styles.css — Final rebuild: mobile-first, dropdown menu, scrollable browse modal, dark button bg + light text */

:root{
  --bg:#f7f7fb; --card:#ffffff; --card-back:#f0f6ff; --text:#0f1724; --muted:#6b7280; --accent:#4f46e5; --good:#16a34a; --danger:#ef4444;
  --border:rgba(0,0,0,0.06); --btn-size:44px; --ico-size:18px; --tts-size:44px; --arrow-size:36px; --pill-bg:rgba(79,70,229,0.06);
}

/* Base */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}

/* Topbar */
.topbar{position:sticky;top:0;display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.94);z-index:120}
.left{display:flex;align-items:center;gap:8px;position:relative}
.center{flex:1;display:flex;justify-content:center}
.right{display:flex;align-items:center;gap:8px}
.icon-btn{width:var(--btn-size);height:var(--btn-size);display:inline-grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:transparent;cursor:pointer;color:var(--text)}
.icon-btn.small{width:36px;height:36px}
.icon-btn .ico{width:var(--ico-size);height:var(--ico-size)}
.search{width:86vw;max-width:640px;padding:10px;border-radius:999px;border:1px solid var(--border);outline:none}

/* Dropdown menu (from top) */
.menu-drop{position:absolute;left:8px;top:56px;background:var(--card);border:1px solid var(--border);box-shadow:0 12px 30px rgba(0,0,0,0.08);border-radius:10px;padding:8px;display:none;flex-direction:column;gap:6px;z-index:140;width:220px}
.menu-drop[aria-hidden="false"]{display:flex}
.menu-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--text)}
.menu-item .ico{width:16px;height:16px}
.menu-item span{font-size:0.95rem}

/* Stage */
.main{padding:16px 12px 96px}
.stage{display:flex;align-items:center;justify-content:center;gap:10px;max-width:980px;margin:0 auto}
.side-arrow{width:var(--arrow-size);height:var(--arrow-size);border-radius:10px;border:1px solid var(--border);display:inline-grid;place-items:center;background:transparent;cursor:pointer;color:var(--text)}

/* Card */
.card{width:min(860px,94vw);height:clamp(280px,56vh,520px);perspective:1200px;border-radius:14px;position:relative}
.card-inner{width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d}
.card.is-flipped .card-inner{transform:rotateY(180deg)}
.card-face{position:absolute;inset:0;border-radius:14px;padding:18px;display:grid;grid-template-rows:1fr auto;place-items:center;backface-visibility:hidden;border:1px solid var(--border);box-shadow:0 18px 40px rgba(16,24,40,0.06);overflow:hidden;background:var(--card)}
.card-face.back{background:var(--card-back);transform:rotateY(180deg)}
.text{font-size:clamp(18px,4vw,30px);text-align:center;line-height:1.25;overflow:auto;max-height:78%;white-space:pre-wrap;word-break:break-word;padding:6px;width:100%}
.meta{margin-top:10px;color:var(--muted);font-size:.9rem}

/* TTS */
.tts-btn{position:absolute;top:10px;right:10px;width:var(--tts-size);height:var(--tts-size);border-radius:10px;border:1px solid var(--border);background:transparent;display:inline-grid;place-items:center;cursor:pointer}
.tts-btn .ico{width:18px;height:18px}

/* Controls */
.controls{max-width:980px;margin:14px auto;display:flex;flex-direction:column;align-items:center;gap:12px}
.control{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:transparent;cursor:pointer}
.ratings{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.rating{padding:10px 12px;border-radius:12px;border:1px solid var(--border);cursor:pointer}
.icon-text{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);cursor:pointer}
.icon-text .ico{width:16px;height:16px}
.icon-text.danger{color:var(--danger)}

/* Footer */
.status{position:fixed;left:0;right:0;bottom:0;padding:10px 14px;background:rgba(255,255,255,0.96);border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:.9rem;z-index:120}

/* Modal */
.modal{display:none}
.modal[aria-hidden="false"]{display:block}
.modal .backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:130}
.panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(980px,96vw);height:min(86vh,760px);background:var(--card);border-radius:12px;border:1px solid var(--border);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;z-index:140}
.panel-head{padding:12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}
.panel-tools{display:flex;gap:8px;align-items:center}
.panel-body{overflow:auto;padding:8px 12px}
.browse-content{max-height:68vh;overflow-y:auto;padding-right:6px}
.editor-toolbar{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.02)}
.cards{width:100%;border-collapse:collapse}
.cards thead th{position:sticky;top:0;background:rgba(0,0,0,0.03);padding:10px;text-align:left;z-index:10}
.cards td{padding:8px;border-top:1px solid var(--border);vertical-align:top}
.inline.editor{width:100%;min-height:48px;padding:8px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);resize:vertical;outline:none}
.icon-mini{padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:transparent;cursor:pointer}

/* show html */
.show-html{font-family:monospace;white-space:pre-wrap}

/* Responsive tweaks */
@media (max-width:600px){
  :root{ --tts-size:46px; --arrow-size:32px; --ico-size:16px; --btn-size:40px }
  .menu-drop{left:6px;top:56px;width:90vw}
  .panel{width:94vw;height:90vh}
  .search{width:76vw}
}

/* Dark theme: buttons bg dark + light text */
body.dark{ --bg:#071028; --card:#0f1724; --card-back:#0b1a33; --text:#f6f7fb; --muted:#b8c2ff; --border:rgba(255,255,255,0.08); --pill-bg:rgba(255,255,255,0.03) }
body.dark{background:var(--bg);color:var(--text)}
body.dark .icon-btn, body.dark .icon-text, body.dark .control, body.dark .menu-item{ background:#0b1224; color:var(--text); border-color:var(--border) }
body.dark .menu-drop{background:#07162d}
body.dark .tts-btn{background:#0b1224; color:var(--text); border-color:var(--border) }
