:root {
  --navy: #17324d;
  --navy-2: #0f263a;
  --blue: #0f6cbd;
  --paper: #f6f8f5;
  --surface: #ffffff;
  --ink: #17212b;
  --muted: #64727e;
  --rule: #d7dee3;
  --amber: #c87916;
  --red: #b33a3a;
  --green: #20744a;
  --shadow: 0 10px 28px rgba(23, 50, 77, .08);
}
* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
body { margin: 0; min-width: 320px; }
a { color: var(--blue); text-decoration: none; }
button, input, select { font: inherit; }
button, .button-link { cursor: pointer; }
:focus-visible { outline: 3px solid rgba(15,108,189,.35); outline-offset: 2px; }
.shell { display: grid; grid-template-columns: 238px minmax(0,1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; background: var(--navy-2); color: #fff; padding: 26px 18px 18px; }
.brand, .login-brand { display: flex; align-items: center; gap: 12px; color: inherit; }
.brand-mark { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.55); background: var(--navy); color: #fff; font: 700 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.brand strong, .login-brand strong { display: block; font-size: 18px; letter-spacing: .02em; }
.brand small, .login-brand small { display: block; margin-top: 2px; color: #a9bac8; font-size: 11px; }
.nav { display: grid; gap: 5px; margin-top: 42px; }
.nav a { display: flex; align-items: center; gap: 13px; padding: 12px 13px; border-left: 2px solid transparent; color: #b9c6d0; font-size: 14px; }
.nav a span { color: #6f8799; font: 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.nav a:hover, .nav a.active { background: rgba(255,255,255,.07); color: #fff; border-left-color: #63aee7; }
.sidebar-foot { margin-top: auto; border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; }
.admin-link { display: block; margin-bottom: 14px; color: #b9c6d0; font-size: 13px; }
.admin-link.active { color: #fff; }
.identity { display: flex; align-items: center; gap: 10px; }
.identity .avatar { display: grid; place-items: center; width: 34px; height: 34px; background: #e9f2f9; color: var(--navy); font-weight: 700; }
.identity strong, .identity small { display: block; }
.identity strong { font-size: 13px; }.identity small { color: #8fa4b4; font-size: 11px; margin-top: 2px; }
.text-button { border: 0; background: none; color: #8fa4b4; padding: 10px 0 0; font-size: 12px; }
.main { min-width: 0; padding: 34px clamp(24px,4vw,58px) 60px; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.page-head h1 { margin: 3px 0 7px; font: 650 clamp(27px,3vw,38px)/1.15 Georgia, "Songti SC", serif; letter-spacing: -.02em; }
.page-head p { margin: 0; color: var(--muted); }
.eyebrow { margin: 0 0 5px !important; color: var(--blue) !important; font: 700 10px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .15em; }
.timestamp, .role-badge, .edition { color: var(--muted); font-size: 12px; }
.notice { margin-bottom: 18px; padding: 12px 15px; border-left: 4px solid; background: var(--surface); box-shadow: var(--shadow); font-size: 14px; }
.notice.success { border-color: var(--green); }.notice.danger { border-color: var(--red); }
.readiness-strip { display: grid; grid-template-columns: repeat(5,minmax(135px,1fr)); border: 1px solid var(--rule); background: var(--surface); box-shadow: var(--shadow); margin-bottom: 18px; overflow: hidden; }
.stamp { position: relative; min-height: 118px; padding: 18px; border-right: 1px dashed var(--rule); }
.stamp:last-child { border-right: 0; }
.stamp > div { display: flex; align-items: center; gap: 8px; }.stamp strong { font-size: 13px; }
.stamp p { margin: 18px 0 5px; font: 600 12px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.stamp small { color: var(--muted); font-size: 11px; }
.status-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--green); }
.stamp.missing .status-dot { background: var(--amber); }
.stamp::after { content: ""; position: absolute; right: 10px; top: 10px; width: 22px; height: 22px; border: 1px solid #cbd8e1; opacity: .5; transform: rotate(-6deg); }
.metric-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 18px; }
.metric-row article { padding: 17px 18px; border: 1px solid var(--rule); background: #eef3f5; }
.metric-row span { display: block; color: var(--muted); font-size: 12px; }
.metric-row strong { display: inline-block; margin-top: 7px; color: var(--navy); font: 700 28px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.metric-row small { margin-left: 6px; color: var(--muted); }
.two-column { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 18px; margin-bottom: 18px; }
.panel { margin-bottom: 18px; padding: 22px; border: 1px solid var(--rule); background: var(--surface); box-shadow: var(--shadow); }
.two-column > .panel { margin-bottom: 0; }
.panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-head h2 { margin: 2px 0 0; font: 650 19px/1.2 Georgia, "Songti SC", serif; }
.panel-head > a, .panel-head > span { font-size: 12px; }
.issue-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.issue-list li { display: flex; align-items: flex-start; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid #edf0f2; }
.issue-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.issue-list p { margin: 1px 0 0; font-size: 13px; line-height: 1.55; }
.severity { display: inline-grid; place-items: center; flex: 0 0 25px; height: 22px; color: #fff; font-size: 11px; font-weight: 700; }
.s-高 { background: var(--red); }.s-中 { background: var(--amber); }.s-低 { background: #6c7d89; }
.empty-state { padding: 25px 8px; text-align: center; color: var(--muted); }.empty-state strong { color: var(--ink); }.empty-state p { margin: 7px 0 0; font-size: 13px; }
.compact-list { display: grid; }
.compact-list a { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf0f2; color: var(--ink); }
.compact-list > div:not(.empty-state) { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf0f2; color: var(--ink); }
.compact-list a:last-child, .compact-list > div:last-child { border-bottom: 0; }.compact-list strong, .compact-list small { display: block; }.compact-list small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.pill { display: inline-block; padding: 4px 8px; border: 1px solid var(--rule); color: var(--muted); background: #f5f7f8; font: 600 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-transform: uppercase; }
.pill.success { border-color: #a5d0b9; color: var(--green); background: #f0f8f3; }.pill.failed { border-color: #e2b3b3; color: var(--red); }.pill.running, .pill.queued { border-color: #ebca9e; color: #965a0d; background: #fff8ec; }
.table-wrap { width: 100%; overflow: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 9px 10px; border-bottom: 2px solid var(--navy); color: var(--navy); text-align: left; white-space: nowrap; font-size: 11px; }
td { padding: 10px; border-bottom: 1px solid #e8edf0; vertical-align: top; }
td small { display: block; margin-top: 4px; color: var(--muted); }.code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.empty-cell { padding: 28px; color: var(--muted); text-align: center; }
.stack-form { display: grid; gap: 16px; }
label { display: grid; gap: 6px; color: #42515c; font-size: 12px; }
input, select, textarea { width: 100%; min-height: 40px; border: 1px solid #bac6ce; border-radius: 0; background: #fff; color: var(--ink); padding: 8px 10px; font: inherit; }
textarea { resize: vertical; line-height: 1.55; }
input:hover, select:hover, textarea:hover { border-color: #8195a3; }
.primary, .secondary { min-height: 40px; border: 1px solid; padding: 9px 16px; font-weight: 650; }
.primary { border-color: var(--blue); background: var(--blue); color: #fff; }.primary:hover { background: #0b5da4; }
.secondary { border-color: #9babb6; background: #fff; color: var(--navy); }
.wide { display: block; width: 100%; text-align: center; }
.drop-zone { position: relative; min-height: 180px; place-items: center; align-content: center; padding: 26px; border: 1px dashed #8ba0ae; background: #f7f9fa; text-align: center; cursor: pointer; overflow: hidden; }
.drop-zone input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }.drop-zone .drop-icon { font-size: 30px; color: var(--blue); }.drop-zone small { color: var(--muted); }
.drop-zone.small { min-height: 120px; }
.inline-period-form { display: grid; grid-template-columns: 135px 135px auto; gap: 6px; min-width: 360px; }
.inline-period-form input { min-height: 34px; padding: 5px 7px; font-size: 11px; }
.inline-period-form button { min-height: 34px; padding: 5px 10px; border: 1px solid var(--blue); background: #fff; color: var(--blue); font-weight: 650; }
.process-note { background: var(--navy); color: #fff; }.process-note .eyebrow { color: #7fc0ee !important; }.process-note h2 { font-family: Georgia, "Songti SC", serif; }
.process-steps { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 15px; }
.process-steps li { display: flex; gap: 12px; }.process-steps li > span { display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #64829a; color: #8fc8ef; font: 12px/1 monospace; }
.process-steps p { margin: 3px 0 0; color: #b7c8d4; font-size: 12px; }
.mapping-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 10px; margin-bottom: 18px; }
.mapping-summary a { padding: 14px 16px; border: 1px solid var(--rule); background: #fff; color: var(--ink); }
.mapping-summary a.selected { border-top: 3px solid var(--blue); }.mapping-summary strong, .mapping-summary small { display: block; }.mapping-summary span { float: right; margin-top: -17px; color: var(--blue); }.mapping-summary small { margin-top: 8px; color: var(--muted); }
.filter-bar { display: grid; grid-template-columns: 1fr 1.2fr auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.mapping-table { max-height: 520px; }.mapping-table thead { position: sticky; top: 0; background: #fff; z-index: 1; }
.grid-form { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.wide-field { grid-column: 1 / -1; }
.json-cell { max-width: 280px; color: #435361; font: 10px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; }
.report-builder { border-top: 4px solid var(--navy); }
.report-catalog { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 10px; margin-bottom: 18px; }
.report-catalog > a { position: relative; min-height: 112px; padding: 17px 18px; border: 1px solid var(--rule); background: var(--surface); color: var(--ink); box-shadow: var(--shadow); }
.report-catalog > a::after { content: ""; position: absolute; right: 14px; bottom: 14px; width: 20px; height: 1px; background: #9eb1bf; transition: width .18s ease; }
.report-catalog > a:hover::after, .report-catalog > a.selected::after { width: 44px; background: var(--blue); }
.report-catalog > a.selected { border-top: 4px solid var(--blue); padding-top: 14px; }
.report-catalog strong, .report-catalog small, .report-catalog-key { display: block; }
.report-catalog strong { margin-top: 10px; font: 650 17px/1.2 Georgia, "Songti SC", serif; }
.report-catalog small { margin-top: 8px; color: var(--muted); font-size: 10px; }
.report-catalog-key { color: var(--blue); font: 700 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .1em; text-transform: uppercase; }
.report-form { display: grid; gap: 18px; }
.dynamic-parameter-grid { display: grid; grid-template-columns: repeat(4,minmax(145px,1fr)); gap: 12px; }
.dynamic-parameter-grid .wide-field { grid-column: 1 / -1; }
.boolean-field { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 10px; border: 1px solid var(--rule); background: #f8fafb; }
.boolean-field input { width: auto; min-height: 0; }
fieldset { margin: 0; padding: 17px; border: 1px solid var(--rule); }
legend { padding: 0 8px; color: var(--navy); font-weight: 650; font-size: 13px; }
.period-tools { display: grid; grid-template-columns: minmax(250px,1.3fr) repeat(3,minmax(150px,1fr)); align-items: end; gap: 12px; }
.preset-buttons { display: flex; gap: 8px; }.preset-buttons button { flex: 1; }
.field-hint { margin: 10px 0 0; color: var(--muted); font-size: 11px; }
.date-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.sheet-choices { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.sheet-choices label { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 10px; border: 1px solid #d8e0e5; background: #f8fafb; }
.sheet-choices input { width: auto; min-height: 0; }
.report-options { display: grid; grid-template-columns: 180px 1fr; align-items: end; gap: 12px; }
.submit-note { display: flex; align-items: center; justify-content: flex-end; gap: 15px; }.submit-note span { color: var(--muted); font-size: 12px; }
.head-actions { display: flex; gap: 8px; }.button-link { display: inline-grid; place-items: center; }
.status-ribbon { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 14px 17px; border: 1px solid var(--rule); background: #fff; }
.status-ribbon.success { border-left: 4px solid var(--green); }.status-ribbon.failed { border-left: 4px solid var(--red); }.status-ribbon.running, .status-ribbon.queued { border-left: 4px solid var(--amber); }
.parameter-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 0; background: var(--rule); border: 1px solid var(--rule); }
.parameter-grid div { padding: 11px; background: #fff; }.parameter-grid dt { color: var(--muted); font: 10px/1.2 monospace; }.parameter-grid dd { margin: 5px 0 0; font-size: 12px; }
.workbook-preview { max-height: 72vh; border: 1px solid var(--rule); }.workbook-preview table { min-width: 1100px; }.workbook-preview td { white-space: nowrap; }
.waiting { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 150px; }
.waiting p { margin: 4px 0 0; color: var(--muted); }.loader { width: 28px; height: 28px; border: 3px solid #d9e2e8; border-top-color: var(--blue); border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.access-note { background: #eef3f5; }.access-note dl { margin: 18px 0 0; }.access-note dl div { padding: 12px 0; border-top: 1px solid #d4dee4; }.access-note dt { font-weight: 700; }.access-note dd { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.danger-text { color: var(--red); }.muted { color: var(--muted); font-size: 12px; }
.login-body { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--navy-2); }
.login-card { width: min(430px,100%); padding: 42px; border-top: 5px solid var(--blue); background: var(--paper); box-shadow: 0 20px 70px rgba(0,0,0,.25); }
.login-card .login-brand { color: var(--ink); margin-bottom: 42px; }.login-card h1 { margin: 8px 0 10px; font: 650 31px/1.2 Georgia, "Songti SC", serif; }.login-card .muted { margin-bottom: 28px; }
.login-note { margin: 25px 0 0; text-align: center; color: var(--muted); font-size: 11px; }
.issue-page-head { margin-bottom: 18px; }
.revision-rail { display: grid; grid-template-columns: minmax(0,1fr) 36px minmax(0,1fr) 36px minmax(0,1fr); align-items: center; margin-bottom: 14px; padding: 17px 20px; border: 1px solid #b9c8d2; background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.revision-rail > div { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 10px; }
.revision-rail span { color: #afc4d3; font-size: 11px; }
.revision-rail strong { justify-self: end; font: 700 20px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.revision-rail small { grid-column: 1 / -1; margin-top: 7px; color: #d3dfe7; font-size: 11px; }
.revision-rail i { display: block; height: 1px; background: #6f8ba1; }
.revision-rail i::after { content: ""; display: block; float: right; width: 6px; height: 6px; margin-top: -3px; border-top: 1px solid #a9c1d2; border-right: 1px solid #a9c1d2; transform: rotate(45deg); }
.revision-rail .fresh strong { color: #79d5a3; }.revision-rail .refreshing strong { color: #f5bd68; }
.revision-rail.compact { grid-template-columns: minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr); }
.snapshot-notice { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding: 13px 16px; border: 1px solid #e1bc85; background: #fff8eb; }
.snapshot-notice p { margin: 4px 0 0; color: #775b34; font-size: 12px; }
.pulse-dot { width: 9px; height: 9px; flex: 0 0 auto; margin-top: 5px; border-radius: 50%; background: var(--amber); animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .3; transform: scale(.75); } }
.issue-summary { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 14px; border: 1px solid var(--rule); background: #fff; }
.issue-summary > div { padding: 16px 18px; border-right: 1px solid var(--rule); }
.issue-summary > div:last-child { border-right: 0; }
.issue-summary span, .issue-summary small { display: block; color: var(--muted); font-size: 11px; }
.issue-summary strong { display: block; margin: 7px 0 5px; color: var(--navy); font: 700 25px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.issue-domain-nav { display: flex; gap: 7px; margin-bottom: 14px; overflow-x: auto; padding-bottom: 3px; }
.issue-domain-nav a { display: flex; align-items: center; gap: 10px; min-width: max-content; padding: 8px 11px; border: 1px solid var(--rule); background: #fff; color: var(--muted); font-size: 11px; }
.issue-domain-nav a.has-items { border-color: #d5a260; color: #7c4b0d; background: #fff8ed; }
.issue-domain-nav strong { color: inherit; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.issue-domain { scroll-margin-top: 15px; }
.domain-meta { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.batch-toolbar { display: grid; grid-template-columns: auto minmax(220px,310px) 1fr auto; align-items: end; gap: 12px; margin: -4px 0 14px; padding: 12px; border: 1px solid #cad6de; background: #f3f7f9; }
.batch-toolbar .check-label { display: flex; align-items: center; gap: 7px; min-height: 40px; }
.batch-toolbar input[type="checkbox"], .issue-action-table input[type="checkbox"] { width: 16px; min-height: 0; height: 16px; accent-color: var(--blue); }
.batch-toolbar > span { align-self: center; color: var(--muted); font-size: 12px; }
.batch-toolbar button:disabled { cursor: not-allowed; opacity: .45; }
.issue-action-table { max-height: 560px; border: 1px solid var(--rule); }
.issue-action-table table { min-width: 1080px; }
.issue-action-table thead { position: sticky; top: 0; z-index: 1; background: #fff; }
.issue-action-table tr:has(input[type="checkbox"]:checked) { background: #f1f7fb; }
.issue-action-table select { min-width: 210px; }
.recommendation { display: block; margin-top: 8px; color: var(--ink); font-size: .78rem; line-height: 1.45; }
.recommendation em { display: block; color: var(--muted); font-style: normal; }
.select-cell { width: 58px; text-align: center; }
.publish-preview { border-top: 4px solid var(--navy); }
.publish-confirmation { display: grid; gap: 17px; }
.publish-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--rule); padding-top: 16px; }
.publish-actions p { margin: 0; color: var(--muted); font-size: 12px; }
.pill.fresh { border-color: #a5d0b9; color: var(--green); background: #f0f8f3; }
.pill.dirty, .pill.refreshing { border-color: #ebca9e; color: #965a0d; background: #fff8ec; }
.pill.failed { border-color: #e2b3b3; color: var(--red); background: #fff5f5; }
.definition-rail { display: grid; grid-template-columns: minmax(0,1fr) 40px minmax(0,1fr) 40px minmax(0,1fr); align-items: center; margin-bottom: 18px; padding: 18px 20px; border: 1px solid #b9c8d2; background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.definition-rail > div { display: grid; grid-template-columns: auto auto; align-items: baseline; column-gap: 12px; }
.definition-rail span { color: #afc4d3; font-size: 11px; }
.definition-rail strong { justify-self: end; color: #84c7f5; font: 700 20px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.definition-rail small { grid-column: 1 / -1; margin-top: 7px; color: #d3dfe7; font-size: 11px; }
.definition-rail i { height: 1px; background: #6f8ba1; }
.definition-layout { align-items: start; }
.definition-list { display: grid; }
.definition-list > a { display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid #e7ecef; color: var(--ink); }
.definition-list > a:last-child { border-bottom: 0; }
.definition-list strong, .definition-list small { display: block; }
.definition-list small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.definition-state { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.definition-state.disabled, .definition-state.archived { background: var(--red); }
.import-panel { border-top: 4px solid var(--blue); }
.definition-current { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 18px; border: 1px solid var(--rule); background: #fff; box-shadow: var(--shadow); }
.definition-current > div { padding: 17px 18px; border-right: 1px solid var(--rule); }
.definition-current > div:last-child { border-right: 0; }
.definition-current span, .definition-current strong { display: block; }
.definition-current span { color: var(--muted); font-size: 10px; }
.definition-current strong { margin-top: 8px; color: var(--navy); font: 700 16px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.version-track { position: relative; display: grid; gap: 0; }
.version-track::before { content: ""; position: absolute; left: 23px; top: 25px; bottom: 25px; width: 1px; background: #bdcbd4; }
.version-track article { position: relative; z-index: 1; display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 12px 0; }
.version-node { display: grid; place-items: center; align-self: start; width: 46px; height: 46px; border: 1px solid #9fb2bf; background: #fff; color: var(--navy); font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.version-track article.current .version-node { border-color: var(--blue); background: var(--blue); color: #fff; box-shadow: 0 0 0 4px #e8f2f9; }
.version-body { padding: 14px 16px; border: 1px solid var(--rule); background: #fbfcfc; }
.version-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.version-heading > strong { text-transform: uppercase; font: 700 11px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.version-body p, .version-body small { display: block; }
.version-body p { margin: 9px 0 5px; color: var(--navy); font: 11px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; }
.version-body small { color: var(--muted); font-size: 10px; }
.version-actions { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.version-actions form { margin: 0; }
.version-actions button { min-height: 32px; padding: 5px 10px; font-size: 11px; }
.aggregate-state-actions { display: flex; align-items: center; gap: 10px; }
.aggregate-state-actions form { margin: 0; }
.aggregate-state-actions button { min-height: 30px; padding: 4px 8px; font-size: 11px; }
.definition-diff { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.definition-diff span {
  padding: 3px 7px;
  border: 1px solid #d4c3a4;
  border-radius: 999px;
  color: #684d23;
  background: #fbf4e6;
  font-size: 11px;
}
.definition-editor { display: grid; gap: 1rem; }
.definition-editor textarea {
  width: 100%;
  min-height: 34rem;
  resize: vertical;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 1rem;
  background: #101f2c;
  color: #e8f0f5;
  font: 13px/1.55 "SFMono-Regular", Consolas, monospace;
}
.definition-editor table input {
  min-width: 9rem;
  width: 100%;
  background: #fffdf8;
}
.editor-template-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
}

/* Report Studio: a deliberate two-rail workbench, not an admin schema editor. */
.studio-head { border-bottom-color: #8fb2c9; }
.studio-lane { display: grid; grid-template-columns: 185px minmax(0,1fr); gap: 18px; margin-bottom: 18px; padding: 18px; border: 1px solid var(--rule); box-shadow: var(--shadow); }
.durable-lane { background: #f4f7f8; }
.adhoc-lane { border-color: #8ba9bc; background: var(--navy); color: #fff; }
.lane-label { padding: 5px 14px 5px 2px; border-right: 1px solid #c7d3da; }
.adhoc-lane .lane-label { border-right-color: #536f84; }
.lane-label span, .lane-label strong, .lane-label small { display: block; }
.lane-label span { color: var(--blue); font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; text-transform: uppercase; }
.adhoc-lane .lane-label span { color: #80c5f4; }
.lane-label strong { margin-top: 10px; font: 650 24px/1.2 Georgia, "Songti SC", serif; }
.lane-label small { margin-top: 12px; color: var(--muted); line-height: 1.6; }
.adhoc-lane .lane-label small { color: #b7c8d4; }
.creation-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.creation-card { position: relative; padding: 20px; border: 1px solid #cbd6dc; background: #fff; overflow: hidden; }
.creation-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--blue); }
.creation-card.excel-card::before { background: var(--green); }
.creation-card.agent-card::before { background: var(--amber); }
.creation-card .method-index { float: right; color: #c0ccd3; font: 700 26px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.creation-card h2 { margin: 0; font: 650 20px/1.2 Georgia, "Songti SC", serif; }
.creation-card > p { min-height: 54px; margin: 10px 0 17px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.adhoc-prompt { display: grid; grid-template-columns: minmax(0,1fr) 245px; gap: 18px; align-items: end; }
.adhoc-prompt label { color: #d8e5ed; }
.adhoc-prompt textarea { min-height: 126px; border-color: #6a8497; background: #0f2638; color: #fff; font-size: 15px; }
.adhoc-prompt > div { padding: 13px 0; }
.adhoc-prompt p { margin: 0 0 16px; color: #b7c8d4; font-size: 12px; line-height: 1.65; }
.adhoc-prompt p strong { color: #fff; }
.studio-ledgers { align-items: start; }
.studio-statebar { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 14px; border: 1px solid var(--rule); background: #fff; }
.studio-statebar span { padding: 13px 16px; border-right: 1px solid var(--rule); color: var(--muted); font-size: 11px; }
.studio-statebar span:last-child { border-right: 0; }
.studio-statebar b { display: block; margin-bottom: 5px; color: var(--navy); font: 700 13px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; }
.designer-shell { display: grid; grid-template-columns: 248px minmax(420px,1fr) 290px; gap: 1px; margin-bottom: 14px; border: 1px solid #afbec8; background: #afbec8; box-shadow: var(--shadow); }
.designer-shell > * { min-width: 0; padding: 20px; background: #fff; }
.designer-shell h2 { margin: 4px 0 18px; font: 650 19px/1.2 Georgia, "Songti SC", serif; }
.designer-shell h3 { margin: 18px 0 9px; color: var(--navy); font-size: 12px; }
.designer-fields { max-height: 860px; overflow: auto; background: #f5f8f9; }
.field-check { display: flex; grid-template-columns: none; align-items: flex-start; gap: 9px; margin-bottom: 6px; padding: 9px; border: 1px solid #dce4e8; background: #fff; cursor: pointer; }
.field-check input, .inline-check input { width: auto; min-height: 0; margin-top: 2px; accent-color: var(--blue); }
.field-check span, .field-check strong, .field-check small { display: block; }
.field-check strong { color: var(--ink); font-size: 12px; }
.field-check small { margin-top: 3px; color: var(--muted); font: 9px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; }
.designer-canvas { display: block; min-height: 680px; background: #eef2f4; }
.canvas-title { padding: 22px 18px 14px; border: 1px solid #cbd6dc; border-bottom: 0; background: #fff; color: var(--navy); text-align: center; font: 650 22px/1.2 Georgia, "Songti SC", serif; }
.canvas-filter { padding: 9px 14px; border: 1px solid #cbd6dc; border-top: 0; background: #fff; color: var(--muted); text-align: center; font-size: 11px; }
.canvas-table { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); margin-bottom: 17px; border: 1px solid #8298a6; border-top: 3px solid var(--navy); background: #fff; }
.canvas-table > div { min-height: 66px; padding: 12px; border-right: 1px solid #d6e0e5; }
.canvas-table > div:last-child { border-right: 0; }
.canvas-table strong, .canvas-table small { display: block; }
.canvas-table strong { color: var(--navy); font-size: 12px; }
.canvas-table small { margin-top: 7px; color: var(--muted); font-size: 9px; }
.canvas-column-card { cursor: grab; }
.canvas-column-card.dragging { opacity: .48; background: #dbe7ed; }
.canvas-column-card label { margin-top: 7px; color: var(--muted); font-size: 9px; }
.canvas-column-card input { min-height: 31px; padding: 5px 7px; font-size: 10px; }
.column-move { display: flex; gap: 7px; margin-top: 7px; }
.designer-settings { display: grid; align-content: start; gap: 12px; max-height: 860px; overflow: auto; }
.designer-settings fieldset { padding: 12px; }
.parameter-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.parameter-editor select, .parameter-editor .inline-check { grid-column: span 1; }
.inline-check { display: flex; align-items: center; gap: 7px; }
.agent-plan-summary { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 1px; margin-bottom: 14px; border: 1px solid #a9bdc9; background: #a9bdc9; }
.agent-plan-summary > div { padding: 14px 16px; background: #f7fafb; }
.agent-plan-summary h2 { margin: 4px 0 6px; font: 650 18px/1.2 Georgia, "Songti SC", serif; }
.agent-plan-summary p { margin: 0; }
.agent-plan-summary strong, .agent-plan-summary small { display: block; }
.agent-plan-summary > div:not(:first-child) { display: grid; min-width: 150px; align-content: center; }
.agent-plan-summary > div:not(:first-child) strong { color: var(--navy); }
.agent-plan-summary > div:not(:first-child) small { margin-top: 5px; color: var(--muted); }
.agent-plan-summary .plan-unconfirmed { background: #fff8eb; }
.sheet-editor-row { display: grid; grid-template-columns: minmax(110px,1fr) repeat(4,auto); gap: 7px; align-items: center; margin-bottom: 8px; }
.sheet-editor-row button, .parameter-editor button { min-height: 34px; }
.filter-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.filter-editor button { min-height: 34px; }
.template-analysis { margin-top: 18px; padding: 16px; border: 1px solid #a9bdc9; background: #fff; }
.template-analysis h3 { margin: 5px 0 13px; font: 650 17px/1.2 Georgia, "Songti SC", serif; }
.template-analysis article { padding: 11px 0; border-top: 1px solid #e3e9ed; }
.template-analysis article > small { display: block; margin-top: 5px; color: var(--muted); }
.template-row-settings { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.recognized-cells { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.recognized-cells span { padding: 4px 7px; background: #eef3f6; color: #536773; font-size: 9px; }
.binding-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 6px; margin-top: 9px; }
.binding-grid label { gap: 5px; padding: 7px; border: 1px solid #bcd8c8; background: #f0f8f3; color: var(--green); font-size: 10px; }
.binding-grid label.ambiguous { border-color: #e0c18f; background: #fff8eb; color: #85530d; }
.binding-grid select { min-height: 32px; font-size: 10px; }
.preview-dock { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1px; margin-bottom: 18px; border: 1px solid #94a9b6; background: #94a9b6; box-shadow: var(--shadow); }
.preview-dock form { display: flex; align-items: end; gap: 12px; padding: 15px 18px; background: var(--navy); color: #fff; }
.preview-dock form:last-child { display: grid; align-content: center; background: #fff; color: var(--ink); }
.preview-dock form > div { margin-right: auto; }
.preview-dock form label { min-width: 145px; color: #c8d6df; }
.preview-dock strong, .preview-dock small { display: block; }
.preview-dock small { margin-top: 5px; color: #9fb3c1; font-size: 10px; }
.preview-dock form:last-child small { color: var(--muted); }

@media (max-width: 1180px) {
  .creation-grid { grid-template-columns: 1fr; }
  .studio-lane { grid-template-columns: 150px minmax(0,1fr); }
  .designer-shell { grid-template-columns: 220px minmax(400px,1fr); }
  .designer-settings { grid-column: 1 / -1; max-height: none; }
}
@media (max-width: 780px) {
  .studio-lane, .adhoc-prompt, .designer-shell, .preview-dock, .agent-plan-summary { grid-template-columns: 1fr; }
  .lane-label { border-right: 0; border-bottom: 1px solid #c7d3da; padding-bottom: 14px; }
  .studio-statebar { grid-template-columns: 1fr 1fr; }
  .designer-fields, .designer-settings { max-height: none; }
  .preview-dock form { flex-wrap: wrap; }
}
.import-divider { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.contract-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
.contract-grid > div { padding: 13px; background: #fff; }
.contract-grid span, .contract-grid strong { display: block; }
.contract-grid span { color: var(--muted); font-size: 10px; }
.contract-grid strong { margin-top: 6px; color: var(--navy); font: 700 15px/1 ui-monospace, SFMono-Regular, Menlo, monospace; }
.sheet-token-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.sheet-token-list span { padding: 6px 9px; border: 1px solid #c8d4dc; background: #f4f7f8; color: #405360; font-size: 11px; }
@media (max-width: 1100px) {
  .readiness-strip { grid-template-columns: repeat(3,1fr); }.stamp:nth-child(3) { border-right: 0; }.stamp { border-bottom: 1px dashed var(--rule); }
  .period-tools, .date-grid { grid-template-columns: repeat(2,1fr); }.sheet-choices { grid-template-columns: repeat(2,1fr); }
  .issue-summary { grid-template-columns: repeat(2,1fr); }.issue-summary > div:nth-child(2) { border-right: 0; }.issue-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--rule); }
  .batch-toolbar { grid-template-columns: auto 1fr; }.batch-toolbar > span { justify-self: start; }
  .dynamic-parameter-grid { grid-template-columns: repeat(2,1fr); }
  .definition-current, .contract-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 780px) {
  .shell { display: block; }.sidebar { position: static; width: 100%; height: auto; padding: 16px; }.brand { margin-bottom: 15px; }
  .nav { margin: 0; grid-template-columns: repeat(5,1fr); overflow-x: auto; }.nav a { display: grid; justify-items: center; gap: 5px; padding: 9px 5px; border-left: 0; border-bottom: 2px solid transparent; white-space: nowrap; font-size: 11px; }.nav a.active { border-left: 0; border-bottom-color: #63aee7; }
  .sidebar-foot { display: none; }.main { padding: 24px 16px 45px; }.page-head { align-items: flex-start; flex-direction: column; }
  .readiness-strip, .metric-row, .two-column { grid-template-columns: 1fr; }.stamp { border-right: 0; }.metric-row { grid-template-columns: repeat(2,1fr); }
  .filter-bar, .report-options, .parameter-grid { grid-template-columns: 1fr; }.grid-form { grid-template-columns: 1fr; }.wide-field { grid-column: auto; }
  .period-tools, .date-grid, .sheet-choices { grid-template-columns: 1fr; }.submit-note { justify-content: space-between; }
  .revision-rail { grid-template-columns: 1fr; gap: 12px; }.revision-rail i { display: none; }.revision-rail > div { padding-bottom: 11px; border-bottom: 1px solid #516e84; }.revision-rail > div:last-child { padding-bottom: 0; border-bottom: 0; }
  .issue-summary { grid-template-columns: 1fr 1fr; }
  .batch-toolbar { grid-template-columns: 1fr; }.batch-toolbar button { width: 100%; }
  .publish-actions { align-items: stretch; flex-direction: column; }.publish-actions button { width: 100%; }
  .dynamic-parameter-grid, .definition-current, .contract-grid { grid-template-columns: 1fr; }
  .definition-rail { grid-template-columns: 1fr; gap: 12px; }.definition-rail i { display: none; }
  .definition-current > div { border-right: 0; border-bottom: 1px solid var(--rule); }.definition-current > div:last-child { border-bottom: 0; }
  .version-actions { align-items: stretch; flex-direction: column; }.version-actions a, .version-actions button { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
