:root{
  --bg:#f6f8f7; --card:#ffffff; --ink:#2f3b3a; --muted:#6b7a78; --line:#dfe7e4;
  --accent:#5b9e8f; --accent-soft:#e3f1ec; --blue:#6f8fc4; --warn:#c77b6b;
  --c1:#e3f1ec; --c2:#fbeee2; --c3:#e6edf8; --c4:#f1e9f6; --c5:#fdf6dc; --c6:#e9f3f8;
  --radius:22px; --cols:4;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}
body{min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:5;background:var(--bg);padding:10px 12px 6px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--line)}
.strip{display:flex;gap:8px;align-items:stretch;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:6px;min-height:72px}
.strip.hidden{display:none}
.strip-words{flex:1;display:flex;gap:6px;overflow-x:auto;align-items:center;padding:0 4px}
.strip-hint{color:var(--muted);font-size:18px;padding-left:6px}
.chip{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--accent-soft);border-radius:12px;min-width:58px;height:58px;padding:2px 8px;font-size:13px;font-weight:600}
.chip .e{font-size:26px;line-height:1}
.chip img{width:30px;height:30px;object-fit:cover;border-radius:6px}
.strip-btn{flex:none;width:64px;border:none;border-radius:14px;font-size:26px;background:var(--accent-soft)}
.strip-btn.clear{background:#f4ece9}
.tabs{display:flex;gap:8px;margin-top:8px;align-items:center}
.tab{border:2px solid var(--line);background:var(--card);border-radius:999px;padding:10px 18px;font-size:17px;font-weight:600;min-height:48px}
.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
.hold{margin-left:auto;display:flex;align-items:center;gap:8px;border:2px solid var(--line);background:var(--card);border-radius:999px;padding:4px 14px 4px 4px;min-height:48px;position:relative;user-select:none;-webkit-user-select:none;touch-action:none}
.hold svg{width:40px;height:40px;transform:rotate(-90deg)}
.hold .ring-bg{fill:none;stroke:var(--line);stroke-width:4}
.hold .ring{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:119.4}
.hold-icon{position:absolute;left:4px;width:40px;text-align:center;font-size:17px}
.hold-label{font-size:14px;color:var(--muted);font-weight:600}
main{padding:12px}

.view{display:none}.view.active{display:block}
.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:12px}
@media (min-width:560px){:root{--cols:4}}
@media (min-width:820px){:root{--cols:5}}
@media (min-width:1000px){:root{--cols:6}}
@media (max-width:559px){:root{--cols:3}}
.tile{position:relative;border:none;border-radius:var(--radius);background:var(--card);min-height:124px;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;box-shadow:0 2px 0 var(--line),0 0 0 2px var(--line) inset;transition:transform .12s ease, box-shadow .2s ease}
.tile .pic{font-size:clamp(44px,8vw,64px);line-height:1;display:flex;align-items:center;justify-content:center;height:62%;width:100%}
.tile .pic img{max-width:86%;max-height:100%;object-fit:cover;border-radius:14px}
.tile .word{font-size:clamp(17px,2.4vw,22px);font-weight:700;text-align:center;line-height:1.1}
.tile .snd{position:absolute;top:8px;right:10px;font-size:15px;opacity:.65}
.tile:active{transform:scale(.97)}
.tile.lit{box-shadow:0 0 0 5px var(--accent) inset,0 0 0 8px rgba(91,158,143,.18);transform:scale(1.03)}
.notice{background:#eef3fb;border:2px solid #d3def2;border-radius:14px;padding:12px 14px;font-weight:700;font-size:17px;margin:0 0 8px}
.sub{color:var(--muted);margin:4px 0 12px}.small{font-size:14px;margin:4px 0}
.empty{color:var(--muted);text-align:center;padding:30px;font-size:18px}
.overlay{position:fixed;inset:0;z-index:20;background:rgba(47,59,58,.35);display:flex;align-items:center;justify-content:center;padding:16px}
.overlay[hidden]{display:none}
.big-card{background:var(--card);border-radius:28px;padding:28px;width:min(560px,100%);text-align:center}
.big-pic{font-size:min(40vw,220px);line-height:1.1}
.big-pic img{width:min(70vw,320px);height:min(70vw,320px);object-fit:cover;border-radius:24px}
.big-label{font-size:44px;font-weight:800;margin:8px 0 18px}
.big-actions,.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center}
.row.end{justify-content:flex-end;margin-top:14px}
.pill{border:2px solid var(--line);background:var(--card);border-radius:999px;padding:10px 18px;font-size:16px;font-weight:600;min-height:48px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.pill.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.pill.ghost{background:transparent}
.pill.danger{background:var(--warn);border-color:var(--warn);color:#fff}
.pill.danger-ghost{color:var(--warn);border-color:#ecd3cd}
.pill.rec.on{background:var(--warn);border-color:var(--warn);color:#fff}
.pill:disabled{opacity:.45}
.overlay.parent{align-items:flex-start;overflow-y:auto}
.panel{background:var(--card);border-radius:24px;padding:20px;width:min(860px,100%);margin:auto}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.panel-head h2{margin:0;font-size:26px}
.panel-actions{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 12px}
.settings{display:flex;gap:18px;flex-wrap:wrap;align-items:center;background:var(--bg);border-radius:14px;padding:10px 14px;margin-bottom:12px;font-weight:600}
.settings select{min-height:40px;border-radius:10px;border:2px solid var(--line);background:#fff;max-width:220px}
.check{display:flex;align-items:center;gap:8px}
.check input{width:22px;height:22px}
.edit-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.edit-item{display:flex;align-items:center;gap:10px;border:2px solid var(--line);border-radius:16px;padding:8px 10px;background:#fff}
.edit-item.drag-over{border-color:var(--blue);background:var(--c3)}
.edit-item .grip{cursor:grab;font-size:22px;color:var(--muted);padding:0 4px;touch-action:none}
.edit-item .mini{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:32px;flex:none}
.edit-item .mini img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.edit-item .name{flex:1;font-weight:700;font-size:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edit-item .name small{display:block;font-weight:500;color:var(--muted);font-size:13px}
.icon-btn{width:46px;height:46px;border-radius:12px;border:2px solid var(--line);background:#fff;font-size:18px;flex:none}
.icon-btn.del{color:var(--warn)}
.editor{max-width:560px}
.edit-preview{display:flex;justify-content:center;margin-bottom:8px}
.edit-preview .tile{width:150px}
.field{display:block;font-weight:700;margin:10px 0}
.field input[type=text]{display:block;width:100%;margin-top:6px;font-size:20px;padding:10px 12px;border-radius:12px;border:2px solid var(--line)}
.emoji-pick{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto;padding:4px;border:2px dashed var(--line);border-radius:12px}
.emoji-pick button{width:44px;height:44px;font-size:26px;border:none;background:var(--bg);border-radius:10px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;z-index:50;font-weight:600;max-width:90vw;text-align:center}
@media (max-width:559px){
  main{padding:6px}.grid{gap:8px}
  .tab{padding:8px 12px;font-size:15px}
  .hold-label{display:none}.hold{padding:4px}
  .tile{min-height:116px}
  .edit-item{flex-wrap:wrap}
  .big-label{font-size:34px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.bg-c1.bg-c1{background:var(--c1)}.bg-c2.bg-c2{background:var(--c2)}.bg-c3.bg-c3{background:var(--c3)}.bg-c4.bg-c4{background:var(--c4)}.bg-c5.bg-c5{background:var(--c5)}.bg-c6.bg-c6{background:var(--c6)}
.icon-btn:disabled{opacity:.3}
