/* Phrase Board (placeholder name) — gestalt phrase app.
   Buttons never move within a layout: fixed order, fixed grid. */
:root{
  --bg:#10160f; --panel:#1a2418; --panel2:#232f22; --ink:#f2f0e6; --inkDim:#b9bcae;
  --accent:#7fc97f; --accent2:#e8c66a; --danger:#e08a8a;
  --cellMin:118px; --labelSize:1.35rem;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit}
.screen{max-width:1100px;margin:0 auto;padding:14px 16px 28px}
.card{background:var(--panel);border-radius:16px;padding:22px;margin-top:18px;line-height:1.55}
.stamp{font-weight:bold;letter-spacing:.04em;color:var(--accent2)}
.placeholderNote{color:var(--inkDim);font-style:italic}
.madeFor{font-size:1.15rem}
.bigbtn{background:var(--panel2);border:2.5px solid var(--accent);border-radius:12px;
  padding:12px 20px;min-height:56px;font-weight:bold;cursor:pointer}
.bigbtn.small{min-height:48px;padding:8px 14px}
.bigbtn.danger{border-color:var(--danger)}
.bigbtn:disabled{opacity:.45}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
.note{color:var(--inkDim);line-height:1.5}
input[type=text],input[type=password],input[type=number],select{
  background:#0d120c;color:var(--ink);border:2px solid #3d4a3b;border-radius:10px;
  padding:10px;min-height:48px;font:inherit}
#topBar{display:flex;align-items:center;gap:12px;margin-bottom:8px}
#appName{position:relative;overflow:hidden;font-size:1.5rem;font-weight:bold;
  padding:12px 16px;border-radius:12px;background:var(--panel);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none}
#holdFill{position:absolute;left:0;bottom:0;height:4px;background:var(--accent2);width:0}
.expTag{font-size:.75rem;color:var(--accent2);border:1.5px solid var(--accent2);border-radius:6px;padding:2px 7px;vertical-align:middle}
.chrome{background:var(--panel2);border:2px solid var(--inkDim);border-radius:12px;
  min-height:56px;padding:10px 18px;font-weight:bold;cursor:pointer}
.voiceNote{background:#3a2f14;border:1.5px solid var(--accent2);border-radius:10px;padding:10px 14px}
#situationTabs,#partnerTabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
#situationTabs button,#partnerTabs button{background:var(--panel);border:2px solid #3d4a3b;
  border-radius:999px;padding:10px 18px;min-height:52px;font-weight:bold;cursor:pointer}
#situationTabs button[aria-current=page],#partnerTabs button[aria-current=page]{border-color:var(--accent);background:var(--panel2)}
#grid,#partnerGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.cell{background:var(--panel);border:3px solid #3d4a3b;border-radius:16px;
  min-height:var(--cellMin);padding:16px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px}
.cell.pressed{border-color:var(--accent);background:var(--panel2)}
.phraseText{font-size:var(--labelSize);font-weight:bold;line-height:1.3;overflow-wrap:anywhere}
.phraseMeta{color:var(--inkDim);font-size:.95rem}
.emptyNote{color:var(--inkDim);font-size:1.1rem;padding:18px 4px}
.versionTag{color:var(--inkDim);font-size:.8rem;text-align:center;margin-top:22px}
.remixRow{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 18px}
.halfBtn{background:var(--panel);border:3px solid var(--accent2);border-radius:14px;
  min-height:72px;padding:12px 18px;font-size:1.15rem;font-weight:bold;cursor:pointer}
.gateOverlay{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;z-index:50}
.gateOverlay[hidden]{display:none}
.gateCard{background:var(--panel);border-radius:16px;padding:22px;max-width:440px;width:92%;line-height:1.5}
.gateQ{font-size:1.6rem;font-weight:bold}
.gateMsg{color:var(--accent2);font-weight:bold}
.setupHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.setupBlock{background:var(--panel);border-radius:14px;padding:16px 18px;margin:14px 0;line-height:1.5}
.setupBlock h3{margin-top:4px}
.recRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1.5px solid #333c2f;padding:10px 0}
.recBadge{font-size:.85rem;border:1.5px solid var(--inkDim);border-radius:6px;padding:2px 8px;color:var(--inkDim)}
.recBadge.have{border-color:var(--accent);color:var(--accent)}
.fileLabel{display:inline-flex;align-items:center;cursor:pointer}
.modelGroup{margin:10px 0}
.modelSit{margin:16px 0 4px}
.modelRow{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;border-top:1.5px solid #333c2f;padding:12px 0}
.modelTexts{flex:1 1 260px;display:flex;flex-direction:column;gap:5px}
.modelEn{font-weight:bold;font-size:1.12rem}
.modelEs{color:var(--ink)}
.modelDraft{font-size:.8rem;border:1.5px solid var(--accent2);color:var(--accent2);border-radius:6px;padding:1px 7px;margin-left:8px;vertical-align:middle}
.modelTag{font-size:.8rem;border:1.5px solid var(--inkDim);color:var(--inkDim);border-radius:6px;padding:1px 7px;align-self:flex-start}
.modelActions{display:flex;gap:8px;flex-wrap:wrap}
@media (min-width:700px){
  :root{--cellMin:140px;--labelSize:1.55rem}
  #grid,#partnerGrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
}
@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important}
}
