@font-face{
    font-family: 'Vazirmatn';
    src: url('assets/fonts/Vazirmatn-Regular.woff2') format('woff2');
    font-weight: 400; font-style: normal; font-display: swap;
  }

@font-face{
    font-family: 'Vazirmatn';
    src: url('assets/fonts/Vazirmatn-Medium.woff2') format('woff2');
    font-weight: 500; font-style: normal; font-display: swap;
  }

@font-face{
    font-family: 'Vazirmatn';
    src: url('assets/fonts/Vazirmatn-SemiBold.woff2') format('woff2');
    font-weight: 600; font-style: normal; font-display: swap;
  }

@font-face{
    font-family: 'Vazirmatn';
    src: url('assets/fonts/Vazirmatn-Bold.woff2') format('woff2');
    font-weight: 700; font-style: normal; font-display: swap;
  }

@font-face{
    font-family: 'IBM Plex Sans';
    src: url('assets/fonts/IBMPlexSans-Regular.woff2') format('woff2');
    font-weight: 400; font-style: normal; font-display: swap;
  }

@font-face{
    font-family: 'IBM Plex Sans';
    src: url('assets/fonts/IBMPlexSans-Bold.woff2') format('woff2');
    font-weight: 700; font-style: normal; font-display: swap;
  }

