
:root{
  --ind:#4f46e5; --ind2:#7c3aed; --bg:#f8fafc; --card:#fff; --tx:#0f172a; --mut:#64748b;
  --bd:#e2e8f0; --ok:#16a34a; --warn:#d97706; --err:#dc2626;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--tx);background:var(--bg);line-height:1.55}
a{color:var(--ind);text-decoration:none}
code{background:#eef2ff;padding:2px 6px;border-radius:6px;font-size:.9em}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.muted{color:var(--mut)} .small{font-size:.85em} .center{text-align:center}
.btn{display:inline-block;border:0;border-radius:10px;padding:10px 18px;font-size:.95rem;font-weight:600;cursor:pointer;background:#e2e8f0;color:var(--tx)}
.btn.primary{background:linear-gradient(135deg,var(--ind),var(--ind2));color:#fff}
.btn.ghost{background:transparent;border:1px solid var(--bd);color:var(--tx)}
.btn.sm{padding:7px 12px;font-size:.85rem}
.btn.lg{padding:14px 26px;font-size:1.05rem}
.btn:disabled{opacity:.6;cursor:wait}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:20px}
.logo{font-weight:800;font-size:1.25rem;color:var(--tx)}
.logo span{background:linear-gradient(135deg,var(--ind),var(--ind2));-webkit-background-clip:text;background-clip:text;color:transparent}
.logo.big{font-size:2.2rem;margin:0 0 8px}
h1{font-size:1.9rem;margin:0 0 10px} h2{font-size:1.4rem;margin:18px 0 10px}
h3{margin:0 0 6px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tag{font-size:.8rem;color:var(--mut);background:#f1f5f9;padding:3px 8px;border-radius:99px;white-space:nowrap}
.loading{padding:60px;text-align:center;color:var(--mut)}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(80px);background:#0f172a;color:#fff;padding:10px 18px;border-radius:10px;font-size:.9rem;opacity:0;transition:.25s;z-index:99;max-width:90vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* landing */
.landing{background:var(--bg)}
.nav{position:sticky;top:0;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--bd);z-index:10}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px}
.nav-links{display:flex;gap:16px;align-items:center}
.hero{background:linear-gradient(135deg,#eef2ff 0%,#faf5ff 60%,#fff 100%);padding:80px 0 60px}
.hero h1{font-size:2.9rem;line-height:1.15;max-width:640px}
.hero em{font-style:normal;background:linear-gradient(135deg,var(--ind),var(--ind2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .sub{font-size:1.15rem;color:var(--mut);max-width:620px;margin:18px 0 26px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-note{margin-top:14px;color:var(--mut);font-size:.9rem}
.section{padding:60px 0}
.section.alt{background:#fff;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
.step{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--ind),var(--ind2));color:#fff;display:grid;place-items:center;font-weight:700;margin-bottom:10px}
.pricing{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}
.plan{text-align:center}
.plan .price{font-size:2.4rem;font-weight:800;margin:6px 0}
.plan .price span{font-size:1rem;color:var(--mut);font-weight:500}
.plan .per{font-size:.85rem;color:var(--mut);margin-bottom:10px}
.plan ul{list-style:none;padding:0;margin:14px 0 18px;text-align:left;color:#334155}
.plan li{padding:5px 0;border-bottom:1px dashed #f1f5f9}
.plan li:before{content:"✓ ";color:var(--ok);font-weight:700}
.plan.hot{border:2px solid var(--ind);position:relative;box-shadow:0 10px 30px rgba(79,70,229,.15)}
.plan.hot:before{content:"Most popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--ind);color:#fff;font-size:.75rem;font-weight:700;padding:3px 12px;border-radius:99px}
.footer{padding:30px 0;border-top:1px solid var(--bd);display:block}
.footer .wrap{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.9rem}

/* app shell */
body.app{background:var(--bg)}
.appbar{background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:10}
.appbar-inner{display:flex;align-items:center;justify-content:space-between;height:58px}
.appbar-links{display:flex;gap:14px;align-items:center}
.ab-link{font-size:.9rem;font-weight:600}
.who{font-size:.85rem;color:var(--mut)}
.dash{padding:26px 0}
.dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:12px 18px;min-width:130px}
.stat b{display:block;font-size:1.5rem}
.stat span{font-size:.8rem;color:var(--mut)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.appcard-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.classcode{margin:8px 0;font-size:.95rem}
.classcode b{font-family:monospace;font-size:1.1rem;letter-spacing:1px}
.codecard{text-align:center;margin:14px 0}
.bigcode{font-family:monospace;font-size:2.6rem;font-weight:800;letter-spacing:8px;background:linear-gradient(135deg,var(--ind),var(--ind2));-webkit-background-clip:text;background-clip:text;color:transparent;margin:6px 0}
.empty{grid-column:1/-1;text-align:center;color:var(--mut);padding:30px;background:#fff;border:1px dashed var(--bd);border-radius:14px}
.tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;margin-bottom:18px}
.tbl th{background:#f1f5f9;text-align:left;font-size:.8rem;color:var(--mut);padding:9px 14px}
.tbl td{padding:9px 14px;border-top:1px solid #f1f5f9;font-size:.92rem}
.sub2{margin:26px 0 10px;font-size:1.15rem}

/* auth */
.authwrap{min-height:calc(100vh - 58px);display:grid;place-items:center;padding:30px 16px}
.auth{width:100%;max-width:420px}
.tabs{display:flex;gap:8px;margin:14px 0 18px}
.tab{flex:1;padding:9px;border:1px solid var(--bd);background:#fff;border-radius:10px;cursor:pointer;font-weight:600;color:var(--mut)}
.tab.on{border-color:var(--ind);color:var(--ind);background:#eef2ff}
.stack{display:flex;flex-direction:column;gap:10px}
input,textarea,select{font:inherit;padding:11px 13px;border:1px solid var(--bd);border-radius:10px;background:#fff;width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid #c7d2fe;border-color:var(--ind)}
.err{border-color:var(--err)}

/* builder */
.builderwrap{display:flex;min-height:calc(100vh - 58px)}
.builder{display:grid;grid-template-columns:400px 1fr;flex:1;min-height:0}
.pane{display:flex;flex-direction:column;min-height:0}
.chatpane{border-right:1px solid var(--bd);background:#fff}
.chat-head{padding:16px 18px 10px;border-bottom:1px solid var(--bd)}
.chat-head h2{margin:0;font-size:1.2rem}
.chat-share{font-size:.8rem;color:var(--mut);margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.chat-share code{word-break:break-all}
.msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:88%;padding:10px 14px;border-radius:14px;font-size:.95rem;white-space:pre-wrap;word-wrap:break-word}
.msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--ind),var(--ind2));color:#fff;border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:#f1f5f9;border-bottom-left-radius:4px}
.warnbox{margin-top:8px;font-size:.82rem;color:var(--warn);background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px}
.chat-in{display:flex;gap:8px;padding:12px;border-top:1px solid var(--bd)}
.chat-in textarea{resize:none}
.chat-in .btn{white-space:nowrap}
.prevpane{background:var(--bg)}
.prev-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--bd)}
.prev-head select{width:auto}
iframe{flex:1;border:0;background:#fff;width:100%}
.prev-box iframe{height:420px;border:1px solid var(--bd);border-radius:12px}

/* review */
.review{padding:26px 0}
.review-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.review-head h1{margin:0}
.review-grid{display:grid;grid-template-columns:1fr 340px;gap:18px}
.comment{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:10px 14px;margin-bottom:8px}
.comment p{margin:4px 0 0}
.card .plan-note{margin-top:6px}

@media(max-width:860px){
  .grid3,.pricing,.review-grid{grid-template-columns:1fr}
  .builder{grid-template-columns:1fr}
  .builderwrap{flex-direction:column;min-height:0}
  .chatpane{border-right:0;border-bottom:1px solid var(--bd);max-height:52vh}
  .prevpane{min-height:48vh}
  .hero h1{font-size:2.1rem}
  .nav-links a:not(.btn){display:none}
}

/* landing imagery v2 */
.hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center}
.hero-copy{max-width:560px}
.hero-mock{background:#fff;border:1px solid var(--bd);border-radius:16px;box-shadow:0 24px 60px rgba(79,70,229,.18);overflow:hidden;font-size:.86rem}
.mock-bar{display:flex;align-items:center;gap:6px;background:#f1f5f9;border-bottom:1px solid var(--bd);padding:10px 12px}
.dot{width:10px;height:10px;border-radius:50%}
.dot.r{background:#f87171}.dot.y{background:#fbbf24}.dot.g{background:#34d399}
.mock-url{margin-left:8px;background:#fff;border:1px solid var(--bd);border-radius:99px;padding:3px 12px;font-size:.78rem;color:var(--mut);flex:1;text-align:center;max-width:250px}
.mock-body{padding:16px;display:grid;gap:12px}
.chat{display:grid;gap:8px}
.bubble{padding:9px 12px;border-radius:12px;max-width:92%}
.bubble.s{background:#eef2ff;border:1px solid #e0e7ff;justify-self:start;border-bottom-left-radius:4px}
.bubble.a{background:#f8fafc;border:1px solid var(--bd);justify-self:end;border-bottom-right-radius:4px}
.bubble.a.link{background:linear-gradient(135deg,var(--ind),var(--ind2));color:#fff;font-family:ui-monospace,monospace;font-size:.8rem}
.sparkle{color:var(--ind);font-weight:800;margin-right:4px}
.preview{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:12px;box-shadow:0 4px 14px rgba(15,23,42,.06)}
.pv-head{display:flex;justify-content:space-between;font-weight:700;font-size:.85rem;margin-bottom:8px;gap:8px}
.pv-head span{color:var(--mut);font-weight:500;font-size:.75rem}
.pv-q{font-size:.85rem;margin-bottom:8px}
.pv-opt{border:1px solid var(--bd);border-radius:8px;padding:6px 10px;font-size:.82rem;margin-bottom:6px;color:#334155}
.pv-opt:last-child{margin-bottom:0}
.pv-opt.sel{border-color:var(--ok);background:#f0fdf4;color:#166534;font-weight:600}
.mock-badge{justify-self:start;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:.75rem;font-weight:600;padding:5px 10px;border-radius:99px}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.gcard{background:#fff;border:1px solid var(--bd);border-radius:14px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.gcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(15,23,42,.1)}
.gthumb{height:150px;display:grid;place-items:center;position:relative;font-size:3rem;background:#f8fafc}
.gthumb.space{background:radial-gradient(120px 80px at 72% 28%,rgba(124,58,237,.55),transparent),linear-gradient(160deg,#0f172a,#1e1b4b)}
.gthumb.draw{background:linear-gradient(160deg,#fff7ed,#fef9c3)}
.gthumb.timer{background:linear-gradient(160deg,#ecfeff,#e0f2fe)}
.gthumb.story{background:linear-gradient(160deg,#fdf2f8,#fce7f3)}
.gq{position:absolute;top:8px;right:10px;font-size:.7rem;color:#cbd5e1;font-family:ui-monospace,monospace}
.gline{position:absolute;bottom:10px;width:84%;text-align:center;font-size:.72rem;color:#9d174d;font-style:italic}
.tringo{width:84px;height:84px;border-radius:50%;background:#fff;border:6px solid #0ea5e9;display:grid;place-items:center;font-family:ui-monospace,monospace;font-weight:800;color:#0369a1;font-size:1.15rem;box-shadow:0 6px 16px rgba(14,165,233,.25)}
.gmeta{padding:12px 14px}
.gmeta b{display:block;font-size:.95rem}
.gmeta span{font-size:.8rem;color:var(--mut)}

.band{background:#0f172a;color:#fff}
.band-inner{display:grid;grid-template-columns:1.08fr .92fr;gap:40px;align-items:center;max-width:1080px;margin:0 auto;padding:56px 20px}
.band img{width:100%;border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.45);display:block}
.band-copy h2{color:#fff;font-size:1.8rem;margin-bottom:8px}
.band-copy p{color:#cbd5e1;margin:0}
.chips{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:8px}
.chips li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:99px;padding:7px 14px;font-size:.9rem;color:#e2e8f0;width:fit-content}

.photorow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.photorow figure{margin:0}
.photorow img{width:100%;height:210px;object-fit:cover;border-radius:12px;display:block;border:1px solid var(--bd)}
.photorow figcaption{font-size:.85rem;color:var(--mut);padding:8px 4px 0;text-align:center}

@media(max-width:920px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-mock{max-width:480px}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .band-inner{grid-template-columns:1fr}
  .photorow{grid-template-columns:1fr}
}

/* individual tier v3 */
.tier-tag{display:inline-block;font-size:.62rem;background:#eef2ff;color:var(--ind);border:1px solid #e0e7ff;border-radius:99px;padding:2px 8px;vertical-align:middle;margin-left:5px;text-transform:uppercase;letter-spacing:.04em}
.plan h3{font-size:1.05rem}
@media(max-width:980px){.pricing{grid-template-columns:repeat(2,1fr)}}

/* admin tabs + password recovery + limit hints */
.atabs{display:flex;gap:4px;flex-wrap:wrap;margin:14px 0 10px;border-bottom:1px solid #e2e8f0;padding-bottom:8px}
.atab{border:0;background:transparent;font:600 .85rem/1.2 system-ui,sans-serif;padding:6px 12px;color:#64748b;cursor:pointer;border-radius:8px}
.atab.on{background:#eef2ff;color:#4338ca}
.actrow{padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:.85rem}
.actrow b{margin-right:6px;color:#334155}
.auth-links{margin-top:10px;text-align:right}
.auth-links a{color:#6366f1;font-size:.8rem;text-decoration:none}
.resetbox{border-top:1px solid #e2e8f0;margin-top:12px;padding-top:12px}
.resetbox p{margin:6px 0}
.tbl .actcell{white-space:nowrap}
.tbl .actcell .btn{margin-left:4px}

/* ---------- new-app vision wizard ---------- */
.wiz-ov { position: fixed; inset: 0; background: rgba(15, 23, 42, .55); display: flex; align-items: center; justify-content: center; z-index: 50; padding: 18px; }
.wiz-card { background: #fff; border-radius: 16px; width: 100%; max-width: 620px; max-height: 92vh; display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(15,23,42,.25); overflow: hidden; }
.wiz-top { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-bottom: 1px solid #e2e8f0; }
.wiz-step { font-size: 13px; font-weight: 600; color: #64748b; }
.wiz-x { border: 0; background: #f1f5f9; border-radius: 8px; width: 30px; height: 30px; cursor: pointer; color: #475569; font-size: 13px; }
.wiz-x:hover { background: #e2e8f0; }
.wiz-body { padding: 18px; overflow-y: auto; flex: 1; }
.wiz-foot { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid #e2e8f0; }
.wiz-flex { flex: 1; }
.wiz-h { margin: 0 0 6px; font-size: 20px; }
.wiz-sub { margin: 0 0 14px; color: #64748b; font-size: 14px; }
.wiz-q { font-weight: 600; font-size: 14px; margin: 16px 0 8px; color: #0f172a; }
.wiz-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.wiz-card { border: 2px solid #e2e8f0; background: #fff; border-radius: 12px; padding: 12px; text-align: left; cursor: pointer; font-size: 14px; font-weight: 500; display: flex; align-items: center; gap: 10px; }
.wiz-card .wiz-ico { font-size: 20px; }
.wiz-card:hover { border-color: #94a3b8; }
.wiz-card.on { border-color: #4f46e5; background: #eef2ff; }
.wiz-other { margin-top: 10px; }
.wiz-other.hid { display: none; }
.wiz-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.wiz-chip { border: 2px solid #e2e8f0; background: #fff; border-radius: 999px; padding: 7px 14px; font-size: 13.5px; font-weight: 500; cursor: pointer; }
.wiz-chip:hover { border-color: #94a3b8; }
.wiz-chip.on { border-color: #4f46e5; background: #eef2ff; color: #3730a3; }
.wiz-chip.small { font-size: 12.5px; padding: 5px 11px; }
.wiz-feats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 14px; }
.wiz-feat { font-size: 13.5px; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.wiz-feat:hover { background: #f8fafc; }
.wiz-feat input { accent-color: #4f46e5; width: 15px; height: 15px; }
.wiz-pals { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.wiz-pal { border: 2px solid #e2e8f0; background: #fff; border-radius: 10px; padding: 8px 6px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; }
.wiz-pal:hover { border-color: #94a3b8; }
.wiz-pal.on { border-color: #4f46e5; background: #eef2ff; }
.wiz-sw { display: flex; border-radius: 999px; overflow: hidden; width: 70%; border: 1px solid rgba(0,0,0,.08); }
.wiz-sw i { display: block; width: 12px; height: 22px; }
.wiz-review { border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; }
.wiz-row { display: flex; gap: 12px; padding: 9px 14px; font-size: 13.5px; border-bottom: 1px solid #f1f5f9; }
.wiz-row:last-child { border-bottom: 0; }
.wiz-k { width: 92px; flex-shrink: 0; color: #64748b; font-weight: 600; }
.wiz-v { color: #0f172a; }
.wiz-body input, .wiz-body textarea { width: 100%; box-sizing: border-box; }
@media (max-width: 560px) {
  .wiz-grid, .wiz-feats { grid-template-columns: 1fr; }
  .wiz-pals { grid-template-columns: repeat(3, 1fr); }
}

.gcard a,.gallery a{display:block}
.glive{position:absolute;top:0;left:0;border:0;transform-origin:0 0;pointer-events:none;background:#fff;z-index:1}
.gthumb.live{background:linear-gradient(160deg,#0f172a,#1e293b)}
.gthumb-static{z-index:1}
.gbadge{position:absolute;top:8px;left:10px;z-index:2;font-size:.62rem;font-weight:800;letter-spacing:.08em;background:#10b981;color:#fff;padding:2px 8px;border-radius:99px;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.wiz-note{background:#fef3c7;border:1px solid #fcd34d;color:#92400e;padding:10px 14px;border-radius:10px;font-size:.85rem;margin-bottom:14px}
/* teacher dashboard */
.dash2col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:16px}
@media(max-width:820px){.dash2col{grid-template-columns:1fr}}
.panel{padding:16px}
.tmeta{display:flex;gap:12px;margin:8px 0;flex-wrap:wrap;align-items:center}
.tpill{padding:2px 10px;border-radius:999px;font-size:.75rem;background:#e0e7ff;color:#3730a3}
.tpill.hot{background:#fee2e2;color:#b91c1c}
.trecent{margin:10px 0;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.trec{font-size:.83rem;padding:2px 0}
.feed{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px dashed #e2e8f0;font-size:.85rem}
.feed:last-child{border-bottom:0}
.feed-ico{font-size:1rem}


/* feedback */
.fbform{display:grid;gap:10px;max-width:560px}
.fbform select,.fbform textarea{padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;background:#fff}
.fbitem{padding:14px 0;border-bottom:1px solid #e2e8f0}
.fbitem:last-child{border-bottom:0}
.fbitem-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.fbbody{margin:6px 0;font-size:.9rem;color:#334155}
.fbst{padding:2px 10px;border-radius:999px;font-size:.72rem;font-weight:600}
.fbst.st-open{background:#fef3c7;color:#92400e}
.fbst.st-ans{background:#dbeafe;color:#1e40af}
.fbst.st-fix{background:#dcfce7;color:#166534}
.fbst.st-res{background:#e2e8f0;color:#475569}
.fbreply{margin-top:8px;padding:10px 12px;background:#f1f5f9;border-left:3px solid #6366f1;border-radius:8px;font-size:.87rem}
.fbbadge{background:#ef4444;color:#fff;border-radius:999px;padding:1px 7px;font-size:.7rem;margin-left:5px}
.fbbtns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.fbactions{margin-top:6px}

/* admin full control */
.people-search{padding:9px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;width:100%;max-width:380px;margin-bottom:12px}
tr.row-off td{opacity:.55}
.actcell .btn{margin:2px 3px 2px 0}
.membox{padding:10px 4px;display:grid;gap:6px}
.memline{display:flex;gap:10px;align-items:center;padding:6px 8px;background:#f8fafc;border-radius:8px}
.settings-box{max-width:640px;display:grid;gap:8px}
.setlabel{font-size:.8rem;font-weight:600;color:#475569}
.setinput{padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit;width:100%;max-width:420px;background:#fff}
.setgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}

/* ---- landing: live + animated extras ---- */
.gallery a.gcard{display:block;text-decoration:none;color:inherit}
.typecur{display:inline-block;color:#6366f1;animation:blinkc 1s steps(1) infinite;margin-left:2px}
@keyframes blinkc{50%{opacity:0}}
.hero-mock{animation:herofloat 7s ease-in-out infinite}
@keyframes herofloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.pv-opt{transition:all .5s ease}
.draw-path{stroke-dasharray:340;stroke-dashoffset:340;animation:drawloop 6s ease-in-out infinite}
@keyframes drawloop{0%{stroke-dashoffset:340;opacity:0}25%{opacity:1}55%{stroke-dashoffset:0}85%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.tringo{animation:ringpulse 2s ease-in-out infinite}
@keyframes ringpulse{50%{transform:scale(1.05)}}
.band-mock{background:linear-gradient(120deg,#1e1b4b 0%,#0f172a 65%)}
.band-mock-inner{display:grid;grid-template-columns:1.35fr 1fr;gap:34px;align-items:center}
.band-mock-inner img{width:100%;border-radius:16px;border:1px solid rgba(99,102,241,.5);box-shadow:0 22px 55px rgba(2,6,23,.5)}
.band-mock .band-copy h2{color:#e0e7ff}
.band-mock .band-copy p{color:#c7d2fe}
.gbadge{position:absolute;top:8px;right:8px;background:#10b981;color:#052e16;font-size:.62rem;font-weight:700;letter-spacing:.05em;padding:3px 8px;border-radius:99px}
.gthumb-static{position:absolute;inset:0;display:grid;place-items:center;font-size:2.6rem}
@media(max-width:860px){.band-mock-inner{grid-template-columns:1fr}}
