:root{
  --bg:#1c2126;
  --bg2:#307267;
  --panel:#1c2126;
  --panel2:#0f1624;
  --muted:#93b8ec;
  --muted2:#c874b6;
  --minor1:#93b8ec;
  --minor2:#c874b6;
  --minor3:#b37d32;
  --text:#b8e7ff;
  --panel-header-bg:#307267;
  --panel-header-bg2:#1c2126;
  --panel-header-text:#e5bc76;
  --nav-bg1:#36368e;
  --nav-bg2:#368779;
  --window-bg1:#1c2126;
  --window-bg2:#307267;
  --accent:#93b8ec;
  --danger:#ff5d5d;
  --line:rgba(255,255,255,.08);
  --shadow: 0 10px 35px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: linear-gradient(180deg, var(--nav-bg2) 0%, var(--window-bg1) 120px, var(--window-bg1) 100%);
  color:var(--text);
}

#teacherApp{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
#studentApp{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
#teacherApp.hidden,
#studentApp.hidden,
#launchPage.hidden,
#accessGatePage.hidden{
  display:none !important;
}
#teacherApp:not(.hidden),
#studentApp:not(.hidden){
  display:flex;
}
#launchPage{
  min-height:100vh;
  display:block;
  padding:0;
}
#classSelectorPage{
  min-height:100vh;
}
.launch-page{
  background: linear-gradient(180deg, var(--nav-bg2) 0%, var(--window-bg1) 120px, var(--window-bg1) 100%);
}
.access-gate-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at 20% 20%, rgba(106,169,255,.16), transparent 32%),
    radial-gradient(circle at 80% 10%, rgba(106,255,210,.12), transparent 30%),
    linear-gradient(180deg, var(--nav-bg2) 0%, var(--window-bg1) 120px, var(--window-bg1) 100%);
}
.launch-shell{
  width:100%;
  min-height:100vh;
  display:grid;
  grid-template-rows:auto minmax(260px, 38vh) minmax(440px, 1fr);
  gap:14px;
  align-items:stretch;
  padding:10px 0 18px;
}
.launch-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 14px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--nav-bg1), var(--nav-bg2));
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.launch-wordmark{
  color:var(--panel-header-text);
  font-size:22px;
  font-weight:950;
  letter-spacing:0;
}
.launch-topbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.launch-login-open{
  min-width:92px;
}
.launch-teacher-window,
.launch-student-window{
  width:100%;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(18,26,41,.97), rgba(12,16,24,.94));
  box-shadow: var(--shadow);
  overflow:hidden;
}
.launch-teacher-window{
  pointer-events:none;
  position:relative;
  display:block;
  min-height:0;
}
.launch-teacher-canvas{
  height:100%;
  min-height:0;
  padding:0;
  background:var(--window-bg1);
}
.launch-real-preview{
  position:relative;
  width:100%;
  height:100%;
  min-height:110px;
  overflow:hidden;
  background:rgba(12,16,24,.9);
}
.launch-real-preview-slice{
  min-height:190px;
}
.launch-preview-map{
  position:relative;
  width:100%;
  height:100%;
  min-height:inherit;
  overflow:hidden;
}
.launch-preview-bg{
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
  background-color:rgba(12,16,24,.94);
}
.launch-preview-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(12,16,24,.36), transparent 24%, transparent 76%, rgba(12,16,24,.30));
  pointer-events:none;
}
.launch-preview-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.launch-preview-edge{
  stroke:rgba(229,188,118,.86);
  stroke-width:4;
  stroke-linecap:round;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.45));
}
.launch-preview-edge.choice{
  stroke:rgba(147,184,236,.92);
}
.launch-preview-edge.blocked{
  stroke:rgba(255,93,93,.86);
}
.launch-preview-node{
  position:absolute;
  z-index:3;
  width:18px;
  height:18px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.88);
  background:rgba(28,33,38,.98);
  box-shadow:0 0 0 6px rgba(147,184,236,.16), 0 8px 18px rgba(0,0,0,.4);
  transform:translate(-50%, -50%);
}
.launch-preview-node.launch-node-token{
  width:var(--node-size);
  height:var(--node-size);
  padding:0;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:2.2px solid rgba(255,255,255,.25);
  background:rgba(20,26,40,.78);
  box-shadow:0 0 0 7px rgba(147,184,236,.14), 0 12px 26px rgba(0,0,0,.44);
  overflow:visible;
  appearance:none;
  font:inherit;
}
.launch-preview-node.launch-node-token.teacher{
  border-color:rgba(38,49,66,.95);
}
.launch-preview-node.launch-node-token.clickable{
  cursor:pointer;
}
.launch-node-art{
  position:absolute;
  inset:4px;
  overflow:hidden;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 36% 28%, rgba(255,255,255,.24), transparent 28%),
    linear-gradient(135deg, rgba(42,58,102,.98), rgba(18,26,41,.98));
}
.launch-node-art img{
  position:absolute;
  left:calc(50% + (var(--asset-x, 0) * 18%));
  top:calc(50% + (var(--asset-y, 0) * 18%));
  width:calc(100% * var(--asset-scale, 1));
  height:calc(100% * var(--asset-scale, 1));
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  transform:translate(-50%, -50%);
}
.launch-node-default-art{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.68);
  font-size:calc(var(--node-size) * .34);
  font-weight:950;
  background:
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.18), transparent 28%),
    linear-gradient(135deg, rgba(42,58,102,.98), rgba(20,26,40,.98));
}
.launch-preview-node.clickable{
  cursor:pointer;
  pointer-events:auto;
}
.launch-preview-node.clickable:hover,
.launch-preview-node.selected{
  border-color:#fff;
  background:var(--panel-header-text);
  box-shadow:0 0 0 8px rgba(229,188,118,.24), 0 10px 20px rgba(0,0,0,.42);
}
.launch-preview-node.start{
  box-shadow:0 0 0 6px rgba(76,211,142,.18), 0 8px 18px rgba(0,0,0,.4);
}
.launch-preview-node.end{
  box-shadow:0 0 0 6px rgba(229,188,118,.18), 0 8px 18px rgba(0,0,0,.4);
}
.launch-preview-label{
  position:absolute;
  z-index:4;
  max-width:160px;
  padding:4px 7px;
  border-radius:6px;
  background:rgba(12,16,24,.78);
  color:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1.1;
  transform:translate(-50%, calc(-100% - 14px));
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.launch-preview-label.launch-node-title{
  transform:translate(-50%, 0);
  background:rgba(12,16,24,.72);
  color:rgba(245,248,252,.96);
}
.launch-node-descriptor{
  position:absolute;
  z-index:4;
  min-width:92px;
  max-width:190px;
  display:grid;
  gap:1px;
  justify-items:center;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:8px;
  background:var(--descriptor-bg, #263142);
  color:var(--descriptor-color, #f5f8fc);
  box-shadow:0 8px 18px rgba(0,0,0,.38);
  transform:translate(-50%, 0);
  text-align:center;
  line-height:1.08;
  pointer-events:none;
}
.launch-node-descriptor span{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  font-weight:850;
}
.launch-node-descriptor b{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  font-weight:800;
  opacity:.82;
}
.launch-node-status{
  position:absolute;
  z-index:4;
  min-width:84px;
  min-height:22px;
  display:inline-grid;
  place-items:center;
  padding:3px 8px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  background:rgba(255,255,255,.04);
  color:rgba(200,210,225,.9);
  transform:translate(-50%, 0);
  font-size:11px;
  font-weight:850;
  pointer-events:none;
}
.launch-node-status.teacher{
  border-style:dashed;
  color:rgba(255,255,255,.72);
}
.launch-teacher-statusbar{
  z-index:8;
}
.launch-teacher-help{
  z-index:8;
  right:10px;
  top:10px;
}
.launch-teacher-map-label{
  position:absolute;
  left:12px;
  top:10px;
  z-index:8;
  max-width:min(520px, calc(100% - 24px));
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(11,15,23,.72);
  color:var(--panel-header-text);
  font-size:12px;
  font-weight:900;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.launch-preview-loading,
.launch-preview-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:16px;
  color:var(--muted);
  text-align:center;
  font-weight:750;
}
.launch-student-window{
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:440px;
}
.launch-demo-header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-bottom:1px solid var(--line);
  background:rgba(28,33,38,.84);
  color:var(--panel-header-text);
  font-weight:900;
}
.launch-demo-header span:last-child{
  color:var(--muted);
  font-size:12px;
  align-self:center;
}
.launch-demo-stage{
  min-height:0;
  display:block;
  height:100%;
}
.launch-student-preview-map{
  height:100%;
  min-height:0;
  cursor:grab;
  touch-action:none;
}
.launch-student-preview-map:active{
  cursor:grabbing;
}
.launch-demo-details{
  display:grid;
  align-content:start;
  gap:12px;
  padding:16px;
  background:rgba(28,33,38,.74);
  overflow:auto;
}
.launch-public-student-shell{
  width:100%;
  height:100%;
}
.launch-public-student-shell .student-quest-wrap{
  min-height:360px;
}
.launch-student-node-modal{
  display:flex;
}
.launch-student-node-card{
  width:min(760px, 94vw);
}
.student-node-preview-note{
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.05);
  color:var(--text);
  line-height:1.45;
}
.launch-demo-detail-title{
  color:var(--panel-header-text);
  font-weight:900;
  line-height:1.15;
}
.launch-demo-detail-text{
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}
.launch-demo-detail-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:24px;
  padding:3px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  color:var(--text);
  background:rgba(255,255,255,.055);
  font-size:12px;
  font-weight:800;
}
.launch-demo-controls{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.launch-demo-control{
  min-height:28px;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:6px;
  color:var(--muted);
  background:rgba(255,255,255,.055);
  font-size:12px;
  font-weight:850;
}
.launch-login-modal{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  padding:20px;
}
.launch-login-backdrop{
  position:absolute;
  inset:0;
  background:rgba(3,6,12,.74);
  backdrop-filter:blur(8px);
}
.launch-login-card{
  position:relative;
  z-index:1;
  width:min(560px, 100%);
  padding:28px;
  border:1px solid var(--line);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(18,26,41,.98), rgba(12,16,24,.96));
  box-shadow:var(--shadow);
  display:grid;
  gap:15px;
  justify-items:start;
}
.launch-login-card h1{
  margin:0;
}
.launch-login-close{
  position:absolute;
  top:10px;
  right:10px;
}
.access-gate-card{
  width:min(520px, 100%);
  padding:28px 26px;
  border-radius:22px;
  border:1px solid var(--line);
  background: linear-gradient(180deg, rgba(18,26,41,.96), rgba(12,16,24,.92));
  box-shadow: var(--shadow);
  display:grid;
  gap:14px;
  justify-items:start;
}
.access-gate-card h1{
  margin:0;
}
.access-gate-label{
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}
.access-gate-input{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  font:inherit;
  outline:none;
}
.access-gate-input:focus{
  border-color:rgba(106,169,255,.78);
  box-shadow:0 0 0 3px rgba(106,169,255,.18);
}
.direct-issue-report-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:22px;
  background:linear-gradient(180deg, var(--nav-bg2) 0%, var(--window-bg1) 120px, var(--window-bg1) 100%);
}
.direct-issue-report-card{
  width:min(720px, 100%);
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(18,26,41,.98), rgba(12,16,24,.96));
  box-shadow:var(--shadow);
  padding:22px;
  display:grid;
  gap:14px;
}
.direct-issue-report-card-wide{
  width:min(1180px, 100%);
  max-height:calc(100vh - 44px);
  overflow:auto;
}
.direct-issue-report-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.direct-issue-report-card h1,
.direct-issue-report-card h2{
  margin:0;
}
.direct-issue-report-card h1{
  font-size:clamp(22px, 3vw, 34px);
  line-height:1.1;
}
.direct-issue-report-card h2{
  font-size:15px;
}
.direct-issue-report-eyebrow{
  color:#b8e7ff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.direct-issue-report-section{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  background:rgba(255,255,255,.035);
  display:grid;
  gap:6px;
}
.direct-issue-report-section p{
  margin:0;
  color:var(--muted);
}
.direct-issue-report-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.launch-card h1{
  margin:0;
}
.launch-art{
  position:relative;
  width:100%;
  height:96px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:
    radial-gradient(circle at 22% 28%, rgba(119,211,255,.34), transparent 17%),
    radial-gradient(circle at 74% 34%, rgba(76,211,142,.26), transparent 18%),
    linear-gradient(135deg, rgba(106,169,255,.14), rgba(255,255,255,.035));
}
.launch-art-node{
  position:absolute;
  width:24px;
  height:24px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.75);
  background:rgba(13,20,32,.88);
  box-shadow:0 0 0 7px rgba(106,169,255,.12), 0 12px 24px rgba(0,0,0,.28);
}
.launch-art-node.start{left:15%; top:54%;}
.launch-art-node.mid{left:47%; top:26%;}
.launch-art-node.end{right:15%; top:58%;}
.launch-art-node.end{
  box-shadow:0 0 0 7px rgba(76,211,142,.14), 0 12px 24px rgba(0,0,0,.28);
}
.launch-art-path{
  position:absolute;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(119,211,255,.18), rgba(119,211,255,.82));
  transform-origin:left center;
}
.launch-art-path.path-one{
  left:19%;
  top:56%;
  width:34%;
  transform:rotate(-24deg);
}
.launch-art-path.path-two{
  left:51%;
  top:43%;
  width:32%;
  transform:rotate(24deg);
  background:linear-gradient(90deg, rgba(119,211,255,.72), rgba(76,211,142,.8));
}
.launch-beta-pill{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 10px;
  border:1px solid rgba(250,204,122,.36);
  border-radius:999px;
  background:rgba(250,204,122,.10);
  color:#ffe4a3;
  font-size:12px;
  font-weight:900;
}
.launch-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.launch-beta-note{
  margin:0;
  color:var(--muted2);
  font-size:12px;
  line-height:1.35;
}
@media (max-width: 920px){
  .launch-shell{
    min-height:auto;
    grid-template-rows:auto minmax(240px, 34vh) auto;
  }
  .launch-student-preview-map{
    min-height:330px;
  }
  .launch-demo-details{
    max-height:none;
  }
  .launch-wordmark{
    font-size:18px;
  }
}

.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 12px;
  background: linear-gradient(180deg, var(--nav-bg1), var(--nav-bg2));
  border-bottom:1px solid var(--line);
  backdrop-filter: blur(10px);
}
.topbar-teacher{
  align-items:center;
  gap:8px;
}
.teacher-brand-stack{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}

.brand{display:flex; align-items:center; gap:8px}
.logo{
  width:40px; height:40px; border-radius:12px;
  background: linear-gradient(135deg, rgba(106,169,255,.95), rgba(106,255,210,.55));
  display:grid; place-items:center;
  font-weight:900; color:#06101f;
}
.brand-title{font-weight:800; color:var(--panel-header-text); line-height:1.05}
.brand-sub{font-size:12px; color:var(--muted)}
.btn-report-issue{
  padding:6px 10px;
  border-color:rgba(229,188,118,.34);
  color:var(--panel-header-text);
  background:rgba(229,188,118,.10);
  white-space:nowrap;
}
.btn-report-issue:hover{
  border-color:rgba(229,188,118,.62);
  background:rgba(229,188,118,.18);
}
.btn-dev-reports{
  padding:6px 10px;
  border-color:rgba(106,255,210,.32);
  color:#b8ffe9;
  background:rgba(106,255,210,.09);
  white-space:nowrap;
}
.btn-dev-reports:hover{
  border-color:rgba(106,255,210,.62);
  background:rgba(106,255,210,.16);
}
.teacher-group-panel{
  padding:14px;
}
.teacher-group-layout{
  display:grid;
  grid-template-columns:minmax(320px, .9fr) minmax(0, 1.1fr);
  gap:14px;
  align-items:start;
}
.teacher-group-card{
  min-width:0;
  display:grid;
  gap:12px;
}
.teacher-group-search-card{
  grid-row:span 3;
}
.teacher-group-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.teacher-group-search-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
}
.teacher-group-pill{
  border:1px solid var(--line);
  border-radius:999px;
  padding:5px 10px;
  color:var(--panel-header-text);
  background:rgba(255,255,255,.05);
  font-size:12px;
  white-space:nowrap;
}
.teacher-group-result{
  border:1px solid rgba(147,190,236,.24);
  border-radius:12px;
  background:rgba(147,190,236,.08);
  color:var(--panel-header-text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px;
}
.teacher-group-result b,
.teacher-group-result span{
  display:block;
}
.teacher-group-result span{
  color:var(--muted);
  font-size:12px;
}
.teacher-group-result.empty{
  display:block;
  color:var(--muted);
}
.teacher-group-result.pending{
  border-color:rgba(229,188,118,.34);
  background:rgba(229,188,118,.10);
}
.teacher-group-result.success{
  border-color:rgba(115,222,142,.36);
  background:rgba(115,222,142,.10);
}
.teacher-group-list{
  display:grid;
  gap:8px;
}
.teacher-group-row{
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px;
}
.teacher-group-row b,
.teacher-group-row small{
  display:block;
}
.teacher-group-row b{
  color:var(--panel-header-text);
}
.teacher-group-row small{
  color:var(--muted);
  font-size:12px;
}
.teacher-group-link-btn{
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(147,190,236,.28);
  border-radius:999px;
  background:rgba(147,190,236,.08);
  color:var(--panel-header-text);
  cursor:pointer;
}
.teacher-group-link-btn svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.teacher-group-link-btn:hover{
  border-color:rgba(147,190,236,.62);
  background:rgba(147,190,236,.16);
}
.teacher-group-empty{
  border:1px dashed var(--line);
  border-radius:12px;
  padding:12px;
  background:rgba(255,255,255,.025);
}
.developer-panel{
  padding:14px;
}
.developer-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(280px, .65fr);
  gap:14px;
  align-items:start;
}
.developer-grid-main{
  grid-template-columns:minmax(0, 1fr);
}
.developer-card{
  min-width:0;
  display:grid;
  gap:12px;
}
.developer-plan-card{
  height:min(820px, calc(100vh - 150px));
  min-height:360px;
  max-height:calc(100vh - 150px);
  grid-template-rows:auto auto auto auto minmax(0, 1fr);
  overflow:hidden;
}
.developer-card-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.developer-card-header .row.gap{
  flex-wrap:wrap;
  justify-content:flex-end;
}
.developer-report-list{
  max-height:calc(100vh - 300px);
}
.developer-search{
  max-width:520px;
}
.developer-user-list{
  display:grid;
  align-content:start;
  gap:8px;
  min-height:0;
  max-height:calc(100vh - 355px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  padding-right:4px;
}
.developer-plan-card .developer-user-list{
  max-height:none;
  min-height:180px;
}
.developer-audit-result{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.developer-audit-result.ok{
  border-color:rgba(106,255,210,.32);
}
.developer-audit-result.info{
  border-color:rgba(147,190,236,.44);
}
.developer-audit-result.warn{
  border-color:rgba(250,204,122,.42);
}
.developer-audit-result.critical{
  border-color:rgba(255,112,112,.55);
}
.developer-health-card{
  border-color:rgba(147,190,236,.35);
  background:rgba(147,190,236,.045);
}
.developer-health-actions{
  margin-top:10px;
}
.developer-health-result.ok .developer-audit-verdict b{
  color:#bde8c4;
}
.developer-health-result.info .developer-audit-verdict b{
  color:#cfe5ff;
}
.developer-health-result.warn .developer-audit-verdict b{
  color:#ffdca0;
}
.developer-health-result.critical .developer-audit-verdict b{
  color:#ffb4b4;
}
.developer-audit-verdict{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.developer-audit-meta,
.developer-audit-counts{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.developer-audit-meta{
  color:var(--muted);
  font-size:12px;
}
.developer-audit-columns{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}
.developer-audit-columns h4{
  margin:0 0 6px;
  font-size:13px;
  color:var(--panel-header-text);
}
.developer-audit-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(0,0,0,.18);
  font-size:12px;
}
.developer-audit-details{
  border-top:1px solid var(--line);
  padding-top:8px;
}
.developer-audit-details summary{
  cursor:pointer;
  font-weight:800;
}
.developer-audit-list{
  display:grid;
  gap:5px;
  margin:8px 0 0;
  padding-left:18px;
}
.developer-audit-list li{
  font-size:12px;
}
.developer-audit-list code{
  margin-right:7px;
  color:var(--panel-header-text);
}
.developer-sync-summary{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:12px;
}
.developer-sync-summary span{
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 8px;
  background:rgba(0,0,0,.16);
}
.developer-sync-metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:8px;
  margin:10px 0;
}
.developer-sync-metric-grid div{
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 9px;
  background:rgba(0,0,0,.12);
}
.developer-sync-metric-grid strong{
  display:block;
  color:var(--panel-header-text);
  font-size:11px;
  line-height:1.2;
}
.developer-sync-metric-grid span{
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:13px;
  font-weight:800;
}
.developer-sync-warnings{
  display:grid;
  gap:6px;
  margin:8px 0 10px;
}
.developer-sync-warning,
.developer-sync-ok{
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 9px;
  font-size:12px;
  background:rgba(0,0,0,.14);
}
.developer-sync-warning-warn{
  border-color:rgba(255,191,87,.6);
  color:#ffdca0;
}
.developer-sync-warning-info{
  border-color:rgba(147,190,236,.55);
  color:#cfe5ff;
}
.developer-sync-ok{
  color:#bde8c4;
}
.developer-sync-table{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
}
.developer-sync-table th,
.developer-sync-table td{
  border-top:1px solid var(--line);
  padding:6px;
  text-align:left;
  vertical-align:top;
}
.developer-sync-table th{
  color:var(--panel-header-text);
}
.developer-health-table td:first-child{
  width:78px;
  font-weight:900;
}
.developer-health-row-info td:first-child{
  color:#cfe5ff;
}
.developer-health-row-warn td:first-child{
  color:#ffdca0;
}
.developer-health-row-critical td:first-child{
  color:#ffb4b4;
}
.developer-health-included{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:8px;
}
.developer-health-included span{
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 8px;
  background:rgba(0,0,0,.14);
  color:var(--muted);
  font-size:12px;
}
.developer-user-shell{
  position:relative;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  overflow:visible;
}
.developer-user-shell.expanded{
  z-index:2;
}
.developer-user-row{
  display:grid;
  grid-template-columns:auto minmax(220px, 1fr) minmax(150px, 190px) minmax(230px, auto);
  gap:10px;
  align-items:center;
  padding:9px 10px;
}
.developer-expand-btn{
  width:28px;
  height:28px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(0,0,0,.22);
  color:var(--panel-header-text);
  cursor:pointer;
  font-weight:800;
  line-height:1;
}
.developer-expand-btn:hover{
  border-color:var(--accent);
  box-shadow:0 0 0 2px rgba(119, 211, 255, .12);
}
.developer-user-main{
  min-width:0;
}
.developer-user-main b,
.developer-user-main small{
  display:block;
}
.developer-user-main b{
  color:var(--panel-header-text);
  display:flex;
  align-items:center;
  gap:7px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.developer-user-main b span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.developer-user-main small{
  color:var(--muted);
  font-size:12px;
}
.developer-user-row select{
  min-height:36px;
  border-radius:10px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.22);
  color:var(--text);
  padding:7px 8px;
}
.developer-plan-status{
  min-width:0;
  color:var(--text);
}
.developer-plan-status b,
.developer-plan-status small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.developer-plan-status b{
  color:var(--panel-header-text);
  font-size:13px;
}
.developer-plan-status small{
  color:var(--muted);
  font-size:11px;
}
.developer-manual-access{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}
.developer-manual-access .btn{
  min-height:30px;
  padding:5px 8px;
  font-size:12px;
}
.developer-manual-access .btn.selected{
  border-color:#7ddf8a;
  background:rgba(125,223,138,.18);
  color:#eaffee;
  box-shadow:0 0 0 2px rgba(125,223,138,.18), 0 0 16px rgba(125,223,138,.24);
}
.bug-indicator{
  flex:0 0 auto;
  width:10px;
  height:10px;
  border-radius:999px;
  background:#ff425d;
  box-shadow:0 0 0 2px rgba(255,66,93,.18), 0 0 12px rgba(255,66,93,.85);
}
.developer-student-list{
  position:relative;
  z-index:1;
  display:grid;
  gap:6px;
  padding:0 10px 10px 48px;
  background:rgba(0,0,0,.06);
}
.developer-student-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:7px 9px;
  background:rgba(0,0,0,.18);
}
.developer-student-main{
  min-width:0;
}
.developer-student-main b{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--text);
  font-size:13px;
}
.developer-student-main b span:last-child,
.developer-student-main small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.developer-student-main small{
  display:block;
  color:var(--muted);
  font-size:11px;
}
.developer-student-report-count{
  flex:0 0 auto;
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px 8px;
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.developer-student-report-count.active{
  border-color:rgba(255,66,93,.45);
  color:#ffc7cf;
}
.developer-student-empty{
  border:1px dashed var(--line);
  border-radius:12px;
  padding:8px 10px;
}
.developer-add-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px;
}
.developer-account-list{
  display:grid;
  gap:8px;
}
.developer-account-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:9px 10px;
  background:rgba(255,255,255,.04);
}
.developer-account-row b,
.developer-account-row small{
  display:block;
}
.developer-account-row small{
  color:var(--muted);
  font-size:12px;
  min-height:14px;
}
.developer-account-pill{
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px 8px;
  font-size:12px;
  font-weight:900;
}
.developer-account-pill.active{
  color:#b8ffe9;
  border-color:rgba(106,255,210,.42);
}
.developer-account-pill.inactive{
  color:#c9c9c9;
}
.issue-report-card{
  width:min(720px, calc(100vw - 32px));
}
.issue-report-body{
  display:grid;
  gap:10px;
}
.issue-report-label{
  font-size:13px;
  font-weight:800;
  color:var(--panel-header-text);
}
.issue-report-note{
  width:100%;
  min-height:130px;
  resize:vertical;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  font:inherit;
  outline:none;
}
.issue-report-note:focus{
  border-color:rgba(229,188,118,.72);
  box-shadow:0 0 0 3px rgba(229,188,118,.13);
}
.issue-report-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.issue-report-send-btn{
  border-color:rgba(106,255,210,.42);
  background:rgba(106,255,210,.14);
}
.issue-report-status{
  min-height:18px;
  text-align:right;
}
.modal.dev-reports-modal{
  display:block;
  padding:0;
  background:var(--bg);
  backdrop-filter:none;
}
.modal-card.dev-reports-card{
  position:fixed;
  inset:0;
  width:100vw;
  width:100dvw;
  height:100vh;
  height:100dvh;
  max-width:none;
  max-height:none;
  border-radius:0;
  border:0;
  background:linear-gradient(180deg, var(--panel2), var(--panel));
  box-shadow:none;
  color:var(--text);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
}
.modal-body.dev-reports-body{
  display:grid;
  grid-template-rows:auto auto minmax(0, 1fr);
  gap:8px;
  overflow:hidden;
  min-height:0;
  padding:10px;
}
.modal-card.dev-reports-card .modal-header{
  flex:0 0 auto;
}
.dev-reports-table-head,
.dev-report-row-main{
  display:grid;
  grid-template-columns:92px 150px minmax(190px, 230px) minmax(260px, 1.25fr) minmax(220px, .9fr);
  gap:8px;
  align-items:center;
}
.dev-reports-table-head{
  position:sticky;
  top:0;
  z-index:2;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:0 8px 3px;
}
.dev-reports-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  overflow:auto;
  max-height:none;
  min-height:0;
  padding-right:5px;
}
.dev-report-item{
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  padding:7px 8px;
  display:grid;
  gap:6px;
}
.dev-report-item.focused{
  border-color:rgba(255,66,93,.78);
  box-shadow:0 0 0 2px rgba(255,66,93,.18), 0 0 22px rgba(255,66,93,.28);
}
.dev-report-item-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.dev-report-note{
  font-weight:850;
  color:var(--panel-header-text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dev-report-meta{
  color:var(--muted);
  font-size:12px;
  margin-top:3px;
}
.dev-report-status{
  border:1px solid var(--line);
  border-radius:999px;
  padding:2px 7px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
}
.dev-report-status.open{ color:#ffe0a6; border-color:rgba(229,188,118,.45); }
.dev-report-status.reviewing{ color:#b8e7ff; border-color:rgba(147,184,236,.45); }
.dev-report-status.resolved{ color:#b8ffe9; border-color:rgba(106,255,210,.45); }
.dev-report-status.dismissed{ color:#c9c9c9; border-color:rgba(255,255,255,.22); }
.dev-report-time,
.dev-report-context,
.dev-report-person small{
  color:var(--muted);
  font-size:12px;
}
.dev-report-person{
  min-width:0;
}
.dev-report-person b,
.dev-report-person small,
.dev-report-context{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dev-report-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:8px;
}
.dev-report-grid div{
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  padding:7px 8px;
  background:rgba(0,0,0,.14);
  min-width:0;
}
.dev-report-grid b{
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-bottom:2px;
}
.dev-report-grid span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dev-report-details summary{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  margin-right:8px;
  cursor:pointer;
  color:var(--muted);
  font-weight:800;
  font-size:12px;
}
.dev-report-copy-diagnostics{
  min-height:28px;
  padding:4px 8px;
  font-size:12px;
}
.dev-report-copy-status{
  display:inline-block;
  min-width:48px;
  margin-left:6px;
  font-size:12px;
}
.dev-report-detail-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:6px;
  color:var(--muted);
  font-size:12px;
  padding:6px 0;
}
.dev-report-details pre{
  max-height:260px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:rgba(0,0,0,.26);
  color:#dbeafe;
  font-size:12px;
}
.dev-report-actions{
  display:grid;
  grid-template-columns:120px minmax(180px, 320px) auto;
  gap:8px;
  align-items:center;
  justify-content:start;
}
.dev-report-actions select{
  min-height:30px;
  border-radius:8px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.22);
  color:var(--text);
  padding:5px 7px;
}
.brand-tools{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  flex-wrap:nowrap;
}
.brand-color-pickers{
  display:grid;
  grid-template-columns:repeat(4, max-content);
  grid-auto-rows:auto;
  gap:8px 10px;
  align-items:start;
  min-width:0;
  overflow:visible;
  padding-bottom:0;
}
.btn-palette-toggle{
  padding:2px 6px;
  min-width:26px;
  min-height:24px;
  font-size:12px;
  line-height:1;
  border-radius:8px;
  margin-left:2px;
  align-self:center;
}
.theme-control{
  display:grid;
  grid-template-columns:auto auto;
  gap:2px 5px;
  align-items:center;
  padding:0;
  border:0;
  background:transparent;
  flex:0 0 auto;
}
.theme-control-label{
  grid-column:1 / -1;
  font-size:10px;
  color:var(--muted);
  white-space:nowrap;
  line-height:1;
}
.theme-control input[type="color"]{
  width:20px;
  height:20px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.theme-code{
  width:52px;
  padding:3px 5px;
  border-radius:8px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color:var(--text);
  font-size:11px;
  text-transform:lowercase;
}
.btn-palette-toggle.premium-locked,
.brand-color-pickers.premium-locked{
  opacity:.55;
}
.btn-palette-toggle.premium-locked{
  cursor:not-allowed;
}
.brand-color-pickers.premium-locked input{
  cursor:not-allowed;
}

@media (max-width: 980px){
  .topbar-teacher{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  .tabs,
  .topbar-actions{
    width:100%;
  }
}

.tabs{display:flex; gap:8px; align-items:center}
.tab{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  color:var(--text);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
}
.tab.active{
  border-color: rgba(106,169,255,.55);
  background: rgba(106,169,255,.12);
}
.topbar-actions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
}
.plan-badge{
  min-height:26px !important;
  padding:4px 9px !important;
  border-color:rgba(255,255,255,.16) !important;
  color:var(--minor2, var(--muted2));
  font-size:11px !important;
}
.plan-badge.premium{
  border-color:rgba(76,211,142,.42) !important;
  color:rgba(190,255,220,.95);
  background:rgba(76,211,142,.10) !important;
}
.plan-badge.admin::after{
  content:" admin";
  opacity:.72;
  font-size:10px;
}
.plan-billing-btn{
  min-height:26px !important;
  padding:4px 10px !important;
  border-color:rgba(106,169,255,.35) !important;
  color:rgba(226,238,255,.96);
  background:rgba(106,169,255,.12) !important;
  font-size:11px !important;
}
.plan-billing-btn:disabled{
  opacity:.65;
  cursor:wait;
}
.plan-admin-card{
  width:min(760px, 94vw);
}
.plan-admin-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.plan-admin-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 150px auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.plan-admin-row b,
.plan-admin-row small{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.plan-admin-row small{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
}
.premium-lock-note{
  border-color:rgba(245,158,11,.28) !important;
  color:rgba(255,225,170,.9) !important;
}
.class-selector-page{
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg, var(--nav-bg2) 0%, var(--window-bg1) 120px, var(--window-bg1) 100%);
}
.class-selector-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  padding:18px 24px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--nav-bg1), var(--nav-bg2));
}
.class-selector-topbar h1{
  margin:0;
  color:var(--panel-header-text);
}
.class-selector-topbar .muted{
  margin-top:4px;
  color:var(--muted);
}
.class-selector-top-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.class-selector-add-btn{
  width:42px;
  height:42px;
  border-radius:50% !important;
  padding:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:inherit;
  font-size:26px;
  line-height:1;
}
.class-selector-content{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  padding:18px 24px 28px;
}
#classSelectorStatus{
  margin-top:18px;
  color:var(--muted);
  font-size:clamp(22px, 3vw, 32px);
  font-weight:300;
  letter-spacing:.01em;
}
.class-selector-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
  width:100%;
  margin:14px 0 4px;
}
.class-selector-item{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-height:154px;
  padding:64px 12px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  color:var(--text);
  text-align:left;
  cursor:pointer;
  overflow:hidden;
}
.class-selector-item:hover{
  border-color:rgba(250,204,122,.34);
  background:rgba(250,204,122,.08);
}
.class-selector-empty-card{
  grid-column:1 / -1;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.045);
  color:var(--muted);
}
.student-name-choice{
  min-height:124px;
  padding-top:18px;
}
.student-join-code-card{
  display:grid;
  gap:10px;
  max-width:420px;
}
.student-join-code-label{
  color:var(--panel-header-text);
  font-weight:900;
}
.student-join-code-input{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:900;
}
.student-join-code-help{
  font-size:12px;
}
.class-selector-item[draggable="true"]{
  cursor:grab;
}
.class-selector-item.dragging{
  opacity:.48;
  cursor:grabbing;
}
.class-selector-item.drag-over{
  border-color:rgba(250,204,122,.7);
  box-shadow:0 0 0 2px rgba(250,204,122,.16), var(--shadow);
  transform:translateY(-2px);
}
.class-selector-image-slice{
  position:absolute;
  left:0;
  top:0;
  right:0;
  height:52px;
  border-radius:13px 13px 0 0;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 50% 0%, rgba(250,204,122,.32), transparent 55%),
    linear-gradient(90deg, var(--panel-header-bg), var(--panel-header-bg2));
  background-size:cover;
  background-position:center top;
  box-shadow:inset 0 -14px 18px rgba(0,0,0,.18);
  display:grid;
  place-items:center;
  color:var(--panel-header-text);
  font-weight:950;
  letter-spacing:.05em;
  pointer-events:none;
  overflow:hidden;
}
.class-selector-item-main{
  display:grid;
  gap:4px;
  min-width:0;
}
.class-selector-item-main b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--panel-header-text);
}
.class-selector-item-main small{
  color:var(--muted2);
  font-size:12px;
}
.class-selector-dev-chip{
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:2px 6px;
  border-radius:999px;
  border:1px solid rgba(76,211,142,.34);
  background:rgba(76,211,142,.12);
  color:#b9f6d1;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.class-selector-open-pill{
  justify-self:start;
  align-self:flex-start;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  font-size:11px;
  font-weight:800;
}
.class-selector-card-menu{
  position:absolute;
  right:8px;
  bottom:8px;
}
.class-selector-menu-btn{
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.16);
  color:var(--text);
  cursor:pointer;
}
.class-selector-menu-btn:hover{
  background:rgba(255,255,255,.09);
}
.class-selector-menu-popover{
  position:absolute;
  right:0;
  bottom:34px;
  display:none;
  min-width:136px;
  padding:6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:var(--panel2);
  box-shadow:var(--shadow);
  z-index:4;
}
.class-selector-card-menu.open .class-selector-menu-popover{
  display:grid;
  gap:4px;
}
.class-selector-menu-popover button{
  width:100%;
  padding:7px 8px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.class-selector-menu-popover button:hover{
  background:rgba(255,255,255,.08);
}
.class-selector-menu-popover button.danger{
  color:#ffd2d2;
}
.class-selector-menu-popover button.danger:hover{
  background:rgba(255,93,93,.16);
}

.layout{padding:14px}
#teacherApp .layout{
  flex:1 1 auto;
  min-height:0;
  padding:0;
  display:flex;
  flex-direction:column;
}
#teacherApp .layout > .panel{
  display:none;
}
#teacherApp .layout > .panel:not(.hidden){
  display:flex;
}
.panel{
  background: linear-gradient(180deg, var(--window-bg1), var(--window-bg2));
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
#teacherApp .layout > .panel:not(.hidden){
  flex:1 1 auto;
  min-height:0;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  box-shadow:none;
  display:flex;
  flex-direction:column;
}
#studentApp .topbar{
  gap:10px 12px;
  flex-wrap:wrap;
  align-items:center;
}
#studentApp .layout{
  flex:1 1 auto;
  min-height:0;
  padding:0;
  display:flex;
  flex-direction:column;
}
#studentApp .layout > .panel{
  display:none;
}
#studentApp .layout > .panel:not(.hidden){
  display:flex;
  flex:1 1 auto;
  min-height:0;
  flex-direction:column;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  box-shadow:none;
}
.panel-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 12px;
  border-bottom:1px solid var(--line);
  background: linear-gradient(180deg, var(--window-bg2), var(--window-bg1));
  position: sticky;
  top: 0;
  z-index: 8;
  backdrop-filter: blur(8px);
}
.panel-title{font-weight:800; color:var(--panel-header-text)}
.panel-header-quest{
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:10px;
  overflow:visible;
  z-index:80;
}
.panel-header-quest .panel-title{
  width:auto;
  flex:0 0 auto;
}
.quest-toolbar{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  width:auto;
  flex:1 1 auto;
  min-width:0;
}
.quest-toolbar .btn{
  padding:5px 8px;
  border-radius:10px;
  font-size:12px;
  line-height:1.15;
  white-space:nowrap;
}
.move-path-toggle{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.move-path-icon{
  width:15px;
  height:15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.move-path-icon svg{
  width:100%;
  height:100%;
  display:block;
  fill:currentColor;
}
.quest-toolbar .select{
  gap:5px;
  font-size:12px;
  white-space:nowrap;
}
.quest-toolbar .select span{
  font-size:11px;
}
.quest-toolbar .select select{
  padding:5px 8px;
  border-radius:10px;
  font-size:12px;
}
.quest-toolbar .divider{
  height:22px;
  margin:0 2px;
}
.quest-toolbar input[type="range"]{
  width:60px !important;
}
.share-block-inline{
  display:flex;
  align-items:center;
  min-width:0;
}
.share-block-inline:empty{
  display:none;
}
.share-block-control{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.share-block-control.is-compact{
  gap:4px;
  flex-wrap:nowrap;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.share-block-control.is-disabled{
  opacity:.72;
}
.share-block-label{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.share-block-dropdown{
  position:relative;
  z-index:1;
}
.share-block-dropdown[open]{
  z-index:5000;
}
.share-block-dropdown summary{
  list-style:none;
  cursor:pointer;
  min-width:112px;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  color:var(--text);
  background:rgba(0,0,0,.16);
  font-size:12px;
}
.share-block-dropdown summary::-webkit-details-marker{
  display:none;
}
.share-block-dropdown.is-disabled summary{
  cursor:default;
}
.share-block-menu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  z-index:5001;
  min-width:210px;
  max-height:220px;
  overflow:auto;
  padding:8px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:var(--window-bg2);
  box-shadow:var(--shadow);
}
.share-block-option{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px;
  border-radius:8px;
  color:var(--text);
  font-size:12px;
}
.share-block-option:hover{
  background:rgba(255,255,255,.06);
}
.share-block-empty{
  color:var(--muted);
  font-size:12px;
  padding:6px;
}
.share-settings-btn{
  padding:6px 9px !important;
  font-size:12px !important;
}
.share-block-control.is-compact .share-block-dropdown summary,
.share-block-control.is-compact .share-settings-btn{
  min-height:28px;
  padding:5px 8px !important;
  border-radius:10px;
  font-size:12px !important;
  line-height:1;
}
.share-settings-modal{
  position:fixed;
  inset:0;
  z-index:2200;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(0,0,0,.48);
}
.share-settings-card{
  width:min(520px,94vw);
  display:grid;
  gap:14px;
  padding:16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:linear-gradient(180deg, var(--window-bg2), var(--window-bg1));
  box-shadow:var(--shadow);
}
.share-settings-header,
.share-settings-footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.share-settings-title{
  color:var(--panel-header-text);
  font-size:18px;
  font-weight:900;
}
.share-settings-sub{
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
}
.share-settings-body{
  display:grid;
  gap:10px;
}
.share-settings-check{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:var(--text);
}
.share-settings-nested{
  display:grid;
  gap:8px;
  margin-left:18px;
}
.btn-controls-toggle{
  background: var(--window-bg1);
  border-color: rgba(255,255,255,.14);
}
.btn-controls-toggle:hover{
  border-color: rgba(255,255,255,.28);
}
.hidden{display:none}

.btn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  color:var(--text);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
}
.btn:hover{border-color: rgba(106,169,255,.35)}
.btn-danger{border-color: rgba(255,93,93,.35); background: rgba(255,93,93,.08)}
.btn-danger:hover{border-color: rgba(255,93,93,.7)}

.row{display:flex; align-items:center; justify-content:flex-start}
.gap{gap:8px}
.divider{
  width:1px; height:28px;
  background: var(--line);
  display:inline-block;
  margin:0 8px;
}

.input{
  width:320px;
  padding:9px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color:var(--text);
}

.select{display:flex; align-items:center; gap:8px}
.select span{font-size:12px; color:var(--muted)}
.select select{
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color:var(--text);
}

.quest-body{
  display:flex;
  flex:1 1 auto;
  min-height:0;
}
.canvas-wrap{
  position:relative;
  background: var(--window-bg1);
  flex:1 1 auto;
  min-height:0 !important;
}
.canvas-wrap:fullscreen,
.canvas-wrap:-webkit-full-screen{
  width:100vw;
  height:100vh !important;
  min-height:100vh !important;
  background: var(--window-bg1);
}
.canvas-wrap:fullscreen .teacher-quest-floating-actions,
.canvas-wrap:-webkit-full-screen .teacher-quest-floating-actions{
  position:absolute;
  right:16px;
  bottom:16px;
  z-index:20;
}
.canvas-wrap:fullscreen #questCanvas,
.canvas-wrap:-webkit-full-screen #questCanvas{
  width:100%;
  height:100%;
}
.teacher-quest-preview-host{
  position:absolute;
  inset:0;
  z-index:4;
  display:flex;
  align-items:stretch;
  justify-content:stretch;
  width:100%;
  height:100%;
  background: linear-gradient(180deg, rgba(8,12,20,.22), rgba(8,12,20,.34));
}
.teacher-quest-preview-host > .student-quest-shell{
  width:100%;
  height:100%;
}
.teacher-quest-preview-host.hidden{
  display:none !important;
}
.teacher-quest-floating-actions{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:2147483000;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  max-width:min(460px, calc(100% - 24px));
  pointer-events:none;
}
.teacher-quest-floating-actions .btn,
.teacher-quest-preview-toggle{
  pointer-events:auto;
  padding:8px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(12,18,30,.74);
  color: var(--muted);
  font-size:12px;
  font-weight:500;
  letter-spacing:.01em;
  box-shadow: 0 10px 24px rgba(0,0,0,.24);
  backdrop-filter: blur(10px);
}
.teacher-quest-floating-actions .btn:hover,
.teacher-quest-preview-toggle:hover{
  color: var(--text);
  border-color: rgba(255,255,255,.24);
  background: rgba(16,24,38,.84);
}
.teacher-quest-preview-toggle.is-active{
  color: var(--panel-header-text);
  border-color: rgba(245,158,11,.42);
  background: rgba(245,158,11,.14);
}

#nodeModal{
  z-index:2147483600 !important;
  background:#0b0f14 !important;
}
#nodeModalCard{
  background:#0b0f14 !important;
}
#assetPickerModal,
#imageInsertModal,
#videoInsertModal{
  z-index:2147483647 !important;
}

.teacher-quest-preview-mode .panel-header-quest .quest-toolbar{
  opacity:.58;
  pointer-events:none;
}
.teacher-quest-preview-mode .help{
  opacity:.32;
  pointer-events:none;
}
#questCanvas{
  display:block;
  width:100%;
  height:100%;
  background: var(--window-bg1);
  touch-action:none;
}
.statusbar{
  position:absolute; left:10px; bottom:10px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.35);
  color: var(--muted);
  font-size:12px;
}

/* Draggable, collapsible help */
.help{
  position:absolute;
  right:10px;
  top:10px;
  left:auto;
  width:260px;
  max-width:calc(100% - 20px);
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background: var(--window-bg1);
  color:var(--muted);
  font-size:12px;
  user-select:none;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
}
.help-titlebar{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  cursor:move;
  margin-bottom:0;
}
.help-title{
  font-weight:800;
  font-size:12px;
  color:var(--text);
}
.help-x{
  border:1px solid var(--line);
  background: var(--window-bg1);
  color:var(--text);
  border-radius:12px;
  padding:6px 10px;
  cursor:pointer;
  font-size:12px;
  line-height:1;
}
.help-content{user-select:text}
.help.collapsed{
  width:fit-content;
  max-width:none;
  min-width:0;
  padding:6px 8px;
  background: var(--window-bg1);
}
.help.collapsed .help-titlebar{
  justify-content:flex-start;
  width:auto;
}

.help.collapsed .help-title{
  white-space:nowrap;
}

.help.collapsed .help-x{
  margin-left:0;
}
.help.collapsed .help-title{
  font-size:12px;
}

.help-content{
  user-select:text;
  margin-top:8px;
}

.help-content ul{
  margin:0;
  padding-left:18px;
}

.help-content li + li{
  margin-top:6px;
}
.small{font-size:12px; color:var(--muted)}

.inspector{
  border-left:1px solid var(--line);
  background: rgba(15,22,36,.55);
}
.inspector-header{
  padding:12px;
  border-bottom:1px solid var(--line);
}
.inspector-title{font-weight:900}
.inspector-sub{font-size:12px; color:var(--muted); margin-top:2px}
.inspector-body{padding:12px}
.muted{color:var(--muted); font-size:13px}

.card{
  margin:12px;
  padding:12px;
  border-radius:16px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
}
.card-title{font-weight:900; margin-bottom:10px}

/* Recovered static shell helpers. The original app relies on app.js for most
   content, but these containers need to match the existing visual system. */
.class-selector-top-actions,
.row.gap{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.two-col > .card{
  min-width:0;
  min-height:0;
  overflow:auto;
}
#tab-assignments .two-col,
#tab-question-bank .two-col{
  flex:1 1 auto;
}
#tab-assets > .card{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
#tab-students .two-col{
  flex:1 1 auto;
  grid-template-columns:minmax(260px, 360px) minmax(0, 1fr);
}
.modal{
  position:fixed;
  inset:0;
  z-index:2147483400;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);
}

body.assignment-node-workflow-active #tab-assignments.assignment-node-workflow-overlay{
  position:fixed !important;
  inset:0 !important;
  width:100vw;
  width:100dvw;
  height:100vh;
  height:100dvh;
  max-width:none;
  max-height:none;
  z-index:2147483647;
  display:flex !important;
  flex-direction:column;
  overflow:auto;
  box-sizing:border-box;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:linear-gradient(180deg, #111a1f, #0b1014);
  box-shadow:none;
  transform:none;
}

body.assignment-node-workflow-active{
  overflow:hidden;
}

body.assignment-node-workflow-active #tab-assignments.assignment-node-workflow-overlay .assignment-tab-layout{
  flex:1 1 auto;
  min-height:0;
  padding:14px;
}

.assignment-node-workflow-return{
  margin-left:8px;
  margin-right:auto;
}
.modal-card{
  width:min(860px, 94vw);
  max-height:90vh;
  border:1px solid var(--line);
  background:linear-gradient(180deg, var(--panel2), var(--panel));
  border-radius:18px;
  box-shadow:var(--shadow);
  color:var(--text);
  overflow:auto;
}
.modal-header,
.modal-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  border-bottom:1px solid var(--line);
}
.modal-footer{
  justify-content:flex-end;
  border-top:1px solid var(--line);
  border-bottom:0;
}
.modal-header h2{
  margin:0;
  color:var(--panel-header-text);
}
.node-modal-path-controls .btn.active,
.node-modal-path-controls .btn.is-pressed,
.node-modal-path-controls .btn[aria-pressed="true"]{
  border-color:rgba(250,204,122,.95) !important;
  background:linear-gradient(180deg, rgba(250,204,122,.42), rgba(250,204,122,.2)) !important;
  color:#fff4d0 !important;
  box-shadow:
    inset 0 2px 7px rgba(0,0,0,.48),
    0 0 0 1px rgba(250,204,122,.34),
    0 0 14px rgba(250,204,122,.18);
  transform:translateY(1px);
}
.node-modal-path-controls{
  justify-content:flex-end;
}
.node-modal-path-controls .path-toggle-btn{
  white-space:nowrap;
  min-width:92px;
}
.node-modal-path-controls .game-node-toggle{
  min-width:96px;
}
.node-assignment-current-box{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.05);
}
.node-assignment-current-box.empty{
  display:block;
}
.node-assignment-current-title{
  min-width:0;
  color:var(--panel-header-text);
  font-weight:850;
  overflow:hidden;
  text-overflow:ellipsis;
}
.node-assignment-current-main{
  min-width:0;
  display:grid;
  gap:4px;
}
.node-assignment-current-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.node-assignment-icon-btn{
  width:30px;
  height:30px;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(0,0,0,.22);
  color:var(--panel-header-text);
  cursor:pointer;
  font-size:16px;
  line-height:1;
}
.node-assignment-icon-btn:hover{
  border-color:rgba(106,169,255,.55);
  background:rgba(106,169,255,.13);
}
.node-assignment-icon-btn.danger:hover{
  border-color:rgba(255,93,93,.58);
  background:rgba(255,93,93,.15);
}
.game-node-editor{
  display:grid;
  gap:14px;
}
.game-node-editor-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.04);
}
.game-node-editor-head h3{
  margin:2px 0 4px;
  color:var(--panel-header-text);
  font-size:26px;
}
.game-node-kicker{
  color:var(--minor-font-1, #facc7a);
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.game-node-select,
.game-node-config-grid label{
  display:grid;
  gap:6px;
  color:var(--muted2);
  font-size:12px;
  font-weight:800;
}
.game-node-config-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}
.game-node-config-grid input,
.game-node-config-grid select,
.game-node-select select{
  min-width:0;
}
.student-game-node-shell{
  display:grid;
  gap:12px;
}
.dynamo-battle-scene{
  --battle-scene-layer:linear-gradient(180deg, #111b35 0%, #18284b 32%, #261c37 58%, #0b1019 100%);
  position:relative;
  min-height:clamp(420px, 58vh, 660px);
  overflow:hidden;
  border:1px solid rgba(110,231,255,.18);
  border-radius:24px;
  background:
    linear-gradient(180deg, rgba(3,7,18,.05), rgba(3,7,18,.22)),
    var(--battle-scene-layer),
    radial-gradient(circle at 20% 20%, rgba(44,255,203,.18), transparent 22%),
    radial-gradient(circle at 82% 18%, rgba(255,46,149,.18), transparent 24%),
    linear-gradient(180deg, #111b35 0%, #18284b 32%, #261c37 58%, #0b1019 100%);
  background-size:cover, cover, auto, auto, auto;
  background-position:center, center, center, center, center;
  background-repeat:no-repeat;
  box-shadow:inset 0 0 70px rgba(0,0,0,.32), 0 18px 48px rgba(0,0,0,.28);
}
.dynamo-battle-platform{
  position:absolute;
  width:25%;
  height:8%;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(0,0,0,.46), rgba(57,255,226,.12) 48%, transparent 72%);
  z-index:2;
}
.dynamo-battle-platform.player{left:18%; bottom:20%;}
.dynamo-battle-platform.opponent{right:16%; bottom:39%;}
.dynamo-battle-dynamo{
  position:absolute;
  z-index:3;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 22px 18px rgba(0,0,0,.45));
  transform-origin:center center;
}
.dynamo-battle-dynamo img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.dynamo-battle-dynamo.player{
  left:28%;
  top:68%;
  width:34%;
  height:34%;
}
.dynamo-battle-dynamo.opponent{
  left:74%;
  top:56%;
  width:26%;
  height:26%;
}
.dynamo-battle-empty{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  border:1px dashed rgba(255,255,255,.2);
  border-radius:18px;
  color:var(--muted2);
  background:rgba(0,0,0,.2);
  text-align:center;
  padding:14px;
}
.dynamo-battle-hud{
  position:absolute;
  z-index:4;
  width:min(320px, 38%);
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.54));
  color:#0f172a;
  box-shadow:0 14px 28px rgba(0,0,0,.22);
  font-weight:950;
  text-transform:uppercase;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
}
.dynamo-battle-hud.player{
  left:3%;
  top:23%;
  border-bottom:5px solid rgba(56,189,248,.72);
}
.dynamo-battle-hud.opponent{
  right:3%;
  top:8%;
  border-bottom:5px solid rgba(244,63,94,.72);
}
.dynamo-battle-hud small{
  display:block;
  margin-top:4px;
  text-align:right;
  color:#1e293b;
}
.dynamo-battle-health{
  height:12px;
  margin-top:6px;
  overflow:hidden;
  border:2px solid rgba(15,23,42,.18);
  border-radius:999px;
  background:rgba(15,23,42,.15);
}
.dynamo-battle-health span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #22c55e, #86efac);
}
.dynamo-battle-action-bar{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:5;
  display:flex;
  gap:14px;
  align-items:center;
  padding:14px 18px;
  background:linear-gradient(180deg, rgba(2,6,23,.15), rgba(2,6,23,.82));
}
.dynamo-battle-skill{
  width:82px;
  height:82px;
  border-radius:999px;
  border:3px solid rgba(255,255,255,.65);
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.35), transparent 28%),
    linear-gradient(135deg, rgba(57,255,226,.9), rgba(37,99,235,.86));
  color:#fff;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  box-shadow:0 10px 22px rgba(0,0,0,.35);
}
.dynamo-battle-skill.active{
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.45), transparent 28%),
    linear-gradient(135deg, rgba(255,46,149,.95), rgba(245,158,11,.9));
}
@media (max-width: 760px){
  .game-node-config-grid{
    grid-template-columns:1fr;
  }
  .dynamo-battle-hud{
    width:44%;
    font-size:12px;
  }
  .dynamo-battle-skill{
    width:58px;
    height:58px;
    font-size:10px;
  }
}
.modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:12px;
}
.btn.secondary{
  background:rgba(255,255,255,.025);
}
.btn.danger,
.btn-danger{
  border-color:rgba(255,93,93,.35);
  background:rgba(255,93,93,.08);
}
.btn.danger:hover,
.btn-danger:hover{
  border-color:rgba(255,93,93,.7);
}
.floating-help-btn{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:12;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(11,15,23,.82);
  color:var(--text);
  box-shadow:var(--shadow);
  cursor:pointer;
}
.floating-help-btn:hover{
  border-color:rgba(106,169,255,.45);
}
.help-box{
  position:absolute;
  left:12px;
  bottom:58px;
  z-index:12;
  width:min(360px, calc(100% - 24px));
  max-height:55vh;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(11,15,23,.9);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.asset-picker-list,
.asset-preview-box,
.grade-grid{
  min-height:0;
  min-width:0;
}
.asset-picker-list{
  overflow:auto;
  display:grid;
  gap:8px;
}
.asset-preview-box{
  margin-top:12px;
}

.node-asset-editor{
  width:100%;
  display:grid;
  gap:12px;
  padding:10px;
}

.node-asset-editor-actions{
  display:flex;
  gap:8px;
}

.node-asset-preview-stage{
  width:min(320px, 100%);
  aspect-ratio:1;
  justify-self:center;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}

.node-asset-preview-stage img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.node-asset-preview-stage span{
  color:var(--muted);
  font-size:13px;
}

.grade-grid{
  overflow:auto;
}
.student-node-tabs{
  flex:0 0 auto;
  padding:0 2px;
}

.student-quest-shell{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.18));
}
.teacher-student-preview-shell{
  height:100%;
}
.student-quest-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  background: linear-gradient(180deg, var(--window-bg2), var(--window-bg1));
}
.student-quest-title{
  font-weight:800;
  color:var(--panel-header-text);
}
.student-quest-sub{
  margin-top:2px;
  font-size:12px;
  color:var(--muted);
}
.student-quest-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
}
.student-quest-wrap{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  background: var(--window-bg1);
}
.student-quest-canvas{
  display:block;
  width:100%;
  height:100%;
  background: var(--window-bg1);
  touch-action:none;
}
.path-debug-modal{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(2,6,12,.72);
  backdrop-filter:blur(10px);
}
.path-debug-card{
  width:min(980px, 96vw);
  max-height:88vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(17,24,39,.98), rgba(6,10,18,.98));
  box-shadow:0 24px 80px rgba(0,0,0,.45);
}
.path-debug-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.path-debug-title{
  font-size:18px;
  font-weight:900;
  color:var(--panel-header-text);
}
.path-debug-sub{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}
.path-debug-summary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.path-debug-summary span,
.path-debug-chip{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  font-size:12px;
}
.path-debug-chip.subtle{
  color:var(--muted);
  background:rgba(255,255,255,.03);
}
.path-debug-body{
  overflow:auto;
  padding:12px 18px 18px;
}
.path-debug-body h3{
  margin:14px 0 8px;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--minor-font-2, var(--muted));
}
.path-debug-row{
  display:grid;
  grid-template-columns:minmax(180px, 280px) 1fr;
  gap:12px;
  align-items:start;
  padding:10px 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.path-debug-row-title{
  font-weight:800;
  color:var(--text);
}
.path-debug-row-meta{
  margin-top:3px;
  font-size:12px;
  color:var(--muted);
}
.path-debug-chip-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.student-empty{
  margin:12px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background: rgba(0,0,0,.16);
  color:var(--muted);
}
.student-grade-list{
  display:grid;
  gap:0;
}
.student-grade-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}
.student-grade-item.revisit{
  background:rgba(255,93,93,.06);
}
.student-grade-item:last-child{
  border-bottom:0;
}
.student-grade-main{
  display:grid;
  gap:3px;
  min-width:0;
}
.student-grade-name{
  font-weight:700;
  color:var(--text);
}
.student-grade-meta{
  font-size:12px;
  color:var(--muted);
}
.student-grade-score{
  flex:0 0 auto;
  min-width:54px;
  text-align:right;
  font-weight:800;
  color:var(--panel-header-text);
}
.student-grade-side{
  display:grid;
  gap:8px;
  justify-items:end;
  flex:0 0 auto;
}
.student-grade-node-btn{
  padding:6px 10px !important;
  font-size:11px;
  white-space:nowrap;
}
.student-grade-score.revisit{
  color:#ffb1b1;
}
.student-grade-score.pending-qualification{
  min-width:140px;
  font-size:12px;
  line-height:1.2;
  color:var(--minor2);
  white-space:normal;
}
.student-grade-warning{
  display:grid;
  gap:4px;
  margin-top:6px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,93,93,.28);
  background:rgba(255,93,93,.08);
}
.student-grade-warning-title{
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  color:#ff9a9a;
}
.student-grade-warning-body{
  font-size:12px;
  line-height:1.35;
  color:#ffd2d2;
}
.student-results-score-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.student-results-retry-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  border:1px solid rgba(126,211,134,.42);
  background:rgba(126,211,134,.12);
  color:#d8ffd9;
  cursor:pointer;
  font-size:17px;
  line-height:1;
  transition:background .15s ease, border-color .15s ease, transform .15s ease;
}
.student-results-retry-btn:hover{
  background:rgba(126,211,134,.2);
  border-color:rgba(126,211,134,.72);
  transform:translateY(-1px);
}
.student-results-retry-btn.active,
.student-results-retry-btn[aria-pressed="true"]{
  border-color:rgba(250,204,21,.88);
  background:rgba(250,204,21,.24);
  color:#fff4c7;
  box-shadow:0 0 0 2px rgba(250,204,21,.18), 0 0 16px rgba(250,204,21,.22);
}
.grade-reduction-resolver{
  position:fixed;
  z-index:2147483647;
  width:min(320px, calc(100vw - 16px));
  display:grid;
  gap:10px;
  padding:12px;
  border:2px solid rgba(255,180,120,.88);
  border-radius:14px;
  background:rgba(18,20,28,.98);
  box-shadow:0 22px 70px rgba(0,0,0,.72), 0 0 0 9999px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.05);
  color:var(--text);
  pointer-events:auto;
}
.grade-reduction-resolver-title{
  color:#ffaaa6;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.grade-reduction-resolver-body{
  display:grid;
  gap:4px;
  color:var(--minor2);
  font-size:12px;
  line-height:1.35;
}
.grade-reduction-resolver-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.student-mastery-page{
  flex:1 1 auto;
  min-height:0;
  padding:14px;
  overflow:auto;
}
.student-mastery-shell{
  display:grid;
  gap:14px;
  max-width:1100px;
  margin:0 auto;
}
.student-mastery-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  background:
    radial-gradient(circle at top left, rgba(250,204,122,.18), transparent 46%),
    rgba(255,255,255,.045);
}
.student-mastery-title{
  color:var(--panel-header-text);
  font-size:24px;
  font-weight:900;
  line-height:1.05;
}
.student-mastery-sub{
  margin-top:5px;
  color:var(--muted2);
  font-size:13px;
}
.student-mastery-score{
  flex:0 0 auto;
  min-width:94px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid rgba(250,204,122,.28);
  background:rgba(250,204,122,.10);
  color:var(--panel-header-text);
  text-align:center;
  font-size:24px;
  font-weight:950;
}
.student-mastery-summary{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}
.student-mastery-summary-card{
  display:grid;
  gap:6px;
  min-width:0;
  padding:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}
.student-mastery-summary-card span{
  color:var(--muted2);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.student-mastery-summary-card b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
  font-size:15px;
}
.student-mastery-list{
  display:grid;
  gap:10px;
}
.student-mastery-row{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}
.student-mastery-row-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.student-mastery-tag{
  color:var(--text);
  font-weight:850;
  line-height:1.25;
}
.student-mastery-percent{
  flex:0 0 auto;
  color:var(--panel-header-text);
  font-weight:950;
}
.student-mastery-bar{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.18);
}
.student-mastery-bar-fill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(94,234,212,.82), rgba(250,204,122,.95));
}
.student-mastery-evidence{
  color:var(--muted2);
  font-size:12px;
}
.student-video-assignment{
  display:grid;
  gap:12px;
}
.student-video-assignment-title{
  font-weight:800;
  color:var(--panel-header-text);
}
.student-video-assignment-meta{
  font-size:12px;
  color:var(--muted);
}
.student-video-assignment-collapsed{
  display:grid;
  gap:10px;
  padding:14px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.025);
}
.student-video-assignment-frame{
  display:grid;
  gap:12px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.1);
  background:#111;
}
.student-video-assignment-frame-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.student-video-assignment-player-stage{
  position:relative;
  width:100%;
}
.student-video-assignment-player{
  width:100%;
  max-height:66vh;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:#000;
  display:block;
}
.student-video-assignment-player.youtube-video-embed-host{
  aspect-ratio:16/9;
  overflow:hidden;
}
.student-video-assignment-player.youtube-video-embed-host iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.student-video-assignment-prompt-wrap{
  position:absolute;
  inset:0;
  z-index:40;
  pointer-events:none;
}
.student-video-assignment-prompt-wrap:empty{
  display:none;
}
.student-video-question-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  border-radius:14px;
  background:rgba(5,8,14,.74);
  backdrop-filter:blur(8px);
  pointer-events:auto;
}
.student-video-question-overlay-card{
  width:min(760px, calc(100% - 12px));
  max-height:calc(100% - 12px);
  overflow:auto;
  box-shadow:0 22px 60px rgba(0,0,0,.44);
}
.student-video-assignment-prompt{
  display:grid;
  gap:10px;
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(106,169,255,.26);
  background:rgba(106,169,255,.08);
}
.student-video-assignment-prompt-title{
  font-weight:800;
  color:var(--panel-header-text);
}
.student-video-assignment-prompt-body{
  display:grid;
  gap:10px;
}
.student-video-assignment-prompt-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.student-answer-progress-indicator{
  position:fixed;
  left:16px;
  bottom:16px;
  z-index:2147482500;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(15,22,36,.94);
  color:var(--panel-header-text);
  box-shadow:0 12px 28px rgba(0,0,0,.34);
  font-weight:900;
  font-size:13px;
}
.student-answer-progress-indicator[hidden]{
  display:none;
}
.student-worksheet-question-number{
  display:inline-flex;
  width:max-content;
  min-width:44px;
  min-height:34px;
  align-items:center;
  justify-content:center;
  padding:4px 10px;
  border-radius:8px;
  color:var(--panel-header-text);
  font-family:var(--header-font, Georgia, "Times New Roman", serif);
  font-size:22px;
  font-weight:900;
  line-height:1;
}
.student-worksheet-question-number.answered{
  background:var(--bg2);
  color:var(--panel-header-text);
  box-shadow:0 0 0 1px rgba(255,255,255,.14) inset;
}
.teacher-preview-answer-audit{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(76,217,100,.32);
  background:rgba(76,217,100,.1);
  color:var(--panel-header-text);
  font-weight:800;
  font-size:13px;
}
.teacher-preview-answer-audit:empty{
  display:none;
}

.two-col{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 420px;
  gap:12px;
  padding:12px;
}
#tab-assignments .two-col,
#tab-question-bank .two-col,
#tab-assets .assets,
#tab-gradebook .two-col{
  flex:1 1 auto;
  min-height:0;
}
#tab-gradebook .two-col{
  padding:0;
  display:flex !important;
}
#tab-gradebook .card{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}
#tab-gradebook .card-title{
  display:none;
}
#tab-gradebook #gradeGridWrapper{
  margin-top:0 !important;
  flex:1 1 auto;
  min-height:0;
  max-height:none !important;
  border-left:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
}
#gradeGrid{
  table-layout:fixed !important;
  border-collapse:separate !important;
  border-spacing:0;
}
#gradeGrid th,
#gradeGrid td{
  box-sizing:border-box;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#gradeGrid td[data-pending-grade-reduction="true"],
#gradeGrid td[data-grade-reduction-resolution="true"]{
  position:relative;
  padding-right:8px !important;
  overflow:visible;
}
#gradeGrid .grade-reduction-cell-overlay{
  position:absolute;
  inset:0;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
  padding:2px 4px 2px 6px;
  background:rgba(38,20,24,.97);
  border:1px solid rgba(255,130,130,.72);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  user-select:none;
}
#gradeGrid .grade-reduction-cell-grade-flow{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:2px;
  max-width:calc(100% - 40px);
  overflow:hidden;
  white-space:nowrap;
}
#gradeGrid .grade-reduction-cell-grade{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#ffd7d7;
  font-weight:800;
  font-size:10px;
  line-height:1;
}
#gradeGrid .grade-reduction-cell-grade.pending{
  color:#fff0f0;
}
#gradeGrid .grade-reduction-cell-arrow{
  color:rgba(255,215,215,.78);
  font-size:9px;
  font-weight:900;
}
#gradeGrid .grade-reduction-cell-actions{
  position:absolute;
  right:2px;
  bottom:2px;
  display:inline-flex;
  align-items:center;
  gap:2px;
}
#gradeGrid .grade-reduction-cell-action{
  width:12px;
  height:12px;
  padding:0;
  border:0;
  border-radius:3px;
  color:var(--minor2);
  background:transparent;
  font-size:9px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
#gradeGrid .grade-reduction-cell-action:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}
#gradeGrid .grade-reduction-cell-message{
  position:fixed;
  left:0;
  top:0;
  z-index:2147483646;
  width:220px;
  white-space:normal;
  display:none;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(13,18,25,.96);
  border:1px solid rgba(255,255,255,.16);
  color:var(--minor2);
  font-size:11px;
  line-height:1.35;
  box-shadow:0 12px 26px rgba(0,0,0,.35);
  pointer-events:none;
}
.grade-reduction-cell-message.visible{
  display:block;
}
.gradebook-floating-tooltip{
  position:fixed;
  left:0;
  top:0;
  z-index:2147483647;
  display:none;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,130,130,.36);
  background:rgba(15,18,25,.98);
  color:rgba(255,236,236,.94);
  font-size:12px;
  line-height:1.45;
  white-space:normal;
  overflow-wrap:anywhere;
  box-shadow:0 16px 34px rgba(0,0,0,.48);
  pointer-events:none;
}
.gradebook-floating-tooltip.visible{
  display:block;
}
.gradebook-floating-tooltip.compact{
  padding:7px 9px;
  font-size:11px;
  text-align:center;
  border-color:rgba(255,214,160,.34);
  background:rgba(18,20,28,.98);
}
.gradebook-floating-tooltip.interactive{
  pointer-events:auto;
}
.gradebook-floating-tooltip .grade-curved-show-originals-btn{
  border:0;
  padding:0;
  background:transparent;
  color:#ffd7a3;
  font:inherit;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}
.gradebook-floating-tooltip .grade-curved-show-originals-btn:hover{
  color:#fff2cf;
}
#gradeGrid td[data-curved-pending-grade="true"]{
  position:relative;
  color:#ffe4e4;
}
#gradeGrid .grade-curved-pending-message{
  position:fixed;
  left:0;
  top:0;
  z-index:2147483646;
  width:238px;
  display:none;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(255,130,130,.36);
  background:rgba(18,20,28,.97);
  color:rgba(255,232,232,.92);
  font-size:12px;
  line-height:1.35;
  box-shadow:0 12px 28px rgba(0,0,0,.42);
}
#gradeGrid .grade-curved-pending-message.visible{
  display:block;
}
#gradeGrid .grade-curved-show-originals-btn{
  border:0;
  padding:0;
  background:transparent;
  color:#ffd7a3;
  font:inherit;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}
#gradeGrid .grade-curved-show-originals-btn:hover{
  color:#fff2cf;
}
#gradeGrid .gradebook-name-col{
  position:sticky;
  width:132px;
  min-width:132px;
  max-width:132px;
  background:#111;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:8px 0 8px rgba(0,0,0,.25);
  padding:8px;
}
#gradeGrid th.gradebook-name-col{
  z-index:9;
}
#gradeGrid td.gradebook-name-col{
  z-index:7;
}
#gradeGrid .gradebook-name-col-last{
  left:0;
}
#gradeGrid .gradebook-name-col-first{
  left:132px;
}
#gradeGrid .gradebook-slot-head{
  position:relative;
  z-index:5;
  padding:8px;
  border:1px solid rgba(255,255,255,.1);
  min-width:0;
  overflow:visible;
  white-space:normal;
}
#gradeGrid .gradebook-subhead{
  padding:6px;
  border:1px solid rgba(255,255,255,.1);
  font-size:11px;
  min-width:0;
}
.list{
  border-radius:16px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  overflow:auto;
  max-height: 72vh;
}
#teacherApp .list{
  max-height:none;
  min-height:0;
}
.list-item{
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  cursor:pointer;
}
.list-item:hover{background: rgba(255,255,255,.03)}
.list-item.active{background: rgba(106,169,255,.10); border-left:3px solid rgba(106,169,255,.8)}

.students-manage-layout{
  display:grid;
  grid-template-columns:minmax(340px, 1.02fr) minmax(320px, 1fr);
  gap:16px;
  padding:12px;
  flex:1 1 auto;
  min-height:0;
}
.students-roster-card,
.students-preview-card{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.students-roster-controls{
  display:grid;
  gap:10px;
}
.students-roster-inputs{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:8px;
}
.students-roster-inputs .input{
  width:100%;
  min-width:0;
}
.students-roster-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.students-roster-actions .btn{
  padding-inline:14px;
}
.students-roster-list{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  padding:6px 0;
}
.students-roster-empty{
  padding:16px 14px;
  color:var(--muted);
}
.students-preview-shell{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1 1 auto;
  min-height:0;
}
.students-roster-item{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:68px;
}
.students-roster-thumb{
  width:44px;
  height:44px;
  border-radius:14px;
  flex:0 0 44px;
  overflow:hidden;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--panel-header-text);
  font-size:15px;
  font-weight:900;
}
.students-roster-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.students-roster-main{
  min-width:0;
  flex:1 1 auto;
  display:grid;
  gap:3px;
}
.students-roster-name{
  font-weight:800;
  color:var(--panel-header-text);
  font-size:14px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.students-roster-sub{
  color:var(--muted2);
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.student-join-code-row{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-top:3px;
}
.student-join-code-pill{
  position:relative;
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(250,204,122,.34);
  background:rgba(250,204,122,.10);
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:950;
  letter-spacing:.12em;
  cursor:pointer;
}
.student-join-code-btn{
  padding:3px 7px !important;
  font-size:10px;
  line-height:1.2;
}
.student-join-code-float{
  position:absolute;
  left:50%;
  top:-26px;
  transform:translateX(-50%);
  white-space:nowrap;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(20,28,44,.94);
  color:var(--panel-header-text);
  box-shadow:var(--shadow);
  font-size:10px;
  letter-spacing:0;
  animation:student-code-float 1.1s ease forwards;
  pointer-events:none;
  z-index:5;
}
@keyframes student-code-float{
  0%{opacity:0; transform:translate(-50%, 6px);}
  18%{opacity:1; transform:translate(-50%, 0);}
  78%{opacity:1; transform:translate(-50%, -4px);}
  100%{opacity:0; transform:translate(-50%, -10px);}
}
.students-roster-delete{
  flex:0 0 auto;
  padding:6px 10px;
}
.students-preview-meta{
  display:grid;
  gap:4px;
}
.students-preview-name{
  font-weight:900;
  color:var(--panel-header-text);
  font-size:22px;
}
.students-preview-sub{
  color:var(--muted);
  font-size:13px;
}
.students-preview-toolbar{
  display:grid;
  gap:8px;
}
.students-preview-field{
  max-width:420px;
}
.students-preview-note{
  color:var(--muted2);
  font-size:12px;
}
.student-avatar-page{
  padding:8px 10px;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:auto;
}
.student-avatar-shell{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.student-avatar-shell-teacher{
  flex:1 1 auto;
  min-height:0;
}
.student-avatar-shell-page{
  width:min(760px, 100%);
  margin:0 auto;
  flex:0 0 auto;
  min-height:0;
}
.student-avatar-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.student-avatar-title{
  font-size:18px;
  font-weight:900;
  color:var(--panel-header-text);
  line-height:1.05;
}
.student-avatar-sub{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}
.student-avatar-level-pill{
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:var(--panel-header-text);
  font-weight:900;
  font-size:12px;
}
.student-avatar-construction{
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  color:var(--panel-header-text);
  font-size:10px;
  font-weight:900;
  text-align:center;
  letter-spacing:0;
  text-transform:uppercase;
}
.student-avatar-stage{
  position:relative;
  border:1px solid var(--line);
  border-radius:20px;
  background:
    radial-gradient(circle at top, rgba(255,255,255,.08), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.26));
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:6px;
}
.student-avatar-shell-page .student-avatar-stage{
  height:clamp(300px, 56vh, 590px);
}
.student-avatar-shell-teacher .student-avatar-stage{
  height:clamp(410px, 58vh, 600px);
  padding:10px 8px 12px;
}
.student-avatar-shell-teacher .student-avatar-image{
  transform:none;
}
.student-avatar-image{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.student-avatar-dynamo-companion{
  position:absolute;
  transform:translate(-50%, -50%);
  display:grid;
  place-items:center;
  pointer-events:none;
  z-index:2;
  filter:drop-shadow(0 16px 20px rgba(0,0,0,.32));
}
.student-avatar-dynamo-companion.behind-avatar{
  z-index:0;
}
.student-avatar-dynamo-companion.front-avatar{
  z-index:2;
}
.student-avatar-dynamo-companion img{
  width:100%;
  height:auto;
  max-height:100%;
  display:block;
  object-fit:contain;
}
.student-avatar-stage .student-avatar-image.modular-avatar-composite{
  position:relative;
  width:auto;
  height:100%;
  aspect-ratio:2 / 3;
  max-width:100%;
}
.modular-avatar-composite{
  position:relative;
}
.modular-avatar-base{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  pointer-events:none;
}
.modular-avatar-layer{
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
  background-size:600% 600%;
  pointer-events:none;
}
.roster-avatar-composite{
  width:auto;
  height:100%;
  aspect-ratio:2 / 3;
}
.student-avatar-shell-page .student-avatar-image{
  max-height:100%;
}
.student-avatar-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:7px;
}
.student-avatar-stat{
  padding:6px 8px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
}
.student-avatar-stat-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:4px;
}
.student-avatar-stat-label{
  color:var(--panel-header-text);
  font-weight:800;
  font-size:12px;
}
.student-avatar-stat-value{
  color:var(--muted2);
  font-size:11px;
  font-weight:700;
}
.student-avatar-bar{
  height:7px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.06);
}
.student-avatar-bar-fill{
  height:100%;
  border-radius:999px;
}
.student-avatar-bar-fill.health{
  background:linear-gradient(90deg, #ff5f6d, #ff9f7a);
}
.student-avatar-bar-fill.xp{
  background:linear-gradient(90deg, #5db7ff, #7df0ff);
}
.student-avatar-bar-fill.elixir{
  background:linear-gradient(90deg, #9a7dff, #d86eff);
}
.student-avatar-caption{
  color:var(--muted2);
  font-size:12px;
}
.student-dynamo-panel{
  width:100%;
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:
    radial-gradient(circle at top left, rgba(76,211,142,.10), transparent 38%),
    rgba(255,255,255,.035);
}
.student-dynamo-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.student-dynamo-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.student-dynamo-create-btn{
  padding:6px 10px;
}
.student-dynamo-status-pill{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}
.student-dynamo-title{
  color:var(--panel-header-text);
  font-size:14px;
  font-weight:950;
}
.student-dynamo-sub{
  margin-top:2px;
  color:var(--muted2);
  font-size:12px;
  font-weight:800;
}
.student-dynamo-equipped{
  display:grid;
  grid-template-columns:minmax(84px, 120px) minmax(0, 1fr);
  gap:10px;
  align-items:center;
}
.student-dynamo-art{
  min-height:92px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  display:grid;
  place-items:center;
  background:rgba(0,0,0,.18);
  overflow:hidden;
  color:var(--muted);
  font-weight:900;
}
.student-dynamo-art img{
  width:100%;
  height:100%;
  max-height:120px;
  object-fit:contain;
  display:block;
}
.student-dynamo-stats{
  display:grid;
  gap:7px;
}
.student-dynamo-roster{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:6px;
}
.student-dynamo-option{
  min-width:0;
  padding:6px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.04);
  color:var(--text);
  display:grid;
  grid-template-columns:38px minmax(0, 1fr);
  gap:7px;
  align-items:center;
  text-align:left;
  cursor:pointer;
}
.student-dynamo-option:hover,
.student-dynamo-option.active{
  border-color:rgba(76,211,142,.55);
  background:rgba(76,211,142,.09);
}
.student-dynamo-option-thumb{
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(0,0,0,.18);
  display:grid;
  place-items:center;
  overflow:hidden;
}
.student-dynamo-option-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.student-dynamo-option-main{
  min-width:0;
  display:grid;
  gap:2px;
}
.student-dynamo-option-main b,
.student-dynamo-option-main small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.student-dynamo-option-main b{
  color:var(--panel-header-text);
  font-size:12px;
}
.student-dynamo-option-main small{
  color:var(--muted2);
  font-size:11px;
  font-weight:800;
}
.student-dynamo-builder-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(5,8,14,.82);
}
.student-dynamo-builder-card{
  width:min(1320px, 96vw);
  height:min(880px, 92vh);
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  gap:10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(13,18,30,.98);
  box-shadow:0 30px 80px rgba(0,0,0,.45);
  overflow:hidden;
}
.student-dynamo-builder-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px 0;
}
.student-dynamo-builder-title{
  color:var(--panel-header-text);
  font-size:20px;
  font-weight:950;
}
.student-dynamo-builder-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.student-dynamo-builder-host{
  min-height:0;
  overflow:auto;
  padding:0 12px 12px;
}
.student-dynamo-builder-host .dynamo-builder-overlay{
  position:relative;
  inset:auto;
  min-height:100%;
}
#student-tab-avatar .student-avatar-page{
  flex:1 1 auto;
  min-height:0;
  padding:10px 12px;
  display:grid;
  grid-template-columns:minmax(310px, .95fr) minmax(360px, 1.05fr);
  align-content:start;
  align-items:start;
  gap:14px;
}
.student-avatar-left-column{
  min-width:0;
  display:grid;
  gap:12px;
  align-content:start;
}
#student-tab-avatar .student-avatar-shell-page{
  width:100%;
  max-width:none;
  grid-column:2;
  grid-row:1;
}
#student-tab-avatar .student-avatar-shell-page .student-avatar-stage{
  flex:0 0 auto;
  height:clamp(350px, 62vh, 640px);
  min-height:0;
}
@media (max-width: 1100px){
  .students-manage-layout{
    grid-template-columns:1fr;
  }
  .student-mastery-summary{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .student-avatar-shell-page .student-avatar-stage{
    height:clamp(260px, 46vh, 460px);
  }
  .class-selector-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .student-avatar-stats{
    grid-template-columns:1fr;
  }
  .student-dynamo-equipped{
    grid-template-columns:1fr;
  }
  #student-tab-avatar .student-avatar-page{
    grid-template-columns:1fr;
  }
  #student-tab-avatar .student-avatar-shell-page{
    grid-column:auto;
    grid-row:auto;
  }
  .student-avatar-left-column{
    order:2;
  }
  #student-tab-avatar .student-avatar-shell-page{
    order:1;
  }
}
@media (max-width: 700px){
  .class-selector-topbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .class-selector-list{
    grid-template-columns:1fr;
  }
  .student-mastery-hero,
  .student-mastery-row-head{
    align-items:stretch;
    flex-direction:column;
  }
  .student-mastery-score{
    width:max-content;
  }
  .student-mastery-summary{
    grid-template-columns:1fr;
  }
}

.form{display:grid; gap:10px}
.field{display:grid; gap:6px}
.field label{font-size:12px; color:var(--muted)}
.field-label-row{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.field-info-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;
  height:14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  color:var(--muted);
  font-size:10px;
  line-height:1;
  cursor:help;
}
.field input,.field select,.field textarea{
  padding:10px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color: var(--text);
}
.field textarea{min-height:90px; resize:vertical}

.pill{
  display:inline-flex; gap:6px; align-items:center;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  font-size:12px;
  color: var(--muted);
}

.assets{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:12px;
  padding:12px;
}
.asset-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap:10px;
  position:relative;
  align-content:start;
  min-height:520px;
}
.asset-card{
  border:1px solid var(--line);
  border-radius:16px;
  background: rgba(0,0,0,.18);
  padding:10px;
  cursor:pointer;
  position:relative;
  transition:border-color .16s ease, background .16s ease, opacity .16s ease, filter .16s ease;
}
.asset-card:hover{border-color: rgba(106,169,255,.35)}
.asset-create-card{
  min-height:196px;
  width:100%;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:8px;
  color:var(--text);
  text-align:center;
  font:inherit;
}
.asset-create-card:disabled{
  cursor:progress;
  opacity:.68;
}
.asset-create-dynamo-card{
  border-style:dashed;
  border-color:rgba(106,169,255,.38);
  background:
    radial-gradient(circle at 30% 18%, rgba(250,204,21,.13), transparent 34%),
    radial-gradient(circle at 70% 26%, rgba(56,189,248,.14), transparent 38%),
    rgba(0,0,0,.16);
}
.asset-create-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:var(--panel-header-text);
  font-size:34px;
  font-weight:900;
  line-height:1;
}
.asset-plus-button{
  min-height:78px;
  align-self:start;
  display:grid;
  place-items:center;
  border:1px dashed rgba(106,169,255,.42);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  color:var(--panel-header-text);
  cursor:pointer;
  padding:0;
  transition:border-color .16s ease, background .16s ease, transform .16s ease, opacity .16s ease;
}
.asset-plus-button:hover{
  border-color:rgba(250,204,21,.55);
  background:rgba(255,255,255,.055);
}
.asset-plus-button:active{transform:translateY(1px)}
.asset-plus-button:disabled{
  cursor:progress;
  opacity:.68;
}
.asset-plus-symbol{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(0,0,0,.22);
  font-size:31px;
  font-weight:900;
  line-height:1;
  padding:0 0 2px;
  box-sizing:border-box;
}
.asset-card.badge-free-upload{
  border-color:rgba(76,211,142,.56);
  box-shadow:0 0 0 1px rgba(76,211,142,.18) inset;
}
.asset-card.badge-premium-slot{
  opacity:.48;
  filter:grayscale(.86);
}
.asset-card.badge-premium-slot:hover{
  opacity:.72;
  filter:grayscale(.55);
}
.asset-thumb{
  width:100%;
  height:120px;
  border-radius:12px;
  background: rgba(255,255,255,.03);
  display:grid; place-items:center;
  overflow:hidden;
}
.asset-thumb img{width:100%; height:100%; object-fit:cover}
.asset-keepsake-thumb{
  width:100%;
  height:100%;
  min-height:72px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:
    radial-gradient(circle at 30% 20%, rgba(96,165,250,.18), transparent 40%),
    rgba(0,0,0,.24);
  color:var(--panel-header-text);
  text-align:center;
  font-size:13px;
  font-weight:900;
  padding:10px;
  box-sizing:border-box;
}
.asset-keepsake-thumb.large{
  min-height:260px;
}
.asset-keepsake-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:10px;
}
.asset-keepsake-thumb span{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
}
.asset-keepsake-preview{
  width:100%;
  display:grid;
  gap:10px;
  padding:10px;
  box-sizing:border-box;
}
.asset-keepsake-preview-box{
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.03);
}
.asset-dynamo-thumb{
  width:100%;
  height:100%;
  min-height:96px;
  display:grid;
  grid-template-rows:1fr auto;
  place-items:center;
  gap:6px;
  overflow:hidden;
  border-radius:12px;
  background:
    radial-gradient(circle at 25% 18%, rgba(250,204,21,.18), transparent 34%),
    radial-gradient(circle at 75% 22%, rgba(56,189,248,.16), transparent 38%),
    rgba(0,0,0,.24);
  padding:8px;
  box-sizing:border-box;
}
.asset-dynamo-thumb.large{
  min-height:260px;
  padding:12px;
}
.asset-dynamo-thumb img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:contain;
  border-radius:12px;
}
.asset-dynamo-thumb span{
  color:var(--panel-header-text);
  font-size:13px;
  font-weight:900;
  text-align:center;
}
.asset-avatar-thumb{
  width:100%;
  height:100%;
  min-height:96px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:
    radial-gradient(circle at 24% 18%, rgba(76,211,142,.18), transparent 34%),
    radial-gradient(circle at 78% 26%, rgba(250,204,21,.12), transparent 38%),
    rgba(0,0,0,.24);
  padding:8px;
  box-sizing:border-box;
}
.asset-avatar-thumb.large{
  min-height:230px;
  padding:12px;
}
.asset-avatar-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:12px;
}
.asset-avatar-thumb span{
  color:var(--panel-header-text);
  font-size:13px;
  font-weight:900;
  text-align:center;
}
.asset-equipment-thumb{
  width:100%;
  height:100%;
  min-height:96px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:12px;
  background:
    radial-gradient(circle at 22% 18%, rgba(147,184,236,.18), transparent 35%),
    radial-gradient(circle at 78% 28%, rgba(250,204,21,.16), transparent 38%),
    rgba(0,0,0,.24);
  padding:8px;
  box-sizing:border-box;
}
.asset-equipment-thumb.large{
  min-height:230px;
  padding:12px;
}
.asset-equipment-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:12px;
}
.asset-equipment-thumb span{
  color:var(--panel-header-text);
  font-size:13px;
  font-weight:900;
  text-align:center;
}
.equipment-asset-editor{
  width:100%;
  display:grid;
  gap:12px;
  padding:10px;
  box-sizing:border-box;
}
.equipment-asset-editor-actions,
.equipment-asset-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.equipment-asset-preview-stage{
  min-height:260px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:
    linear-gradient(45deg, rgba(255,255,255,.07) 25%, transparent 25% 75%, rgba(255,255,255,.07) 75%) 0 0 / 22px 22px,
    linear-gradient(45deg, rgba(255,255,255,.07) 25%, transparent 25% 75%, rgba(255,255,255,.07) 75%) 11px 11px / 22px 22px,
    rgba(0,0,0,.18);
}
.equipment-asset-preview-stage img{
  width:100%;
  height:260px;
  display:block;
  object-fit:contain;
}
.equipment-asset-meta span{
  padding:5px 9px;
  border:1px solid rgba(147,184,236,.18);
  border-radius:999px;
  background:rgba(147,184,236,.08);
  color:var(--panel-header-text);
  font-size:12px;
  font-weight:900;
}
.asset-avatar-preview{
  width:100%;
  display:grid;
  gap:12px;
  padding:10px;
  box-sizing:border-box;
}
.asset-avatar-head{
  display:grid;
  grid-template-columns:minmax(130px, 1fr);
  gap:10px;
}
.asset-avatar-summary{
  display:grid;
  gap:6px;
  align-content:start;
}
.asset-avatar-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.asset-avatar-section-title{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.asset-avatar-repository-list,
.asset-avatar-equipment-list{
  display:grid;
  gap:6px;
}
.asset-avatar-repository-block{
  display:grid;
  gap:4px;
  min-width:0;
}
.asset-avatar-repository-children{
  display:grid;
  gap:4px;
  margin-left:calc(16px + (var(--avatar-repo-depth, 0) * 12px));
  padding-left:8px;
  border-left:1px solid rgba(148,163,184,.22);
}
.asset-avatar-repository-row,
.asset-avatar-equipment-row{
  min-height:44px;
  display:grid;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(0,0,0,.18);
  transition:border-color .16s ease, background .16s ease;
}
.asset-avatar-repository-row{
  grid-template-columns:24px minmax(0, 1fr) auto;
  padding:5px;
}
.asset-avatar-repository-row.child{
  min-height:34px;
  padding:3px 5px;
  border-radius:8px;
  background:rgba(255,255,255,.045);
}
.asset-avatar-repository-row.selected{
  border-color:rgba(250,204,21,.52);
  background:rgba(250,204,21,.08);
}
.asset-avatar-repository-row.group{
  border-style:dashed;
}
.asset-avatar-repository-row.drag-over{
  border-color:rgba(76,211,142,.72);
  background:rgba(76,211,142,.1);
}
.asset-avatar-repository-toggle,
.asset-avatar-repository-toggle-spacer{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
}
.asset-avatar-repository-toggle{
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:var(--text);
  font-size:12px;
  font-weight:950;
  line-height:1;
  cursor:pointer;
}
.asset-avatar-repository-toggle:hover{
  border-color:rgba(250,204,21,.5);
  background:rgba(250,204,21,.12);
}
.asset-avatar-repository-select{
  min-width:0;
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  align-items:center;
  gap:7px;
  padding:4px;
  border:0;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.asset-avatar-repository-child-label{
  min-width:0;
  display:grid;
  grid-template-columns:16px minmax(0, 1fr);
  align-items:center;
  gap:6px;
  padding:2px 3px;
  color:var(--text);
}
.asset-avatar-repository-grip{
  display:grid;
  place-items:center;
  width:18px;
  height:26px;
  color:var(--muted);
  font-size:14px;
  font-weight:900;
  line-height:1;
}
.asset-avatar-repository-text{
  min-width:0;
  display:grid;
  gap:1px;
}
.asset-avatar-repository-text b,
.asset-avatar-equipment-row b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
}
.asset-avatar-repository-text small,
.asset-avatar-equipment-row small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:11px;
}
.asset-avatar-repository-equipment{
  white-space:nowrap;
}
.asset-avatar-repository-unlink{
  min-height:26px;
  padding:0 8px;
  font-size:11px;
  white-space:nowrap;
}
.asset-avatar-equipment-row{
  grid-template-columns:34px minmax(0, 1fr) minmax(0, .8fr) auto;
  padding:5px 6px;
}
.asset-avatar-equipment-row span{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:8px;
  background:rgba(255,255,255,.055);
}
.asset-avatar-equipment-row img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.dynamo-submission-review-panel{
  grid-column:1 / -1;
  display:grid;
  gap:10px;
  padding:10px;
  border:1px solid rgba(76,211,142,.24);
  border-radius:14px;
  background:
    radial-gradient(circle at 4% 0%, rgba(76,211,142,.14), transparent 32%),
    rgba(255,255,255,.035);
}
.dynamo-submission-review-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.dynamo-submission-review-head b,
.dynamo-submission-main b{
  color:var(--panel-header-text);
  font-weight:950;
}
.dynamo-submission-review-head small,
.dynamo-submission-main small{
  display:block;
  color:var(--muted2);
  font-size:12px;
  font-weight:800;
}
.dynamo-submission-select{
  min-width:min(360px, 100%);
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(0,0,0,.2);
  color:var(--text);
}
.dynamo-submission-review-body{
  display:grid;
  grid-template-columns:84px minmax(0, 1fr);
  gap:10px;
  align-items:center;
}
.dynamo-submission-thumb{
  width:84px;
  height:84px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(0,0,0,.20);
  color:var(--muted);
  font-size:11px;
  font-weight:900;
}
.dynamo-submission-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.dynamo-submission-main{
  min-width:0;
  display:grid;
  gap:5px;
}
.dynamo-submission-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.dynamo-type-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border:1px solid color-mix(in srgb, var(--dynamo-type-color, #6aa9ff) 70%, transparent);
  border-radius:999px;
  padding:3px 7px;
  background:color-mix(in srgb, var(--dynamo-type-color, #6aa9ff) 18%, transparent);
  color:#f8fafc;
  font-size:11px;
  font-weight:900;
  letter-spacing:.02em;
}
.asset-dynamo-preview{
  width:100%;
  display:grid;
  grid-template-columns:minmax(220px, .72fr) minmax(320px, 1.28fr);
  gap:12px;
  padding:10px;
  box-sizing:border-box;
  align-items:start;
}
.asset-dynamo-side-preview{
  width:100%;
  display:grid;
  gap:10px;
  padding:10px;
  box-sizing:border-box;
}
.dynamo-builder-overlay{
  position:absolute;
  inset:0;
  z-index:12;
  border:1px solid rgba(106,169,255,.22);
  border-radius:18px;
  background:
    radial-gradient(circle at 12% 10%, rgba(106,169,255,.14), transparent 30%),
    rgba(6,10,18,.97);
  box-shadow:0 22px 70px rgba(0,0,0,.42);
  overflow:hidden;
  padding:12px;
}
.dynamo-builder-shell{
  width:100%;
  height:100%;
  min-height:520px;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  gap:12px;
}
.dynamo-builder-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  padding:12px 14px;
}
.dynamo-builder-titlebar{
  min-width:0;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.dynamo-builder-kicker{
  color:var(--minor-font-2, var(--muted));
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.dynamo-builder-heading{
  color:var(--panel-header-text);
  font-family:var(--header-font, inherit);
  font-size:27px;
  font-weight:900;
  line-height:1.05;
}
.dynamo-builder-exit{
  background:rgba(8,12,20,.92);
  backdrop-filter:blur(10px);
  white-space:nowrap;
}
.dynamo-builder-body{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:12px;
  overflow:hidden;
}
.dynamo-preview-panel,
.dynamo-chain-panel{
  min-height:0;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(0,0,0,.18);
  padding:12px;
  display:grid;
  gap:12px;
  overflow:auto;
}
.asset-dynamo-main-card,
.dynamo-builder{
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(0,0,0,.18);
  padding:10px;
  display:grid;
  gap:10px;
  min-width:0;
}
.asset-dynamo-preview-art{
  position:relative;
  min-height:240px;
  max-height:320px;
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,.03);
}
.dynamo-preview-tabs{
  display:flex;
  align-items:center;
  gap:6px;
}
.dynamo-preview-tabs .btn.active{
  border-color:rgba(76,211,142,.48);
  background:rgba(76,211,142,.18);
  color:var(--panel-header-text);
}
.dynamo-bodypart-panel{
  display:grid;
  gap:10px;
}
.dynamo-bodypart-panel[hidden],
.asset-dynamo-preview-art[hidden]{
  display:none !important;
}
.dynamo-bodypart-stage{
  position:relative;
  aspect-ratio:16 / 9;
  width:100%;
  min-height:240px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.08), transparent 42%),
    rgba(0,0,0,.22);
  overflow:hidden;
}
.dynamo-bodypart-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  color:var(--muted2);
  font-weight:850;
  text-align:center;
}
.dynamo-bodypart-piece{
  position:absolute;
  display:block;
  padding:0;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  cursor:grab;
  touch-action:none;
  transition:opacity .14s ease, filter .14s ease, border-color .14s ease;
}
.dynamo-bodypart-piece:active{
  cursor:grabbing;
}
.dynamo-bodypart-piece.active{
  border-color:rgba(250,204,21,.82);
  filter:drop-shadow(0 0 10px rgba(250,204,21,.24));
}
.dynamo-bodypart-piece.dimmed{
  opacity:.4;
}
.dynamo-bodypart-piece img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  pointer-events:none;
  user-select:none;
}
.dynamo-bodypart-piece svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.dynamo-bodypart-piece line{
  stroke:#facc15;
  stroke-width:2.5;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 4px rgba(250,204,21,.45));
}
.dynamo-bodypart-piece circle{
  fill:#0f172a;
  stroke:#facc15;
  stroke-width:1.2;
  vector-effect:non-scaling-stroke;
}
.dynamo-bodypart-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
}
.dynamo-bodypart-hint{
  text-align:center;
}
.dynamo-main-drop-zone{
  border:1px dashed rgba(255,255,255,.12);
  transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.dynamo-main-drop-zone.drag-over{
  border-color:rgba(76,211,142,.8);
  background:rgba(76,211,142,.08);
  box-shadow:0 0 0 2px rgba(76,211,142,.12) inset;
}
.dynamo-main-drop-hint{
  position:absolute;
  left:10px;
  right:10px;
  bottom:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(6,10,18,.82);
  color:var(--minor-font-2, var(--muted));
  font-size:11px;
  font-weight:900;
  backdrop-filter:blur(8px);
}
.dynamo-main-drop-hint .btn{
  min-height:0;
  padding:5px 8px;
  font-size:11px;
}
.dynamo-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:12px;
}
.dynamo-panel-title{
  font-family:var(--header-font, inherit);
  color:var(--panel-header-text);
  font-size:20px;
  font-weight:900;
}
.dynamo-type-selects{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.dynamo-type-selects-inline{
  grid-template-columns:repeat(2, minmax(118px, 150px));
  align-items:end;
  gap:8px;
}
.dynamo-type-selects label{
  display:grid;
  gap:4px;
  color:var(--minor-font-2, var(--muted));
  font-size:12px;
  font-weight:800;
}
.dynamo-type-selects-inline select{
  min-width:0;
  width:100%;
  height:34px;
  padding:5px 26px 5px 9px;
}
.dynamo-dye-panel{
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  padding:9px;
  display:grid;
  gap:8px;
}
.dynamo-dye-title{
  color:var(--minor-font-1, #f8fafc);
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
}
.dynamo-dye-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.dynamo-dye-control{
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:rgba(0,0,0,.16);
  padding:7px;
  display:grid;
  grid-template-columns:1fr 34px;
  align-items:center;
  gap:7px;
  color:var(--minor-font-2, var(--muted));
  font-size:11px;
  font-weight:900;
}
.dynamo-dye-control input[type="color"]{
  width:34px;
  height:28px;
  padding:0;
  border:1px solid rgba(255,255,255,.16);
  border-radius:9px;
  background:transparent;
  overflow:hidden;
}
.dynamo-dye-panel code{
  color:var(--minor-font-1, #f8fafc);
  font-size:11px;
}
.dynamo-format-note{
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
}
.dynamo-stage-count-row{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  color:var(--minor-font-2, var(--muted));
  font-size:12px;
  font-weight:900;
}
.dynamo-stage-count-select{
  display:flex;
  align-items:center;
  gap:7px;
}
.dynamo-stage-count-select select{
  min-width:58px;
  height:30px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  padding:4px 8px;
  background:rgba(255,255,255,.06);
  color:var(--panel-header-text);
  font-weight:900;
}
.dynamo-stage-list{
  display:grid;
  gap:10px;
  align-content:start;
}
.dynamo-stage-box{
  position:relative;
  border:1px dashed rgba(255,255,255,.22);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  min-height:110px;
  padding:12px;
  display:grid;
  grid-template-columns:96px minmax(0, 1fr);
  gap:12px;
  align-items:center;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}
.dynamo-stage-box.filled{
  border-style:solid;
  border-color:rgba(106,169,255,.28);
}
.dynamo-stage-box.drag-over{
  border-color:rgba(76,211,142,.78);
  background:rgba(76,211,142,.12);
  transform:translateY(-1px);
}
.dynamo-stage-label{
  color:var(--minor-font-1, #f8fafc);
  font-size:12px;
  font-weight:900;
  display:grid;
  gap:6px;
}
.dynamo-stage-level{
  display:grid;
  gap:3px;
  color:var(--minor-font-2, var(--muted));
  font-size:11px;
}
.dynamo-stage-level input{
  width:82px;
  min-width:0;
  padding:5px 6px;
  border-radius:9px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.22);
  color:var(--text);
}
.dynamo-stage-content{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(118px, 150px) minmax(0, 1fr);
  align-items:center;
  gap:10px;
}
.dynamo-stage-view-pair{
  min-width:0;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.dynamo-stage-view-slot{
  min-width:0;
  display:grid;
  gap:5px;
  justify-items:center;
  color:var(--minor-font-2, var(--muted));
  font-size:10px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.dynamo-stage-view-slot .btn{
  min-height:0;
  padding:4px 7px;
  font-size:10px;
  line-height:1;
}
.dynamo-stage-view-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-wrap:wrap;
}
.dynamo-stage-view-slot.drag-over .dynamo-stage-thumb{
  border-color:rgba(74,222,128,.75);
  box-shadow:0 0 0 2px rgba(74,222,128,.16);
}
.dynamo-stage-view-slot .dynamo-stage-thumb{
  width:74px;
  height:74px;
}
.dynamo-stage-thumb{
  width:82px;
  height:82px;
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,.03);
}
.dynamo-stage-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.dynamo-stage-thumb.empty{
  border:1px dashed rgba(255,255,255,.18);
  border-radius:14px;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:26px;
  font-weight:900;
  background:rgba(255,255,255,.03);
  font-size:13px;
}
.dynamo-stage-thumb .asset-dynamo-thumb{
  min-height:0;
  padding:5px;
}
.dynamo-stage-name{
  min-width:0;
  color:var(--panel-header-text);
  font-weight:900;
  display:grid;
  gap:6px;
}
.dynamo-stage-name > span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dynamo-stage-title-input{
  min-width:0;
  width:100%;
  padding:2px 0;
  border:0;
  border-bottom:1px solid transparent;
  background:transparent;
  color:var(--panel-header-text);
  font:inherit;
  font-weight:900;
  outline:none;
}
.dynamo-stage-title-input:hover,
.dynamo-stage-title-input:focus{
  border-bottom-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.04);
  border-radius:6px;
  padding-inline:4px;
}
.dynamo-stage-front-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.dynamo-stage-front-actions .btn,
.dynamo-stage-name > .btn{
  min-height:0;
  width:max-content;
  padding:6px 9px;
  font-size:11px;
}
.presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell{
  grid-template-columns:minmax(0, 1fr) minmax(300px, 380px);
  grid-template-areas:"slide editor";
}
.presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell.equipment-builder-slide-maker-shell.with-rail{
  grid-template-columns:190px minmax(0, 1fr) minmax(300px, 380px);
  grid-template-areas:"sorter slide editor";
}
.presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell.equipment-builder-slide-maker-shell.with-rail-toggle{
  grid-template-columns:34px minmax(0, 1fr) minmax(300px, 380px);
  grid-template-areas:"toggle slide editor";
}
.presentation-dynamo-bodypart-builder .presentation-slide-tool-grid,
.presentation-badge-builder .presentation-slide-tool-grid,
.presentation-equipment-builder .presentation-slide-tool-grid{
  grid-template-columns:1fr;
}
.presentation-dynamo-bodypart-builder .presentation-slide-tool-button,
.presentation-badge-builder .presentation-slide-tool-button,
.presentation-equipment-builder .presentation-slide-tool-button{
  min-height:52px;
}
.presentation-dynamo-bodypart-builder .presentation-slide-maker-preview,
.presentation-badge-builder .presentation-slide-maker-preview,
.presentation-equipment-builder .presentation-slide-maker-preview{
  background-image:none;
}
.equipment-builder-header-controls{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  min-width:260px;
}
.equipment-builder-header-controls input[type="text"],
.equipment-builder-header-controls select{
  height:34px;
  min-width:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(0,0,0,.22);
  color:var(--text);
  font-weight:850;
}
.equipment-builder-header-controls input[type="text"]{
  width:clamp(150px, 18vw, 240px);
  padding:0 10px;
}
.equipment-builder-header-controls select{
  width:clamp(92px, 12vw, 150px);
  padding:0 26px 0 10px;
}
.equipment-builder-reference-opacity{
  height:34px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(0,0,0,.18);
  color:var(--muted);
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
}
.equipment-builder-reference-opacity input{
  width:86px;
  accent-color:var(--minor1);
}
.presentation-equipment-reference-body{
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  place-items:center;
  pointer-events:none;
}
.presentation-equipment-reference-body img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.presentation-equipment-reference-body span{
  padding:8px 12px;
  border-radius:999px;
  background:rgba(15,23,42,.72);
  color:#111827;
  font-size:12px;
  font-weight:900;
}
.presentation-slide-maker-overlay .presentation-slide-maker-header{
  flex-wrap:wrap;
}
.dynamo-bodypart-palette-bar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  max-width:min(760px, 68vw);
  color:var(--text);
}
.dynamo-bodypart-palette-title{
  font-size:11px;
  font-weight:1000;
  letter-spacing:0;
  text-transform:uppercase;
  color:var(--muted);
}
.dynamo-bodypart-palette-item{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
.dynamo-bodypart-palette-item.dragging{
  opacity:.45;
}
.dynamo-bodypart-palette-drop-zone{
  align-self:stretch;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:10px;
  min-height:32px;
  border-radius:999px;
  transition:background-color .12s ease;
}
.dynamo-bodypart-palette-drop-zone::before{
  content:"";
  width:2px;
  height:24px;
  border-radius:999px;
  background:transparent;
  transition:background-color .12s ease, box-shadow .12s ease;
}
.dynamo-bodypart-palette-drop-zone.active{
  background:rgba(250,204,21,.14);
}
.dynamo-bodypart-palette-drop-zone.active::before{
  background:#facc15;
  box-shadow:0 0 0 3px rgba(250,204,21,.2);
}
.dynamo-bodypart-palette-swatch{
  display:block;
  width:28px;
  height:28px;
  border-radius:6px;
  border:2px solid rgba(255,255,255,.34);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);
}
.dynamo-bodypart-palette-item.active .dynamo-bodypart-palette-swatch{
  outline:2px solid #facc15;
  outline-offset:2px;
}
.dynamo-bodypart-palette-edit-popover{
  position:absolute;
  left:50%;
  top:36px;
  z-index:2147483200;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:9px;
  width:286px;
  padding:10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:10px;
  background:#f8fafc;
  box-shadow:0 14px 34px rgba(0,0,0,.45);
  transform:translateX(-50%);
}
.dynamo-bodypart-color-panel{
  position:relative;
  width:264px;
  height:156px;
  border-radius:2px;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.2);
  cursor:crosshair;
}
.dynamo-bodypart-color-panel-marker{
  position:absolute;
  z-index:1;
  width:16px;
  height:16px;
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(15,23,42,.72), 0 2px 5px rgba(0,0,0,.35);
  transform:translate(-50%, -50%);
  pointer-events:none;
}
.dynamo-bodypart-color-picker-row{
  display:grid;
  grid-template-columns:32px 44px minmax(0, 1fr);
  align-items:center;
  gap:10px;
  width:100%;
}
.dynamo-bodypart-color-eyedropper{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  color:#0f172a;
  cursor:pointer;
}
.dynamo-bodypart-color-eyedropper:disabled{
  cursor:not-allowed;
  opacity:.32;
}
.dynamo-bodypart-color-eyedropper svg{
  display:block;
  width:28px;
  height:28px;
  fill:currentColor;
  stroke:none;
}
.dynamo-bodypart-color-preview{
  width:42px;
  height:42px;
  border:2px solid rgba(15,23,42,.25);
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.dynamo-bodypart-hue-slider{
  position:relative;
  height:20px;
  border-radius:4px;
  background:linear-gradient(90deg, #f00 0%, #ff0 16.666%, #0f0 33.333%, #0ff 50%, #00f 66.666%, #f0f 83.333%, #f00 100%);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.18);
  cursor:pointer;
}
.dynamo-bodypart-hue-marker{
  position:absolute;
  top:50%;
  width:20px;
  height:20px;
  border:4px solid #fff;
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(15,23,42,.45), 0 2px 5px rgba(0,0,0,.25);
  transform:translate(-50%, -50%);
  pointer-events:none;
}
.dynamo-bodypart-palette-edit-popover .dynamo-bodypart-color-code{
  width:100%;
  height:34px;
  padding:5px 9px;
  border:1px solid rgba(15,23,42,.24);
  border-radius:6px;
  background:#fff;
  color:#020617;
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
}
.dynamo-bodypart-palette-add,
.dynamo-bodypart-palette-link,
.dynamo-bodypart-palette-brush,
.dynamo-bodypart-palette-eraser,
.dynamo-bodypart-palette-action{
  height:28px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:7px;
  background:rgba(255,255,255,.06);
  color:var(--panel-header-text);
  font-weight:1000;
  cursor:pointer;
}
.dynamo-bodypart-palette-add{
  width:28px;
  font-size:18px;
  line-height:1;
}
.dynamo-bodypart-palette-link{
  padding:0 8px;
  font-size:11px;
}
.dynamo-bodypart-palette-action{
  padding:0 8px;
  font-size:11px;
}
.dynamo-bodypart-palette-action.icon-only{
  display:grid;
  place-items:center;
  width:28px;
  padding:0;
}
.dynamo-bodypart-palette-action.icon-only svg{
  display:block;
  width:18px;
  height:18px;
}
.dynamo-bodypart-palette-action.delete-symbol{
  font-size:21px;
  line-height:1;
}
.dynamo-bodypart-palette-action:disabled{
  cursor:not-allowed;
  opacity:.42;
}
.dynamo-bodypart-palette-brush,
.dynamo-bodypart-palette-eraser{
  display:grid;
  place-items:center;
  width:28px;
  padding:0;
}
.dynamo-bodypart-palette-brush img{
  display:block;
  width:20px;
  height:20px;
  object-fit:contain;
  filter:invert(1);
  opacity:.86;
  pointer-events:none;
}
.dynamo-bodypart-palette-eraser svg{
  display:block;
  width:21px;
  height:21px;
}
.dynamo-bodypart-palette-brush.active,
.dynamo-bodypart-palette-eraser.active,
.dynamo-bodypart-palette-action.active{
  border-color:rgba(250,204,21,.8);
  background:rgba(250,204,21,.2);
  color:#facc15;
  box-shadow:0 0 0 2px rgba(250,204,21,.16);
}
.dynamo-bodypart-palette-brush.active img{
  filter:invert(82%) sepia(78%) saturate(761%) hue-rotate(354deg) brightness(101%) contrast(97%);
  opacity:1;
}
.dynamo-bodypart-palette-gradient-wrap{
  display:flex;
  align-items:center;
}
.dynamo-bodypart-palette-gradient{
  position:relative;
  display:block;
  width:132px;
  height:28px;
  border:2px solid rgba(255,255,255,.72);
  border-radius:6px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.22);
  cursor:pointer;
}
.dynamo-bodypart-palette-gradient-handle{
  position:absolute;
  top:50%;
  width:24px;
  height:42px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:translate(-50%, -50%);
  cursor:grab;
}
.dynamo-bodypart-palette-gradient-handle::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(
    to bottom,
    #facc15 0 calc(50% - 12px),
    transparent calc(50% - 12px) calc(50% + 12px),
    #facc15 calc(50% + 12px) 100%
  );
  transform:translateX(-50%);
}
.dynamo-bodypart-palette-gradient-handle::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:14px;
  border:2px solid #facc15;
  border-radius:3px;
  background:transparent;
  box-shadow:0 0 0 1px rgba(15,23,42,.4);
  transform:translate(-50%, -50%) rotate(45deg);
}
.dynamo-bodypart-palette-gradient-handle:active{
  cursor:grabbing;
}
.dynamo-bodypart-palette-sample .dynamo-bodypart-palette-swatch{
  border-style:double;
}
.dynamo-placement-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(3, 7, 18, .76);
  backdrop-filter:blur(10px);
}
.dynamo-placement-card{
  width:min(900px, 96vw);
  max-height:94vh;
  display:grid;
  gap:12px;
  padding:16px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(18,27,39,.98), rgba(8,12,20,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.48);
}
.dynamo-placement-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.dynamo-placement-title{
  color:var(--panel-header-text);
  font-size:24px;
  font-weight:950;
  line-height:1;
}
.dynamo-placement-preview{
  position:relative;
  height:min(62vh, 560px);
  min-height:340px;
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 22%, rgba(255,255,255,.12), transparent 46%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(0,0,0,.18));
}
.dynamo-placement-avatar{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  height:92%;
  max-width:68%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  z-index:2;
}
.dynamo-placement-companion{
  position:absolute;
  transform:translate(-50%, -50%);
  cursor:grab;
  touch-action:none;
  filter:drop-shadow(0 18px 20px rgba(0,0,0,.36));
  z-index:3;
}
.dynamo-placement-preview.dynamo-layer-behind .dynamo-placement-companion{
  z-index:1;
}
.dynamo-placement-companion:active{
  cursor:grabbing;
}
.dynamo-placement-companion img{
  width:100%;
  height:auto;
  display:block;
  pointer-events:none;
  user-select:none;
}
.dynamo-placement-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
}
.dynamo-placement-layer-toggle{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.045);
}
.dynamo-placement-layer-toggle .btn{
  min-height:0;
  padding:6px 10px;
}
.dynamo-placement-layer-toggle .btn.active{
  border-color:rgba(76,211,142,.42);
  background:rgba(76,211,142,.16);
  color:var(--panel-header-text);
}
.dynamo-placement-controls .btn.active{
  border-color:rgba(76,211,142,.42);
  background:rgba(76,211,142,.16);
  color:var(--panel-header-text);
}
.dynamo-placement-controls .btn.default-reference-active{
  border-color:rgba(248,113,113,.72);
  background:rgba(248,113,113,.22);
  color:#fecaca;
  box-shadow:0 0 0 1px rgba(248,113,113,.16), 0 0 18px rgba(248,113,113,.12);
}
.dynamo-placement-controls .btn.default-reference-stale{
  border-color:rgba(148,163,184,.22);
  background:rgba(148,163,184,.10);
  color:rgba(203,213,225,.64);
}
.dynamo-battle-placement-card{
  width:min(1040px, 98vw);
}
.dynamo-battle-placement-preview{
  min-height:clamp(440px, 62vh, 660px);
}
.battle-scene-preview-card{
  position:relative;
  min-height:260px;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(3,7,18,.05), rgba(3,7,18,.22)),
    var(--battle-scene-layer),
    linear-gradient(180deg, #111b35 0%, #18284b 50%, #0b1019 100%);
  background-size:cover, cover, cover;
  background-position:center;
  box-shadow:inset 0 0 60px rgba(0,0,0,.28);
}
.battle-scene-reference-chip{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:130px;
  min-height:22px;
  padding:2px 12px;
  border-radius:999px;
  background:rgba(7,10,18,.72);
  border:1px solid rgba(255,255,255,.22);
  color:rgba(255,255,255,.88);
  font-size:11px;
  font-weight:900;
}
.battle-scene-reference-chip.muted-chip{
  color:var(--muted2);
  border-style:dashed;
}
.dynamo-battle-placement-token{
  position:absolute;
  z-index:8;
  display:grid;
  place-items:center;
  cursor:grab;
  touch-action:none;
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.42));
}
.dynamo-battle-placement-token.active{
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.42)) drop-shadow(0 0 12px rgba(76,211,142,.22));
}
.dynamo-battle-placement-token:active{
  cursor:grabbing;
}
.dynamo-battle-placement-token img{
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
}
.dynamo-battle-placement-token b{
  position:absolute;
  left:50%;
  bottom:-30px;
  transform:translateX(-50%);
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(5,10,20,.82);
  color:var(--panel-header-text);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.dynamo-placement-hint{
  text-align:center;
}
.dynamo-animation-modal{
  position:fixed;
  inset:0;
  z-index:2147483647;
  background:rgba(3,7,18,.92);
  backdrop-filter:blur(12px);
  display:block;
  color:var(--panel-header-text);
}
.dynamo-animation-shell{
  height:100vh;
  width:100vw;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  padding:14px;
  box-sizing:border-box;
  gap:12px;
}
.dynamo-animation-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:12px 14px;
  background:linear-gradient(135deg, rgba(18,27,39,.94), rgba(8,12,20,.9));
}
.dynamo-animation-title{
  font-size:26px;
  font-weight:950;
  line-height:1;
}
.dynamo-animation-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.dynamo-animation-source-toggle{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.055);
}
.dynamo-animation-source-toggle .btn{
  min-height:26px;
  padding:3px 10px;
  border-radius:999px;
  font-size:11px;
}
.dynamo-animation-source-toggle .btn.active{
  border-color:rgba(76,211,142,.48);
  background:rgba(76,211,142,.2);
  color:var(--panel-header-text);
}
.dynamo-animation-modular-add-top{
  min-height:32px;
  padding:5px 12px;
  border-radius:999px;
  border-color:rgba(250,204,21,.34);
  background:rgba(250,204,21,.12);
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:900;
}
.dynamo-animation-control{
  min-height:32px;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  padding:4px 9px;
  background:rgba(255,255,255,.055);
  color:var(--muted2);
  font-size:11px;
  font-weight:850;
}
.dynamo-animation-control input[type="range"]{
  width:112px;
  accent-color:var(--panel-header-text);
}
.dynamo-animation-layer-control{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  padding:4px 7px;
  background:rgba(255,255,255,.055);
  color:var(--muted2);
  font-size:11px;
  font-weight:850;
}
.dynamo-animation-layer-control strong{
  min-width:38px;
  text-align:center;
  color:var(--panel-header-text);
  font-size:12px;
  font-weight:950;
}
.dynamo-animation-layer-control .btn{
  min-height:24px;
  min-width:24px;
  padding:0;
  border-radius:999px;
  line-height:1;
}
.dynamo-animation-layer-control.disabled{
  opacity:.48;
}
.dynamo-animation-layer-control .btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.dynamo-animation-layer-overlay{
  position:absolute;
  top:12px;
  left:12px;
  z-index:6;
  background:rgba(8,12,20,.86);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}
.dynamo-animation-stage-actions{
  position:absolute;
  top:12px;
  right:12px;
  z-index:7;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.dynamo-animation-mode-tray{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:8;
  display:flex;
  align-items:center;
  gap:8px;
  pointer-events:auto;
}
.dynamo-animation-mode-btn{
  min-height:34px;
  padding:0 13px;
  border-radius:999px;
  background:rgba(8,12,20,.86);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}
.dynamo-animation-mode-tray .btn.active{
  border-color:rgba(76,211,142,.48);
  background:rgba(76,211,142,.2);
  color:var(--panel-header-text);
}
.dynamo-bone-mode-hint{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  max-width:min(58vw, 520px);
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  color:var(--panel-header-text-2, var(--muted));
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
  opacity:0;
  transform:translateX(4px);
  pointer-events:none;
  transition:opacity .14s ease, transform .14s ease;
}
.dynamo-bone-mode .dynamo-bone-mode-hint{
  opacity:1;
  transform:translateX(0);
}
.dynamo-bone-mode-hint span{
  display:inline-flex;
  align-items:center;
  gap:3px;
  min-height:30px;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(8,12,20,.88);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}
.dynamo-bone-mode-hint b{
  color:var(--panel-header-text);
  font-size:9px;
  font-weight:950;
}
.dynamo-mouse-icon{
  position:relative;
  width:13px;
  height:17px;
  display:inline-block;
  border:1px solid rgba(255,255,255,.78);
  border-radius:7px 7px 6px 6px;
  background:rgba(255,255,255,.08);
  box-shadow:0 0 0 1px rgba(0,0,0,.18) inset;
}
.dynamo-mouse-icon::before{
  content:"";
  position:absolute;
  left:50%;
  top:2px;
  width:1px;
  height:5px;
  background:rgba(255,255,255,.62);
}
.dynamo-mouse-icon::after{
  content:"";
  position:absolute;
  top:2px;
  width:5px;
  height:6px;
  border-radius:5px 2px 2px 2px;
  background:rgba(76,211,142,.78);
}
.dynamo-mouse-icon.left::after{
  left:2px;
}
.dynamo-mouse-icon.right::after{
  right:2px;
  border-radius:2px 5px 2px 2px;
  background:rgba(251,113,133,.82);
}
.dynamo-animation-reset-pose,
.dynamo-animation-create-frame{
  position:static;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(8,12,20,.86);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}
.dynamo-animation-color-control input[type="color"]{
  width:28px;
  height:24px;
  border:0;
  border-radius:999px;
  padding:0;
  background:transparent;
  cursor:pointer;
}
.dynamo-animation-actions .btn.active{
  border-color:rgba(76,211,142,.42);
  background:rgba(76,211,142,.16);
  color:var(--panel-header-text);
}
.dynamo-animation-grid{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(430px, .9fr) minmax(480px, 1.1fr);
  gap:12px;
}
.dynamo-animation-left,
.dynamo-animation-right,
.dynamo-animation-stage-wrap{
  min-height:0;
  border:1px solid rgba(255,255,255,.13);
  border-radius:20px;
  background:rgba(8,12,20,.72);
  overflow:hidden;
}
.dynamo-animation-left,
.dynamo-animation-right{
  display:grid;
  align-content:start;
  gap:10px;
  padding:12px;
  overflow:auto;
}
.dynamo-animation-help{
  display:grid;
  gap:8px;
  color:var(--muted2);
  font-size:12px;
  line-height:1.35;
}
.dynamo-animation-help b,
.dynamo-sequencer-head b,
.dynamo-bone-panel-title{
  color:var(--panel-header-text);
  font-weight:950;
}
.dynamo-animation-stage-wrap{
  display:grid;
  place-items:center;
  padding:16px;
}
.dynamo-animation-stage{
  position:relative;
  width:100%;
  height:min(100%, 76vh);
  min-height:520px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.10), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(0,0,0,.16));
  overflow:hidden;
}
.dynamo-floating-frame-host{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:4;
  pointer-events:none;
}
.dynamo-floating-frame{
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
  border:1px solid rgba(250,204,21,.5);
  border-radius:14px;
  padding:6px;
  background:linear-gradient(135deg, rgba(250,204,21,.22), rgba(14,165,233,.16));
  box-shadow:0 16px 36px rgba(0,0,0,.32), 0 0 18px rgba(250,204,21,.18);
  cursor:grab;
  pointer-events:auto;
}
.dynamo-floating-frame img,
.dynamo-floating-frame canvas{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.dynamo-animation-viewport{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transform-origin:0 0;
  will-change:transform;
}
.dynamo-animation-stage img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
}
.dynamo-animation-mesh-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  pointer-events:none;
  user-select:none;
}
.dynamo-animation-mesh-canvas.active{
  opacity:1;
}
.dynamo-animation-svg{
  position:absolute;
  inset:0;
  z-index:7;
  width:100%;
  height:100%;
  cursor:crosshair;
  touch-action:none;
}
.dynamo-modular-position-active .dynamo-animation-svg{
  opacity:1;
  pointer-events:none;
}
.dynamo-modular-bone-active .dynamo-animation-modular-layer{
  pointer-events:none;
}
.dynamo-animation-modular-layer{
  position:absolute;
  inset:0;
  z-index:6;
  overflow:hidden;
}
.dynamo-animation-modular-layer[hidden]{
  display:none;
}
.dynamo-animation-modular-empty{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:min(360px, calc(100% - 36px));
  padding:14px 16px;
  border:1px dashed rgba(255,255,255,.24);
  border-radius:14px;
  background:rgba(0,0,0,.42);
  color:var(--muted2);
  text-align:center;
  font-weight:800;
}
.dynamo-animation-modular-piece{
  position:absolute;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(250,204,21,.44);
  border-radius:10px;
  background:rgba(250,204,21,.09);
  cursor:grab;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  touch-action:none;
}
.dynamo-animation-modular-piece.dragging{
  cursor:grabbing;
  border-color:rgba(250,204,21,.88);
  box-shadow:0 0 0 2px rgba(250,204,21,.18), 0 14px 32px rgba(0,0,0,.3);
}
.dynamo-animation-modular-piece.selected{
  border-color:rgba(76,211,142,.9);
  box-shadow:0 0 0 2px rgba(76,211,142,.22), 0 14px 32px rgba(0,0,0,.3);
}
.dynamo-animation-modular-piece.hidden-part{
  opacity:.2;
  filter:grayscale(.35);
  border-style:dashed;
}
.dynamo-animation-modular-piece img{
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}
.dynamo-animation-modular-piece svg{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.dynamo-animation-modular-piece line{
  stroke:#facc15;
  stroke-width:1.1;
  vector-effect:non-scaling-stroke;
}
.dynamo-animation-modular-piece circle{
  fill:#22c55e;
  stroke:#ecfdf5;
  stroke-width:.55;
  vector-effect:non-scaling-stroke;
}
.dynamo-erasing .dynamo-animation-svg{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg transform='rotate(-35 14 14)'%3E%3Crect x='6' y='10' width='16' height='9' rx='2' fill='%23f8fafc' stroke='%230f172a' stroke-width='2'/%3E%3Crect x='6' y='10' width='6' height='9' rx='2' fill='%23fb7185' stroke='%230f172a' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E") 7 20, cell;
}
.dynamo-pivot-active .dynamo-animation-svg{
  cursor:crosshair;
}
.dynamo-bone-line{
  stroke:var(--dynamo-bone-color, rgba(110,231,255,.96));
  stroke-width:2.5;
  stroke-linecap:round;
  pointer-events:stroke;
  vector-effect:non-scaling-stroke;
  cursor:grab;
  filter:drop-shadow(0 0 6px rgba(110,231,255,.32));
}
.dynamo-bone-line.selected{
  stroke:#facc15;
  stroke-width:3.5;
}
.dynamo-bone-line.temp{
  stroke:#c4b5fd;
  stroke-width:2.8;
  stroke-dasharray:2 2;
}
.dynamo-bone-joint{
  fill:rgba(8,12,20,.92);
  stroke:rgba(255,255,255,.88);
  stroke-width:.65;
  vector-effect:non-scaling-stroke;
  cursor:grab;
}
.dynamo-bone-joint.selected{
  fill:#facc15;
  stroke:#fff7ed;
}
.dynamo-bone-hinge{
  fill:#22c55e;
  stroke:#ecfdf5;
  stroke-width:.75;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 6px rgba(34,197,94,.75));
}
.dynamo-pivot-handle{
  cursor:grab;
}
.dynamo-pivot-handle path{
  fill:none;
  stroke:#facc15;
  stroke-width:.85;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 5px rgba(250,204,21,.5));
  pointer-events:none;
}
.dynamo-pivot-handle circle{
  fill:rgba(250,204,21,.12);
  stroke:rgba(250,204,21,.78);
  stroke-width:.5;
  vector-effect:non-scaling-stroke;
}
.dynamo-paint-blob{
  opacity:.76;
  pointer-events:none;
}
.dynamo-mesh-influence-blob{
  opacity:.32;
  pointer-events:none;
  mix-blend-mode:screen;
}
.dynamo-mesh-influence-blob.selected{
  opacity:.62;
}
.dynamo-mesh-influence-blob .dynamo-paint-stroke,
.dynamo-mesh-influence-blob .dynamo-paint-cell{
  filter:drop-shadow(0 0 2px rgba(34,197,94,.5));
}
.dynamo-paint-mask{
  opacity:.76;
  pointer-events:none;
}
.dynamo-captured-flesh{
  opacity:1;
  pointer-events:none;
}
.dynamo-paint-cell{
  stroke:none;
  pointer-events:none;
}
.dynamo-paint-stroke{
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.dynamo-bone-list{
  display:grid;
  gap:8px;
}
.dynamo-bone-list-item{
  display:flex;
  justify-content:space-between;
  gap:8px;
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:8px 10px;
  background:rgba(255,255,255,.045);
  color:var(--panel-header-text);
  cursor:pointer;
}
.dynamo-bone-list-item.active{
  border-color:rgba(250,204,21,.42);
  background:rgba(250,204,21,.12);
}
.dynamo-bone-list-item small{
  color:var(--muted2);
  white-space:nowrap;
}
.dynamo-sequencer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.dynamo-sequencer{
  display:grid;
  gap:9px;
  overflow:visible;
  padding-bottom:4px;
}
.dynamo-sequence-row{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  padding:8px;
  background:rgba(255,255,255,.035);
}
.dynamo-sequence-row.field-sequence{
  min-width:min(100%, 520px);
}
.dynamo-sequence-row.collapsed{
  background:rgba(255,255,255,.025);
}
.dynamo-sequence-row.collapsed .dynamo-sprite-upload-btn,
.dynamo-sequence-row.collapsed .dynamo-sequence-slots{
  display:none;
}
.dynamo-sequence-row-tools{
  min-width:0;
  display:flex;
  align-items:center;
  gap:6px;
}
.dynamo-sequence-row .btn{
  min-height:34px;
  font-size:13px;
}
.dynamo-sprite-upload-btn{
  min-height:32px !important;
  padding:0 8px;
  font-size:12px !important;
  font-weight:900;
  cursor:pointer;
}
.dynamo-play-btn{
  width:36px;
  padding:0;
}
.dynamo-sequence-mode-select{
  min-height:32px;
  max-width:78px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  padding:0 6px;
  background:rgba(8,12,20,.72);
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:950;
  outline:none;
}
.dynamo-sequence-mode-select.loop{
  border-color:rgba(76,217,100,.72);
  background:rgba(76,217,100,.18);
  color:#d9ffe6;
}
.dynamo-sequence-mode-select.relay{
  border-color:rgba(250,204,21,.74);
  background:rgba(250,204,21,.18);
  color:#fff3b8;
}
.dynamo-sequence-duration{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  gap:3px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  padding:0 6px;
  background:rgba(8,12,20,.72);
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:950;
}
.dynamo-sequence-duration input{
  width:42px;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:right;
  outline:none;
}
.dynamo-sequence-duration span{
  color:var(--muted2);
}
.dynamo-sequence-collapse-btn{
  width:30px;
  padding:0;
  font-size:18px !important;
  font-weight:950;
}
.dynamo-sequence-name{
  min-width:0;
  flex:1 1 auto;
}
.dynamo-sequence-name.static{
  color:var(--panel-header-text);
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.dynamo-sequence-slots{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:2px;
}
.dynamo-frame-slot{
  position:relative;
  aspect-ratio:1 / 1;
  width:var(--slot-size, 58px);
  min-width:var(--slot-size, 58px);
  height:var(--slot-size, 58px);
  border:1px dashed rgba(147,184,236,.45);
  border-radius:12px;
  background:rgba(255,255,255,.04);
  color:var(--panel-header-text);
  display:grid;
  place-items:center;
  cursor:pointer;
}
.dynamo-frame-slot.filled{
  z-index:1;
}
.dynamo-frame-slot.filled:hover,
.dynamo-frame-slot.filled:focus-visible{
  z-index:25;
}
.dynamo-frame-slot.filled:hover img,
.dynamo-frame-slot.filled:focus-visible img,
.dynamo-frame-slot.filled:hover canvas,
.dynamo-frame-slot.filled:focus-visible canvas{
  position:absolute;
  inset:50% auto auto 50%;
  width:174px;
  height:174px;
  transform:translate(-50%, -50%);
  z-index:30;
  border:1px solid rgba(250,204,21,.65);
  border-radius:16px;
  background:rgba(8,12,20,.95);
  box-shadow:0 18px 42px rgba(0,0,0,.5), 0 0 18px rgba(250,204,21,.18);
  padding:7px;
}
.dynamo-frame-slot:hover,
.dynamo-frame-slot:focus-visible{
  border-color:rgba(250,204,21,.65);
  background:rgba(250,204,21,.09);
  outline:none;
}
.dynamo-frame-slot.filled{
  border-style:solid;
  border-color:rgba(110,231,255,.42);
  background:linear-gradient(135deg, rgba(14,165,233,.14), rgba(76,211,142,.08));
}
.dynamo-frame-slot span{
  font-size:12px;
  font-weight:950;
  line-height:1;
}
.dynamo-frame-slot img,
.dynamo-frame-slot canvas{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.dynamo-frame-slot.add,
.dynamo-add-sequence-row{
  border-style:solid;
  border-color:rgba(250,204,21,.28);
  background:rgba(250,204,21,.08);
  color:var(--panel-header-text);
  font-size:22px;
  font-weight:950;
}
.dynamo-add-sequence-row{
  width:46px;
  height:46px;
  border-radius:999px;
  justify-self:center;
  cursor:pointer;
}
.dynamo-add-sequence-row:hover,
.dynamo-frame-slot.add:hover{
  border-color:rgba(250,204,21,.7);
  background:rgba(250,204,21,.16);
}
@media (max-width: 1100px){
  .dynamo-animation-grid{
    grid-template-columns:1fr;
    overflow:auto;
  }
  .dynamo-animation-stage{
    height:70vh;
  }
}
.dynamo-stage-clear{
  padding:5px 8px;
  min-height:0;
}
.dynamo-readonly-note{
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:6px 9px;
  color:var(--minor-font-2, var(--muted));
  background:rgba(255,255,255,.04);
  font-size:12px;
  font-weight:800;
}
.asset-name{margin-top:8px; font-weight:800; font-size:13px}
.asset-type{font-size:12px; color:var(--muted)}
.asset-plan-label{
  margin-top:6px;
  display:inline-flex;
  width:max-content;
  max-width:100%;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:3px 7px;
  font-size:11px;
  color:var(--minor-font-2, var(--muted));
  background:rgba(0,0,0,.18);
}
.badge-free-upload .asset-plan-label{
  color:rgba(194,255,218,.96);
  border-color:rgba(76,211,142,.32);
  background:rgba(76,211,142,.11);
}
.badge-premium-slot .asset-plan-label{
  color:rgba(255,220,166,.92);
  border-color:rgba(245,158,11,.28);
  background:rgba(245,158,11,.1);
}

.asset-preview .preview-box{
  border:1px solid var(--line);
  border-radius:16px;
  background: rgba(0,0,0,.18);
  min-height:320px;
  display:grid; place-items:center;
  overflow:hidden;
}
.preview-box img{max-width:100%; max-height:100%; object-fit:contain}

.footer{
  padding:14px;
  text-align:center;
}
select {
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.18);
  color: var(--text);
}

select option {
  color: #000 !important;
  background: #e6e6e6 !important;
}

select option:disabled,
select option.premium-locked-option,
select option[data-premium-locked="true"]{
  color:#7b8495 !important;
  background:#d4d8df !important;
}

.node-asset-picker{
  position:relative;
}

.node-asset-picker-trigger{
  width:100%;
  display:grid;
  grid-template-columns: 104px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.18);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}

.node-asset-picker.open .node-asset-picker-trigger{
  border-color:rgba(255,255,255,.22);
  box-shadow:0 10px 28px rgba(0,0,0,.24);
}

.node-asset-picker-strip{
  width:104px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  overflow:hidden;
  display:grid;
  place-items:center;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.03em;
  text-transform:uppercase;
}

.node-asset-picker-strip img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.node-asset-picker-strip.placeholder{
  background:rgba(255,255,255,.04);
}

.node-asset-picker-labels{
  display:grid;
  gap:2px;
  min-width:0;
}

.node-asset-picker-name{
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.node-asset-picker-sub{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.node-asset-picker-caret{
  color:rgba(255,255,255,.62);
  font-size:14px;
}

.node-asset-picker-menu{
  position:absolute;
  z-index:2147483647;
  left:0;
  right:0;
  top:calc(100% + 8px);
  display:none;
  gap:8px;
  padding:8px;
  max-height:280px;
  overflow:auto;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(15,18,28,.98);
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}

.node-asset-picker.open .node-asset-picker-menu{
  display:grid;
}

.node-asset-picker-option{
  width:100%;
  display:grid;
  grid-template-columns: 104px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}

.node-asset-picker-option:hover{
  border-color:rgba(245,158,11,.28);
  background:rgba(245,158,11,.08);
}

.node-asset-picker-option.active{
  border-color:rgba(245,158,11,.4);
  background:rgba(245,158,11,.12);
}

.node-thumbnail-frame-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.node-thumbnail-zoom-btn{
  min-width:40px;
  min-height:36px;
  padding:4px 10px;
  font-size:20px;
  line-height:1;
}

.node-thumbnail-zoom-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.node-thumbnail-scale-readout{
  min-width:68px;
  text-align:center;
  color:rgba(255,255,255,.84);
  font-weight:700;
  letter-spacing:.03em;
}

.question-bank-layout{display:grid; gap:10px}
.question-type-editor-host{display:grid; gap:10px}
.question-rich-prompt-editor{
  display:grid;
  gap:8px;
}
.question-rich-prompt-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.question-rich-prompt-tool{
  min-height:32px;
  padding:6px 10px;
  border-radius:8px;
  font-size:12px;
}
.question-rich-prompt-tool[title="Bold"]{
  font-weight:900;
}
.question-rich-prompt-tool[title="Underline"]{
  text-decoration:underline;
  text-underline-offset:2px;
}
.question-rich-prompt-color{
  width:38px;
  height:32px;
  padding:2px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  cursor:pointer;
}
.question-rich-prompt-input{
  min-height:132px;
  max-height:340px;
  overflow:auto;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.04);
  color:var(--text);
  line-height:1.45;
  outline:none;
}
.question-rich-prompt-input:focus{
  border-color:rgba(106,169,255,.62);
  box-shadow:0 0 0 2px rgba(106,169,255,.14);
}
.question-rich-prompt-input:empty::before{
  content:attr(data-placeholder);
  color:var(--muted);
}
.question-rich-prompt-input img,
.question-rich-prompt-input iframe,
.question-rich-prompt-input video{
  display:block;
  max-width:100%;
  margin:8px 0;
  border-radius:10px;
}
.question-rich-prompt-input iframe,
.question-rich-prompt-input video{
  width:min(100%, 680px);
  aspect-ratio:16/9;
  border:0;
  background:#000;
}
.question-rich-prompt-input audio{
  display:block;
  width:min(100%, 560px);
  margin:8px 0;
}
.question-bank-meta{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) 180px;
  gap:8px;
}
.question-bank-meta.has-ai-tools{
  grid-template-columns:minmax(140px,.9fr) minmax(210px,auto) 180px;
  align-items:end;
}
.question-ai-tools{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.question-ai-tool-btn{
  min-height:34px;
  padding:7px 10px !important;
  white-space:nowrap;
}
.question-ai-import-modal{
  position:fixed;
  inset:0;
  z-index:2147483600;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  background:rgba(0,0,0,.72);
}
.question-ai-import-card{
  width:min(920px,96vw);
  max-height:min(88vh,860px);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  gap:10px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg, rgba(22,25,30,.98), rgba(12,14,18,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.question-ai-import-header,
.question-ai-import-footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.question-ai-import-title{
  font-weight:900;
  color:var(--panel-header-text);
  font-size:20px;
}
.question-ai-import-subtitle{
  color:var(--muted);
  font-size:12px;
}
.question-ai-import-summary{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.question-ai-import-summary span{
  border:1px solid var(--line);
  border-radius:999px;
  padding:4px 8px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.question-ai-import-list{
  overflow:auto;
  display:grid;
  gap:8px;
  padding-right:4px;
}
.question-ai-import-row{
  display:grid;
  gap:5px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.026);
}
.question-ai-import-row.valid{
  border-color:rgba(106,255,210,.26);
}
.question-ai-import-row.review{
  border-color:rgba(250,204,122,.34);
}
.question-ai-import-row.rejected{
  border-color:rgba(255,112,112,.34);
  opacity:.82;
}
.question-ai-import-row-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.question-ai-import-row-head span{
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:900;
}
.question-ai-import-row-head strong{
  color:var(--text);
}
.question-ai-import-row-head small,
.question-ai-import-prompt{
  color:var(--muted);
  font-size:12px;
}
.question-ai-import-row ul{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:12px;
}
.question-ai-import-row-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-top:3px;
}
.question-ai-import-action-btn{
  min-height:30px;
  padding:5px 9px !important;
  font-size:12px;
}
.question-ai-pending-edit-modal{
  position:fixed;
  inset:0;
  z-index:2147483610;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  background:rgba(0,0,0,.62);
}
.question-ai-pending-edit-card{
  width:min(960px,96vw);
  max-height:min(90vh,900px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(25,28,34,.99), rgba(11,13,17,.99));
  box-shadow:0 24px 80px rgba(0,0,0,.5);
}
.question-ai-pending-edit-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.question-ai-pending-edit-title{
  color:var(--panel-header-text);
  font-size:20px;
  font-weight:900;
}
.question-ai-pending-edit-body{
  min-height:0;
  overflow:auto;
  padding-right:4px;
}
@media (max-width: 900px){
  .question-bank-meta.has-ai-tools{
    grid-template-columns:1fr;
  }
}
.question-bank-editor{
  display:grid;
  gap:8px;
  min-height:0;
  padding:8px 10px 10px;
}
.question-bank-sidebar{
  display:grid;
  min-height:0;
  transition: width .18s ease;
}
.question-strand-wrap{
  display:grid;
  gap:6px;
  padding:10px;
}
.question-drop-zone{
  height:5px;
  position:relative;
  cursor:default;
}
.question-drop-zone::before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  top:50%;
  height:0;
  border-top:1px solid transparent;
  transform:translateY(-50%);
  transition:border-color .12s ease, border-top-width .12s ease;
}
.question-drop-zone.active::before{
  border-top-color: rgba(106,169,255,.85);
  border-top-width: 2px;
}
.question-drop-zone-topic{
  margin-left:18px;
}
.question-drop-zone-subtopic{
  margin-left:14px;
}
.question-strand-block{
  display:grid;
  gap:2px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  background: rgba(255,255,255,.018);
  position:relative;
}
.question-strand-block.expanded{
  background: rgba(255,255,255,.024);
}
.question-strand-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  cursor:default;
  position:relative;
}
.question-strand-drag-icon{
  flex:0 0 auto;
  color:var(--panel-header-text);
  font-size:12px;
  line-height:1;
  letter-spacing:-1px;
  cursor:grab;
}
.question-strand-title{
  font-size:18px;
  font-weight:900;
  color:var(--panel-header-text);
  line-height:1.1;
  min-width:0;
  flex:1 1 auto;
  text-align:left;
}
.question-strand-edit-btn{
  background: transparent;
  border-color: rgba(255,255,255,.12);
  color: var(--muted);
  cursor: default !important;
  padding:1px 6px !important;
  font-size:10px;
  line-height:1.1;
  flex:0 0 auto;
  min-width:0;
  white-space:nowrap;
  border-radius:8px;
  opacity:0;
  pointer-events:none;
  transition: opacity .14s ease;
}
.question-strand-edit-btn.is-fixed{
  display:none !important;
}
.question-bank-explorer-row-title-line{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex:1 1 auto;
  justify-content:flex-start;
}
.question-strand-chevron{
  flex:0 0 auto;
  color:var(--muted);
  font-size:12px;
  transition:transform .14s ease, color .14s ease;
}
.question-strand-block.is-focused .question-strand-chevron{
  transform:rotate(90deg);
  color:var(--panel-header-text);
}
.question-strand-body{
  display:grid;
  gap:2px;
  padding:1px 0 0 12px;
}
.question-topic-block{
  display:grid;
  gap:2px;
}
.question-strand-add-row{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  align-items:center;
}
.question-bank-entity-editor{
  display:grid;
  gap:8px;
  margin-top:2px;
}
.question-bank-entity-editor-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.question-bank-description-input{
  width:100%;
  min-height:84px;
  padding:10px 10px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.18);
  color: var(--text);
  resize:vertical;
}
.question-bank-parent-description{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.18);
  color: var(--panel-header-text);
  font-size:12px;
  line-height:1.35;
  white-space:pre-wrap;
}
.question-bank-root-ghosted{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.question-strand-input{
  flex:1 1 auto;
  min-width:0;
}
.question-strand-add-btn{
  background: var(--nav-bg2);
  border-color: transparent;
  color: var(--text);
  padding:4px 8px !important;
  font-size:11px;
  line-height:1.1;
  white-space:nowrap;
}
.question-strand-add-btn:hover{
  border-color: rgba(255,255,255,.18);
}
.question-bank-sync-strands-row{
  display:flex;
  justify-content:flex-start;
  padding:6px 10px 10px;
}
.question-bank-sync-strands-btn{
  padding:5px 9px !important;
  border-radius:10px;
  font-size:11px;
  color:var(--minor2);
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.1);
}
.question-bank-sync-strands-btn:hover{
  color:var(--text);
  border-color:rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);
}
.sync-strands-modal{
  position:fixed;
  inset:0;
  z-index:2147483600;
  background:rgba(0,0,0,.72);
  display:flex;
  padding:12px;
}
.sync-strands-card{
  width:100%;
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:10px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(22,25,30,.98), rgba(12,14,18,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.42);
  padding:14px;
}
.sync-strands-header,
.sync-strands-footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.sync-strands-header-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.sync-strands-option{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:30px;
  padding:5px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  color:var(--minor2);
  background:rgba(255,255,255,.035);
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
}
.sync-strands-option:hover{
  color:var(--text);
  border-color:rgba(255,255,255,.2);
  background:rgba(255,255,255,.06);
}
.sync-strands-option input{
  width:15px;
  height:15px;
  accent-color:var(--minor1);
}
.sync-strands-expand{
  padding:6px 10px !important;
  font-size:12px;
  color:var(--minor2);
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.12);
}
.sync-strands-expand:hover{
  color:var(--text);
  background:rgba(255,255,255,.06);
}
.sync-strands-title{
  color:var(--panel-header-text);
  font-size:22px;
  font-weight:900;
}
.sync-strands-sub{
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
}
.sync-strands-body{
  min-height:0;
  overflow:auto;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.025);
}
.sync-strands-table-wrap{
  min-width:100%;
  overflow:auto;
}
.sync-strands-table{
  width:100%;
  min-width:760px;
  border-collapse:separate;
  border-spacing:0;
  font-size:13px;
}
.sync-strands-table th,
.sync-strands-table td{
  padding:10px;
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  vertical-align:middle;
}
.sync-strands-table th{
  position:sticky;
  top:0;
  z-index:2;
  color:var(--panel-header-text);
  background:rgba(12,14,18,.96);
  text-align:center;
  font-weight:900;
}
.sync-strands-table th:first-child,
.sync-strands-label{
  position:sticky;
  left:0;
  z-index:3;
  background:rgba(14,17,22,.98);
}
.sync-strands-label{
  min-width:260px;
  color:var(--text);
}
.sync-strands-label-inner{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.sync-strands-tree-toggle{
  width:20px;
  height:20px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:14px;
  line-height:1;
  cursor:pointer;
  transition:transform .14s ease, background .14s ease, color .14s ease;
}
.sync-strands-tree-toggle.expanded{
  transform:rotate(90deg);
  color:var(--panel-header-text);
}
.sync-strands-tree-toggle.is-spacer{
  border-color:transparent;
  background:transparent;
  cursor:default;
}
.sync-strands-label-main{
  display:grid;
  gap:2px;
  min-width:0;
}
.sync-strands-label-main span{
  display:block;
  font-weight:800;
}
.sync-strands-label-main small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:10px;
}
.sync-strands-label.sync-strands-kind-strand .sync-strands-label-main span{
  color:var(--panel-header-text);
  font-size:16px;
  font-weight:900;
}
.sync-strands-label.sync-strands-kind-topic .sync-strands-label-main span{
  color:var(--minor3);
  font-size:14px;
  font-weight:800;
}
.sync-strands-label.sync-strands-kind-subtopic .sync-strands-label-main span{
  color:var(--minor1);
  font-size:13px;
  font-weight:800;
}
.sync-strands-row-topic .sync-strands-label{
  background:rgba(16,19,25,.98);
}
.sync-strands-row-subtopic .sync-strands-label{
  background:rgba(18,20,27,.98);
}
.sync-strands-label.sync-strands-kind-strand{
  cursor:pointer;
}
.sync-strands-label.sync-strands-kind-topic{
  cursor:pointer;
}
.sync-strands-cell{
  min-width:120px;
  text-align:center;
}
.sync-strands-cell.is-present{
  background:rgba(65,190,120,.18);
}
.sync-strands-cell.is-missing{
  background:rgba(220,70,70,.18);
}
.sync-strands-check{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:rgba(65,190,120,.35);
  color:#d8ffe6;
  font-weight:900;
}
.sync-strands-cell input[type="checkbox"]{
  width:20px;
  height:20px;
  accent-color:#f0b45a;
}
.sync-strands-empty{
  height:100%;
  min-height:220px;
  display:grid;
  place-items:center;
  color:var(--muted);
  text-align:center;
  padding:24px;
}
.sync-strands-status{
  align-self:center;
}
.runtime-warning-banner{
  position:fixed;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  width:min(860px, calc(100% - 32px));
  z-index:2147483590;
  padding:20px 24px;
  border:2px solid rgba(240,180,90,.78);
  border-radius:14px;
  background:rgba(28,33,38,.96);
  color:var(--panel-header-text);
  box-shadow:0 20px 54px rgba(0,0,0,.42);
  text-align:center;
  font-weight:900;
  font-size:20px;
  line-height:1.35;
}
.runtime-safety-overlay{
  position:fixed;
  inset:0;
  z-index:2147483640;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(5,8,12,.78);
  backdrop-filter:blur(4px);
}
.runtime-safety-overlay.hidden{
  display:none;
}
.runtime-safety-card{
  width:min(640px, 100%);
  padding:32px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(31,38,46,.98), rgba(18,22,28,.98));
  box-shadow:0 28px 80px rgba(0,0,0,.46);
  color:var(--text);
  text-align:center;
}
.runtime-safety-eyebrow{
  color:var(--panel-header-text);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:11px;
}
.runtime-safety-card h2{
  margin:8px 0 8px;
  color:var(--panel-header-text);
  font-size:30px;
}
.runtime-safety-card p{
  margin:0;
  color:var(--text);
  font-size:18px;
  line-height:1.45;
}
.runtime-safety-actions{
  display:flex;
  justify-content:center;
  margin:16px 0 10px;
}
.runtime-safety-card small{
  color:var(--muted);
}
.app-sleep-overlay{
  position:fixed;
  inset:0;
  z-index:2147483635;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(5,8,12,.72);
  backdrop-filter:blur(4px);
}
.app-sleep-overlay.hidden{
  display:none;
}
.app-sleep-card{
  width:min(560px, 100%);
  padding:30px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(31,38,46,.98), rgba(18,22,28,.98));
  box-shadow:0 28px 80px rgba(0,0,0,.46);
  color:var(--text);
  text-align:center;
}
.app-sleep-eyebrow{
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.app-sleep-card h2{
  margin:8px 0;
  color:var(--panel-header-text);
  font-size:30px;
}
.app-sleep-card p{
  margin:0 0 18px;
  color:var(--text);
  font-size:18px;
  line-height:1.45;
}
.question-strand-delete-btn{
  background: transparent;
  border-color: rgba(255,255,255,.12);
  color: var(--danger);
  cursor: default !important;
  padding:1px 5px !important;
  font-size:10px;
  line-height:1.1;
  flex:0 0 auto;
  min-width:0;
  white-space:nowrap;
  border-radius:8px;
  opacity:0;
  pointer-events:none;
  transition: opacity .14s ease;
}
.question-strand-delete-btn.is-fixed{
  display:none !important;
}
.question-strand-delete-btn:hover{
  border-color: rgba(255,255,255,.18);
}
.question-strand-header:hover .question-strand-edit-btn,
.question-strand-block:hover .question-strand-edit-btn,
.question-strand-header:hover .question-strand-delete-btn,
.question-strand-block:hover .question-strand-delete-btn{
  opacity:1;
  pointer-events:auto;
}
.question-topic-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  cursor:default;
}
.question-topic-drag-icon{
  flex:0 0 auto;
  color:var(--panel-header-text);
  font-size:12px;
  line-height:1;
  letter-spacing:-1px;
  cursor:grab;
}
.question-topic-drag-icon[draggable="false"],
.question-subtopic-drag-icon[draggable="false"]{
  opacity:.35;
  cursor:default;
}
.question-strand-block.dragging,
.question-topic-row.dragging,
.question-subtopic-row.dragging{
  opacity:.7;
  border-color: rgba(233,238,248,.4);
}
.question-strand-block.dragging .question-strand-drag-icon,
.question-topic-row.dragging .question-topic-drag-icon,
.question-subtopic-row.dragging .question-subtopic-drag-icon{
  cursor:grabbing;
}
.question-topic-title{
  color:var(--muted);
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  min-width:0;
  flex:1 1 auto;
}
.question-topic-chevron{
  flex:0 0 auto;
  color:var(--muted);
  font-size:12px;
}
.question-topic-delete-btn{
  background: transparent;
  border-color: rgba(255,255,255,.1);
  color: var(--danger);
  cursor: default !important;
  padding:1px 5px !important;
  font-size:10px;
  line-height:1.1;
  min-width:0;
  border-radius:8px;
  opacity:0;
  pointer-events:none;
  transition: opacity .14s ease;
}
.question-topic-delete-btn.is-fixed,
.question-subtopic-delete-btn.is-fixed{
  display:none !important;
}
.question-topic-row:hover .question-topic-delete-btn{
  opacity:1;
  pointer-events:auto;
}
.question-subtopic-add-btn{
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
  color: var(--minor2);
  padding:4px 8px !important;
  font-size:11px;
  line-height:1.1;
  white-space:nowrap;
  width:fit-content;
}
.question-topic-add-btn{
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
  color: var(--muted);
  padding:4px 8px !important;
  font-size:11px;
  line-height:1.1;
  white-space:nowrap;
  width:fit-content;
}
.question-topic-add-row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:nowrap;
}
.question-topic-input{
  flex:1 1 auto;
  min-width:0;
}
.question-topic-body{
  display:grid;
  gap:2px;
  padding-left:10px;
}
.question-subtopic-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.question-subtopic-drag-icon{
  flex:0 0 auto;
  color:var(--minor2);
  font-size:12px;
  line-height:1;
  letter-spacing:-1px;
  cursor:grab;
}
.question-subtopic-delete-btn{
  background: transparent;
  border-color: rgba(255,255,255,.1);
  color: var(--danger);
  cursor: default !important;
  padding:1px 5px !important;
  font-size:10px;
  line-height:1.1;
  min-width:0;
  border-radius:8px;
  opacity:0;
  pointer-events:none;
  transition: opacity .14s ease;
}
.question-subtopic-row:hover .question-subtopic-delete-btn{
  opacity:1;
  pointer-events:auto;
}
.question-subtopic-title{
  color:var(--minor2);
  font-size:12px;
  line-height:1.2;
  min-width:0;
  flex:1 1 auto;
}
.question-subtopic-add-row{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:nowrap;
}
.question-subtopic-input{
  flex:1 1 auto;
  min-width:0;
}
.question-list-divider{
  height:1px;
  margin:0 10px 2px;
  background: var(--line);
}
.question-bank-sidebar .list{
  min-height:0;
}
.question-bank-editor-title{
  font-weight:900;
  color:var(--panel-header-text);
}
.question-bank-form-shell{
  gap:8px;
}
#tab-question-bank .two-col{
  gap:10px !important;
  padding:10px;
  align-items:stretch !important;
  grid-template-columns:300px minmax(0,1fr) !important;
}
#tab-question-bank .two-col.question-bank-wide{
  grid-template-columns:430px minmax(0,1fr) !important;
}
#tab-question-bank .list{
  margin:0;
  overflow:auto;
}
#tab-assignments .two-col{
  gap:10px !important;
  padding:10px;
  align-items:stretch !important;
  grid-template-columns:minmax(390px, 460px) minmax(0, 1fr) !important;
}
#tab-assignments .assignment-tab-layout{
  min-height:clamp(560px, calc(100vh - 190px), 900px);
}
#tab-assignments .assignment-left-stack{
  display:grid;
  min-height:0;
}
#tab-assignments .assignment-side-panel,
#tab-assignments .assignment-question-bank-panel,
#tab-assignments .assignment-organizer-panel{
  display:grid;
  grid-template-rows:auto auto;
  align-content:start;
  align-self:start;
  position:relative;
  min-height:0;
  border:1px solid rgba(255,255,255,.06);
  border-radius:14px;
  background:rgba(255,255,255,.012);
  overflow:hidden;
}
.assignment-bank-switcher{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  background:rgba(255,255,255,.018);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.assignment-bank-switch-btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.03);
  color:rgba(233,238,248,.7);
  padding:7px 12px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.01em;
  line-height:1;
  position:relative;
  top:auto;
  left:auto;
  width:auto;
  height:auto;
  box-shadow:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:nowrap;
  overflow:visible;
}
.assignment-bank-switch-btn.active{
  color:var(--panel-header-text);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015)), var(--window-bg2);
  border-color:rgba(255,255,255,.18);
}
.assignment-bank-switch-btn::before{
  content:none;
}
.assignment-bank-switch-btn.active::before{
  content:none;
}
.assignment-bank-switch-btn.active::after{
  content:none;
}
.assignment-bank-pane{
  min-height:0;
  display:grid;
  grid-template-rows:auto auto;
  align-content:start;
  overflow:hidden;
  position:relative;
  z-index:1;
  margin-top:0;
}
.assignment-bank-pane.hidden{
  display:none !important;
}
.assignment-bank-header{
  display:grid;
  gap:8px;
  padding:10px 10px 6px;
  align-content:start;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.018);
}
.assignment-bank-title{
  font-size:13px;
  font-weight:800;
  color:var(--panel-header-text);
  min-width:0;
  white-space:nowrap;
}
.assignment-bank-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}
.question-bank-search-toggle{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  gap:2px;
  max-width:100%;
  padding:2px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  background:rgba(255,255,255,.025);
}
.question-bank-search-mode-btn{
  border:0;
  border-radius:6px;
  background:transparent;
  color:rgba(233,238,248,.66);
  padding:4px 6px;
  font:inherit;
  font-size:10px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.question-bank-search-mode-btn.active{
  background:rgba(106,169,255,.16);
  color:var(--panel-header-text);
}
.question-bank-search-mode-btn:hover{
  color:var(--panel-header-text);
}
.assignment-bank-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.assignment-bank-toolbar .input{
  min-width:0;
  flex:1 1 auto;
}
.assignment-bank-toolbar .btn{
  flex:0 0 auto;
  padding:6px 8px !important;
  font-size:11px;
}
#tab-assignments .assignment-question-bank-panel .list,
#tab-assignments .assignment-organizer-panel .list,
#tab-assignments .assignment-bank-pane .list{
  overflow:auto;
  min-height:0;
  align-content:start;
  position:relative;
}
#tab-assignments .assignment-organizer-panel .list,
#tab-assignments #assignmentOrganizerPane .list{
  padding-top:2px;
}
#tab-assignments .assignment-question-bank-panel .question-bank-sidebar{
  min-height:0;
}
.assignment-editor-card{
  display:grid;
  align-content:stretch;
  gap:10px;
  min-height:clamp(560px, calc(100vh - 190px), 900px);
  height:100%;
  padding:10px 12px;
  position:relative;
}
.assignment-editor-header{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
}
.assignment-editor-header .card-title{
  margin:0;
  width:auto;
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.assignment-node-source-picker{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--muted2);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.assignment-node-source-picker select{
  width:190px;
  max-width:34vw;
  height:32px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:var(--nav-bg2);
  color:var(--panel-header-text);
  padding:4px 8px;
  font-size:12px;
  font-weight:850;
}
.assignment-editor-home{
  min-height:100%;
  display:flex;
  align-items:flex-start;
  align-content:flex-start;
  justify-content:center;
  flex-wrap:wrap;
  gap:16px;
  padding:14px 0 0;
  position:relative;
}
.assignment-editor-overlay{
  position:absolute;
  inset:0;
  z-index:90;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  padding:14px 16px 16px;
  border-radius:inherit;
  border:0;
  background:linear-gradient(180deg, #0c0c0e, #121216);
  box-shadow:none;
}
.assignment-editor-overlay.hidden{
  display:none;
}
.assignment-editor-overlay-body{
  min-height:0;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:10px;
}
.assignment-editor-back{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}
.assignment-create-menu-wrap{
  position:relative;
  display:inline-flex;
}
.assignment-home-action{
  min-width:200px;
  min-height:58px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 24px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:8px;
  background:var(--nav-bg2) !important;
  color:var(--panel-header-text);
  font-size:18px;
  font-weight:900;
  line-height:1;
  box-shadow:none;
}
.assignment-home-action:hover{
  border-color:rgba(229,188,118,.5) !important;
  filter:brightness(1.06);
}
.assignment-home-action:active{
  filter:brightness(.98);
}
.assignment-create-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:30;
  width:220px;
  display:grid;
  gap:4px;
  padding:6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:#121827;
  box-shadow:0 14px 34px rgba(0,0,0,.35);
}
.assignment-create-menu.hidden{
  display:none;
}
.assignment-create-menu-item{
  width:100%;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  padding:8px 10px;
  text-align:left;
  font:inherit;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.assignment-create-menu-item:hover{
  background:rgba(106,169,255,.14);
  color:var(--panel-header-text);
}
.assignment-create-menu-empty{
  padding:8px 10px;
}
.assignment-core-fields{
  display:grid;
  grid-template-columns:minmax(160px, 2fr) minmax(100px, 1fr) minmax(105px, .85fr) minmax(70px, .55fr);
  gap:8px;
  align-items:end;
}
.assignment-core-fields .field{
  min-width:0;
}
.assignment-core-fields .field label{
  font-size:11px;
}
.assignment-core-fields .field input,
.assignment-core-fields .field select{
  height:32px;
  padding-top:4px;
  padding-bottom:4px;
}
.assignment-tier-field input{
  text-align:center;
}
.assignment-editor-header .btn{
  padding:6px 10px !important;
  font-size:11px;
  white-space:nowrap;
}
#tab-assignments .list{
  margin:0;
  min-height:0;
  padding:6px 0;
}
#assignmentList{
  display:grid;
  gap:0 !important;
  align-content:start;
}
.assignment-objective-drop-zone{
  height:8px;
  position:relative;
}
.assignment-objective-drop-zone::before{
  content:"";
  position:absolute;
  left:6px;
  right:6px;
  top:50%;
  border-top:1px solid transparent;
  transform:translateY(-50%);
  transition:border-color .12s ease, border-top-width .12s ease;
}
.assignment-objective-drop-zone.active::before{
  border-top-color: rgba(106,169,255,.85);
  border-top-width:2px;
}
.assignment-group{
  display:grid;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  align-content:start;
}
.assignment-group.dragging{
  opacity:.7;
}
.assignment-group + .assignment-group{
  margin-top:0 !important;
  padding-top:0 !important;
  border-top:0 !important;
}
.assignment-group-header{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.assignment-group-drag-icon{
  flex:0 0 auto;
  color:var(--panel-header-text);
  font-size:12px;
  line-height:1;
  letter-spacing:-1px;
  cursor:grab;
}
.assignment-group.dragging .assignment-group-drag-icon{
  cursor:grabbing;
}
.assignment-group-toggle,
.assignment-subgroup-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  background:transparent;
  border:0;
  border-radius:0;
  text-align:left;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer;
  min-height:0 !important;
  height:auto;
  line-height:1 !important;
}
.assignment-group-toggle{
  flex:1 1 auto;
  width:auto;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  padding:4px 10px !important;
}
.assignment-group-main{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.assignment-group-label{
  min-width:0;
  font-size:13px;
  font-weight:800;
  color:var(--panel-header-text);
  line-height:1 !important;
  margin:0;
  padding:0;
}
.assignment-group-count{
  flex:0 0 auto;
  font-size:10px;
  color:var(--muted);
  line-height:1 !important;
  margin:0;
  padding:0;
}
.assignment-group-delete-btn{
  background:transparent;
  border-color:rgba(255,255,255,.12);
  color:var(--danger);
  cursor:default !important;
  padding:1px 5px !important;
  font-size:10px;
  line-height:1.1;
  flex:0 0 auto;
  min-width:0;
  border-radius:8px;
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.assignment-group-header:hover .assignment-group-delete-btn,
.assignment-group:hover .assignment-group-delete-btn{
  opacity:1;
  pointer-events:auto;
}
.assignment-group-body{
  display:grid;
  gap:1px !important;
  padding-left:12px;
  margin-top:0 !important;
}
.assignment-subgroup{
  display:grid;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.assignment-subgroup-label{
  min-width:0;
  font-size:12px;
  font-weight:700;
  color:var(--minor1);
  line-height:1 !important;
  margin:0;
  padding:0;
}
.assignment-subgroup-count{
  flex:0 0 auto;
  font-size:10px;
  color:var(--muted);
  line-height:1 !important;
  margin:0;
  padding:0;
}
.assignment-subgroup-body{
  display:grid;
  gap:1px !important;
  padding-left:12px;
  margin:0 !important;
}
.assignment-entry{
  position:relative;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  background:rgba(255,255,255,.018);
  transition:background .12s ease, border-color .12s ease;
}
.assignment-entry-delete-btn{
  position:absolute;
  top:5px;
  right:6px;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,93,93,.45);
  border-radius:999px;
  background:rgba(255,93,93,.10);
  color:#ffb1b1;
  cursor:pointer;
  font-size:11px;
  font-weight:900;
  line-height:1;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease, background .12s ease, border-color .12s ease;
}
.assignment-entry:hover .assignment-entry-delete-btn,
.assignment-entry-delete-btn:focus-visible{
  opacity:1;
  pointer-events:auto;
}
.assignment-entry-delete-btn:hover{
  background:rgba(255,93,93,.22);
  border-color:rgba(255,93,93,.75);
}
.assignment-entry-title{
  font-size:11px;
  font-weight:800;
  color:var(--minor1, var(--muted));
  line-height:1.1;
}
.assignment-entry-name{
  margin-top:3px;
  font-size:12px;
  color:var(--minor2, var(--muted2, var(--muted)));
  line-height:1.25;
}
.assignment-name-field > label{
  color:var(--minor2, var(--muted2, var(--muted)));
}
.assignment-tier-field > label{
  color:var(--minor1, var(--muted));
}
.assignment-entry-meta{
  margin-top:4px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:11px;
  color:var(--muted);
  line-height:1.2;
}
.assignment-entry-source{
  color:var(--text);
  font-weight:700;
}
.assignment-entry:hover{
  background:rgba(255,255,255,.035);
}
.assignment-entry.active{
  background:rgba(106,169,255,.10);
  border-color:rgba(106,169,255,.35);
  box-shadow: inset 0 0 0 1px rgba(106,169,255,.18);
}
.assignment-worksheet-box{
  display:grid;
  gap:10px;
  padding:10px;
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.18);
  background:rgba(255,255,255,.018);
}
.assignment-worksheet-host{
  margin-bottom:10px;
}
.assignment-worksheet-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:40px;
  padding:0;
  background:transparent;
  border:0;
  color:var(--panel-header-text);
  font-size:14px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.assignment-worksheet-toggle.collapsed{
  color:var(--minor2);
  font-size:12px;
  font-weight:700;
  min-height:28px;
}
.assignment-worksheet-toggle-icon{
  flex:0 0 auto;
  margin-left:10px;
  font-size:12px;
  line-height:1;
  opacity:.9;
}
.assignment-worksheet-box:has(.assignment-worksheet-toggle.collapsed){
  padding:6px 10px;
}
.assignment-worksheet-content{
  display:grid;
  gap:10px;
}
.assignment-worksheet-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.assignment-worksheet-ai-tools{
  flex:0 1 auto;
}
.assignment-worksheet-drop{
  min-height:76px;
  display:grid;
  place-items:center;
  padding:14px;
  text-align:center;
  color:var(--minor2);
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.16);
  background:rgba(255,255,255,.02);
  transition:border-color .12s ease, background .12s ease, color .12s ease;
}
.assignment-worksheet-drop.active{
  border-color:rgba(106,169,255,.7);
  background:rgba(106,169,255,.08);
  color:var(--text);
}
.assignment-worksheet-list{
  display:grid;
  gap:8px;
}
.assignment-worksheet-item{
  display:grid;
  gap:6px;
  padding:9px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
}
.assignment-worksheet-item-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.assignment-worksheet-item-title-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.assignment-worksheet-item-title{
  font-weight:800;
  color:var(--panel-header-text);
  min-width:0;
}
.assignment-worksheet-duplicate-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid rgba(229,188,118,.42);
  background:rgba(229,188,118,.12);
  color:var(--header-font-color, #f5d48b);
  font-size:10px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:0;
}
.assignment-worksheet-item-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:11px;
  color:var(--muted);
}
.assignment-worksheet-item-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}
.assignment-worksheet-add{
  justify-self:start;
}

.assignment-presentation-builder,
.assignment-presentation-list{
  display:grid;
  gap:12px;
}
.assignment-presentation-builder.compact{
  position:relative;
  min-height:120px;
}
.assignment-presentation-list{
  align-content:start;
}
.assignment-presentation-head,
.assignment-presentation-slide-top,
.assignment-presentation-actions,
.student-presentation-header,
.student-presentation-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.assignment-presentation-title,
.assignment-presentation-slide-label{
  color:var(--panel-header-text);
  font-weight:900;
}
.assignment-presentation-actions{
  justify-content:flex-end;
}
.assignment-presentation-builder.compact .assignment-presentation-head{
  align-items:flex-start;
}
.assignment-presentation-preview-bottom{
  margin-left:auto;
}
.assignment-presentation-slide-slice{
  display:grid;
  grid-template-columns:74px minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.045);
  cursor:pointer;
}
.assignment-presentation-slide-slice:hover{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.07);
}
.assignment-presentation-slide-thumb{
  position:relative;
  width:74px;
  aspect-ratio:16 / 10;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-weight:900;
  box-shadow:inset 0 0 0 999px rgba(0,0,0,.12);
}
.assignment-presentation-slide-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.assignment-presentation-slide-thumb span{
  position:absolute;
  inset:auto 6px 5px auto;
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(0,0,0,.62);
  font-size:11px;
}
.assignment-presentation-slide-slice-main{
  min-width:0;
}
.assignment-presentation-slide-card{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.04);
}
.assignment-presentation-slide-body{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
}
.assignment-presentation-slide-body .field:nth-child(2){
  grid-column:1 / -1;
}
.assignment-presentation-preview{
  min-height:170px;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:10px;
  padding:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  color:#f7f4ea;
  text-align:center;
  overflow:hidden;
}
.assignment-presentation-preview img{
  max-width:min(460px, 100%);
  max-height:180px;
  object-fit:contain;
  border-radius:12px;
}
.assignment-presentation-preview-title{
  font-size:1.55rem;
  font-weight:900;
}
.assignment-presentation-preview-body{
  max-width:70ch;
  white-space:pre-wrap;
}
.assignment-presentation-question-chip{
  padding:4px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.34);
  color:#ffd166;
  font-weight:800;
}

.presentation-slide-maker-overlay{
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  background:linear-gradient(180deg, rgba(14,21,31,.99), rgba(8,12,18,.99));
  color:var(--text);
  overflow:hidden;
}
.presentation-slide-maker-overlay:focus,
.presentation-slide-maker-preview-viewport:focus,
.presentation-slide-maker-preview:focus{
  outline:none;
}
.presentation-slide-maker-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
}
.presentation-slide-maker-title-block{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.presentation-slide-maker-title{
  color:var(--panel-header-text);
  font-size:1.2rem;
  font-weight:900;
}
.presentation-slide-maker-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.presentation-slide-pdf-import-btn{
  border-color:rgba(106,169,255,.3);
}
.presentation-slide-pdf-import-status{
  color:var(--muted);
  font-size:.84rem;
  max-width:280px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.presentation-slide-maker-shell{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 400px);
  grid-template-areas:"slide editor";
  gap:14px;
  padding:14px;
  overflow:hidden;
}
.presentation-slide-maker-shell.with-rail-toggle{
  grid-template-columns:34px minmax(0, 1fr) minmax(320px, 400px);
  grid-template-areas:"toggle slide editor";
}
.presentation-slide-maker-shell.with-rail{
  grid-template-columns:190px minmax(0, 1fr) minmax(320px, 400px);
  grid-template-areas:"sorter slide editor";
}
.presentation-slide-maker-rail-toggle{
  grid-area:toggle;
  width:100%;
  min-height:0;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.045);
  color:var(--panel-header-text);
  font-size:1.2rem;
  font-weight:950;
  cursor:pointer;
}
.presentation-slide-maker-rail-toggle:hover,
.presentation-slide-maker-rail-toggle:focus-visible,
.presentation-slide-maker-rail-collapse:hover,
.presentation-slide-maker-rail-collapse:focus-visible{
  border-color:rgba(147,184,236,.5);
  background:rgba(147,184,236,.14);
}
.presentation-slide-maker-rail{
  grid-area:sorter;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  gap:8px;
  padding:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  overflow:hidden;
}
.presentation-slide-maker-rail-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--panel-header-text);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.presentation-slide-maker-rail-head span{
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(106,169,255,.18);
  color:var(--panel-header-text);
}
.presentation-slide-maker-rail-list{
  min-height:0;
  display:grid;
  align-content:start;
  gap:8px;
  overflow:auto;
  padding:0 2px 0 16px;
}
.presentation-slide-maker-rail-item{
  position:relative;
  display:block;
  width:100%;
  min-height:78px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:5px;
  background:rgba(255,255,255,.04);
  color:var(--panel-header-text);
  cursor:pointer;
}
.presentation-slide-maker-rail-item.active,
.presentation-slide-maker-rail-item.drag-over{
  border-color:rgba(245,158,11,.72);
  background:rgba(245,158,11,.14);
}
.presentation-slide-maker-rail-item.drop-before::before,
.presentation-slide-maker-rail-item.drop-after::after,
.presentation-slide-layer-row.drop-before::before,
.presentation-slide-layer-row.drop-after::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  height:3px;
  border-radius:999px;
  background:var(--header-font-color);
  box-shadow:0 0 0 2px rgba(5,8,15,.72), 0 0 14px rgba(147,184,236,.45);
  pointer-events:none;
}
.presentation-slide-maker-rail-item.drop-before::before,
.presentation-slide-layer-row.drop-before::before{
  top:-5px;
}
.presentation-slide-maker-rail-item.drop-after::after,
.presentation-slide-layer-row.drop-after::after{
  bottom:-5px;
}
.presentation-slide-maker-rail-item.dragging{
  opacity:.55;
}
.presentation-slide-maker-rail-thumb{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  min-width:0;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.12);
  background:#1d2638;
  overflow:hidden;
}
.presentation-slide-maker-rail-thumb > .presentation-slide-maker-rail-mini-preview.student-presentation-slide{
  position:absolute;
  left:50%;
  top:50%;
  width:1280px;
  height:720px;
  min-height:0;
  max-width:none;
  max-height:none;
  padding:0;
  border:0;
  border-radius:7px;
  box-shadow:none;
  overflow:hidden;
  pointer-events:none;
  transform:translate(-50%, -50%) scale(var(--presentation-slide-rail-scale, .12));
  transform-origin:center center;
}
.presentation-slide-maker-rail-mini-preview iframe,
.presentation-slide-maker-rail-mini-preview video,
.presentation-slide-maker-rail-mini-preview button{
  pointer-events:none;
}
.presentation-slide-maker-rail-label{
  display:none;
}
.presentation-slide-maker-rail-actions{
  position:absolute;
  top:5px;
  right:5px;
  display:flex;
  gap:4px;
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.presentation-slide-maker-rail-item:hover .presentation-slide-maker-rail-actions,
.presentation-slide-maker-rail-item:focus-within .presentation-slide-maker-rail-actions,
.presentation-slide-maker-rail-item.active .presentation-slide-maker-rail-actions{
  opacity:1;
  pointer-events:auto;
}
.presentation-slide-maker-rail-action{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(6,12,24,.78);
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:1000;
  line-height:1;
  cursor:pointer;
  box-shadow:0 5px 12px rgba(0,0,0,.28);
}
.presentation-slide-maker-rail-action.copy:hover,
.presentation-slide-maker-rail-action.copy:focus-visible{
  border-color:rgba(139,224,255,.76);
  background:rgba(37,99,235,.78);
}
.presentation-slide-maker-rail-action.copy{
  width:auto;
  min-width:34px;
  padding:0 7px;
}
.presentation-slide-maker-rail-action.delete:hover,
.presentation-slide-maker-rail-action.delete:focus-visible{
  border-color:rgba(248,113,113,.82);
  background:rgba(127,29,29,.88);
}
.presentation-slide-maker-rail-action.delete{
  position:absolute;
  left:-15px;
  top:50%;
  z-index:2;
  transform:translateY(-50%);
  opacity:1;
  pointer-events:auto;
}
.presentation-slide-maker-rail-add{
  width:42px;
  height:42px;
  justify-self:center;
  border:1px solid rgba(250,204,21,.34);
  border-radius:999px;
  background:rgba(250,204,21,.10);
  color:var(--panel-header-text);
  font-size:24px;
  font-weight:950;
  cursor:pointer;
}
.presentation-slide-maker-rail-add:hover{
  border-color:rgba(250,204,21,.72);
  background:rgba(250,204,21,.18);
}
.presentation-slide-maker-controls{
  grid-area:editor;
  min-height:0;
  display:grid;
  align-content:start;
  gap:10px;
  overflow:auto;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}
.presentation-slide-tool-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:9px;
}
.presentation-slide-tool-button{
  min-height:86px;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:2px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:transparent;
  color:var(--header-font-color);
  font-family:var(--header-font);
  font-size:12px;
  font-weight:950;
  line-height:1.12;
  overflow:hidden;
  overflow-wrap:anywhere;
  padding:8px;
  cursor:pointer;
}
.presentation-slide-tool-button:hover,
.presentation-slide-tool-button.active{
  border-color:rgba(245,158,11,.66);
  background:transparent;
  box-shadow:0 0 0 1px rgba(245,158,11,.28);
}
.presentation-slide-tool-detail{
  display:grid;
  gap:9px;
  min-width:0;
}
.presentation-slide-selection-hint{
  position:sticky;
  bottom:0;
  z-index:4;
  padding:8px 10px;
  border:1px solid rgba(106,169,255,.22);
  border-radius:10px;
  background:rgba(12,18,30,.94);
  color:var(--minor-font-1-color);
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  box-shadow:0 -10px 24px rgba(0,0,0,.18);
}
.presentation-slide-selection-hint[hidden]{
  display:none;
}
.presentation-slide-maker-image-add{
  display:grid;
  grid-template-columns:minmax(0, 1fr) repeat(3, auto);
  gap:8px;
}
.presentation-slide-maker-image-tools{
  display:grid;
  gap:8px;
}
.presentation-slide-maker-noun-search .btn{
  white-space:nowrap;
}
.presentation-slide-background-panel{
  border:1px solid rgba(106,169,255,.20);
  border-radius:14px;
  background:rgba(106,169,255,.07);
  overflow:hidden;
}
.presentation-slide-background-panel summary{
  padding:10px 11px;
  color:rgba(255,255,255,.82);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
  user-select:none;
}
.presentation-slide-background-panel[open] summary{
  border-bottom:1px solid rgba(255,255,255,.10);
}
.presentation-slide-background-body{
  display:grid;
  gap:9px;
  padding:10px;
}
.presentation-slide-background-upload{
  width:100%;
}

.map-background-guide-tooltip{
  position:fixed;
  top:96px;
  right:28px;
  z-index:2500;
  max-width:360px;
  padding:16px 18px;
  border:1px solid rgba(106,169,255,.34);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(11,18,28,.98), rgba(24,35,51,.96));
  box-shadow:0 18px 45px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.035) inset;
  opacity:0;
  transform:translateY(-8px) scale(.98);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}

.map-background-guide-tooltip.show{
  opacity:1;
  transform:translateY(0) scale(1);
}

.map-background-guide-title{
  color:var(--header-font-color);
  font-family:var(--header-font);
  font-size:1.18rem;
  font-weight:800;
  letter-spacing:.02em;
  margin-bottom:6px;
}

.map-background-guide-body{
  color:var(--minor-font-2-color);
  font-family:var(--minor-font-2);
  line-height:1.35;
}

.map-background-guide-body .guide-accent{
  color:var(--minor-font-1-color);
  font-weight:800;
}

.map-background-guide-body .guide-return{
  color:#7ed386;
  font-weight:800;
}

.presentation-slide-text-toolbar{
  display:grid;
  grid-template-columns:1fr auto auto auto;
  align-items:center;
  gap:8px;
  padding:9px;
  border:1px solid rgba(245,158,11,.22);
  border-radius:14px;
  background:rgba(245,158,11,.08);
}
.presentation-slide-points-toolbar{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:8px;
  padding:9px;
  border:1px solid rgba(76,217,100,.24);
  border-radius:14px;
  background:rgba(76,217,100,.08);
}
.presentation-slide-points-hint{
  grid-column:1 / -1;
  color:rgba(255,255,255,.68);
  font-size:.78rem;
  font-weight:800;
  line-height:1.25;
}
.presentation-slide-text-toolbar-title{
  grid-column:1 / -1;
  color:rgba(255,255,255,.72);
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.presentation-slide-shape-toolbar{
  display:grid;
  gap:8px;
  padding:9px;
  border:1px solid rgba(96,211,148,.20);
  border-radius:14px;
  background:rgba(96,211,148,.07);
}
.presentation-slide-shape-toolbar .question-small-note{
  margin:0;
  font-size:11px;
  line-height:1.25;
}
.presentation-slide-keepsake-panel{
  display:grid;
  gap:8px;
  padding:8px;
  border:1px solid rgba(96,165,250,.18);
  border-radius:14px;
  background:rgba(96,165,250,.06);
}
.presentation-slide-keepsake-panel.open{
  background:rgba(96,165,250,.09);
}
.presentation-slide-keepsake-toggle{
  width:100%;
  justify-content:center;
}
.presentation-slide-keepsake-body{
  display:grid;
  gap:7px;
}
.presentation-slide-keepsake-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px;
}
.presentation-slide-keepsake-card{
  position:relative;
  min-width:0;
}
.presentation-slide-keepsake-choice{
  width:100%;
  min-height:62px;
  display:grid;
  place-items:center;
  gap:4px;
  border:1px dashed rgba(255,255,255,.22);
  border-radius:11px;
  background:rgba(255,255,255,.055);
  color:var(--text);
  cursor:pointer;
}
.presentation-slide-keepsake-choice:hover{
  border-color:rgba(96,165,250,.68);
  background:rgba(96,165,250,.15);
}
.presentation-slide-keepsake-choice small{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
  font-weight:850;
  opacity:.76;
}
.presentation-slide-keepsake-thumb{
  width:48px;
  height:30px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:8px;
  background:rgba(0,0,0,.26);
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:900;
  line-height:1.1;
  text-align:center;
}
.presentation-slide-keepsake-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.presentation-slide-keepsake-delete{
  position:absolute;
  top:4px;
  right:4px;
  z-index:4;
  width:16px;
  height:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(8,13,22,.76);
  color:rgba(255,255,255,.82);
  font-size:10px;
  font-weight:1000;
  line-height:1;
  text-align:center;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease, transform .14s ease, border-color .14s ease, background .14s ease;
}
.presentation-slide-keepsake-card:hover .presentation-slide-keepsake-delete,
.presentation-slide-keepsake-delete:focus-visible{
  opacity:1;
  pointer-events:auto;
}
.presentation-slide-keepsake-delete:hover{
  border-color:rgba(248,113,113,.72);
  background:rgba(127,29,29,.84);
}
.presentation-slide-text-toolbar select,
.presentation-slide-text-toolbar input,
.presentation-slide-points-toolbar input[type="number"]{
  min-width:0;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(0,0,0,.28);
  color:var(--text);
  padding:0 8px;
}
.presentation-slide-text-toolbar-font{
  width:100%;
}
.presentation-slide-text-toolbar-size{
  display:flex;
  align-items:center;
  gap:6px;
  color:rgba(255,255,255,.7);
  font-size:.78rem;
  font-weight:800;
}
.presentation-slide-text-toolbar-size input{
  width:62px;
}
.presentation-slide-points-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.78);
  font-size:.82rem;
  font-weight:900;
}
.presentation-slide-maker-rail-collapse{
  width:26px;
  height:26px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(0,0,0,.18);
  color:var(--panel-header-text);
  font-weight:950;
  cursor:pointer;
}
.presentation-slide-points-toggle input{
  width:16px;
  height:16px;
  accent-color:#4cd964;
}
.presentation-slide-text-toolbar-toggle{
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
  background:rgba(0,0,0,.24);
  color:var(--text);
  font-weight:900;
  cursor:pointer;
}
.presentation-slide-text-toolbar-toggle:hover,
.presentation-slide-text-toolbar-toggle.active{
  border-color:rgba(245,158,11,.58);
  background:rgba(245,158,11,.22);
}
.presentation-slide-text-toolbar-toggle[title="Underline"]{
  text-decoration:underline;
}
.presentation-slide-text-align-group{
  display:flex;
  align-items:center;
  gap:4px;
}
.presentation-slide-text-align-button{
  width:28px;
  padding:0;
  font-size:.76rem;
  display:grid;
  place-items:center;
}
.presentation-slide-align-icon{
  width:16px;
  height:14px;
  display:grid;
  gap:2px;
}
.presentation-slide-align-icon span{
  display:block;
  height:2px;
  border-radius:999px;
  background:currentColor;
}
.presentation-slide-align-icon.align-left span:nth-child(1),
.presentation-slide-align-icon.align-left span:nth-child(3){
  width:70%;
  justify-self:start;
}
.presentation-slide-align-icon.align-left span:nth-child(2){
  width:100%;
  justify-self:start;
}
.presentation-slide-align-icon.align-center span:nth-child(1),
.presentation-slide-align-icon.align-center span:nth-child(3){
  width:70%;
  justify-self:center;
}
.presentation-slide-align-icon.align-center span:nth-child(2){
  width:100%;
  justify-self:center;
}
.presentation-slide-align-icon.align-right span:nth-child(1),
.presentation-slide-align-icon.align-right span:nth-child(3){
  width:70%;
  justify-self:end;
}
.presentation-slide-align-icon.align-right span:nth-child(2){
  width:100%;
  justify-self:end;
}
.presentation-slide-maker-element-controls,
.presentation-slide-maker-element-detail{
  display:grid;
  gap:8px;
}
.presentation-slide-maker-element-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  align-items:center;
  gap:8px;
  padding:7px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  background:rgba(255,255,255,.035);
  cursor:pointer;
}
.presentation-slide-maker-element-row.active{
  border-color:rgba(245,158,11,.42);
  background:rgba(245,158,11,.12);
}
.presentation-slide-maker-preview-viewport{
  grid-area:slide;
  position:relative;
  display:grid;
  place-items:center;
  min-height:0;
  overflow:hidden;
  border-radius:24px;
  background:rgba(2,6,23,.38);
  touch-action:none;
  overscroll-behavior:contain;
}
.presentation-slide-maker-preview-viewport.is-panning,
.presentation-slide-maker-preview-viewport.is-panning .presentation-slide-maker-preview{
  cursor:grabbing !important;
}
.presentation-slide-maker-preview-viewport.move-mode,
.presentation-slide-maker-preview-viewport.move-mode .presentation-slide-maker-preview{
  cursor:grab;
}
.presentation-slide-maker-preview{
  position:relative;
  width:1280px;
  height:720px;
  max-width:none;
  max-height:none;
  min-height:0;
  flex:0 0 auto;
  box-sizing:border-box;
  display:block;
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  color:#f7f4ea;
  text-align:center;
  overflow:visible;
  box-shadow:0 24px 64px rgba(0,0,0,.34);
  will-change:transform;
  touch-action:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
.presentation-slide-maker-preview.drag-over{
  outline:3px dashed rgba(245,158,11,.72);
  outline-offset:-12px;
}
.presentation-slide-maker-preview.sketch-mode{
  cursor:crosshair;
  touch-action:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
.presentation-slide-maker-preview.sketch-brush-mode{
  cursor:none;
}
.presentation-slide-maker-preview.sketch-brush-mode,
.presentation-slide-maker-preview.sketch-brush-mode .presentation-slide-element,
.presentation-slide-maker-preview.sketch-brush-mode .presentation-slide-element *{
  cursor:none !important;
}
.presentation-slide-maker-preview.sketch-eraser-mode{
  cursor:none;
}
.presentation-slide-maker-preview.sketch-eraser-mode,
.presentation-slide-maker-preview.sketch-eraser-mode .presentation-slide-element,
.presentation-slide-maker-preview.sketch-eraser-mode .presentation-slide-element *{
  cursor:none !important;
}
.presentation-slide-maker-preview.sketch-bucket-mode{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpath d='M8.8 6.4 21.2 11.6 16.5 22.6 4.1 17.4 8.8 6.4Z' fill='%23f8fafc' stroke='%23111827' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M9.9 6.9 21.2 11.6' fill='none' stroke='%23111827' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M12 5.5c2.3-2.5 6.5-1 8.5 2.4' fill='none' stroke='%23111827' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M22.2 18.4c1.9 2.2 2.9 3.9 2.9 5.2a2.85 2.85 0 0 1-5.7 0c0-1.3 1-3 2.8-5.2Z' fill='%23facc15' stroke='%23111827' stroke-width='1.5'/%3E%3C/svg%3E") 7 24, cell;
}
.presentation-slide-maker-preview.sketch-bucket-mode,
.presentation-slide-maker-preview.sketch-bucket-mode .presentation-slide-element,
.presentation-slide-maker-preview.sketch-bucket-mode .presentation-slide-element *{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpath d='M8.8 6.4 21.2 11.6 16.5 22.6 4.1 17.4 8.8 6.4Z' fill='%23f8fafc' stroke='%23111827' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M9.9 6.9 21.2 11.6' fill='none' stroke='%23111827' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M12 5.5c2.3-2.5 6.5-1 8.5 2.4' fill='none' stroke='%23111827' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M22.2 18.4c1.9 2.2 2.9 3.9 2.9 5.2a2.85 2.85 0 0 1-5.7 0c0-1.3 1-3 2.8-5.2Z' fill='%23facc15' stroke='%23111827' stroke-width='1.5'/%3E%3C/svg%3E") 7 24, cell !important;
}
.presentation-slide-maker-preview.sketch-selector-mode{
  cursor:crosshair;
}
.presentation-slide-maker-preview.sketch-selector-mode,
.presentation-slide-maker-preview.sketch-selector-mode .presentation-slide-element,
.presentation-slide-maker-preview.sketch-selector-mode .presentation-slide-element *{
  cursor:crosshair !important;
}
.presentation-slide-maker-preview.field-pointer-mode .presentation-slide-element,
.presentation-slide-maker-preview.transform-mode .presentation-slide-element.transform-active{
  cursor:grab;
}
.presentation-slide-maker-preview.field-pointer-mode .presentation-slide-element:active,
.presentation-slide-maker-preview.transform-mode .presentation-slide-element.transform-active:active{
  cursor:grabbing;
}
.presentation-slide-maker-preview.sketch-mode .presentation-slide-element,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-drag-mode-toggle,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-drag-delete,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-delete,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-mode-toggle,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-endpoint,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-add,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-duration,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-facing-ring,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-motion-facing-arrow,
.presentation-slide-maker-preview.sketch-mode .presentation-slide-connector-layer.interactive{
  pointer-events:none;
}
.presentation-slide-sketch-cursor-circle{
  position:absolute;
  z-index:2147483646;
  box-sizing:border-box;
  width:12px;
  height:12px;
  border:1.5px solid rgba(255,255,255,.94);
  border-radius:50%;
  background:rgba(15,23,42,.08);
  box-shadow:
    0 0 0 1px rgba(15,23,42,.9),
    inset 0 0 0 1px rgba(15,23,42,.62),
    0 0 10px rgba(0,0,0,.25);
  transform:translate(-50%, -50%);
  pointer-events:none;
}
.presentation-slide-sketch-cursor-circle.brush{
  border-color:rgba(250,204,21,.96);
  background:rgba(250,204,21,.08);
}
.presentation-slide-sketch-cursor-circle.eraser{
  border-color:rgba(248,250,252,.98);
  background:rgba(248,113,113,.12);
  box-shadow:
    0 0 0 1px rgba(127,29,29,.95),
    inset 0 0 0 1px rgba(255,255,255,.72),
    0 0 10px rgba(0,0,0,.25);
}
.presentation-slide-sketch-controls{
  position:relative;
  z-index:20;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  overflow:visible;
}
.presentation-slide-sketch-controls .btn.active{
  border-color:rgba(248,113,113,.66);
  background:rgba(248,113,113,.18);
}
.presentation-slide-sketch-controls input[type="color"]{
  width:38px;
  height:34px;
  padding:2px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:8px;
  background:rgba(255,255,255,.08);
}
.presentation-slide-sketch-current-color-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.presentation-slide-sketch-current-color-button{
  width:42px;
  height:38px;
  min-height:38px;
  padding:0;
  border:2px solid rgba(255,255,255,.26);
  border-radius:10px;
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.16), 0 2px 8px rgba(0,0,0,.22);
  cursor:pointer;
}
.presentation-slide-sketch-current-color-button:focus-visible{
  outline:2px solid rgba(250,204,21,.95);
  outline-offset:2px;
}
.presentation-slide-sketch-current-color-popover{
  left:0;
  top:48px;
  transform:none;
}
.presentation-slide-sketch-popover-wrap,
.presentation-slide-sketch-gradient-tool-wrap{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.presentation-slide-sketch-brush-style{
  min-height:34px;
  padding:6px 10px;
}
.presentation-slide-sketch-brush-toggle,
.presentation-slide-sketch-transform-tool,
.presentation-slide-sketch-select-field-tool,
.presentation-slide-sketch-copy-tool,
.presentation-slide-sketch-paste-tool{
  width:38px;
  min-width:38px;
  height:34px;
  display:inline-grid;
  place-items:center;
  padding:0;
}
.presentation-slide-sketch-brush-toggle img,
.presentation-slide-sketch-select-field-tool svg,
.presentation-slide-sketch-transform-tool img,
.presentation-slide-sketch-copy-tool img,
.presentation-slide-sketch-paste-tool img{
  display:block;
  width:26px;
  height:26px;
  object-fit:contain;
}
.presentation-slide-sketch-brush-toggle img,
.presentation-slide-sketch-transform-tool img,
.presentation-slide-sketch-copy-tool img,
.presentation-slide-sketch-paste-tool img{
  filter:invert(1);
  opacity:.86;
  pointer-events:none;
}
.presentation-slide-sketch-brush-toggle.active img,
.presentation-slide-sketch-transform-tool.active img{
  filter:invert(82%) sepia(78%) saturate(761%) hue-rotate(354deg) brightness(101%) contrast(97%);
  opacity:1;
}
.presentation-slide-sketch-copy-tool:disabled img,
.presentation-slide-sketch-paste-tool:disabled img{
  opacity:.34;
}
.presentation-slide-sketch-brush-wheel{
  position:absolute;
  left:50%;
  top:42px;
  z-index:2147483100;
  width:238px;
  height:238px;
  border:4px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.12) 0 21%, transparent 22%),
    conic-gradient(from -40deg, rgba(34,197,94,.72), rgba(59,130,246,.72), rgba(168,85,247,.72), rgba(244,63,94,.72), rgba(245,158,11,.72), rgba(34,197,94,.72)),
    radial-gradient(circle, #4b5563 0 48%, #2f3338 49% 82%, #202327 83% 100%);
  box-shadow:0 20px 52px rgba(0,0,0,.5);
  transform:translateX(-50%);
  overflow:visible;
}
.presentation-slide-sketch-brush-wheel::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:78px;
  height:78px;
  border:2px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:
    conic-gradient(#ef4444, #f97316, #facc15, #22c55e, #06b6d4, #3b82f6, #a855f7, #ef4444);
  transform:translate(-50%, -50%);
}
.presentation-slide-sketch-brush-wheel-center{
  position:absolute;
  left:50%;
  top:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border-radius:50%;
  background:radial-gradient(circle at 45% 35%, rgba(255,255,255,.24), rgba(15,23,42,.82));
  color:#f8fafc;
  font-size:9px;
  font-weight:900;
  text-align:center;
  transform:translate(-50%, -50%);
  pointer-events:none;
}
.presentation-slide-sketch-brush-wheel-center b{
  max-width:48px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.presentation-slide-sketch-color-ring{
  position:absolute;
  inset:10px;
  border:2px solid rgba(255,255,255,.34);
  border-radius:50%;
}
.presentation-slide-sketch-wheel-item{
  position:absolute;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  padding:0;
  border:2px solid rgba(255,255,255,.34);
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #f8fafc, #cfd4da 68%, #8b949e);
  color:#111827;
  font-size:0;
  transform:translate(-50%, -50%);
  cursor:pointer;
}
.presentation-slide-sketch-wheel-item.active{
  border-color:#facc15;
  box-shadow:0 0 0 4px rgba(250,204,21,.28), 0 8px 20px rgba(0,0,0,.32);
}
.presentation-slide-sketch-wheel-item svg{
  display:block;
  width:36px;
  height:36px;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.28));
}
.presentation-slide-sketch-tool-icon{
  width:34px;
  height:34px;
  border-radius:50%;
  background-repeat:no-repeat;
  background-position:center;
  background-size:30px 30px;
}
.presentation-slide-sketch-tool-icon.brush{
  background-image:
    radial-gradient(ellipse at 70% 78%, rgba(168,85,247,.72) 0 22%, transparent 23%),
    linear-gradient(135deg, transparent 0 38%, #111827 39% 45%, #f8fafc 46% 58%, #8b5cf6 59% 69%, transparent 70%);
}
.presentation-slide-sketch-tool-icon.brush-pencil{
  background-image:linear-gradient(135deg, transparent 0 35%, #111827 36% 43%, #fde68a 44% 62%, #3b82f6 63% 76%, transparent 77%);
}
.presentation-slide-sketch-tool-icon.brush-marker{
  background-image:
    radial-gradient(ellipse at 34% 78%, rgba(168,85,247,.76) 0 30%, transparent 31%),
    linear-gradient(135deg, transparent 0 32%, #111827 33% 42%, #e5e7eb 43% 58%, #64748b 59% 74%, transparent 75%);
}
.presentation-slide-sketch-tool-icon.brush-soft{
  background-image:
    radial-gradient(ellipse at 38% 76%, rgba(168,85,247,.48) 0 38%, transparent 39%),
    linear-gradient(135deg, transparent 0 32%, #111827 33% 42%, #f8fafc 43% 58%, #a78bfa 59% 74%, transparent 75%);
}
.presentation-slide-sketch-tool-icon.eraser{
  background-image:
    linear-gradient(135deg, transparent 0 28%, #111827 29% 36%, #fca5a5 37% 58%, #f8fafc 59% 74%, transparent 75%),
    radial-gradient(ellipse at 68% 76%, rgba(255,255,255,.72) 0 16%, transparent 17%);
}
.presentation-slide-sketch-gradient-tool{
  width:38px;
  min-width:38px;
  height:34px;
  padding:5px;
}
.presentation-slide-sketch-fill-tool,
.presentation-slide-sketch-line-tool{
  width:38px;
  min-width:38px;
  height:34px;
  padding:5px;
}
.presentation-slide-sketch-fill-tool svg,
.presentation-slide-sketch-line-tool svg{
  display:block;
  width:22px;
  height:22px;
}
.presentation-slide-sketch-selector-tools{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:34px;
  padding:2px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.16);
}
.presentation-slide-sketch-select-tool{
  width:34px;
  min-width:34px;
  height:30px;
  padding:4px;
  border-radius:999px;
}
.presentation-slide-sketch-select-tool svg{
  display:block;
  width:22px;
  height:22px;
}
.presentation-slide-sketch-gradient-mini{
  display:block;
  width:24px;
  height:18px;
  border:2px solid rgba(255,255,255,.84);
  border-radius:4px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);
}
.presentation-slide-sketch-gradient-editor{
  position:relative;
  z-index:2147483100;
  display:flex;
  align-items:center;
  gap:8px;
  flex:1 0 100%;
  align-self:stretch;
  width:100%;
  max-width:100%;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.presentation-slide-sketch-gradient-editor select{
  height:28px;
  width:92px;
  padding:0 22px 0 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(15,23,42,.88);
  color:#f8fafc;
  font-size:12px;
  font-weight:850;
  line-height:1;
}
.presentation-slide-sketch-gradient-stopbar{
  position:relative;
  flex:1 1 190px;
  height:24px;
  min-width:150px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:5px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);
  cursor:crosshair;
  overflow:visible;
}
.presentation-slide-sketch-gradient-stop{
  position:absolute;
  top:50%;
  width:14px;
  height:24px;
  padding:0;
  border:2px solid rgba(15,23,42,.9);
  border-radius:7px;
  background:
    linear-gradient(var(--stop-color, #facc15), var(--stop-color, #facc15)),
    repeating-conic-gradient(rgba(255,255,255,.72) 0% 25%, rgba(15,23,42,.78) 0% 50%) 0 0 / 8px 8px;
  box-shadow:0 0 0 1px rgba(255,255,255,.75);
  transform:translate(-50%, -50%);
  cursor:grab;
}
.presentation-slide-sketch-gradient-stop.active{
  border-color:#facc15;
  box-shadow:0 0 0 2px rgba(250,204,21,.42);
}
.presentation-slide-sketch-gradient-stop-menu{
  position:fixed;
  z-index:2147483647;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  background:rgba(15,23,42,.98);
  box-shadow:0 14px 32px rgba(0,0,0,.42);
  transform:translateX(-50%);
}
.presentation-slide-sketch-gradient-stop-menu input[type="color"]{
  width:32px;
  height:30px;
  padding:2px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:6px;
  background:rgba(255,255,255,.08);
}
.presentation-slide-sketch-gradient-stop-delete{
  min-height:30px;
  padding:0 9px;
  border:1px solid rgba(248,113,113,.38);
  border-radius:6px;
  background:rgba(127,29,29,.58);
  color:#fee2e2;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.presentation-slide-sketch-gradient-stop-transparent{
  min-height:30px;
  padding:0 9px;
  border:1px solid rgba(148,163,184,.36);
  border-radius:6px;
  background:
    linear-gradient(rgba(15,23,42,.82), rgba(15,23,42,.82)),
    repeating-conic-gradient(rgba(255,255,255,.8) 0% 25%, rgba(30,41,59,.86) 0% 50%) 0 0 / 8px 8px;
  color:#e2e8f0;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.presentation-slide-sketch-gradient-stop-transparent.active{
  border-color:rgba(56,189,248,.7);
  color:#e0f2fe;
}
.presentation-slide-sketch-gradient-stop-delete:disabled{
  opacity:.48;
  cursor:not-allowed;
}
.presentation-slide-keybind-modal{
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(2,6,23,.62);
  backdrop-filter:blur(7px);
}
.presentation-slide-keybind-card{
  width:min(460px, 94vw);
  max-height:min(720px, 92vh);
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  gap:12px;
  padding:14px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(15,23,42,.98), rgba(8,13,22,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.5);
}
.presentation-slide-keybind-head,
.presentation-slide-keybind-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.presentation-slide-keybind-head div{
  color:var(--panel-header-text);
  font-size:18px;
  font-weight:950;
}
.presentation-slide-keybind-list{
  display:grid;
  gap:7px;
  min-height:0;
  max-height:min(520px, 58vh);
  overflow-y:auto;
  padding-right:4px;
}
.presentation-slide-keybind-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 108px;
  align-items:center;
  gap:10px;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.045);
  color:var(--minor-font-1-color);
  font-size:12px;
  font-weight:900;
}
.presentation-slide-keybind-row input{
  width:100%;
  height:32px;
  padding:4px 8px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  background:rgba(0,0,0,.24);
  color:var(--panel-header-text);
  text-align:center;
  font-weight:950;
  cursor:pointer;
}
.presentation-slide-keybind-row input:focus{
  border-color:rgba(250,204,21,.8);
  box-shadow:0 0 0 2px rgba(250,204,21,.18);
  outline:none;
}
.presentation-slide-keybind-foot span{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:1.3;
}
.presentation-slide-sketch-weight{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:0 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.18);
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:850;
}
.presentation-slide-sketch-weight input{
  width:82px;
  accent-color:#facc15;
}
.presentation-slide-sketch-speed small{
  min-width:34px;
  color:var(--header-font-color);
  font-size:11px;
  font-weight:900;
  text-align:right;
}
.presentation-slide-sketch-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.18);
  color:rgba(255,255,255,.76);
  font-size:11px;
  font-weight:850;
}
.presentation-slide-sketch-layer,
.student-presentation-sketch-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-sketch-layer{
  z-index:2147483004;
}
.student-presentation-sketch-layer{
  z-index:4;
}
.presentation-slide-maker-preview.sketch-mode .presentation-slide-sketch-layer{
  z-index:2147483004;
}
.presentation-slide-background-sketch-line{
  fill:none;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.presentation-slide-background-sketch-gradient{
  vector-effect:non-scaling-stroke;
  pointer-events:none;
}
.presentation-slide-background-sketch-fill{
  vector-effect:non-scaling-stroke;
  pointer-events:none;
}
.presentation-slide-sketch-gradient-guide{
  vector-effect:non-scaling-stroke;
  pointer-events:none;
  stroke:#facc15;
  stroke-width:1.2;
  stroke-dasharray:3 2;
  stroke-linecap:round;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.55));
}
.presentation-slide-background-sketch-line.animate-as-drawn{
  opacity:0;
}
.presentation-slide-background-sketch-line.draw-masked{
  opacity:1;
  stroke-dasharray:none;
  stroke-dashoffset:0;
}
.presentation-slide-background-sketch-line.animate-as-drawn.draw-complete{
  stroke-dasharray:none;
  stroke-dashoffset:0;
  animation:none;
}
@keyframes presentationSketchDraw{
  to{ stroke-dashoffset:0; }
}
.presentation-slide-sketch-selection-overlay{
  position:absolute;
  inset:0;
  z-index:2147483006;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-sketch-lasso-draft-overlay{
  position:absolute;
  inset:0;
  z-index:2147483006;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-sketch-selection-shape{
  fill:rgba(56,189,248,.075);
  stroke:#f8fafc;
  stroke-width:.8;
  stroke-dasharray:1.4 1.1;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.72));
  animation:presentationSketchSelectionMarch 1.1s linear infinite;
}
.presentation-slide-sketch-lasso-draft-line{
  fill:none;
  stroke:#f8fafc;
  stroke-width:.85;
  stroke-dasharray:1.4 1.1;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.72));
  animation:presentationSketchSelectionMarch 1.1s linear infinite;
}
.presentation-dynamo-bodypart-builder .presentation-slide-sketch-selection-shape,
.presentation-badge-builder .presentation-slide-sketch-selection-shape{
  fill:rgba(0,0,0,.11);
  stroke:rgba(0,0,0,.78);
  filter:none;
}
.presentation-dynamo-bodypart-builder .presentation-slide-sketch-lasso-draft-line,
.presentation-badge-builder .presentation-slide-sketch-lasso-draft-line{
  stroke:rgba(0,0,0,.82);
  filter:none;
}
.presentation-slide-sketch-selection-clear{
  position:absolute;
  z-index:2147483007;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border:1px solid rgba(248,113,113,.88);
  border-radius:999px;
  background:rgba(127,29,29,.94);
  color:#fff;
  font-size:12px;
  font-weight:1000;
  line-height:1;
  transform:translate(-50%, -50%);
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.35);
}
.presentation-slide-sketch-selection-round{
  position:absolute;
  z-index:2147483007;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border:2px solid rgba(15,23,42,.92);
  border-radius:999px;
  background:#facc15;
  color:#111827;
  font-size:0;
  line-height:1;
  transform:translate(-50%, -50%);
  cursor:nwse-resize;
  box-shadow:0 0 0 2px rgba(255,255,255,.72), 0 8px 18px rgba(0,0,0,.35);
}
.presentation-slide-sketch-selection-round::after{
  content:"";
  width:6px;
  height:6px;
  border-radius:999px;
  background:#111827;
}
@keyframes presentationSketchSelectionMarch{
  to{ stroke-dashoffset:-5; }
}
.presentation-slide-element-sketch{
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  outline:1px solid transparent;
  background:transparent;
  overflow:visible;
}
.presentation-slide-element-sketch.active{
  outline-color:rgba(245,158,11,.9);
}
.student-presentation-rendered-sketch{
  padding:0;
  overflow:visible;
}
.presentation-slide-sketch-content{
  width:100%;
  height:100%;
  display:block;
  pointer-events:none;
}
.presentation-slide-sketch-field-art{
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
  pointer-events:none;
}
.presentation-slide-layer-sketch-overlay{
  position:absolute;
  inset:0;
  z-index:6;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.presentation-slide-layers-panel{
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(0,0,0,.18);
  overflow:hidden;
}
.presentation-slide-layers-panel summary{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:9px 11px;
  color:var(--header-font, #93b8ec);
  font-weight:900;
  cursor:pointer;
}
.presentation-slide-layers-title{
  min-width:0;
  flex:1;
}
.presentation-slide-layer-opacity-control{
  width:74px;
  height:28px;
  display:flex;
  align-items:center;
  padding:0 4px;
  border:1px solid rgba(147,184,236,.18);
  border-radius:8px;
  background:rgba(255,255,255,.045);
  cursor:default;
}
.presentation-slide-layer-opacity-control input{
  width:100%;
  min-width:0;
  accent-color:var(--minor1);
}
.presentation-slide-layer-opacity-control input:disabled{
  opacity:.35;
}
.presentation-slide-field-ui-toggle,
.presentation-slide-layer-pencil-toggle{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(147,184,236,.26);
  border-radius:8px;
  background:rgba(255,255,255,.055);
  color:#f8fafc;
  line-height:1;
  cursor:pointer;
}
.presentation-slide-field-ui-toggle svg{
  width:20px;
  height:20px;
  display:block;
}
.presentation-slide-layer-pencil-toggle img{
  width:22px;
  height:22px;
  object-fit:contain;
  filter:invert(1);
  opacity:.82;
  pointer-events:none;
}
.presentation-slide-field-ui-toggle:hover,
.presentation-slide-layer-pencil-toggle:hover{
  border-color:rgba(147,184,236,.58);
  background:rgba(147,184,236,.13);
}
.presentation-slide-field-ui-toggle.active,
.presentation-slide-layer-pencil-toggle.active{
  border-color:rgba(245,158,11,.8);
  background:rgba(245,158,11,.2);
  box-shadow:0 0 0 2px rgba(245,158,11,.16);
}
.presentation-slide-layer-pencil-toggle.active img{
  opacity:1;
  filter:invert(82%) sepia(78%) saturate(761%) hue-rotate(354deg) brightness(101%) contrast(97%);
}
.presentation-slide-layers-panel summary small{
  color:rgba(255,255,255,.58);
}
.presentation-slide-layers-list{
  display:grid;
  gap:6px;
  padding:8px;
  max-height:min(34vh, 320px);
  overflow:auto;
}
.presentation-slide-layer-row{
  position:relative;
  display:grid;
  grid-template-columns:24px 30px minmax(0, 1fr) 30px;
  gap:6px;
  align-items:center;
  padding:5px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.presentation-slide-layer-row.bodypart-builder-row{
  grid-template-columns:24px 30px minmax(0, 1fr) 78px 30px;
}
.presentation-slide-layer-row.dynamic-layer-row{
  grid-template-columns:24px 30px minmax(0, 1fr) 30px 30px;
}
.presentation-slide-layer-row.bodypart-builder-row.dynamic-layer-row{
  grid-template-columns:24px 30px minmax(0, 1fr) 78px 30px 30px;
}
.presentation-slide-layer-row.bodypart-repository{
  border-color:rgba(56,189,248,.42);
  background:rgba(56,189,248,.08);
}
.presentation-slide-layer-row.dragging{
  opacity:.55;
}
.presentation-slide-layer-row.drag-over{
  border-color:rgba(147,184,236,.78);
  box-shadow:inset 0 0 0 1px rgba(147,184,236,.38);
}
.presentation-slide-layer-drop-zone{
  position:relative;
  min-height:9px;
  margin:-3px 4px;
  border-radius:999px;
}
.presentation-slide-layer-drop-zone.active::before{
  content:"";
  position:absolute;
  left:4px;
  right:4px;
  top:50%;
  height:3px;
  border-radius:999px;
  background:var(--header-font-color);
  box-shadow:0 0 0 2px rgba(5,8,15,.72), 0 0 14px rgba(147,184,236,.45);
  transform:translateY(-50%);
  pointer-events:none;
}
.presentation-slide-layer-row.active{
  border-color:rgba(245,158,11,.45);
  background:rgba(245,158,11,.12);
}
.presentation-slide-layer-row.hidden{
  opacity:.55;
}
.presentation-slide-layer-child-row{
  margin-left:22px;
  border-style:dashed;
  background:rgba(255,255,255,.022);
}
.presentation-slide-layer-select,
.presentation-slide-layer-visibility,
.presentation-slide-layer-delete,
.presentation-slide-layer-bodypart,
.presentation-slide-layer-group-toggle{
  min-width:0;
  border:0;
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:#f8fafc;
  cursor:pointer;
}
.presentation-slide-layer-select{
  display:grid;
  gap:2px;
  padding:6px 8px;
  text-align:left;
}
.presentation-slide-layer-child-select{
  opacity:.88;
}
.presentation-slide-layer-select b,
.presentation-slide-layer-select span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.presentation-slide-layer-select b{
  color:#f8fafc;
  font-weight:850;
  font-size:.82rem;
}
.presentation-slide-layer-select span{
  color:rgba(255,255,255,.58);
  font-size:.72rem;
}
.presentation-slide-layer-select .presentation-slide-layer-effect{
  width:max-content;
  max-width:100%;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(76,217,100,.14);
  color:#b8f7c6;
  font-size:.66rem;
  font-weight:900;
}
.presentation-slide-layer-select .presentation-slide-layer-effect.bodypart{
  background:rgba(56,189,248,.16);
  color:#bae6fd;
}
.presentation-slide-layer-select .presentation-slide-layer-effect.dynamic{
  background:rgba(250,204,21,.16);
  color:#fde68a;
}
.presentation-slide-layer-visibility,
.presentation-slide-layer-delete,
.presentation-slide-layer-dynamic,
.presentation-slide-layer-group-toggle,
.presentation-slide-layer-child-branch,
.presentation-slide-layer-child-spacer{
  width:30px;
  height:30px;
  font-weight:900;
}
.presentation-slide-layer-group-toggle{
  width:24px;
  color:var(--header-font-color);
}
.presentation-slide-layer-bodypart{
  min-height:30px;
  padding:0 7px;
  color:rgba(255,255,255,.72);
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
}
.presentation-slide-layer-bodypart.active{
  background:rgba(56,189,248,.24);
  color:#e0f2fe;
  box-shadow:inset 0 0 0 1px rgba(125,211,252,.36);
}
.presentation-slide-layer-dynamic{
  display:grid;
  place-items:center;
  background:rgba(250,204,21,.16);
  color:#fde68a;
  font-size:.8rem;
  font-weight:1000;
}
.presentation-slide-layer-dynamic:hover{
  background:rgba(250,204,21,.26);
  color:#fff7cc;
}
.presentation-slide-layer-group-toggle.placeholder{
  opacity:0;
  pointer-events:none;
}
.presentation-slide-layer-child-branch,
.presentation-slide-layer-child-spacer{
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.42);
  font-size:.8rem;
}
.presentation-slide-layer-visibility{
  display:grid;
  place-items:center;
  color:var(--header-font-color);
}
.presentation-slide-layer-visibility svg{
  width:18px;
  height:18px;
  display:block;
}
.presentation-slide-layer-select:hover,
.presentation-slide-layer-visibility:hover,
.presentation-slide-layer-delete:hover,
.presentation-slide-layer-bodypart:hover,
.presentation-slide-layer-group-toggle:hover{
  background:rgba(245,158,11,.2);
}
.presentation-slide-layers-empty{
  padding:8px;
  color:rgba(255,255,255,.56);
  font-size:.82rem;
  font-weight:800;
}
.presentation-slide-maker-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.58);
  font-size:1.2rem;
  font-weight:800;
  pointer-events:none;
}
.presentation-slide-marquee{
  position:absolute;
  z-index:2147483646;
  border:2px dashed rgba(245,158,11,.88);
  border-radius:10px;
  background:rgba(245,158,11,.12);
  pointer-events:none;
}
.presentation-slide-element{
  position:absolute;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  min-height:24px;
  padding:8px;
  border:1px solid transparent;
  border-radius:10px;
  cursor:grab;
  user-select:none;
  touch-action:none;
}
.presentation-slide-element.active{
  border-color:rgba(245,158,11,.9);
  box-shadow:0 0 0 2px rgba(245,158,11,.18);
}
.presentation-slide-element.presentation-slide-element-sketch{
  min-width:0;
  min-height:0;
  display:block;
  padding:0;
  border:0;
  outline:1px solid transparent;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.presentation-slide-element.presentation-slide-element-sketch.active{
  outline-color:rgba(245,158,11,.9);
}
.presentation-slide-element.ghosted{
  display:none;
  pointer-events:none;
}
.presentation-slide-element:active{
  cursor:grabbing;
}
.presentation-slide-element-content-frame{
  position:absolute;
  box-sizing:border-box;
  left:0;
  top:0;
  width:100%;
  height:100%;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:inherit;
  overflow:visible;
  pointer-events:auto;
}
.presentation-slide-element-content-frame.preserved{
  transform-origin:0 0;
}
.presentation-slide-maker-preview.has-active-field .presentation-slide-element.selection-locked{
  cursor:default;
  pointer-events:none;
}
.presentation-slide-element-image{
  padding:0;
  overflow:visible;
}
.presentation-slide-element.presentation-slide-element-homeSlice{
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent !important;
  overflow:hidden;
  box-shadow:none;
}
.presentation-slide-element.presentation-slide-element-homeSlice.active{
  outline:2px solid rgba(245,158,11,.9);
  outline-offset:0;
  box-shadow:none;
}
.presentation-slide-element-youtube{
  padding:0;
  overflow:hidden;
  background:#05070d;
}
.presentation-slide-element-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  pointer-events:none;
  border-radius:10px;
  clip-path:inset(0 round 10px);
}
.presentation-slide-youtube-host{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border-radius:10px;
  overflow:hidden;
  background:#05070d;
}
.presentation-slide-youtube-host{ pointer-events:none; }
.student-presentation-rendered-youtube{
  padding:0;
  overflow:hidden;
  background:#05070d;
}
.presentation-slide-youtube-host iframe,
.student-presentation-rendered-youtube iframe,
.student-presentation-drag-popover.student-presentation-rendered-youtube iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.presentation-youtube-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:rgba(255,255,255,.72);
  font-weight:900;
  background:#111827;
}
.presentation-slide-element-group{
  padding:0;
  overflow:visible;
}
.presentation-slide-group-content,
.student-presentation-group-content{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:visible;
  pointer-events:none;
}
.presentation-slide-group-child,
.student-presentation-group-child{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  border-radius:10px;
  overflow:hidden;
  text-align:center;
  white-space:pre-wrap;
  word-break:break-word;
  pointer-events:none;
}
.presentation-slide-group-child-image,
.student-presentation-group-child-image{
  padding:0;
}
.presentation-slide-group-child-sketch,
.student-presentation-group-child-sketch{
  padding:0;
  overflow:visible;
}
.presentation-slide-group-child-image img,
.student-presentation-group-child-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  pointer-events:none;
  border-radius:10px;
}
.presentation-slide-element-text{
  align-items:center;
  justify-content:center;
  overflow:visible;
  text-align:center;
  white-space:pre-wrap;
}
.presentation-slide-text-content{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:inherit;
  text-align:inherit;
  outline:none;
  overflow:visible;
  white-space:pre-wrap;
  word-break:break-word;
}
.presentation-slide-text-content[contenteditable="true"]{
  cursor:text;
  user-select:text;
  box-shadow:inset 0 0 0 2px rgba(245,158,11,.55);
  background:rgba(0,0,0,.18);
}
.presentation-slide-element-chrome{
  position:absolute;
  inset:-5px;
  z-index:20;
  border:1px dashed transparent;
  border-radius:14px;
  pointer-events:none;
}
.presentation-slide-element:hover .presentation-slide-element-chrome,
.presentation-slide-element.active .presentation-slide-element-chrome,
.presentation-slide-question-field:hover .presentation-slide-element-chrome,
.presentation-slide-question-field.active .presentation-slide-element-chrome{
  border-color:rgba(255,255,255,.52);
}
.presentation-slide-maker-preview.has-active-field .presentation-slide-element.selection-locked:hover .presentation-slide-element-chrome{
  border-color:transparent;
}
.presentation-slide-element-tool{
  position:absolute;
  top:50%;
  z-index:30;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  display:none;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(0,0,0,.72);
  color:var(--panel-header-text);
  font-size:10px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  box-shadow:0 5px 12px rgba(0,0,0,.24);
}
.presentation-slide-element-tool.danger{ left:-6px; }
.presentation-slide-element-tool.color{ right:-6px; }
.presentation-slide-element-tool.layer-up,
.presentation-slide-element-tool.layer-down{
  top:-10px;
  transform:none;
}
.presentation-slide-element-tool.layer-up{ left:calc(50% - 22px); }
.presentation-slide-element-tool.layer-down{ left:calc(50% + 4px); }
.presentation-slide-element-tool.motion,
.presentation-slide-element-tool.interactable,
.presentation-slide-element-tool.shape,
.presentation-slide-element-tool.dynamic-layer{
  top:auto;
  bottom:-14px;
  width:auto;
  height:20px;
  padding:0 8px;
  transform:translateX(-50%);
  border-radius:999px;
  font-size:9px;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.presentation-slide-element-tool.motion{
  left:calc(50% - 126px);
  min-width:54px;
}
.presentation-slide-element-tool.interactable{
  left:calc(50% - 34px);
  min-width:74px;
}
.presentation-slide-element-tool.shape{
  left:calc(50% + 62px);
  min-width:46px;
}
.presentation-slide-element-tool.dynamic-layer{
  left:calc(50% + 118px);
  min-width:24px;
  padding:0 7px;
  background:rgba(250,204,21,.88);
  color:#3b2504;
}
.presentation-slide-element-tool.premium-locked-option{
  color:#7b8495;
  background:rgba(148,163,184,.18);
}
.presentation-slide-element-tool.motion.has-animation:not(.premium-locked-option){
  background:rgba(34,197,94,.9);
  color:#052e16;
  box-shadow:0 0 0 2px rgba(187,247,208,.35), 0 8px 16px rgba(5,46,22,.28);
}
.presentation-slide-element:hover .presentation-slide-element-tool,
.presentation-slide-element.active .presentation-slide-element-tool,
.presentation-slide-element:focus-within .presentation-slide-element-tool,
.presentation-slide-question-field:hover .presentation-slide-element-tool,
.presentation-slide-question-field.active .presentation-slide-element-tool,
.presentation-slide-question-field:focus-within .presentation-slide-element-tool{
  display:flex;
}
.presentation-slide-maker-preview.has-active-field .presentation-slide-element.selection-locked:hover .presentation-slide-element-tool,
.presentation-slide-maker-preview.has-active-field .presentation-slide-element.selection-locked:focus-within .presentation-slide-element-tool{
  display:none;
}
.presentation-slide-maker-preview.has-active-field .presentation-slide-drag-mode-toggle.selection-locked{
  display:none;
}
.presentation-slide-maker-preview.field-ui-visible .presentation-slide-element:not(.selection-locked) .presentation-slide-element-chrome{
  border-color:rgba(255,255,255,.52);
}
.presentation-slide-maker-preview.field-ui-visible .presentation-slide-element:not(.selection-locked) .presentation-slide-element-tool{
  display:flex;
}
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element:not(.field-ui-revealed) .presentation-slide-element-chrome{
  border-color:transparent !important;
}
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element:not(.field-ui-revealed) .presentation-slide-element-tool{
  display:none !important;
}
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element.field-ui-revealed .presentation-slide-element-chrome,
.presentation-slide-maker-preview.transform-mode .presentation-slide-element.transform-active .presentation-slide-element-chrome{
  border-color:rgba(250,204,21,.66);
}
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element.field-ui-revealed .presentation-slide-element-tool{
  display:flex;
}
.presentation-slide-element-tool:hover{
  background:rgba(245,158,11,.92);
  color:#111827;
}
.presentation-slide-element-tool.danger:hover{
  background:rgba(248,113,113,.95);
  color:#111827;
}
.presentation-slide-color-popover{
  position:absolute;
  top:calc(100% + 8px);
  right:-6px;
  z-index:2147483006;
  pointer-events:auto;
  display:grid;
  gap:7px;
  min-width:132px;
  padding:9px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(11,18,28,.96);
  box-shadow:0 12px 28px rgba(0,0,0,.36);
}
.presentation-slide-interactable-popover{
  position:absolute;
  left:50%;
  top:calc(100% + 14px);
  z-index:10;
  width:min(210px, 90vw);
  max-height:180px;
  display:grid;
  gap:7px;
  padding:9px;
  overflow:auto;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(11,18,28,.97);
  box-shadow:0 14px 30px rgba(0,0,0,.38);
}
.presentation-slide-interactable-popover button.active{
  border-color:rgba(76,217,100,.44);
  background:rgba(76,217,100,.18);
}
.presentation-motion-path{
  will-change:transform;
}
.student-presentation-rendered-element.presentation-dynamo-animated-field > :not(.presentation-dynamo-frame-player){
  opacity:0;
}
.student-presentation-rendered-element.presentation-dynamo-animated-field{
  background:transparent !important;
  color:transparent !important;
}
.presentation-slide-element.presentation-dynamo-animated-field > img:not(.presentation-dynamo-frame-player),
.presentation-slide-element.presentation-dynamo-animated-field > .presentation-slide-element-content-frame,
.presentation-slide-element.presentation-dynamo-animated-field > .presentation-slide-youtube-host,
.presentation-slide-element.presentation-dynamo-animated-field > .presentation-slide-group-content,
.presentation-slide-element.presentation-dynamo-animated-field > .question-small-note,
.presentation-slide-element.presentation-dynamo-animated-field > .presentation-slide-text-content{
  opacity:0;
}
.presentation-slide-element.presentation-dynamo-animated-field > .presentation-slide-text-content{
  background:transparent !important;
  color:transparent !important;
}
.presentation-dynamo-frame-player{
  position:absolute;
  inset:0;
  z-index:3;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain !important;
  object-position:center center;
  border-radius:0;
  clip-path:none !important;
  opacity:1 !important;
  pointer-events:none;
}
.presentation-slide-interactable-popover.floating{
  z-index:2147483647;
  transform:translateX(-50%);
}
.presentation-slide-interactable-popover button{
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  padding:8px 10px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  text-align:left;
}
.presentation-slide-interactable-popover button:hover{
  background:rgba(76,217,100,.16);
  border-color:rgba(76,217,100,.36);
}
.presentation-slide-game-node-row{
  display:grid;
  gap:5px;
  padding:7px;
  border-radius:10px;
  border:1px solid rgba(147,187,236,.24);
  background:rgba(147,187,236,.08);
  color:var(--panel-header-text, var(--text));
  font-size:12px;
  font-weight:800;
}
.presentation-slide-game-node-row select{
  width:100%;
  min-height:32px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:rgba(8,13,22,.92);
  color:var(--text);
  font:inherit;
  font-size:12px;
  padding:5px 7px;
}
.presentation-slide-interactable-shrink-wrap{
  display:grid;
  gap:6px;
  grid-column:1 / -1;
  padding-top:4px;
  border-top:1px solid rgba(255,255,255,.10);
}
.presentation-slide-interactable-popover button:disabled,
.presentation-slide-interactable-popover button.premium-locked-option{
  color:#7b8495;
  background:rgba(148,163,184,.12);
  border-color:rgba(148,163,184,.18);
  cursor:not-allowed;
  opacity:.68;
}
.presentation-slide-interactable-popover button:disabled:hover,
.presentation-slide-interactable-popover button.premium-locked-option:hover{
  background:rgba(148,163,184,.12);
  border-color:rgba(148,163,184,.18);
}
.presentation-slide-shape-popover{
  position:absolute;
  z-index:2147483647;
  width:min(260px, 92vw);
  display:grid;
  gap:8px;
  padding:10px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.16);
  border-radius:14px;
  background:rgba(11,18,28,.97);
  box-shadow:0 14px 30px rgba(0,0,0,.38);
}
.presentation-slide-shape-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}
.presentation-slide-shape-choice{
  position:relative;
  min-height:48px;
  display:grid;
  place-items:center;
  gap:2px;
  border:1px dashed rgba(255,255,255,.22);
  border-radius:11px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  cursor:grab;
}
.presentation-slide-shape-choice:disabled{
  cursor:not-allowed;
  opacity:.42;
}
.presentation-slide-shape-choice span{
  font-size:20px;
  line-height:1;
}
.presentation-slide-shape-choice small{
  font-size:9px;
  font-weight:850;
  opacity:.72;
}
.presentation-slide-shape-choice.custom{
  overflow:hidden;
}
.presentation-slide-shape-choice-thumb{
  position:relative;
  width:28px;
  height:24px;
  color:#f59e0b;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.45));
}
.presentation-slide-shape-choice-delete{
  position:absolute;
  top:3px;
  right:3px;
  z-index:3;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:15px;
  height:15px;
  padding:0;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(8,13,22,.72);
  color:rgba(255,255,255,.76);
  font-size:0;
  font-family:Arial, sans-serif;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  box-shadow:0 4px 10px rgba(0,0,0,.24);
  transform:scale(.96);
  transition:opacity .14s ease, transform .14s ease, border-color .14s ease, background .14s ease, color .14s ease;
}
.presentation-slide-shape-choice-delete::before{
  content:"x";
  display:block;
  font-size:10px;
  line-height:1;
  transform:translateY(-.5px);
}
.presentation-slide-shape-choice.custom:hover .presentation-slide-shape-choice-delete,
.presentation-slide-shape-choice-delete:focus-visible{
  opacity:.95;
  pointer-events:auto;
  transform:scale(1);
}
.presentation-slide-shape-choice-delete:hover{
  opacity:1;
  border-color:rgba(248,113,113,.72);
  background:rgba(127,29,29,.82);
  color:#fff;
}
.presentation-slide-shape-choice:hover,
.presentation-slide-shape-choice.active{
  border-color:rgba(245,158,11,.72);
  background:rgba(245,158,11,.16);
}
.presentation-slide-shape-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.presentation-slide-shape-actions button{
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  color:var(--text);
  padding:8px 10px;
  font:inherit;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.presentation-slide-shape-actions button:hover{
  border-color:rgba(245,158,11,.46);
  background:rgba(245,158,11,.16);
}
.presentation-slide-shape-frame{
  position:absolute;
  z-index:25;
  display:grid;
  place-items:center;
  border:0;
  color:rgba(245,158,11,.9);
  background:transparent;
  cursor:move;
  pointer-events:auto;
}
.presentation-slide-shape-frame-outline{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  color:#f59e0b;
  filter:drop-shadow(0 2px 7px rgba(0,0,0,.55));
  pointer-events:none;
}
.presentation-slide-shape-choice .presentation-slide-shape-choice-thumb{
  position:relative;
  inset:auto;
  width:28px;
  height:24px;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.45));
}
.presentation-slide-shape-frame-resize{
  position:absolute;
  width:13px;
  height:13px;
  border-radius:4px;
  border:1px solid rgba(255,255,255,.86);
  background:#f59e0b;
  cursor:nwse-resize;
}
.presentation-slide-shape-frame-resize.nw{
  left:-7px;
  top:-7px;
  cursor:nwse-resize;
}
.presentation-slide-shape-frame-resize.ne{
  right:-7px;
  top:-7px;
  cursor:nesw-resize;
}
.presentation-slide-shape-frame-resize.sw{
  left:-7px;
  bottom:-7px;
  cursor:nesw-resize;
}
.presentation-slide-shape-frame-resize.se{
  right:-7px;
  bottom:-7px;
  cursor:nwse-resize;
}
.presentation-slide-shape-sketch{
  position:absolute;
  inset:0;
  z-index:26;
  width:100%;
  height:100%;
  cursor:crosshair;
  overflow:visible;
  pointer-events:auto;
}
.presentation-slide-shape-sketch-line{
  fill:none;
  stroke:#f59e0b;
  stroke-width:2.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:3 4;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 2px 7px rgba(0,0,0,.52));
}
.presentation-slide-context-menu{
  position:fixed;
  z-index:2147483647;
  min-width:156px;
  max-width:min(260px, calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  display:grid;
  gap:1px;
  padding:4px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:rgba(11,18,28,.98);
  box-shadow:0 16px 34px rgba(0,0,0,.42);
  overflow-y:auto;
  overscroll-behavior:contain;
  pointer-events:auto;
  touch-action:manipulation;
  -webkit-user-select:none;
  user-select:none;
}
.presentation-slide-context-menu:hover{
  overflow-y:auto;
}
.presentation-slide-context-menu button{
  width:100%;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--text);
  padding:7px 10px;
  font:inherit;
  font-size:12px;
  font-weight:850;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}
.presentation-slide-context-menu button:hover{
  background:rgba(245,158,11,.18);
}
.presentation-slide-context-menu button.active{
  background:rgba(250,204,21,.18);
  color:#fff8d5;
}
.presentation-slide-interactable-answer{
  position:absolute;
  left:50%;
  bottom:-38px;
  z-index:8;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  transform:translateX(-50%);
  border:2px solid rgba(255,255,255,.72);
  border-radius:999px;
  color:#07110a;
  font-size:18px;
  font-weight:1000;
  line-height:1;
  box-shadow:0 8px 16px rgba(0,0,0,.3);
  cursor:pointer;
}
.presentation-slide-interactable-answer.correct{
  background:#4cd964;
}
.presentation-slide-interactable-answer.incorrect{
  background:#ff5b5b;
}
.presentation-slide-interactable-answer:hover{
  filter:brightness(1.08);
  transform:translateX(-50%) scale(1.06);
}
.presentation-slide-interactable-match-badge{
  position:absolute;
  left:50%;
  bottom:-38px;
  z-index:8;
  transform:translateX(-50%);
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(76,217,100,.34);
  background:rgba(11,18,28,.92);
  color:rgba(255,255,255,.82);
  font-size:.64rem;
  font-weight:900;
  white-space:nowrap;
  pointer-events:none;
}
.presentation-slide-interactable-match-badge.linked{
  color:#baf7c7;
  border-color:rgba(76,217,100,.62);
}
.presentation-slide-interactable-match-badge.drag{
  color:#ffd89a;
  border-color:rgba(255,185,64,.62);
  background:rgba(20,16,9,.94);
}
.presentation-slide-interactable-match-badge.game-node{
  color:#c7d8ff;
  border-color:rgba(147,187,236,.68);
  background:rgba(25,34,55,.94);
}
.presentation-slide-drag-connect-hint{
  position:absolute;
  left:50%;
  bottom:-64px;
  z-index:9;
  transform:translateX(-50%);
  width:max-content;
  max-width:220px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(255,185,64,.52);
  background:rgba(20,16,9,.94);
  color:#ffd89a;
  font-size:.66rem;
  font-weight:900;
  line-height:1.15;
  pointer-events:none;
  box-shadow:0 8px 18px rgba(0,0,0,.3);
}
.presentation-slide-reveal-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2147483200;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-reveal-line{
  fill:none;
  stroke:rgba(76,217,100,.62);
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.35));
}
.presentation-slide-reveal-target{
  position:absolute;
  z-index:2147482996;
  display:grid;
  place-items:center;
  min-width:18px;
  min-height:18px;
  border:2px dashed rgba(76,217,100,.92);
  border-radius:999px;
  background:rgba(76,217,100,.13);
  box-shadow:0 0 0 4px rgba(76,217,100,.08), 0 10px 22px rgba(0,0,0,.22);
  cursor:grab;
  pointer-events:auto;
}
.presentation-slide-reveal-target::before{
  content:"";
  width:38%;
  height:38%;
  border-radius:999px;
  background:rgba(76,217,100,.88);
  box-shadow:0 0 16px rgba(76,217,100,.5);
}
.presentation-slide-reveal-target.drag{
  border-color:rgba(255,185,64,.84);
  background:rgba(255,185,64,.14);
  box-shadow:0 0 0 4px rgba(255,185,64,.12), 0 10px 22px rgba(0,0,0,.28);
}
.presentation-slide-reveal-target.drag::before{
  background:rgba(255,185,64,.9);
  box-shadow:0 0 16px rgba(255,185,64,.5);
}
.presentation-slide-reveal-target-resize{
  position:absolute;
  right:-5px;
  bottom:-5px;
  width:10px;
  height:10px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:999px;
  background:#4cd964;
  cursor:nwse-resize;
  box-shadow:0 3px 8px rgba(0,0,0,.3);
}
.presentation-slide-match-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:6;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-match-line{
  fill:none;
  stroke:rgba(76,217,100,.92);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.presentation-slide-match-line.active{
  stroke-dasharray:5 4;
  opacity:.78;
}
.presentation-slide-connector-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}
.presentation-slide-connector-layer.interactive{
  pointer-events:none;
}
.presentation-slide-connector-line{
  fill:none;
  stroke:rgba(76,217,100,.68);
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.35));
  pointer-events:none;
}
.presentation-slide-connector-line.match{
  stroke:rgba(76,217,100,.76);
}
.presentation-slide-connector-line.reveal{
  stroke:rgba(76,217,100,.58);
}
.presentation-slide-connector-line.drag{
  stroke:rgba(255,185,64,.74);
  stroke-width:2.6;
}
.presentation-slide-connector-line.drag.active{
  stroke:rgba(255,213,121,.95);
  stroke-dasharray:4 3;
}
.presentation-slide-connector-line.motion{
  stroke:rgba(139,224,255,.86);
  stroke-width:2.15;
  stroke-dasharray:3.8 2.8;
}
.presentation-slide-connector-hit{
  fill:none;
  stroke:transparent;
  stroke-width:18;
  pointer-events:stroke;
  cursor:context-menu;
}
.presentation-slide-connector-line.motion.loop{
  stroke:rgba(76,217,100,.86);
}
.presentation-slide-connector-line.motion.mirror,
.presentation-slide-connector-line.motion.relay{
  stroke:rgba(250,204,21,.88);
}
.presentation-slide-connector-line.motion.closed{
  stroke:rgba(129,140,248,.9);
  stroke-dasharray:0;
}
.presentation-slide-drag-mode-toggle{
  position:absolute;
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translate(-50%, -50%);
  border:2px solid rgba(255,255,255,.92);
  border-radius:999px;
  appearance:none;
  color:#06111f;
  padding:0;
  font-family:Arial, sans-serif;
  font-size:15px;
  font-weight:900;
  line-height:1;
  text-align:center;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.34);
}
.presentation-slide-drag-mode-label{
  display:block;
  line-height:1;
  transform:translateY(.5px);
  pointer-events:none;
}
.presentation-slide-drag-mode-toggle.correct{
  background:#4cd964;
}
.presentation-slide-drag-mode-toggle.distractor{
  background:#ff5d5d;
}
.presentation-slide-drag-mode-toggle.full-size{
  background:#8be0ff;
  font-size:10px;
}
.presentation-slide-drag-delete{
  position:absolute;
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translate(-50%, -50%);
  border:2px solid rgba(255,255,255,.92);
  border-radius:999px;
  appearance:none;
  background:#ff5d5d;
  color:#fff;
  padding:0;
  line-height:0;
  cursor:pointer;
  pointer-events:auto;
  box-shadow:0 8px 18px rgba(0,0,0,.34);
}
.presentation-slide-drag-delete::before,
.presentation-slide-drag-delete::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:12px;
  height:2px;
  border-radius:999px;
  background:#fff;
  transform-origin:center;
}
.presentation-slide-drag-delete::before{
  transform:translate(-50%, -50%) rotate(45deg);
}
.presentation-slide-drag-delete::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}
.presentation-slide-drag-delete:hover,
.presentation-slide-drag-delete:focus-visible{
  filter:brightness(1.08);
  transform:translate(-50%, -50%) scale(1.08);
}
.presentation-slide-drop-landing-preview{
  position:absolute;
  pointer-events:none;
  opacity:.36;
  border:2px dashed rgba(139,224,255,.82);
  border-radius:6px;
  background:rgba(139,224,255,.12);
  box-shadow:0 0 0 3px rgba(139,224,255,.12), 0 10px 22px rgba(0,0,0,.22);
  overflow:hidden;
  filter:saturate(.9);
}
.presentation-slide-drop-landing-preview .presentation-slide-sketch-field-art,
.presentation-slide-drop-landing-preview img{
  opacity:.78;
}
.presentation-slide-motion-mode-toggle,
.presentation-slide-motion-endpoint,
.presentation-slide-motion-delete,
.presentation-slide-motion-add{
  position:absolute;
  display:grid;
  place-items:center;
  transform:translate(-50%, -50%);
  border:2px solid rgba(255,255,255,.9);
  border-radius:999px;
  color:#06111f;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.34);
}
.presentation-slide-motion-mode-toggle{
  width:32px;
  height:32px;
  background:#8be0ff;
  font-size:18px;
}
.presentation-slide-motion-mode-toggle.loop{
  background:#4cd964;
}
.presentation-slide-motion-mode-toggle.relay,
.presentation-slide-motion-mode-toggle.mirror{
  background:#facc15;
}
.presentation-slide-motion-mode-toggle.closed{
  background:#818cf8;
}
.presentation-slide-motion-mode-toggle:disabled{
  cursor:default;
  opacity:.9;
}
.presentation-slide-motion-endpoint{
  width:20px;
  height:20px;
  background:#f8fafc;
}
.presentation-slide-motion-delete{
  width:24px;
  height:24px;
  background:#ff5d5d;
  color:#fff;
}
.presentation-slide-motion-delete::before,
.presentation-slide-motion-delete::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:12px;
  height:2px;
  border-radius:999px;
  background:#fff;
  transform-origin:center;
}
.presentation-slide-motion-delete::before{
  transform:translate(-50%, -50%) rotate(45deg);
}
.presentation-slide-motion-delete::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}
.presentation-slide-motion-add{
  width:18px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-color:rgba(255,255,255,.92);
  background:#38bdf8;
  font-family:Arial, sans-serif;
  font-size:0;
  font-weight:1000;
  line-height:1;
  padding:0;
  text-align:center;
}
.presentation-slide-motion-add::before{
  content:"+";
  display:block;
  font-size:15px;
  line-height:1;
  transform:translateY(-.5px);
}
.presentation-slide-motion-add.armed{
  background:#facc15;
  box-shadow:0 0 0 4px rgba(250,204,21,.22), 0 8px 18px rgba(0,0,0,.34);
}
.presentation-slide-motion-endpoint::after{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#38bdf8;
}
.presentation-slide-motion-facing-ring{
  position:absolute;
  width:58px;
  height:58px;
  transform:translate(-50%, -50%);
  border:3px solid rgba(250,204,21,.78);
  border-radius:999px;
  background:rgba(250,204,21,.08);
  pointer-events:auto;
  cursor:context-menu;
  box-shadow:0 10px 22px rgba(0,0,0,.24), inset 0 0 0 1px rgba(255,255,255,.2);
}
.presentation-slide-motion-facing-ring.return-only{
  border-color:rgba(56,189,248,.82);
  background:rgba(56,189,248,.1);
}
.presentation-slide-motion-facing-ghost{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:stretch;
  transform-origin:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.presentation-slide-motion-facing-ghost.active{
  opacity:.82;
  visibility:visible;
}
.presentation-slide-motion-facing-ghost-field{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:4px;
  filter:saturate(.82);
}
.presentation-slide-motion-facing-ghost-field > *{
  width:100%;
  height:100%;
  pointer-events:none !important;
}
.presentation-slide-motion-facing-ghost-cross{
  position:absolute;
  inset:-7px;
  pointer-events:none;
}
.presentation-slide-motion-facing-ghost-cross::before,
.presentation-slide-motion-facing-ghost-cross::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  box-shadow:0 0 0 1px rgba(0,0,0,.18);
  transform:translate(-50%, -50%);
}
.presentation-slide-motion-facing-ghost-cross::before{
  width:100%;
  height:2px;
}
.presentation-slide-motion-facing-ghost-cross::after{
  width:2px;
  height:100%;
}
.presentation-slide-motion-facing-ghost-axis{
  position:absolute;
  width:15px;
  height:15px;
  display:grid;
  place-items:center;
  border:1px solid rgba(6,17,31,.72);
  border-radius:999px;
  background:#fff7cc;
  padding:0;
  pointer-events:none;
  cursor:pointer;
}
.presentation-slide-motion-facing-ghost.active .presentation-slide-motion-facing-ghost-axis{
  pointer-events:auto;
}
.presentation-slide-motion-facing-ghost.return .presentation-slide-motion-facing-ghost-axis{
  background:#d8f3ff;
}
.presentation-slide-motion-facing-ghost-axis::before{
  content:"";
  width:0;
  height:0;
  border-top:3px solid transparent;
  border-bottom:3px solid transparent;
}
.presentation-slide-motion-facing-ghost-axis.x.left{
  left:-4px;
  top:50%;
  transform:translate(-50%, -50%);
}
.presentation-slide-motion-facing-ghost-axis.x.right{
  right:-4px;
  top:50%;
  transform:translate(50%, -50%) rotate(180deg);
}
.presentation-slide-motion-facing-ghost-axis.y.top{
  left:50%;
  top:-4px;
  transform:translate(-50%, -50%) rotate(90deg);
}
.presentation-slide-motion-facing-ghost-axis.y.bottom{
  left:50%;
  bottom:-4px;
  transform:translate(-50%, 50%) rotate(-90deg);
}
.presentation-slide-motion-facing-ghost-axis::before{
  border-right:6px solid #6b4f00;
}
.presentation-slide-motion-facing-ghost.return .presentation-slide-motion-facing-ghost-axis::before{
  border-right-color:#075985;
}
.presentation-slide-motion-facing-ghost.flip-x .presentation-slide-motion-facing-ghost-axis.x,
.presentation-slide-motion-facing-ghost.flip-y .presentation-slide-motion-facing-ghost-axis.y{
  background:#facc15;
  box-shadow:0 0 0 3px rgba(250,204,21,.22);
}
.presentation-slide-motion-facing-ghost.return.flip-x .presentation-slide-motion-facing-ghost-axis.x,
.presentation-slide-motion-facing-ghost.return.flip-y .presentation-slide-motion-facing-ghost-axis.y{
  background:#38bdf8;
  box-shadow:0 0 0 3px rgba(56,189,248,.22);
}
.presentation-slide-motion-facing-arrow{
  position:absolute;
  width:26px;
  height:22px;
  display:grid;
  place-items:center;
  border:0;
  appearance:none;
  background:transparent;
  padding:0;
  cursor:grab;
  pointer-events:auto;
  filter:drop-shadow(0 7px 12px rgba(0,0,0,.36));
}
.presentation-slide-motion-facing-arrow:active{
  cursor:grabbing;
}
.presentation-slide-motion-facing-arrow::before{
  content:"";
  width:0;
  height:0;
  border-top:10px solid transparent;
  border-bottom:10px solid transparent;
  border-left:20px solid #f59e0b;
}
.presentation-slide-motion-facing-arrow.return::before{
  border-left-color:#38bdf8;
}
.presentation-slide-motion-facing-arrow.active-ghost{
  filter:drop-shadow(0 0 7px rgba(255,255,255,.65)) drop-shadow(0 7px 12px rgba(0,0,0,.36));
}
.presentation-slide-drag-mode-toggle:hover,
.presentation-slide-drag-mode-toggle:focus-visible,
.presentation-slide-motion-mode-toggle:hover,
.presentation-slide-motion-mode-toggle:focus-visible,
.presentation-slide-motion-endpoint:hover,
.presentation-slide-motion-endpoint:focus-visible,
.presentation-slide-motion-delete:hover,
.presentation-slide-motion-delete:focus-visible,
.presentation-slide-motion-add:hover,
.presentation-slide-motion-add:focus-visible,
.presentation-slide-motion-facing-arrow:hover,
.presentation-slide-motion-facing-arrow:focus-visible{
  transform:translate(-50%, -50%) scale(1.08);
  outline:3px solid rgba(255,255,255,.22);
  outline-offset:2px;
}
.presentation-slide-motion-duration{
  position:absolute;
  z-index:2147483004;
  display:flex;
  align-items:center;
  gap:2px;
  transform:translate(-50%, -50%);
  border:1px solid rgba(139,224,255,.72);
  border-radius:999px;
  background:rgba(6,10,18,.88);
  color:#dff7ff;
  padding:2px 5px;
  font-size:10px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(0,0,0,.32);
}
.presentation-slide-motion-duration input{
  width:34px;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:right;
  outline:none;
}
.presentation-slide-motion-duration span{
  opacity:.8;
}
.presentation-slide-color-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 32px;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.84);
  font-size:11px;
  font-weight:800;
}
.presentation-slide-color-row input[type="color"]{
  width:32px;
  height:24px;
  padding:1px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:8px;
  background:transparent;
  cursor:pointer;
}
.presentation-slide-maker-question-tools{
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}
.presentation-slide-question-field{
  position:absolute;
  z-index:5;
  display:grid;
  align-content:start;
  gap:6px;
  padding:12px;
  border:1px dashed rgba(250,204,122,.74);
  border-radius:16px;
  background:rgba(11,18,28,.72);
  color:#f7f4ea;
  text-align:left;
  cursor:grab;
  box-shadow:0 12px 26px rgba(0,0,0,.24);
}
.presentation-slide-question-full{
  position:absolute;
  inset:54px 24px 24px;
  z-index:5;
  display:grid;
  align-content:stretch;
  justify-items:stretch;
  gap:12px;
  padding:20px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:rgba(11,18,28,.94);
  color:#f7f4ea;
  text-align:left;
  overflow:auto;
  box-shadow:0 20px 46px rgba(0,0,0,.28);
}
.presentation-slide-question-full .question-preview-shell{
  width:100%;
  max-width:100%;
  align-self:stretch;
  color:inherit;
}
.presentation-slide-question-full .question-preview-prompt{
  color:inherit;
  font-size:clamp(1rem, 2vw, 1.35rem);
}
.presentation-slide-question-field.active{
  border-color:rgba(245,158,11,.92);
  box-shadow:0 0 0 2px rgba(245,158,11,.18), 0 12px 26px rgba(0,0,0,.24);
}
.presentation-slide-question-field:active{
  cursor:grabbing;
}
.presentation-slide-question-field-type{
  color:#facc7a;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.presentation-slide-question-field-prompt{
  min-width:0;
  overflow:hidden;
  color:rgba(255,255,255,.9);
  font-size:clamp(.9rem, 1.7vw, 1.18rem);
  line-height:1.25;
}
.presentation-slide-picture-arrow-layer,
.presentation-slide-picture-target-layer{
  z-index:4;
  pointer-events:none;
}
.presentation-slide-picture-target-layer .question-picture-target-shell{
  pointer-events:auto;
}
/* Legacy guard in case an older cached slide-maker view still emits the old toolbar class. */
.presentation-slide-element-toolbar{
  position:absolute;
  top:-18px;
  right:-10px;
  z-index:6;
  display:flex;
  align-items:center;
  gap:4px;
  opacity:0;
  pointer-events:none;
  transform:translateY(4px);
  transition:opacity .12s ease, transform .12s ease;
}
.presentation-slide-element:hover .presentation-slide-element-toolbar,
.presentation-slide-element.active .presentation-slide-element-toolbar{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.presentation-slide-element-resize{
  position:absolute;
  width:14px;
  height:14px;
  border-radius:4px;
  border:1px solid rgba(255,255,255,.82);
  background:#f59e0b;
  display:none;
  align-items:center;
  justify-content:center;
  color:#07111f;
  font-size:9px;
  font-weight:900;
  line-height:1;
  z-index:8;
}
.presentation-slide-element-resize::after{
  content:"";
}
.presentation-slide-element:hover .presentation-slide-element-resize,
.presentation-slide-element.active .presentation-slide-element-resize,
.presentation-slide-element:focus-within .presentation-slide-element-resize{
  display:flex;
}
.presentation-slide-element-resize.nw{
  left:-6px;
  top:-6px;
  cursor:nwse-resize;
}
.presentation-slide-element-resize.ne{
  right:-6px;
  top:-6px;
  cursor:nesw-resize;
}
.presentation-slide-element-resize.sw{
  left:-6px;
  bottom:-6px;
  cursor:nesw-resize;
}
.presentation-slide-element-resize.se{
  right:-6px;
  bottom:-6px;
  cursor:nwse-resize;
}
.presentation-slide-maker-overlay.shift-angle-mode .presentation-slide-element-resize{
  width:18px;
  height:18px;
  border-radius:999px;
  background:#93c5fd;
  border-color:rgba(255,255,255,.95);
  box-shadow:0 0 0 3px rgba(147,197,253,.22);
  cursor:alias;
}
.presentation-slide-maker-overlay.shift-angle-mode .presentation-slide-element-resize::after{
  content:"R";
}
.presentation-slide-maker-preview.field-ui-visible .presentation-slide-element:not(.selection-locked) .presentation-slide-element-resize{
  display:flex;
}
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element:not(.field-ui-revealed):not(.transform-active) .presentation-slide-element-resize{
  display:none !important;
}
.presentation-slide-maker-preview.transform-mode .presentation-slide-element.transform-active .presentation-slide-element-resize,
.presentation-slide-maker-preview:not(.field-ui-visible) .presentation-slide-element.field-ui-revealed .presentation-slide-element-resize{
  display:flex;
}
.presentation-slide-maker-overlay.is-angling-field,
.presentation-slide-maker-overlay.is-angling-field *{
  cursor:alias !important;
}
.presentation-slide-maker-chip{
  position:absolute;
  right:18px;
  bottom:18px;
}

.student-presentation-assignment{
  display:grid;
  gap:12px;
}
.student-presentation-stage{
  display:grid;
}
.student-presentation-slide{
  position:relative;
  min-height:56vh;
  display:block;
  padding:28px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  color:#f7f4ea;
  text-align:center;
  box-shadow:0 18px 42px rgba(0,0,0,.28);
  overflow:hidden;
}
.student-presentation-slide[hidden]{
  display:none !important;
}
#studentNodeModalBody.student-presentation-modal-body{
  overflow:hidden !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#05070d !important;
}
.student-presentation-fullscreen{
  position:relative;
  width:100%;
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden;
  background:#05070d;
}
.presentation-student-preview-shell{
  align-self:stretch;
  justify-self:stretch;
  width:100%;
  height:100%;
  min-height:0;
}
.presentation-slide-maker-overlay > .presentation-student-preview-shell{
  min-height:0;
}
.student-presentation-fullscreen > .student-presentation-header{
  display:none;
}
.student-presentation-fullscreen .student-grade-warning,
.student-presentation-fullscreen > .question-small-note{
  position:relative;
  z-index:3;
  margin:8px 10px 0;
}
.student-presentation-fullscreen .student-presentation-stage{
  flex:1 1 0;
  width:100%;
  height:100%;
  min-height:0;
  position:relative;
  display:block;
  padding:0;
  overflow:hidden;
}
.student-presentation-fullscreen .student-presentation-slide{
  min-height:0;
  width:100%;
  height:auto;
  max-width:none;
  max-height:none;
  aspect-ratio:16 / 9;
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
}
@media (min-aspect-ratio:16 / 9){
  .student-presentation-fullscreen .student-presentation-slide{
    width:auto;
    height:100%;
  }
}
.student-presentation-fullscreen .student-presentation-slide-count{
  position:absolute;
  top:10px;
  right:12px;
  z-index:2147483001;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(2,6,23,.55);
  color:rgba(255,255,255,.78);
}
.student-presentation-nav-zone{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2147483002;
  height:0;
  pointer-events:none;
}
.student-presentation-fullscreen .student-presentation-nav{
  position:absolute;
  inset:0;
  z-index:2147483003;
  display:block;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  opacity:1;
  pointer-events:none;
  transform:none;
  transition:none;
}
.student-presentation-slide > .presentation-slide-jump-arrow{
  position:absolute;
  bottom:22px;
  z-index:2147483012;
  width:110px;
  height:110px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0;
  background:transparent;
  color:#f8fafc;
  font-size:92px;
  font-weight:1000;
  line-height:1;
  text-shadow:
    0 4px 12px rgba(0,0,0,.38),
    0 0 3px rgba(0,0,0,.42);
  -webkit-text-stroke:2px rgba(0,0,0,.42);
  pointer-events:auto;
}
.student-presentation-slide > .presentation-slide-jump-arrow.previous{
  left:22px;
}
.student-presentation-slide > .presentation-slide-jump-arrow.next{
  right:22px;
}
.student-presentation-slide > .presentation-slide-jump-arrow:disabled{
  opacity:.34;
  cursor:not-allowed;
}
.student-presentation-fullscreen .student-presentation-nav .student-presentation-counter{
  position:absolute;
  left:18px;
  top:12px;
  z-index:2147483004;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(2,6,23,.55);
  pointer-events:none;
}

.teacher-live-start-btn{
  margin-left:auto;
  border-color:rgba(74,222,128,.5);
  background:rgba(34,197,94,.16);
  color:#d9ffe7;
}

.teacher-live-overlay{
  position:fixed;
  inset:0;
  z-index:2147483200;
  display:flex;
  align-items:stretch;
  justify-content:center;
  padding:0;
  background:rgba(3,7,18,.94);
  backdrop-filter:blur(10px);
}

.teacher-live-card{
  position:relative;
  width:100%;
  min-height:100%;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  gap:14px;
  border:0;
  border-radius:0;
  background:linear-gradient(145deg, rgba(15,23,42,.96), rgba(8,13,26,.98));
  box-shadow:0 24px 80px rgba(0,0,0,.45);
  padding:18px 18px 72px;
  overflow:hidden;
}

.teacher-live-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid rgba(148,163,184,.18);
  padding-bottom:12px;
}

.teacher-live-kicker{
  color:#4ade80;
  font:800 13px var(--font-minor, inherit);
  letter-spacing:.12em;
  text-transform:uppercase;
}

.teacher-live-title{
  color:var(--font-color-header, #fff);
  font:800 28px var(--font-header, inherit);
}

.teacher-live-sub{
  color:var(--font-color-minor-2, rgba(226,232,240,.72));
  font:600 14px var(--font-minor, inherit);
}

.teacher-live-actions,
.teacher-live-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.teacher-live-body{
  min-height:0;
  display:grid;
  gap:12px;
}

.teacher-live-stage{
  min-height:0;
  display:grid;
  place-items:center;
  border-radius:18px;
  border:1px solid rgba(148,163,184,.18);
  background:rgba(2,6,23,.55);
  overflow:hidden;
}

.teacher-live-slide-preview{
  width:min(100%, 1280px);
  aspect-ratio:16/9;
  min-height:0;
  box-shadow:0 24px 60px rgba(0,0,0,.36);
}

.teacher-live-counter{
  min-width:84px;
  text-align:center;
  color:#e2e8f0;
  font-weight:800;
}

.teacher-live-completion{
  position:absolute;
  right:22px;
  bottom:18px;
  border:1px solid rgba(74,222,128,.45);
  border-radius:999px;
  background:rgba(15,23,42,.9);
  color:#dcfce7;
  padding:10px 14px;
  font-weight:900;
  box-shadow:0 12px 30px rgba(0,0,0,.32);
}

.teacher-live-insight{
  position:absolute;
  left:22px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:260px;
  max-width:380px;
  border:1px solid rgba(148,163,184,.26);
  border-radius:18px;
  background:rgba(15,23,42,.86);
  color:#e5eefb;
  padding:10px 12px;
  box-shadow:0 12px 30px rgba(0,0,0,.32);
}

.teacher-live-insight-empty{
  color:rgba(226,232,240,.72);
  font-weight:700;
}

.teacher-live-pie{
  width:58px;
  height:58px;
  flex:0 0 auto;
  border-radius:50%;
  background:conic-gradient(#22c55e calc(var(--correct, 0) * 1%), #ef4444 0);
  border:3px solid rgba(255,255,255,.18);
  box-shadow:inset 0 0 0 8px rgba(2,6,23,.82);
}

.teacher-live-insight-copy{
  display:grid;
  gap:2px;
}

.teacher-live-insight-title{
  color:var(--font-color-header, #fff);
  font-weight:900;
}

.teacher-live-insight-row{
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:800;
  color:rgba(226,232,240,.88);
}

.teacher-live-insight-row span{
  width:9px;
  height:9px;
  border-radius:50%;
}

.teacher-live-insight-row .ok{
  background:#22c55e;
}

.teacher-live-insight-row .bad{
  background:#ef4444;
}

.teacher-live-insight-small{
  color:rgba(226,232,240,.62);
  font-size:12px;
  font-weight:800;
}

.teacher-live-navigator-toggle{
  position:absolute;
  left:0;
  top:50%;
  z-index:3;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:left top;
  border:1px solid rgba(96,165,250,.38);
  border-radius:12px 12px 0 0;
  background:rgba(15,23,42,.9);
  color:#dbeafe;
  padding:8px 14px;
  font-weight:900;
  cursor:pointer;
}

.teacher-live-navigator{
  position:absolute;
  inset:0 auto 0 0;
  z-index:2;
  width:min(320px, 86vw);
  padding:82px 14px 18px;
  border-right:1px solid rgba(148,163,184,.24);
  background:rgba(8,13,26,.96);
  box-shadow:18px 0 42px rgba(0,0,0,.32);
  transform:translateX(-105%);
  transition:transform .22s ease;
  overflow:auto;
}

.teacher-live-overlay[data-navigator-open="true"] .teacher-live-navigator{
  transform:translateX(0);
}

.teacher-live-nav-title{
  color:var(--font-color-header, #fff);
  font:900 24px var(--font-header, inherit);
  margin-bottom:12px;
}

.teacher-live-nav-note{
  color:rgba(226,232,240,.7);
  font-weight:700;
}

.teacher-live-nav-slide{
  width:100%;
  display:grid;
  grid-template-columns:34px minmax(0, 1fr);
  align-items:center;
  gap:10px;
  margin:0 0 8px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:14px;
  background:rgba(15,23,42,.72);
  color:#dbeafe;
  padding:10px;
  text-align:left;
  cursor:pointer;
}

.teacher-live-nav-slide:hover,
.teacher-live-nav-slide.active{
  border-color:rgba(74,222,128,.48);
  background:rgba(34,197,94,.14);
}

.teacher-live-nav-slide span{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(96,165,250,.18);
  color:#bfdbfe;
  font-weight:900;
}

.teacher-live-nav-slide strong{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.teacher-live-video-card{
  align-self:center;
  justify-self:center;
  display:flex;
  align-items:center;
  gap:18px;
  max-width:760px;
  border:1px solid rgba(96,165,250,.35);
  border-radius:22px;
  background:rgba(15,23,42,.82);
  padding:28px;
}

.teacher-live-video-icon{
  display:grid;
  place-items:center;
  width:80px;
  height:80px;
  border-radius:50%;
  background:linear-gradient(135deg, #38bdf8, #4ade80);
  color:#06111f;
  font-size:38px;
  font-weight:900;
}

.student-live-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  border:1px solid rgba(74,222,128,.38);
  border-radius:14px;
  background:rgba(22,163,74,.12);
  color:#dcfce7;
  padding:10px 12px;
}
.student-presentation-slide-count,
.student-presentation-counter{
  color:rgba(255,255,255,.72);
  font-size:.86rem;
  font-weight:800;
}
.student-presentation-slide.question-only .student-presentation-slide-count{
  display:none;
}
.student-presentation-slide-title{
  font-size:clamp(1.7rem, 4vw, 3.2rem);
  line-height:1.05;
  font-weight:900;
}
.student-presentation-slide img{
  max-width:min(760px, 100%);
  max-height:36vh;
  object-fit:contain;
  border-radius:18px;
}
.student-presentation-slide-elements{
  position:absolute;
  inset:0;
  z-index:3;
}
.student-presentation-slide.question-only .student-presentation-slide-elements{
  display:none;
}
.student-presentation-rendered-element{
  position:absolute;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  border-radius:10px;
  overflow:hidden;
  white-space:pre-wrap;
  text-align:left;
}
.student-presentation-rendered-element.fade-in-layer{
  opacity:0;
  animation:presentation-layer-fade-in .34s ease both;
  animation-delay:var(--presentation-fade-delay, 0s);
}
.student-presentation-rendered-element.fade-step-layer{
  transition:opacity .34s ease, visibility .34s ease;
}
.student-presentation-slide[data-presentation-skip-step-animations="true"] .student-presentation-rendered-element.fade-step-layer{
  transition:none;
}
.student-presentation-rendered-element.fade-step-fade-in.fade-step-hidden,
.student-presentation-rendered-element.fade-step-draw.fade-step-hidden,
.student-presentation-rendered-element.fade-step-fade-out.fade-step-faded-out{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.student-presentation-rendered-element.fade-step-visible{
  opacity:1;
  visibility:visible;
}
@keyframes presentation-layer-fade-in{
  from{opacity:0;}
  to{opacity:1;}
}
.student-presentation-rendered-element.student-presentation-rendered-sketch{
  padding:0;
  overflow:visible;
  background:transparent;
}
.student-presentation-rendered-element.student-presentation-rendered-sketch .presentation-slide-sketch-field-art{
  width:100%;
  height:100%;
  overflow:visible;
}
.student-presentation-rendered-element:not(.interactable):not(.reveal-field):not(.drag-field):not(.drop-field):not(.field-match){
  pointer-events:none;
}
.student-presentation-rendered-element.interactable{
  cursor:pointer;
  outline:none;
  outline-offset:0;
  transition:filter .15s ease, transform .15s ease;
}
.student-presentation-rendered-element.interactable:hover,
.student-presentation-rendered-element.interactable:focus-visible{
  outline:none;
  box-shadow:none;
  filter:brightness(1.04);
}
.student-presentation-rendered-element.interactable.selected{
  outline:none;
  box-shadow:none;
}
.student-presentation-rendered-element.interactable.selected::after{
  content:none;
}
.student-presentation-rendered-element.interactable.disabled{
  cursor:default;
  opacity:.78;
}
.student-presentation-rendered-element.reveal-field{
  opacity:0;
  pointer-events:none;
  transform:scale(.98);
  transition:opacity .22s ease, transform .22s ease;
}
.student-presentation-rendered-element.reveal-field.revealed{
  opacity:1;
  transform:scale(1);
}
.student-presentation-rendered-element.drag-field{
  cursor:grab;
  touch-action:none;
  transition:transform .12s ease;
}
.student-presentation-rendered-element.drag-field.placed{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  opacity:1;
  outline:0;
  overflow:hidden;
}
.student-presentation-rendered-element.drag-field.placed.shrink-placed{
  font-size:11px !important;
  line-height:1.05;
}
.student-presentation-rendered-element.drag-field.placed.full-size-placed{
  line-height:normal;
}
.student-presentation-rendered-element.drag-field.placed img{
  border-radius:0;
}
.student-presentation-rendered-element.drag-field:hover,
.student-presentation-rendered-element.drag-field:focus-visible{
  box-shadow:none;
}
.student-presentation-rendered-element.drag-field.placed:hover,
.student-presentation-rendered-element.drag-field.placed:focus-visible{
  opacity:1;
  box-shadow:none;
}
.student-presentation-rendered-element.drag-field.dragging{
  cursor:grabbing;
  opacity:.9;
  pointer-events:none;
}
.student-presentation-rendered-element.drag-field.disabled{
  cursor:default;
  opacity:.78;
}
.student-presentation-rendered-element.drop-field{
  outline:0;
  touch-action:none;
  user-select:none;
}
.student-presentation-reveal-target{
  position:absolute;
  display:grid;
  place-items:center;
  min-width:18px;
  min-height:18px;
  padding:0;
  border:0;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
  opacity:0;
  cursor:zoom-in;
  transition:transform .16s ease, background .16s ease, box-shadow .16s ease, border-color .16s ease;
  z-index:2147483000;
}
.student-presentation-reveal-target:hover,
.student-presentation-reveal-target:focus-visible{
  opacity:0;
  transform:none;
  background:transparent;
  box-shadow:none;
  cursor:zoom-in;
}
.student-presentation-reveal-target.found{
  opacity:.35;
  pointer-events:none;
  cursor:default;
}
.student-presentation-drag-target{
  position:absolute;
  opacity:0;
  background:transparent;
  border:0;
  pointer-events:none;
  z-index:2147483000;
  touch-action:none;
}
.student-presentation-drag-popover{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:12px;
  background:rgba(5,8,15,.94);
  color:#f8fafc;
  overflow:hidden;
  pointer-events:none;
  box-shadow:0 16px 38px rgba(0,0,0,.42), 0 0 0 4px rgba(76,217,100,.10);
}
.student-presentation-drag-popover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:8px;
}
.student-presentation-rendered-element.field-match{
  cursor:grab;
  touch-action:none;
  outline:2px solid rgba(86,190,255,.28);
  outline-offset:3px;
  transition:outline-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.student-presentation-rendered-element.field-match:hover,
.student-presentation-rendered-element.field-match:focus-visible{
  outline-color:rgba(86,190,255,.74);
  box-shadow:0 0 0 5px rgba(86,190,255,.12);
}
.student-presentation-rendered-element.field-match.selected{
  outline-color:rgba(86,190,255,.95);
  box-shadow:0 0 0 6px rgba(86,190,255,.18), 0 12px 24px rgba(0,0,0,.24);
}
.student-presentation-rendered-element.field-match.dragging{
  cursor:grabbing;
  outline-color:rgba(86,190,255,.95);
  box-shadow:0 0 0 6px rgba(86,190,255,.2), 0 16px 28px rgba(0,0,0,.28);
}
.student-presentation-rendered-element.field-match.connected{
  outline-color:rgba(76,217,100,.78);
}
.student-presentation-rendered-element.field-match.disabled{
  cursor:default;
  opacity:.78;
}
.student-presentation-match-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  pointer-events:none;
  overflow:visible;
}
.student-presentation-match-line{
  fill:none;
  stroke:rgba(86,190,255,.92);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.student-presentation-match-line.active{
  stroke-dasharray:10 8;
  opacity:.82;
}
.student-presentation-rendered-image{
  padding:0;
}
.student-presentation-rendered-image img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:fill;
  border-radius:0;
}
.student-presentation-rendered-group{
  padding:0;
  overflow:visible;
}
.student-presentation-slide-body{
  max-width:76ch;
  font-size:clamp(1rem, 2vw, 1.35rem);
  line-height:1.45;
  white-space:pre-wrap;
}
.student-presentation-question{
  width:min(860px, 100%);
  display:grid;
  gap:10px;
  padding:14px;
  border-radius:18px;
  background:rgba(8,12,18,.72);
  text-align:left;
}
.student-presentation-question.positioned{
  position:absolute;
  z-index:6;
  width:auto;
  max-width:none;
  overflow:auto;
}
.student-presentation-question.full-slide{
  position:absolute;
  z-index:20;
  inset:24px;
  width:auto;
  max-width:none;
  overflow:auto;
  align-content:start;
  background:rgba(11,18,28,.9);
  box-shadow:0 18px 44px rgba(0,0,0,.34);
}
.student-presentation-question.picture-label{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:7;
  width:auto;
  max-width:min(640px, calc(100% - 32px));
  padding:10px 12px;
  background:rgba(11,18,28,.56);
}
.student-presentation-picture-arrow-layer,
.student-presentation-picture-target-layer{
  z-index:5;
  pointer-events:none;
}
.student-presentation-picture-target-layer .question-picture-preview-pill,
.student-presentation-picture-target-layer .question-picture-preview-drop{
  pointer-events:auto;
}
.student-presentation-picture-bank{
  margin-top:6px;
}
.student-presentation-nav{
  justify-content:center;
}
.assignment-video-box{
  display:grid;
  gap:10px;
  padding:10px;
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.18);
  background:rgba(255,255,255,.018);
}
.assignment-video-source-card{
  display:grid;
  gap:10px;
}
.assignment-video-rewind-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.assignment-video-rewind-row input{
  width:96px;
}
.assignment-video-node-list{
  display:grid;
  gap:10px;
}
.assignment-video-node-list-title{
  font-weight:800;
  color:var(--panel-header-text);
}
.assignment-video-node{
  display:grid;
  gap:8px;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.02);
}
.assignment-video-node.is-focused{
  border-color:rgba(106,169,255,.35);
  box-shadow:0 0 0 1px rgba(106,169,255,.16) inset;
}
.assignment-video-node-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.assignment-video-node-time{
  font-weight:800;
  color:var(--panel-header-text);
}
.assignment-video-node-meta{
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
}
.assignment-video-node-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  flex-wrap:wrap;
}
.assignment-video-node-drop{
  min-height:58px;
  display:grid;
  place-items:center;
  padding:12px;
  text-align:center;
  color:var(--muted);
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.16);
  background:rgba(255,255,255,.02);
  transition:border-color .12s ease, background .12s ease, color .12s ease;
}
.assignment-video-node-drop.active{
  border-color:rgba(106,169,255,.7);
  background:rgba(106,169,255,.08);
  color:var(--text);
}
.assignment-video-node-question{
  cursor:pointer;
}
.question-tag-modal.in-assignment-editor{
  position:absolute;
  inset:0;
  z-index:140;
  padding:10px 12px 12px;
  background:linear-gradient(180deg, rgba(12,12,14,.98), rgba(18,18,22,.97));
}
.question-tag-modal.in-assignment-editor .question-tag-modal-card.question-video-viewer-card{
  width:100%;
  max-width:none;
  max-height:none;
  height:100%;
  border-radius:inherit;
}
.question-video-viewer-extra{
  display:grid;
  gap:10px;
}

.question-editor-modal{
  position:fixed;
  inset:0;
  z-index:1660;
  background:rgba(0,0,0,.62);
  display:flex;
  align-items:center;
  justify-content:center;
}
.question-editor-card{
  width:min(1100px,95vw);
  max-height:min(90vh,960px);
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius:18px;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
}
.question-editor-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.question-editor-title{
  font-size:20px;
  font-weight:800;
  color:var(--panel-header-text);
}
.question-editor-subtitle{
  font-size:12px;
  color:var(--muted);
}
.question-editor-body{
  overflow:auto;
  min-height:0;
}
.assignment-question-overlay{
  position:absolute;
  inset:0;
  z-index:120;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  padding:14px 16px 16px;
  border-radius:inherit;
  border:0;
  background:linear-gradient(180deg, #0c0c0e, #121216);
  box-shadow:none;
}
.presentation-slide-maker-overlay > .assignment-question-overlay{
  position:fixed;
  inset:0;
  z-index:2147483647;
  border-radius:0;
  background:#0c0c0e;
}
.assignment-question-overlay-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.assignment-question-overlay-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}
.assignment-question-overlay-title{
  font-size:18px;
  font-weight:800;
  color:var(--panel-header-text);
}
.assignment-question-overlay-subtitle{
  font-size:12px;
  color:var(--muted);
}
.assignment-question-overlay-body{
  min-height:0;
  overflow:auto;
}
.question-filing-inputs{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;
  gap:8px;
  align-items:end;
}
.question-filing-list{
  display:grid;
  gap:6px;
}
.question-filing-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.02);
}
.question-filing-row-compact .btn{
  padding:5px 8px !important;
}
.question-filing-head{
  font-size:11px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.question-filing-cell{
  min-width:0;
  font-size:13px;
  font-weight:700;
}
.question-filing-path{
  min-width:0;
  font-size:12px;
  font-weight:700;
  color:var(--text);
}
.question-filing-usage{
  min-width:28px;
  text-align:center;
  padding:3px 6px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  color:var(--muted);
  font-size:11px;
}
.question-bank-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.question-type-grid{display:grid; gap:10px}
.question-card-lite{
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  background: rgba(255,255,255,.015);
  padding:8px 10px;
  display:grid;
  gap:8px;
}
.student-worksheet-question-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.student-question-submitted-badge{
  justify-self:end;
  border:1px solid rgba(255,90,90,.42);
  border-radius:999px;
  background:rgba(255,70,70,.12);
  color:#ffb4b4;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  line-height:1;
  padding:5px 8px;
  text-transform:uppercase;
  white-space:nowrap;
}
.question-inline-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.question-inline-row > *{min-width:0}
.question-tag-list,.question-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.question-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  border-radius:999px;
  background: rgba(106,169,255,.12);
  border:1px solid rgba(106,169,255,.3);
  font-size:12px;
}
.question-tag button,.mini-x{
  border:0;
  background:transparent;
  color:var(--text);
  cursor:pointer;
  padding:0;
  line-height:1;
}
.question-bank-entry{display:grid; gap:4px}
.question-bank-entry-title{font-weight:800}
.question-bank-entry-meta{
  font-size:12px;
  color:var(--muted);
}
.question-bank-entry-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.question-tag-count-btn{
  flex:0 0 auto;
  min-width:24px;
  padding:1px 7px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:var(--minor1);
  font-size:11px;
  line-height:1.3;
}
.question-tag-count-btn:hover{
  border-color: rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
}
.question-tag-dropbox-card{
  gap:8px;
}
.question-tag-dropbox-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.question-tag-dropbox{
  min-height:54px;
  border:1px dashed rgba(255,255,255,.14);
  border-radius:12px;
  padding:8px;
  background:rgba(255,255,255,.02);
  transition:border-color .12s ease, background .12s ease;
}
.question-tag-dropbox.active{
  border-color: rgba(106,169,255,.8);
  background: rgba(106,169,255,.08);
}
.question-tag-dropbox-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.question-tag-dropbox-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:999px;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-size:11px;
  position:relative;
}
.question-tag-dropbox-chip-remove{
  border:none;
  background:transparent;
  color:var(--danger);
  padding:0;
  font-size:10px;
  line-height:1;
}
.question-tag-dropbox-detail{
  display:none;
  position:absolute;
  left:0;
  top:calc(100% + 6px);
  z-index:30;
  min-width:280px;
  max-width:420px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:#111;
  box-shadow:0 10px 22px rgba(0,0,0,.35);
  pointer-events:none;
}
.question-tag-dropbox-chip:hover .question-tag-dropbox-detail{
  display:grid;
  gap:4px;
}
.question-tag-dropbox-detail-line{
  font-size:12px;
  line-height:1.35;
  white-space:pre-wrap;
}
.question-tag-dropbox-detail-name{
  font-weight:800;
}
.question-tag-dropbox-detail-separator{
  opacity:.8;
}
.question-tag-dropbox-detail-line.is-strand{
  color:var(--panel-header-text);
}
.question-tag-dropbox-detail-line.is-topic{
  color:var(--minor3);
}
.question-tag-dropbox-detail-line.is-subtopic{
  color:var(--minor1);
}
.question-tag-modal{
  position:fixed;
  inset:0;
  z-index:1600;
  background:rgba(0,0,0,.55);
  align-items:center;
  justify-content:center;
}
.question-tag-modal-card{
  width:min(620px,92vw);
  max-height:min(78vh,760px);
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px;
  border-radius:16px;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
}
.question-tag-modal-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.question-tag-modal-title{
  font-weight:800;
  color:var(--panel-header-text);
}
.question-tag-modal-body{
  display:grid;
  gap:8px;
  overflow:auto;
}
.question-tag-modal-item{
  text-align:left;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  color:var(--text);
}
.question-tag-modal-item-main{
  display:grid;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
  cursor:grab;
  user-select:none;
}
.question-tag-modal-item-main:active{
  cursor:grabbing;
}
.question-tag-modal-item-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px;
}
.question-tag-modal-item .question-tag-modal-item-actions{
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.question-tag-modal-item:hover .question-tag-modal-item-actions{
  opacity:1;
  pointer-events:auto;
}
.question-tag-modal-item:hover .question-bank-explorer-inline-edit,
.question-tag-modal-item:hover .question-bank-explorer-inline-delete{
  opacity:1;
  pointer-events:auto;
}
.question-bank-explorer-question-item .question-tag-modal-item-actions{
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.question-bank-explorer-question-item:hover .question-tag-modal-item-actions{
  opacity:1;
  pointer-events:auto;
}
.question-bank-explorer-question-item:hover .question-bank-explorer-inline-edit,
.question-bank-explorer-question-item:hover .question-bank-explorer-inline-delete{
  opacity:1;
  pointer-events:auto;
}
.question-tag-modal-edit-btn{
  padding:5px 8px !important;
  font-size:11px;
}
.question-tag-modal-preview-btn{
  padding:5px 8px !important;
  font-size:11px;
}
.question-tag-modal-delete-btn{
  padding:5px 8px !important;
  font-size:11px;
  color:var(--danger);
}
.question-tag-modal-item:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.15);
}
.question-tag-modal-item-title{
  font-weight:700;
}
.question-bank-tag-overlay .question-tag-modal-item-title{
  color:var(--minor2);
}
.question-tag-modal-item-meta{
  font-size:12px;
  color:var(--muted);
}
.question-bank-panel-overlay{
  position:absolute;
  inset:0;
  z-index:25;
  display:flex;
  align-items:stretch;
  justify-content:stretch;
  background:rgba(0,0,0,.18);
}
.question-bank-panel-overlay-card{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:8px 10px 10px;
  background:transparent;
  border-radius:0;
  border:none;
}
.question-bank-tag-overlay{
  background:rgba(0,0,0,.42);
}
.question-bank-tag-overlay-card{
  background:#111;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
}
.question-bank-tag-overlay-body{
  gap:8px;
}
.question-bank-panel-overlay-body{
  display:grid;
  gap:6px;
  overflow:auto;
  min-height:0;
}
.question-bank-explorer-header{
  display:flex;
  order:2;
  align-items:center;
  gap:8px;
  padding:8px 2px 0;
  margin-top:auto;
  background:transparent;
  border:none;
}
.question-bank-explorer-header .question-tag-modal-title{
  display:none;
}
.question-bank-explorer-back{
  padding:4px 8px !important;
  font-size:11px;
  margin-right:auto;
}
.question-bank-explorer-body{
  order:1;
  align-content:start;
}
.question-bank-explorer-row{
  width:100%;
  text-align:left;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px 10px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.018);
  color:var(--text);
  cursor:pointer;
  position:relative;
}
.question-bank-explorer-row:hover{
  background:rgba(255,255,255,.024);
  border-color:rgba(255,255,255,.1);
}
.question-bank-explorer-row-main{
  display:grid;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
}
.question-bank-explorer-row-kind{
  display:none !important;
}
.question-bank-explorer-row-title{
  font-size:18px;
  font-weight:900;
  color:var(--panel-header-text);
  line-height:1.1;
  text-align:left;
}
.question-bank-explorer-row-description{
  display:none;
  font-size:11px;
  line-height:1.3;
  color:inherit;
  white-space:pre-wrap;
}
.question-strand-block .question-bank-explorer-row-description{
  color:var(--panel-header-text);
}
.question-bank-explorer-row-topic .question-bank-explorer-row-title,
.question-bank-explorer-row-topic .question-bank-explorer-row-description{
  color:var(--minor3);
}
.question-bank-explorer-row-topic.is-focused .question-bank-explorer-chevron{
  transform:rotate(90deg);
  color:var(--minor3);
}
.question-bank-explorer-row-subtopic .question-bank-explorer-row-title{
  font-size:13px;
  color:var(--minor1);
}
.question-bank-explorer-row-subtopic .question-bank-explorer-row-description{
  color:var(--minor1);
}
.question-bank-explorer-row-meta{
  font-size:12px;
  color:var(--muted);
}
.question-bank-explorer-row-meta.is-action{
  margin-right:2px;
  font-size:12px;
  line-height:1.1;
  white-space:nowrap;
}
.question-bank-explorer-row-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
}
.question-bank-explorer-drag-icon{
  color:var(--panel-header-text);
  cursor:grab;
}
.question-bank-explorer-row-tail{
  display:flex;
  align-items:center;
  gap:8px;
}
.question-bank-explorer-question-list{
  display:grid;
  gap:8px;
  margin:0 0 4px 18px;
  padding:0;
  border-left:none;
}
.question-bank-search-results{
  margin-left:0;
}
.question-bank-search-path{
  font-size:10px;
  line-height:1.15;
  color:var(--muted);
}
.question-bank-search-empty{
  padding:8px 4px;
}
.question-bank-explorer-question-item .question-tag-modal-item-title{
  color:var(--minor2);
}
.question-bank-explorer-question-item{
  background:rgba(255,255,255,.02);
  border-color:rgba(255,255,255,.06);
}
#questionBankList .question-strand-wrap{
  gap:3px;
  padding:8px;
}
#questionBankList .question-strand-block{
  padding:4px 7px;
  border-radius:9px;
  transition:padding .14s ease, background .14s ease, border-color .14s ease;
}
#questionBankList .question-strand-block:hover,
#questionBankList .question-strand-block.is-focused{
  padding:6px 8px;
}
#questionBankList .question-strand-header{
  gap:6px;
  min-height:28px;
}
#questionBankList .question-strand-title{
  font-size:15px;
}
#questionBankList .question-bank-explorer-row{
  padding:4px 7px;
  gap:6px;
  border-radius:9px;
  min-height:28px;
  transition:padding .14s ease, background .14s ease, border-color .14s ease, margin-left .14s ease, width .14s ease;
}
#questionBankList .question-bank-explorer-row:hover,
#questionBankList .question-bank-explorer-row.is-focused{
  padding:6px 8px;
}
#questionBankList .question-bank-explorer-row-topic{
  margin-left:16px;
  width:calc(100% - 16px);
}
#questionBankList .question-bank-explorer-row-subtopic{
  margin-left:32px;
  width:calc(100% - 32px);
}
#questionBankList .question-bank-explorer-row-topic:hover,
#questionBankList .question-bank-explorer-row-topic.is-focused,
#questionBankList .question-bank-explorer-row-subtopic:hover,
#questionBankList .question-bank-explorer-row-subtopic.is-focused{
  margin-left:0;
  width:100%;
}
#questionBankList .question-bank-explorer-row-title{
  font-size:14px;
}
#questionBankList .question-bank-explorer-row-topic .question-bank-explorer-row-title{
  font-size:13px;
}
#questionBankList .question-bank-explorer-row-subtopic .question-bank-explorer-row-title{
  font-size:12px;
}
#questionBankList .question-strand-drag-icon,
#questionBankList .question-bank-explorer-drag-icon{
  opacity:.42;
  width:12px;
  overflow:hidden;
  transition:opacity .14s ease, width .14s ease;
}
#questionBankList .question-strand-block:hover .question-strand-drag-icon,
#questionBankList .question-bank-explorer-row:hover .question-bank-explorer-drag-icon,
#questionBankList .question-strand-drag-icon:active,
#questionBankList .question-bank-explorer-drag-icon:active{
  opacity:1;
  width:12px;
}
#questionBankList.is-reordering-tags .question-strand-block:hover{
  padding:4px 7px;
}
#questionBankList.is-reordering-tags .question-bank-explorer-row:hover{
  padding:4px 7px;
}
#questionBankList.is-reordering-tags .question-bank-explorer-row-topic:hover{
  margin-left:16px;
  width:calc(100% - 16px);
}
#questionBankList.is-reordering-tags .question-bank-explorer-row-subtopic:hover{
  margin-left:32px;
  width:calc(100% - 32px);
}
#questionBankList .question-bank-reorder-target.drag-target{
  background:rgba(229,188,118,.09);
  border-color:rgba(229,188,118,.62);
  box-shadow:inset 0 0 0 1px rgba(229,188,118,.18);
}
#questionBankList .question-bank-reorder-target.drag-before::before,
#questionBankList .question-bank-reorder-target.drag-after::after{
  content:"";
  position:absolute;
  left:6px;
  right:6px;
  height:5px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(229,188,118,0), rgba(229,188,118,.98) 12%, rgba(147,190,236,.98) 88%, rgba(147,190,236,0));
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 0 14px rgba(147,190,236,.55);
  pointer-events:none;
  z-index:5;
}
#questionBankList .question-bank-reorder-target.drag-before::before{
  top:-5px;
}
#questionBankList .question-bank-reorder-target.drag-after::after{
  bottom:-5px;
}
#questionBankList .question-bank-explorer-row-actions,
#questionBankList .question-bank-explorer-row-tail{
  gap:5px;
}
#questionBankList .question-bank-explorer-question-list{
  gap:5px;
  margin:2px 0 4px 20px;
}
.assignment-node-picker-list{
  align-content:start;
}
.assignment-node-picker-assignment{
  cursor:pointer;
}
.assignment-node-picker-assignment .question-tag-modal-item-main{
  cursor:pointer;
}
.assignment-node-picker-assignment .question-tag-modal-item-title{
  color:var(--minor2);
}
.assignment-node-picker-assignment.is-selected{
  background:rgba(106,169,255,.12);
  border-color:rgba(106,169,255,.38);
  box-shadow:inset 0 0 0 1px rgba(106,169,255,.2);
}
.question-topic-add-btn,
.question-subtopic-add-btn{
  background: var(--nav-bg2);
  border-color: transparent;
  color: var(--text);
  padding:6px 10px !important;
  font-size:11px;
  line-height:1.1;
  width:100%;
  justify-content:center;
}
.question-topic-add-btn:hover,
.question-subtopic-add-btn:hover{
  border-color: rgba(255,255,255,.18);
}
.question-topic-add-row,
.question-subtopic-add-row{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  align-items:center;
}
.question-topic-add-row .btn,
.question-subtopic-add-row .btn{
  width:auto;
}
.question-topic-input,
.question-subtopic-input{
  flex:1 1 auto;
  min-width:0;
}
.question-bank-explorer-row-tools{
  display:flex;
  align-items:center;
  gap:6px;
}
.question-bank-explorer-inline-btn{
  min-width:0;
  padding:4px 8px !important;
  border-radius:8px;
  background:transparent;
  border-color:rgba(255,255,255,.12);
  color:var(--muted);
  font-size:10px;
  line-height:1.1;
}
.question-bank-explorer-inline-btn.is-active{
  border-color:rgba(255,255,255,.2);
  color:var(--text);
}
.question-bank-inline-rename-input{
  flex:1 1 auto;
  min-width:0;
  padding:4px 8px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.18);
  color:var(--text);
  font-size:inherit;
  line-height:1.1;
}
.question-bank-inline-description-input{
  width:100%;
  min-height:52px;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.18);
  color:var(--text);
  font-size:11px;
  line-height:1.3;
  resize:vertical;
}
.question-bank-explorer-inline-btn.is-danger{
  color:var(--danger);
}
.question-bank-explorer-inline-edit{
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.question-bank-explorer-inline-delete{
  opacity:0;
  pointer-events:none;
  transition:opacity .14s ease;
}
.question-bank-explorer-row:hover .question-bank-explorer-inline-edit,
.question-strand-header:hover .question-bank-explorer-inline-edit,
.question-bank-explorer-row:hover .question-bank-explorer-inline-delete,
.question-strand-header:hover .question-bank-explorer-inline-delete{
  opacity:1;
  pointer-events:auto;
}
.question-bank-explorer-row:hover .question-bank-explorer-row-description,
.question-strand-header:hover .question-bank-explorer-row-description{
  display:block;
}
.question-strand-block.is-focused .question-bank-explorer-row-description,
.question-bank-explorer-row.is-focused .question-bank-explorer-row-description{
  display:block;
}
.question-strand-block.is-focused,
.question-bank-explorer-row.is-focused{
  background:rgba(255,255,255,.024);
  border-color:rgba(255,255,255,.1);
}
.question-bank-explorer-chevron{
  color:var(--muted);
  font-size:14px;
  line-height:1;
}
.question-overlay-drag-ghost{
  position:fixed;
  z-index:2147483647;
  pointer-events:none;
  max-width:260px;
  min-width:180px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(245,158,11,.55);
  background:rgba(15,18,28,.97);
  color:var(--text);
  box-shadow:0 16px 42px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.05) inset;
  transform:translate3d(0,0,0);
}
.question-overlay-drag-ghost-title{
  font-weight:800;
  line-height:1.2;
}
.question-overlay-drag-ghost-meta{
  margin-top:3px;
  font-size:11px;
  color:var(--muted);
}
.question-pill{
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  font-size:12px;
  color:var(--muted);
}
.question-option-row,
.question-answer-row,
.question-pair-row,
.question-label-row,
.question-group-row,
.question-item-row{
  display:grid;
  gap:8px;
  padding:8px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.015);
}
.question-option-row{grid-template-columns:auto minmax(0,1fr) auto}
.question-answer-row{grid-template-columns:110px minmax(0,1fr) auto}
.question-answer-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
}
.question-answer-column{
  display:grid;
  align-content:start;
  gap:8px;
  padding:8px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.018);
}
.question-answer-column-header{
  font-size:12px;
  font-weight:800;
  color:var(--panel-header-text);
}
.question-answer-column-prompt{
  padding:6px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.05);
  color:var(--text);
  font-size:12px;
  line-height:1.3;
}
.question-answer-cell{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
}
.question-answer-cell .btn{
  min-width:0;
  padding:6px 7px;
}
.question-label-row{grid-template-columns:minmax(0,1fr) 88px 88px auto auto}
.question-pair-row{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  gap:6px;
  padding:5px 6px;
}
.question-match-side{
  padding:1px 2px;
  gap:4px;
  border:none;
  background:transparent;
  box-shadow:none;
}
.question-match-side .field{
  gap:2px;
}
.question-match-side .field label{
  font-size:10px;
}
.question-match-side .field input,
.question-match-side .field select{
  padding:5px 7px;
  border-radius:8px;
}
.question-match-source-row{
  gap:5px;
  flex-wrap:nowrap;
}
.question-match-value-input{
  flex:1 1 auto;
  min-width:0;
}
.question-ghost-input{
  opacity:.5;
  background:rgba(255,255,255,.04) !important;
  color:var(--muted) !important;
  border-style:dashed !important;
  cursor:default !important;
}
.question-ghost-input::placeholder{
  color:var(--muted);
}
.question-match-source-row .btn{
  padding:5px 7px;
  white-space:nowrap;
}
.question-mini-audio-player{
  flex:1 1 auto;
  width:100%;
  height:24px;
  min-width:0;
  display:block;
  color-scheme:dark;
  background:transparent;
  border-radius:999px;
}
.question-mini-audio-player::-webkit-media-controls-enclosure{
  background:rgba(255,255,255,.06);
  border-radius:999px;
}
.question-mini-audio-player::-webkit-media-controls-panel{
  background:transparent;
}
.question-mini-video-player{
  flex:1 1 auto;
  width:100%;
  max-width:180px;
  height:56px;
  border-radius:8px;
  background:rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.08);
}
.question-video-viewer-card{
  width:min(820px, 94vw);
}
.question-video-viewer-body{
  display:grid;
  gap:12px;
  align-content:start;
}
.question-video-viewer-note{
  width:100%;
  text-align:left;
  font-size:12px;
  color:var(--muted);
}
.question-video-viewer-player{
  width:100%;
  max-height:72vh;
  border-radius:12px;
  background:#000;
  border:1px solid rgba(255,255,255,.08);
}
.question-video-viewer-player-host{
  width:100%;
}
.question-video-viewer-embed-host{
  width:100%;
  aspect-ratio:16/9;
  border-radius:12px;
  overflow:hidden;
  background:#000;
  border:1px solid rgba(255,255,255,.08);
}
.question-video-viewer-embed-host iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
.question-video-viewer-controls{
  display:grid;
  gap:8px;
  width:100%;
}
.question-video-viewer-controls .btn.active{
  background:rgba(106,169,255,.22) !important;
  border-color:rgba(106,169,255,.44) !important;
  color:var(--panel-header-text) !important;
  box-shadow:0 0 0 1px rgba(106,169,255,.18) inset;
}
.question-video-viewer-controls .btn.warning{
  background:rgba(255,166,0,.14) !important;
  border-color:rgba(255,166,0,.44) !important;
  color:var(--panel-header-text) !important;
}
.question-video-viewer-note.warning{
  color:#ffcc7a;
}
.question-video-progress-wrap{
  position:relative;
  display:block;
  width:100%;
  min-height:36px;
  --video-progress:0%;
}
.question-video-progress-wrap::after{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:var(--video-progress);
  height:18px;
  border-radius:999px 0 0 999px;
  background:linear-gradient(90deg, rgba(106,169,255,.55), rgba(106,169,255,.18));
  pointer-events:none;
  z-index:1;
}
.question-video-timing-debug{
  border:1px solid rgba(255, 204, 122, .35);
  border-radius:10px;
  color:#ffcc7a;
  font-family:monospace;
  padding:6px 8px;
}
.question-video-progress-range{
  position:absolute;
  left:0;
  right:0;
  top:0;
  width:100%;
  height:36px;
  margin:0;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  cursor:pointer;
  z-index:4;
}
.question-video-progress-range::-webkit-slider-runnable-track{
  height:18px;
  border:0;
  background:transparent;
}
.question-video-progress-range::-moz-range-track{
  height:18px;
  border:0;
  background:transparent;
}
.question-video-progress-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:16px;
  height:16px;
  margin-top:1px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.86);
  background:rgba(8,12,20,.96);
  box-shadow:0 0 0 2px rgba(106,169,255,.22), 0 4px 10px rgba(0,0,0,.35);
}
.question-video-progress-range::-moz-range-thumb{
  width:16px;
  height:16px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.86);
  background:rgba(8,12,20,.96);
  box-shadow:0 0 0 2px rgba(106,169,255,.22), 0 4px 10px rgba(0,0,0,.35);
}
.question-video-timeline{
  position:absolute;
  left:0;
  right:0;
  top:8px;
  height:22px;
  width:100%;
  min-height:0;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  overflow:hidden;
  pointer-events:none;
  z-index:5;
}
.question-video-segment{
  position:absolute;
  top:0;
  height:100%;
  border-radius:0;
  background:rgba(106,169,255,.18);
  border:1px solid rgba(106,169,255,.28);
}
.question-video-segment.removed{
  background:rgba(255,90,95,.18);
  border-color:rgba(255,90,95,.32);
  opacity:.75;
}
.question-video-segment-delete{
  position:absolute;
  top:2px;
  transform:translateX(-50%);
  width:18px;
  height:18px;
  padding:0;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(10,14,22,.92);
  color:var(--panel-header-text);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  line-height:1;
  z-index:7;
  pointer-events:auto;
}
.question-video-break-node{
  position:absolute;
  top:0;
  bottom:0;
  width:2px;
  transform:translateX(-50%);
  background:rgba(255,255,255,.72);
  z-index:1;
  pointer-events:none;
}
.question-video-question-node{
  position:absolute;
  top:2px;
  width:18px;
  height:18px;
  padding:0;
  transform:translateX(-50%);
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(20,20,30,.96);
  color:var(--panel-header-text);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  font-weight:800;
  line-height:1;
  z-index:7;
  pointer-events:auto;
}
.question-item-row{grid-template-columns:120px minmax(0,1fr) auto}
.question-group-item-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
}
.question-group-item-source{
  min-width:0;
  display:grid;
  gap:6px;
}
.question-group-item-inline{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  align-items:center;
}
.question-group-item-inline-label{
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
}
.question-group-item-source .question-match-source-row{
  flex-wrap:nowrap;
  gap:5px;
}
.question-group-item-source .question-match-value-input{
  flex:1 1 190px;
  max-width:280px;
}
.question-group-item-source .field input,
.question-group-item-source .field select{
  padding:5px 7px;
}
.question-group-item-source .btn{
  padding:5px 7px;
}
.question-group-item-side{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:6px;
  justify-content:flex-end;
}
.question-group-item-side select{
  min-width:120px;
}
.question-media-preview{
  max-width:180px;
  max-height:120px;
  border-radius:12px;
  border:1px solid var(--line);
  background: rgba(0,0,0,.2);
}
.question-picture-stage{
  position:relative;
  width:100%;
  min-height:280px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.18);
  overflow:hidden;
  user-select:none;
}
.question-picture-canvas-image{
  display:block;
  position:relative;
  z-index:0;
  width:100%;
  height:auto;
  min-height:280px;
  object-fit:contain;
  background:rgba(0,0,0,.18);
}
.question-picture-arrow-layer,
.question-picture-target-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.question-picture-arrow-layer{
  z-index:50;
  pointer-events:none;
}
.question-picture-target-layer{
  z-index:60;
}
.question-picture-target-shell{
  position:absolute;
  z-index:1;
  transform:translate(-50%, -50%);
}
.question-picture-target-pill{
  width:100%;
  height:100%;
  min-width:0;
  border:0;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 8px;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  cursor:default;
}
.question-picture-target-pill.checkbox{
  padding:0 6px;
}
.question-picture-checkbox{
  position:relative;
  flex:0 0 auto;
  width:18px;
  height:18px;
  border-radius:4px;
  border:2px solid currentColor;
  background:rgba(255,255,255,.2);
}
.question-picture-target-pill.selected{
  outline:2px solid rgba(255,255,255,.72);
  outline-offset:2px;
}
.question-picture-target-pill.selected .question-picture-checkbox{
  background:var(--panel-header-text);
  border-color:var(--panel-header-text);
}
.question-picture-target-pill.selected .question-picture-checkbox::after{
  content:"";
  position:absolute;
  left:50%;
  top:45%;
  width:38%;
  height:68%;
  border:solid rgba(5,9,16,.92);
  border-width:0 2px 2px 0;
  transform:translate(-50%, -56%) rotate(45deg);
}
.question-picture-target-pill.drag{
  border-radius:8px;
  overflow:hidden;
  min-width:0;
  min-height:0;
  padding:3px 5px;
  text-align:center;
  white-space:normal;
}
.question-picture-target-chrome{
  position:absolute;
  inset:-5px;
  border:1px dashed transparent;
  border-radius:18px;
  pointer-events:none;
}
.question-picture-target-shell:hover .question-picture-target-chrome,
.question-picture-target-shell.is-selected .question-picture-target-chrome{
  border-color:rgba(255,255,255,.52);
}
.question-picture-target-delete,
.question-picture-target-color{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  border:0;
  border-radius:999px;
  display:none;
  align-items:center;
  justify-content:center;
  padding:0;
  font-size:10px;
  line-height:1;
  color:var(--panel-header-text);
  background:rgba(0,0,0,.72);
  pointer-events:auto;
}
.question-picture-target-shell:hover .question-picture-target-delete,
.question-picture-target-shell.is-selected .question-picture-target-delete,
.question-picture-target-shell:hover .question-picture-target-color,
.question-picture-target-shell.is-selected .question-picture-target-color,
.question-picture-target-shell:hover .question-picture-target-resize,
.question-picture-target-shell.is-selected .question-picture-target-resize{
  display:flex;
}
.question-picture-target-delete{ left:-6px; }
.question-picture-target-color{ right:-6px; }
.question-picture-target-resize{
  position:absolute;
  right:-5px;
  bottom:-5px;
  width:14px;
  height:14px;
  display:none;
  border-radius:4px;
  background:#4cd964;
  border:1px solid rgba(255,255,255,.6);
  cursor:nwse-resize;
}
.question-picture-color-popover{
  position:absolute;
  top:-40px;
  right:8px;
  display:flex;
  gap:6px;
  padding:6px 8px;
  border-radius:12px;
  border:1px solid var(--line);
  background:rgba(10,14,22,.95);
  box-shadow:var(--shadow);
}
.question-picture-color-popover input[type="color"]{
  width:26px;
  height:26px;
  padding:0;
  border:0;
  background:transparent;
}
.question-picture-inspector{
  display:grid;
  gap:8px;
  margin-top:10px;
}
.question-picture-distractor-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:0 10px;
  border:1px solid rgba(248,113,113,.28);
  border-radius:10px;
  color:#fecaca;
  background:rgba(127,29,29,.18);
  font-size:12px;
  font-weight:900;
}
.question-picture-distractor-toggle input{
  accent-color:#ef4444;
}
.question-picture-shape-row{
  display:grid;
  gap:8px;
}
.question-picture-shape-row .field{
  min-width:72px;
  margin:0;
}
.question-picture-shape-row input[type="number"]{
  width:72px;
  min-width:0;
  height:32px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:9px;
  padding:0 8px;
  color:var(--text);
  background:rgba(255,255,255,.06);
}
.question-gridfiller-size-input{
  width:64px;
  min-width:64px;
  text-align:center;
}
.question-gridfiller-stage{
  width:min(100%, 560px);
  margin:0 auto;
}
.question-gridfiller-grid{
  display:grid;
  gap:8px;
}
.question-gridfiller-cell{
  position:relative;
  min-height:64px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  overflow:hidden;
  cursor:pointer;
}
.question-gridfiller-cell.ghost{
  border-style:dashed;
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.015);
}
.question-gridfiller-cell.live{
  border-color:rgba(118,216,120,.55);
  background:rgba(118,216,120,.14);
}
.question-gridfiller-cell.fixed{
  border-color:rgba(106,169,255,.58);
  background:rgba(106,169,255,.14);
}
.question-gridfiller-ghost{
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(255,255,255,.04), rgba(255,255,255,.04)) center/1px 100% no-repeat,
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.04)) center/100% 1px no-repeat;
  opacity:.45;
}
.question-gridfiller-cell-input{
  position:absolute;
  inset:6px 10px 12px 6px;
  width:calc(100% - 16px);
  height:calc(100% - 18px);
  border:0;
  outline:none;
  background:transparent;
  color:var(--text);
  text-align:center;
  padding:0;
  font-weight:700;
}
.question-gridfiller-cell-corner{
  position:absolute;
  left:5px;
  bottom:4px;
  font-size:10px;
  font-weight:800;
  color:rgba(255,255,255,.78);
  pointer-events:none;
}
.question-venn-stage{
  position:relative;
  width:min(100%, 520px);
  min-height:180px;
  aspect-ratio: 25 / 16;
  margin:0 auto;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  overflow:hidden;
}
.question-venn-stage.preview{
  width:min(100%, 620px);
  min-height:220px;
}
.question-venn-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.question-venn-svg circle{
  fill:rgba(255,255,255,.04);
  stroke:rgba(255,255,255,.22);
  stroke-width:1.4;
}
.question-venn-zone-pill,
.question-preview-venn-zone{
  position:absolute;
  transform:translate(-50%,-50%);
  min-width:88px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.09);
  color:var(--text);
  text-align:center;
}
.question-venn-zone-pill.left,
.question-preview-venn-zone.left{ left:27%; top:50%; }
.question-venn-zone-pill.center,
.question-preview-venn-zone.center{ left:50%; top:50%; }
.question-venn-zone-pill.right,
.question-preview-venn-zone.right{ left:73%; top:50%; }
.question-venn-zone-title-row{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
  margin-top:10px;
}
.question-venn-item-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:8px;
  padding:8px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.06);
}
.question-preview-modal{
  position:fixed;
  inset:0;
  z-index:2147483647;
  background:rgba(0,0,0,.62);
  display:flex;
  align-items:center;
  justify-content:center;
}
.question-preview-card{
  width:min(980px,94vw);
  max-height:min(86vh,920px);
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius:18px;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
}
.question-preview-card.resource{
  width:min(980px,94vw);
}
.question-preview-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.question-preview-title{
  font-size:20px;
  font-weight:800;
  color:var(--panel-header-text);
}
.question-preview-subtitle{
  font-size:12px;
  color:var(--muted);
}
.question-preview-body{
  overflow:auto;
}
.question-preview-body.resource{
  display:grid;
  place-items:center;
  padding:6px 0 0;
}
.question-preview-resource-image{
  max-width:min(90vw, 900px);
  max-height:76vh;
  border-radius:12px;
  display:block;
}
.question-preview-resource-video{
  width:min(90vw, 900px);
  max-height:76vh;
  border-radius:12px;
  display:block;
  background:#000;
}
.question-preview-resource-video.youtube{
  aspect-ratio:16/9;
  border:0;
}
.question-preview-shell{
  display:grid;
  gap:14px;
}
.question-preview-prompt{
  font-size:15px;
  line-height:1.45;
  color:var(--text);
}
.question-rich-prompt img,
.question-preview-inline-prompt img{
  display:block;
  max-width:100%;
  max-height:360px;
  margin:8px 0;
  border-radius:12px;
}
.question-rich-prompt iframe,
.question-rich-prompt video,
.question-preview-inline-prompt iframe,
.question-preview-inline-prompt video{
  display:block;
  width:min(100%, 760px);
  aspect-ratio:16/9;
  max-height:62vh;
  margin:8px 0;
  border:0;
  border-radius:12px;
  background:#000;
}
.question-rich-prompt audio,
.question-preview-inline-prompt audio{
  display:block;
  width:min(100%, 560px);
  margin:8px 0;
}
.question-preview-choice-list,
.question-preview-bank,
.question-preview-group-items,
.question-preview-venn-drawer-items{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.question-preview-choice{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:var(--text);
  border-radius:12px;
  padding:12px 14px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  width:100%;
  text-align:left;
  cursor:pointer;
}
.question-preview-choice-list{
  display:grid;
  gap:8px;
}
.question-preview-choice-letter{
  min-width:34px;
  height:34px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--panel-header-text);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  font-weight:900;
  font-family:var(--header-font, Georgia, "Times New Roman", serif);
}
.question-preview-choice-check{
  width:22px;
  height:22px;
  border:2px solid rgba(255,255,255,.42);
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--panel-header-text);
  background:rgba(255,255,255,.06);
  flex:0 0 auto;
}
.question-preview-choice-check::after{
  content:"";
  width:10px;
  height:6px;
  border-left:3px solid currentColor;
  border-bottom:3px solid currentColor;
  transform:rotate(-45deg) translate(1px, -1px);
  opacity:0;
}
.question-preview-choice-check.checked{
  border-color:var(--bg2);
  background:var(--bg2);
}
.question-preview-choice-check.checked::after{
  opacity:1;
}
.question-preview-choice-text{
  min-width:0;
  overflow-wrap:anywhere;
}
.question-preview-choice.selected,
.question-preview-bank-item.selected,
.question-preview-venn-zone.active{
  border-color:rgba(106,169,255,.55);
  background:rgba(106,169,255,.12);
}
.question-preview-delimited{
  display:grid;
  gap:12px;
}
.question-preview-inline-prompt{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.question-preview-inline-prompt.rich{
  display:block;
  line-height:1.55;
}
.question-preview-inline-prompt.rich .question-preview-blank{
  display:inline-flex;
  margin:4px 6px;
  vertical-align:middle;
}
.question-preview-blank{
  min-width:110px;
  min-height:48px;
  border-radius:12px;
  border:1px dashed rgba(255,255,255,.24);
  background:rgba(255,255,255,.04);
  color:var(--text);
  padding:12px 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  z-index:2;
}
.question-preview-bank-item{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:var(--text);
  border-radius:14px;
  padding:12px 14px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.question-preview-bank-item.dragging{ cursor:grabbing; opacity:.7; }
.question-preview-bank-item-body{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:76px;
}
.question-preview-image{
  max-width:156px;
  max-height:112px;
  border-radius:8px;
  display:block;
}
.question-preview-audio{
  width:134px;
  max-width:100%;
  height:24px;
}
.question-preview-video{
  width:216px;
  max-width:100%;
  max-height:132px;
  border-radius:8px;
  display:block;
  background:#000;
}
.question-preview-video.youtube{
  aspect-ratio:16/9;
  border:0;
}
.question-preview-matching{
  display:grid;
  gap:8px;
}
.question-preview-matching-stage{
  position:relative;
  display:block;
}
.question-preview-matching-lines{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:0;
}
.question-preview-matching-rows{
  position:relative;
  z-index:1;
  display:grid;
  gap:6px;
}
.question-preview-matching-row{
  display:grid;
  grid-template-columns:minmax(0, calc(50% - 42px)) minmax(0, calc(50% - 42px));
  gap:84px;
  align-items:center;
}
.question-preview-matching-col{
  display:grid;
  gap:6px;
  position:relative;
  z-index:1;
  min-width:0;
}
.question-preview-match-node{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  justify-self:start;
  gap:10px;
  padding:10px 8px;
  border-radius:14px;
  color:var(--text);
  min-height:46px;
  max-width:100%;
  min-width:0;
  cursor:pointer;
  transition:opacity .14s ease;
}
.question-preview-match-node.left{
  justify-self:end;
}
.question-preview-match-node.right{
  justify-self:start;
}
.question-preview-match-node.selected .question-preview-match-connector{
  box-shadow:0 0 0 2px rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.34);
}
.question-preview-match-node.connected .question-preview-match-connector{
  border-color:rgba(255,255,255,.28);
}
.question-preview-match-side{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border-radius:8px;
  background:rgba(255,255,255,.04);
  padding:8px 10px;
  width:auto;
  max-width:100%;
}
.question-preview-match-media-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  max-width:100%;
  min-width:0;
}
.question-preview-match-connector{
  width:24px;
  height:24px;
  min-width:24px;
  border-radius:999px;
  border:3px solid rgba(255,255,255,.56);
  background:rgba(255,255,255,.08);
  padding:0;
  cursor:crosshair;
  position:relative;
  z-index:2;
}
.question-preview-match-connector:hover{
  border-color:rgba(255,255,255,.82);
  background:rgba(255,255,255,.16);
}
.question-preview-match-zoom{
  min-width:24px;
  height:24px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
  color:var(--text);
  padding:0;
  font-size:14px;
  font-family:inherit;
  line-height:1;
}
.question-preview-match-zoom:hover{
  background:rgba(255,255,255,.09);
}
.question-preview-matching-line{
  fill:none;
  stroke:var(--minor1, rgba(255,255,255,.78));
  stroke-width:3;
  stroke-linecap:round;
}
.question-preview-matching-line.active{
  stroke-dasharray:9 7;
  opacity:.9;
}
.question-picture-stage.preview{
  width:min(100%, calc(72vh * var(--picture-ratio, 1.6)));
  max-width:100%;
  min-height:0;
  aspect-ratio:var(--picture-aspect, 16 / 10);
  margin:0 auto;
}
.question-picture-stage.preview .question-picture-canvas-image{
  width:100%;
  height:100%;
  min-height:0;
  max-width:none;
  max-height:none;
  object-fit:contain;
}
.question-picture-preview-pill,
.question-picture-preview-drop{
  position:absolute;
  transform:translate(-50%,-50%);
}
.question-picture-preview-pill .question-picture-target-pill,
.question-picture-preview-drop{
  font-size:clamp(10px, 1.15vmin, 16px);
  line-height:1.1;
}
.question-picture-preview-pill .question-picture-checkbox{
  width:min(52%, 18px);
  height:min(52%, 18px);
  min-width:10px;
  min-height:10px;
  border-width:clamp(1px, .22vmin, 2px);
}
.question-picture-preview-drop{
  border:1px dashed rgba(255,255,255,.28);
  border-radius:8px;
  padding:clamp(3px, .7vmin, 8px) clamp(5px, 1vmin, 12px);
  min-width:0;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text);
  touch-action:none;
  user-select:none;
}
.question-picture-drop-text{
  display:block;
  max-width:100%;
  max-height:100%;
  overflow:hidden;
  text-align:center;
  line-height:1.05;
  word-break:break-word;
}
.question-picture-preview-drop.is-filled{
  border-style:solid;
  opacity:1;
}
.question-picture-preview-drop.is-filled:hover,
.question-picture-preview-drop.is-filled:focus-visible{
  z-index:80;
}
.question-picture-drop-zoom-popover{
  position:fixed;
  z-index:2147483600;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  border:2px solid rgba(255,255,255,.72);
  border-radius:10px;
  box-shadow:0 18px 46px rgba(0,0,0,.42);
  font-size:clamp(18px, 2.4vw, 34px);
  font-weight:900;
  line-height:1.05;
  text-align:center;
  pointer-events:none;
  overflow:hidden;
  word-break:break-word;
}
.question-preview-grouping{
  display:grid;
  gap:12px;
}
.question-preview-group-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:10px;
}
.question-preview-group-zone,
.question-preview-venn-drawer{
  display:grid;
  gap:8px;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  touch-action:none;
}
.question-preview-group-title,
.question-preview-venn-drawer-title{
  font-weight:700;
  color:var(--panel-header-text);
}
.question-preview-placed-item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  cursor:pointer;
}
.question-preview-venn{
  display:grid;
  gap:12px;
}
.question-preview-venn-zone{
  display:grid;
  gap:4px;
  min-width:108px;
  align-content:start;
  touch-action:none;
}
.question-preview-venn-zone-title{
  font-weight:700;
}
.question-preview-venn-zone-count{
  font-size:11px;
  color:var(--muted);
}
.question-preview-venn-zone-items{
  display:flex;
  flex-direction:column;
  gap:4px;
  justify-content:flex-start;
  align-items:center;
  min-height:42px;
}
.question-preview-venn-zone-item{
  max-width:100%;
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-size:11px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.question-preview-venn-zone-item[draggable="true"]{
  cursor:grab;
}
.question-preview-venn-zone-item[draggable="true"]:active{
  cursor:grabbing;
}
.question-preview-venn-zone-item.empty{
  opacity:.72;
  font-style:italic;
}
.question-preview-gridfiller{
  display:grid;
  gap:12px;
}
.question-preview-gridfiller-grid{
  display:grid;
  gap:8px;
  width:min(100%, 560px);
}
.question-preview-gridfiller-cell{
  min-height:58px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:var(--text);
  padding:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.question-preview-gridfiller-cell.ghost{
  visibility:hidden;
  pointer-events:none;
}
.question-preview-gridfiller-cell.fixed{
  background:rgba(106,169,255,.14);
  border-color:rgba(106,169,255,.46);
  font-weight:700;
}
.question-preview-gridfiller-cell.live{
  border-style:dashed;
  border-color:rgba(255,255,255,.26);
}
.question-preview-gridfiller-cell.input{
  width:100%;
  background:rgba(255,255,255,.03);
  border-style:dashed;
  border-color:rgba(255,255,255,.26);
}
.question-order-stage{
  position:relative;
  min-height:190px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 16% 18%, rgba(135,205,255,.08), transparent 26%),
    rgba(255,255,255,.03);
  overflow:hidden;
}
.question-order-stage.preview{
  min-height:210px;
}
.question-order-arrow-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.question-order-slot-layer{
  position:absolute;
  inset:0;
}
.question-order-editor-shell,
.question-preview-order-slot{
  position:absolute;
  transform:translate(-50%,-50%);
}
.question-order-editor-shell{
  z-index:2;
}
.question-order-editor-pill,
.question-preview-order-slot{
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  text-align:center;
}
.question-order-editor-pill{
  width:100%;
  height:100%;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.08);
  color:var(--text);
  font-size:11px;
  outline:none;
  padding:0 7px;
}
.question-preview-order{
  display:grid;
  gap:12px;
}
.question-preview-order-slot{
  border:1px dashed rgba(255,255,255,.28);
  background:rgba(10,14,22,.58);
  box-shadow:0 10px 24px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
  color:var(--text);
  min-width:72px;
  min-height:42px;
  padding:8px 12px;
  line-height:1.15;
  overflow-wrap:anywhere;
  white-space:normal;
  touch-action:none;
  user-select:none;
}
.question-preview-gridfiller-cell.live{
  touch-action:none;
  user-select:none;
}
.question-order-pill-add,
.question-order-pill-delete{
  position:absolute;
  z-index:3;
  width:15px;
  height:15px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(10,14,22,.92);
  color:var(--panel-header-text);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  font-size:10px;
  line-height:1;
}
.question-order-pill-delete{
  left:2px;
  top:50%;
  transform:translateY(-50%);
}
.question-order-pill-delete.right{
  left:auto;
  right:2px;
}
.question-order-pill-add.right{
  right:-7px;
  top:50%;
  transform:translateY(-50%);
}
.question-order-pill-add.left{
  left:-7px;
  top:50%;
  transform:translateY(-50%);
}
.question-order-pill-add.down{
  left:50%;
  bottom:-7px;
  transform:translateX(-50%);
}
.question-mode-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.question-mode-row-inline{
  flex:0 1 auto;
  align-items:flex-end;
  justify-content:flex-start;
  flex-wrap:nowrap;
}
.question-scoring-row{
  display:grid;
  grid-template-columns:auto auto;
  align-items:end;
  justify-content:flex-start;
  gap:8px;
}
.question-points-inline{
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.question-points-inline-label{
  font-size:11px;
  color:var(--muted);
}
.question-points-inline-input{
  width:64px;
  min-width:64px;
  padding:6px 8px !important;
  text-align:center;
}
.question-mode-row-inline .btn{
  padding:6px 8px !important;
  font-size:11px;
  white-space:nowrap;
}
.question-mode-btn.active{
  border-color: rgba(106,169,255,.55);
  background: rgba(106,169,255,.12);
}
.question-tag-selector{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.question-tag-option{
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  color:var(--muted);
  padding:5px 8px;
  border-radius:999px;
  cursor:pointer;
  font-size:11px;
  line-height:1.2;
}
.question-tag-option.active{
  border-color: rgba(106,169,255,.5);
  background: rgba(106,169,255,.12);
  color:var(--text);
}
.question-rule-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:6px;
}
.question-rule-grid .question-inline-row{
  gap:6px;
  font-size:12px;
}
.question-small-note{
  font-size:12px;
  color:var(--muted);
}
#tab-question-bank .field{
  gap:4px;
}
#tab-question-bank .field label{
  font-size:11px;
}
#tab-question-bank .field input,
#tab-question-bank .field select,
#tab-question-bank .field textarea{
  padding:8px 9px;
  border-radius:10px;
}
#tab-question-bank .field textarea{
  min-height:74px;
}
#tab-question-bank .btn{
  padding:7px 9px;
  border-radius:10px;
}

.grade-slot-assignment-count{
  position:relative;
  display:inline-block;
  margin-top:6px;
  padding:0;
  border:none;
  background:transparent;
  color:rgba(255,255,255,.68);
  font-size:11px;
  line-height:1.1;
  white-space:nowrap;
  z-index:1;
  cursor:default;
}
.grade-slot-assignment-count > span,
.grade-slot-assignment-count{
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:2px;
}
.grade-slot-assignment-count::after{
  content:"";
  position:absolute;
  left:-24px;
  right:-24px;
  top:100%;
  height:28px;
  pointer-events:none;
}
.grade-slot-assignment-popover{
  position:absolute;
  top:calc(100% + 2px);
  left:auto;
  right:-12px;
  display:none;
  min-width:240px;
  max-width:320px;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:#111;
  box-shadow:0 18px 40px rgba(0,0,0,.38);
  z-index:2147483000;
  pointer-events:auto;
}
.grade-slot-assignment-popover::before{
  content:"";
  position:absolute;
  inset:-18px -18px -18px -18px;
  pointer-events:none;
}
.grade-slot-assignment-count:hover .grade-slot-assignment-popover,
.grade-slot-assignment-count:focus-within .grade-slot-assignment-popover{
  display:block;
}
.grade-slot-assignment-popover-title{
  margin-bottom:8px;
  color:rgba(255,255,255,.72);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.grade-slot-assignment-popover-list{
  display:grid;
  gap:6px;
}
.grade-slot-assignment-link{
  display:flex;
  align-items:flex-start;
  gap:8px;
  width:100%;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.92);
  text-align:left;
  cursor:pointer;
}
.grade-slot-assignment-link:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
}
.grade-slot-assignment-link-index{
  color:rgba(255,255,255,.52);
  flex:0 0 auto;
}
.grade-slot-assignment-link-name{
  min-width:0;
  overflow-wrap:anywhere;
}

.node-results-panel{
  display:grid;
  gap:12px;
}
.node-results-muted{
  color:rgba(255,255,255,.68);
  font-size:13px;
}
.node-results-card{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.045);
}
.node-results-card-title{
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.node-results-card-main{
  color:white;
  font-weight:800;
}
.node-results-toggle{
  display:flex;
  gap:8px;
  align-items:center;
}
.node-results-toggle-active{
  border-color:rgba(245,158,11,.45)!important;
  background:rgba(245,158,11,.18)!important;
  color:white!important;
}
.node-results-score-row{
  display:flex;
  align-items:center;
  gap:8px;
}
.node-results-retry-btn{
  width:26px;
  height:26px;
  font-size:15px;
  flex:0 0 auto;
}
.node-results-submitted-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.node-results-late-note{
  color:#ffcf9d;
  font-size:12px;
  white-space:nowrap;
}
.node-results-excuse-btn{
  padding:4px 8px;
  min-height:24px;
  font-size:12px;
}
.node-results-excuse-btn.active{
  border-color:rgba(126,211,134,.65)!important;
  background:rgba(126,211,134,.18)!important;
  color:#dcffdf!important;
}
.node-results-table-wrap{
  max-height:320px;
  overflow:auto;
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
}
.node-results-table{
  width:100%;
  border-collapse:collapse;
}
.node-results-table th,
.node-results-table td{
  padding:10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:white;
  text-align:left;
  vertical-align:top;
}
.node-results-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#1b2723;
  border-bottom-color:rgba(255,255,255,.14);
}
.node-results-tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.node-results-tag-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:100%;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.86);
  font-size:12px;
  line-height:1.2;
}
.node-results-tag-chip span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.node-results-tag-chip b{
  flex:0 0 auto;
  color:#facc7a;
  font-weight:800;
}
.node-additional-requirements{
  display:grid;
  gap:8px;
  min-height:0;
}
.node-additional-requirements-intro,
.node-additional-requirements-note,
.node-additional-requirements-empty{
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.node-additional-requirements-note{
  color:var(--minor2, var(--muted));
}
.node-due-policy-card{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.045);
}
.node-due-policy-title{
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.node-due-policy-grid{
  display:grid;
  grid-template-columns:minmax(180px,260px) minmax(130px,180px);
  gap:10px;
  align-items:end;
}
.node-due-policy-field{
  display:grid;
  gap:5px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:700;
}
.node-due-policy-field input{
  width:100%;
  box-sizing:border-box;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.22);
  color:white;
  padding:8px 10px;
}
.node-due-date-row{
  display:flex;
  gap:8px;
  align-items:center;
}
.node-due-today-btn{
  min-height:34px;
  padding:6px 10px;
  flex:0 0 auto;
  font-size:12px;
}
.node-additional-requirements-empty{
  padding:10px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.035);
}
.node-additional-requirements-mode{
  display:inline-flex;
  align-items:center;
  justify-self:start;
  gap:6px;
  padding:3px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(0,0,0,.18);
}
.node-additional-requirements-mode-label{
  padding:0 6px 0 8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.node-additional-requirements-mode-btn{
  min-width:44px;
  min-height:26px;
  padding:0 10px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.node-additional-requirements-mode-btn:hover{
  color:var(--text);
  background:rgba(255,255,255,.08);
}
.node-additional-requirements-mode-btn.active{
  color:#111;
  background:#facc7a;
}
.node-additional-requirements-mode-btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.node-additional-requirements-table{
  display:grid;
  gap:6px;
  max-height:min(58vh, 520px);
  overflow:auto;
  padding:8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.node-additional-requirements-row{
  display:grid;
  grid-template-columns:minmax(190px,1fr) auto 74px;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  background:rgba(0,0,0,.14);
}
.node-additional-requirements-row:nth-child(even):not(.node-additional-requirements-header-row){
  background:rgba(255,255,255,.045);
}
.node-additional-requirements-row:hover:not(.node-additional-requirements-header-row){
  border-color:rgba(250,204,122,.32);
  background:rgba(250,204,122,.08);
}
.node-additional-requirements-header-row{
  position:sticky;
  top:0;
  z-index:2;
  padding:4px 8px 6px;
  border-color:rgba(255,255,255,.12);
  background:#111;
}
.node-additional-requirements-head{
  padding:0 2px;
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.node-additional-requirements-tag{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
  font-size:12px;
}
.node-additional-requirements-comparators{
  display:inline-flex;
  gap:2px;
  padding:2px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:999px;
  background:rgba(0,0,0,.18);
}
.node-additional-requirement-symbol{
  width:22px;
  height:22px;
  padding:0;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.node-additional-requirement-symbol:hover{
  color:var(--text);
  background:rgba(255,255,255,.08);
}
.node-additional-requirement-symbol.active{
  color:#111;
  background:#facc7a;
}
.node-additional-requirements-threshold{
  width:100%;
  min-width:0;
  padding:5px 6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(0,0,0,.24);
  color:var(--text);
  font-size:12px;
}

@media (max-width: 720px){
  .node-additional-requirements-row{
    grid-template-columns:minmax(0,1fr) auto 64px;
    gap:6px;
    padding:7px;
  }
  .node-additional-requirements-tag{
    font-size:11px;
  }
}

@media (max-width: 980px){
  .question-bank-meta{grid-template-columns:1fr}
  .question-filing-inputs,
  .question-filing-row{grid-template-columns:1fr}
  .question-scoring-row{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .question-mode-row-inline{
    flex-wrap:wrap;
  }
  .question-option-row,
  .question-answer-row,
  .question-label-row,
  .question-pair-row,
  .question-item-row{grid-template-columns:1fr}
}

/* Responsive guardrails: keep dense creator UI from colliding on smaller screens. */
:root{
  --fluid-panel-pad:clamp(8px, 1.1vw, 14px);
  --fluid-card-pad:clamp(8px, 1vw, 12px);
  --fluid-gap:clamp(6px, .85vw, 12px);
  --fluid-control-font:clamp(11px, .82vw, 13px);
}

button,
input,
select,
textarea{
  max-width:100%;
}

.brand,
.tabs,
.topbar-actions,
.panel-header,
.quest-toolbar,
.share-block-control,
.assignment-bank-toolbar,
.assignment-editor-header,
.assignment-worksheet-item-head,
.assignment-video-node-head,
.question-editor-header,
.question-tag-modal-header,
.question-preview-header,
.student-quest-header,
.student-video-assignment-frame-header,
.student-video-assignment-prompt-actions,
.node-results-toggle{
  min-width:0;
}

.btn,
.tab,
.input,
.field input,
.field select,
.field textarea,
.select select{
  font-size:var(--fluid-control-font);
}

.input{
  width:min(320px, 100%);
  min-width:0;
}

.field,
.field input,
.field select,
.field textarea,
.select,
.select select,
.brand-text,
.class-selector-topbar > div,
.assignment-bank-title,
.assignment-editor-header .card-title,
.assignment-worksheet-item-title,
.assignment-video-node-meta,
.question-editor-title,
.question-tag-modal-title,
.question-preview-title,
.student-quest-title{
  min-width:0;
}

.brand-title,
.brand-sub,
.assignment-bank-title,
.assignment-worksheet-item-title,
.assignment-video-node-meta,
.question-editor-title,
.question-tag-modal-title,
.question-preview-title,
.student-quest-title,
.student-grade-name,
.student-grade-meta{
  overflow-wrap:anywhere;
}

.layout,
.two-col,
.assets,
.students-manage-layout,
.class-selector-content,
.question-editor-card,
.question-preview-card,
.question-tag-modal-card,
.share-settings-card{
  padding:var(--fluid-panel-pad);
}

.panel-header,
.card,
.assignment-editor-card,
.question-editor-card,
.question-preview-card,
.question-tag-modal-card,
.share-settings-card{
  gap:var(--fluid-gap);
}

.card{
  margin:var(--fluid-card-pad);
  padding:var(--fluid-card-pad);
}

.topbar{
  gap:var(--fluid-gap);
}

.tabs,
.topbar-actions{
  flex-wrap:wrap;
}

.tabs{
  row-gap:6px;
}

.tab,
.btn{
  white-space:nowrap;
}

.brand-color-pickers{
  max-width:100%;
}

.panel-header{
  flex-wrap:wrap;
}

.panel-header-quest{
  flex-wrap:wrap;
}

.quest-toolbar{
  flex-wrap:wrap;
  row-gap:6px;
}

.quest-toolbar .divider{
  display:none;
}

.quest-toolbar .select{
  min-width:0;
}

.share-block-inline,
.share-block-control{
  max-width:100%;
}

.share-block-dropdown summary{
  min-width:0;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.question-video-progress-wrap,
.assignment-video-rewind-row,
.question-match-source-row,
.question-group-item-source .question-match-source-row{
  min-width:0;
}

.question-video-progress-range{
  min-width:90px;
}

@media (max-width: 1320px){
  .topbar-teacher{
    flex-wrap:wrap;
  }

  .teacher-brand-stack{
    flex:1 1 240px;
  }

  .brand-color-pickers{
    flex-wrap:wrap;
  }

  .topbar-teacher .tabs,
  .topbar-teacher .topbar-actions{
    flex:1 1 auto;
  }

  #tab-assignments .two-col{
    grid-template-columns:minmax(330px, 410px) minmax(0, 1fr) !important;
  }

  #tab-question-bank .two-col,
  #tab-question-bank .two-col.question-bank-wide{
    grid-template-columns:minmax(280px, 380px) minmax(0, 1fr) !important;
  }
}

@media (max-width: 1120px){
  .two-col,
  #tab-assignments .two-col,
  #tab-question-bank .two-col,
  #tab-question-bank .two-col.question-bank-wide,
  .assets{
    grid-template-columns:1fr !important;
  }

  #tab-assignments .two-col{
    align-items:stretch !important;
  }

  .assignment-left-stack,
  #tab-assignments .assignment-left-stack{
    max-height:none;
  }

  .asset-preview .preview-box{
    min-height:220px;
  }

  .students-manage-layout{
    grid-template-columns:minmax(260px, .9fr) minmax(0, 1.1fr);
  }

  .developer-grid{
    grid-template-columns:1fr;
  }

  .teacher-group-layout{
    grid-template-columns:1fr;
  }

  .teacher-group-search-card{
    grid-row:auto;
  }

  .developer-user-row{
    grid-template-columns:auto minmax(0, 1fr);
  }

  .developer-plan-status,
  .developer-manual-access{
    grid-column:2 / -1;
  }

  .developer-manual-access{
    justify-content:flex-start;
  }

  .developer-student-list{
    padding-left:42px;
  }

  .student-mastery-summary{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  .topbar{
    align-items:flex-start;
  }

  .brand{
    flex-wrap:wrap;
  }

  .teacher-brand-stack,
  .tabs,
  .topbar-actions,
  .class-selector-topbar,
  .student-quest-header,
  .student-video-assignment-frame-header,
  .student-mastery-hero{
    width:100%;
  }

  .class-selector-topbar{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .class-selector-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .students-manage-layout,
  .student-avatar-stats{
    grid-template-columns:1fr;
  }

  .question-bank-meta,
  .question-filing-inputs,
  .question-filing-row,
  .question-scoring-row,
  .question-option-row,
  .question-answer-row,
  .question-label-row,
  .question-pair-row,
  .question-item-row,
  .question-group-item-layout,
  .question-group-item-inline,
  .question-venn-zone-title-row,
  .assignment-core-fields{
    grid-template-columns:1fr !important;
  }

  .assignment-editor-home{
    min-height:240px;
    flex-direction:column;
  }

  .assignment-create-menu{
    left:50%;
    transform:translateX(-50%);
  }

  .question-group-item-side,
  .assignment-worksheet-item-actions,
  .assignment-video-node-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .question-match-source-row,
  .question-group-item-source .question-match-source-row,
  .question-video-progress-wrap,
  .assignment-video-rewind-row{
    flex-wrap:wrap;
  }

  .question-match-value-input,
  .question-group-item-source .question-match-value-input{
    flex-basis:100%;
    max-width:none;
  }

  .node-asset-picker-trigger,
  .node-asset-picker-option{
    grid-template-columns:72px minmax(0, 1fr) auto;
  }

  .node-asset-picker-option{
    grid-template-columns:72px minmax(0, 1fr);
  }

  .node-asset-picker-strip{
    width:72px;
  }

  .question-editor-card,
  .question-preview-card,
  .question-tag-modal-card{
    width:calc(100vw - 18px);
    max-height:calc(100vh - 18px);
    border-radius:14px;
  }
}

@media (max-width: 720px){
  .topbar{
    padding:10px;
  }

  .logo{
    width:34px;
    height:34px;
    border-radius:10px;
  }

  .brand-title{
    font-size:15px;
  }

  .brand-sub{
    font-size:11px;
  }

  .tabs,
  .topbar-actions,
  .launch-actions,
  .class-selector-top-actions,
  .assignment-bank-switcher,
  .question-bank-actions,
  .node-results-toggle{
    gap:6px;
  }

  .tab,
  .btn{
    padding:7px 8px;
    border-radius:10px;
  }

  .class-selector-list{
    grid-template-columns:1fr;
  }

  .class-selector-content,
  .class-selector-topbar,
  .layout,
  .two-col,
  .assets,
  .students-manage-layout{
    padding:10px;
  }

  .panel-header{
    padding:9px 10px;
  }

  .assignment-bank-toolbar,
  .assignment-editor-header,
  .question-tag-dropbox-header,
  .question-editor-header,
  .question-tag-modal-header,
  .question-preview-header,
  .student-grade-item,
  .student-mastery-row-head{
    align-items:stretch;
    flex-direction:column;
  }

  .assignment-bank-toolbar .input,
  .assignment-bank-toolbar .btn,
  .assignment-editor-header .btn,
  .assignment-node-source-picker,
  .assignment-node-source-picker select,
  .question-tag-dropbox-header .btn,
  .student-grade-side{
    width:100%;
  }
  .assignment-node-source-picker{
    margin-left:0;
    justify-content:space-between;
  }
  .assignment-node-source-picker select{
    max-width:100%;
  }

  .student-grade-item{
    gap:8px;
  }

  .student-grade-score,
  .student-grade-score.pending-qualification{
    min-width:0;
    text-align:left;
  }

  .question-preview-resource-image,
  .question-preview-resource-video{
    max-width:100%;
  }

  .grade-slot-assignment-popover,
  .question-tag-dropbox-detail{
    max-width:min(88vw, 360px);
    min-width:min(280px, 88vw);
  }
}

.presentation-slide-maker-overlay.touch-slide-maker-ui{
  overflow:hidden;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell.with-rail-toggle,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell.with-rail,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell.equipment-builder-slide-maker-shell.with-rail,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell.equipment-builder-slide-maker-shell.with-rail-toggle{
  --mobile-slide-row-height:clamp(340px, calc(var(--slide-maker-vh, 100dvh) * .72), 760px);
  position:relative;
  grid-template-columns:minmax(0, 1fr) !important;
  grid-template-rows:minmax(300px, var(--mobile-slide-row-height)) auto !important;
  grid-template-areas:
    "slide"
    "editor" !important;
  gap:8px;
  padding:8px;
  overflow:auto;
  align-content:start;
  -webkit-overflow-scrolling:touch;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-active .presentation-slide-maker-shell{
  --mobile-slide-row-height:clamp(380px, calc(var(--slide-maker-vh, 100dvh) * .78), 820px);
}

.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-active:fullscreen .presentation-slide-maker-shell{
  --mobile-slide-row-height:clamp(260px, calc(var(--slide-maker-vh, 100dvh) - 156px), 820px);
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-preview-viewport{
  min-height:300px;
  height:var(--mobile-slide-row-height);
  border-radius:16px;
  touch-action:none;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-controls{
  position:fixed;
  left:var(--mobile-sketch-panel-left, 8px);
  top:var(--mobile-sketch-panel-top, 76px);
  z-index:2147483200;
  width:var(--mobile-sketch-panel-width, min(360px, calc(var(--slide-maker-vw, 100vw) - 16px)));
  max-width:calc(var(--slide-maker-vw, 100vw) - 16px);
  max-height:var(--mobile-sketch-panel-max-height, calc(var(--slide-maker-vh, 100dvh) - 96px));
  min-height:0;
  overflow:auto;
  padding:8px;
  border-radius:14px;
  gap:8px;
  background:rgba(44, 48, 58, .97);
  border:1px solid rgba(148, 163, 184, .28);
  box-shadow:0 14px 34px rgba(0,0,0,.32);
  backdrop-filter:blur(10px);
  -webkit-overflow-scrolling:touch;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-controls .presentation-slide-tool-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-controls .presentation-slide-tool-detail,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-controls .presentation-slide-layers-panel,
.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-controls .presentation-slide-background-panel{
  max-width:100%;
}

.presentation-mobile-sketch-puck{
  display:none;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-mobile-sketch-puck{
  position:fixed;
  z-index:2147483300;
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  min-height:56px;
  padding:0;
  border-radius:999px;
  border:2px solid rgba(250, 204, 21, .58);
  background:rgba(48, 53, 64, .96);
  box-shadow:0 12px 28px rgba(0,0,0,.36), inset 0 0 0 1px rgba(255,255,255,.08);
  cursor:grab;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-mobile-sketch-puck:active{
  cursor:grabbing;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-mobile-sketch-puck.open{
  background:rgba(87, 72, 36, .98);
  border-color:#facc15;
  box-shadow:0 0 0 4px rgba(250, 204, 21, .16), 0 12px 28px rgba(0,0,0,.36);
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-mobile-sketch-puck img{
  display:block;
  width:34px;
  height:34px;
  object-fit:contain;
  pointer-events:none;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-tools-collapsed .presentation-slide-maker-controls{
  display:none;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-tools-collapsed .presentation-slide-maker-shell,
.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-tools-collapsed .presentation-slide-maker-shell.with-rail-toggle,
.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-tools-collapsed .presentation-slide-maker-shell.with-rail,
.presentation-slide-maker-overlay.touch-slide-maker-ui.mobile-sketch-tools-collapsed .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell{
  grid-template-rows:minmax(300px, calc(var(--slide-maker-vh, 100dvh) - 86px)) !important;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-rail-toggle{
  position:absolute;
  grid-area:auto;
  top:8px;
  right:8px;
  z-index:35;
  width:38px;
  height:calc(var(--mobile-slide-row-height) - 16px);
  min-height:120px;
  border-radius:14px;
  align-self:stretch;
  display:grid;
  place-items:center;
  font-size:1.1rem;
}

.presentation-slide-maker-overlay.touch-slide-maker-ui .presentation-slide-maker-rail{
  position:absolute;
  grid-area:auto;
  top:8px;
  right:8px;
  z-index:40;
  width:min(128px, 32vw);
  height:calc(var(--mobile-slide-row-height) - 16px);
  min-width:0;
  padding:6px;
  border-radius:14px;
  gap:6px;
}

@media (max-width: 720px), (hover: none) and (pointer: coarse){
  .presentation-slide-maker-overlay{
    overflow:hidden;
  }

  .presentation-slide-maker-header{
    gap:8px;
    padding:8px 10px;
    align-items:flex-start;
  }

  .presentation-slide-maker-title-block{
    gap:8px;
  }

  .presentation-slide-maker-title{
    font-size:1rem;
  }

  .presentation-slide-maker-actions{
    gap:6px;
  }

  .presentation-slide-maker-actions .btn{
    min-height:34px;
    padding:6px 8px;
  }

  .presentation-slide-pdf-import-status{
    flex:1 1 100%;
    max-width:100%;
    font-size:.78rem;
  }

  .presentation-slide-maker-shell,
  .presentation-slide-maker-shell.with-rail-toggle,
  .presentation-slide-maker-shell.with-rail,
  .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell{
    --mobile-slide-row-height:clamp(260px, calc(var(--slide-maker-vh, 100dvh) * .62), 520px);
    position:relative;
    grid-template-columns:minmax(0, 1fr);
    grid-template-rows:minmax(240px, var(--mobile-slide-row-height)) auto;
    grid-template-areas:
      "slide"
      "editor";
    gap:8px;
    padding:8px;
    overflow:auto;
    align-content:start;
    -webkit-overflow-scrolling:touch;
  }

  .presentation-slide-maker-shell:not(.with-rail):not(.with-rail-toggle),
  .presentation-slide-maker-shell.dynamo-bodypart-slide-maker-shell{
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:
      "slide"
      "editor";
  }

  .presentation-slide-maker-shell.with-rail-toggle{
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:
      "slide"
      "editor";
  }

  .presentation-slide-maker-overlay.mobile-sketch-active .presentation-slide-maker-shell{
    --mobile-slide-row-height:clamp(280px, calc(var(--slide-maker-vh, 100dvh) * .70), 620px);
  }

  .presentation-slide-maker-overlay.mobile-sketch-active:fullscreen .presentation-slide-maker-shell{
    --mobile-slide-row-height:clamp(220px, calc(var(--slide-maker-vh, 100dvh) - 158px), 720px);
  }

  .presentation-slide-maker-preview-viewport{
    min-height:240px;
    height:var(--mobile-slide-row-height);
    border-radius:16px;
    touch-action:none;
  }

  .presentation-slide-maker-preview{
    border-radius:16px;
  }

  .presentation-slide-maker-preview.sketch-mode,
  .presentation-slide-maker-preview.sketch-mode *{
    touch-action:none;
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    user-select:none;
  }

  .presentation-slide-maker-rail-toggle{
    position:absolute;
    grid-area:auto;
    top:8px;
    right:8px;
    z-index:35;
    width:38px;
    height:calc(var(--mobile-slide-row-height) - 16px);
    min-height:120px;
    border-radius:14px;
    align-self:stretch;
    display:grid;
    place-items:center;
    font-size:1.1rem;
  }

  .presentation-slide-maker-rail{
    position:absolute;
    grid-area:auto;
    top:8px;
    right:8px;
    z-index:40;
    width:min(118px, 32vw);
    height:calc(var(--mobile-slide-row-height) - 16px);
    min-width:0;
    padding:6px;
    border-radius:14px;
    gap:6px;
  }

  .presentation-slide-maker-rail-head{
    justify-content:center;
  }

  .presentation-slide-maker-rail-head b{
    display:none;
  }

  .presentation-slide-maker-rail-collapse{
    width:32px;
    height:32px;
  }

  .presentation-slide-maker-rail-list{
    gap:6px;
    padding:0 2px 0 10px;
  }

  .presentation-slide-maker-rail-item{
    min-height:56px;
    padding:3px;
    border-radius:10px;
  }

  .presentation-slide-maker-rail-thumb{
    border-radius:7px;
  }

  .presentation-slide-maker-rail-action.delete{
    left:-10px;
    width:24px;
    height:24px;
    min-height:24px;
    padding:0;
  }

  .presentation-slide-maker-rail-add{
    width:34px;
    height:34px;
    min-height:34px;
    font-size:20px;
  }

  .presentation-slide-maker-controls{
    max-height:none;
    min-height:0;
    overflow:visible;
    padding:8px;
    border-radius:14px;
    gap:8px;
  }

  .presentation-slide-tool-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:6px;
  }

  .presentation-slide-tool-button{
    min-height:40px;
    padding:6px 5px;
    border-radius:10px;
    font-size:12px;
  }

  .presentation-slide-tool-detail{
    min-width:0;
  }

  .presentation-slide-sketch-controls{
    gap:6px;
  }

  .presentation-slide-sketch-controls .btn,
  .presentation-slide-sketch-select-tool,
  .presentation-slide-sketch-gradient-tool,
  .presentation-slide-sketch-fill-tool{
    min-width:42px;
    min-height:42px;
  }

  .presentation-slide-sketch-controls input[type="color"]{
    width:44px;
    height:40px;
  }

  .presentation-slide-sketch-current-color-button{
    width:44px;
    height:42px;
    min-height:42px;
  }

  .presentation-slide-sketch-current-color-popover{
    position:fixed;
    left:50%;
    top:50%;
    transform:translate(-50%, -50%);
    width:min(286px, calc(var(--slide-maker-vw, 100vw) - 28px));
    max-height:calc(var(--slide-maker-vh, 100dvh) - 28px);
    overflow:auto;
  }

  .presentation-slide-sketch-current-color-popover .dynamo-bodypart-color-panel{
    width:100%;
    max-width:264px;
  }

  .presentation-slide-sketch-weight{
    flex:1 1 150px;
  }

  .presentation-slide-sketch-brush-wheel{
    left:0;
    top:48px;
    transform:none;
  }

  .presentation-slide-sketch-gradient-editor{
    width:100%;
    z-index:2147483200;
  }

  .presentation-slide-layers-panel{
    max-height:42dvh;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width: 520px){
  .tabs,
  .topbar-actions,
  .quest-toolbar,
  .brand-color-pickers{
    width:100%;
  }

  .tabs .tab,
  .topbar-actions .btn{
    flex:1 1 auto;
    text-align:center;
  }

  .quest-toolbar .btn,
  .quest-toolbar .select,
  .share-block-inline,
  .share-block-control,
  .share-block-dropdown,
  .share-block-dropdown summary{
    width:100%;
  }

  .quest-toolbar .select{
    justify-content:space-between;
  }

  .quest-toolbar .select select,
  .share-block-dropdown summary{
    flex:1 1 auto;
  }

  .node-asset-picker-trigger,
  .node-asset-picker-option{
    grid-template-columns:1fr;
  }

  .node-asset-picker-strip{
    width:100%;
  }

  .student-mastery-summary{
    grid-template-columns:1fr;
  }

  .btn,
  .tab,
  input,
  select,
  textarea,
  button{
    min-height:38px;
  }

  .quest-body{
    min-height:calc(100dvh - 210px);
  }

  .canvas-wrap{
    min-height:56vh !important;
  }

  .teacher-quest-floating-actions{
    right:8px;
    bottom:8px;
    max-width:calc(100vw - 16px);
  }

  .teacher-quest-floating-actions .btn,
  .teacher-quest-preview-toggle{
    padding:9px 10px;
  }

  #studentNodeModalCard{
    padding:10px !important;
    gap:8px !important;
  }

  #studentNodeModalHeader{
    align-items:stretch !important;
    flex-direction:column !important;
  }

  #studentNodeModalHeader .row,
  #studentNodeModalFooter{
    justify-content:flex-start !important;
  }

  #studentNodeModalBody{
    padding:10px !important;
    border-radius:10px !important;
  }

  .student-quest-header{
    align-items:stretch;
    flex-direction:column;
    padding:8px 10px;
  }

  .student-quest-toolbar{
    flex-wrap:wrap;
  }

  .student-quest-toolbar .btn{
    flex:1 1 auto;
  }

  #tab-assignments .assignment-tab-layout{
    min-height:auto;
  }

  #gradeGrid{
    min-width:900px !important;
  }
}

@media (max-height: 760px){
  .topbar{
    padding-top:8px;
    padding-bottom:8px;
  }

  .panel-header{
    padding-top:8px;
    padding-bottom:8px;
  }

  .question-editor-card,
  .question-preview-card,
  .question-tag-modal-card,
  .share-settings-card{
    max-height:calc(100vh - 16px);
  }
}

/* Measured Quest toolbar fitting. JS sets --quest-toolbar-fit-scale from real available width. */
.panel-header-quest.quest-fit-measured{
  --quest-toolbar-fit-scale:1;
  flex-wrap:nowrap !important;
  overflow:visible !important;
}

.panel-header-quest.quest-fit-measured .panel-title{
  display:block !important;
  font-size:inherit;
  flex:0 0 auto;
}

.panel-header-quest.quest-fit-measured.quest-fit-hide-title .panel-title{
  display:none !important;
}

.panel-header-quest.quest-fit-measured .quest-toolbar{
  flex:0 0 auto;
  flex-wrap:nowrap !important;
  width:max-content;
  max-width:none;
  overflow:visible !important;
  gap:6px;
  transform:scale(var(--quest-toolbar-fit-scale));
  transform-origin:left center;
  will-change:transform;
}

.panel-header-quest.quest-fit-measured .quest-toolbar > *,
.panel-header-quest.quest-fit-measured .quest-toolbar .btn,
.panel-header-quest.quest-fit-measured .quest-toolbar .select,
.panel-header-quest.quest-fit-measured .share-block-inline,
.panel-header-quest.quest-fit-measured .share-block-control,
.panel-header-quest.quest-fit-measured .share-block-dropdown,
.panel-header-quest.quest-fit-measured .share-block-dropdown summary{
  width:auto !important;
  flex:0 0 auto !important;
  min-width:0;
}

.panel-header-quest.quest-fit-measured .quest-toolbar .divider{
  display:inline-block !important;
}

.panel-header-quest.quest-fit-measured .quest-toolbar .select span,
.panel-header-quest.quest-fit-measured .share-block-label{
  display:inline !important;
  font-size:11px !important;
}

.panel-header-quest.quest-fit-measured .quest-toolbar .btn,
.panel-header-quest.quest-fit-measured .share-settings-btn{
  padding:5px 8px !important;
  font-size:12px !important;
  border-radius:10px;
}

.panel-header-quest.quest-fit-measured #btnRenameMap,
.panel-header-quest.quest-fit-measured #btnAddMap,
.panel-header-quest.quest-fit-measured #btnClearBg,
.panel-header-quest.quest-fit-measured #btnAddNode,
.panel-header-quest.quest-fit-measured #btnStudentFov,
.panel-header-quest.quest-fit-measured #btnFit,
.panel-header-quest.quest-fit-measured #btnMovePath{
  font-size:12px !important;
}

.panel-header-quest.quest-fit-measured #btnRenameMap::after,
.panel-header-quest.quest-fit-measured #btnAddMap::after,
.panel-header-quest.quest-fit-measured #btnClearBg::after,
.panel-header-quest.quest-fit-measured #btnAddNode::after,
.panel-header-quest.quest-fit-measured #btnStudentFov::after,
.panel-header-quest.quest-fit-measured #btnFit::after,
.panel-header-quest.quest-fit-measured #btnMovePath::after,
.panel-header-quest.quest-fit-measured .share-settings-btn::after{
  content:none !important;
}

.panel-header-quest.quest-fit-measured .quest-toolbar .select{
  gap:5px;
  white-space:nowrap;
}

.panel-header-quest.quest-fit-measured .quest-toolbar .select select,
.panel-header-quest.quest-fit-measured .share-block-dropdown summary{
  width:auto;
  min-width:0;
  max-width:150px;
  padding:5px 8px;
  font-size:12px;
  border-radius:10px;
}

.panel-header-quest.quest-fit-measured .share-block-dropdown summary{
  max-width:130px;
}

.panel-header-quest.quest-fit-measured .quest-toolbar input[type="range"]{
  width:60px !important;
}

.panel-header-quest.quest-fit-measured .share-block-control{
  flex-wrap:nowrap !important;
  gap:6px;
  padding:7px 8px;
  border-radius:12px;
}
.panel-header-quest.quest-fit-measured .share-block-control.is-compact{
  gap:4px;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

.class-tag-report-panel{
  padding:16px;
}

.tag-report-card,
.student-tag-report-card{
  display:grid;
  gap:14px;
}

.tag-report-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.tag-report-header-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}

.tag-report-level-toggle{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:4px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.04);
}

.tag-report-level-toggle-label{
  padding:0 4px;
  color:var(--panel-header-text);
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.tag-report-level-btn{
  padding:7px 10px;
  border-radius:9px;
  font-size:12px;
  color:var(--panel-header-text-2, var(--muted));
  background:transparent;
}

.tag-report-level-btn.active{
  color:var(--panel-header-text);
  background:var(--background-2, rgba(255,255,255,.1));
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;
}

.tag-report-default-need,
.tag-report-mini-label{
  display:grid;
  gap:4px;
  color:var(--panel-header-text-2, var(--muted));
  font-size:12px;
}

.tag-report-default-need input,
.tag-report-mini-label input,
.tag-report-mini-label select{
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:7px 9px;
  background:rgba(255,255,255,.06);
  color:var(--text);
}

.tag-report-default-need input{
  width:90px;
}

.tag-report-reshuffle-btn{
  align-self:end;
  padding:7px 10px;
  font-size:12px;
}

.tag-report-mini-label input{
  width:74px;
}

.tag-report-mini-label select{
  width:140px;
}

.tag-report-mini-label select.manual-badge-selected{
  border-color:rgba(76, 211, 142, .75);
  box-shadow:0 0 0 2px rgba(76, 211, 142, .18);
  color:var(--panel-header-text);
}

.tag-report-table{
  display:grid;
  gap:9px;
}

.tag-report-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(255,255,255,.045);
}

.tag-report-row.inactive{
  opacity:.5;
  filter:grayscale(.75);
}

.tag-report-row.earned{
  border-color:rgba(76, 211, 142, .45);
  box-shadow:0 0 0 1px rgba(76, 211, 142, .18) inset;
}

.tag-report-accordion{
  display:grid;
  gap:10px;
}

.tag-report-branch,
.tag-report-leaf{
  min-width:0;
}

.tag-report-branch{
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.025);
  overflow:hidden;
}

.tag-report-branch > summary{
  list-style:none;
  cursor:pointer;
}

.tag-report-branch > summary::-webkit-details-marker{
  display:none;
}

.tag-report-branch > summary::before{
  content:"\203A";
  position:absolute;
  margin:18px 0 0 13px;
  color:var(--panel-header-text-2, var(--muted));
  font-size:22px;
  transform:rotate(0deg);
  transition:transform .16s ease;
  pointer-events:none;
}

.tag-report-branch[open] > summary::before{
  transform:rotate(90deg);
}

.tag-report-children{
  display:grid;
  gap:8px;
  padding:0 10px 10px 24px;
}

.tag-report-tree-row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px 12px 12px 34px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(255,255,255,.04);
}

.tag-report-leaf .tag-report-tree-row{
  padding-left:12px;
}

.tag-report-tree-row.inactive{
  opacity:.58;
  filter:grayscale(.65);
}

.tag-report-tree-row.earned{
  border-color:rgba(76, 211, 142, .45);
  box-shadow:0 0 0 1px rgba(76, 211, 142, .18) inset;
}

.tag-report-tree-main{
  display:grid;
  gap:7px;
  min-width:0;
}

.tag-report-tree-title-line{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.tag-report-level-pill{
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  color:var(--minor-font-1, var(--accent));
  background:rgba(255,255,255,.055);
  font-size:11px;
  font-weight:800;
}

.tag-report-tree-badge-cell{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:9px;
  min-width:230px;
}

.tag-report-badge-check{
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  color:var(--panel-header-text);
  background:rgba(255,255,255,.045);
  font-size:12px;
  font-weight:800;
}

.tag-report-badge-check input{
  accent-color:var(--minor-font-1, var(--accent));
}

.tag-report-main{
  display:grid;
  gap:7px;
  min-width:0;
}

.tag-report-name{
  color:var(--panel-header-text);
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.tag-report-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  color:var(--panel-header-text-2, var(--muted));
  font-size:12px;
}

.tag-report-percent{
  color:var(--minor-font-1, var(--accent));
  font-weight:800;
}

.tag-report-count{
  color:var(--minor-font-2, var(--muted));
}

.tag-report-gauge{
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.1);
}

.tag-report-gauge-fill{
  height:100%;
  border-radius:inherit;
  background:#8b95a7;
  transition:width .18s ease;
}

.tag-report-gauge.red .tag-report-gauge-fill{
  background:linear-gradient(90deg, #bd3f38, #ff756b);
}

.tag-report-gauge.yellow .tag-report-gauge-fill{
  background:linear-gradient(90deg, #b8861f, #ffd166);
}

.tag-report-gauge.green .tag-report-gauge-fill{
  background:linear-gradient(90deg, #2c9f65, #63e6a3);
}

.tag-report-badge-cell{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:9px;
  min-width:210px;
}

.tag-report-badge-thumb{
  width:44px;
  height:44px;
  display:block;
  overflow:visible;
}

.asset-badge-thumb-svg{
  width:100%;
  height:100%;
  display:block;
  overflow:visible;
}

.badge-frame-outer{
  fill:none;
  stroke:rgba(255,255,255,.92);
  stroke-width:4;
  stroke-linejoin:round;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
}

.badge-frame-inner{
  fill:none;
  stroke:rgba(5,8,14,.9);
  stroke-width:2.2;
  stroke-linejoin:round;
}

.badge-frame-bg{
  stroke:none;
}

.tag-report-badge-empty,
.tag-report-earned-label{
  color:var(--panel-header-text-2, var(--muted));
  font-size:12px;
}

.student-tag-report-btn{
  padding:6px 9px;
  font-size:12px;
}

.student-tag-report-overlay{
  position:relative;
  min-height:100%;
}

.student-tag-report-card{
  position:absolute;
  inset:0;
  overflow:auto;
  padding:14px;
  border-radius:18px;
  background:rgba(10,12,18,.96);
  border:1px solid rgba(255,255,255,.12);
}

.student-earned-badges{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}

#student-tab-avatar .student-earned-badges{
  margin-top:0;
}

.student-earned-badges-title{
  margin-bottom:10px;
  color:var(--panel-header-text);
  font-weight:800;
}

.student-earned-badge-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(110px, 1fr));
  gap:10px;
}

.student-earned-badge{
  display:grid;
  justify-items:center;
  gap:7px;
  padding:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  color:var(--panel-header-text-2, var(--muted));
  text-align:center;
  font-size:12px;
  background:rgba(255,255,255,.035);
}

.tag-badge-modal{
  position:fixed;
  inset:0;
  z-index:1500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.58);
}

.tag-badge-modal-card{
  width:min(920px, 96vw);
  max-height:86vh;
  overflow:auto;
  display:grid;
  gap:14px;
  padding:18px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.14);
  background:#111722;
  box-shadow:0 24px 60px rgba(0,0,0,.42);
}

.badge-asset-editor{
  width:100%;
  display:grid;
  gap:12px;
  padding:10px;
}

.badge-editor-title{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  color:var(--panel-header-text);
  font-size:13px;
}

.badge-editor-title span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:12px;
}

.badge-editor-actions{
  display:flex;
  justify-content:flex-start;
  gap:8px;
}

.badge-edit-art-btn{
  min-height:30px;
  padding:6px 12px;
  border-radius:10px;
  font-size:12px;
}

.badge-frame-stage{
  width:min(320px, 100%);
  aspect-ratio:1;
  justify-self:center;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:22px;
  background:
    radial-gradient(circle at 35% 20%, rgba(255,255,255,.08), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.05), rgba(0,0,0,.22));
  cursor:grab;
  touch-action:none;
  user-select:none;
}

.badge-frame-stage:active{
  cursor:grabbing;
}

.badge-frame-preview-svg{
  width:82%;
  height:82%;
  display:block;
  overflow:visible;
}

.badge-frame-hint{
  text-align:center;
}

.badge-color-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}

.badge-color-controls.collapsed{
  display:none;
}

.badge-colors-toggle{
  justify-self:start;
  min-height:28px;
  padding:5px 10px;
  border-radius:10px;
  font-size:12px;
}

.badge-color-control{
  display:grid;
  grid-template-columns:74px 30px 30px minmax(56px, 78px);
  align-items:center;
  gap:6px;
  padding:5px 7px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:11px;
}

.badge-color-control input[type="color"]{
  width:28px;
  height:26px;
  padding:2px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(0,0,0,.22);
  cursor:pointer;
}

.badge-color-control .theme-code{
  width:100%;
  min-width:0;
  height:26px;
  padding:4px 6px;
  border-radius:8px;
  font-size:11px;
}

.badge-eyedropper-btn{
  width:28px;
  height:26px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:var(--text);
  cursor:pointer;
  padding:0;
}

.badge-eyedropper-btn:hover{
  border-color:rgba(255,255,255,.34);
  background:rgba(255,255,255,.13);
}

.badge-eyedropper-btn:disabled{
  opacity:.45;
  cursor:wait;
}

.badge-eyedropper-btn svg{
  width:17px;
  height:17px;
  fill:currentColor;
}

.badge-eyedropper-active .badge-frame-stage,
.badge-eyedropper-active .badge-color-controls{
  opacity:.45;
}

.badge-shape-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(92px, 1fr));
  gap:8px;
}

.badge-shape-option{
  display:grid;
  justify-items:center;
  gap:5px;
  min-width:0;
  padding:8px 6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.04);
  color:var(--text);
  cursor:pointer;
}

.badge-shape-option:hover{
  border-color:rgba(106,169,255,.45);
  background:rgba(106,169,255,.11);
}

.badge-shape-option.active{
  border-color:rgba(245,158,11,.55);
  background:rgba(245,158,11,.13);
}

.badge-shape-option svg{
  width:44px;
  height:44px;
  overflow:visible;
}

.badge-shape-option path{
  fill:rgba(255,255,255,.06);
  stroke:currentColor;
  stroke-width:5;
  stroke-linejoin:round;
}

.badge-shape-option span{
  font-size:11px;
  color:var(--muted);
}

.badge-frame-controls{
  flex-wrap:wrap;
}

.feature-coming-soon{
  position:relative;
  min-height:260px;
  width:100%;
  display:grid;
  place-items:center;
  padding:28px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 10%, rgba(110,231,255,.20), transparent 34%),
    radial-gradient(circle at 78% 30%, rgba(245,158,11,.18), transparent 38%),
    rgba(5,9,16,.76);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}

.feature-coming-soon::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.08), transparent 34%, rgba(255,255,255,.05));
  pointer-events:none;
}

.feature-coming-soon-card{
  position:relative;
  z-index:1;
  max-width:560px;
  text-align:center;
  padding:24px 28px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:rgba(10,14,24,.78);
  box-shadow:0 22px 70px rgba(0,0,0,.35);
}

.feature-coming-soon-kicker{
  margin-bottom:6px;
  color:var(--minor-font-2, rgba(255,255,255,.68));
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.feature-coming-soon-title{
  color:var(--header-font-color, #f5d48b);
  font-family:var(--header-font, inherit);
  font-size:clamp(34px, 5vw, 74px);
  font-weight:900;
  line-height:1;
  text-shadow:0 4px 22px rgba(0,0,0,.35);
}

.feature-coming-soon-note{
  margin-top:12px;
  color:var(--minor-font-1, rgba(255,255,255,.78));
  font-size:14px;
  line-height:1.45;
}

.asset-grid > .feature-coming-soon{
  grid-column:1 / -1;
  min-height:360px;
}

.student-avatar-coming-soon-shell{
  min-height:420px;
  padding:0;
}

.student-avatar-coming-soon-shell .feature-coming-soon{
  min-height:100%;
  border-radius:inherit;
}

.front-page-render{
  position:relative;
  width:100%;
  min-height:100vh;
  overflow:hidden;
  background:#0c1018;
}

.front-page-canvas{
  position:relative;
  width:100%;
  min-height:100vh;
  overflow:hidden;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
}

.front-page-loading{
  min-height:100vh;
  display:grid;
  place-items:center;
  color:var(--panel-header-text);
  font-weight:900;
}

.front-page-loading.small{
  min-height:180px;
}

.front-page-field{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  border:0 solid transparent;
  overflow:hidden;
  transform-origin:center;
}

.front-page-field-text{
  overflow:visible;
}

.front-page-field-text .presentation-slide-element-content-frame{
  overflow:visible;
}

.front-page-field-homeSlice{
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.front-page-field img{
  width:100%;
  height:100%;
  display:block;
  pointer-events:none;
}

.front-page-youtube-frame{
  width:100%;
  height:100%;
  display:block;
  border:0;
  pointer-events:auto;
}

.front-page-field.editable .front-page-youtube-frame{
  pointer-events:none;
}

.front-page-sketch-svg,
.front-page-sketch-draft-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}

.front-page-sketch-draft-layer{
  z-index:9999;
}

.front-page-home-slice-preview{
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden;
}

.presentation-slide-home-slice-content{
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden;
}

.presentation-slide-home-slice-content .front-page-home-slice-preview,
.presentation-slide-element-homeSlice .front-page-home-slice-preview,
.student-presentation-rendered-homeSlice .front-page-home-slice-preview{
  width:100%;
  height:100%;
  min-height:100%;
}

.front-page-home-slice-map{
  min-height:100%;
}

.front-page-home-slice-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.front-page-text-content{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  white-space:pre-wrap;
  word-break:break-word;
  line-height:1.05;
  overflow:visible;
}

.front-page-login-button{
  width:100%;
  height:100%;
  border:0;
  border-radius:inherit;
  background:transparent;
  cursor:pointer;
  font:inherit;
}

.presentation-slide-element-loginButton .front-page-login-button{
  pointer-events:none;
}

.front-page-slide-canvas .front-page-login-button{
  pointer-events:auto;
}

.front-page-slide-canvas .front-page-field-loginButton{
  pointer-events:auto;
}

.front-page-home-slice-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:rgba(245,248,252,.74);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:
    linear-gradient(90deg, rgba(147,184,236,.18), rgba(229,188,118,.12)),
    repeating-linear-gradient(45deg, rgba(255,255,255,.08) 0 8px, transparent 8px 16px);
  border:1px dashed rgba(229,188,118,.58);
}

.front-page-anim-fadeIn{
  opacity:0;
  animation:frontPageFadeIn var(--front-page-anim-duration, 1.2s) ease forwards;
  animation-delay:var(--front-page-anim-delay, 0s);
}

.front-page-anim-float{
  animation:frontPageFloat var(--front-page-anim-duration, 3s) ease-in-out infinite;
  animation-delay:var(--front-page-anim-delay, 0s);
}

.front-page-anim-pulse{
  animation:frontPagePulse var(--front-page-anim-duration, 1.8s) ease-in-out infinite;
  animation-delay:var(--front-page-anim-delay, 0s);
}

@keyframes frontPageFadeIn{
  to{ opacity:1; }
}

@keyframes frontPageFloat{
  0%,100%{ translate:0 0; }
  50%{ translate:0 -8px; }
}

@keyframes frontPagePulse{
  0%,100%{ scale:1; }
  50%{ scale:1.025; }
}

.developer-front-page-preview{
  width:100%;
  aspect-ratio:16 / 9;
  height:auto;
  min-height:0;
  border:0;
  border-radius:0;
  overflow:hidden;
  background:#0c1018;
}

.developer-front-page-preview .front-page-canvas{
  min-height:100%;
  height:100%;
}

.front-page-render-slide{
  display:grid;
  place-items:center;
}

.front-page-render-sections{
  display:block;
  overflow-x:hidden;
  overflow-y:auto;
}

.front-page-section{
  position:relative;
  width:100%;
  min-height:100vh;
  min-height:100dvh;
  overflow:hidden;
  background:#0c1018;
}

.front-page-section-canvas{
  position:absolute;
  left:50%;
  top:50%;
  width:1280px !important;
  height:720px !important;
  min-height:0 !important;
  max-width:none;
  max-height:none;
  overflow:visible;
  transform:translate(-50%, -50%) scale(var(--front-page-slide-scale, 1));
  transform-origin:center;
}

.front-page-render-slide .front-page-slide-canvas{
  width:1280px !important;
  height:720px !important;
  min-height:0 !important;
  max-width:none;
  max-height:none;
  overflow:visible;
  transform:scale(var(--front-page-slide-scale, 1));
  transform-origin:center;
}

.developer-front-page-preview .front-page-field{
  pointer-events:none;
}

.developer-front-page-preview .front-page-render-sections,
.developer-front-page-preview.front-page-render-sections{
  overflow:hidden;
}

.developer-front-page-preview .front-page-section{
  min-height:100%;
  height:100%;
}

.developer-front-page-preview .front-page-section-canvas{
  min-height:0 !important;
  height:720px !important;
}

.front-page-builder-preview-overlay{
  background:#05070d;
}

.front-page-builder-preview-shell{
  min-height:0;
  overflow:hidden;
  background:#05070d;
}

.front-page-builder-preview-render{
  width:100%;
  height:100%;
  min-height:0;
}

.front-page-builder-preview-render.front-page-render-sections{
  overflow-x:hidden;
  overflow-y:auto;
}

.front-page-builder-preview-render .front-page-canvas{
  min-height:0;
}

.front-page-builder-preview-render .front-page-section{
  min-height:100%;
  height:100%;
}

.front-page-builder-preview-render .front-page-section-canvas{
  min-height:0 !important;
  height:720px !important;
}

.front-page-designer-overlay{
  position:fixed;
  inset:0;
  z-index:2147483200;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(4,8,15,.82);
  backdrop-filter:blur(10px);
}

.front-page-designer-card{
  width:min(1600px, 98vw);
  height:min(940px, 96vh);
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(18,26,41,.98), rgba(10,14,24,.98));
  box-shadow:0 30px 90px rgba(0,0,0,.46);
}

.front-page-designer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.1);
}

.front-page-designer-header h2{
  margin:0;
  color:var(--panel-header-text);
}

.front-page-designer-body{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 360px);
  grid-template-areas:"slide editor";
  gap:14px;
  padding:14px;
}

.front-page-editor-stage{
  grid-area:slide;
  min-width:0;
  min-height:0;
  display:grid;
  place-items:center;
  padding:18px;
  overflow:auto;
  background:#05070d;
}

.front-page-editor-canvas{
  position:relative;
  width:min(100%, calc((96vh - 120px) * 1.7778));
  aspect-ratio:16 / 9;
  min-height:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  box-shadow:none;
}

.front-page-editor-canvas.sketch-mode{
  cursor:none;
  touch-action:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}

.front-page-editor-canvas.sketch-mode .front-page-field.editable{
  pointer-events:none;
}

.front-page-field.editable{
  cursor:grab;
  outline:1px dashed rgba(255,255,255,.18);
}

.front-page-field-homeSlice.editable{
  outline:0;
}

.front-page-field.editable .front-page-login-button{
  pointer-events:none;
}

.front-page-field.editable.selected{
  outline:2px solid rgba(229,188,118,.95);
  box-shadow:0 0 0 3px rgba(229,188,118,.18);
}

.front-page-field-homeSlice.editable.selected{
  outline:2px solid rgba(229,188,118,.95);
  box-shadow:0 0 0 3px rgba(229,188,118,.18);
}

.front-page-field-chrome{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.front-page-resize-handle{
  position:absolute;
  right:-1px;
  bottom:-1px;
  width:15px;
  height:15px;
  border-radius:999px 0 8px 0;
  background:rgba(229,188,118,.95);
  cursor:nwse-resize;
  box-shadow:0 0 0 2px rgba(0,0,0,.32);
}

.front-page-editor-side{
  grid-area:editor;
  min-height:0;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:12px;
  padding:14px;
  border-left:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.035);
}

.front-page-tool-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.front-page-editor-panel{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:rgba(0,0,0,.18);
}

.front-page-inspector-title{
  color:var(--panel-header-text);
  font-weight:950;
}

.front-page-editor-field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}

.front-page-editor-field,
.front-page-check{
  display:grid;
  gap:4px;
  color:rgba(245,248,252,.82);
  font-size:.82rem;
  font-weight:850;
}

.front-page-editor-field.wide{
  grid-column:1 / -1;
}

.front-page-editor-field input,
.front-page-editor-field textarea,
.front-page-editor-field select{
  width:100%;
  min-width:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  padding:7px 8px;
  color:#f8fafc;
  background:rgba(5,7,13,.72);
}

.front-page-editor-field textarea{
  min-height:80px;
  resize:vertical;
}

.front-page-check{
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px;
}

.front-page-inspector-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.front-page-empty-inspector{
  padding:10px;
  border:1px dashed rgba(255,255,255,.16);
  border-radius:10px;
  color:rgba(245,248,252,.68);
  font-weight:800;
}

@media (max-width: 760px){
  .dynamo-stage-content{
    grid-template-columns:1fr;
  }

  .tag-report-row{
    grid-template-columns:1fr;
  }

  .tag-report-tree-row{
    grid-template-columns:1fr;
  }

  .tag-report-badge-cell{
    justify-content:flex-start;
    min-width:0;
  }

  .tag-report-tree-badge-cell{
    justify-content:flex-start;
    min-width:0;
  }

  .tag-report-children{
    padding-left:14px;
  }

  .front-page-designer-body{
    grid-template-columns:1fr;
  }

  .front-page-editor-side{
    max-height:42vh;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.1);
  }

}
