:root{--bg:#f4f5f7;--panel:#ffffff;--ink:#191317;--muted:#667085;--line:#e4e7ec;--brand:#9b4f6b;--good:#d1fadf;--good-ink:#027a48}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app{height:100vh;overflow:hidden;display:flex}.sidebar{width:220px;flex:0 0 220px;background:#000;color:white;display:flex;flex-direction:column;padding:22px 14px}.brand{font-size:24px;font-weight:900;line-height:1.05;margin:0 8px 28px}.navButton{width:100%;border:0;border-radius:8px;padding:14px 16px;background:transparent;color:white;text-align:left;font-weight:700;margin-bottom:6px}.navButton.active{background:#242424}.logout{margin-top:auto;border:1px solid rgba(255,255,255,.28);background:transparent;color:white;border-radius:999px;padding:11px 16px;font-weight:700}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{min-height:74px;background:white;border-bottom:1px solid var(--line);padding:14px 28px;display:flex;align-items:center;gap:12px}.topbar h1{margin:0;flex:1 1;font-size:24px}.content{flex:1 1;min-height:0;overflow:auto;padding:24px}.card{background:white;border:1px solid var(--line);border-radius:8px;padding:18px}.message{background:#fff2cc;border-bottom:1px solid #f6e0a7;padding:10px 24px;font-size:14px}.row{align-items:center;gap:10px}.row,.wrap{display:flex}.wrap{flex-wrap:wrap;gap:8px}.stack{display:grid;grid-gap:16px;gap:16px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.wordWorkbench{display:grid;grid-gap:18px;gap:18px}.sectionHead{align-items:flex-start}.editorPanel h2,.groupPanel h2,.sectionHead h2,.sectionHead h3,.wordRules h2{margin:0}.editorPanel .muted,.groupPanel .muted,.wordRules .muted{margin:6px 0 0}.groupBlock,.levelBlock{display:grid;grid-gap:12px;gap:12px}.levelBlock+.groupBlock{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}.levelRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.levelButton{border:1px solid #d0d5dd;background:white;color:#1d2939;border-radius:8px;padding:16px 14px;font-weight:900;text-align:center}.levelButton.active{border-color:#111;background:#111;color:white}.groupGrid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-gap:8px;gap:8px}.groupTile,.groupTileEdit{min-width:0;min-height:92px;border:1px solid #d0d5dd;border-radius:8px;background:white}.groupTile{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:5px;gap:5px;padding:10px;color:#1d2939;text-align:left}.groupTile.active{border-color:#111;background:#111;color:white}.groupTileOrder{font-size:12px;font-weight:900;opacity:.7}.groupTileName{min-width:0;font-size:14px;font-weight:900;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.groupTileEditButton{justify-self:start;font-size:12px;font-weight:900;opacity:.68}.groupTileEdit{display:grid;grid-gap:8px;gap:8px;padding:8px}.groupTileEdit input{width:100%;border:0;border-bottom:1px solid #d0d5dd;outline:0;font-weight:800;min-width:0}.groupTileEdit button{border:0;border-radius:8px;background:#111;color:white;padding:7px 9px;font-size:12px;font-weight:900}.wordRules{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.toolbar{flex-wrap:wrap;justify-content:flex-end}.wordEditorLayout{grid-template-columns:minmax(0,3fr) minmax(340px,1.3fr);align-items:start}.levelBoardStack,.wordEditorLayout{display:grid;grid-gap:18px;gap:18px}.levelBoardStack{min-width:0}.levelBoardSection{display:grid;grid-template-columns:54px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:stretch}.levelRail{min-height:100%;border:1px solid #111;border-radius:8px;background:#111;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:14px 0;font-size:15px;font-weight:900;line-height:1}.levelBoardContent{min-width:0;display:grid;grid-gap:8px;gap:8px}.levelBoardHead{justify-content:space-between;align-items:center}.wordBoardScroll{overflow-x:auto;padding-bottom:8px}.wordBoard{min-width:0;display:grid;grid-gap:8px;gap:8px}.wordBoardRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:start}.topInsertRow{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--bg);padding-bottom:2px}.wordBoardCell{display:grid;grid-gap:6px;gap:6px;min-width:0}.insertSlot{height:28px;border:1px dashed #cbd5e1;border-radius:999px;background:rgba(255,255,255,.84);color:#667085;font-size:18px;line-height:1;font-weight:900;opacity:.28;transition:opacity .15s ease,border-color .15s ease,background .15s ease}.insertSlot.active,.insertSlot:hover,.wordBoardCell:hover .insertSlot{opacity:1;border-color:#111;background:#fff;color:#111}.insertSlot.top{opacity:.72}.emptyCell{min-height:124px;border:1px dashed #d0d5dd;border-radius:8px;background:rgba(255,255,255,.48);color:#98a2b3;font-weight:900}.emptyCell.active,.emptyCell:hover{border-color:#111;color:#111;background:white}.wordCard{min-height:124px;border:1px solid var(--line);border-radius:8px;background:white;padding:16px;text-align:left;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.wordCard:hover{transform:translateY(-1px);border-color:#98a2b3;box-shadow:0 10px 24px rgba(16,24,40,.08)}.wordCard.selected{border-color:#111;box-shadow:inset 0 0 0 2px #111}.wordCard.swapSource{border-color:#9b4f6b;background:#fff7fb}.wordCard.dropTarget{border-color:#12b76a;background:#f0fdf9}.wordTitle{display:flex;align-items:center;gap:10px}.wordTitle strong{flex:1 1;min-width:0;font-size:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dragHandle{color:#98a2b3;font-weight:900;letter-spacing:-5px;cursor:-webkit-grab;cursor:grab}.editorPanel{position:-webkit-sticky;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow-y:auto;display:grid;grid-gap:14px;gap:14px}.panelBox{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfd}.panelBox+.panelBox{margin-top:2px}.label{display:block;margin:12px 0 -2px;color:var(--muted);font-size:13px;font-weight:800}.textarea{width:100%;min-height:150px;resize:vertical;border:1px solid #d0d5dd;border-radius:8px;padding:12px;font:inherit}.textButton{border:0;background:transparent;color:#667085;font-weight:900}.emptyPanel{min-height:160px}.editorSection{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.editorSection h3{margin:0}.actionButtons{flex-wrap:wrap;gap:8px}.actionPanel{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.actionPanel h3{margin:0}.detailStack{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.detailRow{display:grid;grid-template-columns:58px 76px minmax(0,1fr) 52px;grid-gap:6px;gap:6px;align-items:center}.detailRow.related{grid-template-columns:minmax(88px,.9fr) 76px minmax(0,1fr) 52px}.detailRow input,.detailRow select{min-width:0;padding:9px 10px}.detailRow input,.detailRow select,.iconButton,.primaryDot{border:1px solid #d0d5dd;border-radius:8px;background:white}.iconButton,.primaryDot{color:#475467;padding:9px 8px;font-size:12px;font-weight:900}.primaryDot.active{border-color:#111;background:#111;color:white}.muted{color:var(--muted)}.chip,.pill{border:1px solid #d0d5dd;background:white;color:#1d2939;border-radius:999px;padding:9px 13px;font-weight:800}.chip.active{background:#000;border-color:#000;color:white}.button{border:0;background:var(--brand);color:white;border-radius:999px;padding:11px 18px;font-weight:800}.button.black{background:#000}.button.ghost{background:white;color:var(--brand);border:1px solid #9c7c89}.button.danger{background:white;color:#111;border:1px solid #111}.loginWrap{min-height:100vh;display:grid;place-items:center;padding:24px}.loginBox{width:min(430px,100%)}.field{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:13px 14px;margin-top:10px}.agoraRow,.memberRow{display:grid;grid-template-columns:148px minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:center}.otpAction{display:grid;justify-items:end;grid-gap:8px;gap:8px}.otpNotice{min-width:164px;border:1px solid #111;border-radius:8px;background:#fff;padding:8px 10px;text-align:right}.otpNotice strong{display:block;font-size:18px;font-weight:900;line-height:1.1}.otpNotice span{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.thumb{width:148px;height:148px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#f2f4f7}.twoCol{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,1.1fr);grid-gap:24px;gap:24px}@media (max-width:980px){.sidebar{width:76px;flex-basis:76px;padding:14px 10px}.brand{font-size:0;margin:0 0 18px}.brand:after{content:"VV";font-size:18px}.navButton{text-align:center;padding:13px 8px}.topbar{padding:12px 16px}.content{padding:16px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.groupGrid{grid-template-columns:repeat(5,minmax(0,1fr))}.wordEditorLayout,.wordRules{grid-template-columns:1fr;display:grid}.levelBoardSection{grid-template-columns:44px minmax(0,1fr)}.levelRail{font-size:13px;gap:4px}.agoraRow,.memberRow,.twoCol{grid-template-columns:1fr}}@media (max-width:620px){.app{display:block}.sidebar{width:100%;flex-direction:row;gap:6px;overflow-x:auto}.logout{margin-top:0;white-space:nowrap}.grid,.groupGrid{grid-template-columns:1fr}}.reviewGrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.reviewCard,.reviewGrid{display:grid;grid-gap:12px;gap:12px}.suggestionBody{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fafafa}.posPill,.statusPill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:white;font-size:12px;font-weight:800;padding:4px 9px}.statusPill.pending{color:#9b4f6b;border-color:#f2c6d7;background:#fff4f8}.statusPill.approved{color:var(--good-ink);border-color:#a6f4c5;background:var(--good)}.statusPill.rejected{color:#b42318;border-color:#fecdca;background:#fff1f0}