/* Same layout across skins; paired foreground/background states. */
:root[data-qr-size="large"] { font-size: 18px; }
:root[data-qr-size="larger"] { font-size: 20px; }
:root[data-qr-accent="blue"] { --qr-accent: #195da7; --qr-accent-hover: #13477f; --qr-accent-active: #10385f; }
:root[data-qr-accent="violet"] { --qr-accent: #7040a0; --qr-accent-hover: #58327d; --qr-accent-active: #452762; }
:root[data-qr-accent="teal"] { --qr-accent: #08736e; --qr-accent-hover: #065a56; --qr-accent-active: #044743; }
:root[data-qr-accent] { --brand: var(--qr-accent); --brand-dark: var(--qr-accent-hover); --brand-strong: var(--qr-accent-hover); --on-brand: #fff; --action: var(--qr-accent); --action-hover: var(--qr-accent-hover); --action-active: var(--qr-accent-active); --action-ink: #fff; }
:root[data-qr-theme="dark"][data-qr-accent] { --brand: #a9dfd7; --brand-dark: #c6f0e8; --brand-strong: #c6f0e8; --on-brand: #11241e; }
:root[data-qr-theme="dark"][data-qr-accent="blue"] { --brand: #a9ceff; --brand-dark: #c7dfff; --brand-strong: #c7dfff; }
:root[data-qr-theme="dark"][data-qr-accent="violet"] { --brand: #dac0ff; --brand-dark: #ebd9ff; --brand-strong: #ebd9ff; }
.qr-personalize { margin: .7rem 0 1rem; border: 1px solid var(--qr-line); border-radius: 16px; background: var(--qr-surface); color: var(--qr-text); }
.qr-personalize > summary { padding: .75rem 1rem; min-height: 44px; cursor: pointer; font-weight: 750; }
.qr-personalize > summary:hover { background: var(--qr-hover); color: var(--qr-text); border-radius: 16px; }
.qr-personalize-body { padding: 0 1rem 1rem; }
.qr-personalize h2 { font-size: 1.25rem; margin: .3rem 0; }
.qr-preference-note { font-size: .9rem; line-height: 1.6; color: var(--qr-muted); margin: .55rem 0; }
.qr-preference-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap: .8rem; }
.qr-personalize label { display: grid; gap: .4rem; font-size: 1rem; margin: 0; }
.qr-personalize fieldset { min-width: 0; border: 1px solid var(--qr-line); border-radius: 12px; padding: .8rem; margin: 1rem 0; }
.qr-personalize legend { padding: 0 .3rem; font-weight: 750; }
.qr-personalize select, .qr-personalize button { min-width: 44px; min-height: 44px; max-width: 100%; margin: 0; font: inherit; color: var(--qr-text); background: var(--qr-surface); border: 1px solid var(--qr-line); border-radius: 10px; padding: .5rem .65rem; }
.qr-personalize select { width: 100%; }
.qr-personalize button:hover:not(:disabled), .qr-personalize select:hover { color: var(--qr-text); background: var(--qr-hover); }
.qr-personalize button:active:not(:disabled), .qr-personalize select:active { color: var(--qr-text); background: var(--qr-active); }
.qr-personalize :focus-visible { outline: 3px solid var(--qr-focus); outline-offset: 2px; }
.qr-personalize button:disabled { color: var(--qr-muted); background: var(--qr-disabled); opacity: 1; }
.qr-preference-list { display: grid; gap: .5rem; }
.qr-preference-row { display: grid; grid-template-columns: minmax(0,1fr) 44px 44px; align-items: center; gap: .5rem; }
.qr-preference-row label { display: flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.qr-preference-row input[type="checkbox"] { width: 22px; height: 22px; min-height: 22px; flex: 0 0 22px; margin: .3rem; accent-color: var(--qr-accent); }
.qr-preference-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.qr-user-hidden { display: none !important; }
.qr-favorite { border-top: 3px solid var(--brand) !important; }
:root[data-qr-spacing="roomy"] :is(.band,.panel,.card-list,.student-list,.stack) { gap: 1.2rem; }
:root[data-qr-spacing="roomy"] :is(.band,.panel) { padding: 1.25rem; }
@media (max-width: 420px) { .qr-personalize-body { padding-inline: .65rem; } .qr-personalize fieldset { padding: .55rem; } }

:root[data-qr-accent] { --accent: var(--brand); --accent-strong: var(--brand-dark); --button-text: var(--on-brand); --button-hover: var(--brand-dark); --button-active: var(--qr-accent-active); }
:root[data-qr-theme="dark"][data-qr-accent] { --button-active: var(--brand); }
.qr-favorite::after { content: "★"; font-size: .65rem; line-height: 1; }
:root[data-qr-size] .bottom-nav button { overflow-wrap: anywhere; }
