/* 기존 테마 변수를 유지하면서 인증/관리 화면과 접근성에 필요한 레이아웃을 보완합니다. */
*{box-sizing:border-box}body{height:auto;min-height:100vh;overflow:auto;display:block}#app{min-height:100vh}
button,input,textarea,select{font:inherit}button{width:auto;cursor:pointer;margin:0}button:disabled{opacity:.5;cursor:wait}
input,textarea,select{width:100%;margin:0}input[type=checkbox]{width:22px;height:22px}textarea{min-height:90px;resize:vertical}
a{color:var(--point-color);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--point-color);outline-offset:3px}
.app-shell{display:flex;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;flex:0 0 220px;gap:18px}.sidebar a{padding:8px 0}.content{min-width:0;overflow:visible;padding:30px;max-width:1300px}
.login-panel{width:min(420px,calc(100% - 32px));margin:12vh auto;padding:30px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-panel)}
.field{display:flex;flex-direction:column;gap:8px;margin:16px 0;font-size:.95rem}.primary{background:var(--point-color);color:white}.danger{color:#d53636;border-color:#d53636}.muted,small{color:var(--text-sub)}
.notice{padding:12px;border-radius:6px;background:var(--bg-panel);line-height:1.6;overflow-wrap:anywhere}.notice.error{border:1px solid #d53636;color:#d53636}
.section-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.actions,.tabs,.pagination{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}
.tabs a{padding:10px 14px;border:1px solid var(--border-color);border-radius:6px}.tabs .selected,[aria-current=page]{background:var(--point-color);color:#fff}
.admin-card{border:1px solid var(--border-color);border-radius:8px;margin:16px 0;padding:20px;overflow-wrap:anywhere}.admin-card h3{margin-top:0}
.preview-text,.body-text{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.7}.preview-text{max-height:200px;overflow:auto;background:var(--bg-panel);padding:12px}
.filter-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.filter-row .field{flex:1;min-width:140px}.filter-row>button{margin-bottom:16px}
.room-list{display:grid;gap:16px}.room-card{display:flex;justify-content:space-between;gap:20px;margin:0}.gallery-item{display:block;color:var(--text-main);min-width:0}.gallery-title{display:block;white-space:normal;overflow-wrap:anywhere;margin-top:10px}
.post-thumb,.text-thumb{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;background:var(--bg-panel)}.text-thumb{display:grid;place-items:center}.detail-image{display:block;max-width:100%;max-height:900px;object-fit:contain;margin:24px auto}
.post-detail{max-width:900px;margin:auto;overflow-wrap:anywhere}.votes,.comments{border-top:1px solid var(--border-color);margin-top:28px;padding-top:20px}.vote-form{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.vote-form .field{width:140px}
.comment-item,.reply-item{display:block;border-bottom:1px solid var(--border-color);padding:16px 8px}.reply-item{margin-left:28px;border-left:2px solid var(--border-color);padding-left:18px;background:var(--bg-panel)}.comment-heading{display:flex;gap:12px;flex-wrap:wrap}.comment-item .actions button,.reply-item .actions button{font-size:.85rem;padding:6px 10px}.inline-editor{padding:12px;background:var(--bg-panel)}
dialog{width:min(620px,calc(100% - 24px));max-height:90vh;overflow:auto;border:1px solid var(--border-color);border-radius:12px;padding:24px;background:var(--bg-main);color:var(--text-main)}dialog::backdrop{background:#0009}.dialog-head h2{font-size:1.2rem}.chat-messages{display:flex;flex-direction:column;gap:10px;height:320px;overflow:auto}.chat-bubble{white-space:pre-wrap}.chat-bubble.me{align-self:flex-end}.chat-bubble.other{align-self:flex-start}
@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;flex-direction:row;flex-wrap:wrap;padding:14px;gap:12px}.sidebar h2{width:100%;margin:0}.sidebar p{margin:0;width:100%}.content{padding:16px}.filter-row{display:block}.section-head h1{font-size:1.35rem}.reply-item{margin-left:12px}.admin-card{padding:14px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}h1{font-size:1.7rem}.room-card{flex-direction:column;gap:8px}}
