/* 올로디움 — 시안 A「수배 게시판」
   레이아웃: 상단 띠(로고·탭·재화) / 판자 게시판 위에 핀으로 꽂힌 종이 그리드 / 하단 독(실린더·체력·행동)
   모바일: 종이 1열 스택 · 탭은 하단 탭바 · 독은 탭바 위 얇은 띠. 단일 테마. */
:root{
  --wood:#6e5036; --wood-line:#5d432c; --wood-dark:#2b211a; --wood-deep:#1f1813;
  --paper:#efe2c4; --paper-2:#f4ead3; --paper-3:#faf3e3; --paper-line:#e7d9bd; --paper-edge:#cdb994;
  --memo:#e9d58f; --news:#e6e0d2;
  --ink:#2a2019; --ink-2:#6b5844; --ink-3:#9a8670; --cream:#e8d9bd; --cream-2:#cdbb9c; --cream-3:#a9957a;
  --rust:#9f4428; --rust-2:#c46a43; --brass:#a9822f; --sage:#4f6e48; --holy:#3f6f86; --silver:#e4e6ea;
  --f-display:"Song Myung",serif; --f-story:"Gowun Batang",serif;
  --f-body:"IBM Plex Sans KR",system-ui,sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,monospace;
  --tilt-k:1; --dock-h:88px; --nav-h:0px;
  color-scheme:light;
}
@media (max-width:720px){:root{--tilt-k:.45;--dock-h:60px;--nav-h:64px}}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.55;
  background:var(--wood) repeating-linear-gradient(to bottom,transparent 0 94px,var(--wood-line) 94px 96px);
  padding-bottom:calc(var(--dock-h) + var(--nav-h) + env(safe-area-inset-bottom,0px) + 24px)}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
button:disabled{cursor:not-allowed;opacity:.45}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* 상단 띠 */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--wood-dark)}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--wood-dark);color:var(--cream);
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;min-height:56px;
  padding:8px max(24px,env(safe-area-inset-right,0px)) 8px max(24px,env(safe-area-inset-left,0px))}
.logo{display:flex;align-items:center;gap:10px}
.logo .emb{width:36px;height:36px;flex:none}
.logo b{font-family:"Rye",var(--f-display);font-weight:400;font-size:24px;letter-spacing:.08em;line-height:1;color:var(--cream)}
.logo .b26{font-family:"Holtwood One SC",var(--f-display);font-size:13px;line-height:1;background:var(--rust);color:#fff1e8;padding:4px 6px 3px;border-radius:3px}
@media (max-width:720px){.logo .emb{width:28px;height:28px}.logo b{font-size:19px}}
.tabs{display:flex;gap:4px}
.tabs button{padding:7px 14px;border-radius:3px;color:var(--cream-2);font-size:14px}
.tabs button:hover{background:#3a2d22}
.tabs button[aria-current="page"]{background:var(--brass);color:#fff6e2;font-weight:600}
.tabs .dot,.tabbar .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rust-2);margin-left:5px;vertical-align:2px}
.wallet{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--f-mono);font-size:13px}
.clock{background:var(--rust);color:#fff1e8;font-family:var(--f-body);font-size:11px;font-weight:500;padding:3px 8px;border-radius:3px}
.clock.day{background:#7b6a3a}
@media (max-width:720px){
  .top{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));gap:4px 12px}
  .tabs{display:none}
  .logo small{display:none}
  .wallet{width:100%;gap:12px;font-size:12px;color:var(--cream-2);order:3}
  .wallet .clock{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:12px}
}

/* 게시판 */
.board{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:34px 28px;align-items:start;
  padding-block:36px 20px;padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}
@media (max-width:720px){.board{grid-template-columns:minmax(0,1fr);gap:22px;padding-block:22px 12px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}}
.wide{grid-column:span 2}
@media (max-width:640px){.wide{grid-column:auto}}
.paper{position:relative;min-width:0;background:var(--paper-2);border:1px solid var(--paper-edge);padding:20px 18px 16px;
  transform:rotate(calc(var(--tilt,0deg) * var(--tilt-k)));transition:transform .2s ease;box-shadow:0 2px 0 rgba(0,0,0,.18)}
