:root{color-scheme:light;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #eef5f4;--ink: #182026;--muted: #66727c;--line: #dce2e7;--line-strong: #c8d3da;--teal: #0d8a80;--teal-dark: #076b65;--red: #c94343;--gold: #b98915;--blue: #3867c8;--shadow: 0 18px 45px rgba(35, 45, 55, .1);--radius: 8px;font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#0d8a8014,#f6f7f900 260px),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{display:flex;flex-direction:column;width:min(1440px,100%);margin:0 auto;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.topbar-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}.user-badge{display:inline-flex;min-height:40px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.user-badge span,.user-badge button{display:inline-flex;align-items:center;border:0;background:transparent;padding:0 12px;font-size:13px}.user-badge span{max-width:160px;overflow:hidden;color:#40505a;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.user-badge button{border-left:1px solid var(--line);color:var(--teal-dark);cursor:pointer;font-weight:800}.sync-alert{margin:-6px 0 16px;border:1px solid rgba(201,67,67,.24);border-radius:var(--radius);background:#fff5f5;color:var(--red);font-size:13px;font-weight:750;padding:10px 12px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:8px;background:var(--teal);color:#fff;box-shadow:0 14px 28px #0d8a803d}h1,h2,h3,p{margin:0}.brand h1{font-size:22px;line-height:1.25}.brand p{color:var(--muted);font-size:14px;line-height:1.5;margin-top:3px}.ghost-button,.primary-button,.flag-button,.source-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;padding:0 14px;text-decoration:none;white-space:nowrap}.icon-button{display:inline-grid;width:40px;height:40px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}.ghost-button:hover,.source-link:hover,.icon-button:hover{border-color:var(--line-strong);background:#fdfefe}.ghost-button.small{min-height:36px;font-size:13px}.overview{margin-bottom:20px}.summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.summary-copy{align-self:center}.summary-copy h2{font-size:22px;line-height:1.25}.summary-copy p{margin-top:4px;color:#4e5c66;font-size:14px;line-height:1.5}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(76px,1fr));gap:8px;flex:0 0 auto}.metric{display:block;min-height:74px;min-width:76px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;color:inherit;cursor:pointer;text-align:left}.metric:hover,.metric.active{border-color:#0d8a8061;background:#eef7f5}.metric span{color:var(--teal)}.metric strong{display:block;margin-top:5px;font-size:20px;line-height:1}.metric p{margin-top:5px;color:var(--muted);font-size:12px}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.sidebar{display:grid;gap:16px;position:sticky;top:18px}.filter-toggle{display:none}.filter-card,.source-list,.practice-panel,.question-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.filter-card,.source-list{padding:16px}.filter-title{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-weight:800}.search-input,.select-trigger,.answer-box textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--ink);outline:none}.search-input{height:42px;padding:0 12px;margin-bottom:12px}.search-input:focus,.select-trigger:focus,.answer-box textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d8a801f}.select-field{position:relative;display:grid;gap:6px;margin-top:12px}.select-field span,.answer-box span,.eyeless-label{color:var(--muted);font-size:12px;font-weight:800}.select-trigger{position:relative;height:40px;cursor:pointer;padding:0 34px 0 10px;text-align:left}.select-trigger:after{position:absolute;top:50%;right:12px;width:7px;height:7px;border-right:2px solid #6b7780;border-bottom:2px solid #6b7780;content:"";transform:translateY(-65%) rotate(45deg)}.select-trigger span{display:block;overflow:hidden;color:var(--ink);font-size:14px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.select-field.open{z-index:20}.select-field.open .select-trigger{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px #0d8a801f}.select-menu{position:absolute;top:calc(100% + 6px);right:0;left:0;z-index:30;display:grid;max-height:232px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:0 16px 36px #1f2c3729}.select-option{min-height:38px;border:0;border-bottom:1px solid #edf1f4;background:transparent;color:var(--ink);cursor:pointer;padding:9px 12px;text-align:left}.select-option:last-child{border-bottom:0}.select-option:hover,.select-option[aria-selected=true]{background:#eef7f5;color:var(--teal-dark);font-weight:800}.source-list h3{font-size:15px;margin-bottom:12px}.source-list{max-height:calc(100vh - 330px);min-height:220px;overflow-y:auto}.source-row{display:grid;grid-template-columns:48px minmax(0,1fr) 36px;gap:10px;align-items:center;width:100%;padding:9px 0;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;cursor:pointer;text-align:left}.source-row span,.source-row strong{font-size:12px}.source-row p{display:grid;gap:2px;min-width:0;color:var(--muted);font-size:13px}.source-row b,.source-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-row b{color:#40505a;font-size:13px}.source-row small{color:var(--muted);font-size:11px}.source-row strong{justify-self:end;color:var(--blue)}.source-row:hover,.source-row.active{background:#eef7f5}.source-row.active span,.source-row.active b,.source-row.active small,.source-row.active strong{color:var(--teal-dark);font-weight:800}.practice-panel{min-width:0;padding:18px;box-shadow:var(--shadow)}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:16px}.panel-header h2{font-size:24px;line-height:1.25;margin-top:4px}.panel-controls{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px;justify-content:flex-end}.collection-panel{display:grid;gap:14px}.empty-state.compact{min-height:180px}.collection-header p{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.45}.collection-list{display:grid;gap:8px;max-height:calc(100vh - 260px);overflow-y:auto;padding-right:4px}.collection-row{display:grid;gap:5px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:inherit;cursor:pointer;padding:12px 14px;text-align:left}.collection-row:hover{border-color:var(--line-strong);background:#fdfefe}.collection-row strong{overflow:hidden;font-size:15px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.collection-row small,.collection-meta{color:var(--muted);font-size:12px;line-height:1.45}.collection-row small{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.collection-row small b{border:1px solid rgba(13,138,128,.28);border-radius:999px;background:#e9f5f3;color:var(--teal-dark);padding:1px 7px;font-size:11px}.toggle-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;padding:0 13px;font-size:13px;font-weight:800;white-space:nowrap}.toggle-button.active{border-color:#0d8a8059;background:#e9f5f3;color:var(--teal-dark)}.question-layout{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px}.question-rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px}.rail-item{display:grid;place-items:center;gap:3px;min-height:58px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;cursor:pointer}.rail-item span{font-weight:850}.rail-item small{color:var(--muted);font-size:10px}.rail-item.active{border-color:var(--teal);background:var(--surface-2);color:var(--teal-dark)}.rail-item.done{border-color:#0d8a8057}.question-card{min-width:0;padding:22px}.question-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.question-meta span{border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:#40505a;font-size:12px;font-weight:750}.group-prompt{margin-bottom:12px;border-left:4px solid var(--teal);background:#eef7f5;padding:11px 13px;border-radius:8px;color:#24464a;font-size:15px;font-weight:800;line-height:1.5}.question-title{margin:0 0 14px;border-left:4px solid var(--blue);padding-left:12px;color:#1f2f44;font-weight:760;line-height:1.6;font-size:21px}.question-body{margin:0 0 16px;color:#253341;line-height:1.72;white-space:pre-wrap}.option-list{display:grid;gap:10px;margin-top:20px}.option-list button,.ox-row button{min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--ink);cursor:pointer;padding:10px 12px;text-align:left;line-height:1.45}.option-list button:hover,.ox-row button:hover{border-color:var(--line-strong)}.option-list button.selected,.ox-row button.selected{border-color:var(--teal);background:#e9f5f3;color:var(--teal-dark);font-weight:800}.ox-row{display:grid;grid-template-columns:repeat(2,80px);gap:10px;margin-top:20px}.ox-row button{text-align:center;font-size:20px;font-weight:850}.answer-box{display:grid;gap:8px;margin-top:20px}.answer-box textarea{min-height:150px;padding:13px;resize:vertical;line-height:1.6}.blank-answer-list{display:grid;gap:9px}.blank-answer-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center}.blank-answer-row>span{color:#40505a;font-size:14px;font-weight:850;text-align:right}.blank-answer-row input{width:100%;height:40px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--ink);outline:none;padding:0 12px}.blank-answer-row input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d8a801f}.other-answer-section{display:grid;gap:10px;margin-top:16px}.other-answer-section>.ghost-button{justify-self:start}.answer-summary-panel{display:grid;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;color:#253341;padding:14px}.answer-summary-panel.error{border-color:#c9434342;background:#fff5f5;color:var(--red)}.summary-panel-header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.summary-panel-header strong{font-size:14px}.summary-panel-header span,.summary-empty{color:var(--muted);font-size:13px}.aggregate-list,.written-answer-list{display:grid;gap:8px}.aggregate-row{display:grid;grid-template-columns:minmax(90px,1.2fr) minmax(90px,2fr) 54px 42px;gap:8px;align-items:center;font-size:13px}.aggregate-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aggregate-meter{height:9px;overflow:hidden;border-radius:999px;background:#e3e8ec}.aggregate-meter i{display:block;height:100%;border-radius:inherit;background:var(--teal)}.aggregate-row b{text-align:right}.aggregate-row em{color:var(--muted);font-style:normal;text-align:right}.written-answer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;border-top:1px solid var(--line);padding-top:10px}.written-answer-row:first-child{border-top:0;padding-top:0}.written-answer-row b{display:block;margin-bottom:5px;color:#40505a;font-size:12px}.written-answer-row p,.written-answer-row ol{margin:0;color:#253341;font-size:14px;line-height:1.6;white-space:pre-wrap}.written-answer-row ol{padding-left:22px}.vote-box{display:grid;grid-template-columns:34px;gap:4px;justify-items:center}.vote-box button{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:#40505a;cursor:pointer}.vote-box button.active{border-color:#0d8a8059;background:#e9f5f3;color:var(--teal-dark)}.vote-box strong{color:#40505a;font-size:13px}.question-actions{display:grid;gap:10px;margin-top:16px}.action-row{display:flex;flex-wrap:wrap;gap:10px}.primary-row{justify-content:space-between}.secondary-row{justify-content:flex-start}.primary-button{border-color:var(--teal);background:var(--teal);color:#fff}.primary-button:disabled{cursor:wait;opacity:.7}.primary-button.done{background:var(--teal-dark)}.flag-button.active{border-color:#b9891566;background:#fff5d8;color:#7d5900}.next-button:disabled{cursor:not-allowed;opacity:.48}.question-source{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.empty-state{display:grid;min-height:420px;place-items:center;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted)}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-card{display:grid;width:min(420px,100%);gap:14px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:4px}.login-card h1{font-size:26px;line-height:1.25}.login-card p{color:#4e5c66;line-height:1.55}.login-field{display:grid;gap:7px}.login-field span{color:var(--muted);font-size:12px;font-weight:800}.login-field input{height:44px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--ink);outline:none;padding:0 12px}.login-field input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d8a801f}.login-error{border:1px solid rgba(201,67,67,.26);border-radius:8px;background:#fff5f5;color:var(--red)!important;font-size:13px;padding:10px 12px}.login-button{width:100%}.login-card small{color:var(--muted);line-height:1.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#11191f85}.source-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1120px,100%);height:min(860px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 24px 70px #11191f47}.source-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line)}.source-modal-header h2{max-width:760px;margin-top:3px;overflow:hidden;font-size:19px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.source-modal-header p{margin-top:4px;color:var(--muted);font-size:13px}.source-modal-actions{display:flex;flex:0 0 auto;gap:8px;align-items:center}.source-frame{width:100%;height:100%;border:0;background:#f2f4f6}.source-text-preview{min-height:0;overflow:auto;padding:18px;background:#f8fafb}.source-text-preview>p{margin-bottom:14px;color:var(--muted);font-size:13px}.source-text-preview pre{margin:0;padding:16px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:#24313d;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.65;white-space:pre-wrap}.source-modal-footer{display:flex;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--line);background:#fbfcfd}@media (max-width: 1050px){.workspace{grid-template-columns:1fr}.summary{align-items:stretch;flex-direction:column}.sidebar{position:static;grid-template-columns:1fr 1fr}}@media (max-width: 760px){.app-shell{padding:14px}.overview{order:3;margin:16px 0 0}.workspace{order:2}.topbar,.panel-header{align-items:stretch;flex-direction:column}.panel-controls{justify-content:stretch}.panel-controls>button{flex:1}.aggregate-row{grid-template-columns:1fr 48px}.aggregate-row>span,.aggregate-meter{grid-column:1 / -1}.aggregate-row b,.aggregate-row em{text-align:left}.topbar-actions{justify-content:stretch}.topbar-actions>.ghost-button,.user-badge{width:100%}.user-badge span,.user-badge button{flex:1;justify-content:center}.summary{padding:18px}.summary-copy h2{font-size:20px}.sidebar,.question-layout{grid-template-columns:1fr}.filter-toggle{display:flex;align-items:center;justify-content:space-between;min-height:46px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;padding:0 14px;font-weight:850}.filter-toggle span{display:inline-flex;align-items:center;gap:8px}.filter-toggle>svg{transition:transform .16s ease}.sidebar.open .filter-toggle>svg{transform:rotate(180deg)}.sidebar:not(.open) .filter-card,.sidebar:not(.open) .source-list{display:none}.filter-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filter-title,.search-input{grid-column:1 / -1}.filter-title{margin-bottom:2px}.search-input,.select-field{margin-top:0;margin-bottom:0}.select-trigger{height:38px}.source-list{max-height:300px;min-height:0}.source-row{min-height:58px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.question-rail{display:flex;overflow-x:auto;padding-bottom:4px}.rail-item{min-width:64px}.question-title{font-size:19px}.modal-backdrop{padding:12px}.source-modal{height:calc(100vh - 24px)}.source-modal-header{align-items:stretch;flex-direction:column}.source-modal-header h2{max-width:none;white-space:normal}}@media (max-width: 340px){.filter-card{grid-template-columns:1fr}}.success-alert{border:1px solid rgba(13,138,128,.24);border-radius:8px;background:#e9f5f3;color:var(--teal-dark);font-size:13px;font-weight:800;padding:10px 12px}.objection-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(760px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 24px 70px #11191f47}.objection-form{display:grid;gap:14px;min-height:0;overflow:auto;padding:18px}.readonly-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.readonly-details label{display:grid;gap:6px}.readonly-details .wide{grid-column:1 / -1}.readonly-details span,.objection-textarea>span{color:var(--muted);font-size:12px;font-weight:800}.readonly-details input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#f4f7f8;color:#40505a;padding:0 12px}.objection-textarea{margin-top:0}.objection-textarea textarea{min-height:180px;border:1px solid var(--line);border-radius:8px;outline:none}.objection-textarea textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0d8a801f}.modal-action-row{display:flex;justify-content:flex-end;gap:10px}.admin-shell{gap:18px}.admin-summary{margin-bottom:0}.status-metrics{grid-template-columns:repeat(3,minmax(86px,1fr))}.status-new{border-color:#3867c857;background:#eef4ff}.status-progress{border-color:#b9891561;background:#fff8e5}.status-done{border-color:#0d8a8057;background:#e9f5f3}.admin-panel{display:block}.objection-list{display:grid;gap:12px}.admin-objection-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;padding:16px}.admin-objection-card>header{display:flex;justify-content:space-between;gap:16px}.admin-objection-card h2{margin-top:8px;font-size:18px;line-height:1.45}.admin-card-meta,.admin-objection-card footer{color:var(--muted);font-size:12px;line-height:1.5}.admin-card-meta{margin-top:6px}.status-button-group{display:inline-flex;align-self:start;overflow:hidden;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.status-button-group button{min-height:36px;border:0;border-left:1px solid var(--line);background:transparent;color:#40505a;cursor:pointer;padding:0 12px;font-size:12px;font-weight:850}.status-button-group button:first-child{border-left:0}.status-button-group button.active{background:var(--teal);color:#fff}.admin-question-body{border-left:4px solid var(--blue);background:#f4f7fb;color:#253341;line-height:1.65;padding:10px 12px;white-space:pre-wrap}.admin-objection-message{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.admin-objection-message strong{color:#40505a;font-size:13px}.admin-objection-message p{color:#253341;line-height:1.65;white-space:pre-wrap}.admin-objection-card footer{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);padding-top:10px}.admin-objection-card code{overflow-wrap:anywhere}@media (max-width: 760px){.readonly-details{grid-template-columns:1fr}.modal-action-row,.admin-objection-card>header{align-items:stretch;flex-direction:column}.modal-action-row>button,.status-button-group{width:100%}.status-button-group button{flex:1}}
