:root { color-scheme: light dark; --bg:#fff; --fg:#1d1d1f; --muted:#6e6e73; --line:#d2d2d7; --card:#f5f5f7; --err:#c62828; --warn:#a15c00; --ok:#2e7d32; }
@media (prefers-color-scheme: dark) { :root { --bg:#1c1c1e; --fg:#f2f2f7; --muted:#98989f; --line:#3a3a3c; --card:#2c2c2e; --err:#ff6961; --warn:#ffb340; --ok:#6fcf7f; } }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.5 -apple-system, "Apple SD Gothic Neo", system-ui, sans-serif; }
header { display:flex; gap:1.5rem; padding:.8rem 1.5rem; border-bottom:1px solid var(--line); }
header a { color:var(--fg); text-decoration:none; font-weight:600; }
main { max-width:56rem; margin:0 auto; padding:1rem 1.5rem 3rem; }
form.new { display:flex; gap:1rem; align-items:end; flex-wrap:wrap; }
label { display:block; margin:.6rem 0; color:var(--muted); font-size:.9rem; }
label.inline { display:inline-block; margin-right:1rem; color:var(--fg); }
input[type=text], input[type=number] { display:block; width:100%; box-sizing:border-box; padding:.4rem .5rem; background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:6px; font:inherit; }
form.new input[type=number] { width:8rem; }
button { padding:.45rem 1.2rem; border:0; border-radius:6px; background:#0a84ff; color:#fff; font:inherit; cursor:pointer; }
table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:.5rem; border-bottom:1px solid var(--line); }
.card { background:var(--card); padding:.8rem 1rem; border-radius:8px; margin:1rem 0; }
.muted { color:var(--muted); }
.error { color:var(--err); }
.warn { color:var(--warn); }
.ok { color:var(--ok); }
.memo { color:var(--warn); margin:.3rem 0; }
.badge { padding:.1rem .6rem; border-radius:999px; background:var(--card); border:1px solid var(--line); font-size:.85rem; }
.badge.error { color:var(--err); }
.badge.waiting_review { color:var(--warn); }
.badge.approved { color:var(--ok); }
/* 대본·음성 확인 화면 */
main:has(.review) { max-width:80rem; }
.toolbar { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; margin:1rem 0; }
.toolbar form { margin:0; display:flex; gap:.5rem; align-items:center; }
.toolbar .approve { margin-left:auto; display:flex; gap:.5rem; align-items:center; }
button.small { padding:.25rem .7rem; font-size:.9rem; }
button.secondary { background:var(--card); color:var(--fg); border:1px solid var(--line); }
button:disabled { opacity:.45; cursor:not-allowed; }
select, textarea { background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:6px; font:inherit; padding:.3rem .4rem; }
textarea { width:100%; box-sizing:border-box; }
.review { display:grid; grid-template-columns:minmax(0, 1fr) 22rem; gap:1.5rem; align-items:start; }
@media (max-width: 900px) { .review { grid-template-columns:1fr; } }
.sec { margin-bottom:1.5rem; }
.sec-head { display:flex; gap:.8rem; flex-wrap:wrap; align-items:baseline; padding:.4rem 0; border-bottom:2px solid var(--line); }
.sec-head .muted { flex-basis:100%; }
.chunk { border-left:3px solid var(--line); padding:.3rem 0 .3rem .8rem; margin:.6rem 0; }
.chunk.flagged { border-left-color:var(--warn); }
.chunk.working { border-left-color:#0a84ff; opacity:.75; }
.chunk.missing, .chunk.error { border-left-color:var(--err); }
.chunk-head { display:flex; gap:.8rem; align-items:center; font-size:.85rem; }
.cstate.flagged { color:var(--warn); } .cstate.missing, .cstate.error { color:var(--err); } .cstate.ok { color:var(--ok); }
.sent { margin:.35rem 0; }
.sent .text { margin:0 .3rem; }
.sfx { color:var(--muted); font-size:.85rem; margin-left:.3rem; }
details.edit { display:inline; }
details.edit summary { display:inline; cursor:pointer; list-style:none; }
.del-msg p { display:inline; margin:0 0 0 .3rem; }
details.edit[open] form { display:block; margin:.4rem 0; }
aside { position:sticky; top:1rem; max-height:calc(100vh - 2rem); overflow:auto; }
.research { background:var(--card); border-radius:8px; padding:.6rem 1rem; font-size:.9rem; }
.research summary { font-weight:600; cursor:pointer; }
.research h3 { font-size:.95rem; margin:1rem 0 .3rem; }
.research ul { padding-left:1.1rem; margin:0; }
.research li { margin:.35rem 0; }
.research a { color:#0a84ff; }
form.inline { display:inline; margin:0; }
/* 로그인 */
header form.logout { margin:0 0 0 auto; }
.login { max-width:22rem; margin:4rem auto; }
input[type=password] { display:block; width:100%; box-sizing:border-box; padding:.4rem .5rem; background:var(--card); color:var(--fg); border:1px solid var(--line); border-radius:6px; font:inherit; }
