* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background: #f2f4f7; color: #1a2333; font-size: 16px; line-height: 1.45; }
.wrap { max-width: 760px; margin: 0 auto; padding: 16px 12px 60px; }
.card { background: #fff; border-radius: 10px; padding: 20px 18px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(16,24,40,.08); }
.center { text-align: center; }
h1 { font-size: 1.35rem; margin: 0 0 10px; }
h2 { font-size: 1.15rem; margin: 4px 0 14px; }
.muted { color: #667085; font-size: .9rem; }
.err { color: #b42318; background: #fee4e2; border-radius: 6px; padding: 8px 10px; }

.topbar { position: sticky; top: 0; z-index: 10; background: #14315c; color: #fff; display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; }
.tb-title { font-weight: 600; font-size: .95rem; }
.tb-timer { font-variant-numeric: tabular-nums; font-weight: 700; background: rgba(255,255,255,.15); border-radius: 6px; padding: 3px 10px; }
.tb-timer.danger { background: #b42318; }

.notice { background: #fffaeb; border: 1px solid #fedf89; border-radius: 8px; padding: 12px 14px; margin: 14px 0; }
.notice ul { margin: 8px 0 0; padding-left: 20px; }
.notice li { margin-bottom: 6px; }

.sechead { color: #667085; font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; }

.question { padding: 14px 0; border-top: 1px solid #eaecf0; }
.qtext { font-weight: 600; margin-bottom: 10px; }
.qnum { color: #14315c; }
.reqmark { color: #b42318; }
.question.missing { background: #fef3f2; border-radius: 8px; padding: 14px 10px; border: 1px solid #fda29b; }

input[type=text], input[type=email], textarea {
  width: 100%; padding: 10px 12px; font-size: 16px; border: 1px solid #d0d5dd; border-radius: 8px; font-family: inherit;
}
textarea { resize: vertical; }
input:focus, textarea:focus { outline: 2px solid #2e5aac; border-color: #2e5aac; }
label { display: block; margin-bottom: 12px; font-weight: 600; font-size: .92rem; }
label input { margin-top: 6px; font-weight: 400; }

.opt { display: block; font-weight: 400; margin: 0 0 2px; padding: 9px 10px; border: 1px solid #eaecf0; border-radius: 8px; cursor: pointer; }
.opt:hover { background: #f9fafb; }
.opt input { margin-right: 8px; }

.gridwrap { overflow-x: auto; }
table.grid { border-collapse: collapse; width: 100%; font-size: .88rem; }
table.grid th, table.grid td { border: 1px solid #eaecf0; padding: 8px 6px; text-align: center; }
table.grid td.rowlabel { text-align: left; font-weight: 600; }

.btn { display: inline-block; border: 1px solid #d0d5dd; background: #fff; color: #1a2333; padding: 10px 18px; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; }
.btn.primary { background: #14315c; border-color: #14315c; color: #fff; }
.btn.big { padding: 13px 26px; font-size: 16px; width: 100%; margin-top: 10px; }
.btn:disabled { opacity: .5; }
.navrow { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.navrow .nav-next, .navrow #submitbtn { margin-left: auto; }

/* ---------- admin ---------- */
.admin-wrap { max-width: 1080px; margin: 0 auto; padding: 16px 14px 60px; }
table.list { border-collapse: collapse; width: 100%; background: #fff; font-size: .9rem; }
table.list th, table.list td { border: 1px solid #eaecf0; padding: 8px 10px; text-align: left; vertical-align: top; }
table.list th { background: #f9fafb; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .78rem; font-weight: 600; }
.tag.open, .tag.completed { background: #d1fadf; color: #05603a; }
.tag.closed, .tag.high { background: #fee4e2; color: #b42318; }
.tag.invited { background: #eaecf0; color: #475467; }
.tag.started, .tag.med { background: #fef0c7; color: #93370d; }
.tag.low { background: #eaecf0; color: #475467; }
.tag.completed_auto { background: #d1fadf; color: #93370d; }
.flag { display: block; margin: 2px 0; }
.qa-block { background: #f9fafb; border: 1px solid #eaecf0; border-radius: 8px; padding: 12px 14px; margin-bottom: 12px; }
.qa-q { font-weight: 600; margin-bottom: 6px; }
.qa-a { white-space: pre-wrap; background: #fff; border-radius: 6px; padding: 8px 10px; border: 1px solid #eaecf0; }
.qa-meta { color: #667085; font-size: .8rem; margin-top: 6px; }
.qa-notes { color: #05603a; font-size: .82rem; margin-top: 6px; background: #f0fdf4; border-radius: 6px; padding: 6px 8px; }
.linkbox { width: 100%; font-family: monospace; font-size: .82rem; padding: 8px; border: 1px solid #d0d5dd; border-radius: 6px; background: #f9fafb; }
textarea.jsonbox { width: 100%; min-height: 180px; font-family: monospace; font-size: .82rem; }
.inline-form { display: inline; }