.paper:hover{transform:rotate(0deg) translateY(-2px)}
.paper::before{content:"";position:absolute;top:-6px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--pin,var(--rust));border:1px solid #2a1d14}
.paper.memo{background:var(--memo);border-color:#cdb565}
.paper.news{background:var(--news);border-color:#c9c1ae}
.paper.ledger{background:var(--paper-3)}
.paper.poster{background:var(--paper);text-align:center}
.paper h2{font-family:var(--f-story);font-weight:700;font-size:18px;margin:0 0 4px;text-wrap:balance}
.paper h3{font-family:var(--f-story);font-weight:700;font-size:16px;margin:0}
.paper p{margin:0}
.sub{font-size:12px;color:var(--ink-2)}
.faint{color:var(--ink-3)}
.stack{display:flex;flex-direction:column;gap:8px}
.row{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:inherit}
.chip{display:inline-block;font-size:11px;font-weight:500;padding:2px 8px;border-radius:3px;background:#e3d3b3;color:var(--ink-2)}
.chip.rust{background:var(--rust);color:#fff1e8} .chip.soft-rust{background:#f1d9c9;color:var(--rust)}
.chip.silver{background:var(--silver);color:#4a4f58} .chip.holy{background:#d6e4ea;color:var(--holy)} .chip.sage{background:#dfe6cf;color:var(--sage)}

/* 수배지 */
.wanted{font-family:var(--f-display);font-size:44px;letter-spacing:.16em;line-height:1.1;margin:2px 0 6px}
.poster .sil{height:120px;background:#d8c6a2;margin:10px 0;display:grid;place-items:center;color:#8a7559;font-size:12px}
.poster .sil svg{width:76px;height:96px}
.bounty-sum{font-family:var(--f-display);font-size:32px;color:var(--rust);line-height:1.1;margin:6px 0 10px}
.stamp{position:absolute;right:18px;top:150px;border:2px solid var(--rust);color:var(--rust);font-family:var(--f-display);font-size:15px;padding:2px 10px;transform:rotate(14deg);opacity:.85;pointer-events:none}
.poster.locked{filter:grayscale(.7);opacity:.75}

/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #b9a079;border-radius:3px;padding:7px 14px;font-size:13px;font-weight:500;background:transparent}
.btn:hover:not(:disabled){background:rgba(0,0,0,.05)}
.btn.primary{background:var(--rust);border-color:#7f3520;color:#fff4ea;font-weight:600}
.btn.primary:hover:not(:disabled){background:#8a3a21}
.btn.block{width:100%}

/* 진행 막대 */
.bar{height:6px;background:#e2d3b3;border-radius:3px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--rust);transition:width .5s linear}
.bar.sage i{background:var(--sage)} .bar.holy i{background:var(--holy)}
.timer{font-family:var(--f-mono);font-size:12px;color:var(--rust)}

/* 일지 */
.lines{display:flex;flex-direction:column;max-height:var(--lines-h,250px);overflow-y:auto;margin-top:8px}
.lines div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--paper-line);font-size:13px}
.lines time{font-family:var(--f-mono);font-size:11px;color:var(--ink-3);padding-top:1px}
.hit{color:var(--rust)} .ash{font-weight:500} .gain{color:var(--brass)} .spare{color:var(--sage);font-weight:500} .calm{color:var(--ink-2)}
.empty{font-size:13px;color:var(--ink-3);padding:6px 0}

/* 체크 목록 */
.check{display:flex;align-items:center;gap:8px;font-size:13px}
.check i{width:13px;height:13px;border:1px solid var(--ink-3);border-radius:2px;flex:none;display:grid;place-items:center;font-style:normal;font-size:9px;color:#fff}
.check.on i{background:var(--sage);border-color:var(--sage)}
.check.on span{color:var(--ink-3)}

/* 실린더 */
.cyl{position:relative;width:180px;height:180px;margin:6px auto}
.cyl .hub{position:absolute;inset:64px;border-radius:50%;background:#e4d6b9;border:1px solid #b9a079}
.ch{position:absolute;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-weight:500;font-size:14px;border:1px solid #b9a079}
.ch.n{background:#d7c4a2} .ch.s{background:var(--silver)} .ch.h{background:#d6e4ea;color:var(--holy)}
.ch.empty{opacity:.45}
.ch.cur{box-shadow:0 0 0 2px var(--rust)}
.toggle{display:flex;align-items:flex-start;gap:8px;font-size:13px}
.toggle input{accent-color:var(--sage);width:16px;height:16px;margin-top:2px}

/* 가격표 */
.tag{background:#f8efd9;border:1px dashed #b9a079;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center}
.tag + .tag{margin-top:8px}
.tag b{font-family:var(--f-story)} .tag .sub{grid-column:1}

/* 하단 독 */
.dock{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));z-index:25;height:var(--dock-h);background:var(--wood-dark);color:var(--cream);
  display:flex;align-items:center;gap:24px;padding:0 max(28px,env(safe-area-inset-right,0px)) 0 max(28px,env(safe-area-inset-left,0px))}
.dock .mini{display:flex;align-items:center;gap:8px}
.dock .mini .lbl{font-size:12px;color:var(--cream-3)}
.dock .mc{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-weight:500;font-size:13px;color:var(--ink)}
.dock .mc.n{background:#d7c4a2} .dock .mc.s{background:var(--silver)} .dock .mc.h{background:#d6e4ea;color:var(--holy)} .dock .mc.empty{background:#3a2f24;color:#8a7559}
.dock .mc.cur{box-shadow:0 0 0 2px #e05a3a}
.dock .hp{width:240px;display:flex;flex-direction:column;gap:6px}
.dock .hp .row{font-size:12px;color:var(--cream-3)} .dock .hp .mono{color:var(--cream)}
.dock .bar{background:#3a2f24;height:8px;border-radius:4px} .dock .bar i{background:var(--rust-2)}
.dock .grow{flex:1}
.dock .btn{border-color:#7d9a6f;color:#b9d0a8}
.dock .btn.off{border-color:#5d4a38;color:var(--cream-3)}
.dock .btn.primary{color:#fff4ea;border-color:#7f3520;font-size:15px;padding:12px 20px}
.dock .status{font-size:12px;color:var(--cream-2)}
@media (max-width:720px){
  .dock{gap:10px;padding:0 max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px))}
  .dock .mini .lbl,.dock .status,.dock .btn:not(.primary){display:none}
  .dock .mc{width:26px;height:26px;font-size:11px}
  .dock .mini{gap:6px}
  .dock .hp{width:84px;gap:3px}
  .dock .hp .row span:first-child{display:none}
  .dock .bar{height:6px}
  .dock .btn.primary{font-size:13px;padding:9px 12px}
}

/* 하단 탭바(모바일) */
.tabbar{display:none}
@media (max-width:720px){
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:26;background:var(--wood-deep);
    height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding:6px max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px));justify-content:space-around;align-items:flex-start}
  .tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;border-radius:4px;color:var(--cream-2);font-size:12px;min-width:56px}
  .tabbar button::before{content:"";width:6px;height:6px;border-radius:50%;background:#6b5844}
  .tabbar button[aria-current="page"]{background:var(--brass);color:#fff6e2;font-weight:600}
  .tabbar button[aria-current="page"]::before{background:#fff6e2}
}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--dock-h) + var(--nav-h) + env(safe-area-inset-bottom,0px) + 14px);z-index:50;
  background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:3px;font-size:13px;max-width:calc(100vw - 32px)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== v0.3 추가 ===== */
.stack.gap{gap:30px}
.story-text{font-family:var(--f-story);font-size:15px;line-height:1.65}
.memo-head{font-size:12px;font-weight:600;color:#5c4a1c}
.news-title{font-family:var(--f-display);font-weight:400;font-size:21px;margin:0}
.ch.f{background:#f3e3a1} .dock .mc.f{background:#f3e3a1}

/* 조우 쪽지 */
.paper.event{background:#fbf1dc;border-color:#d9a58f;box-shadow:0 2px 0 rgba(0,0,0,.18),0 0 0 3px rgba(159,68,40,.18)}
.choices{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.choice{display:flex;justify-content:space-between;align-items:baseline;gap:10px;text-align:left;padding:8px 10px;border:1px dashed #c9a98c;border-radius:3px;background:rgba(255,255,255,.35);
  font-family:var(--f-story);font-size:15px;color:var(--rust)}
.choice:hover:not(:disabled){background:#f6e3cf;border-style:solid}
.choice small{font-family:var(--f-mono);font-size:11px;color:var(--ink-3);white-space:nowrap}
@media (max-width:420px){.choice{flex-direction:column;gap:2px}}

/* 일지 필터 */
.filters{display:flex;gap:4px;flex-wrap:wrap;margin-top:10px}
.filters button{font-size:12px;padding:3px 9px;border:1px solid var(--paper-edge);border-radius:12px;color:var(--ink-2)}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}

/* 수배지 보스 */
.poster.boss{background:#f3e6e0;border-color:#c99a8a}
.poster.boss .wanted{color:#7a2a18}

/* 신원 등록 */
.paper.register{text-align:left;max-width:640px}
.form{display:flex;flex-direction:column;gap:6px}
.form label{font-size:13px;font-weight:500}
.form input[type="text"],.form input:not([type]){font:inherit;font-family:var(--f-story);font-size:17px;padding:8px 10px;border:0;border-bottom:1px solid #b9a079;background:rgba(255,255,255,.4);color:var(--ink);margin-bottom:8px}
.form fieldset{border:0;padding:0;margin:6px 0 10px;display:flex;flex-direction:column;gap:8px}
.form legend{font-size:13px;font-weight:500;margin-bottom:6px}
.bg-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px dashed #c9b28a;border-radius:3px;cursor:pointer;font-weight:400!important}
.bg-opt:has(input:checked){border:1px solid var(--rust);background:#f6e3cf}
.bg-opt input{accent-color:var(--rust);margin-top:4px}
.bg-opt b{font-family:var(--f-story);font-size:16px;display:block}
.bg-opt small{font-size:12px;color:var(--ink-2)}
.err{color:var(--rust);font-size:13px;margin:0}

/* 도감 */
.codex{padding:10px 0;border-top:1px solid var(--paper-line)}
.codex:first-child{border-top:0}
.codex b{font-family:var(--f-story)}
.codex ul{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.6}
.codex.unknown b{color:var(--ink-3)}

/* 공유 카드 */
.card-canvas{width:100%;height:auto;display:block;margin-top:10px;border:1px solid var(--paper-edge);max-width:100%}

/* 독 계기 */
.dock .meters{display:flex;gap:16px}
.dock .meters .hp{width:180px}
.dock .water .bar i{background:#6aa5c0}
@media (max-width:720px){
  .dock .meters{flex-direction:column;gap:4px}
  .dock .meters .hp{width:70px}
  .dock .meters .row{font-size:10px}
}

/* ===== 출입 명부 (로그인·가입) ===== */
body.logged-out{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
body.logged-out .dock,body.logged-out .tabbar,body.logged-out .tabs,body.logged-out .wallet{display:none}
.auth-wrap{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:26px;padding-top:8px}
.paper.auth{width:min(440px,100%);text-align:left}
.auth-wrap .memo{width:min(440px,100%);order:-1;--tilt:1deg !important}
@media (max-width:720px){.auth-wrap{gap:22px}}
.auth-tabs{display:flex;border-bottom:1px solid #b9a079;margin-bottom:16px}
.auth-tabs button{flex:1;padding:9px 0;font-size:15px;color:var(--ink-3);border-bottom:3px solid transparent;margin-bottom:-1px}
.auth-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--rust);font-weight:600}
.form input[type="password"]{font:inherit;font-size:17px;padding:8px 10px;border:0;border-bottom:1px solid #b9a079;background:rgba(255,255,255,.4);color:var(--ink);margin-bottom:8px;letter-spacing:.1em}
.form input:focus{outline:none;border-bottom:2px solid var(--rust);background:rgba(255,255,255,.65)}
#a-id,#a-inv{font-family:var(--f-mono)!important;font-size:16px!important}
.link{color:var(--rust);text-decoration:underline;font-size:inherit}

/* ===== v0.4: 프로필 · 줄 세우기 · 광장 ===== */
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
label.btn{cursor:pointer}
.ava{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;object-fit:cover;background:#d8c6a2;border:1px solid #b9a079;
  font-family:var(--f-story);font-weight:700;color:#6b5844;font-size:16px}
.ava.ini{background:var(--rust);color:#fff4ea;border-color:#7f3520}
.ava.sm{width:28px;height:28px;font-size:13px}
.ava.lg{width:64px;height:64px;font-size:24px}
.ava.xl{width:88px;height:88px;font-size:32px;border-width:2px}
.ava-pick,.profile{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.me-chip{display:inline-flex;align-items:center;gap:7px;color:var(--cream);font-family:var(--f-body);font-size:13px;padding:2px 10px 2px 2px;border-radius:16px;background:#3a2d22}
.me-chip:hover{background:#4a3a2c}
.me-chip span{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){.wallet .me-chip{order:-1}}

/* 줄 세우기 (의뢰·훈련) */
.qrow{padding:8px 10px;border:1px dashed var(--paper-edge);border-radius:3px;display:flex;flex-direction:column;gap:5px}
.qrow.on{border-style:solid;border-color:#c99a6a;background:rgba(255,255,255,.4)}
.qrow .btn{padding:3px 9px;font-size:12px}
.paper h2 small{font-size:12px;font-family:var(--f-mono);font-weight:400}

/* 광장: 순위 */
.rank{display:flex;flex-direction:column;margin-top:10px;max-height:460px;overflow-y:auto}
.rrow{display:grid;grid-template-columns:28px auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 4px;border-top:1px solid var(--paper-line);text-align:left;width:100%}
.rrow:first-child{border-top:0}
.rrow:hover{background:rgba(0,0,0,.035)}
.rrow.me{background:#f6e3cf}
.rrow .no{font-family:var(--f-display);font-size:18px;color:var(--ink-3);text-align:center}
.rrow:nth-child(1) .no{color:var(--rust)} .rrow:nth-child(2) .no,.rrow:nth-child(3) .no{color:var(--brass)}
.rrow .who{display:flex;flex-direction:column;min-width:0}
.rrow .who b{font-family:var(--f-story);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rrow .who small{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rrow .val{font-size:14px}

/* 광장: 게시판 */
.chat-list{display:flex;flex-direction:column;gap:10px;max-height:380px;overflow-y:auto;margin:10px 0;padding-right:4px}
.msg{display:flex;gap:10px;align-items:flex-start}
.msg p{margin:2px 0 0;font-size:14px;line-height:1.5;word-break:break-word}
.msg b{font-family:var(--f-story);font-size:14px}
.msg time{font-size:11px}
.msg.mine p{color:var(--ink)} .msg.mine b{color:var(--rust)}
.chat-form{flex-direction:row;gap:8px}
.chat-form input{flex:1;min-width:0;margin:0!important}
.dock .btn,.dock .mini .lbl{white-space:nowrap}
.dock .status{min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34ch}
@media (max-width:980px){.dock .zn{display:none}}
.profile{text-align:left}

/* ===== v0.5: 캐릭터 시트 · 자유 소통 ===== */
.ava.xxl{width:180px;height:180px;font-size:64px;border-width:2px}
.who-link{font-family:var(--f-story);font-weight:700;color:inherit;text-decoration:none;border-bottom:1px dotted var(--ink-3)}
.who-link:hover{color:var(--rust);border-bottom-color:var(--rust)}
.ava-btn{border-radius:50%;flex:none}
.form textarea{font:inherit;font-family:var(--f-story);font-size:15px;line-height:1.6;padding:8px 10px;border:1px solid #cdb994;border-radius:3px;background:rgba(255,255,255,.45);color:var(--ink);resize:vertical;width:100%}
.form textarea:focus{outline:none;border-color:var(--rust);background:rgba(255,255,255,.7)}

/* 시트 편집 */
.sheet-edit .cnt{display:block;text-align:right;font-size:10px;color:var(--ink-3);margin:-6px 0 6px}
.sheet-imgs{display:flex;gap:22px;flex-wrap:wrap;margin:12px 0 16px}
.img-slot{display:flex;flex-direction:column;align-items:center;gap:6px}
.img-slot small{font-size:11px}
.standing-prev{width:120px;height:160px;border:1px dashed #b9a079;border-radius:4px;display:grid;place-items:center;overflow:hidden;background:#e7d8b9;font-size:12px}
.standing-prev img{width:100%;height:100%;object-fit:cover}
.sheet-form .two{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 14px}
.sheet-form .two > div{display:flex;flex-direction:column;min-width:0}
.colors{display:flex;flex-wrap:wrap;gap:8px}
.color-opt{cursor:pointer}
.color-opt input{position:absolute;opacity:0}
.color-opt span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 8px;border:1px solid #cdb994;border-radius:14px;font-size:13px}
.color-opt span::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--c)}
.color-opt input:checked + span{border-color:var(--c);box-shadow:0 0 0 2px var(--c) inset}
.color-opt input:focus-visible + span{outline:2px solid var(--brass);outline-offset:2px}

/* 시트 열람 */
.sheet{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;margin-top:14px;border-top:3px solid var(--sc);padding-top:16px}
@media (max-width:720px){.sheet{grid-template-columns:minmax(0,1fr)}.sheet-side{justify-self:center}}
.standing{width:100%;max-width:220px;aspect-ratio:3/4;object-fit:cover;border:1px solid #b9a079;border-radius:3px;filter:sepia(.12)}
.sheet-head{display:flex;gap:12px;align-items:center}
.sheet-name{font-size:28px!important;margin:0}
.chip.tagc{background:transparent;border:1px solid var(--sc);color:var(--sc)}
.quote{margin:14px 0 4px;padding:6px 0 6px 14px;border-left:3px solid var(--sc);font-family:var(--f-story);font-size:17px;color:var(--ink)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0}
.fact{display:flex;flex-direction:column;padding:8px 10px;background:rgba(255,255,255,.4);border:1px solid var(--paper-line);border-radius:3px}
.fact span{font-size:11px;color:var(--ink-3)}
.fact b{font-family:var(--f-story);font-size:15px}
.long{margin-top:14px}
.long h3{font-size:13px!important;color:var(--sc);letter-spacing:.06em;margin-bottom:4px!important}
.long .story-text{white-space:normal}
.rel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notes{display:flex;flex-direction:column;gap:10px;margin:10px 0;max-height:340px;overflow-y:auto}
.note{display:flex;gap:10px}
.note p{margin:2px 0 0;font-size:14px;word-break:break-word}

/* 게시판: 대사/행동/사담 */
.kinds{display:flex;gap:4px}
.kinds button{flex:1;padding:6px 0;border:1px solid #cdb994;border-radius:3px;font-size:13px;color:var(--ink-2)}
.kinds button[aria-checked="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}
.compose{gap:6px}
.replying{font-size:12px;color:var(--ink-2)}
.chat-list{max-height:460px}
.msg .mbody{min-width:0;flex:1}
.mhead{display:flex;gap:8px;align-items:baseline}
.mhead time{font-size:11px}
.msg p{margin:3px 0 0}
.msg p.say{font-family:var(--f-story);font-size:15px}
.msg p.act{font-family:var(--f-story);font-size:15px;color:#5a4636}
.msg p.act .who-link{font-style:normal}
.msg p.ooc{font-size:13px;color:var(--ink-2)}
.tagk{font-size:10px;padding:1px 6px;border-radius:8px;background:#e3d3b3;color:var(--ink-2);vertical-align:1px}
.msg.k-ooc{opacity:.92}
.msg.reply{margin-left:38px;padding-left:10px;border-left:2px solid var(--paper-line)}
.mfoot{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.rx{font-size:11px;padding:1px 8px;border:1px solid var(--paper-line);border-radius:10px;color:var(--ink-3)}
.rx:hover{border-color:#b9a079;color:var(--ink-2)}
.rx.on{background:#f6e3cf;border-color:#d9a58f;color:var(--rust)}
