/* All display styles are scoped to .qg-led / .qg-viewer. No web fonts. */
.qg-viewer { font-family: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif; color:#1c2928; box-sizing:border-box; }
.qg-viewer *, .qg-led * { box-sizing:border-box; }
.qg-viewer { display:flex; flex-direction:column; min-width:0; width:100%; height:100%; background:#eef1ee; }
.qg-viewer .qg-stage { flex:1; min-height:0; min-width:0; position:relative; overflow:hidden; background:#e3e9e5; }
.qg-viewer .qg-led { position:absolute; left:50%; top:50%; transform-origin:center; }
.qg-viewer.qg-thumbnail { background:transparent; }
.qg-viewer.qg-thumbnail .qg-stage { background:transparent; }
.qg-viewer.qg-embedded { background:#131d1c; }
.qg-viewer.qg-embedded .qg-stage { background:#131d1c; }
.qg-viewer .qg-toolbar { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:14px; background:#fff; padding:13px 20px; border-bottom:1px solid #dbe3dd; }
.qg-viewer .qg-toolbar-title { font-weight:700; font-size:16px; letter-spacing:.3px; }
.qg-viewer .qg-toolbar-meta { color:#66796f; font-size:12px; margin-top:4px; }
.qg-viewer .qg-tools { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.qg-viewer button, .qg-viewer select { font:inherit; border:1px solid #d1dcd5; border-radius:7px; padding:9px 12px; min-height:38px; background:#fff; color:#203d30; cursor:pointer; font-size:13px; }
.qg-viewer button:hover { background:#f0f6f2; }
.qg-viewer button:focus-visible, .qg-viewer select:focus-visible { outline:3px solid #6aa78b; outline-offset:2px; }
.qg-viewer button.qg-primary { background:#285c47; border-color:#285c47; color:#fff; }
.qg-viewer button.qg-primary:hover { background:#17422f; }
.qg-viewer button[aria-pressed="true"] { background:#e4f2e8; border-color:#4f8c6c; color:#234b37; }
.qg-viewer .qg-controls { flex-shrink:0; background:#fff; padding:12px 20px 10px; border-top:1px solid #dbe3dd; }
.qg-viewer .qg-controls-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.qg-viewer .qg-status-line { margin-top:8px; display:flex; gap:12px; justify-content:space-between; font-size:12px; line-height:1.5; color:#5b6f61; }
.qg-viewer .qg-status-line span:last-child { color:#849188; }
.qg-viewer.qg-board-full { background:#0d1713; }
.qg-viewer.qg-board-full .qg-toolbar, .qg-viewer.qg-board-full .qg-controls { display:none; }
.qg-viewer.qg-board-full .qg-stage { background:#0d1713; }
.qg-viewer .qg-exit { display:none; position:absolute; z-index:100; top:14px; right:14px; padding:8px 14px; background:#ffffffed; opacity:.4; }
.qg-viewer.qg-board-full .qg-exit { display:block; }
.qg-viewer .qg-exit:hover { opacity:1; }
.qg-led {
  --bg:#103c32; --surface:#194c40; --surface2:#235749; --ink:#fbf4de; --muted:#bed4c8; --line:#ffffff26;
  --accent:#efd390; --waiting:#245246; --waiting-ink:#f0f5ed; --active:#ffdf80; --active-ink:#293026; --done:#cae6d7; --done-ink:#234b3a;
  width:1600px; height:900px; padding:42px 46px 26px; display:flex; flex-direction:column; gap:25px;
  background:var(--bg); color:var(--ink); overflow:hidden; isolation:isolate;
  font-family:"Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif; font-weight:500;
  -webkit-font-smoothing:antialiased; font-variant-numeric:tabular-nums; line-height:1.35;
}
.qg-led h1,.qg-led h2,.qg-led h3,.qg-led p { margin:0; }
.qg-led .ld-icon { width:30px; height:30px; flex-shrink:0; display:inline-block; vertical-align:middle; }
.qg-led .ld-header { display:flex; align-items:center; justify-content:space-between; gap:30px; flex-shrink:0; min-height:114px; padding-bottom:23px; border-bottom:1px solid var(--line); }
.qg-led .ld-school { display:flex; align-items:center; gap:18px; min-width:0; }
.qg-led .ld-brand { width:70px; height:70px; background:var(--accent); color:var(--bg); flex-shrink:0; border-radius:19px; display:flex; align-items:center; justify-content:center; }
.qg-led .ld-brand .ld-icon { width:45px; height:45px; }
.qg-led .ld-logo { width:70px; height:70px; object-fit:contain; }
.qg-led .ld-school-name { font-size:37px; font-weight:750; letter-spacing:1px; white-space:nowrap; }
.qg-led .ld-school-sub { font-size:18px; letter-spacing:3px; margin-top:10px; color:var(--muted); }
.qg-led .ld-heading { font-size:42px; font-weight:750; letter-spacing:4px; white-space:nowrap; }
.qg-led .ld-heading small { display:block; color:var(--muted); font-size:16px; letter-spacing:3px; margin-top:8px; text-align:center; font-weight:500; }
.qg-led .ld-clock { text-align:right; white-space:nowrap; }
.qg-led .ld-time { display:block; font-size:65px; line-height:1.04; font-weight:700; letter-spacing:1px; font-family:Arial,"Microsoft YaHei",sans-serif; }
.qg-led .ld-date { color:var(--muted); font-size:21px; margin-top:10px; display:block; }
.qg-led .ld-main { flex:1; min-height:0; display:flex; flex-direction:column; }
.qg-led .ld-footer { flex-shrink:0; display:flex; gap:20px; align-items:center; min-height:57px; border-top:1px solid var(--line); padding-top:17px; }
.qg-led .ld-notice-label { display:flex; gap:10px; align-items:center; color:var(--accent); font-size:23px; font-weight:650; white-space:nowrap; padding-right:20px; border-right:1px solid var(--line); }
.qg-led .ld-notice { min-width:0; flex:1; font-size:23px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qg-led .ld-demo { flex-shrink:0; font-size:16px; color:var(--muted); white-space:nowrap; }
.qg-led .ld-section-bar { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-bottom:24px; flex-shrink:0; }
.qg-led .ld-section-title { font-size:29px; font-weight:650; display:flex; align-items:center; gap:12px; }
.qg-led .ld-section-title:before { content:""; width:5px; height:26px; border-radius:2px; background:var(--accent); }
.qg-led .ld-legend { display:flex; align-items:center; gap:25px; color:var(--muted); font-size:22px; }
.qg-led .ld-legend-item { display:flex; align-items:center; gap:9px; white-space:nowrap; }
.qg-led .ld-legend-item i { font-style:normal; width:23px; height:23px; border-radius:5px; display:inline-flex; align-items:center; justify-content:center; font-size:18px; }
.qg-led .ld-legend-item.waiting i { background:var(--waiting); color:var(--waiting-ink); border:1px solid var(--muted); }
.qg-led .ld-legend-item.active i { background:var(--active); color:var(--active-ink); }
.qg-led .ld-legend-item.done i { background:var(--done); color:var(--done-ink); }
.qg-led .ld-state-pill { display:inline-flex; align-items:center; gap:8px; font-size:25px; font-weight:650; line-height:1; padding:13px 17px; border-radius:9px; white-space:nowrap; }
.qg-led .ld-state-pill .ld-icon { width:23px; height:23px; }
.qg-led .ld-state-pill.waiting { background:var(--waiting); color:var(--waiting-ink); border:1px solid var(--line); }
.qg-led .ld-state-pill.active { background:var(--active); color:var(--active-ink); }
.qg-led .ld-state-pill.done { background:var(--done); color:var(--done-ink); }
.qg-led .ld-empty { color:var(--muted); display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:20px; text-align:center; font-size:32px; min-height:100px; padding:20px; }
.qg-led .ld-empty .ld-icon { width:58px; height:58px; opacity:.75; }
.qg-led .ld-empty small { font-size:22px; opacity:.85; }
.qg-led .ld-counts { display:flex; align-items:center; gap:22px; font-size:23px; color:var(--muted); }
.qg-led .ld-counts b { color:var(--ink); font-size:31px; margin-left:5px; }
.qg-led .ld-kicker { font-size:19px; letter-spacing:3px; color:var(--muted); }
.qg-led .ld-summary { margin-top:21px; display:flex; justify-content:space-between; align-items:center; font-size:22px; color:var(--muted); }
.qg-led .ld-progress { height:5px; background:var(--line); border-radius:8px; overflow:hidden; margin-top:17px; }
.qg-led .ld-progress span { display:block; height:100%; background:var(--done); border-radius:8px; transition:width .4s; }
.qg-led .ld-card { position:relative; min-width:0; min-height:0; overflow:hidden; border:1px solid var(--line); background:var(--surface); border-radius:17px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; }
.qg-led .ld-card-title { font-size:48px; font-weight:750; position:relative; z-index:1; }
.qg-led .ld-card.active { background:var(--active); color:var(--active-ink); border-color:var(--active); }
.qg-led .ld-card.done { background:var(--done); color:var(--done-ink); border-color:transparent; }
.qg-led .ld-card.active .ld-state-pill.active { background:#0000000d; }
.qg-led .ld-card.done .ld-state-pill.done { background:#ffffff45; }
.qg-led .ld-card-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; position:relative; z-index:1; }
.qg-led .ld-card-foot>.ld-icon { width:38px; height:38px; opacity:.7; }
.qg-led .ld-card-no { position:absolute; top:17px; right:21px; font-family:Arial,sans-serif; font-size:104px; line-height:1; font-weight:500; opacity:.07; }
/* 01 / deep green six-grid */
.qg-led[data-template="01"] { --bg:#103c32; gap:27px; padding:46px 45px 28px; }
.qg-led[data-template="01"] .ld-heading { font-size:39px; }
.qg-led[data-template="01"] .ld-school-name { font-size:34px; }
.qg-led .ld-pine-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); gap:19px; flex:1; min-height:0; }
.qg-led[data-template="01"] .ld-card { padding:35px; border-radius:15px; }
.qg-led[data-template="01"] .ld-card-title { font-size:54px; }
.qg-led[data-template="01"] .ld-card-no { font-size:153px; right:26px; top:19px; }
.qg-led[data-template="01"] .ld-state-pill { font-size:29px; }
/* 02 / sky blue vertical grade columns */
.qg-led[data-template="02"] { --bg:#eff5fc; --surface:#fff; --surface2:#e4eef9; --ink:#173c6a; --muted:#527092; --line:#cadbec; --accent:#2366b5; --waiting:#e2edf8; --waiting-ink:#385675; --done:#c9e5d8; --done-ink:#204b3d; padding:0 42px 25px; gap:30px; }
.qg-led[data-template="02"] .ld-header { margin:0 -42px; padding:29px 42px 30px; background:#19559b; color:#fff; border:0; }
.qg-led[data-template="02"] .ld-header .ld-brand { background:#edf4fd; color:#19559b; }
.qg-led[data-template="02"] .ld-header .ld-school-sub,.qg-led[data-template="02"] .ld-header .ld-date,.qg-led[data-template="02"] .ld-header .ld-heading small { color:#d4e4fb; }
.qg-led .ld-sky-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:13px; flex:1; min-height:0; }
.qg-led .ld-sky-card { display:flex; flex-direction:column; align-items:center; min-width:0; background:#fff; border-radius:14px; overflow:hidden; border:1px solid #d5e2ef; }
.qg-led .ld-sky-num { font-family:Arial,sans-serif; font-weight:600; font-size:84px; margin-top:34px; color:#91b0d4; line-height:1; }
.qg-led .ld-sky-grade { font-size:35px; font-weight:750; margin-top:20px; }
.qg-led .ld-sky-symbol { display:flex; align-items:center; justify-content:center; width:92px; height:92px; border:2px solid #d6e3f0; border-radius:50%; color:#7292b5; margin:auto; }
.qg-led .ld-sky-symbol .ld-icon { width:44px; height:44px; }
.qg-led .ld-sky-state { width:100%; padding:23px 8px; text-align:center; font-size:28px; font-weight:700; background:var(--waiting); color:var(--waiting-ink); }
.qg-led .ld-sky-card.active { border:3px solid #ebc447; background:#fff9df; }
.qg-led .ld-sky-card.active .ld-sky-num { color:#ae7b0e; }
.qg-led .ld-sky-card.active .ld-sky-symbol { border-color:#e4bb48; background:#ffdf7b; color:#5c4614; }
.qg-led .ld-sky-card.active .ld-sky-state { background:var(--active); color:var(--active-ink); }
.qg-led .ld-sky-card.done .ld-sky-state { background:var(--done); color:var(--done-ink); }
.qg-led .ld-sky-card.done .ld-sky-symbol { background:#dfefe6; color:#316a50; border-color:#b3d6c0; }
/* matrix shared */
.qg-led .ld-matrix-layout { display:grid; grid-template-columns:minmax(0,1fr) 335px; gap:26px; flex:1; min-height:0; }
.qg-led .ld-matrix { min-height:0; display:grid; grid-template-columns:150px repeat(4,minmax(0,1fr)); grid-template-rows:50px repeat(6,minmax(0,1fr)); gap:10px; }
.qg-led .ld-col-name { font-size:24px; color:var(--muted); text-align:center; align-self:center; }
.qg-led .ld-grade-label { font-size:33px; font-weight:650; display:flex; align-items:center; }
.qg-led .ld-class-cell { background:var(--waiting); color:var(--waiting-ink); border:1px solid var(--line); border-radius:9px; display:flex; justify-content:space-between; align-items:center; padding:12px 17px; font-size:31px; font-weight:650; gap:10px; min-width:0; }
.qg-led .ld-class-cell .ld-icon { width:29px; height:29px; opacity:.7; }
.qg-led .ld-class-cell.active { background:var(--active); color:var(--active-ink); border:2px solid #ffeaad; }
.qg-led .ld-class-cell.done { background:var(--done); color:var(--done-ink); border-color:transparent; }
.qg-led .ld-current-side { display:flex; flex-direction:column; border-left:1px solid var(--line); padding-left:26px; min-height:0; }
.qg-led .ld-side-heading { color:var(--accent); font-size:29px; display:flex; align-items:center; gap:10px; margin:9px 0 22px; }
.qg-led .ld-active-name { font-size:46px; font-weight:750; margin-bottom:14px; line-height:1.5; overflow-wrap:anywhere; }
.qg-led .ld-side-note { font-size:24px; color:var(--muted); margin-top:17px; line-height:1.7; }
.qg-led .ld-side-total { margin-top:auto; border-top:1px solid var(--line); padding-top:25px; }
.qg-led .ld-side-total strong { font:700 76px/1 Arial,sans-serif; color:var(--ink); }
.qg-led .ld-side-total small { color:var(--muted); font-size:27px; margin-left:10px; }
.qg-led .ld-side-total p { color:var(--muted); font-size:23px; margin-top:10px; }
.qg-led[data-template="03"] { --bg:#10273c; --surface:#19354b; --surface2:#254156; --ink:#f7f4e8; --muted:#b2c4d1; --line:#c4d3db2f; --accent:#dbc08c; --waiting:#233f54; --waiting-ink:#ecf3f6; --done:#c2dacb; --done-ink:#254b3c; }
.qg-led[data-template="03"] .ld-brand { border-radius:8px; background:transparent; border:1px solid #d9c394; color:#d9c394; }
/* 04 / grouped class trays */
.qg-led[data-template="04"] { --bg:#faf4ec; --surface:#fffdf9; --surface2:#f0e9df; --ink:#4c3529; --muted:#7c695b; --line:#ddcdbc; --accent:#bd592d; --waiting:#efeae3; --waiting-ink:#65564d; --done:#c8e0d1; --done-ink:#224d3a; padding:36px 45px 26px; gap:23px; border-top:10px solid #da7842; }
.qg-led[data-template="04"] .ld-brand { background:#d9763f; color:#fff8ef; }
.qg-led .ld-trays { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); gap:17px 23px; flex:1; min-height:0; }
.qg-led .ld-tray { display:grid; grid-template-columns:140px minmax(0,1fr); border:1px solid var(--line); background:var(--surface); border-radius:14px; overflow:hidden; }
.qg-led .ld-tray-name { background:#f4e4d4; padding:20px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; font-size:27px; font-weight:650; color:#894721; }
.qg-led .ld-tray-name span { font-size:17px; font-weight:500; letter-spacing:1px; color:#a67c61; }
.qg-led .ld-tray-cells { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:17px; }
.qg-led[data-template="04"] .ld-class-cell { flex-direction:column; justify-content:center; gap:11px; padding:12px 5px; font-size:29px; }
.qg-led[data-template="04"] .ld-class-cell .ld-icon { width:24px; height:24px; }
/* state-zone components */
.qg-led .ld-zone-grid { flex:1; min-height:0; display:grid; grid-template-columns:1fr 1.24fr 1fr; gap:20px; }
.qg-led .ld-zone { display:flex; flex-direction:column; min-height:0; border-radius:17px; background:var(--surface); border:1px solid var(--line); padding:26px; overflow:hidden; }
.qg-led .ld-zone-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:22px; font-size:33px; font-weight:700; flex-shrink:0; }
.qg-led .ld-zone-head span { display:flex; align-items:center; gap:11px; }
.qg-led .ld-zone-count { font-size:23px; font-weight:500; border:1px solid var(--line); padding:4px 12px; border-radius:25px; min-width:42px; text-align:center; }
.qg-led .ld-zone-list { display:flex; flex-direction:column; gap:13px; flex:1; min-height:0; }
.qg-led .ld-zone-row { background:var(--surface2); color:var(--ink); padding:14px 20px; border-radius:9px; display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:31px; font-weight:650; min-width:0; min-height:59px; }
.qg-led .ld-zone-row .ld-icon { width:27px; height:27px; flex-shrink:0; opacity:.75; }
.qg-led .ld-zone-row.active { background:var(--active); color:var(--active-ink); }
.qg-led .ld-zone-row.done { background:var(--done); color:var(--done-ink); }
.qg-led .ld-zone-note { font-size:21px; color:var(--muted); margin-top:auto; padding-top:17px; flex-shrink:0; }
.qg-led .ld-page-indicator { font-size:18px; color:var(--muted); margin-top:10px; text-align:right; }
.qg-led .ld-zone.active { background:#175e4e; color:#f2f8ef; --ink:#f2f8ef; --muted:#c4ddd0; --line:#ffffff2c; }
.qg-led .ld-zone.active .ld-zone-row { min-height:110px; font-size:44px; padding:25px; }
.qg-led[data-template="05"] { --bg:#f0f5f1; --surface:#fff; --surface2:#e9eeea; --ink:#284d40; --muted:#657c6e; --line:#d4ded7; --accent:#276b52; --waiting:#e7ede7; --waiting-ink:#526459; }
.qg-led[data-template="05"] .ld-brand { color:#fff; background:#276b52; }
.qg-led[data-template="05"] .ld-zone.waiting .ld-zone-head { color:#596e60; }
.qg-led[data-template="05"] .ld-zone.done { background:#e6f0e9; }
/* 06 / asymmetric zones */
.qg-led[data-template="06"] { --bg:#1c2e46; --surface:#253b55; --surface2:#30475f; --ink:#f0f4f8; --muted:#b3c5d8; --line:#d7e3ec2c; --accent:#aecae6; --waiting:#30475f; --waiting-ink:#ecf1f8; }
.qg-led[data-template="06"] .ld-brand { background:#b6cbdf; color:#1c2e46; }
.qg-led .ld-zones-split { display:grid; grid-template-columns:1.05fr 1fr; gap:24px; min-height:0; flex:1; }
.qg-led .ld-zones-stack { display:grid; grid-template-rows:1fr 1fr; gap:21px; min-height:0; }
.qg-led .ld-zones-split>.ld-zone.active { background:#e4edf4; --ink:#203b52; --muted:#597183; --line:#b9cddb; color:#203b52; padding:35px; }
.qg-led .ld-zones-split>.ld-zone.active .ld-zone-head { font-size:36px; }
.qg-led .ld-zones-split>.ld-zone.active .ld-zone-row { font-size:55px; padding:24px 28px; min-height:132px; }
.qg-led .ld-zones-stack .ld-zone { padding:21px 24px; }
.qg-led .ld-zones-stack .ld-zone-head { font-size:28px; margin-bottom:15px; }
.qg-led .ld-zones-stack .ld-zone-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:minmax(0,1fr); gap:11px; }
.qg-led .ld-zones-stack .ld-zone-row { font-size:25px; padding:12px; justify-content:center; min-height:56px; white-space:nowrap; }
.qg-led .ld-zones-stack .ld-zone-row .ld-icon { display:none; }
.qg-led .ld-zones-stack .ld-zone-note { display:none; }
/* 07 / focus monochrome regular board */
.qg-led[data-template="07"] { --bg:#171d24; --surface:#242e37; --surface2:#2d3943; --ink:#f7f6f1; --muted:#bac5cb; --line:#d1dde22f; --accent:#ffdf80; --waiting:#303b44; --waiting-ink:#edf2f3; padding:36px 42px 26px; }
.qg-led[data-template="07"] .ld-brand { border-radius:5px; }
.qg-led[data-template="07"] .ld-header { border-bottom-width:2px; }
.qg-led .ld-focus-regular { display:grid; grid-template-columns:1fr 1.1fr; gap:26px; min-height:0; flex:1; }
.qg-led .ld-focus-now { border:1px solid var(--line); border-radius:13px; padding:34px; display:flex; flex-direction:column; min-height:0; overflow:hidden; background:var(--surface); }
.qg-led .ld-focus-now-title { color:var(--accent); font-size:29px; display:flex; gap:11px; align-items:center; }
.qg-led .ld-now-list { display:flex; flex-direction:column; justify-content:center; flex:1; gap:20px; min-height:0; }
.qg-led .ld-now-name { font-size:85px; font-weight:800; letter-spacing:2px; line-height:1.2; }
.qg-led .ld-now-name+.ld-now-name { font-size:53px; }
.qg-led .ld-focus-now p { font-size:26px; color:var(--muted); line-height:1.7; }
.qg-led .ld-focus-grades { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); gap:15px; min-height:0; }
.qg-led .ld-focus-grades .ld-card { padding:23px 25px; border-radius:11px; }
.qg-led .ld-focus-grades .ld-card-title { font-size:39px; }
.qg-led .ld-focus-grades .ld-state-pill { font-size:22px; padding:10px 12px; }
.qg-led .ld-focus-grades .ld-card-foot>.ld-icon { display:none; }
/* 08 / cobalt regular board */
.qg-led[data-template="08"] { --bg:#f0f4fc; --surface:#fff; --surface2:#dfe8f8; --ink:#203e78; --muted:#5d7199; --line:#cad5ec; --accent:#2953b6; --waiting:#e4ebf6; --waiting-ink:#4c638c; --done:#c9e2d4; --done-ink:#295640; padding:0 40px 25px; gap:28px; }
.qg-led[data-template="08"] .ld-header { margin:0 -40px; padding:28px 40px; background:#254daf; color:#fff; border:0; }
.qg-led[data-template="08"] .ld-header .ld-school-sub,.qg-led[data-template="08"] .ld-header .ld-date,.qg-led[data-template="08"] .ld-header .ld-heading small { color:#dce5ff; }
.qg-led[data-template="08"] .ld-brand { background:#ffe16f; color:#254daf; border-radius:50%; }
.qg-led .ld-focus-blue { display:grid; grid-template-columns:.94fr 1.1fr; gap:28px; flex:1; min-height:0; }
.qg-led .ld-grade-rows { display:flex; flex-direction:column; gap:12px; min-height:0; }
.qg-led .ld-grade-row { flex:1; min-height:0; display:flex; align-items:center; padding:13px 22px; gap:18px; border-radius:12px; background:var(--surface); border:1px solid var(--line); }
.qg-led .ld-grade-row strong { font-size:35px; margin-right:auto; }
.qg-led .ld-grade-row>.ld-icon { color:var(--muted); width:30px; height:30px; }
.qg-led .ld-grade-row.active { background:#fff3bf; border-color:#debc49; }
.qg-led .ld-grade-row.done { background:#e3eee7; }
.qg-led .ld-grade-row .ld-state-pill { font-size:23px; padding:10px 13px; }
.qg-led .ld-focus-blue .ld-focus-now { background:#254daf; color:#fff; --accent:#ffe16f; --muted:#d3defa; --line:#ffffff30; border-radius:22px; padding:40px; position:relative; }
.qg-led .ld-focus-blue .ld-focus-now:after { content:""; width:300px; height:300px; border:42px solid #ffffff09; border-radius:50%; position:absolute; right:-140px; bottom:-160px; pointer-events:none; }
.qg-led .ld-focus-blue .ld-now-name { font-size:96px; color:#ffe16f; }
.qg-led .ld-focus-blue .ld-now-name+.ld-now-name { font-size:52px; }
/* true full-board focus overlay; not a separate business state */
.qg-led .ld-focus-layer { position:absolute; inset:0; z-index:30; background:var(--bg); color:var(--ink); padding:43px 60px 42px; display:none; flex-direction:column; transform-origin:0 0; overflow:hidden; }
.qg-led .ld-focus-layer.is-visible { display:flex; }
.qg-led .ld-focus-layer .ld-focus-top { display:flex; justify-content:space-between; align-items:center; gap:25px; border-bottom:1px solid var(--line); padding-bottom:27px; font-size:35px; font-weight:650; }
.qg-led .ld-focus-layer .ld-focus-top .ld-time { font-size:48px; }
.qg-led .ld-focus-content { flex:1; min-height:0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:20px; }
.qg-led .ld-focus-eyebrow { display:flex; align-items:center; justify-content:center; gap:14px; color:var(--accent); font-size:31px; letter-spacing:6px; }
.qg-led .ld-focus-name { font-size:167px; font-weight:800; line-height:1.18; letter-spacing:8px; color:var(--accent); max-width:100%; overflow-wrap:anywhere; }
.qg-led .ld-focus-label { font-size:92px; font-weight:750; letter-spacing:7px; }
.qg-led .ld-focus-helper { font-size:33px; color:var(--muted); margin-top:13px; }
.qg-led .ld-focus-bottom { font-size:24px; display:flex; justify-content:space-between; color:var(--muted); gap:20px; }
.qg-led .ld-focus-bar { position:absolute; left:0; bottom:0; height:7px; width:100%; background:var(--accent); transform-origin:left; }
.qg-led[data-template="07"] .ld-focus-layer { border-left:13px solid #ffdf80; }
.qg-led[data-template="08"] .ld-focus-layer { background:#244cb0; color:#fff; --bg:#244cb0; --ink:#fff; --muted:#d4def9; --line:#ffffff35; --accent:#ffe16f; border:12px solid #ffe16f; }
.qg-led[data-template="08"] .ld-focus-name { font-size:174px; }
.qg-led[data-template="08"] .ld-focus-label { background:#ffe16f; color:#23479b; padding:12px 72px 21px; border-radius:80px; font-size:80px; letter-spacing:6px; }
/* 09 / 5:2 wide */
.qg-led[data-template="09"] { --bg:#143951; --surface:#21465e; --surface2:#2c5269; --ink:#f0f5f6; --muted:#bed2dd; --line:#c6dbe533; --accent:#ffdf80; --waiting:#2b5268; --waiting-ink:#f0f4f6; padding:32px 40px 23px; gap:27px; }
.qg-led[data-template="09"] .ld-header { min-height:100px; padding-bottom:24px; }
.qg-led[data-template="09"] .ld-school-name { font-size:43px; }
.qg-led[data-template="09"] .ld-heading { font-size:48px; }
.qg-led .ld-wide-zones { display:grid; grid-template-columns:1.17fr 1.28fr 1fr; gap:23px; min-height:0; flex:1; }
.qg-led .ld-wide-zone { padding:28px; border-radius:15px; background:var(--surface); border:1px solid var(--line); display:flex; flex-direction:column; min-height:0; }
.qg-led .ld-wide-zone.active { background:var(--active); color:var(--active-ink); border-color:transparent; }
.qg-led .ld-wide-zone .ld-zone-head { font-size:34px; }
.qg-led .ld-wide-zone.active .ld-zone-count { border-color:#00000025; }
.qg-led .ld-wide-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; flex:1; min-height:0; align-content:start; }
.qg-led .ld-wide-item { font-size:39px; padding:18px 20px; border-radius:9px; border:1px solid var(--line); background:var(--surface2); white-space:nowrap; }
.qg-led .ld-wide-zone.active .ld-wide-items { display:flex; flex-direction:column; justify-content:center; align-items:center; }
.qg-led .ld-wide-zone.active .ld-wide-item { font-size:85px; background:transparent; border:0; padding:0; font-weight:800; }
.qg-led .ld-wide-zone.active .ld-wide-item:not(:first-child) { font-size:48px; }
.qg-led .ld-wide-zone.done .ld-wide-item { background:var(--done); color:var(--done-ink); }
.qg-led .ld-wide-note { font-size:23px; margin-top:20px; opacity:.8; }
/* 10 / 3:1 wide with identity rail */
.qg-led[data-template="10"] { --bg:#133d30; --surface:#225140; --surface2:#2d5a4a; --ink:#f7f1dd; --muted:#bad0c1; --line:#d8e8db2e; --accent:#f0d999; --waiting:#315c4b; --waiting-ink:#f0f2e6; padding:0; display:block; }
.qg-led .ld-green-rail { position:absolute; left:0; top:0; bottom:0; width:320px; background:#e5ecdf; color:#224c3b; padding:35px 30px; display:flex; flex-direction:column; align-items:flex-start; border-right:1px solid #00000010; }
.qg-led .ld-green-rail .ld-brand { background:#25543e; color:#eff1df; width:60px; height:60px; border-radius:15px; margin-bottom:23px; }
.qg-led .ld-green-rail h1 { font-size:34px; line-height:1.6; font-weight:750; }
.qg-led .ld-green-rail .ld-school-sub { color:#5b7867; font-size:17px; letter-spacing:1px; }
.qg-led .ld-green-rail .ld-clock { margin-top:auto; text-align:left; }
.qg-led .ld-green-rail .ld-time { font-size:65px; }
.qg-led .ld-green-rail .ld-date { font-size:19px; color:#4b705b; white-space:normal; line-height:1.8; }
.qg-led .ld-green-content { margin-left:320px; height:100%; padding:28px 32px 22px; display:flex; flex-direction:column; gap:22px; }
.qg-led .ld-green-top { display:flex; justify-content:space-between; align-items:center; flex-shrink:0; padding-bottom:18px; border-bottom:1px solid var(--line); }
.qg-led .ld-green-top h2 { font-size:34px; letter-spacing:3px; }
.qg-led .ld-green-cards { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:13px; min-height:0; flex:1; }
.qg-led .ld-green-card { padding:26px 14px; display:flex; flex-direction:column; align-items:center; gap:15px; border:1px solid var(--line); border-radius:11px; min-width:0; background:var(--surface); }
.qg-led .ld-green-card .ld-rail-num { font:500 60px/1 Arial,sans-serif; opacity:.5; }
.qg-led .ld-green-card h3 { font-size:32px; font-weight:750; white-space:nowrap; margin:auto 0; }
.qg-led .ld-green-card>.ld-icon { width:39px; height:39px; }
.qg-led .ld-green-card.active { background:var(--active); color:var(--active-ink); border-color:transparent; }
.qg-led .ld-green-card.done { background:var(--done); color:var(--done-ink); border-color:transparent; }
.qg-led .ld-green-card .ld-state-pill { font-size:22px; padding:10px; }
.qg-led .ld-green-card .ld-state-pill .ld-icon { display:none; }
.qg-led .ld-green-card.active .ld-state-pill { background:#0000000c; }
.qg-led .ld-green-card.done .ld-state-pill { background:#ffffff45; }
.qg-led[data-template="10"] .ld-footer { padding-top:17px; min-height:49px; }
.qg-led[data-template="10"] .ld-notice { font-size:22px; }
/* 11 / academy, 4:3 */
.qg-led[data-template="11"] { --bg:#f6f0e3; --surface:#fffaf1; --surface2:#eae3d6; --ink:#433a30; --muted:#7f7567; --line:#d3c6b0; --accent:#943e32; --waiting:#ebe4d7; --waiting-ink:#6c6050; --done:#d2e2d2; --done-ink:#345741; padding:40px 45px 27px; gap:28px; border-top:8px solid #943e32; }
.qg-led[data-template="11"] .ld-header { padding-bottom:27px; }
.qg-led[data-template="11"] .ld-school-name { font-size:32px; letter-spacing:1px; }
.qg-led[data-template="11"] .ld-brand { color:#fff5df; background:#943e32; border-radius:4px; }
.qg-led[data-template="11"] .ld-heading { font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif; font-size:39px; letter-spacing:5px; }
.qg-led[data-template="11"] .ld-time { font-size:58px; }
.qg-led[data-template="11"] .ld-date { font-size:19px; }
.qg-led .ld-academy-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:33px; min-height:0; flex:1; }
.qg-led .ld-academy-culture { position:relative; border-right:1px solid var(--line); padding:30px 33px 15px 0; overflow:hidden; display:flex; flex-direction:column; }
.qg-led .ld-academy-seal { width:44px; height:44px; border:1px solid #a4523e; color:#943e32; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:29px; }
.qg-led .ld-academy-verse { font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif; font-size:47px; line-height:1.9; color:#784b37; letter-spacing:5px; }
.qg-led .ld-academy-culture p { font-size:21px; color:#8b7560; line-height:1.9; margin-top:28px; }
.qg-led .ld-academy-lines { height:100px; margin-top:auto; position:relative; border-top:1px solid #cdb89c; border-bottom:1px solid #cdb89c; opacity:.7; }
.qg-led .ld-academy-lines:before { content:""; position:absolute; width:120px; height:115px; left:42px; bottom:0; border:1px solid #b4a180; border-radius:65px 65px 0 0; }
.qg-led .ld-academy-board { display:flex; flex-direction:column; min-height:0; }
.qg-led .ld-academy-rows { display:flex; flex-direction:column; gap:13px; min-height:0; flex:1; }
.qg-led .ld-academy-row { flex:1; min-height:0; display:flex; align-items:center; gap:25px; padding:17px 22px; border:1px solid var(--line); background:var(--surface); }
.qg-led .ld-academy-row .ld-academy-n { font-size:29px; color:#a78d70; padding-right:22px; border-right:1px solid var(--line); }
.qg-led .ld-academy-row strong { margin-right:auto; font-size:39px; font-weight:700; }
.qg-led .ld-academy-row.active { background:#f9e6a9; border-color:#c6a850; }
.qg-led .ld-academy-row.done { background:#e8eee2; }
.qg-led .ld-academy-row .ld-state-pill { font-size:25px; border-radius:4px; }
.qg-led[data-template="11"] .ld-section-title { font-size:25px; }
.qg-led[data-template="11"] .ld-legend { gap:15px; font-size:19px; }
/* 12 / playful but no large illustration */
.qg-led[data-template="12"] { --bg:#fff7e9; --surface:#fffdf8; --surface2:#f2e8d6; --ink:#2e5140; --muted:#75806a; --line:#dccfb8; --accent:#2c654a; --waiting:#f1ebdd; --waiting-ink:#746954; --done:#cde3cf; --done-ink:#29563c; padding:36px 41px 26px; gap:26px; }
.qg-led[data-template="12"] .ld-brand { background:#2e664a; color:#fff8e7; border-radius:22px 22px 22px 6px; }
.qg-led[data-template="12"] .ld-header { border-bottom:2px dashed #d9cbb5; padding-bottom:25px; }
.qg-led .ld-play-layout { display:grid; grid-template-columns:.82fr 1.42fr; gap:26px; min-height:0; flex:1; }
.qg-led .ld-play-current { background:#f2a366; color:#4a3828; border-radius:28px 28px 70px 28px; padding:33px; position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:0; }
.qg-led .ld-play-current .ld-focus-now-title { color:#553c24; font-size:29px; }
.qg-led .ld-play-current .ld-now-name { font-size:71px; color:#433a25; }
.qg-led .ld-play-current .ld-now-name+.ld-now-name { font-size:39px; }
.qg-led .ld-play-current .ld-now-list { z-index:1; }
.qg-led .ld-play-current p { font-size:25px; line-height:1.8; color:#644729; z-index:1; }
.qg-led .ld-play-orbit { position:absolute; width:210px; height:210px; border:32px solid #fff4d345; border-radius:50%; right:-88px; bottom:-78px; transform:rotate(-20deg); }
.qg-led .ld-play-dots { display:flex; gap:8px; margin-top:19px; }
.qg-led .ld-play-dots i { display:block; width:12px; height:12px; border-radius:50%; background:#84522266; }
.qg-led .ld-play-dots i:nth-child(2) { background:#fff1d5; }
.qg-led .ld-play-dots i:nth-child(3) { background:#577956; }
.qg-led .ld-play-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); gap:17px; min-height:0; }
.qg-led .ld-play-grid .ld-card { padding:24px 21px; border-radius:22px; border-width:2px; }
.qg-led .ld-play-grid .ld-card-title { font-size:37px; }
.qg-led .ld-play-grid .ld-card-no { top:62px; right:23px; font-size:90px; opacity:.07; }
.qg-led .ld-play-grid .ld-state-pill { font-size:23px; padding:12px; border-radius:20px; }
.qg-led .ld-play-grid .ld-card-foot>.ld-icon { display:none; }
.qg-led .ld-play-grid .ld-card.active { border:3px solid #b89933; }
.qg-led .ld-play-grid .ld-card.done { border-color:#b9d1bb; }
@media (max-width:720px) {
 .qg-viewer .qg-toolbar { padding:10px 12px; gap:8px; }
 .qg-viewer .qg-toolbar-title { font-size:14px; }
 .qg-viewer .qg-toolbar-meta { font-size:11px; }
 .qg-viewer .qg-controls { padding:10px 12px; }
 .qg-viewer .qg-controls-row { justify-content:center; }
 .qg-viewer .qg-tools { gap:5px; }
 .qg-viewer button,.qg-viewer select { font-size:12px; min-height:36px; padding:7px 9px; }
 .qg-viewer .qg-status-line { display:block; font-size:11px; }
 .qg-viewer .qg-status-line span:last-child { display:none; }
}
@media (prefers-reduced-motion:reduce) {
 .qg-led *, .qg-viewer * { scroll-behavior:auto!important; }
 .qg-led .ld-progress span { transition:none; }
}
.qg-led .ld-zone-list>.ld-empty { width:100%; grid-column:1/-1; }
.qg-led .ld-wide-zone.active .ld-empty { color:var(--active-ink); }
.qg-led .ld-play-current .ld-empty { color:#634d31; }

/* CJK font metrics need a little extra descent room at large sizes. */
.qg-led .ld-wide-zone.active .ld-wide-item { line-height:1.5; }
.qg-led .ld-green-rail h1 { font-size:36px; line-height:1.6; }

/* V2 — output canvas and interactive experience controls. */
.qg-viewer{position:relative;isolation:isolate}
.qg-viewer .qg-output{position:absolute;left:50%;top:50%;transform-origin:center;background:#101716;overflow:hidden}
.qg-viewer .qg-output>.qg-led{left:50%;top:50%;transform-origin:center}
.qg-viewer.qg-board-full{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;z-index:20000}
.qg-viewer:fullscreen{width:100%;height:100%;background:#101716}
.qg-viewer .qg-full-tools{display:none;position:absolute;right:18px;bottom:18px;z-index:120;gap:8px;max-width:calc(100% - 32px);flex-wrap:wrap;justify-content:flex-end;padding:8px;background:#14271beb;border:1px solid #ffffff25;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s}
.qg-viewer.qg-board-full .qg-full-tools{display:flex}
.qg-viewer.qg-board-full.qg-full-tools-visible .qg-full-tools,.qg-viewer.qg-board-full .qg-full-tools:focus-within,.qg-viewer.qg-board-full .qg-full-tools:hover{opacity:1;pointer-events:auto}
.qg-viewer .qg-full-tools button{background:#fff;color:#203d30}
.qg-live-settings{font-size:11px;color:#708174;margin-right:4px;white-space:nowrap}
.qg-led .ld-notice-viewport{overflow:hidden;flex:1;min-width:0;white-space:nowrap;position:relative;font-size:25px;line-height:1.6}
.qg-led .ld-notice-track{display:flex;width:max-content;white-space:nowrap;will-change:transform}
.qg-led .ld-notice-track.is-static{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;will-change:auto}
.qg-marquee-copy{display:inline-block;flex:none;white-space:nowrap}
.qg-led .ld-footer.ld-footer-quiet{justify-content:space-between;min-height:24px;padding-top:4px;border-top:none}
.qg-led .ld-matrix-wrap{display:flex;min-height:0;flex-direction:column;gap:3px}
.qg-led .ld-matrix-wrap>.ld-matrix{flex:1}
.qg-led .ld-unconfigured{opacity:.35;justify-content:center}
.qg-led .ld-class-cell>span{min-width:0;max-width:100%;overflow-wrap:anywhere;line-height:1.4}
.qg-led .ld-class-cell{overflow:hidden}
.qg-led .ld-grade-label{overflow-wrap:anywhere;min-width:0;overflow:hidden}
.qg-led .ld-sky-grade{max-width:100%;text-align:center;padding:0 8px;overflow-wrap:anywhere;line-height:1.4}
.qg-led .ld-zone-row>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.qg-led .ld-zone-row,.qg-led .ld-wide-item{overflow:hidden}
.qg-led .ld-card-title,.qg-led .ld-now-name,.qg-led .ld-active-name{overflow-wrap:anywhere;max-width:100%}
.qg-led .ld-tray-name{min-width:0;overflow:hidden;overflow-wrap:anywhere}
.qg-led .ld-main>.ld-page-indicator{flex-shrink:0;margin:0}
.qg-led .ld-green-card>h3{max-width:100%;overflow-wrap:anywhere}
.qg-settings-overlay{position:fixed;inset:0;z-index:30000;background:#10271bb8;display:grid;place-items:center;padding:20px;color:#253a2d;font-family:'Microsoft YaHei','PingFang SC',sans-serif;line-height:1.5}
.qg-settings-overlay[hidden],.qg-settings-section[hidden],.qg-settings-overlay input[hidden]{display:none!important}
.qg-settings-panel{width:min(880px,100%);max-height:calc(100dvh - 40px);background:#fff;box-shadow:0 24px 80px #0004;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;text-align:left}
.qg-settings-header{display:flex;justify-content:space-between;gap:20px;padding:25px 30px 19px;background:#f6f9f3;flex-shrink:0}
.qg-settings-kicker{font-size:10px;letter-spacing:2px;color:#7a8e73;font-weight:650}
.qg-settings-header h2{font-size:26px;margin:4px 0 5px;letter-spacing:.4px;color:#243f2d}
.qg-settings-header p{font-size:12px;color:#788971;margin:0}
.qg-viewer .qg-dialog-close{align-self:flex-start;font-size:25px;line-height:1;background:white;min-width:38px;min-height:38px;padding:3px;border-radius:50%}
.qg-settings-tabs{display:flex;gap:5px;padding:13px 25px;border-bottom:1px solid #e2e8df;flex-shrink:0;overflow:auto}
.qg-viewer .qg-settings-tabs button{background:transparent;border:0;padding:9px 16px;white-space:nowrap;color:#70826a;font-size:13px;min-height:36px;flex:1}
.qg-viewer .qg-settings-tabs button[aria-selected=true]{background:#e9f3e6;color:#315e3e;font-weight:700;border:0}
.qg-settings-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:23px 30px 13px}
.qg-settings-section{margin:0;padding:0}
.qg-settings-intro,.qg-focus-intro{padding:16px 18px;background:#f3f7f0;border:1px solid #e2eadb;border-radius:10px;margin-bottom:20px}
.qg-settings-intro strong,.qg-focus-intro strong{display:block;font-size:15px;font-weight:700}
.qg-settings-intro p,.qg-focus-intro p{font-size:12px;line-height:1.85;color:#71846a;margin:5px 0 0}
.qg-setting-row{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:10px 0 16px}
.qg-setting-row strong{display:block;font-size:14px;color:#304733}
.qg-setting-row small{display:block;font-size:12px;color:#7b8b75;margin-top:4px;line-height:1.6}
.qg-switch{position:relative;display:block;flex-shrink:0;width:44px;height:25px;cursor:pointer}
.qg-switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.qg-switch span{display:block;width:44px;height:25px;background:#d6e0d1;border-radius:20px;pointer-events:none;transition:background .18s}
.qg-switch span:after{content:'';display:block;position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .18s}
.qg-switch input:checked+span{background:#3e8258}.qg-switch input:checked+span:after{transform:translateX(19px)}
.qg-switch input:focus-visible+span{outline:3px solid #85bc99;outline-offset:3px}
.qg-field{display:block;margin:0 0 20px;font-size:13px;color:#3c553b}
.qg-field>span,.qg-field-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-weight:650}
.qg-field small{font-size:11px;font-weight:400;color:#8a967f}
.qg-field-top output{font-size:13px;color:#368352;font-weight:700;white-space:nowrap}
.qg-viewer .qg-settings-panel input:not([type=checkbox]):not([type=range]),.qg-viewer .qg-settings-panel textarea,.qg-viewer .qg-settings-panel select{width:100%;border:1px solid #d8e1d2;border-radius:8px;background:#fcfdfb;min-height:42px;padding:10px 12px;font:14px/1.6 'Microsoft YaHei','PingFang SC',sans-serif;color:#334d37;box-sizing:border-box}
.qg-viewer .qg-settings-panel textarea{resize:vertical;max-height:160px;min-height:68px}
.qg-viewer .qg-settings-panel input:focus,.qg-viewer .qg-settings-panel textarea:focus,.qg-viewer .qg-settings-panel select:focus{outline:2px solid #9ac5a2;outline-offset:1px}
.qg-viewer .qg-settings-panel input:disabled{background:#f2f4ef;color:#97a18e;opacity:.6}
.qg-viewer .qg-settings-panel input[type=range]{width:100%;accent-color:#40855a;height:20px;margin:5px 0;cursor:pointer}
.qg-range-captions{display:flex;justify-content:space-between;color:#8b9783;font-size:11px;margin-top:3px}
.qg-speed-presets{display:flex;gap:8px;margin-top:11px}
.qg-speed-presets button{flex:1}.qg-settings-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.qg-field.qg-compact{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:18px}
.qg-field.qg-compact>span{margin:0}
.qg-notice-demo{background:#f0f4ec;border:1px solid #dfe8d8;padding:16px 18px;border-radius:10px;margin:0 0 13px}
.qg-mini-label{font-size:11px;color:#829379;margin-bottom:8px;letter-spacing:.5px}
.qg-mini-viewport{width:100%;min-height:35px;overflow:hidden;white-space:nowrap;font-size:16px;color:#2d5536;line-height:2.2}
.qg-mini-track{display:flex;width:max-content;white-space:nowrap}
.qg-notice-demo p,.qg-settings-hint,.qg-voice-capability{font-size:12px;color:#829079;line-height:1.85;margin:10px 0}
.qg-speech-test{padding:16px 18px;background:#f3f7ef;border-radius:10px;border:1px solid #e2ebd9;margin:10px 0}
.qg-speech-feedback{font-size:12px;color:#6c855f;line-height:1.8;margin:10px 0 0}
.qg-settings-boundary{padding-top:14px;border-top:1px solid #e4e9df}
.qg-settings-footer{border-top:1px solid #e1e8da;padding:14px 26px 10px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0}
.qg-viewer .qg-settings-minor button{border-color:transparent;background:#f6f8f3;color:#718168;font-size:12px;padding:8px 9px;min-height:34px}
.qg-save-note{padding:0 28px 12px;font-size:11px;color:#8b977f;line-height:1.6}
.qg-resolution-preview{margin:20px 0;padding:17px;background:#f3f6ef;border:1px solid #e0e7d9;border-radius:10px;display:flex;align-items:center;gap:22px;min-height:150px}
.qg-resolution-shape{width:240px;height:135px;background:#223127;border:1px solid #223127;border-radius:4px;display:flex;justify-content:center;align-items:center;flex-shrink:0;overflow:hidden}
.qg-resolution-shape>div{background:#87b28c;border:2px solid #bddec0;max-width:100%;max-height:100%;position:relative}
.qg-resolution-shape>div:after{content:'LED';position:absolute;inset:0;display:grid;place-items:center;font:bold 12px/1 Arial;color:#24442c}
.qg-resolution-text{font-size:12px;color:#718367;line-height:1.8}
.qg-roster-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0 15px;border-top:1px solid #e5ecdf;font-size:12px;color:#7c8b71}
.qg-roster-tools>span{margin-right:auto}.qg-roster-tools label{display:flex;align-items:center;gap:7px;white-space:nowrap}
.qg-viewer .qg-roster-tools input[type=number]{width:68px;min-height:34px;padding:5px 8px}
.qg-roster-row{display:grid;grid-template-columns:26px 1.1fr .65fr 1.4fr;gap:12px;padding:13px 0;border-top:1px solid #e4eadf;align-items:center}
.qg-roster-index{font:12px/1 Arial;color:#9aa88d;align-self:center;margin-top:19px}
.qg-roster-row label{font-size:11px;color:#899780;display:flex;flex-direction:column;gap:5px;min-width:0}
.qg-roster-summary{padding:12px 15px;background:#edf5e8;border-radius:8px;color:#55734a;font-size:12px;line-height:1.8;margin:12px 0}
@media(max-width:900px){.qg-live-settings{display:none}.qg-toolbar{flex-wrap:wrap}.qg-resolution-preview{flex-direction:column}.qg-settings-tabs{padding:10px 16px}.qg-settings-header{padding:20px 22px 15px}.qg-settings-scroll{padding:18px 22px}.qg-settings-footer{padding:12px 18px 8px;flex-wrap:wrap}.qg-settings-overlay{padding:12px}.qg-settings-panel{max-height:calc(100dvh - 24px)}}
@media(max-width:600px){.qg-settings-overlay{padding:8px}.qg-settings-panel{max-height:calc(100dvh - 16px);border-radius:12px}.qg-settings-tabs{gap:3px;padding:9px 10px}.qg-viewer .qg-settings-tabs button{padding:8px 10px;flex:none;font-size:12px}.qg-settings-header{padding:15px 17px 13px}.qg-settings-header h2{font-size:22px}.qg-settings-scroll{padding:16px}.qg-settings-columns{gap:12px}.qg-settings-footer{padding:10px 14px 7px}.qg-save-note{padding:0 15px 9px}.qg-roster-row{grid-template-columns:22px 1fr .7fr;gap:8px}.qg-roster-names{grid-column:2/4}.qg-roster-tools>span{width:100%}.qg-settings-footer>.qg-tools:last-child{margin-left:auto}.qg-field small{max-width:160px;text-align:right}.qg-viewer .qg-full-tools{bottom:10px;right:10px}.qg-viewer .qg-controls .qg-tools{justify-content:center}}
.qg-led[data-template="05"] .ld-zone:not(.active) .ld-zone-row{padding:8px 18px;min-height:58px;font-size:30px}
.qg-led .ld-academy-row>strong{min-width:0;max-width:100%;overflow-wrap:anywhere}

/* Website action contrast and readable configurator text; display palettes stay intact. */
.qg-viewer button.qg-primary{background:#238257!important;color:#fff!important;border-color:#238257!important}
.qg-viewer button.qg-primary:hover{background:#1f744c!important;color:#fff!important}
.qg-viewer button.qg-primary:active{background:#1b6743!important;color:#fff!important}
.qg-settings-panel p,.qg-settings-panel small,.qg-settings-panel label,.qg-settings-panel .qg-save-note,.qg-settings-panel .qg-resolution-text,.qg-settings-panel .qg-roster-tools,.qg-settings-panel .qg-speech-feedback{color:#536650}
.qg-viewer .qg-settings-panel [data-tab][aria-selected="true"]{color:#fff!important;background:#238257!important}
.qg-viewer .qg-full-tools button{color:#fff;background:#254637;border-color:#668875}

.qg-viewer .qg-settings-minor button,.qg-settings-kicker,.qg-roster-index,.qg-mini-label{color:#536650!important}