:root{--error:#E17B6B}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:'Vazirmatn', Tahoma, sans-serif}
.wrap{margin:0 auto}
.tab-btn{flex:1;border:none;background:transparent;font-family:inherit;font-size:14px;cursor:pointer}
.panel{display:none}
.panel.active{display:block}
h2{font-weight:600}
.field{display:flex;flex-direction:column}
.field label{color:var(--ink-soft)}
.field input{border:1px solid var(--border);font-size:14px;font-family:inherit;outline:none}
.field textarea{border:1px solid var(--border);font-size:14px;font-family:inherit;outline:none}
.btn{color:#fff;font-family:inherit;font-size:14px;cursor:pointer}
.btn.secondary{border:1px solid var(--border)}
video{width:100%;display:none}
video.active{display:block}
.dot{width:8px;height:8px;border-radius:50%}
.react-grid{display:grid}
.react-btn{border:1px solid var(--border);font-family:inherit;font-size:14px;cursor:pointer}
.join-screen{text-align:center}
table{width:100%}
th{text-align:right}
td{text-align:right}
.empty{text-align:center;color:var(--ink-soft);font-size:13px}
.time-link{border:none;font:inherit;font-weight:600;cursor:pointer}
.toast{position:fixed;left:50%;font-size:13px;opacity:0;pointer-events:none}
.toast.show{opacity:1}
:root{--card:#fff;--ink:#172033;--ink-soft:#687189;--accent:#496fd8;--accent-dark:#3458bd;--accent-soft:#edf2ff;--shadow:0 18px 50px rgba(27,39,70,.09), 0 2px 8px rgba(27,39,70,.04)}
html{-webkit-text-size-adjust:100%}
body{line-height:1.65}
button{font:inherit}
input{font:inherit}
textarea{font:inherit}
button{-webkit-tap-highlight-color:transparent}
.wrap{max-width:none}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px;border-radius:16px;border:1px solid rgba(210,217,231,.8)}
.tab-btn{min-height:46px;padding:10px 14px;border-radius:11px;font-weight:600;transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .12s ease}
.tab-btn:active{transform:scale(.985)}
.panel{border:1px solid rgba(227,232,241,.92)}
.panel.active{animation:panel-in .22s ease both}
h2{margin:0 0 20px;font-size:clamp(18px,2.5vw,22px);line-height:1.4}
.field{gap:7px;margin-bottom:18px}
.field label{font-size:13px;font-weight:600}
.field input{width:100%;min-height:48px;padding:11px 14px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.field textarea{width:100%;padding:11px 14px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.field textarea{min-height:96px;resize:vertical}
.field input:hover{border-color:#b9c4d9}
.field textarea:hover{border-color:#b9c4d9}
.field input:focus{background:#fff}
.field textarea:focus{background:#fff}
input[type="file"]{padding:7px;cursor:pointer}
input[type="file"]::file-selector-button{margin-left:12px;padding:9px 14px;border:0;border-radius:9px;color:var(--accent-dark);background:var(--accent-soft);font-family:inherit;font-weight:600;cursor:pointer}
.btn{min-height:46px;padding:11px 20px;border:1px solid transparent;font-weight:700;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:scale(.985)}
.btn:disabled{opacity:.55;box-shadow:none;cursor:not-allowed;transform:none}
.btn.secondary{box-shadow:none}
video{margin:2px 0 20px;background:#0d111b}
.status-row{margin-bottom:20px}
.dot{flex:0 0 auto;background:#a7afbf;box-shadow:0 0 0 4px rgba(167,175,191,.12)}
.dot.live{background:var(--success);box-shadow:0 0 0 4px rgba(34,160,107,.13)}
#sessionInfo{gap:9px;padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:#f8faff;line-height:1.6}
#sessionInfo span{color:var(--ink);font-weight:600;word-break:break-word}
#sessionInfo code{padding:2px 7px;border-radius:6px;color:var(--accent-dark);background:var(--accent-soft);font-family:'Vazirmatn',Tahoma,sans-serif}
.react-grid{margin-bottom:20px}
.react-btn{padding:14px 10px;border-radius:14px;color:var(--ink);font-weight:600;transition:border-color .16s ease,color .16s ease,background .16s ease,box-shadow .16s ease,transform .12s ease}
.react-btn:hover{background:var(--accent-soft)}
.react-btn[data-selected="true"]{background:var(--accent-soft)}
.react-btn:active{transform:scale(.975)}
.join-screen{margin:0 auto}
.join-screen .field{text-align:right}
.join-screen .btn{min-width:130px}
#reportContent{max-width:100%;overflow-x:auto}
table{border-spacing:0;border-collapse:separate;font-size:13px}
th{padding:14px 15px;border-bottom:1px solid var(--border);vertical-align:top}
td{padding:14px 15px;border-bottom:1px solid var(--border);vertical-align:top}
th{font-size:12px;font-weight:700;white-space:nowrap}
th:first-child{border-radius:0 12px 0 0}
th:last-child{border-radius:12px 0 0 0}
tbody tr{transition:background .15s ease}
tbody tr:hover{background:#fafbff}
tbody tr:last-child td{border-bottom:0}
.empty{padding:54px 20px;border-radius:14px}
.time-link{padding:5px 10px;border-radius:8px;direction:ltr;transition:color .15s ease,background .15s ease,transform .12s ease}
.time-link:hover{color:#fff;background:var(--accent);text-decoration:none}
.time-link:active{transform:scale(.96)}
.toast{z-index:20;bottom:max(22px,env(safe-area-inset-bottom));max-width:calc(100vw - 32px);padding:11px 18px;border:1px solid rgba(255,255,255,.12);border-radius:11px;text-align:center;transform:translate(-50%,12px);backdrop-filter:blur(10px);transition:opacity .2s ease,transform .2s ease}
.toast.show{transform:translate(-50%,0)}
:focus-visible{outline:3px solid rgba(73,111,216,.32);outline-offset:3px}
:root{--bg:#F7F5F0;--surface:#FFFFFF;--surface-soft:#FBFAF7;--text:#24211D;--text-muted:#746E65;--border:#E8E3D9;--primary:#6F7EDB;--primary-hover:#5D6CC8;--primary-soft:#EEF0FF;--success:#4F9D7A;--success-soft:#EAF6F0;--warning:#D69A45;--warning-soft:#FFF5E5;--danger:#D87575;--danger-soft:#FCEDED;--purple:#8876C5;--purple-soft:#F2EEFB;--rose:#C97D8D;--rose-soft:#FBEFF2;--radius-lg:22px;--radius-md:14px;--card-shadow:0 1px 2px rgba(30,25,20,.04),0 10px 30px rgba(30,25,20,.06)}
body{color:var(--text);background:var(--bg);padding:clamp(20px,4vw,48px) 18px 28px}
.wrap{width:min(100%,1160px)}
.status-row{display:inline-flex;align-items:center;gap:8px;width:max-content;min-height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);font-size:12px;font-weight:600}
.report-status{display:inline-flex;align-items:center;gap:8px;width:max-content;min-height:36px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);background:var(--surface);font-size:12px;font-weight:600}
.report-status .dot{width:8px;height:8px;border-radius:50%;background:#AAA39A}
.report-status.finished .dot{background:var(--primary)}
.tabs{margin-bottom:24px;border-color:var(--border);background:var(--surface);box-shadow:var(--card-shadow);backdrop-filter:none}
.tab-btn{color:var(--text-muted)}
.tab-btn:hover{color:var(--primary-hover);background:var(--surface-soft)}
.tab-btn.active{color:var(--primary-hover);background:var(--primary-soft);box-shadow:none}
.panel{padding:clamp(22px,4vw,32px);border-color:var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--card-shadow)}
.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.panel-heading h2{margin:0 0 14px;font-size:clamp(20px,2.5vw,24px)}
.panel-heading p{max-width:650px;margin:0;color:var(--text-muted);font-size:13px}
.status-row{margin:0;background:var(--surface-soft)}
.upload-zone{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-height:220px;margin-bottom:24px;padding:28px;border:1.5px dashed #D8D1C4;border-radius:18px;background:var(--surface-soft);text-align:center}
.upload-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;color:var(--primary-hover);background:var(--primary-soft);font-size:24px}
.empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;color:var(--primary-hover);background:var(--primary-soft);font-size:24px}
.upload-icon{border:1px solid rgba(111,126,219,.24);box-shadow:inset 0 0 0 1px rgba(255,255,255,.72)}
.upload-icon::before{content:'';width:15px;height:18px;margin-left:2px;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%)}
.upload-zone strong{font-size:16px}
.upload-zone p{max-width:480px;margin:0;color:var(--text-muted);font-size:12px}
#videoFile{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.file-trigger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:12px;color:#fff;background:var(--primary);font-weight:700;cursor:pointer;transition:background .15s ease,transform .15s ease}
.file-trigger:hover{background:var(--primary-hover);transform:translateY(-1px)}
video{aspect-ratio:16/9;max-height:none;object-fit:contain;margin-bottom:24px;border-radius:18px;box-shadow:none}
video::-webkit-media-controls-fullscreen-button{display:none!important}
.video-shell{position:relative;display:none;width:100%;margin-bottom:24px;border-radius:18px;isolation:isolate}
.video-shell.active{display:block}
.video-shell video{position:relative;z-index:1;margin-bottom:0}
.video-overlay-controls{position:absolute;z-index:3;right:14px;bottom:54px;display:flex;opacity:1;pointer-events:auto;transition:opacity .22s ease}
.video-shell.controls-hidden .video-overlay-controls{opacity:0;pointer-events:none}
.custom-fullscreen-btn{display:grid;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:10px;color:#fff;background:rgba(12,14,18,.68);box-shadow:0 4px 14px rgba(0,0,0,.2);cursor:pointer;place-items:center;backdrop-filter:blur(6px)}
.custom-fullscreen-btn:hover{background:rgba(12,14,18,.86)}
.custom-fullscreen-btn:focus-visible{outline:3px solid rgba(238,240,255,.9);outline-offset:2px}
.custom-fullscreen-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.fullscreen-exit-icon{display:none}
.video-shell.is-fullscreen .fullscreen-enter-icon{display:none}
.video-shell.is-fullscreen .fullscreen-exit-icon{display:block}
.video-shell:fullscreen{display:grid;width:100vw;height:100vh;margin:0;border-radius:0;background:#000;place-items:center}
.video-shell:-webkit-full-screen{display:grid;width:100vw;height:100vh;margin:0;border-radius:0;background:#000;place-items:center}
.video-shell:fullscreen video{width:100%;height:100%;max-height:100vh;border-radius:0;object-fit:contain}
.video-shell:-webkit-full-screen video{width:100%;height:100%;max-height:100vh;border-radius:0;object-fit:contain}
.video-shell:fullscreen .edge-light{border-radius:0}
.video-shell:-webkit-full-screen .edge-light{border-radius:0}
.video-shell:fullscreen .video-overlay-controls{right:18px;bottom:64px}
.video-shell:-webkit-full-screen .video-overlay-controls{right:18px;bottom:64px}
.session-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px!important;padding:0!important;border:0!important;background:transparent!important}
.info-card{min-width:0;padding:15px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface-soft)}
.info-card small{display:block;margin-bottom:4px;color:var(--text-muted);font-size:11px}
.info-card strong{display:block;overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.share-box{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr) auto;gap:18px;margin-bottom:24px;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}
.share-box label{display:block;margin-bottom:5px;font-size:13px;font-weight:700}
.share-value{display:block;color:var(--primary-hover);font-size:13px;line-height:1.7;overflow-wrap:anywhere;word-break:break-word;white-space:normal;direction:ltr;text-align:left;user-select:text}
.share-value:hover{color:var(--primary);text-decoration:underline}
.share-help{grid-column:1/-1;margin:0;color:var(--text-muted);font-size:11px}
.url-debug{grid-column:2/-1;margin:0;padding:8px 10px;border-radius:9px;color:var(--text-muted);background:#F4F1EA;font-family:'IBM Plex Sans',Arial,sans-serif;font-size:10px;direction:ltr;overflow-wrap:anywhere;user-select:text}
.qr-wrap{grid-row:1/4;display:grid;place-items:center;align-self:center;width:100%;min-height:260px}
.qr-frame{display:grid;place-items:center;width:min(100%,260px);aspect-ratio:1;padding:10px;border:1px solid var(--border);border-radius:16px;background:#fff}
.qr-wrap img{display:none;width:100%;height:100%;border-radius:8px;object-fit:contain}
.qr-wrap img.loaded{display:block}
.qr-state{color:var(--text-muted);font-size:12px;text-align:center}
.qr-state.error{color:var(--danger)}
.qr-retry{display:none;margin-top:10px}
.qr-retry.visible{display:inline-flex}
.host-actions{display:flex;justify-content:flex-end;gap:12px}
.btn{border-radius:12px;background:var(--primary);box-shadow:none}
.btn:hover{background:var(--primary-hover);box-shadow:none}
.btn.secondary{color:var(--danger);border-color:#F0D4D4;background:var(--danger-soft)}
.btn.secondary:hover{color:#B85F5F;border-color:#E8BEBE;background:#F9E3E3}
.btn.ghost{color:var(--text);border-color:var(--border);background:var(--surface)}
.btn.ghost:hover{color:var(--primary-hover);border-color:#CFCFF0;background:var(--primary-soft)}
.join-screen{width:min(100%,520px);padding:30px 0}
.join-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 22px;border-radius:18px;color:var(--primary-hover);background:var(--primary-soft);font-size:26px}
.join-screen h2{margin:0 0 12px}
.join-screen .intro{max-width:430px;margin:0 auto 26px;color:var(--text-muted);font-size:13px}
.join-screen .field{margin-bottom:20px}
#studentReactScreen .panel-header{margin-bottom:28px}
#studentReactScreen .react-grid{margin-bottom:24px}
#studentReactScreen .field{margin-bottom:20px}
.participant-line{color:var(--text-muted);font-size:12px}
.participant-line strong{color:var(--text)}
.react-grid{grid-template-columns:repeat(4,1fr);gap:14px}
.react-btn{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;min-height:112px;border-width:1.5px;border-color:var(--border);background:var(--surface-soft)}
.react-btn .emoji{font-size:24px;line-height:1}
.react-btn[data-reaction="اضطراب"]{background:var(--warning-soft)}
.react-btn[data-reaction="همدلی"]{background:#EDF5FB}
.react-btn[data-reaction="تعجب"]{background:var(--purple-soft)}
.react-btn[data-reaction="ناراحتی"]{background:var(--rose-soft)}
.react-btn:hover{border-color:var(--primary);color:var(--text);box-shadow:none}
.react-btn[data-selected="true"]{border-color:var(--primary)!important;color:var(--primary-hover);box-shadow:0 0 0 3px rgba(111,126,219,.12)}
.react-btn[data-selected="true"]::after{content:'انتخاب شد';color:var(--primary-hover);font-size:10px;font-weight:700}
.react-btn:disabled{opacity:.48;cursor:not-allowed;transform:none}
.field input{border-color:var(--border);border-radius:13px;color:var(--text);background:var(--surface-soft)}
.field textarea{border-color:var(--border);border-radius:13px;color:var(--text);background:var(--surface-soft)}
.filter-select{border-color:var(--border);border-radius:13px;color:var(--text);background:var(--surface-soft)}
.field input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(111,126,219,.12)}
.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(111,126,219,.12)}
.filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(111,126,219,.12)}
.report-head-side{display:flex;align-items:center;gap:10px}
#panel-report .panel-header{margin-bottom:28px}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}
.summary-card{padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--surface-soft)}
.summary-card span{display:block;margin-bottom:6px;color:var(--text-muted);font-size:11px}
.summary-card strong{display:block;font-size:20px;line-height:1.3}
.filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin-bottom:24px}
.filter-field{display:flex;flex-direction:column;gap:6px}
.filter-field label{color:var(--text-muted);font-size:11px;font-weight:600}
.filter-select{min-height:44px;padding:8px 12px;outline:none;font-family:inherit}
.filter-row .btn{align-self:end;min-height:44px}
#reportContent{overflow:visible;border:1px solid var(--border);border-radius:16px}
table{min-width:0}
th{color:var(--text-muted);background:var(--surface-soft)}
.reaction-badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700}
.reaction-badge.anxiety{color:#A96F20;background:var(--warning-soft)}
.reaction-badge.empathy{color:#527FA3;background:#EDF5FB}
.reaction-badge.surprise{color:#705EAC;background:var(--purple-soft)}
.reaction-badge.sadness{color:#A85F70;background:var(--rose-soft)}
.time-link{display:inline-flex;align-items:center;gap:5px;color:var(--primary-hover);background:var(--primary-soft)}
.empty{display:flex;align-items:center;flex-direction:column;gap:10px;border:0;background:var(--surface)}
.empty strong{color:var(--text);font-size:15px}
.empty p{margin:0;color:var(--text-muted);font-size:12px}
.toast{color:#fff;background:rgba(36,33,29,.94);box-shadow:0 10px 28px rgba(30,25,20,.16)}
.toast.success{background:rgba(55,122,91,.96)}
.toast.error{background:rgba(174,83,83,.96)}
.edge-light{--edge-color:111,126,219;--glow-depth:clamp(56px,7vw,78px);--corner-depth:clamp(74px,10vw,106px);position:absolute;z-index:2;inset:0;overflow:hidden;border-radius:18px;pointer-events:none;contain:layout style}
.edge-light::before{content:'';position:absolute;border-radius:inherit;pointer-events:none;opacity:0;will-change:opacity}
.edge-light::after{content:'';position:absolute;border-radius:inherit;pointer-events:none;opacity:0;will-change:opacity}
.edge-light::before{inset:0;background:linear-gradient(to bottom,rgba(var(--edge-color),.22) 0,rgba(var(--edge-color),.08) 34%,rgba(var(--edge-color),0) 100%) top/100% var(--glow-depth) no-repeat,
      linear-gradient(to top,rgba(var(--edge-color),.22) 0,rgba(var(--edge-color),.08) 34%,rgba(var(--edge-color),0) 100%) bottom/100% var(--glow-depth) no-repeat,
      linear-gradient(to right,rgba(var(--edge-color),.2) 0,rgba(var(--edge-color),.07) 34%,rgba(var(--edge-color),0) 100%) left/var(--glow-depth) 100% no-repeat,
      linear-gradient(to left,rgba(var(--edge-color),.2) 0,rgba(var(--edge-color),.07) 34%,rgba(var(--edge-color),0) 100%) right/var(--glow-depth) 100% no-repeat}
.edge-light::after{inset:0;background:radial-gradient(circle at top left,rgba(var(--edge-color),.14) 0,rgba(var(--edge-color),.055) 38%,rgba(var(--edge-color),0) 72%) top left/var(--corner-depth) var(--corner-depth) no-repeat,
      radial-gradient(circle at top right,rgba(var(--edge-color),.14) 0,rgba(var(--edge-color),.055) 38%,rgba(var(--edge-color),0) 72%) top right/var(--corner-depth) var(--corner-depth) no-repeat,
      radial-gradient(circle at bottom right,rgba(var(--edge-color),.14) 0,rgba(var(--edge-color),.055) 38%,rgba(var(--edge-color),0) 72%) bottom right/var(--corner-depth) var(--corner-depth) no-repeat,
      radial-gradient(circle at bottom left,rgba(var(--edge-color),.14) 0,rgba(var(--edge-color),.055) 38%,rgba(var(--edge-color),0) 72%) bottom left/var(--corner-depth) var(--corner-depth) no-repeat}
.edge-light.active::before{animation:ambient-edge-flow 1.35s ease-out both}
.edge-light.active::after{animation:ambient-edge-flow 1.35s ease-out both}

@keyframes panel-in{ from{ opacity: 0; transform: translateY(6px); } to{ opacity: 1; transform: none; } }

@keyframes pulse{ 50%{ box-shadow: 0 0 0 7px rgba(34,160,107,.06); } }

@keyframes ambient-edge-flow{
    0%{ opacity:0; }
    20%{ opacity:.72; }
    62%{ opacity:.58; }
    100%{ opacity:0; }
  }

@keyframes ambient-edge-reduced{
    0%,100%{ opacity:0; }
    25%,60%{ opacity:.42; }
  }

@media (max-width:720px){body{padding-inline:14px}
.panel{border-radius:18px}
.react-grid{grid-template-columns:repeat(2,1fr)}}

@media (max-width:480px){body{padding:14px 10px 22px;background:linear-gradient(180deg,#eef3ff,var(--bg) 14rem)}
.tabs{position:sticky;top:8px;z-index:10;margin-bottom:12px;padding:4px;border-radius:13px}
.tab-btn{min-height:42px;padding-inline:8px;border-radius:9px;font-size:13px}
.panel{padding:20px 16px;border-radius:16px}
h2{margin-bottom:16px;font-size:18px}
.status-row{margin-bottom:16px}
.btn{width:100%}
.react-btn{min-height:66px}
#sessionInfo{padding:14px}
table{min-width:570px}
th{padding:12px}
td{padding:12px}}

@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
*::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media(max-width:820px){.summary-grid{grid-template-columns:repeat(2,1fr)}
.session-info-grid{grid-template-columns:1fr 1fr}
.react-grid{grid-template-columns:repeat(2,1fr)}}

@media(max-width:600px){body{padding:16px 10px 22px}
.panel-header{flex-direction:column;gap:12px}
.panel{padding:19px 16px}
.session-info-grid{grid-template-columns:1fr}
.summary-grid{grid-template-columns:1fr}
.filter-row{grid-template-columns:1fr}
.share-box{grid-template-columns:1fr}
.qr-wrap{grid-row:auto}
.share-box .btn{grid-column:1}
.share-help{grid-column:1}
.url-debug{grid-column:1}
.host-actions{width:100%}
.host-actions .btn{width:100%}
.react-btn{min-height:96px}
#reportContent{border:0}
table{display:block;width:100%}
thead{display:block}
tbody{width:100%}
tr{display:block;width:100%}
th{display:block;width:100%}
td{display:block;width:100%}
thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
tbody{display:grid;gap:12px}
tbody tr{padding:14px;border:1px solid var(--border);border-radius:15px;background:var(--surface)}
tbody td{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
tbody td::before{content:attr(data-label);color:var(--text-muted);font-size:11px;font-weight:700}
tbody td:last-child{border-bottom:0}}

@media(prefers-reduced-motion:reduce){.video-overlay-controls{transition:none}
.edge-light.active::before{animation:ambient-edge-reduced .7s ease-out both!important}
.edge-light.active::after{animation:ambient-edge-reduced .7s ease-out both!important}}

/* Utility + host login form (Beta 0.4.0) */
.hidden{display:none}
.login-error{color:var(--danger);font-size:12px;margin:0 0 12px}
