:root{--qc-color-bg:#f6f7f9;--qc-color-surface:#fff;--qc-color-surface-muted:#eef1f5;--qc-color-border:#d7dce2;--qc-color-border-strong:#b7bfc9;--qc-color-text:#1a2230;--qc-color-text-muted:#5b6472;--qc-color-text-faint:#838d99;--qc-color-primary:#2454a8;--qc-color-primary-hover:#1c4287;--qc-color-primary-contrast:#fff;--qc-color-success-bg:#e4f5e9;--qc-color-success-text:#1e6b38;--qc-color-success-border:#a9dcbb;--qc-color-info-bg:#e6f0fb;--qc-color-info-text:#1c4e8a;--qc-color-info-border:#aecdf0;--qc-color-warning-bg:#fdf1de;--qc-color-warning-text:#8a5a13;--qc-color-warning-border:#f0cf97;--qc-color-danger-bg:#fbe9e7;--qc-color-danger-text:#a3261b;--qc-color-danger-border:#f0b3ab;--qc-color-neutral-bg:#eef1f5;--qc-color-neutral-text:#4a5561;--qc-color-neutral-border:#d3d9e0;--qc-color-admin-bg:#10182b;--qc-color-admin-surface:#18213a;--qc-color-admin-border:#2b3757;--qc-color-admin-text:#eef1f7;--qc-color-admin-text-muted:#a7b0c2;--qc-color-admin-accent:#5b8def;--qc-font-sans:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--qc-font-size-page-title:1.5rem;--qc-font-size-section-title:1.15rem;--qc-font-size-card-title:1rem;--qc-font-size-body:.95rem;--qc-font-size-label:.85rem;--qc-font-size-helper:.8rem;--qc-font-size-meta:.78rem;--qc-line-height-body:1.5;--qc-space-1:.25rem;--qc-space-2:.5rem;--qc-space-3:.75rem;--qc-space-4:1rem;--qc-space-5:1.5rem;--qc-space-6:2rem;--qc-space-7:3rem;--qc-radius-sm:4px;--qc-radius-md:8px;--qc-radius-lg:12px;--qc-shadow-card:0 1px 2px #10182b0f, 0 4px 10px #10182b0f;--qc-shadow-raised:0 2px 4px #10182b14, 0 8px 20px #10182b1a;--qc-focus-ring:0 0 0 3px #5b8def73;--qc-content-max-width:1080px;--qc-theme-core-background:var(--qc-color-surface);--qc-theme-core-foreground:var(--qc-color-text)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--qc-color-bg);color:var(--qc-color-text);font-family:var(--qc-font-sans);font-size:var(--qc-font-size-body);line-height:var(--qc-line-height-body);margin:0}h1{font-size:var(--qc-font-size-page-title);margin:0 0 var(--qc-space-4) 0;color:var(--qc-color-text);text-wrap:balance;font-weight:700}h2{font-size:var(--qc-font-size-section-title);margin:var(--qc-space-6) 0 var(--qc-space-3) 0;color:var(--qc-color-text);font-weight:650}h3{font-size:var(--qc-font-size-card-title);margin:0 0 var(--qc-space-2) 0;font-weight:650}p{margin:0 0 var(--qc-space-3) 0}a{color:var(--qc-color-primary)}a:hover{color:var(--qc-color-primary-hover)}:focus-visible{box-shadow:var(--qc-focus-ring);border-radius:var(--qc-radius-sm);outline:none}table{border-collapse:collapse}input,select,textarea{font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}main{max-width:var(--qc-content-max-width);padding:var(--qc-space-6) var(--qc-space-5);margin:0 auto;display:block}@media (max-width:640px){main{padding:var(--qc-space-4) var(--qc-space-3)}}main.qc-auth-page{background:var(--qc-color-surface);border:1px solid var(--qc-color-border);border-radius:var(--qc-radius-lg);width:100%;max-width:420px;box-shadow:var(--qc-shadow-raised);padding:var(--qc-space-6);margin:8vh auto}@media (max-width:480px){main.qc-auth-page{margin:var(--qc-space-5) auto;padding:var(--qc-space-5)}}main.qc-student-auth-page{border-color:var(--qc-color-info-border);border-radius:var(--qc-radius-lg);border-width:2px}main.qc-student-auth-page .qc-auth-brand{color:var(--qc-color-info-text)}main.qc-student-auth-page .qc-button-primary{background:var(--qc-color-info-text)}.qc-auth-page h1{font-size:var(--qc-font-size-section-title);margin-bottom:var(--qc-space-5)}.qc-auth-brand{align-items:center;gap:var(--qc-space-2);color:var(--qc-color-primary);font-weight:700;font-size:var(--qc-font-size-card-title);margin-bottom:var(--qc-space-5);letter-spacing:.01em;display:flex}body:has(main.qc-admin-auth-page){background:var(--qc-color-admin-bg);min-height:100vh;margin:0}main.qc-admin-auth-page{background:var(--qc-color-admin-surface);border-color:var(--qc-color-admin-border);color:var(--qc-color-admin-text)}.qc-admin-auth-page h1{color:var(--qc-color-admin-text)}.qc-admin-auth-page .qc-auth-brand{color:var(--qc-color-admin-accent)}.qc-admin-auth-page label{color:var(--qc-color-admin-text-muted)}.qc-admin-auth-page input{background:var(--qc-color-admin-bg);border-color:var(--qc-color-admin-border);color:var(--qc-color-admin-text)}.qc-admin-auth-page .qc-button-primary{background:var(--qc-color-admin-accent)}.qc-button{justify-content:center;align-items:center;gap:var(--qc-space-2);font-size:var(--qc-font-size-body);padding:var(--qc-space-2) var(--qc-space-4);border-radius:var(--qc-radius-md);cursor:pointer;border:1px solid #0000;min-height:2.5rem;font-weight:600;transition:background-color .12s,border-color .12s,opacity .12s;display:inline-flex}.qc-button:disabled{opacity:.55;cursor:not-allowed}.qc-button-primary{background:var(--qc-color-primary);color:var(--qc-color-primary-contrast)}.qc-button-primary:hover:not(:disabled){background:var(--qc-color-primary-hover)}.qc-button-secondary{background:var(--qc-color-surface);border-color:var(--qc-color-border-strong);color:var(--qc-color-text)}.qc-button-secondary:hover:not(:disabled){background:var(--qc-color-surface-muted)}.qc-form-field{gap:var(--qc-space-1);margin-bottom:var(--qc-space-4);flex-direction:column;display:flex}.qc-form-field label{font-size:var(--qc-font-size-label);color:var(--qc-color-text-muted);font-weight:600}.qc-form-field input,.qc-form-field select,.qc-form-field textarea{padding:var(--qc-space-2) var(--qc-space-3);border:1px solid var(--qc-color-border-strong);border-radius:var(--qc-radius-md);background:var(--qc-color-surface);min-height:2.5rem}.qc-form-field input:focus-visible,.qc-form-field select:focus-visible,.qc-form-field textarea:focus-visible{border-color:var(--qc-color-primary)}.qc-form-field-hint{font-size:var(--qc-font-size-helper);color:var(--qc-color-text-faint);margin:0}.qc-form-field-error{font-size:var(--qc-font-size-helper);color:var(--qc-color-danger-text);margin:0;font-weight:600}form{flex-direction:column;display:flex}.qc-table{border:1px solid var(--qc-color-border);border-radius:var(--qc-radius-md);width:100%;font-size:var(--qc-font-size-body);overflow:hidden}.qc-table caption{text-align:left;font-size:var(--qc-font-size-helper);color:var(--qc-color-text-faint);padding:var(--qc-space-2) var(--qc-space-3)}.qc-table th,.qc-table td{text-align:left;padding:var(--qc-space-3);border-bottom:1px solid var(--qc-color-border)}.qc-table th{background:var(--qc-color-surface-muted);font-size:var(--qc-font-size-label);color:var(--qc-color-text-muted);font-weight:650}.qc-table tbody tr:last-child td{border-bottom:none}.qc-table tbody tr:hover td{background:var(--qc-color-surface-muted)}@media (max-width:640px){.qc-table{display:block;overflow-x:auto}}.qc-status-badge{align-items:center;gap:var(--qc-space-1);font-size:var(--qc-font-size-meta);padding:.15rem var(--qc-space-2);white-space:nowrap;border:1px solid #0000;border-radius:999px;font-weight:650;display:inline-flex}.qc-status-badge-neutral{background:var(--qc-color-neutral-bg);color:var(--qc-color-neutral-text);border-color:var(--qc-color-neutral-border)}.qc-status-badge-info{background:var(--qc-color-info-bg);color:var(--qc-color-info-text);border-color:var(--qc-color-info-border)}.qc-status-badge-success{background:var(--qc-color-success-bg);color:var(--qc-color-success-text);border-color:var(--qc-color-success-border)}.qc-status-badge-warning{background:var(--qc-color-warning-bg);color:var(--qc-color-warning-text);border-color:var(--qc-color-warning-border)}.qc-status-badge-danger{background:var(--qc-color-danger-bg);color:var(--qc-color-danger-text);border-color:var(--qc-color-danger-border)}.qc-status{align-items:center;gap:var(--qc-space-2);padding:var(--qc-space-3) var(--qc-space-4);border-radius:var(--qc-radius-md);font-size:var(--qc-font-size-body);margin-bottom:var(--qc-space-4);border:1px solid #0000;display:flex}.qc-status-loading{background:var(--qc-color-info-bg);color:var(--qc-color-info-text);border-color:var(--qc-color-info-border)}.qc-status-loading:before{content:"";border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:.9em;height:.9em;animation:.7s linear infinite qc-spin}@media (prefers-reduced-motion:reduce){.qc-status-loading:before{animation:none}}@keyframes qc-spin{to{transform:rotate(360deg)}}.qc-status-empty{background:var(--qc-color-neutral-bg);color:var(--qc-color-neutral-text);border-color:var(--qc-color-neutral-border)}.qc-status-error,.qc-status-unauthorized,.qc-status-network-unavailable{background:var(--qc-color-danger-bg);color:var(--qc-color-danger-text);border-color:var(--qc-color-danger-border);font-weight:500}.qc-empty-state{text-align:center;align-items:center;gap:var(--qc-space-2);padding:var(--qc-space-7) var(--qc-space-4);border:1px dashed var(--qc-color-border-strong);border-radius:var(--qc-radius-lg);background:var(--qc-color-surface);flex-direction:column;display:flex}.qc-empty-state-title{font-weight:650;font-size:var(--qc-font-size-card-title);color:var(--qc-color-text);margin:0}.qc-empty-state-description{color:var(--qc-color-text-muted);font-size:var(--qc-font-size-body);max-width:40ch;margin:0}.qc-empty-state-action{margin-top:var(--qc-space-2)}.qc-shell-header{background:var(--qc-color-surface);border-bottom:1px solid var(--qc-color-border);padding:var(--qc-space-3) var(--qc-space-5);justify-content:space-between;align-items:center;gap:var(--qc-space-4);flex-wrap:wrap;display:flex}.qc-admin-shell .qc-shell-header{background:var(--qc-color-admin-surface);border-color:var(--qc-color-admin-border);color:var(--qc-color-admin-text)}.qc-shell-brand{color:var(--qc-color-primary);font-weight:700;font-size:var(--qc-font-size-card-title);align-items:center;gap:var(--qc-space-2);display:flex}.qc-admin-shell .qc-shell-brand{color:var(--qc-color-admin-accent)}.qc-shell-badge{font-size:var(--qc-font-size-meta);padding:.1rem var(--qc-space-2);background:var(--qc-color-admin-accent);color:var(--qc-color-admin-bg);border-radius:999px;font-weight:650}.qc-shell-nav{gap:var(--qc-space-1);flex-wrap:wrap;display:flex}.qc-shell-nav a{padding:var(--qc-space-2) var(--qc-space-3);border-radius:var(--qc-radius-md);color:var(--qc-color-text-muted);font-size:var(--qc-font-size-label);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.qc-shell-nav a:hover{background:var(--qc-color-surface-muted);color:var(--qc-color-text)}.qc-shell-nav a[aria-current=page]{background:var(--qc-color-info-bg);color:var(--qc-color-info-text)}.qc-admin-shell .qc-shell-nav a{color:var(--qc-color-admin-text-muted)}.qc-admin-shell .qc-shell-nav a:hover{background:var(--qc-color-admin-bg);color:var(--qc-color-admin-text)}.qc-admin-shell .qc-shell-nav a[aria-current=page]{background:var(--qc-color-admin-accent);color:var(--qc-color-admin-bg)}.qc-shell-subnav{gap:var(--qc-space-1);margin-bottom:var(--qc-space-5);padding-bottom:var(--qc-space-3);border-bottom:1px solid var(--qc-color-border);flex-wrap:wrap;display:flex}.qc-shell-subnav a{padding:var(--qc-space-2) var(--qc-space-3);border-radius:var(--qc-radius-md);color:var(--qc-color-text-muted);font-size:var(--qc-font-size-label);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.qc-shell-subnav a:hover{background:var(--qc-color-surface-muted);color:var(--qc-color-text)}.qc-shell-subnav a[aria-current=page]{background:var(--qc-color-info-bg);color:var(--qc-color-info-text)}.qc-shell-context{align-items:center;gap:var(--qc-space-3);font-size:var(--qc-font-size-label);display:flex}.qc-shell-context-tenant{flex-direction:column;align-items:flex-end;line-height:1.3;display:flex}.qc-shell-context-tenant strong{font-size:var(--qc-font-size-body)}.qc-shell-context-tenant span{color:var(--qc-color-text-faint);font-size:var(--qc-font-size-meta)}.qc-admin-shell .qc-shell-context-tenant span{color:var(--qc-color-admin-text-muted)}.qc-shell-body{min-height:calc(100vh - 3.5rem)}.qc-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.qc-shell-role-switcher{align-items:flex-end;gap:var(--qc-space-1);flex-direction:column;display:flex}.qc-shell-role-switcher select{font:inherit;font-size:var(--qc-font-size-label);padding:var(--qc-space-1) var(--qc-space-2);border:1px solid var(--qc-color-border);border-radius:var(--qc-radius-sm);background:var(--qc-color-surface);color:var(--qc-color-text)}.qc-shell-role-switcher select:focus-visible{box-shadow:var(--qc-focus-ring);outline:none}.qc-card{background:var(--qc-color-surface);border:1px solid var(--qc-color-border);border-radius:var(--qc-radius-lg);padding:var(--qc-space-5);box-shadow:var(--qc-shadow-card);margin-bottom:var(--qc-space-5)}.qc-card>h2:first-child,.qc-card>h3:first-child{margin-top:0}.qc-engine-actions{gap:var(--qc-space-2);margin-top:var(--qc-space-4);flex-wrap:wrap;display:flex}.qc-engine-balance{gap:var(--qc-space-4);flex-direction:column;display:flex}.qc-engine-balance-sides{gap:var(--qc-space-4);flex-wrap:wrap;display:flex}.qc-engine-drag{gap:var(--qc-space-3);flex-direction:column;display:flex}.qc-engine-token-row{gap:var(--qc-space-2);flex-wrap:wrap;display:flex}
.scenePresentation{flex-wrap:wrap;align-items:center;gap:.75rem;max-width:100%;display:flex}.sceneAsset{max-width:100%;height:auto;display:block}.sceneAssetBackground{aspect-ratio:16/9;object-fit:contain;width:100%;max-width:640px}.sceneAssetCharacter{width:96px;max-width:30vw;height:auto}.sceneAssetFallback{aspect-ratio:16/9;background:var(--qc-theme-core-background,#fff);width:100%;max-width:640px;color:var(--qc-theme-core-foreground,#111);text-align:center;box-sizing:border-box;border:1px dashed;justify-content:center;align-items:center;padding:.5rem;font-size:.85rem;display:flex}@media (prefers-reduced-motion:reduce){.scenePresentation,.sceneAsset,.sceneAssetBackground,.sceneAssetCharacter{transition:none!important;animation:none!important}}@media (max-width:480px){.scenePresentation{flex-direction:column;align-items:stretch}.sceneAssetCharacter{align-self:center;width:72px}}@media (orientation:landscape) and (max-height:480px){.sceneAssetBackground,.sceneAssetFallback{max-width:320px}}
