.admin-page { background:#f3f5f8; color:#162a40; font-family:'Pretendard',sans-serif; font-size:18px; line-height:1.65; }
.admin-page [hidden] { display:none!important; }
.admin-header { background:#111c30; color:white; padding:22px max(28px,calc((100vw - 1280px)/2)); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.admin-brand { display:flex; align-items:center; gap:15px; font-size:15px; color:#c4d0e1; }
.admin-brand img { background:#f2edff; padding:5px; border-radius:10px; }
.admin-brand h1 { font-size:22px; color:white; margin:0; }
.admin-header-actions { display:flex; align-items:center; gap:24px; }
.admin-header nav { display:flex; gap:24px; font-size:16px; }
.admin-header nav a:hover { text-decoration:underline; }
.admin-main { width:calc(100% - 56px); max-width:1280px; margin:0 auto; padding:20px 0 90px; }
.admin-eyebrow { letter-spacing:1.4px; color:#5d4c83; font-size:14px; font-weight:700; }
#admin-account { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.admin-page .button { min-height:46px; font-size:16px; border-radius:8px; padding:10px 18px; }
.admin-page .button.dark { background:#203750; color:white; }
.admin-page .button.outline { border:1px solid #94a7bc; color:#243c56; background:#fff; }
.admin-page .button.danger { border-color:#c4868c; color:#a42232; }
.admin-page button:disabled { opacity:.55; cursor:wait; }
.admin-page :focus-visible { outline:3px solid #7c4fd2; outline-offset:4px; }
.admin-status { margin:22px 0; color:#265c51; font-size:17px; }
.admin-status:empty { display:none; }
.admin-status.is-error { color:#a42232; background:#fff0f1; padding:14px 18px; border-radius:8px; }
.admin-login { max-width:540px; margin:45px auto; padding:36px; background:#fff; border:1px solid #c9d3df; border-radius:18px; box-shadow:0 15px 45px #1935510a; }
.admin-login h2 { font-size:29px; margin:9px 0 12px; }
.admin-login>p { color:#536379; font-size:17px; margin-bottom:24px; }
.admin-page label { display:flex; flex-direction:column; gap:8px; min-width:0; font-size:16px; font-weight:650; color:#31465e; }
.admin-page input,.admin-page select,.admin-page textarea { width:100%; min-width:0; border:1px solid #96a9bf; border-radius:8px; background:#fff; color:#172a42; font:inherit; font-size:18px; padding:11px 13px; }
.admin-page textarea { resize:vertical; min-height:140px; }
.admin-login form { display:grid; gap:19px; }
.admin-tabs { display:flex; gap:8px; border-bottom:1px solid #c9d3df; margin:8px 0 24px; padding-bottom:12px; }
.admin-tabs button { border:0; background:transparent; color:#4c5d72; padding:13px 25px; font:inherit; font-size:19px; font-weight:700; border-radius:9px; }
.admin-tabs button[aria-pressed=true] { color:white; background:#243d57; box-shadow:0 3px 8px #20354b15; }
.admin-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:22px; }
.admin-panel-heading h2 { font-size:28px; letter-spacing:-.8px; }
.admin-panel-heading p { color:#53647a; font-size:17px; margin-top:6px; }
.admin-panel-heading .button { flex-shrink:0; }
.attendance-counts { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:24px 0; }
.attendance-counts>div { background:#fff; border:1px solid #ccd7e3; border-radius:12px; padding:20px 24px; }
.attendance-counts span { display:block; color:#53647a; font-size:16px; }
.attendance-counts strong { display:block; font-size:32px; font-variant-numeric:tabular-nums; line-height:1.5; }
.admin-filters { display:grid; grid-template-columns:2fr 1.2fr 1fr 1fr; gap:14px; margin:26px 0 16px; }
.question-filters { grid-template-columns:3fr 1fr; }
.admin-hint { font-size:15px; line-height:1.7; color:#576a7c; }
.admin-result-count { margin:17px 0 12px; font-size:16px; color:#445b71; }
.attendance-list { display:grid; gap:12px; }
.attendance-person { background:#fff; border:1px solid #c8d4e0; border-radius:12px; padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.attendance-person h3 { font-size:22px; }
.attendance-person>div:first-child { min-width:0; }
.attendance-person[data-track=ops] { background:#edf8f4; border-color:#afd2c5; }
.attendance-person[data-track=platform] { background:#eff3fd; border-color:#b9c8e8; }
.person-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-bottom:5px; }
.person-heading h3 { overflow-wrap:anywhere; }
.person-heading .person-track { font-size:14px; border-radius:6px; padding:3px 9px; background:#d4eee3; color:#1a5c47; }
.attendance-person[data-track=platform] .person-track { background:#dce5fb; color:#354f88; }
.person-department { color:#304c63; font-size:17px; margin-top:3px; overflow-wrap:anywhere; }
.attendance-filters { grid-template-columns:2fr 1fr 1fr; }
.attendance-person .person-company { color:#485d73; font-size:17px; overflow-wrap:anywhere; }
.person-location { display:flex; flex-wrap:wrap; gap:8px 15px; font-size:16px; margin-top:8px; }
.person-track { color:#5b3e89; font-weight:650; }
.attendance-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; flex-shrink:0; }
.attendance-actions .button[aria-pressed=true] { color:#155247; border-color:#72afa0; background:#e9f5ef; }
.attendance-actions [data-attendance-history] { border:0; background:transparent; color:#506479; font-size:16px; padding:10px; text-decoration:underline; }
.attendance-history-dialog { width:min(600px,calc(100% - 30px)); max-height:80dvh; border:0; padding:28px; border-radius:16px; margin:auto; color:#203750; }
.attendance-history-dialog::backdrop { background:#0d192d99; }
#attendance-history-content p { font-size:16px; padding:14px 0; border-top:1px solid #d7e0e8; overflow-wrap:anywhere; }
.admin-empty { padding:32px; border:1px dashed #b5c3d2; background:#fff; border-radius:12px; color:#54677d; text-align:center; }
.announcement-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:start; }
.announcement-editor { display:grid; gap:18px; background:#fff; border:1px solid #bdcddd; border-radius:14px; padding:28px; }
.announcement-editor h3,.notice-list-title { font-size:22px; }
.notice-list-title { margin-bottom:18px; }
.admin-notice-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.notice-visibility { display:flex; flex-wrap:wrap; gap:6px; padding:5px; border-radius:12px; background:#edf1f6; }
.notice-visibility .button[aria-pressed=true] { background:#243d57; color:#fff; border-color:#243d57; }
.notice-visibility .button[data-notice-published=true][aria-pressed=true] { background:#205d48; border-color:#205d48; }
.admin-page .admin-check { flex-direction:row; align-items:center; gap:10px; font-size:18px; }
.admin-check input { width:21px; height:21px; accent-color:#365b79; }
.admin-form-actions { display:flex; gap:10px; flex-wrap:wrap; }
.admin-notice-card,.admin-question-card { background:#fff; border:1px solid #c6d3df; border-radius:12px; padding:24px; margin-bottom:16px; }
.admin-notice-card h4 { font-size:21px; overflow-wrap:anywhere; }
.admin-notice-card p,.admin-question-card p { white-space:pre-wrap; overflow-wrap:anywhere; margin:12px 0 18px; font-size:18px; line-height:1.8; }
.admin-notice-card small,.admin-question-card small { display:block; color:#51667d; font-size:15px; margin-bottom:12px; }
.admin-tag { display:inline-block; padding:3px 9px; border-radius:5px; background:#e9edf5; color:#405572; font-size:14px; font-weight:700; margin-bottom:10px; }
.admin-tag.published { background:#e5f3ec; color:#205d48; }
.admin-tag.pending { background:#fff0d5; color:#815408; }
.admin-tag.answered { background:#e8effa; color:#315078; }
.admin-tag.resolved { background:#dff3e7; color:#205439; }
.admin-question-actions { display:flex; flex-wrap:wrap; gap:10px; }
.admin-question-session { padding:12px 15px; margin:0 0 16px; background:#edf2f8; border-radius:8px; color:#2c4764; font-size:17px; font-weight:650; overflow-wrap:anywhere; }
.admin-answer-preview { padding:16px 18px; margin:0 0 20px; background:#edf7f2; border-radius:10px; color:#204a3d; }
.admin-answer-preview strong { font-size:16px; }
.admin-answer-preview p { margin:8px 0 0; }
@media(max-width:1000px) {
  .attendance-person { align-items:flex-start; flex-direction:column; gap:16px; }
  .admin-filters { grid-template-columns:1fr 1fr; }
}
@media(max-width:760px) {
  .admin-main { width:calc(100% - 32px); padding-top:16px; }
  .admin-header { padding:17px 16px; align-items:flex-start; gap:15px; }
  .admin-brand { gap:10px; font-size:13px; }
  .admin-brand h1 { font-size:19px; }
  .admin-header-actions { flex-direction:column; align-items:flex-end; gap:8px; }
  .admin-header nav { flex-direction:column; gap:8px; font-size:14px; }
  .admin-tabs { gap:4px; }
  .admin-tabs button { flex:1; padding:12px 6px; font-size:16px; }
  .admin-panel-heading { align-items:flex-start; flex-wrap:wrap; gap:14px; }
  .admin-panel-heading h2 { font-size:25px; }
  .attendance-counts { gap:8px; }
  .attendance-counts>div { padding:14px 11px; }
  .attendance-counts span { font-size:14px; }
  .attendance-counts strong { font-size:25px; }
  .admin-filters { gap:12px; }
  .admin-filters>label:first-child { grid-column:1/-1; }
  .admin-filters select { font-size:16px; padding:11px 8px; }
  .question-filters,.announcement-workspace { grid-template-columns:1fr; }
  .attendance-person { padding:19px; }
  .attendance-actions { flex-shrink:1; width:100%; gap:8px; }
  .attendance-actions .button { padding:10px 12px; font-size:15px; }
  .admin-login,.announcement-editor { padding:24px 20px; }
}
.admin-question-assignment{display:flex;gap:8px;max-width:100%;flex-wrap:wrap;align-items:center}.admin-question-assignment select{min-width:0;max-width:100%;flex:1;padding:12px;font:inherit;border:1px solid #bdc9d8;border-radius:8px}

.admin-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.admin-text-link { display:inline-flex; align-items:center; min-height:44px; padding:8px 4px; border:0; background:transparent; color:#34516f; font:inherit; font-size:15px; cursor:pointer; text-underline-offset:4px; }
.admin-text-link:hover { text-decoration:underline; }
.question-status-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:26px 0; }
.question-status-filters button { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:18px 22px; border:1px solid #c5d1df; background:#fff; border-radius:12px; font:inherit; color:#465d76; cursor:pointer; text-align:left; }
.question-status-filters button span { font-size:16px; font-weight:650; }
.question-status-filters button strong { font-size:28px; line-height:1.3; font-variant-numeric:tabular-nums; }
.question-status-filters button:hover { border-color:#526f8f; background:#eef3f8; }
.question-status-filters button[aria-pressed=true] { border-color:#243d57; background:#243d57; color:#fff; }
.question-status-filters [data-question-status=pending]:not([aria-pressed=true]) strong { color:#986016; }
.question-toolbar { display:grid; grid-template-columns:2fr 1fr; gap:14px; }
.question-extra-filters { flex:1; min-width:0; }
.question-extra-filters summary { display:list-item; width:fit-content; min-height:44px; padding:10px 4px; color:#34516f; font-size:15px; cursor:pointer; }
.question-extra-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; background:#e9eef5; border-radius:10px; padding:18px; margin:4px 0 12px; }
.question-extra-grid .admin-check { grid-column:1/-1; }
.question-list-tools,.question-list-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; }
.question-list-tools { margin:8px 0 10px; align-items:flex-start; }
.admin-page .question-list-tools .admin-check { font-size:16px; }
.question-list-summary { font-size:14px; color:#53647a; padding-bottom:12px; }
#questions-summary { font-weight:650; color:#304860; }
#questions-notice:empty { display:none; }
.admin-question-list[aria-busy=true] { opacity:.65; }
.admin-question-card { padding:22px 26px; border-radius:12px; margin-bottom:12px; }
.admin-question-card.needs-attention { border-color:#b8c6d6; }
.question-card-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; margin-bottom:12px; }
.question-card-meta .admin-tag { margin:0; }
.question-category { font-size:15px; color:#465d76; font-weight:650; }
.question-followup { font-size:14px; font-weight:700; color:#925116; }
.hidden-question { color:#5d526a; background:#eee9f3; }
.private-question { color:#5b4a14; background:#f6ecd0; }
.question-card-body { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; white-space:pre-wrap; overflow-wrap:anywhere; font-size:20px; line-height:1.6; letter-spacing:-.3px; font-weight:650; }
.admin-question-card .question-card-author { font-size:14px; margin:8px 0 0; color:#586a7d; }
.question-latest { display:flex; align-items:baseline; gap:14px; background:#eff4f8; border-radius:8px; padding:12px 16px; margin-top:16px; }
.question-latest.from-participant { background:#fff5e5; }
.question-latest>span { flex-shrink:0; color:#496079; font-size:13px; font-weight:700; }
.admin-question-card .question-latest p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0; font-size:16px; line-height:1.6; }
.question-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px 20px; margin-top:18px; }
.question-activity { color:#53647a; font-size:13px; }
.admin-question-actions { align-items:center; }
.question-management { position:relative; }
.question-management summary { padding:11px 12px; min-height:46px; font-size:15px; cursor:pointer; color:#496079; border-radius:8px; }
.question-management summary:hover { background:#edf2f7; }
.question-management-controls { position:absolute; z-index:2; right:0; width:310px; max-width:calc(100vw - 64px); margin-top:6px; display:grid; gap:14px; background:#fff; padding:18px; border:1px solid #b6c7d9; border-radius:12px; box-shadow:0 12px 32px #17263824; }
.question-management-controls .admin-question-assignment { display:grid; gap:10px; }
.admin-page .qa-staff { display:none; }
.admin-page .is-staff-thread #qa-session,.admin-page .is-staff-thread label[for=qa-session] { display:none; }
.admin-page .qa-dialog .qa-body { font-size:18px; line-height:1.8; }
.admin-page .qa-dialog .qa-thread-message .qa-body { font-size:17px; }
.admin-page .qa-dialog .qa-thread-heading { margin-top:0; }
.admin-page .qa-dialog .qa-thread-heading h3 { margin-bottom:16px; }
.admin-page .qa-dialog .qa-thread-role { font-size:15px; }
@media(max-width:1000px) {
  .question-card-footer { align-items:flex-start; flex-direction:column; }
}
@media(max-width:600px) {
  .question-status-filters { gap:6px; margin:18px 0; }
  .question-status-filters button { padding:12px 6px; flex-direction:column; gap:6px; }
  .question-status-filters button span { font-size:13px; }
  .question-status-filters button strong { font-size:23px; }
  .question-toolbar { grid-template-columns:minmax(0,1fr); gap:12px; }
  .question-extra-filters[open] { flex-basis:100%; }
  .question-extra-grid { padding:14px; gap:12px; }
  .question-extra-grid select { font-size:16px; }
  .admin-page .question-toolbar select { font-size:16px; padding:11px 8px; }
  .question-list-summary { align-items:flex-start; flex-direction:column; gap:4px; }
  .admin-question-card { padding:18px; }
  .question-card-body { font-size:18px; }
  .question-latest { flex-direction:column; gap:4px; padding:12px; }
  .question-card-footer { gap:12px; }
  .admin-question-actions { gap:8px; width:100%; }
  .admin-question-actions .button { font-size:14px; padding:10px 12px; }
  .question-management-controls { position:static; width:auto; max-width:100%; box-shadow:none; }
  .question-management[open] { width:100%; }
}

/* Use the same message shapes and type scale as the participant chat. */
.admin-page .staff-chat { display:block; height:auto; min-height:600px; background:#f4f7fa; border:1px solid #d5e0e9; border-radius:16px; padding:22px 24px 0; }
.staff-chat .admin-panel-heading { margin-bottom:16px; }
.staff-chat .admin-panel-heading h2 { font-size:26px; }
.staff-chat .admin-panel-heading p { font-size:15px; margin-top:4px; }
.staff-chat .question-status-filters { margin:16px 0; gap:8px; }
.staff-chat .question-status-filters button { padding:10px 16px; }
.staff-chat .question-status-filters button strong { font-size:23px; }
.staff-chat .question-toolbar label { font-size:14px; gap:5px; }
.staff-chat .question-toolbar input,.staff-chat .question-toolbar select { padding:9px 12px; font-size:16px; }
.staff-chat .question-list-tools { margin-bottom:0; }
.staff-chat .question-list-summary { padding-bottom:18px; font-size:13px; }
.staff-chat .admin-question-list { padding:12px 8px 28px; }
.staff-chat .question-management summary { min-height:40px; padding:8px; font-size:14px; }
.staff-chat .question-management-controls { background:#fff; }
.staff-chat .question-management[open] { width:100%; }
.staff-chat .question-management-controls { position:static; width:min(340px,100%); box-shadow:none; }
.staff-chat .question-management-controls .button { border:1px solid #94a7bc; }
.staff-chat #staff-chat-scroll { height:clamp(320px,52dvh,650px); padding:4px 8px 14px; border-top:1px solid #dce5ed; }
.staff-chat #staff-chat-composer { position:relative; z-index:3; margin:0 -24px; padding:14px 24px max(12px,env(safe-area-inset-bottom)); border-radius:0 0 16px 16px; box-shadow:0 -5px 18px #193c500a; }
.staff-chat #staff-chat-body { min-height:48px; max-height:25dvh; padding:3px 2px; border:0; border-radius:0; font-size:18px; }
.staff-chat #staff-chat-send { width:44px; height:44px; flex-shrink:0; align-self:flex-end; border-radius:9px; background:var(--chat-gold); font-size:23px; font-weight:650; }
.staff-chat #staff-chat-cancel { min-width:40px; min-height:40px; font-size:23px; }
.staff-chat #staff-chat-notice:empty,.staff-chat #staff-chat-counter:empty { display:none; }
.staff-chat #staff-chat-counter { flex-shrink:0; }
.staff-chat .compose-bottom:has(#staff-chat-notice:empty):has(#staff-chat-counter:empty) { display:none; }
@media(max-width:760px) {
  .admin-page .staff-chat { padding:16px 12px 0; border-radius:12px; }
  .staff-chat .admin-panel-heading { gap:8px; }
  .staff-chat .admin-panel-heading p { display:none; }
  .staff-chat .admin-panel-heading .admin-form-actions { gap:8px; }
  .staff-chat .question-status-filters button { padding:9px 6px; }
  .staff-chat .question-status-filters button span { font-size:13px; }
  .staff-chat .admin-question-list { padding:6px 0 20px; gap:24px; }
  .staff-chat #staff-chat-composer { margin:0 -12px; padding:10px 12px max(10px,env(safe-area-inset-bottom)); border-radius:0 0 12px 12px; }
  .staff-chat .chat-bubble { max-width:100%; }
  .staff-chat #staff-chat-scroll { padding-inline:0; height:50dvh; min-height:280px; }
  .staff-chat .question-management[open] { width:100%; }
}

/* Staff Q&A uses the participant chat feed; staff-only tools sit on their own row under a question. */
.staff-chat .staff-question>.staff-question-tools { grid-column:1/-1; grid-row:3; display:flex; flex-wrap:wrap; align-items:flex-start; gap:2px 6px; margin-top:4px; }
.staff-chat .staff-question-tools .question-resolve { min-height:40px; padding:6px 9px; border-radius:8px; font-size:14px; color:#2c6f86; }
.staff-chat .staff-question-tools .question-resolve:hover { background:#e4eef4; }
.staff-chat .staff-question .card-meta .admin-tag { font-size:13px; padding:2px 6px; margin:0; }
.staff-chat .staff-question.needs-attention>.chat-bubble { border-color:#e7c98b; }
.staff-chat .admin-empty { text-align:center; color:#4f6276; padding:48px 12px; }
.staff-chat #questions-new { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); padding:9px 17px; border-radius:24px; background:#244d6a; color:#fff; box-shadow:0 3px 12px #15334b26; font-size:14px; white-space:nowrap; }
.staff-chat .wall-pagination:not(:has(button:enabled)) { display:none; }

/* Session materials tab */
.workshop-link-editors { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px; }
.workshop-link-editor { background:#fff; border:1px solid #c6d3df; border-radius:12px; padding:20px 22px; display:grid; gap:12px; }
.workshop-link-editor.is-published { border-left:5px solid #a35300; }
.workshop-link-editor h4 { font-size:19px; margin:0; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.workshop-link-editor h4 .admin-tag { margin:0; }
.workshop-link-editor label { display:grid; gap:6px; font-size:15px; font-weight:700; color:#33465f; }
.workshop-link-editor input[type=url], .workshop-link-editor input[type=text] { font:inherit; font-size:16px; padding:10px 12px; border:1px solid #b5c3d3; border-radius:8px; min-width:0; }
.workshop-link-editor small { color:#51667d; font-size:14px; }
.survey-qr-admin { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.survey-qr-admin img { width:120px; height:120px; object-fit:contain; border:1px solid #c6d3df; border-radius:8px; background:#fff; padding:6px; }
.survey-qr-side { display:grid; gap:10px; flex:1; min-width:220px; }
.survey-qr-side .material-file { margin:0; }
.workshop-link-editor .admin-form-actions { display:flex; gap:8px; flex-wrap:wrap; }
.material-group { margin-bottom:28px; }
.material-group > h3 { font-size:20px; margin:0 0 12px; color:#22324a; }
.material-card { display:flex; gap:20px; align-items:center; justify-content:space-between; background:#fff; border:1px solid #c6d3df; border-radius:12px; padding:18px 22px; margin-bottom:10px; }
.material-card.has-file { border-left:5px solid #2f8a66; }
.material-info { min-width:0; flex:1; }
.material-info h4 { font-size:19px; margin:2px 0 4px; overflow-wrap:anywhere; }
.material-time { color:#51667d; font-size:15px; font-weight:700; }
.material-speaker { margin:0; color:#405572; font-size:15px; }
.material-file { margin:8px 0 0; font-size:16px; color:#33465f; overflow-wrap:anywhere; }
.material-file a { font-weight:700; }
.material-progress { width:100%; max-width:420px; height:10px; margin-top:8px; }
.material-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.material-actions .admin-tag { margin:0; }
@media(max-width:760px) {
  .material-card { flex-direction:column; align-items:stretch; }
  .material-actions { justify-content:flex-start; }
}
