:root{color-scheme:light;font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;background:radial-gradient(circle at top left,#eff9ff 0%,transparent 35%),radial-gradient(circle at bottom right,#f7f4ff 0%,transparent 30%),linear-gradient(160deg,#eef3f9,#fcfdff);color:#142033;line-height:1.5;font-weight:400}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{min-height:100vh}a{color:inherit}button,input{font:inherit}#app{min-height:100vh}.page{min-height:100vh;padding:24px}.page--center{display:flex;align-items:center;justify-content:center}.page__grid{display:grid;gap:20px;max-width:1080px;margin:0 auto}.page__grid--scan,.page__grid--view{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr)}.panel{border:1px solid rgba(20,32,51,.08);border-radius:24px;background:#ffffffe0;box-shadow:0 24px 60px #14203314;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.panel--hero{padding:32px}.panel--error{padding:28px;max-width:560px;border-color:#be34553d;background:#fff5f7f0}.panel--status,.panel--surface{padding:24px}.hero__eyebrow{margin:0 0 12px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:#486284}.hero__title{margin:0;font-size:clamp(32px,5vw,56px);line-height:1.08}.hero__desc{max-width:760px;margin:18px 0 0;color:#45607f}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:14px;cursor:pointer;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease}.btn:hover{transform:translateY(-1px)}.btn--primary{color:#fff;background:linear-gradient(135deg,#0d7dd8,#2446f0);box-shadow:0 16px 28px #2446f03d}.btn--secondary{color:#17304b;background:#152a4714}.code-card{display:grid;gap:14px;margin-top:24px;padding:20px;border-radius:18px;background:#0d7dd80f}.code-card__room{display:inline-flex;width:fit-content;padding:8px 12px;border-radius:999px;font-size:28px;font-weight:700;letter-spacing:.2em;background:#fff}.link-list{display:grid;gap:12px}.link-list__item{display:grid;gap:6px}.link-list__label{font-size:14px;color:#54708f}.link-list__value{display:block;overflow-wrap:anywhere;padding:12px 14px;border-radius:14px;background:#ffffffe6}.status-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.status-list li{display:grid;gap:4px;padding-bottom:12px;border-bottom:1px solid rgba(20,32,51,.08)}.status-list li:last-child{padding-bottom:0;border-bottom:0}.status-list__label{font-size:14px;color:#597391}.status-list__value{font-size:16px;font-weight:600;overflow-wrap:anywhere}.status-chip{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;font-size:13px;font-weight:700}.status-chip--idle{background:#5973911f;color:#4f6a87}.status-chip--ok{background:#21ab6e24;color:#0d8f57}.status-chip--warn{background:#f09b202e;color:#9d6200}.status-chip--error{background:#be345524;color:#b63455}.video-shell{position:relative;overflow:hidden;min-height:420px;border-radius:24px;background:linear-gradient(180deg,#0913222e,#09132266),#0d1522}.video-shell video{display:block;width:100%;height:100%;min-height:420px;object-fit:cover}.video-shell__overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.video-shell__frame{width:min(72vw,360px);aspect-ratio:1;border:4px solid rgba(255,255,255,.9);border-radius:32px;box-shadow:0 0 0 999px #0d15223d}.qr-shell{position:relative;display:grid;place-items:center;min-height:72vh;border-radius:28px;background:#fff;overflow:hidden}.qr-shell canvas{width:min(86vw,720px);height:auto;max-height:80vh;background:#fff}.qr-shell__fallback{max-width:min(86vw,720px);padding:28px;border-radius:24px;text-align:center;background:#f4f8fcf5}.qr-shell__fallback pre{white-space:pre-wrap;word-break:break-all}.qr-shell__stale{position:absolute;inset:auto 20px 20px;padding:12px 16px;border-radius:16px;color:#7a4800;background:#ffe7bef5;box-shadow:0 12px 24px #7a480026}.toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}@media(max-width:920px){.page{padding:16px}.page__grid--scan,.page__grid--view{grid-template-columns:1fr}.video-shell,.video-shell video{min-height:320px}.qr-shell{min-height:58vh}}
