/* ===== 연구원 광장 : 크레이지아케이드 광장 UI 재현 ===== */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ca-line:#0a3d6e;      /* 진한 남색 테두리 */
  --ca-sky:#2fb6f0;       /* 타이틀바 하늘색 */
  --ca-sky-d:#0b7fc4;
  --ca-panel:#bfe6fb;     /* 패널 바탕 */
  --ca-panel-d:#8fd0f2;
  --ca-field:#eaf7ff;     /* 입력/로그 바탕 */
  --ca-bar1:#3ec2f5;
  --ca-bar2:#0d6fb8;
}
html,body{height:100%}
body{
  background:#1b3a5c radial-gradient(circle at 50% 0%,#2b5c8c,#10233a 70%);
  font-family:'Galmuri11','DungGeunMo',AppleGothic,'Apple SD Gothic Neo',sans-serif;
  color:#08324f; display:flex; align-items:center; justify-content:center;
  overflow:hidden; -webkit-font-smoothing:none;
}
button,input,select{font-family:inherit}
.hidden{display:none !important}

/* ---------- 바깥 윈도우 프레임 ---------- */
.app-frame{
  width:800px; border:2px solid #0a2e4d; background:#dfe7ee;
  box-shadow:0 14px 50px rgba(0,0,0,.6);
  transform-origin:center center;
}
.win-bar{
  height:26px; background:linear-gradient(#f4f7fa,#dce4ec);
  border-bottom:1px solid #b7c2cc; display:flex; align-items:center; gap:6px; padding:0 6px;
  font-size:11px; color:#33414d;
}
.win-ico{width:14px;height:14px;background:#e23b3b;border:1px solid #8c1f1f;border-radius:2px;
  box-shadow:inset 0 0 0 2px #ffd34d}
.win-title{flex:1}
.win-ctrl{display:flex;gap:12px;color:#5a6b79}
.win-ctrl .x{color:#333}

.stage{position:relative;width:800px;height:600px;overflow:hidden;background:#3aa03a}
#game{display:block;width:800px;height:600px;image-rendering:pixelated}

/* ---------- 공통 버튼 (크아 메뉴 버튼) ---------- */
.ca-btn{
  position:relative; border:2px solid var(--ca-line); border-radius:7px;
  padding:7px 14px; font-size:15px; font-weight:700; color:#fff; cursor:pointer;
  text-shadow:-1px -1px 0 #0a3d6e,1px -1px 0 #0a3d6e,-1px 1px 0 #0a3d6e,1px 1px 0 #0a3d6e;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.75),inset 0 -3px 0 rgba(0,0,0,.25),0 2px 0 rgba(0,0,0,.35);
  letter-spacing:1px;
}
.ca-btn:active{transform:translateY(2px);box-shadow:inset 0 2px 0 rgba(255,255,255,.5)}
.ca-btn.orange{background:linear-gradient(#ffd45e,#f39312 55%,#d96f06)}
.ca-btn.purple{background:linear-gradient(#d7a9ff,#8f4fd8 55%,#6a2bb3)}
.ca-btn.blue  {background:linear-gradient(#8fdcff,#1f8fd8 55%,#0a63a8)}
.ca-btn.green {background:linear-gradient(#b7f08a,#4fae2e 55%,#2f7d1a)}
.ca-btn.small{padding:3px 9px;font-size:12px;border-radius:5px}
.ca-btn.big{width:100%;padding:11px;font-size:19px;margin-top:6px}

/* ---------- 상단 메뉴 ---------- */
.topbar{position:absolute;top:10px;left:0;width:100%;display:flex;justify-content:center;gap:14px;z-index:6}
.topbar .ca-btn{min-width:126px;text-align:center}

/* ---------- 크아 창 ---------- */
.ca-window{border:2px solid var(--ca-line);background:var(--ca-panel);border-radius:4px;
  box-shadow:0 3px 0 rgba(0,0,0,.35),inset 0 0 0 1px #e9f7ff}
.ca-title{
  height:22px; display:flex; align-items:center; gap:5px; padding:0 4px 0 7px;
  background:linear-gradient(var(--ca-sky),var(--ca-sky-d));
  border-bottom:2px solid var(--ca-line); color:#fff; font-size:13px; font-weight:700;
  text-shadow:1px 1px 0 #06456f;
}
.ca-title span{flex:1;overflow:hidden;white-space:nowrap}
.tbtn{width:15px;height:15px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(#eaf7ff,#a9dcf7);border:1px solid var(--ca-line);border-radius:2px;
  color:#08466f;font-size:10px;font-style:normal;cursor:pointer}
.ca-body{padding:6px}

/* ---------- 대화창 ---------- */
.chatwin{position:absolute;left:110px;bottom:44px;width:330px;z-index:5}
.chatlog{height:150px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);
  border-radius:3px;padding:4px 5px;font-size:12.5px;line-height:1.45;word-break:break-all}
.chatlog .who{color:#0b62a8;font-weight:700}
.chatlog .me .who{color:#c2410c}
.chat-delivery{margin-left:6px;color:#536777;font-size:12px}
.chat-failed .chat-delivery{color:#a32222;font-weight:bold}
.chatlog .sys{color:#7a5c00;background:#fff5cf;border-radius:3px;padding:0 3px}
.chatinput{display:flex;gap:4px;margin-top:5px}
.chatinput input{flex:1;border:2px solid var(--ca-line);border-radius:3px;background:#fff;
  padding:4px 6px;font-size:12.5px;outline:none}

/* ---------- 메신저 ---------- */
.msgwin{position:absolute;right:12px;bottom:44px;width:230px;z-index:5}
.me-row{display:flex;align-items:center;gap:5px;background:var(--ca-field);border:2px solid var(--ca-line);
  border-radius:12px;padding:2px 8px;font-size:12.5px;margin-bottom:5px}
.dot{width:11px;height:11px;border-radius:50%;background:radial-gradient(#8ff,#0a8fd0);border:1px solid #06456f}
.search-row{display:flex;align-items:center;gap:4px;font-size:11.5px;margin-bottom:5px}
.search-row input{flex:1;min-width:0;border:2px solid var(--ca-line);background:#fff;border-radius:2px;padding:2px 4px;font-size:11.5px;outline:none}
.userlist{height:132px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px}
.uitem{display:flex;align-items:center;gap:5px;padding:2px 5px;font-size:12px;border-bottom:1px dotted #a8d6ef;cursor:pointer}
.uitem:hover{background:#d7efff}
.uitem .face{width:14px;height:14px;border-radius:50%;border:1px solid #0a3d6e}
.uitem .nm{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.uitem .tag{font-size:10px;color:#0b62a8;background:#dff0fb;border:1px solid #96cfe9;border-radius:2px;padding:0 3px}
.mlist-foot{text-align:right;font-size:11px;color:#08466f;padding-top:3px}

/* ---------- 미니맵 ---------- */
.minimap{position:absolute;left:8px;bottom:44px;width:154px;z-index:4;
  border:2px solid var(--ca-line);background:#0e4f7d;border-radius:3px}
.mm-head{font-size:11px;color:#fff;background:linear-gradient(var(--ca-sky),var(--ca-sky-d));
  padding:1px 5px;border-bottom:1px solid var(--ca-line);text-shadow:1px 1px 0 #06456f}
#mini{display:block;image-rendering:pixelated}
.mm-zone{font-size:11px;color:#ffe98a;text-align:center;padding:1px}

/* ---------- 감정표현 ---------- */
.emobar{position:absolute;right:12px;top:60px;display:flex;flex-direction:column;gap:4px;z-index:5}
.emobar button{width:30px;height:30px;font-size:16px;background:linear-gradient(#eaf7ff,#a9dcf7);
  border:2px solid var(--ca-line);border-radius:6px;cursor:pointer;line-height:1}
.emobar button:active{transform:translateY(1px)}

/* ---------- 하단 툴바 ---------- */
.botbar{position:absolute;left:0;bottom:0;width:100%;height:38px;display:flex;align-items:center;gap:6px;
  padding:0 8px;background:linear-gradient(var(--ca-bar1),var(--ca-bar2));
  border-top:2px solid var(--ca-line);z-index:7}
.tb{height:24px;padding:0 12px;border:2px solid var(--ca-line);border-radius:5px;cursor:pointer;
  font-size:12.5px;font-weight:700;color:#fff;text-shadow:1px 1px 0 #06456f;
  background:linear-gradient(#7fd4f8,#1780c4);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.6),0 2px 0 rgba(0,0,0,.3)}
.tb:active{transform:translateY(2px)}
.tb-menu{background:linear-gradient(#ffe07a,#e08b0b)}
.tb-y{background:linear-gradient(#ffe98a,#e2a507)}
.tb-c{background:linear-gradient(#b7f08a,#3f9c22)}
.tb-p{background:linear-gradient(#d7a9ff,#7b3ec4)}
.tb-x{background:linear-gradient(#ff9a9a,#c81f1f);padding:0 10px}
.tb-spacer{flex:1}

/* ---------- 모달 / 알림창 ---------- */
.modal-back{position:fixed;inset:0;background:rgba(3,20,35,.55);display:flex;align-items:center;
  justify-content:center;z-index:50}
.stage .modal-back{position:absolute}
.alert-win{width:280px}
.alert-msg{background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;
  padding:10px;font-size:13px;min-height:74px;max-height:300px;overflow-y:auto;line-height:1.5;white-space:pre-wrap}
.alert-win{width:300px}
.alert-foot{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}
.alert-foot{text-align:center;padding-top:7px}

/* ---------- 로그인 창 ---------- */
.login-win{width:520px}
.login-body{display:flex;gap:12px}
.preview-box{width:150px;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;
  padding:6px;text-align:center}
#preview{display:block;margin:0 auto;image-rendering:pixelated}
.preview-name{font-size:12px;margin:4px 0 6px;color:#0b62a8;font-weight:700}
.row-btns{display:flex;align-items:center;justify-content:center;gap:6px}
.mini{width:22px;height:20px;border:2px solid var(--ca-line);border-radius:4px;cursor:pointer;
  background:linear-gradient(#eaf7ff,#a9dcf7);font-size:10px}
.mini-label{font-size:11px}
.form-box{flex:1;display:flex;flex-direction:column;gap:6px}
.form-box label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700}
.form-box input,.form-box select{flex:1;min-width:0;border:2px solid var(--ca-line);border-radius:3px;
  background:#fff;padding:4px 6px;font-size:12.5px;outline:none}
.color-row{display:flex;gap:5px;flex-wrap:wrap;padding:2px 0}
.color-row i{width:20px;height:20px;border:2px solid var(--ca-line);border-radius:4px;cursor:pointer;display:block}
.color-row i.on{outline:2px solid #ffd34d;outline-offset:1px}
.hint{font-size:10.5px;color:#0b62a8;line-height:1.4}

/* ---------- 채널 선택 ---------- */
.ch-win{width:250px}
.chlist{background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;padding:3px}
.chrow{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:12.5px;cursor:pointer;
  border-bottom:1px dotted #a8d6ef}
.chrow:hover{background:#d7efff}
.chrow.on{background:#ffe98a}
.chrow .nm{flex:1}
.chrow .cnt{font-size:11px;color:#0b62a8}
.gauge{width:52px;height:9px;border:1px solid var(--ca-line);background:#fff;border-radius:2px;overflow:hidden}
.gauge i{display:block;height:100%;background:linear-gradient(#7ee06a,#2f9c22)}
.gauge i.hot{background:linear-gradient(#ffb36b,#e06a1f)}

/* ---------- 고민방 ---------- */
.worrywin{position:absolute;left:150px;top:70px;width:430px;z-index:9}
.w-tabs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:5px}
.w-tabs button{font-size:11px;padding:2px 7px;border:2px solid var(--ca-line);border-radius:10px;
  background:linear-gradient(#eaf7ff,#a9dcf7);cursor:pointer;color:#08466f;font-weight:700}
.w-tabs button.on{background:linear-gradient(#ffe98a,#e2a507);color:#4a3200}
.w-list{height:240px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);
  border-radius:3px}
.w-item{padding:5px 7px;border-bottom:1px dotted #a8d6ef;cursor:pointer;font-size:12.5px}
.w-item:hover{background:#d7efff}
.w-item .top{display:flex;align-items:center;gap:5px}
.w-cat{font-size:10px;color:#fff;background:#0b7fc4;border-radius:8px;padding:1px 6px;flex:none}
.w-cat.c0{background:#1f8fd8}.w-cat.c1{background:#8f4fd8}.w-cat.c2{background:#e08b0b}
.w-cat.c3{background:#3f9c22}.w-cat.c4{background:#d84f7a}.w-cat.c5{background:#5a6b79}
.w-item .ttl{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.w-item .meta{font-size:10.5px;color:#0b62a8;display:flex;gap:7px;margin-top:2px}
.w-empty{padding:28px 10px;text-align:center;font-size:12px;color:#0b62a8;line-height:1.7}
.w-foot{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:11px;color:#0b62a8}
.w-foot .sp{flex:1}
.w-post{height:210px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);
  border-radius:3px;padding:7px;font-size:12.5px;line-height:1.6}
.w-post .head{display:flex;align-items:center;gap:5px;margin-bottom:4px}
.w-post .anon{color:#0b62a8;font-weight:700}
.w-post .body{white-space:pre-wrap;word-break:break-all;padding:4px 0 8px;border-bottom:2px dotted #a8d6ef}
.w-rep{padding:5px 2px;border-bottom:1px dotted #cbe6f6;word-break:break-all}
.w-rep .who{color:#c2410c;font-weight:700;font-size:11.5px}
.w-rep .who.op{color:#0b7fc4}
.w-rep .ts{font-size:10px;color:#6a8ea6;float:right}
.w-write textarea{width:100%;height:150px;border:2px solid var(--ca-line);border-radius:3px;
  padding:6px;font-size:12.5px;font-family:inherit;resize:none;outline:none;background:#fff}
.w-write .row{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:12px}
.w-write select{border:2px solid var(--ca-line);border-radius:3px;padding:3px 5px;font-size:12px;background:#fff}
.w-inline{display:flex;gap:4px;margin-top:5px}
.w-inline input{flex:1;border:2px solid var(--ca-line);border-radius:3px;padding:4px 6px;
  font-size:12.5px;outline:none;background:#fff}
.w-like{cursor:pointer;user-select:none}
.w-like.on{color:#d81b4a;font-weight:700}

/* ---------- 창 접기 ---------- */
.ca-window.min > .ca-body{display:none}
.ca-window.min{width:auto;min-width:170px}

/* ---------- 대화창 탭 ---------- */
.chat-tabs{display:flex;align-items:center;gap:3px;margin-bottom:4px}
.chat-tabs button{font-size:11px;padding:1px 9px;border:2px solid var(--ca-line);border-radius:9px 9px 0 0;
  background:linear-gradient(#eaf7ff,#a9dcf7);cursor:pointer;color:#08466f;font-weight:700}
.chat-tabs button.on{background:linear-gradient(#ffe98a,#e2a507);color:#4a3200}
.ct-hint{margin-left:auto;font-size:10px;color:#0b62a8}
.chatlog .tm{color:#7ba4bd;font-size:10.5px;margin-right:3px}
.chatlog.big{font-size:14px}

/* ---------- 메뉴 / 마이페이지 ---------- */
.menuwin{position:absolute;left:250px;top:150px;width:230px;z-index:11}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.menu-grid .ca-btn{width:100%}
.mywin{position:absolute;left:210px;top:110px;width:330px;z-index:11}
.my-body{display:flex;gap:8px}
.my-left{width:124px;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;padding:5px;text-align:center}
#myPreview{display:block;margin:0 auto;image-rendering:pixelated}
.my-right{flex:1;display:flex;flex-direction:column;gap:5px}
.my-card{flex:1;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;
  padding:7px;font-size:12px;line-height:1.8}
.my-card b{color:#0b62a8}

/* ---------- 미니맵 접기 ---------- */
.minimap.min #mini,.minimap.min .mm-zone{display:none}
.mm-head{cursor:pointer;user-select:none}

/* ---------- 로그인 / 회원가입 ---------- */
.auth-tabs{display:flex;gap:4px;margin-bottom:6px}
.auth-tabs button{flex:1;font-size:12px;padding:3px 0;border:2px solid var(--ca-line);
  border-radius:8px 8px 0 0;background:linear-gradient(#eaf7ff,#a9dcf7);cursor:pointer;
  color:#08466f;font-weight:700}
.auth-tabs button.on{background:linear-gradient(#ffe98a,#e2a507);color:#4a3200}
.apane{display:flex;flex-direction:column;gap:6px}
.form-box .chk{font-weight:400;font-size:11.5px;gap:4px}
.form-box .chk input{flex:none;width:13px;height:13px}
.err{font-size:11.5px;color:#c2261a;background:#ffe9e6;border:1px solid #f0b6ae;border-radius:3px;
  padding:3px 6px;margin-top:4px;display:none}
.err.on{display:block}
.login-win .color-row{justify-content:center;margin-top:6px}

.my-btns{display:flex;gap:4px}
.my-btns .ca-btn{flex:1;padding:3px 0}
.my-card input,.my-card select{width:100%;border:2px solid var(--ca-line);border-radius:3px;
  background:#fff;padding:2px 4px;font-size:11.5px;font-family:inherit;outline:none}
.my-card .fld{display:flex;align-items:center;gap:5px;margin-bottom:3px}
.my-card .fld b{width:40px;flex:none}
.my-guest{color:#c2261a;font-size:11px;line-height:1.5}

/* ---------- 토론 개설 / 방리스트 / 토론방 ---------- */
.rcwin{position:absolute;left:200px;top:120px;width:380px;z-index:11}
.rc-body{display:flex;flex-direction:column;gap:6px}
.rc-body label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700}
.rc-body input,.rc-body select{flex:1;min-width:0;border:2px solid var(--ca-line);border-radius:3px;
  background:#fff;padding:4px 6px;font-size:12.5px;font-family:inherit;outline:none}
.rc-row{display:flex;gap:10px}
.rc-row label{flex:1}
.rc-row select{flex:none;width:auto}
.rlwin{position:absolute;left:160px;top:80px;width:440px;z-index:10}
.rl-list{height:230px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px}
.rl-item{display:flex;align-items:center;gap:6px;padding:5px 7px;border-bottom:1px dotted #a8d6ef;font-size:12.5px}
.rl-item .ttl{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rl-item .ttl small{display:block;font-size:10.5px;color:#0b62a8;font-weight:400}
.rl-item .cnt{font-size:11px;color:#0b62a8;flex:none}
.rl-item .cnt.full{color:#c2261a}
.rl-item.mine{background:#fff5cf}
.roomwin{position:absolute;left:60px;top:60px;width:560px;z-index:10}
.room-body{display:flex;gap:6px}
.room-side{width:160px;display:flex;flex-direction:column;gap:5px}
.room-desc{font-size:11px;color:#0b62a8;background:var(--ca-field);border:2px solid var(--ca-line);
  border-radius:3px;padding:4px 5px;min-height:24px;line-height:1.4}
.room-members{flex:1;height:170px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px}
.rm{display:flex;align-items:center;gap:4px;padding:3px 5px;font-size:12px;border-bottom:1px dotted #cbe6f6}
.rm .host{font-size:10px;color:#fff;background:#e08b0b;border-radius:3px;padding:0 3px}
.rm .hand{margin-left:auto}
.room-btns{display:flex;flex-direction:column;gap:3px}
.room-btns .ca-btn{width:100%;padding:3px 0}
.room-main{flex:1;display:flex;flex-direction:column}
.room-log{height:222px;overflow-y:auto;background:#fff8ea;border:2px solid var(--ca-line);border-radius:3px;
  padding:4px 6px;font-size:12.5px;line-height:1.5;word-break:break-all}
.room-log .who{color:#b8560b;font-weight:700}
.room-log .me .who{color:#0b62a8}
.room-log .sys{color:#7a5c00;background:#fff0c2;border-radius:3px;padding:0 3px}
.room-log .tm{color:#b39a6b;font-size:10.5px;margin-right:3px}

/* ---------- 내연구실 ---------- */
.labwin{position:absolute;left:130px;top:64px;width:470px;z-index:10}
.lab-pane{background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;padding:7px;
  height:262px;overflow-y:auto;font-size:12.5px;line-height:1.6}
.lab-pane h4{font-size:14px;color:#0b62a8;margin-bottom:2px}
.lab-pane .meta{font-size:11px;color:#3a6f8f}
.lab-pane .intro{white-space:pre-wrap;word-break:break-all;margin:6px 0;padding:6px;background:#fff;
  border:1px solid #a8d6ef;border-radius:3px}
.lab-form{display:flex;flex-direction:column;gap:5px}
.lab-form label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.lab-form input,.lab-form textarea{flex:1;min-width:0;border:2px solid var(--ca-line);border-radius:3px;
  background:#fff;padding:3px 5px;font-size:12px;font-family:inherit;outline:none}
.lab-form textarea{height:56px;resize:none}
.lab-split{display:flex;gap:8px}
.lab-split > div{flex:1}
.lab-list .li{display:flex;align-items:center;gap:5px;padding:3px 4px;border-bottom:1px dotted #a8d6ef;font-size:12px}
.lab-list .li .nm{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lab-list .li small{color:#0b62a8;font-size:10.5px}
.mem{display:flex;align-items:center;gap:5px;padding:3px 4px;border-bottom:1px dotted #a8d6ef}
.mem .on{width:9px;height:9px;border-radius:50%;background:#bbb;border:1px solid #556}
.mem .on.y{background:#5ce36a}
.mem .nm{flex:1}
.mem .hd{font-size:10px;color:#fff;background:#e08b0b;border-radius:3px;padding:0 4px}
.mem .mini{width:auto;padding:0 5px;font-size:10px;height:17px}
.notice{padding:5px 6px;border-bottom:1px dotted #a8d6ef;white-space:pre-wrap;word-break:break-all}
.notice .meta{display:flex;gap:6px;font-size:10.5px;color:#3a6f8f}
.notice .meta .sp{flex:1}
.lab-log{height:200px;overflow-y:auto;background:#f0fbe9;border:2px solid var(--ca-line);border-radius:3px;
  padding:4px 6px;font-size:12.5px;line-height:1.5;word-break:break-all}
.lab-log .who{color:#2f7d1a;font-weight:700}
.lab-log .who.sys{color:#7a5c00}
.lab-log .tm{color:#7fa37a;font-size:10.5px;margin-right:3px}
.code-box{display:inline-block;background:#fff;border:2px dashed var(--ca-line);border-radius:3px;
  padding:2px 8px;font-size:14px;letter-spacing:1px;color:#c2410c;font-weight:700}

/* ---------- 공용 게시판 ---------- */
.bdwin{position:absolute;left:120px;top:60px;width:490px;z-index:10}
.bd-list{height:250px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px}
.bd-item{padding:5px 7px;border-bottom:1px dotted #a8d6ef;font-size:12.5px;cursor:pointer}
.bd-item:hover{background:#d7efff}
.bd-item .top{display:flex;align-items:center;gap:5px}
.bd-item .ttl{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.bd-item .meta{font-size:10.5px;color:#0b62a8;display:flex;gap:7px;margin-top:1px}
.bd-item .st{font-size:10px;border-radius:3px;padding:0 4px;color:#fff;background:#3f9c22;flex:none}
.bd-item .st.done{background:#8a8a8a}
.bd-detail{height:250px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;
  padding:8px;font-size:12.5px;line-height:1.6}
.bd-detail h4{font-size:14px;color:#0b62a8;margin-bottom:3px;word-break:break-all}
.bd-detail .meta{font-size:11px;color:#3a6f8f;margin-bottom:5px}
.bd-detail .body{white-space:pre-wrap;word-break:break-all;background:#fff;border:1px solid #a8d6ef;border-radius:3px;padding:6px;margin:5px 0}
.bd-detail a{color:#0b62a8;word-break:break-all}
.bd-form{display:flex;flex-direction:column;gap:5px;height:250px;overflow-y:auto;background:var(--ca-field);
  border:2px solid var(--ca-line);border-radius:3px;padding:7px}
.bd-form label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.bd-form label span{width:34px;flex:none}
.bd-form input,.bd-form select,.bd-form textarea{flex:1;min-width:0;border:2px solid var(--ca-line);border-radius:3px;
  background:#fff;padding:3px 5px;font-size:12px;font-family:inherit;outline:none}
.bd-form textarea{height:70px;resize:none}
.ax-item{padding:6px 7px;border-bottom:1px dotted #a8d6ef;font-size:12px;line-height:1.45}
.ax-item b{display:block;color:#08324f;word-break:break-word}
.ax-item .au{font-size:10.5px;color:#3a6f8f}
.ax-item .sm{font-size:11px;color:#4a5f6f;margin-top:2px;display:none}
.ax-item.open .sm{display:block}
.ax-item a{color:#0b62a8;font-size:11px}
.bd-note{font-size:11px;color:#0b62a8;padding:3px 0}

/* ---------- 카카오 로그인 버튼 ---------- */
.kakao-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px;
  background:#FEE500;color:#191919;border:2px solid var(--ca-line);border-radius:7px;font-size:15px;
  font-weight:700;text-decoration:none;box-shadow:inset 0 2px 0 rgba(255,255,255,.6),0 2px 0 rgba(0,0,0,.35)}
.kakao-btn:active{transform:translateY(2px)}
.k-ico{background:#191919;color:#FEE500;border-radius:4px;font-size:9px;padding:1px 4px;letter-spacing:1px}

/* ---------- 관리자 ---------- */
.admwin{position:absolute;left:100px;top:56px;width:520px;z-index:12}
.adm-pane{height:262px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;font-size:12px}
.adm-row{display:flex;align-items:center;gap:5px;padding:3px 6px;border-bottom:1px dotted #a8d6ef}
.adm-row .nm{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.adm-row small{color:#3a6f8f;font-size:10.5px}
.adm-row select{border:2px solid var(--ca-line);border-radius:3px;font-size:11px;font-family:inherit;background:#fff}
.perm{font-size:10px;border-radius:3px;padding:0 4px;color:#fff;background:#3f9c22}
.perm.admin{background:#e08b0b}.perm.banned{background:#c2261a}
.adm-form{display:flex;gap:4px;padding:6px}
.adm-form input{flex:1;border:2px solid var(--ca-line);border-radius:3px;padding:4px 6px;font-size:12px;font-family:inherit;outline:none}
.notice-toast{position:absolute;left:50%;top:70px;transform:translateX(-50%);z-index:30;
  background:#fff5cf;border:2px solid var(--ca-line);border-radius:6px;padding:8px 14px;font-size:13px;
  box-shadow:0 3px 0 rgba(0,0,0,.35);max-width:520px;text-align:center}
.notice-toast b{color:#c2410c}

/* ---------- 기록 안내 ---------- */
.rec-badge{font-size:10px;color:#fff;background:#c2261a;border-radius:8px;padding:1px 7px;font-weight:700;white-space:nowrap;flex:none}
.chat-tabs .ct-hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9.5px}
.chat-tabs .ct-hint{margin-left:6px}
.rec-note{font-size:10.5px;color:#7a2a1a;background:#fff0e8;border:1px solid #f0c2ae;border-radius:3px;padding:3px 6px;line-height:1.45}
.consent-box{font-size:10.5px;background:#fff8e6;border:2px solid #e2a507;border-radius:3px;padding:5px 7px;line-height:1.45;color:#4a3200}
.consent-box ul{margin:3px 0 4px 14px}
.consent-box li{margin-bottom:1px}
.consent-box .chk{font-size:11.5px;font-weight:700;color:#08324f}
/* ---------- 댓글 ---------- */
.cm-list{margin-top:6px;border-top:2px dotted #a8d6ef;padding-top:4px}
.cm{padding:3px 2px;border-bottom:1px dotted #cbe6f6;font-size:12px;word-break:break-all}
.cm .who{color:#0b62a8;font-weight:700}
.cm .ts{font-size:10px;color:#6a8ea6;margin-left:4px}
.cm a{font-size:10px;color:#c2261a;margin-left:4px}
/* ---------- 지난 토론 대화록 ---------- */
.rec-log{font-size:12px;line-height:1.55;padding:6px;word-break:break-all}
.rec-log .who{color:#b8560b;font-weight:700}
.rec-log .sys{color:#7a5c00}
.rec-log .tm{color:#9a8a6b;font-size:10px;margin-right:3px}
.rec-head{padding:6px 7px;border-bottom:2px dotted #a8d6ef;font-size:12px}
.rec-head b{color:#0b62a8;font-size:13px}
/* ---------- 관리자 기록 검색 ---------- */
.log-filter{display:flex;gap:4px;padding:5px;flex-wrap:wrap}
.log-filter select,.log-filter input{border:2px solid var(--ca-line);border-radius:3px;font-size:11.5px;font-family:inherit;padding:2px 4px;background:#fff}
.log-filter input{flex:1;min-width:80px}
.lg{padding:3px 6px;border-bottom:1px dotted #a8d6ef;font-size:11.5px;word-break:break-all}
.lg .k{font-size:10px;color:#fff;background:#5a6b79;border-radius:3px;padding:0 4px;margin-right:4px}
.lg .k.plaza{background:#1f8fd8}.lg .k.room{background:#e08b0b}.lg .k.lab{background:#3f9c22}
.lg .k.worry,.lg .k.worry_reply{background:#8f4fd8}.lg .k.board,.lg .k.comment{background:#0b7fc4}.lg .k.admin{background:#c2261a}
.lg .meta{font-size:10px;color:#3a6f8f}

/* ---------- 건의함 ---------- */
.tb-sg{background:linear-gradient(#ff9a9a,#d8352f)}
.sgwin{position:absolute;left:150px;top:70px;width:440px;z-index:11}
.sg-form{display:flex;flex-direction:column;gap:6px;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;padding:8px;height:250px}
.sg-cats{display:flex;gap:4px;flex-wrap:wrap}
.sg-cats button{font-size:11.5px;padding:3px 9px;border:2px solid var(--ca-line);border-radius:10px;background:linear-gradient(#eaf7ff,#a9dcf7);cursor:pointer;color:#08466f;font-weight:700}
.sg-cats button.on{background:linear-gradient(#ffb0a8,#e0564c);color:#fff}
.sg-form textarea{flex:1;border:2px solid var(--ca-line);border-radius:3px;padding:6px;font-size:12.5px;font-family:inherit;resize:none;outline:none;background:#fff}
.sg-list{height:250px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px}
.sg-item{padding:6px 7px;border-bottom:1px dotted #a8d6ef;font-size:12px;line-height:1.5}
.sg-item .top{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.sg-item .top .sp{flex:1}
.sg-item .txt{white-space:pre-wrap;word-break:break-all;margin-top:2px}
.sg-item .rep{margin-top:4px;background:#fff8e6;border-left:3px solid #e2a507;padding:3px 6px;white-space:pre-wrap;word-break:break-all}
.sg-item .rep b{color:#b8560b}
.sgst{font-size:10px;color:#fff;border-radius:3px;padding:0 5px;background:#8a8a8a}
.sgst.s0{background:#1f8fd8}.sgst.s1{background:#e08b0b}.sgst.s2{background:#8f4fd8}.sgst.s3{background:#3f9c22}.sgst.s4{background:#8a8a8a}
.sg-meta{font-size:10.5px;color:#3a6f8f}
.sg-adm{display:flex;gap:4px;margin-top:4px}
.sg-adm select,.sg-adm input{border:2px solid var(--ca-line);border-radius:3px;font-size:11px;font-family:inherit;padding:2px 4px;background:#fff}
.sg-adm input{flex:1}
/* ---------- 접속 통계 ---------- */
.st-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:5px}
.st-card{background:#fff;border:2px solid var(--ca-line);border-radius:4px;padding:3px 5px;text-align:center}
.st-card b{display:block;font-size:17px;color:#0b62a8;line-height:1.2}
.st-card span{font-size:10px;color:#3a6f8f}
.st-chart{padding:4px 6px 2px}
.st-chart h5{font-size:11px;color:#08466f;margin:2px 0}
.bars{display:flex;align-items:flex-end;gap:2px;height:62px;border-bottom:1px solid #8fb9d3;position:relative}
.bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;height:100%}
.bar i{display:block;width:100%;background:linear-gradient(#5cc4f5,#1780c4);border-radius:2px 2px 0 0;min-height:1px}
.bar i.g{background:linear-gradient(#ffd98a,#e2a507);border-radius:0}
.bar em{font-size:8.5px;color:#08466f;font-style:normal;line-height:1}
.bar-lb{display:flex;gap:2px}
.bar-lb span{flex:1;font-size:8.5px;color:#3a6f8f;text-align:center;overflow:hidden;white-space:nowrap}
.st-legend{font-size:10px;color:#3a6f8f;padding:0 6px}
.st-legend i{display:inline-block;width:8px;height:8px;margin:0 2px 0 6px;vertical-align:middle}

/* ---------- 하단 툴바 재배치 ---------- */
.botbar{gap:4px;padding:0 6px}
.botbar .tb{padding:0 8px;font-size:12px;flex:none}
.tb-shop{background:linear-gradient(#ffe98a,#e2a507)}

/* ---------- 광고 ---------- */
.ad-tag{font-size:9px;font-weight:700;color:#3a2a00;background:#ffe45c;border:1px solid #8a6a00;border-radius:3px;padding:0 3px;margin-right:5px;flex:none;line-height:1.3}
.ad-banner{display:flex;align-items:center;gap:4px;cursor:pointer;border:2px solid var(--ca-line);border-radius:4px;
  padding:3px 7px;font-size:12px;overflow:hidden;white-space:nowrap}
.ad-banner .ad-t{font-weight:700;flex:none}
.ad-banner .ad-x{opacity:.9;overflow:hidden;text-overflow:ellipsis;margin-left:6px}
.ad-banner img{max-height:52px;max-width:100%;display:block}
.ad-banner.has-img{padding:2px;justify-content:center;position:relative}
.ad-banner.has-img .ad-tag{position:absolute;left:3px;top:3px}
.ad-login{margin:6px 6px 0}
.ad-window{margin-bottom:5px;font-size:11.5px;min-height:24px}
.ad-window img{max-height:32px}
.ad-ticker{flex:1;min-width:0;height:24px;display:flex;align-items:center;border:2px solid var(--ca-line);border-radius:5px;
  background:#0d3a5c;color:#fff;font-size:11.5px;padding:0 5px;cursor:pointer;overflow:hidden}
.ad-ticker.house{background:rgba(10,40,70,.45);color:#cfe9f7}
.ad-roll{flex:1;overflow:hidden;white-space:nowrap;position:relative}
.ad-roll span{display:inline-block;padding-left:100%;animation:adroll 16s linear infinite}
@keyframes adroll{from{transform:translateX(0)}to{transform:translateX(-100%)}}

/* ---------- 옷장 · 상점 ---------- */
.shopwin{position:absolute;left:130px;top:70px;width:470px;z-index:11}
.shop-body{display:flex;gap:6px}
.shop-left{width:122px;display:flex;flex-direction:column;gap:4px;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;padding:5px}
#shopPreview{display:block;margin:0 auto;image-rendering:pixelated}
.shop-left .ca-btn{width:100%}
.shop-left .ca-btn:disabled{filter:grayscale(.8);opacity:.6;cursor:not-allowed}
.shop-right{flex:1;display:flex;flex-direction:column}
.shop-grid{height:214px;overflow-y:auto;background:var(--ca-field);border:2px solid var(--ca-line);border-radius:3px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;align-content:start}
.shop-item{background:#fff;border:2px solid #a8d6ef;border-radius:4px;text-align:center;cursor:pointer;padding:2px 1px;position:relative}
.shop-item:hover{border-color:#1f8fd8}
.shop-item.on{border-color:#e08b0b;background:#fff5cf}
.shop-item.locked canvas{opacity:.8}
.shop-item canvas{display:block;margin:0 auto}
.shop-item .nm{font-size:10.5px;color:#08324f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb{display:inline-block;font-size:9px;border-radius:3px;padding:0 3px;color:#fff;margin-top:1px}
.sb.free{background:#5a9c4a}.sb.own{background:#1f8fd8}.sb.lock{background:#8f4fd8}
.shop-note{font-size:11px;color:#0b62a8;min-height:30px;padding:3px 2px;line-height:1.4}

/* ---------- 관리자 : 광고 ---------- */
.ad-slot{border-bottom:2px dotted #a8d6ef;padding-bottom:3px;margin-bottom:3px}
.ad-slot-h{display:flex;align-items:center;gap:5px;padding:4px 6px;flex-wrap:wrap}
.ad-slot-h b{color:#0b62a8}
.ad-slot-h small{flex:1;color:#3a6f8f;font-size:10px;min-width:150px}
.ad-form{padding:6px}
.af-row{display:flex;align-items:center;gap:5px;margin-bottom:4px;font-size:11.5px;flex-wrap:wrap}
.af-row > label{width:44px;font-weight:700;flex:none}
.af-row input:not([type=checkbox]):not([type=color]):not([type=file]),.af-row select{flex:1;min-width:0;border:2px solid var(--ca-line);border-radius:3px;padding:2px 4px;font-size:11.5px;font-family:inherit;background:#fff}
.af-row input[type=date]{flex:none !important;width:130px}
.af-row input[type=file]{font-size:10.5px;max-width:170px}
.af-row small{color:#3a6f8f;font-size:10px;width:100%;padding-left:49px}
/* 관리자 창 작은 버튼이 로그인 화면용 .mini(22px 고정)에 눌리지 않게 */
#admwin .mini{width:auto;height:auto;min-height:18px;padding:1px 6px;white-space:nowrap;flex:none;font-size:10.5px}

/* ---------- 광고 표준 크기 (320×50) ---------- */
.ad-login,.ad-window{height:54px;justify-content:center}
.ad-login img,.ad-window img{max-width:320px;max-height:50px}
.ad-net{background:transparent !important;border-style:dashed;padding:0;justify-content:center}

/* ---------- 실험 타이머 ---------- */
.timerwin{position:absolute;left:210px;top:120px;width:380px;z-index:13}
.tm-form{display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.tm-form label{display:flex;align-items:center;gap:6px;font-weight:700}
.tm-form input:not([type=checkbox]){flex:1;border:2px solid var(--ca-line);border-radius:3px;padding:4px 6px;font-size:12.5px;font-family:inherit;outline:none;background:#fff}
.tm-form input[type=number]{flex:none;width:70px}
.tm-form .chk{font-weight:400;font-size:11.5px}
.tm-presets{display:flex;gap:4px;flex-wrap:wrap}
.tm-presets button{font-size:11.5px;padding:3px 8px;border:2px solid var(--ca-line);border-radius:10px;background:linear-gradient(#eaf7ff,#a9dcf7);cursor:pointer;color:#08466f;font-weight:700}
.tm-presets button.on{background:linear-gradient(#b7f08a,#4fae2e);color:#fff}
.timer-badge{position:absolute;left:170px;top:58px;z-index:6;background:linear-gradient(#b7f08a,#3f9c22);color:#fff;font-weight:700;
  font-size:13px;border:2px solid var(--ca-line);border-radius:12px;padding:3px 10px;cursor:pointer;text-shadow:1px 1px 0 #1d4a10}
.timer-badge.done{background:linear-gradient(#ffb0a8,#d8352f);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:.55}}

/* ---------- 자리 비움 화면 ---------- */
.idle{position:absolute;inset:0;z-index:40;background:radial-gradient(circle at 30% 20%,#1b4e78,#0a1c2e 75%);color:#e6f4ff;
  display:flex;flex-direction:column;padding:18px 22px;cursor:default}
.idle-top{display:flex;align-items:baseline;justify-content:space-between}
.idle-status{font-size:18px;color:#9fe8ff}
.idle-clock{font-size:46px;letter-spacing:2px;color:#fff;text-shadow:0 3px 0 #06243a}
.idle-main{flex:1;display:flex;gap:16px;margin-top:10px;min-height:0}
.idle-left{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}
.idle-timer{background:rgba(120,220,100,.12);border:2px solid #7ede55;border-radius:10px;padding:10px 14px}
.idle-timer .lbl{font-size:15px;color:#b7f08a}
.idle-timer .big{font-size:64px;line-height:1.05;color:#fff;letter-spacing:3px}
.idle-timer .sub{font-size:12px;color:#cfe9f7}
.idle-timer.done{border-color:#ff8a7a;background:rgba(255,120,100,.18);animation:blink 1s steps(2) infinite}
.idle-card{background:rgba(255,255,255,.07);border:2px solid rgba(159,232,255,.35);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6;min-height:120px}
.idle-card h4{font-size:15px;color:#ffe45c;margin-bottom:4px}
.idle-card .sub{font-size:11.5px;color:#9fc4dc}
.idle-missed{font-size:13px;color:#ffe45c;min-height:18px}
.idle-right{width:300px;display:flex;align-items:center}
.idle-sign{width:300px;height:250px;border:2px solid rgba(255,255,255,.35);border-radius:8px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;text-align:center;padding:10px;position:relative;cursor:pointer;font-size:14px;overflow:hidden}
.idle-sign .ad-tag{position:absolute;left:6px;top:6px}
.idle-sign img{max-width:280px;max-height:170px}
.idle-sign b{font-size:18px}
.idle-sign small{font-size:10.5px;opacity:.8}
.idle-sign.house{background:rgba(255,255,255,.05);cursor:default;color:#cfe9f7}
.idle-sign.house .hs{font-size:46px}
.idle-bottom{font-size:12px;color:#8fb3cc;text-align:center;margin-top:8px}

/* Sites adaptation: retain the pixel plaza, improve entry and touch controls. */
button[hidden],label[hidden]{display:none!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ffd54a;outline-offset:2px}
.login-win{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto}
.login-win label,.login-win input,.login-win select,.login-win .hint,.login-win .rec-note{font-size:14px;line-height:1.55}
.login-win .chk{align-items:flex-start;white-space:normal;max-width:360px}
#platformNew .chk{font-size:13px;padding:8px;background:#eaf7ff;border:1px solid #87bcde;border-radius:4px;margin-top:6px}
#connectionStatus{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);width:90%;text-align:center;color:#d8edff;font:12px/1.4 sans-serif;pointer-events:none}
#touchControls{display:none}
@media(max-width:700px){
 body{align-items:flex-start;padding-top:8px}
 .app-frame{position:absolute;left:50%;top:calc(50% - 48px);transform-origin:center center;margin-left:-402px;margin-top:-316px}
 .login-body{flex-direction:column;align-items:center}.preview-box{display:none}.form-box{width:100%;min-width:0}.login-win{width:95vw}.auth-tabs button{font-size:14px}.login-win .chk{max-width:none}
 #touchControls{display:flex;position:fixed;bottom:28px;left:50%;transform:translateX(-50%);align-items:center;gap:10px;z-index:8}
 #touchControls>div{display:flex;flex-direction:column;gap:4px}#touchControls button{border:2px solid #79c4ee;color:white;background:#154a79;border-radius:10px;min-height:42px;min-width:46px;font-size:18px;touch-action:none}#touchInteract{padding:10px;font-size:14px!important}
 #connectionStatus{font-size:12px;bottom:6px}
}

/* Wayfinding stays outside the walkable canvas centre. */
.plaza-tools{position:absolute;top:60px;right:56px;display:flex;align-items:center;gap:6px;z-index:6;font-size:14px}
.plaza-tools button{padding:7px 10px;border:2px solid #0a3d6e;border-radius:6px;background:#eaf7ff;color:#08324f;font:inherit;cursor:pointer;white-space:nowrap}
#placeToggle{box-shadow:0 2px 0 #487aa1}
#placeToggle span{display:inline-block;transition:transform .15s}
#placeToggle[aria-expanded="true"] span{transform:rotate(180deg)}
.place-popover{position:absolute;top:calc(100% + 8px);right:0;width:260px;max-width:calc(100vw - 16px);box-sizing:border-box;padding:12px;display:grid;gap:10px;border:2px solid #0a3d6e;background:#eaf7ff;border-radius:8px;box-shadow:0 4px 12px #08324f30}
.place-popover[hidden]{display:none}
.place-popover label{font-weight:bold;color:#08324f}
.place-popover select{width:100%;min-width:0;min-height:36px;padding:6px;border:1px solid #487aa1;border-radius:4px;font:inherit;background:#fff;color:#08324f}
.place-popover button{background:#c9eaff}
.stage-badge{position:absolute;top:108px;left:172px;z-index:6;padding:7px 12px;border:2px solid #5c4104;border-radius:6px;background:#ffe98a;color:#3c2b00;font:14px inherit;cursor:pointer}
#bdwin{width:550px;left:175px;top:112px}
#bdwin .ca-title{height:auto;min-height:30px;font-size:14px}
#bdwin .ca-title span{white-space:normal;padding:3px 0}
#bdwin .bd-list{height:250px}#bdwin .bd-item .ttl,#bdwin .bd-detail .body,#bdwin .bd-form{font-size:16px;line-height:1.5}
#bdwin input,#bdwin textarea,#bdwin select,#bdwin .ca-btn.small,#bdwin .meta,#bdwin .bd-note,#bdwin .bd-tabs button{font-size:14px}
#bdwin .bd-form{max-height:290px;overflow:auto}#bdwin .bd-form textarea{min-height:78px}#bdwin .w-empty{font-size:16px;line-height:1.6}
.alert-msg{font-size:14px;line-height:1.65;max-height:340px;overflow:auto}.alert-foot{flex-wrap:wrap}

@media(max-width:700px){
 body>.plaza-tools{position:fixed;top:8px;right:8px;z-index:9;font-size:14px}body>.plaza-tools select{min-height:44px;font-size:16px}body>.plaza-tools button{min-height:44px}
 body>#bdwin{position:fixed!important;inset:72px 8px auto!important;width:calc(100vw - 16px);max-height:calc(100dvh - 84px);overflow:auto;z-index:30}body>#bdwin .bd-detail{height:auto!important;max-height:40dvh}body>#bdwin .bd-list{height:42dvh}body>#bdwin .bd-form{max-height:48dvh}body>#bdwin .w-foot{flex-wrap:wrap;gap:6px}body>#bdwin input,body>#bdwin textarea,body>#bdwin select{font-size:16px}
 body>#alertBack{position:fixed;inset:0;z-index:50}body>#alertBack .alert-win{width:calc(100vw - 24px);max-width:420px;max-height:90dvh;overflow:auto}
}

#bdTabs .board-sections{display:flex;gap:6px;width:100%;padding-bottom:6px;margin-bottom:2px;border-bottom:1px solid #a9cde5}
#bdTabs .board-sections button{flex:1;padding:7px 12px;font-weight:bold}

/* Public board categories wrap within the existing plaza window. */
#bdTabs button{font-size:14px;padding:5px 9px;line-height:1.3;white-space:nowrap}
#bdTabs{gap:5px}
