.auth-screen{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 80% -10%,#dbeafe 0%,transparent 60%),radial-gradient(900px 500px at -10% 110%,#e9d5ff 0%,transparent 60%),linear-gradient(180deg,#f8fafc,#eef2ff 60%,#f8fafc)}.auth-card{width:92vw;max-width:480px;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #e5e7eb;border-radius:20px;box-shadow:0 20px 50px #0f172a14,0 10px 20px #0f172a0d;padding:28px}.auth-card .brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}.auth-card .brand-logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#6366f1,#22d3ee);box-shadow:0 6px 16px #22d3ee59}.auth-card h2{margin:0;font-size:22px;letter-spacing:.2px;color:#0f172a}.auth-subtitle{margin:6px 0 18px;color:#64748b;font-size:13px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:#475569;margin-bottom:6px}.field input{width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;outline:none;transition:box-shadow .15s ease,border-color .15s ease}.field input:focus{border-color:#6366f1;box-shadow:0 0 0 4px #6366f11f}.auth-actions{margin-top:16px;display:flex;gap:10px;align-items:center;justify-content:space-between}.btn{appearance:none;border:none;border-radius:12px;padding:11px 14px;font-weight:600;cursor:pointer}.btn.primary{background:#111827;color:#fff}.btn.primary:disabled{opacity:.7;cursor:not-allowed}.link{background:none;color:#6366f1;text-decoration:underline;padding:0}.error-text{margin-top:10px;color:#ef4444;font-size:13px}.brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:12px}.brand-logo-img{height:56px;width:auto;object-fit:contain;display:block}.brand h2{margin:0;font-size:1.4rem;font-weight:700;color:#0f172a}body{margin:0;background:#fff;color:#111;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.topbar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#000;color:#fff;position:sticky;top:0;border-bottom:1px solid #000}.container{padding:16px;max-width:960px;margin:0 auto}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;width:100%;max-width:480px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px}.metric-card.action{display:flex;align-items:center;justify-content:center}.metric-value{font-size:28px;font-weight:800;line-height:1}.metric-label{color:#6b7280;font-size:12px;margin-top:6px}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:100%;max-width:520px;background:#fff;color:#111;border:1px solid #e5e7eb;border-radius:12px;padding:16px;box-shadow:0 10px 30px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modal-close{background:transparent;border:none;font-size:22px;line-height:1;cursor:pointer;color:#111}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.metric-card{position:relative;transition:background-color .12s ease,transform 90ms ease;background:#f3f4f6}.metric-card:hover{background:#e5e7eb}.metric-card.selected{background:#d1d5db;outline:1px solid #9ca3af}.rte-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.rte-toolbar button{padding:6px 10px}.rte-toolbar .rte-inline{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb}.rte{min-height:260px;border:1px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff}.rte:empty:before{content:attr(data-placeholder);color:#9ca3af}.rte img{max-width:100%;height:auto}.rte .video-wrap{margin:8px 0}.content-pager{display:flex;align-items:center;gap:8px;margin-bottom:8px}.content-pager .page-ind{font-weight:600}.content-pager .grow{flex:1}.list{display:grid;gap:8px}.list-row{display:flex;gap:10px;align-items:stretch}.list-grow{flex:1}.list-actions{display:flex;gap:6px;align-items:flex-start}.field{display:grid;gap:6px;margin-bottom:10px}.field.inline{grid-template-columns:180px 1fr;align-items:center}.field label{font-size:12px;color:#6b7280}.field input,.field textarea,.field select{border:1px solid #e5e7eb;border-radius:6px;padding:8px;background:#fff;width:100%}.field textarea{min-height:90px;resize:vertical}.option-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.opt-check{display:inline-flex;align-items:center;gap:6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.block{display:block;width:100%}.chip{display:inline-flex;align-items:center;gap:6px;background:#eef2ff;color:#4338ca;padding:4px 8px;border-radius:999px;margin:4px 6px 0 0}.chip .chip-x{border:0;background:transparent;cursor:pointer}.hint{margin-top:6px;font-size:12px;color:#6b7280}.hint.warn{color:#b45309}.toast{position:fixed;bottom:16px;right:16px;background:#111827;color:#fff;padding:10px 12px;border-radius:8px;box-shadow:0 10px 30px #00000040}.btn.secondary{background:#f3f4f6;color:#111827}.student-home-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.student-home-title{font-size:1.6rem;font-weight:600;color:#111827}.student-home-subtitle{font-size:.9rem;color:#6b7280}.student-home-actions{display:flex;gap:8px}.student-home-button{padding:8px 16px;font-size:.9rem;border-radius:9999px;border:1px solid #2563eb;background-color:#2563eb;color:#fff;cursor:pointer;transition:background-color .15s,box-shadow .15s,transform .05s}.student-home-button.secondary{background-color:#fff;color:#2563eb}.student-home-button:hover{background-color:#1d4ed8;box-shadow:0 4px 10px #2563eb4d}.student-home-button.secondary:hover{background-color:#eff6ff}.student-home-button:active{transform:translateY(1px)}.student-module-title-row{display:flex;align-items:baseline;gap:10px}.student-module-title{font-size:1.05rem;font-weight:600;color:#111827}.student-module-code{font-size:.85rem;color:#6b7280}.student-module-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;font-size:.85rem;color:#4b5563}.student-module-meta span{display:inline-flex;align-items:center;gap:4px}.student-module-empty{margin-top:24px;padding:16px;border-radius:8px;border:1px dashed #d1d5db;background-color:#f9fafb;font-size:.9rem;color:#6b7280}.card{background-color:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:18px 20px;box-shadow:0 6px 18px #0f172a0f}.card h2{margin-top:0;margin-bottom:10px;font-size:1.4rem;font-weight:600;color:#111827}.card p{font-size:.95rem;color:#4b5563}.list-item{border-radius:10px;border:1px solid #e5e7eb;padding:12px 14px;background-color:#fff;display:flex;flex-direction:column;gap:4px;transition:box-shadow .15s ease,border-color .15s ease,transform .05s ease}.clickable{cursor:pointer}.list-item.clickable:hover{box-shadow:0 4px 12px #0f172a14;border-color:#d1d5db;transform:translateY(-1px)}.list-item-main{font-size:.98rem;color:#111827}.list-item-main span{font-size:.9rem;color:#6b7280;margin-left:4px}.list-item-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:#4b5563}.card>p:first-of-type{margin-top:6px;margin-bottom:8px}.tab-panel{margin-top:8px}.tab-panel p{font-size:.95rem;color:#4b5563;margin-bottom:6px}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase}.status-pill.green{background-color:#ecfdf3;color:#166534}.card h2{margin-top:8px;margin-bottom:10px;font-size:1.3rem;font-weight:600;color:#111827}.card h3{margin-top:4px;margin-bottom:8px;font-size:1rem;font-weight:600;color:#111827}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-sub p{margin:0 0 8px;font-size:.95rem;color:#111827}.hint-popup{margin-top:8px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background-color:#eff6ff;border:1px solid #bfdbfe;font-size:.9rem;color:#1f2933}.hint-popup strong{display:block;margin-bottom:4px}.tab-panel ul{padding-left:1.1rem;margin:6px 0 0}.tab-panel li{margin-bottom:4px}.tab-panel a{color:#2563eb;text-decoration:none;font-size:.9rem}.tab-panel a:hover{text-decoration:underline}.btn.primary{background-color:#16a34a;border-color:#16a34a;color:#fff;margin-top:4px}.btn.primary:hover{background-color:#15803d}.btn:disabled{opacity:.45;cursor:default;box-shadow:none}.student-screen-root{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px 16px;background-color:#edf0f8;box-sizing:border-box}.student-screen-card{width:100%;max-width:980px;height:80vh;min-height:80vh;max-height:80vh;background-color:#fff;border-radius:18px;border:1px solid rgba(148,163,184,.4);padding:18px 20px 20px;box-shadow:0 18px 45px #0f172a73,0 0 0 1px #0f172a26;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.student-screen-card h2{margin-top:4px;margin-bottom:10px;font-size:1.3rem;font-weight:600;color:#0f172a}.student-screen-card h3{margin-top:4px;margin-bottom:8px;font-size:1rem;font-weight:600;color:#0f172a}.student-screen-card>.tabs+.tab-panel,.student-screen-card>.tab-panel,.student-screen-card>.vertical-list{flex:1;overflow-y:auto}.student-screen-card>.btn.link{margin-bottom:4px}.student-screen-card .tab-panel .pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid #e5e7eb}.student-screen-card .tab-panel .pager span{font-size:.85rem;color:#6b7280}.student-screen-card .content-html{font-size:.95rem;color:#111827;line-height:1.5}.student-screen-card .tab-panel .btn.link{border-radius:9999px;padding:4px 10px;border:1px solid #bfdbfe;background-color:#eff6ff;color:#1d4ed8;font-size:.8rem;box-shadow:0 2px 6px #2563eb40}.student-screen-card .tab-panel .btn.link:hover{background-color:#dbeafe;text-decoration:none}.student-screen-card .tab-panel .btn.link:active{box-shadow:0 1px 3px #2563eb4d}:root{--bg: #0f172a;--panel: #111827;--ink: #e5e7eb;--muted: #94a3b8;--accent: #22d3ee}.tabs{display:flex;gap:8px;margin-top:12px}.tab{padding:6px 12px;border-radius:8px;background:#0f172a;border:1px solid #1f2937;color:var(--ink)}.tab.disabled{opacity:.5;pointer-events:none}textarea,input{width:100%;padding:10px;border-radius:8px;border:1px solid #1f2937;background:#0f172a;color:var(--ink)}.status{color:var(--muted);margin-top:8px}.table th,.table td{border-bottom:1px solid #1f2937;padding:8px}.btn{background:#0f172a;border:1px solid #1f2937;color:var(--ink);padding:8px 12px;border-radius:8px;cursor:pointer}.btn.primary{border-color:var(--accent)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#fff;color:#111;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-y:auto}.topbar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#000;color:#fff;position:sticky;top:0;border-bottom:1px solid #000;z-index:20}.topbar .brand{font-weight:800;letter-spacing:.4px}.topbar .avatar{width:28px;height:28px;border-radius:999px;background:#222}.topbar .menu{position:absolute;right:0;top:44px;width:260px;background:#fff;color:#111;border:1px solid #e5e7eb;border-radius:10px;padding:8px}.topbar .menu .menu-title{font-size:12px;color:#6b7280;margin:4px 8px}.topbar .menu button{width:100%;background:transparent;border:0;color:#111;padding:8px;text-align:left;border-radius:8px}.topbar .menu button:hover{background:#f3f4f6}.topbar .logo{height:50px;display:block}.container{max-width:960px;margin:0 auto;padding:24px 16px 40px}.center{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:24px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;width:100%}.card h2{margin:0 0 8px}label{font-size:14px;color:#374151;display:block;margin-bottom:6px}input,select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #d1d5db;background:#fff;color:#111}.field{margin:12px 0}.row{display:flex;gap:12px}.btn{background:#000;color:#fff;border:1px solid #000;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:600}.btn.secondary{background:#fff;color:#111;border-color:#d1d5db}a{color:#111;text-decoration:underline}.helper{color:#6b7280;font-size:12px;margin-top:8px}.table{width:100%;border-collapse:collapse;table-layout:fixed}.table th,.table td{border-bottom:1px solid #e5e7eb;padding:8px;vertical-align:middle}.table th{text-align:left;font-weight:600;color:#374151}.table .cell-actions{width:120px}.table .cell-actions .btn{width:100%;display:inline-flex;justify-content:center;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-wrap{overflow-x:auto}@media(max-width:640px){.table .cell-actions{width:96px}}.card.centered{max-width:960px;margin:0 auto}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.search-inline{min-width:260px}.search-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #d1d5db;background:#fff;color:#111}@media(max-width:640px){.search-inline{min-width:160px}}.metric-card.active{outline:2px solid #111827;outline-offset:-2px}.cell-actions .btn{width:100%}.status-dot{width:10px;height:10px;border-radius:999px;position:absolute;top:10px;left:10px}.status-dot.green{background:#16a34a}.status-dot.red{background:#dc2626}.mini-stat{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fff}.mini-stat-value{font-weight:700;font-size:20px;margin-bottom:4px}.mini-stat-label{color:#6b7280;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;color:#111;border-radius:16px;padding:16px;max-height:90vh;overflow:auto;box-shadow:0 10px 30px #00000040}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eee;padding-bottom:8px;margin-bottom:12px}.modal-title{margin:0;font-size:18px;font-weight:600}.modal-close{border:none;background:transparent;font-size:22px;cursor:pointer}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.form-error{color:#b91c1c;font-size:12px;margin-top:6px}.scate-header{position:sticky;top:64px;z-index:5;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.scate-header .left{display:flex;align-items:center;gap:8px}.scate-header .right{display:flex;align-items:center;gap:12px}.scate-header .title{font-weight:700;margin-left:4px}.scate-header .title .code,.scate-header .title .year{color:#6b7280;font-weight:400;margin-left:6px}.scate-header .save-hint{color:#6b7280;font-size:12px}.scate-nav{position:sticky;top:112px;z-index:4;background:#1d4ed8;color:#fff;display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.2)}.scate-tab{border:0;background:transparent;color:#bfdbfe;padding:8px 12px;border-radius:6px;font-weight:700;letter-spacing:1px}.scate-tab.active{background:#ffffff1a;color:#fff}.scate-surface{margin-top:12px}.scate-title{margin:0 0 8px}.ql-container,.ql-editor{min-height:420px}.input{border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;outline:none}.input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f633}.btn.danger{background:#ef4444;color:#fff}.student-home{max-width:960px;margin:0 auto;padding:24px 16px 40px}.student-modules-list{display:flex;flex-direction:column;gap:12px}.student-module-card{border-radius:10px;border:1px solid #e5e7eb;padding:14px 16px;background-color:#fff;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:box-shadow .15s,transform .05s,border-color .15s}.student-module-card:hover{box-shadow:0 4px 12px #0f172a14;border-color:#d1d5db;transform:translateY(-1px)}.vertical-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.list-item.clickable{cursor:pointer}.list-item.clickable:hover{box-shadow:0 8px 22px #0f172a29;border-color:#cbd5f5;background:linear-gradient(to bottom,#eff6ff,#fff);transform:translateY(-2px)}.list-item.clickable:active{transform:translateY(0);box-shadow:0 3px 10px #0f172a2e}.list-item-main{font-size:.98rem;color:#0f172a}.list-item-main span{font-size:.3rem;color:#6b7280;margin-left:-500px}.list-item-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.55rem;color:#4b5563}.error-text{color:#b91c1c;font-size:.9rem}.btn{display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;border-radius:9999px;padding:6px 10px;border:1px solid transparent;background-color:#2563eb;color:#fff;cursor:pointer;transition:background-color .15s,box-shadow .15s,transform .05s}.btn:hover{background-color:#1d4ed8;box-shadow:0 4px 10px #2563eb66}.btn.link{background-color:transparent;color:#2563eb;border-color:transparent;padding-left:0;box-shadow:none}.btn.link:hover{background-color:transparent;box-shadow:none;text-decoration:underline}.tabs{display:flex;border-bottom:1px solid #e5e7eb;margin:12px 0 16px;gap:2px}.tab{padding:8px 14px;font-size:.9rem;cursor:pointer;border:none;border-bottom:2px solid transparent;background-color:transparent;color:#6b7280;transition:color .15s,border-color .15s,background-color .15s}.tab:hover{background-color:#f3f4f6}.tab.active{color:#111827;font-weight:500;border-color:#2563eb;background-color:#eff6ff}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase;margin-top:-35px}.status-pill.red{background-color:#fef2f2;color:#b91c1c}.status-pill.yellow{background-color:#fffbeb;color:#92400e}.status-pill.lightgreen{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}.status-pill.deepgreen{background:#064e3b;color:#fff;border:1px solid #064e3b}.content-html{font-size:.95rem;color:#111827;line-height:1.5}.content-html h1,.content-html h2,.content-html h3{margin-top:.75rem;margin-bottom:.35rem}.content-html p{margin-bottom:.4rem}.content-html ul,.content-html ol{padding-left:1.25rem;margin-bottom:.5rem}.content-html li{margin-bottom:.25rem}.content-html table{border-collapse:collapse;width:100%}.content-html th,.content-html td{border:1px solid #d1d5db;padding:4px 6px}.card-sub{margin-top:10px;background-color:#f9fafb;border-radius:10px;border:1px solid #e5e7eb;padding:12px 14px}.activity-answer{width:100%;min-height:80px;font-size:.9rem;padding:8px 10px;border-radius:8px;border:1px solid #d1d5db;resize:vertical;box-sizing:border-box;margin-top:6px}.activity-answer:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb1a}.saving-indicator{margin-top:4px;font-size:.8rem;color:#6b7280}.think-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;align-items:center}.think-input{width:100%;font-size:.9rem;padding:8px 10px;border-radius:8px;border:1px solid #d1d5db;box-sizing:border-box;margin:8px 0}.think-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb1a}.think-message{margin-top:6px;font-size:.85rem;color:#374151}.hint-popup{margin-top:8px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background-color:#eff6ff;border:1px solid #bfdbfe;font-size:.9rem;color:#1f2937}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid #e5e7eb}.pager span{font-size:.85rem;color:#6b7280}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:4px}.metric-card{border-radius:14px;border:1px solid #e5e7eb;background:radial-gradient(circle at top left,#f9fafb,#eef2ff);padding:12px 14px 14px;box-shadow:0 4px 14px #0f172a1f;transition:transform .08s ease,box-shadow .16s ease,border-color .16s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0f172a2e;border-color:#c7d2fe}.metric-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:6px}.metric-main{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.metric-value{font-size:1.6rem;font-weight:600;color:#0f172a}.metric-sublabel{font-size:.85rem;color:#6b7280}.metric-progress{width:100%;height:6px;border-radius:9999px;background-color:#e5e7eb;overflow:hidden;margin-bottom:4px}.metric-progress-fill{height:100%;border-radius:9999px;background:linear-gradient(to right,#22c55e,#16a34a);transition:width .25s ease}.metric-footer{font-size:.8rem;color:#9ca3af}body.student-body{background-color:#edf0f8;overflow-y:hidden}.student-screen-root{height:calc(100vh - 56px);display:flex;justify-content:center;align-items:center;padding:24px 16px;box-sizing:border-box}.student-screen-card{width:100%;max-width:980px;height:80vh;background-color:#fff;border-radius:18px;border:1px solid rgba(148,163,184,.4);padding:18px 20px 20px;box-shadow:0 18px 45px #0f172a73,0 0 0 1px #0f172a26;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.student-screen-card>.vertical-list{flex:1;overflow-y:auto}.student-screen-card>.tabs+.tab-panel{flex:1;overflow-y:auto}.student-screen-card .tab-panel{margin-top:8px;padding:12px 14px 14px;background:radial-gradient(circle at top left,#f9fafb,#eef2ff);border-radius:14px;border:1px solid #e5e7eb;box-shadow:inset 0 0 0 1px #94a3b840;box-sizing:border-box}body.student-body{margin:0;background:#f3f4f6;overflow-y:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.student-screen-root{min-height:100vh;box-sizing:border-box;padding:20px;display:flex;justify-content:center;align-items:flex-start}.student-screen-card{background:#fff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 10px 25px #0f172a14;width:100%;max-width:1100px;padding:16px 20px 18px;display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.student-screen-card>.tab-panel{margin-top:12px;padding:8px 2px 4px;overflow-y:auto;flex:1 1 auto}.student-screen-card .vertical-list{overflow-y:auto;max-height:calc(100vh - 150px)}.student-screen-card h2{margin:4px 0 10px;font-size:20px;font-weight:600;color:#111827}.tabs{display:inline-flex;gap:6px;border-bottom:1px solid #e5e7eb;margin-top:8px}.tab{position:relative;border:none;background:transparent;padding:6px 12px;font-size:14px;color:#4b5563;cursor:pointer;border-radius:999px 999px 0 0;transition:background-color .15s ease,color .15s ease}.tab:hover{background:#f3f4ff;color:#1d4ed8}.tab.active{background:#eff6ff;color:#1d4ed8;font-weight:600}.tab-panel h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#111827}.vertical-list{list-style:none;margin:10px 0 0;padding:2px}.list-item{display:flex;align-items:left;justify-content:space-between;gap:12px;padding:10px 12px;margin-bottom:8px;border-radius:10px;border:1px solid #0c3077;background:#f5f9ca}.list-item.clickable{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease,transform .05s ease}.list-item.clickable:hover{background:#eff6ff;box-shadow:0 4px 10px #2563eb1f;transform:translateY(-1px)}.list-item-main{display:flex;flex-wrap:wrap;gap:4px;font-size:14px;color:#111827}.list-item-main strong{font-weight:600}.list-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:#6b7280}.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.status-pill.red{background:#fee2e2;color:#b91c1c}.status-pill.yellow{background:#fef3c7;color:#92400e}.status-pill.green{background:#dcfce7;color:#166534}.content-html{font-size:14px;line-height:1.6;color:#111827}.content-html p{margin:0 0 8px}.content-html ul,.content-html ol{padding-left:1.25rem;margin:0 0 8px}.content-html img{max-width:100%;height:auto;display:block;margin:6px 0}.content-html table{border-collapse:collapse;width:100%;margin:8px 0 12px}.content-html th,.content-html td{border:1px solid #d1d5db;padding:6px 8px;font-size:14px;text-align:left;vertical-align:top}.content-html th{background:#f3f4f6;font-weight:600}.card-sub{border-radius:12px;border:1px solid #e5e7eb;background:#f9fafb;padding:10px 12px;margin-bottom:10px}.card-sub p{margin:0 0 6px;font-size:14px;color:#111827}.activity-answer{width:100%;min-height:250px;padding:8px 10px;border-radius:8px;border:1px solid #d1d5db;font-size:14px;resize:vertical;font-family:inherit;box-sizing:border-box}.activity-answer:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb59}.saving-indicator{margin-top:4px;font-size:12px;color:#6b7280}.think-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;margin-bottom:4px}.hint-popup{margin-top:6px;padding:8px 10px;border-radius:8px;border:1px solid #c7d2fe;background:#eef2ff;font-size:13px;color:#111827}.hint-popup strong{font-weight:600}.think-message{margin-top:10px;padding:8px 10px;border-radius:8px;font-size:13px;background:#ecfdf5;border:1px solid #bbf7d0;color:#166534}.tab-panel label{cursor:pointer}.think-options-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.think-option-row{padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;box-shadow:0 2px 6px #0f172a0a;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.think-option-row.selected{border-color:#bfdbfe;background:#eff6ff;box-shadow:0 4px 10px #2563eb2e}.think-option-label{display:flex;align-items:center;gap:10px;cursor:pointer}.think-option-input{margin:0}.think-option-letter{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:#1d4ed8;background-color:#eff6ff}.think-option-text{flex:1;font-size:.95rem;color:#111827}.scate-card{padding:24px 32px}.tab-panel{margin-top:16px;padding:16px 24px;border-radius:12px;background:#f9fbff}.content-scroll{margin-top:16px;max-height:600px;overflow-y:auto;padding:16px 24px;background:#fff;border-radius:12px}.think-options-list{list-style:none;padding:0;margin:24px auto 0;max-width:90px}.think-option-row{margin-bottom:12px;border-radius:12px;background:#fff;box-shadow:0 1px 3px #0f172a14}.think-option-label{display:flex;align-items:left;justify-content:space-between;padding:12px 16px;cursor:pointer}.think-option-main{display:flex;align-items:center;gap:.75rem}.think-option-input{margin-left:16px}.think-option-row.selected{border:2px solid #2563eb}.think-message-top{margin-top:12px;margin-bottom:8px;padding:8px 12px;border-radius:999px;background:#ecfdf3;color:#166534;font-size:.9rem}.think-submit-row{margin-top:24px}.student-screen-root{min-height:calc(100vh - 80px);padding:24px;display:flex;justify-content:center;align-items:flex-start}.student-screen-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0f172a1f;padding:16px 24px;max-width:960px;width:100%;display:flex;flex-direction:column;max-height:calc(100vh - 120px)}.tabs{margin-top:12px;display:flex;gap:8px}.tab-header-row{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.tab-title{font-size:1.1rem;font-weight:600}.tab-scroll{margin-top:8px;overflow-y:auto;padding-right:4px}.content-html{margin-top:8px;line-height:1.6}.think-options-list{list-style:none;padding:0;margin:16px auto 0;max-width:640px}.think-option-row{margin-bottom:8px;border:1px solid #e5e7eb;border-radius:6px;padding:8px 10px}.think-option-row.selected{border-color:#2563eb;background-color:#eff6ff}.think-option-label{display:flex;align-items:center;gap:8px}.think-option-letter{font-weight:600;flex-shrink:0}.think-option-text{flex:1}.think-option-input{flex-shrink:0}.think-message{margin-top:8px;padding:8px 10px;border-radius:4px;background:#fef3c7;border:1px solid #fbbf24;font-size:.9rem}.profile-card,.change-password-card{max-width:640px}.profile-field{margin-top:12px}.profile-field label{font-size:.85rem;color:#6b7280;display:block;margin-bottom:2px}.profile-actions{margin-top:16px;display:flex;gap:8px}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0f172a59;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb;gap:8px}.modal-header h2{flex:1;font-size:1rem;font-weight:600;margin:0}.modal-close{border:none;background:transparent;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px;color:#6b7280}.modal-close:hover{color:#111827}.modal-back{border:none;background:transparent;font-size:.85rem;color:#2563eb;cursor:pointer;padding:0}.modal-body{padding:16px;overflow-y:auto}.modal-footer{padding:10px 16px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:8px}.profile-modal-body .profile-field{margin-top:10px}.profile-field label{font-size:.8rem;color:#6b7280;display:block;margin-bottom:2px}.profile-value{font-size:.95rem;color:#111827}.change-password-form .field{margin-bottom:10px}.change-password-form .field label{font-size:.8rem;color:#6b7280;display:block;margin-bottom:2px}.change-password-form .field input{width:100%}.info-text{margin-top:4px;font-size:.85rem;color:#374151}.topbar{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid #e5e7eb;background:#152544}.topbar .logo{height:32px}.topbar .spacer{flex:1}.topbar .user{display:flex;align-items:center;gap:8px;cursor:pointer;position:relative}.topbar .avatar{width:32px;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:600;background:#111827;color:#fff;font-size:.8rem}.topbar .user-name{font-size:.9rem;color:#111827}.topbar .menu{position:absolute;right:0;top:120%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 20px #0f172a1f;padding:4px 0;min-width:160px;z-index:50}.topbar .menu-item{display:block;width:100%;padding:8px 12px;text-align:left;background:transparent;border:none;cursor:pointer;font-size:.9rem}.topbar .menu-item:hover{background:#f3f4f6}.modal-overlay{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:12px;max-width:480px;width:100%;padding:16px 20px 20px;box-shadow:0 20px 40px #0f172a40}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-close{border:none;background:transparent;font-size:1.2rem;cursor:pointer}.modal-body{margin:8px 0 16px}.modal-footer{display:flex;justify-content:flex-end;gap:8px}.success-text{margin-top:8px;color:#047857;font-size:.9rem}.topbar{background:#020617;color:#e5e7eb;padding:10px 24px;border-bottom:1px solid #020617}.topbar .logo{height:36px}.topbar .brand{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.9rem}.topbar .user{padding:4px 10px;border-radius:999px;background:#0f172ae6;border:1px solid rgba(148,163,184,.7);margin-right:8px}.topbar .avatar{width:28px;height:28px;border-radius:999px;background:#0b1120;color:#e5e7eb;font-size:.8rem;font-weight:600}.topbar .user-name{color:#e5e7eb;font-size:.85rem;font-weight:500}.topbar .menu{margin-top:4px;background:#0b1120;color:#e5e7eb;border:1px solid rgba(148,163,184,.7)}.topbar .menu-item,.topbar .menu button{color:#e5e7eb}.topbar .menu-item:hover,.topbar .menu button:hover{background:#111827}.student-screen-card .think-options-list{list-style:none;padding:0;margin:16px auto 0;max-width:640px;display:flex;flex-direction:column;gap:8px}.student-screen-card .think-option-row{border-radius:10px;border:1px solid #e5e7eb;background:#fff;padding:8px 10px;box-shadow:0 2px 6px #0f172a0f;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .05s ease}.student-screen-card .think-option-label{display:flex;align-items:center;gap:10px;cursor:pointer}.student-screen-card .think-option-input{margin:0;flex-shrink:0}.student-screen-card .think-option-letter{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;background:#eff6ff;color:#1d4ed8;flex-shrink:0}.student-screen-card .think-option-text{flex:1;font-size:.92rem;color:#111827}.student-screen-card .think-message{margin-top:8px;padding:8px 10px;border-radius:8px;background:#ecfdf3;border:1px solid #bbf7d0;font-size:.85rem;color:#166534}body.student-body{background:radial-gradient(circle at top,#0f172a,#020617);overflow-y:hidden}.student-screen-root{min-height:calc(100vh - 64px);padding:24px 16px;display:flex;justify-content:center;align-items:center}.student-screen-card{width:100%;max-width:1040px;height:80vh;background:radial-gradient(circle at top left,#f9fafb,#e5e7eb);border-radius:20px;border:1px solid rgba(148,163,184,.6);box-shadow:0 20px 55px #0f172a8c,0 0 0 1px #0f172a33;padding:18px 22px 20px;display:flex;flex-direction:column;overflow:hidden}.student-screen-card .tabs{margin-top:8px;border-bottom:1px solid rgba(148,163,184,.4)}.student-screen-card .tab{border-radius:999px 999px 0 0;padding:6px 14px;font-size:.85rem}.student-screen-card .tab.active{background:#2563eb;color:#fff;border-color:transparent}.student-screen-card .tab-panel{margin-top:10px;flex:1;overflow-y:auto;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#fff,#eef2ff);box-shadow:inset 0 0 0 1px #94a3b84d,0 6px 18px #0f172a1a}.student-screen-card .pager{border-bottom:1px solid #e5e7eb;padding-bottom:8px;margin-bottom:10px}.student-screen-card .vertical-list{margin-top:10px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.student-screen-card .list-item{border-radius:12px;border:1px solid rgba(148,163,184,.6);background:#0f172af5;padding:10px 14px;color:#e5e7eb;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;transition:transform .08s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}.student-screen-card .list-item.clickable{cursor:pointer}.student-screen-card .list-item.clickable:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0f172a73;border-color:#38bdf8;background:linear-gradient(135deg,#020617,#0f172a)}.student-screen-card .list-item-main{font-size:.95rem;display:flex;flex-direction:column;gap:2px}.student-screen-card .list-item-main strong{font-weight:600}.student-screen-card .list-item-main span{font-size:.82rem;color:#9ca3af}.student-screen-card .list-item-meta{font-size:.8rem;color:#cbd5f5;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.student-screen-card .status-pill.red{background:#fee2e2;color:#b91c1c}.student-screen-card .status-pill.yellow{background:#fef3c7;color:#92400e}.student-screen-card .status-pill.green{background:#dcfce7;color:#166534}.student-screen-card .think-options-list{list-style:none;padding:0;margin:16px auto 0;max-width:700px;display:flex;flex-direction:column;gap:10px}.student-screen-card .think-option-row{border-radius:12px;border:1px solid #e5e7eb;background:#fff;padding:10px 12px;box-shadow:0 2px 6px #0f172a0f;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .05s ease}.student-screen-card .think-option-row:hover{border-color:#bfdbfe;background:#eff6ff;transform:translateY(-1px)}.student-screen-card .think-option-row.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 4px 12px #2563eb2e}.student-screen-card .think-option-label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;cursor:pointer}.student-screen-card .think-option-letter{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;background:#eff6ff;color:#1d4ed8}.student-screen-card .think-option-text{font-size:.94rem;color:#111827}.student-screen-card .think-option-input{margin:0;justify-self:center}.vertical-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.vertical-list .list-item,.student-modules-list .student-module-card{border-radius:14px;border:1px solid #e5e7eb;background:radial-gradient(circle at top left,#f9fafb,#fff);padding:14px 18px;display:flex;justify-content:space-between;align-items:stretch;gap:12px;box-shadow:0 8px 18px #0f172a1f,0 0 0 1px #94a3b826;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,transform .08s ease}.vertical-list .list-item.clickable:hover,.student-modules-list .student-module-card:hover{background:radial-gradient(circle at top left,#f3f4ff,#fff);border-color:#c7d2fe;box-shadow:0 12px 26px #0f172a2e,0 0 0 1px #818cf88c;transform:translateY(-2px)}.vertical-list .list-item.clickable:active,.student-modules-list .student-module-card:active{transform:translateY(0);box-shadow:0 4px 10px #0f172a29,0 0 0 1px #818cf866}.vertical-list .list-item-main,.student-module-title-row{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:.98rem;color:#0f172a;font-weight:700}.vertical-list .list-item-main span,.student-module-code{font-size:.9rem;color:#6b7280;font-weight:500}.vertical-list .list-item-meta,.student-module-meta{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;min-width:150px;gap:4px;text-align:right;font-size:.86rem;color:#4b5563;font-weight:500}.vertical-list .status-pill{align-self:flex-end;border-radius:999px;padding:3px 12px;font-size:.76rem;font-weight:600}.vertical-list .status-pill.red{background:#fee2e2;color:#b91c1c}.vertical-list .status-pill.yellow{background:#fef3c7;color:#92400e}.vertical-list .status-pill.green{background:#dcfce7;color:#166534}.table-pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:7px;border-top:1px solid #e5e7eb}.table-pagination-info{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:140px}.table-pagination-page{font-weight:800;font-size:14px;color:#111827}.table-pagination-meta{font-size:12px;color:#6b7280}.row-clickable{cursor:pointer;background-color:#f9fafb}.row-clickable:hover{background:#6b7280}:root{--scate-border: #e5e7eb;--scate-bg: #ffffff;--scate-muted: #6b7280;--scate-text: #111827;--scate-shadow-lg: 0 20px 45px rgba(0, 0, 0, .18);--scate-shadow-sm: 0 8px 18px rgba(0, 0, 0, .12);--scate-radius-lg: 16px;--scate-radius-md: 12px;--scate-radius-sm: 10px;--scate-focus: rgba(59, 130, 246, .35)}.modal-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999}.modal-card{width:100%;max-width:720px;background:var(--scate-bg);border:1px solid var(--scate-border);border-radius:var(--scate-radius-lg);box-shadow:var(--scate-shadow-lg);overflow:hidden}.modal-card .card-header{padding:14px 16px;border-bottom:1px solid var(--scate-border);background:#fbfbfc}.modal-card .card-header h3{font-size:16px;font-weight:600;color:var(--scate-text)}.modal-card .modal-body{padding:16px}.modal-card .modal-body>div{line-height:1.35}.search-input,.modal-card input[type=text],.modal-card input[type=email],.modal-card input[type=password],.modal-card textarea{width:100%;border:1px solid var(--scate-border);border-radius:var(--scate-radius-sm);padding:10px 12px;font-size:14px;outline:none;background:#fff;color:var(--scate-text)}.modal-card textarea{min-height:120px;resize:vertical}.search-input:focus,.modal-card input:focus,.modal-card textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px var(--scate-focus)}.modal-label{font-size:12px;color:var(--scate-muted);margin-bottom:6px}.btn{border:1px solid #2563eb;background:#2563eb;color:#fff;border-radius:12px;padding:10px 14px;font-weight:400;font-size:14px;cursor:pointer;transition:transform .06s ease,box-shadow .12s ease,background .12s ease;box-shadow:0 6px 16px #2563eb2e}.btn:hover{background:#1d4ed8}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.secondary{border:1px solid var(--scate-border);background:#f9fafb;color:#111827;box-shadow:none}.btn.secondary:hover{background:#f3f4f6}.btn.danger{border:1px solid #dc2626;background:#dc2626;color:#fff;box-shadow:0 6px 16px #dc26262e}.btn.danger:hover{background:#b91c1c}.modal-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:10px}.modal-actions.left{justify-content:flex-start}.modal-box{border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);padding:12px;background:#fff}.modal-muted{color:var(--scate-muted);font-size:13px}@keyframes scateModalPop{0%{transform:translateY(8px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-card{animation:scateModalPop .12s ease-out}.reorder-row{border:1px solid var(--border, #1f2937);border-radius:12px;padding:10px;background:var(--panel, #bec2cc);display:flex;align-items:center;gap:10px;cursor:grab}.reorder-row-index{width:36px;height:36px;border-radius:10px;border:1px solid var(--border, #1f2937);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--ink, #bec2cc);background:#ffffff05}.reorder-row-title{font-weight:600;color:var(--ink, #e5e7eb);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reorder-row-actions{display:flex;gap:6px}.error-banner{margin-top:10px;border:1px solid #7f1d1d;background:#7f1d1d40;color:#fecaca;border-radius:10px;padding:10px}.muted{color:var(--muted, #94a3b8)}.reorder-row.dragging{opacity:.85;transform:scale(1.01);cursor:grabbing}.reorder-row{-webkit-user-select:none;user-select:none;will-change:transform}.reorder-row:hover{filter:brightness(1.03)}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}@media(max-width:820px){.dash-grid{grid-template-columns:1fr}}.dash-tile{border:1px solid #e5e7eb;border-radius:10px;padding:18px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 10px 22px #0000000f;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;min-height:86px;display:flex;flex-direction:column;justify-content:center}.dash-tile:hover{transform:translateY(-1px);border-color:#c7d2fe;box-shadow:0 18px 34px #00000014}.dash-tile-label{font-size:13px;font-weight:700;color:#64748b;margin-bottom:6px}.dash-tile-value{font-size:18px;font-weight:700;color:#0f172a;letter-spacing:-.02em;line-height:1.1}.dash-tile-value{word-break:break-word}.dash-tile:has(.dash-tile-label:contains("Your Role")) .dash-tile-value{font-size:20px;font-weight:900}.dash-tile.role .dash-tile-value{font-size:20px;font-weight:900;padding-top:2px}.container{max-width:1200px;margin:0 auto;padding:18px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 24px #0000000f}.centered{width:100%}.card-header{padding:14px 16px;border-bottom:1px solid #eef2f7;background:linear-gradient(180deg,#fff,#fbfdff);border-top-left-radius:14px;border-top-right-radius:14px}.table-wrap{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}.table{width:100%;border-collapse:collapse}.table thead th{font-size:12px;letter-spacing:.02em;text-transform:none;color:#64748b;background:#f8fafc;padding:12px;border-bottom:1px solid #e5e7eb}.table tbody td{padding:12px;border-bottom:1px solid #f1f5f9;color:#0f172a;vertical-align:top}.table tbody tr:hover td{background:#edeeef}.row-clickable{cursor:pointer}.row-clickable:hover td{background:#eff6ff}.cell-actions{white-space:nowrap}.fb-float{position:fixed;right:20px;bottom:20px;z-index:1200}.fb-float-launch{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border:none;border-radius:999px;background:#0b61ff;color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #0b61ff59;transition:transform .12s ease,box-shadow .12s ease}.fb-float-launch:hover{transform:translateY(-2px);box-shadow:0 10px 26px #0b61ff6b}.fb-float-launch-icon{font-size:16px;color:#ffd85e}.fb-float-panel{width:340px;max-width:calc(100vw - 32px);padding:16px 18px 18px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-lg);background:#fff;box-shadow:0 18px 50px #0f172a38;animation:fbPop .14s ease-out}@keyframes fbPop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fb-float-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.fb-float-title{font-size:15px;font-weight:700;color:var(--scate-text)}.fb-float-close{width:28px;height:28px;border:none;background:transparent;color:var(--scate-muted);font-size:15px;cursor:pointer;border-radius:8px}.fb-float-close:hover{background:#f3f4f6;color:var(--scate-text)}.fb-panel-sub{margin:0 0 14px;font-size:12.5px;color:var(--scate-muted)}.fb-row{display:flex;align-items:center;gap:14px;padding:7px 0;flex-wrap:wrap}.fb-row-label{flex:1 1 160px;min-width:140px;font-size:13px;font-weight:600;color:var(--scate-text)}.fb-stars{display:inline-flex;gap:3px}.fb-star{width:26px;height:26px;padding:0;border:none;background:transparent;cursor:pointer;line-height:1;font-size:22px;color:#d1d5db;transition:transform .08s ease,color .12s ease}.fb-star:hover{transform:scale(1.12)}.fb-star.is-on{color:#f5b301}.fb-star:focus-visible{outline:2px solid var(--scate-focus);outline-offset:2px;border-radius:4px}.fb-saved{font-size:12px;font-weight:700;color:#16a34a;opacity:0;transition:opacity .15s ease}.fb-saved.show{opacity:1}.fb-comment{margin-top:12px}.fb-comment textarea{width:100%;min-height:66px;resize:vertical;padding:10px 12px;font:inherit;font-size:13px;color:var(--scate-text);border:1px solid var(--scate-border);border-radius:var(--scate-radius-sm);background:#fff}.fb-comment textarea:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px var(--scate-focus)}.fb-comment-label{display:block;font-size:12px;font-weight:600;color:var(--scate-muted);margin-bottom:5px}.fbr-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.fbr-stat{flex:1 1 120px;padding:12px 14px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-sm);background:#fbfbfc;text-align:center}.fbr-stat-value{font-size:22px;font-weight:700;color:var(--scate-text);line-height:1.1}.fbr-stat-value .fbr-star{color:#f5b301;font-size:18px}.fbr-stat-label{margin-top:3px;font-size:11.5px;font-weight:600;color:var(--scate-muted);text-transform:uppercase;letter-spacing:.03em}.fbr-empty{padding:32px 16px;text-align:center;color:var(--scate-muted);font-size:13.5px}.fbr-page{border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);margin-bottom:12px;overflow:hidden}.fbr-page-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fbfbfc;border:none;cursor:pointer;text-align:left}.fbr-page-head:hover{background:#f3f4f6}.fbr-page-title{font-size:13.5px;font-weight:700;color:var(--scate-text)}.fbr-page-meta{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;color:var(--scate-muted)}.fbr-page-avg{font-weight:700;color:var(--scate-text)}.fbr-page-avg .fbr-star{color:#f5b301}.fbr-page-body{padding:14px;border-top:1px solid var(--scate-border)}.fbr-dist-row{display:flex;align-items:center;gap:10px;margin-bottom:5px}.fbr-dist-label{width:44px;font-size:12px;color:var(--scate-muted);text-align:right}.fbr-dist-track{flex:1;height:9px;border-radius:999px;background:#eef0f2;overflow:hidden}.fbr-dist-fill{height:100%;border-radius:999px;background:#f5b301}.fbr-dist-count{width:34px;font-size:12px;color:var(--scate-muted)}.fbr-cats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}.fbr-cat{padding:5px 10px;border:1px solid var(--scate-border);border-radius:999px;font-size:12px;color:var(--scate-text);background:#fff}.fbr-cat b{color:#b45309}.fbr-comments{margin-top:12px;border-top:1px dashed var(--scate-border);padding-top:10px}.fbr-comment{padding:9px 11px;margin-bottom:8px;border-radius:var(--scate-radius-sm);background:#fbfbfc;border:1px solid var(--scate-border)}.fbr-comment-top{display:flex;align-items:center;gap:8px;margin-bottom:3px;font-size:11.5px;color:var(--scate-muted)}.fbr-comment-stars{color:#f5b301;font-size:12px}.fbr-comment-text{font-size:13px;color:var(--scate-text);line-height:1.4}.fbr-section-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--scate-muted);margin:0 0 8px}.fc-wrap{padding:6px 10px 16px}.fc-intro{font-size:13px;color:var(--scate-muted);margin:4px 0 14px;line-height:1.5}.fc-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:14px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);background:#fbfbfc;margin-bottom:16px}.fc-field{display:flex;flex-direction:column;gap:4px}.fc-field label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--scate-muted)}.fc-field input{width:90px;padding:7px 9px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-sm);font:inherit;font-size:13px}.fc-disabled-note{padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;border-radius:var(--scate-radius-sm);color:#92400e;font-size:13px;margin-bottom:14px}.fc-card{border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);margin-bottom:14px;overflow:hidden}.fc-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:#fbfbfc;border-bottom:1px solid var(--scate-border);flex-wrap:wrap}.fc-card-title{font-size:13.5px;font-weight:700;color:var(--scate-text)}.fc-status{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.fc-status.pending{background:#f3f4f6;color:#6b7280}.fc-status.generating{background:#dbeafe;color:#1d4ed8}.fc-status.completed{background:#dcfce7;color:#15803d}.fc-status.failed{background:#fee2e2;color:#b91c1c}.fc-card-actions{display:flex;gap:6px;flex-wrap:wrap}.fc-vark-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px 0}.fc-vark-tab{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;border:1px solid var(--scate-border);background:#fff;font-size:12.5px;font-weight:600;color:var(--scate-muted);cursor:pointer}.fc-vark-tab.active{border-color:#0b61ff;color:#0b61ff;background:#eff5ff}.fc-vark-tab .fc-verified-dot{width:7px;height:7px;border-radius:999px;background:#16a34a}.fc-variant-body{padding:14px}.fc-variant-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--scate-border)}.fc-variant-edit{width:100%;min-height:180px;font-family:ui-monospace,monospace;font-size:12.5px;padding:10px 12px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-sm);resize:vertical}.fc-generic{padding:10px 14px;font-size:12.5px;color:var(--scate-muted);border-bottom:1px solid var(--scate-border);background:#fcfcfd}.fc-empty{padding:30px 16px;text-align:center;color:var(--scate-muted);font-size:13.5px}.fc-audio{width:100%;margin-bottom:10px}.fc-markdown{font-size:13.5px;line-height:1.55;color:var(--scate-text)}.fc-markdown h1,.fc-markdown h2,.fc-markdown h3{margin:12px 0 6px}.fc-markdown p{margin:8px 0}.fc-markdown ul,.fc-markdown ol{margin:8px 0 8px 20px}.fc-markdown table{border-collapse:collapse;margin:8px 0}.fc-markdown th,.fc-markdown td{border:1px solid var(--scate-border);padding:5px 9px}.fc-markdown blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid #cbd5e1;color:var(--scate-muted)}.fc-md-pre,.fc-markdown pre{background:#f6f8fa;padding:10px 12px;border-radius:8px;overflow-x:auto;font-size:12px}.fc-mermaid{display:flex;justify-content:center;margin:10px 0}.fc-modal-vark{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.fc-modal-body{padding:16px;background:#fbfbfc;border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);max-height:52vh;overflow-y:auto}.fc-modal-nav{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.think-order-block{margin:10px 0}.think-order-help,.think-match-help{font-size:13px;color:var(--scate-muted);margin-bottom:10px}.think-order-row{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px;background:#fff;border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);cursor:grab;transition:box-shadow .12s ease,border-color .12s ease,transform .08s ease;-webkit-user-select:none;user-select:none}.think-order-row:hover{border-color:#93c5fd}.think-order-row.dragging{opacity:.55;cursor:grabbing}.think-order-row.drag-over{border-color:#0b61ff;box-shadow:0 0 0 3px var(--scate-focus, rgba(11,97,255,.15));transform:translateY(-1px)}.think-order-grip{color:#9ca3af;font-size:16px}.think-order-position{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#eff5ff;color:#0b61ff;font-size:13px;font-weight:700;flex-shrink:0}.think-order-text{font-size:14px;color:var(--scate-text)}.think-match-game{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0}.think-match-col{display:flex;flex-direction:column;gap:8px}.think-match-node{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 14px;border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);background:#fff;font-size:14px;color:var(--scate-text);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.think-match-node:hover:not(:disabled){border-color:#93c5fd}.think-match-node.active{border-color:#0b61ff;box-shadow:0 0 0 3px #0b61ff26;background:#eff5ff}.think-match-node.selectable{border-style:dashed;border-color:#93c5fd}.think-match-node:disabled{cursor:default}.think-match-dot{width:12px;height:12px;border-radius:999px;border:2px solid #cbd5e1;flex-shrink:0;transition:background .12s ease,border-color .12s ease}.think-match-node.paired .think-match-dot{border-color:transparent}.think-match-node.paired[data-pair="0"]{border-color:#2563eb;background:#eff6ff}.think-match-node.paired[data-pair="0"] .think-match-dot{background:#2563eb}.think-match-node.paired[data-pair="1"]{border-color:#16a34a;background:#f0fdf4}.think-match-node.paired[data-pair="1"] .think-match-dot{background:#16a34a}.think-match-node.paired[data-pair="2"]{border-color:#d97706;background:#fffbeb}.think-match-node.paired[data-pair="2"] .think-match-dot{background:#d97706}.think-match-node.paired[data-pair="3"]{border-color:#db2777;background:#fdf2f8}.think-match-node.paired[data-pair="3"] .think-match-dot{background:#db2777}.think-match-node.paired[data-pair="4"]{border-color:#7c3aed;background:#f5f3ff}.think-match-node.paired[data-pair="4"] .think-match-dot{background:#7c3aed}.think-match-node.paired[data-pair="5"]{border-color:#0891b2;background:#ecfeff}.think-match-node.paired[data-pair="5"] .think-match-dot{background:#0891b2}.think-match-progress{margin-top:10px;font-size:12.5px;font-weight:600;color:var(--scate-muted);text-align:center}.fc-page-list{margin-top:8px}.fc-page-group{border:1px solid var(--scate-border);border-radius:var(--scate-radius-md);margin-bottom:14px;overflow:hidden}.fc-page-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--scate-border)}.fc-page-group-title{font-size:14px;font-weight:700;color:var(--scate-text);margin-right:10px}.fc-page-group-preview{font-size:12.5px;color:var(--scate-muted)}.fc-page-group .fc-card{border:none;border-radius:0;margin:0;border-top:1px solid var(--scate-border)}.fc-page-group .fc-card:first-of-type{border-top:none}.fp-success{text-align:center;padding:8px 4px 4px}.fp-success-icon{width:56px;height:56px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#ecfdf5;color:#16a34a;font-size:26px}.fp-success h3{margin:0 0 8px;font-size:17px;color:var(--scate-text, #111827)}.fp-success p{margin:0 auto 20px;max-width:320px;font-size:13.5px;line-height:1.55;color:#6b7280}.fc-modal-body .fc-markdown{font-size:14.5px;line-height:1.6}.fc-markdown>*:first-child{margin-top:0}.fc-markdown>*:last-child{margin-bottom:0}.fc-markdown h1{font-size:19px}.fc-markdown h2{font-size:17px}.fc-markdown h3{font-size:15px}.fc-markdown strong{color:var(--scate-text);font-weight:700}.fc-markdown code{background:#f1f5f9;padding:1px 5px;border-radius:5px;font-size:.9em}.fc-markdown hr{border:none;border-top:1px solid var(--scate-border);margin:14px 0}.fc-markdown li{margin:3px 0}.access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8fafc}.access-denied-card{max-width:440px;width:100%;text-align:center;padding:36px 28px;background:#fff;border:1px solid var(--scate-border);border-radius:var(--scate-radius-lg);box-shadow:0 10px 40px #0f172a14}.access-denied-icon{font-size:48px;margin-bottom:12px}.access-denied-card h1{margin:0 0 10px;font-size:22px;color:var(--scate-text)}.access-denied-card p{margin:0 0 22px;font-size:14px;line-height:1.55;color:#6b7280}.access-denied-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}@media(max-width:900px){.tab-scroll{padding-left:4px;padding-right:4px}.fb-float-panel{width:320px}}@media(max-width:600px){.auth-card,.authcard,.auth-wrap .card{width:100%!important;max-width:100%!important;border-radius:0!important;box-shadow:none!important;min-height:auto}.tab-header-row{flex-wrap:wrap;gap:8px}.tab-scroll{padding:8px 10px 90px}.pager,.think-actions{flex-wrap:wrap}.pager .btn{flex:1 1 auto}.think-match-game{grid-template-columns:1fr;gap:10px}.think-match-node{padding:14px;font-size:15px}.think-order-row{padding:14px}.think-option-row{padding:12px 10px}.think-option-input{transform:scale(1.15)}.activity-answer{font-size:15px}.modal-card{max-width:100%!important;width:100%!important;margin:0;border-radius:0}.fc-modal-body{max-height:60vh}.fb-float{right:12px;bottom:12px}.fb-float-panel{width:calc(100vw - 24px);max-height:72vh;overflow-y:auto}.fc-modal-vark{gap:6px}.fc-vark-tab{font-size:13px;padding:8px 12px}.btn{min-height:42px}}@media(max-width:380px){.fc-stat,.fbr-stat{flex-basis:100%}.think-match-node span:last-child{font-size:14px}}.table th,.table td{overflow-wrap:anywhere;word-break:break-word;vertical-align:top}.table td.cell-actions,.table th.cell-actions{overflow-wrap:normal;word-break:normal;white-space:nowrap}.radio-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;color:#111827;line-height:1.3}.radio-row:hover{background:#f9fafb}.radio-row input[type=radio]{margin:0;width:16px;height:16px;flex:0 0 auto;accent-color:#4f46e5}.radio-row.selected{border-color:#4f46e5;background:#eef2ff}
