/* G81 装备/芯片研究养成页样式（同源静态页，无素材依赖） */
:root { color-scheme: light; }
body { font-family: "Microsoft YaHei", "PingFang SC", sans-serif; margin: 0; background: #f4f5f7; color: #222; }
.wrap { max-width: 860px; margin: 0 auto; padding: 16px; }
header { background: #1f2937; color: #fff; padding: 14px 20px; }
header h1 { font-size: 18px; margin: 0; }
header .sub { font-size: 12px; color: #d1d5db; margin-top: 4px; }
.card { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px 16px; margin-top: 14px; }
.card h2 { font-size: 15px; margin: 0 0 10px; color: #111827; }
.kv { display: grid; grid-template-columns: 120px 1fr; row-gap: 6px; font-size: 14px; }
.kv .k { color: #6b7280; }
.note { background: #fffbeb; border: 1px solid #fcd34d; border-radius: 6px; padding: 10px 12px; font-size: 13px; margin-top: 10px; }
.card .note { margin-top: 10px; }
form .row, .row { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; align-items: center; }
select, input[type=number], input[type=search], textarea { padding: 6px 8px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 14px; max-width: 100%; box-sizing: border-box; }
input[type=number] { width: 120px; }
input[type=search] { flex: 1 1 160px; min-width: 0; }
select { max-width: 340px; }
textarea { width: 100%; min-height: 220px; font-family: Consolas, monospace; font-size: 12px; }
button { padding: 6px 16px; border: 0; border-radius: 6px; background: #2563eb; color: #fff; font-size: 14px; cursor: pointer; }
button:disabled { background: #9ca3af; cursor: not-allowed; }
button.ghost { background: #6b7280; }
button.small { padding: 2px 10px; font-size: 12px; }
a { color: #2563eb; font-size: 13px; }
.subhead { font-size: 13px; color: #374151; font-weight: 600; margin-top: 10px; }
.subbox { font-size: 13px; margin-top: 4px; white-space: pre-wrap; word-break: break-word; color: #111827; }
.boxlist { border: 1px solid #e5e7eb; border-radius: 6px; padding: 6px 10px; max-height: 220px; overflow-y: auto; line-height: 1.7; }
.mono { font-family: Consolas, monospace; font-size: 12px; }
#actResult, #grantResult, #rulesResult, #resetResult, #previewText { margin-top: 10px; font-size: 13px; white-space: pre-wrap; word-break: break-word; }
#actResult.ok, #grantResult.ok, #rulesResult.ok, #resetResult.ok { color: #047857; }
#actResult.err, #grantResult.err, #rulesResult.err, #resetResult.err { color: #b91c1c; }
#actResult.warn, #grantResult.warn, #rulesResult.warn, #resetResult.warn { color: #b45309; }
#retryBox { display: none; margin-top: 10px; padding: 10px 12px; border: 1px dashed #f59e0b; border-radius: 6px; font-size: 13px; }
#previewBox { display: none; margin-top: 10px; border: 1px solid #93c5fd; border-radius: 6px; padding: 8px 12px; font-size: 13px; }
.instRow { display: flex; align-items: center; gap: 8px; padding: 3px 0; border-bottom: 1px solid #f3f4f6; font-size: 13px; flex-wrap: wrap; }
.instRow input { flex: none; }
.instRow .txt { word-break: break-all; }
#instList { border: 1px solid #e5e7eb; border-radius: 6px; padding: 4px 10px; max-height: 260px; overflow-y: auto; }
#instJson { display: none; margin-top: 8px; border: 1px solid #e5e7eb; border-radius: 6px; padding: 6px 10px; max-height: 300px; overflow-y: auto; font-family: Consolas, monospace; font-size: 12px; white-space: pre; word-break: break-all; }
#rulesMeta { font-size: 13px; color: #374151; }
.oprow { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; align-items: center; font-size: 13px; color: #6b7280; }
