:root{color-scheme:light;--bg:#f6f7f9;--surface:#ffffff;--surface-2:#eef2f7;--text:#151923;--muted:#617085;--line:#d9e0ea;--accent:#0f766e;--accent-2:#7c3aed;--danger:#dc2626}:root[data-theme=dark]{color-scheme:dark;--bg:#111822;--surface:#1b2430;--surface-2:#263241;--text:#eef4fb;--muted:#aeb8c8;--line:#3c4a5f;--accent:#0f766e;--accent-2:#b084f5;--danger:#ff7b72}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.input{border:1px solid var(--line);border-radius:6px;min-height:40px;padding:8px 10px;width:100%}.shell{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);display:flex;gap:24px;height:64px;justify-content:space-between;padding:0 32px}.brand,.topbar{align-items:center}.brand{color:var(--text);display:inline-flex;font-size:20px;font-weight:700;gap:10px;min-height:42px}.brand-mark{flex:0 0 auto}.brand-logo{background:rgba(255,255,255,.94);border:1px solid rgba(217,224,234,.9);border-radius:6px;display:block;height:36px;object-fit:contain;padding:3px 6px;width:112px}.brand-divider{background:var(--line);height:28px;width:1px}.brand-name{line-height:1}.nav{display:flex;gap:12px}.nav a{border-radius:6px;color:var(--muted);padding:8px 10px}.nav a:hover{background:var(--surface-2);color:var(--text)}.theme-toggle{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;display:inline-flex;flex:0 0 auto;gap:4px;padding:4px;white-space:nowrap}.theme-toggle button{align-items:center;background:transparent;border:0;border-radius:999px;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;min-height:30px;padding:5px 10px}.theme-toggle button.active{background:var(--accent);color:var(--bg)}:root[data-theme=clean] .theme-toggle button.active{color:white}.main{margin:0 auto;max-width:1180px;padding:28px 24px 48px}.page-title{display:flex;justify-content:space-between;gap:24px;margin-bottom:24px}.page-title h1{font-size:32px;line-height:1.1;margin:0 0 8px}.page-title p{color:var(--muted);margin:0;max-width:680px}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:18px}.card h2,.card h3{margin:0 0 8px}.muted{color:var(--muted)}.notice{background:#eef7f5;border:1px solid #b7ddd6;border-radius:6px;color:#12544f;padding:10px 12px}.notice.danger{background:#fff1f2;border-color:#fecdd3;color:var(--danger)}.status{align-items:center;display:inline-flex;gap:6px;margin:0 0 12px}.status.ok{color:var(--accent)}.button{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:white;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;min-height:40px;padding:8px 12px}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--line)}.button:disabled{cursor:not-allowed;opacity:.6}.workshop{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.workshop-shell .main{max-width:none;padding:0}.workshop-shell .page-title{display:none}.workshop-stage{min-height:calc(100vh - 64px);padding:18px}.workshop-stage.dark{background:radial-gradient(circle at 8% 10%,rgba(43,201,196,.45),transparent 24%),radial-gradient(circle at 85% 5%,rgba(214,168,211,.55),transparent 34%),linear-gradient(135deg,#17202b,#202938 54%,#111822);color:#eef4fb}.workshop-stage.clean{background:linear-gradient(135deg,rgba(15,118,110,.08),rgba(124,58,237,.08)),#f7f8fb;color:#16202c}.workshop-frame{background:rgba(22,28,38,.88);border:1px solid rgba(161,174,194,.35);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.36);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(380px,.98fr) minmax(520px,1fr);margin:0 auto;max-width:1480px;min-height:calc(100vh - 100px);padding:14px}.workshop-stage.clean .workshop-frame{background:rgba(255,255,255,.92);border-color:#d8dee8;box-shadow:0 18px 46px rgba(31,41,55,.14)}.workshop-dashboard,.workshop-left{display:grid;grid-gap:12px;gap:12px;min-width:0}.workshop-left{grid-template-rows:auto minmax(260px,auto) 1fr}.workshop-dashboard{background:rgba(48,60,76,.48);border:1px solid rgba(151,163,184,.38);border-radius:10px;grid-template-rows:54px auto minmax(166px,1fr) auto auto;padding:0 12px 12px;position:relative}.workshop-stage.clean .workshop-dashboard{background:#f1f5f9;border-color:#d7dee9}.workshop-title{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;padding:2px 6px 0}.workshop-title h1{font-family:Georgia,Times New Roman,serif;font-size:24px;font-weight:500;letter-spacing:0;line-height:1.05;margin:0 0 4px}.workshop-title p{color:#aeb8c8;font-size:14px;margin:0}.workshop-stage.clean .workshop-title p{color:#667085}.workshop-panel{background:rgba(29,38,51,.55);border:1px solid rgba(151,163,184,.42);border-radius:9px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03);padding:12px}.workshop-stage.clean .workshop-panel{background:rgba(255,255,255,.78);border-color:#d8dee8}.workshop-panel h2,.workshop-panel h3{font-size:15px;font-weight:500;margin:0}.prompt-entry{display:grid;grid-gap:9px;gap:9px}.prompt-entry-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.prompt-entry-header h2{margin:0}.live-feedback-bar{align-items:center;display:flex;gap:6px}.live-count-pill{align-items:center;border:1px solid transparent;border-radius:20px;display:inline-flex;font-size:11px;font-weight:700;gap:5px;padding:3px 10px;transition:background .25s,border-color .25s,color .25s}.live-count-pill.level-basico{background:rgba(248,113,113,.15);border-color:#f87171;color:#f87171}.live-count-pill.level-adequado{background:rgba(251,191,36,.15);border-color:#fbbf24;color:#fbbf24}.live-count-pill.level-completo{background:rgba(74,222,128,.15);border-color:#4ade80;color:#4ade80}.live-count-pill.level-empty{background:rgba(156,163,175,.08);border-color:rgba(156,163,175,.3);color:#9ba7b8}.workshop-stage.clean .live-count-pill.level-basico{background:rgba(220,38,38,.07);border-color:#dc2626;color:#dc2626}.workshop-stage.clean .live-count-pill.level-adequado{background:rgba(217,119,6,.07);border-color:#d97706;color:#d97706}.workshop-stage.clean .live-count-pill.level-completo{background:rgba(22,163,74,.07);border-color:#16a34a;color:#16a34a}.workshop-stage.clean .live-count-pill.level-empty{background:rgba(107,114,128,.05);border-color:#d1d5db;color:#6b7280}.live-quality-label{font-size:10px;font-weight:600;letter-spacing:.05em;opacity:.75;text-transform:uppercase}.live-loading-dot{animation:live-pulse 1s ease-in-out infinite;background:currentColor;border-radius:50%;display:inline-block;height:6px;width:6px}@keyframes live-pulse{0%,to{opacity:.25}50%{opacity:1}}.workshop-input{background:rgba(36,46,61,.78);border:1px solid #5edee1;border-radius:7px;color:inherit;font-size:14px;min-height:166px;padding:11px;resize:vertical;width:100%}.workshop-stage.clean .workshop-input{background:#ffffff;border-color:#0f766e;color:#16202c}.workshop-input::placeholder,.workshop-placeholder{color:#9ba7b8}.workshop-actions{display:flex;flex-wrap:wrap;gap:8px;position:relative}.workshop-action{align-items:center;border:0;border-radius:7px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;min-height:34px;padding:7px 10px}.workshop-action.cyan{background:#5edee1;color:#0e2029}.workshop-action.purple{background:#a879ff;color:#211338}.workshop-action.coral{background:#ff7768;color:#35120f}.workshop-action.outline{background:transparent;border:1px solid rgba(214,224,239,.8);color:inherit}.convert-menu{position:relative}.convert-list{background:#1d2734;border:1px solid rgba(170,183,203,.58);border-radius:7px;box-shadow:0 18px 38px rgba(0,0,0,.38);display:grid;min-width:188px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:3}.workshop-stage.clean .convert-list{background:#ffffff;box-shadow:0 18px 38px rgba(31,41,55,.18)}.convert-list button{background:transparent;border:0;border-radius:5px;color:inherit;cursor:pointer;font-size:13px;min-height:30px;padding:6px 9px;text-align:left}.convert-list button:hover{background:rgba(15,118,110,.16)}.workshop-message{background:rgba(220,38,38,.12);border:1px solid rgba(248,113,113,.4);border-radius:6px;color:#fecaca;margin:0;padding:10px 12px}.workshop-stage.clean .workshop-message{color:#b91c1c}.technique-panel{align-self:end}.preview-panel>h3,.technique-panel>h2{border-bottom:1px solid rgba(151,163,184,.35);padding-bottom:8px}.technique-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr;margin-top:10px}.technique-card{background:rgba(63,76,95,.48);border:1px solid rgba(151,163,184,.4);border-radius:7px;min-height:112px;padding:11px}.workshop-stage.clean .technique-card{background:#f8fafc}.technique-card svg{color:#8aa8ff;float:right}.technique-card span{color:#aeb8c8;display:block;font-size:11px;margin-bottom:4px}.technique-card strong{display:block;font-size:16px;margin-bottom:8px}.technique-card p{color:#dbe3ef;font-size:13px;line-height:1.3;margin:0}.workshop-stage.clean .technique-card p,.workshop-stage.clean .technique-card span{color:#667085}.dashboard-header{align-items:center;display:flex;gap:12px;min-height:54px}.dashboard-header h2{font-size:20px;font-weight:600;margin:0}.panel-heading{align-items:center;border-bottom:1px solid rgba(151,163,184,.35);display:flex;justify-content:space-between;padding-bottom:8px}.panel-heading span{color:#9ba7b8;font-size:13px}.element-grid{display:grid;grid-gap:9px 14px;gap:9px 14px;grid-template-columns:repeat(3,minmax(150px,1fr));padding-top:10px}.element-pill{align-items:start;display:grid;font-size:13px;grid-template-columns:18px minmax(0,1fr);font-weight:700;grid-gap:3px 8px;gap:3px 8px;min-width:0}.element-pill small,.element-pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-pill small{color:#b8c2d2;font-size:11px;font-weight:500;grid-column:2}.workshop-stage.clean .element-pill small{color:#667085}.element-pill.missing{opacity:.68}.element-pill.detected svg{background:currentColor;border-radius:999px;color:#10202b;padding:2px}.marked-panel{min-height:166px}.marked-text{background:rgba(21,29,40,.52);border:1px solid rgba(151,163,184,.45);border-radius:8px;color:#eef4fb;font-size:14px;line-height:1.35;min-height:142px;padding:11px;white-space:pre-wrap}.workshop-stage.clean .marked-text{background:#ffffff;color:#16202c}.marked-text mark{border-bottom:2px solid;border-radius:3px;color:inherit;padding:0 2px}.preview-grid,.preview-panel{display:grid;grid-gap:10px;gap:10px}.preview-grid{grid-template-columns:1fr 1fr}.preview-box{background:rgba(63,76,95,.4);border:1px solid rgba(151,163,184,.45);border-radius:8px;min-height:98px;padding:11px}.workshop-stage.clean .preview-box{background:#ffffff}.preview-box span{color:#aeb8c8;display:block;font-size:12px;margin-bottom:7px}.workshop-stage.clean .preview-box span{color:#667085}.preview-box p{font-size:13px;line-height:1.3;margin:0;white-space:pre-wrap}.history-panel{display:grid;grid-gap:8px;gap:8px}.history-heading{align-items:center;display:flex;justify-content:space-between}.history-heading h3{margin:0}.history-heading span{color:#9ba7b8;font-size:12px}.history-list{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(5,minmax(0,1fr))}.history-list button{background:rgba(63,76,95,.4);border:1px solid rgba(151,163,184,.45);border-radius:6px;color:inherit;cursor:pointer;display:grid;grid-gap:3px;gap:3px;min-width:0;padding:7px;text-align:left}.workshop-stage.clean .history-list button{background:#ffffff}.history-list strong{color:#5edee1;font-size:12px}.workshop-stage.clean .history-list strong{color:#0f766e}.history-list p,.history-list span{color:#aeb8c8;font-size:11px;line-height:1.25;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-stage.clean .history-list p,.workshop-stage.clean .history-list span{color:#667085}.start-optimization{align-items:center;background:#5edee1;border:0;border-radius:7px;color:#0e2029;cursor:pointer;display:inline-flex;font-size:13px;font-weight:800;gap:6px;justify-self:end;min-height:36px;padding:8px 13px}.workshop-action.green{background:#22c55e;border-color:#22c55e;color:#052e16}.workshop-action.amber{background:#f59e0b;border-color:#f59e0b;color:#1c1002}.execute-panel{display:grid;grid-gap:10px;gap:10px}.execute-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.execute-header h2{margin:0}.execute-actions{display:flex;flex-wrap:wrap;gap:8px}.mock-badge{background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.4);border-radius:6px;color:#f59e0b;font-size:12px;padding:7px 11px}.workshop-stage.clean .mock-badge{background:#fef3c7;border-color:#fbbf24;color:#92400e}.execute-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr}.execute-box{background:rgba(63,76,95,.4);border:1px solid rgba(151,163,184,.45);border-radius:8px;min-height:100px;padding:11px}.workshop-stage.clean .execute-box{background:#ffffff}.execute-box span{color:#aeb8c8;display:block;font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:8px}.workshop-stage.clean .execute-box span{color:#667085}.execute-text{font-size:13px;line-height:1.5;white-space:pre-wrap}.execute-text em{color:#6b7a8d;font-style:normal}.workshop-stage.clean .execute-text em{color:#9ca3af}.streaming-cursor{animation:blink 1s step-end infinite;color:#5edee1}.textarea{border:1px solid var(--line);border-radius:8px;min-height:320px;padding:16px;resize:vertical;width:100%}.textarea.compact{min-height:118px}.no-paste{-webkit-touch-callout:none}.no-paste.is-blocked{animation:noPastePulse .9s ease-out}@keyframes noPastePulse{0%{border-color:var(--danger);box-shadow:0 0 0 0 rgba(220,38,38,.35)}70%{border-color:var(--danger);box-shadow:0 0 0 6px rgba(220,38,38,0)}to{border-color:var(--line);box-shadow:0 0 0 0 rgba(220,38,38,0)}}.no-paste-hint{align-items:center;color:var(--danger);display:flex;font-size:.82rem;gap:6px;margin:6px 0 0;animation:noPasteHintIn .18s ease-out}.no-paste-hint svg{flex-shrink:0}@keyframes noPasteHintIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.no-paste.is-blocked{animation:none;border-color:var(--danger)}.no-paste-hint{animation:none}}.section-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.question-list{display:grid;grid-gap:14px;gap:14px;margin-top:14px}.exercise,.question{display:grid;grid-gap:8px;gap:8px}.exercise{border-top:1px solid var(--line);padding-top:14px}.exercise:first-of-type{border-top:0;padding-top:0}.markdown h2,.markdown h3{color:var(--text)}.markdown p{color:var(--muted);line-height:1.55}.spacer{height:8px}.result{border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;margin-top:16px;padding-top:16px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.checklist{display:grid;grid-gap:8px;gap:8px}.check-item{align-items:center;border:1px solid var(--line);border-left-width:4px;border-radius:6px;display:flex;justify-content:space-between;min-height:38px;padding:8px 10px}.split{grid-gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.admin-stack,.split{display:grid;gap:16px}.admin-stack{grid-gap:16px}.admin-card{display:grid;grid-gap:14px;gap:14px}.admin-form{align-items:start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr) minmax(160px,.8fr) auto auto}.admin-form.class-form{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}.role-picker{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.role-picker label,.status-toggle{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:13px;gap:5px;min-height:32px;padding:5px 9px;white-space:nowrap}.admin-table{display:grid;grid-gap:8px;gap:8px}.admin-row{align-items:center;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(160px,.8fr) minmax(220px,1fr) minmax(220px,1fr) auto auto auto;padding:10px}.admin-row-with-company{grid-template-columns:minmax(140px,.7fr) minmax(200px,1fr) minmax(140px,.8fr) minmax(200px,1fr) auto auto auto}.company-cell{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.chip-company{background:#eef2ff;color:#3730a3;font-size:11px;padding:2px 8px;border-radius:999px}.chip-company.chip-manager{background:#fef3c7;color:#92400e}.chip-company.chip-teacher{background:#dbeafe;color:#1e40af}.admin-row span,.admin-row strong{display:block}.admin-row span{color:var(--muted);font-size:13px;margin-top:3px}.class-list{display:grid;grid-gap:12px;gap:12px}.class-card{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}.class-head,.member-add{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto}.member-list{display:flex;flex-wrap:wrap;gap:8px}.member-chip{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;display:inline-flex;gap:8px;min-height:34px;padding:5px 7px 5px 10px}.member-chip span{color:var(--muted);font-size:13px}.member-chip strong{color:var(--text)}.member-chip button{align-items:center;background:transparent;border:0;color:var(--muted);cursor:pointer;display:inline-flex;padding:2px}.content-editor{display:grid;grid-gap:10px;gap:10px}.teacher-report{border:1px solid var(--line);border-radius:8px;overflow:auto}.teacher-row{align-items:stretch;border-top:1px solid var(--line);display:grid;grid-auto-columns:minmax(150px,1fr);grid-auto-flow:column;min-width:720px}.teacher-row:first-child{border-top:0}.teacher-row>*{border-left:1px solid var(--line);padding:10px}.teacher-row>:first-child{border-left:0}.teacher-head{background:var(--surface-2)}.teacher-row small{color:var(--muted);display:block;margin-top:4px}.team-panel .team-create-form{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(220px,1fr) auto}.team-panel .team-count{color:var(--muted);font-weight:400;margin-left:4px}.team-actions,.team-tabs{display:flex;flex-wrap:wrap;gap:8px}.team-tabs{margin-bottom:8px}.team-dashboard,.team-goals,.team-members{display:grid;grid-gap:14px;gap:14px}.metric-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.metric-card{align-items:flex-start;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:14px}.metric-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.metric-value{font-size:26px;font-weight:600}.level-breakdown{display:grid;grid-gap:8px;gap:8px}.level-row{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(140px,.7fr) minmax(120px,2fr) minmax(80px,.6fr)}.level-name{font-size:13px}.level-bar{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.level-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-strong,var(--accent)));height:100%;transition:width .25s ease}.level-count{color:var(--muted);font-size:13px;text-align:right}.stuck-list{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stuck-card{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:10px 12px}.stuck-card span{color:var(--muted);font-size:13px}.module-stats{border:1px solid var(--line);border-radius:10px;overflow:auto}.module-row{align-items:center;border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(160px,2fr) minmax(80px,1fr) minmax(80px,1fr) minmax(80px,1fr);padding:10px 14px}.module-row:first-child{border-top:0}.module-head{background:var(--surface-2)}.member-row{grid-template-columns:minmax(180px,1.6fr) minmax(110px,.8fr) minmax(80px,.6fr) minmax(80px,.6fr) minmax(120px,.9fr) minmax(120px,.8fr)}.member-row.is-inactive{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.inactive-tag{color:var(--danger,#c14545);display:block;font-size:11px;margin-top:2px}.privacy-note{font-size:13px}.goal-form{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;display:grid;grid-gap:12px;gap:12px;padding:14px}.goal-form label{color:var(--muted);display:grid;font-size:12px;grid-gap:6px;gap:6px;text-transform:uppercase;letter-spacing:.04em}.goal-form .input{font-size:14px;text-transform:none;letter-spacing:0}.goal-form-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(180px,1fr) minmax(120px,.6fr) minmax(160px,.8fr)}.goal-card,.goal-list{display:grid;grid-gap:10px;gap:10px}.goal-card{border:1px solid var(--line);border-radius:10px;padding:14px}.goal-card-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.goal-card-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.goal-progress{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr minmax(120px,.4fr)}.invite-modal-backdrop{align-items:center;background:rgba(0,0,0,.5);display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.invite-modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;display:grid;grid-gap:12px;gap:12px;max-width:560px;padding:22px;width:92%}.invite-row{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr auto}@media (max-width:720px){.goal-form-grid,.team-panel .team-create-form{grid-template-columns:1fr}.member-row,.module-row{grid-template-columns:1fr 1fr}.goal-progress{grid-template-columns:1fr}}@media (max-width:820px){.topbar{align-items:flex-start;gap:12px;height:auto;padding:16px 20px;flex-direction:column}.nav{flex-wrap:wrap}.theme-toggle{align-self:flex-start}.brand{flex-wrap:wrap}.page-title{flex-direction:column}.admin-form,.admin-form.class-form,.admin-row,.class-head,.member-add,.workshop{grid-template-columns:1fr}.workshop-stage{padding:16px}.workshop-frame{grid-template-columns:1fr;min-height:0}.section-head,.workshop-title{flex-direction:column}.element-grid,.history-list,.preview-grid,.technique-grid{grid-template-columns:1fr}}.topbar-right{align-items:center;display:inline-flex;flex:0 0 auto;gap:12px}.nav a.login-link{background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:white;padding:8px 14px}.nav a.login-link:hover{filter:brightness(1.08);background:var(--accent);color:white}.user-menu{position:relative}.user-menu-trigger{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--text);cursor:pointer;display:inline-flex;font:inherit;gap:8px;padding:4px 12px 4px 4px}.user-menu-trigger:hover{background:var(--surface-2)}.user-avatar{align-items:center;background:var(--accent);border-radius:50%;color:white;display:inline-flex;font-size:13px;font-weight:700;height:32px;justify-content:center;width:32px}.user-menu-name{font-size:14px;font-weight:600;line-height:1.1;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.belt-badge{border-radius:4px;color:white;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 6px;text-transform:uppercase}.belt-azul{background:#2563eb}.belt-laranja{background:#f97316}.belt-verde{background:#16a34a}.user-menu-dropdown{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,.15);display:grid;grid-gap:2px;gap:2px;min-width:220px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:10}.user-menu-header{border-bottom:1px solid var(--line);display:grid;grid-gap:4px;gap:4px;margin-bottom:4px;padding:8px 10px}.user-menu-header strong{font-size:14px}.user-menu-header span{color:var(--muted);font-size:12px}.user-menu-item{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--text);cursor:pointer;display:flex;font:inherit;font-size:14px;gap:10px;padding:8px 10px;text-align:left;width:100%}.user-menu-item:hover{background:var(--surface-2)}.user-menu-item.danger{color:var(--danger)}.user-menu-item.danger:hover{background:rgba(220,38,38,.08)}.belt-progress{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.belt-progress-bar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.belt-progress-fill{height:100%;transition:width .3s}.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-form label{color:var(--muted);display:grid;font-size:13px;grid-gap:4px;gap:4px}@media (max-width:820px){.user-menu-name{display:none}.user-menu-dropdown{right:-8px}}.lang-switcher{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;color:var(--text);cursor:pointer;flex:0 0 auto;font-size:13px;font-weight:600;min-height:38px;padding:5px 14px;white-space:nowrap}.lang-switcher:focus{outline:2px solid var(--accent);outline-offset:2px}.password-input{position:relative;width:100%}.password-input-field{padding-right:40px}.password-input-toggle{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--muted);cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px}.password-input-toggle:hover{color:var(--text)}.password-input-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-overlay{align-items:center;background:rgba(0,0,0,.55);display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:50;animation:modal-fade .16s ease-out}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal-dialog{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.35);max-width:440px;padding:28px 24px 22px;position:relative;width:100%;animation:modal-pop .2s ease-out}@keyframes modal-pop{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-close{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;position:absolute;right:12px;top:12px;width:32px}.modal-close:hover{background:var(--surface-2);color:var(--text)}.xp-bar-wrapper{display:flex;flex-direction:column;gap:4px;min-width:220px}.xp-bar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.xp-level-badge{background:var(--accent);border-radius:4px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.xp-total{color:var(--muted);font-size:12px}.xp-bar-track{background:var(--surface-2);border-radius:4px;height:6px;overflow:hidden;width:100%}.xp-bar-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .6s ease}.xp-to-next{font-size:11px;margin:0}.skill-tree{margin-top:40px}.skill-tree-title{font-size:14px;font-weight:700;letter-spacing:.06em;margin-bottom:16px;text-transform:uppercase}.skill-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.skill-card{border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:4px;padding:14px 16px}.skill-unlocked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.skill-locked{opacity:.55}.skill-icon{color:var(--accent);margin-bottom:2px}.skill-locked .skill-icon{color:var(--muted)}.skill-name{font-size:13px;font-weight:700}.skill-desc{color:var(--muted);font-size:11px;line-height:1.4}.skill-badge{border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.05em;margin-top:6px;padding:2px 6px;text-transform:uppercase;width:-moz-fit-content;width:fit-content}.skill-badge-unlocked{background:var(--accent);color:#fff}.skill-badge-locked{background:var(--surface-2);color:var(--muted)}.lib-root{display:grid;grid-gap:24px;gap:24px}.lib-filters{display:grid;grid-gap:12px;gap:12px}.lib-search-wrap{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;max-width:480px;padding:0 12px}.lib-search-icon{color:var(--muted);flex-shrink:0}.lib-search{background:transparent;border:none;color:var(--text);flex:1 1;font-size:14px;min-height:40px;outline:none;padding:0;width:100%}.lib-search::placeholder{color:var(--muted)}.lib-domain-chips,.lib-level-chips{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lib-chip{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:20px;color:var(--muted);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:5px 13px;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.lib-chip:hover{background:var(--surface-2);color:var(--text)}.lib-chip-active{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.lib-chip-sm{font-size:12px;padding:4px 11px}.lib-count{color:var(--muted);font-size:12px;margin-left:4px}.lib-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.lib-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:10px;padding:16px;transition:box-shadow .15s,border-color .15s}.lib-card:hover{border-color:var(--accent);box-shadow:0 4px 18px rgba(0,0,0,.08)}:root[data-theme=dark] .lib-card:hover{box-shadow:0 4px 18px rgba(0,0,0,.28)}.lib-card-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.lib-domain-badge{align-items:center;display:inline-flex;gap:5px}.lib-diff-badge,.lib-domain-badge{border:1px solid transparent;border-radius:5px;font-size:11px;font-weight:700;letter-spacing:.03em;padding:3px 9px;text-transform:uppercase}.lib-card-title{font-size:15px;font-weight:700;line-height:1.25;margin:0}.lib-card-desc{color:var(--muted);font-size:13px;line-height:1.55;margin:0;flex:1 1}.lib-card-footer{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-top:4px}.lib-card-tags{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.lib-technique-tag{background:var(--surface-2);color:var(--muted);font-weight:600}.lib-elements-pill,.lib-technique-tag{border-radius:4px;font-size:11px;padding:2px 8px}.lib-elements-pill{background:rgba(15,118,110,.1);color:var(--accent);font-weight:700}:root[data-theme=dark] .lib-elements-pill{background:rgba(15,118,110,.12)}.lib-card-actions{display:flex;gap:6px}.lib-preview-btn{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font-size:12px;font-weight:700;padding:6px 12px;transition:background .15s;white-space:nowrap}.lib-preview-btn:hover{background:var(--line)}.lib-open-btn{background:var(--accent);border:none;border-radius:6px;color:white;cursor:pointer;font-size:12px;font-weight:700;padding:6px 12px;transition:opacity .15s;white-space:nowrap}.lib-open-btn:hover{opacity:.85}:root[data-theme=dark] .lib-open-btn{color:#0e2029}.lib-favorite-btn{align-items:center;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;gap:6px;justify-content:center;min-height:32px;padding:6px 10px;transition:color .15s,border-color .15s}.lib-favorite-btn:hover{border-color:#ef4444;color:#ef4444}.lib-favorite-btn svg{flex:0 0 auto}.lib-preview-modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.3);display:grid;grid-gap:16px;gap:16px;max-height:88vh;max-width:740px;overflow:hidden;padding:24px;width:100%;animation:modal-pop .2s ease-out}.lib-preview-modal-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.lib-preview-modal-meta{display:grid;grid-gap:8px;gap:8px;min-width:0}.lib-preview-modal-badges{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.lib-preview-modal-title{font-size:18px;font-weight:700;line-height:1.2;margin:0}.lib-preview-modal-desc{color:var(--muted);font-size:13px;margin:0}.lib-preview-prompt{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px;line-height:1.65;max-height:420px;overflow-y:auto;padding:16px 20px;white-space:pre-wrap;word-break:break-word}.lib-preview-actions{align-items:center;display:flex;gap:10px;justify-content:flex-end}.lib-copy-btn{align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:5px;padding:6px 12px;transition:background .15s}.lib-copy-btn:hover{background:var(--line)}@media (max-width:640px){.lib-preview-modal{padding:18px}.lib-card-actions{flex-direction:column;width:100%}.lib-card-actions button{text-align:center;width:100%}}.lib-empty{color:var(--muted);padding:48px 0;text-align:center}@media (max-width:640px){.lib-grid{grid-template-columns:1fr}.lib-card-footer{flex-direction:column;align-items:flex-start}.lib-open-btn{width:100%;text-align:center}}.tc-table-panel{display:grid;grid-gap:10px;gap:10px}.tc-table-panel>h2{border-bottom:1px solid rgba(151,163,184,.35);padding-bottom:8px}.workshop-stage.clean .tc-table-panel>h2{border-bottom-color:#e5e9f0}.tc-table{border-collapse:collapse;font-size:12px;width:100%}.tc-table th{color:#9ba7b8;font-size:10px;font-weight:700;letter-spacing:.05em;padding:0 8px 8px;text-align:left;text-transform:uppercase}.workshop-stage.clean .tc-table th{color:#667085}.tc-table td{border-top:1px solid rgba(151,163,184,.18);padding:7px 8px;vertical-align:middle}.workshop-stage.clean .tc-table td{border-top-color:#e5e9f0}.tc-badge{border-radius:4px;border:1px solid transparent;letter-spacing:.03em}.tc-badge,.tc-complexity{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;text-transform:uppercase;white-space:nowrap}.tc-complexity{border-radius:4px;letter-spacing:.04em}.tc-complexity-low{background:rgba(74,222,128,.14);color:#4ade80}.tc-complexity-medium{background:rgba(251,191,36,.14);color:#fbbf24}.tc-complexity-high{background:rgba(248,113,113,.14);color:#f87171}.workshop-stage.clean .tc-complexity-low{background:rgba(22,163,74,.08);color:#16a34a}.workshop-stage.clean .tc-complexity-medium{background:rgba(217,119,6,.08);color:#d97706}.workshop-stage.clean .tc-complexity-high{background:rgba(220,38,38,.08);color:#dc2626}.tc-muted{color:#aeb8c8;line-height:1.4}.workshop-stage.clean .tc-muted{color:#667085}@media (max-width:820px){.tc-table td:nth-child(4),.tc-table th:nth-child(4){display:none}}.certificate-page{display:grid;grid-gap:18px;gap:18px;margin:24px auto;max-width:920px;padding:0 18px}.certificate-paper{background:var(--surface);border:1px solid var(--line);border-radius:12px;display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(0,1fr) auto;padding:32px;position:relative}.certificate-paper:before{background:linear-gradient(135deg,#0ea5a3,#4f46e5);border-radius:12px 12px 0 0;content:"";height:6px;left:0;position:absolute;right:0;top:0}.certificate-paper h1{font-size:1.6rem;margin:0 0 4px}.certificate-paper .student-name{font-size:1.9rem;font-weight:700;letter-spacing:.5px;margin:12px 0 8px}.certificate-paper .trail-line{font-size:1.1rem;margin:0 0 18px}.certificate-stats{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:18px 0}.certificate-stats .stat{background:rgba(15,23,42,.03);border:1px solid var(--line);border-radius:8px;padding:12px}.certificate-stats .stat-label{color:var(--muted);display:block;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.certificate-stats .stat-value{font-size:1.4rem;font-weight:600;margin-top:4px}.certificate-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.certificate-tag{background:rgba(14,165,163,.1);border:1px solid rgba(14,165,163,.3);border-radius:999px;color:#0ea5a3;font-size:.82rem;padding:3px 10px}.certificate-qr{align-items:center;background:white;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:200px;padding:18px}.certificate-qr svg{height:auto;max-width:180px;width:100%}.certificate-qr small{color:var(--muted);font-size:.75rem;text-align:center}.certificate-footer{align-items:center;border-top:1px dashed var(--line);color:var(--muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:12px;grid-column:1/-1;justify-content:space-between;padding-top:14px}.certificate-uuid{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;word-break:break-all}.certificate-actions{display:flex;flex-wrap:wrap;gap:10px}.certificate-banner{background:linear-gradient(135deg,rgba(14,165,163,.12),rgba(79,70,229,.12));border:1px solid rgba(14,165,163,.4);border-radius:10px;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin-top:20px;padding:14px 18px}.certificate-banner h3{margin:0 0 4px}.certificate-banner p{color:var(--muted);margin:0}.certificate-banner .badge{align-self:center;background:#0ea5a3;border-radius:999px;color:white;font-size:.72rem;padding:4px 10px;text-transform:uppercase}@media (max-width:720px){.certificate-paper{grid-template-columns:minmax(0,1fr)}.certificate-qr{justify-self:start}}@media print{.certificate-actions,.certificate-banner,.topbar{display:none!important}.certificate-paper{border:1px solid #ccc;box-shadow:none}}.history-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;grid-gap:14px;gap:14px;padding:18px}.history-card-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.history-card-header h3{margin:0 0 4px}.history-card-header p{margin:0}.history-stats{display:flex;flex-wrap:wrap;gap:18px}.history-stats>div{display:flex;flex-direction:column;min-width:70px}.history-stat-label{color:var(--muted);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.history-stats strong{font-size:1.25rem}.history-table{border-collapse:collapse;width:100%}.history-table td,.history-table th{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left}.history-table th{color:var(--muted);font-size:.78rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.history-table tr:last-child td{border-bottom:none}.score-pill{border-radius:999px;display:inline-block;font-size:.85rem;font-weight:600;min-width:44px;padding:2px 10px;text-align:center}.score-pill.ok{background:rgba(14,165,163,.12);color:#0ea5a3}.score-pill.warn{background:rgba(217,119,6,.12);color:#c2410c}.score-pill.danger{background:rgba(220,38,38,.12);color:#dc2626}@media (max-width:600px){.history-table td:nth-child(3),.history-table th:nth-child(3){display:none}}.gap-hint{color:#c2410c;font-size:.85rem;margin:4px 0 8px}.interview-banner{align-items:flex-start;border-radius:8px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:auto minmax(0,1fr);margin:12px 0;padding:12px 14px}.interview-banner strong{display:block;font-size:1rem}.interview-banner p{color:var(--muted);margin:4px 0 0}.interview-banner.passed{background:rgba(14,165,163,.1);border:1px solid rgba(14,165,163,.35);color:#0ea5a3}.interview-banner.not-passed{background:rgba(217,119,6,.1);border:1px solid rgba(217,119,6,.35);color:#c2410c}.interview-banner.not-passed p,.interview-banner.passed p{color:var(--muted)}.model-compare-toggle{display:inline-flex;align-items:center;gap:8px;margin-left:auto;margin-right:12px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(96,165,250,.08);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.model-compare-toggle input{accent-color:#f59e0b}.model-compare-panel{display:flex;flex-direction:column;gap:18px}.model-compare-header h3{margin:0 0 4px;font-size:14px;letter-spacing:.08em;text-transform:uppercase}.model-compare-header p{margin:0;font-size:13px;color:var(--muted)}.model-compare-disabled{padding:12px 14px;border-radius:10px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.35);color:var(--text);font-size:13px}.model-compare-selection{display:flex;flex-direction:column;gap:12px}.model-compare-selection-header{display:flex;flex-direction:column;gap:2px}.model-compare-selection-header strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase}.model-compare-selection-header span{font-size:12px;color:var(--muted)}.model-compare-options{display:flex;flex-wrap:wrap;gap:10px}.model-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:13px;font-weight:600;color:var(--text);transition:all .15s ease}.model-chip:hover:not(:disabled){background:rgba(96,165,250,.05)}.model-chip.selected{background:rgba(245,158,11,.08);box-shadow:0 0 0 2px rgba(245,158,11,.25)}.model-chip:disabled{opacity:.4;cursor:not-allowed}.model-chip-vendor{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700}.model-chip-label{font-size:13px}.model-compare-actions{display:flex;align-items:center;gap:10px}.model-compare-actions small{color:var(--muted);font-size:12px}.model-compare-grid{display:grid;grid-gap:14px;gap:14px}.model-compare-grid.cols-2{grid-template-columns:1fr 1fr}.model-compare-grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:1100px){.model-compare-grid.cols-2,.model-compare-grid.cols-3{grid-template-columns:1fr}}.model-compare-column{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(15,23,42,.02)}.workshop-stage.dark .model-compare-column{background:rgba(255,255,255,.03)}.model-column-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}.model-column-header strong{display:block;font-size:13px}.model-column-header small{display:block}.model-column-header small,.model-column-status{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.model-column-status{padding:3px 8px;border-radius:999px}.status-pending{background:rgba(148,163,184,.2);color:var(--muted)}.status-streaming{background:rgba(245,158,11,.15);color:#d97706}.status-done{background:rgba(34,197,94,.15);color:#15803d}.status-error{background:rgba(239,68,68,.15);color:#b91c1c}.model-column-text{flex:1 1;padding:14px;font-size:13px;line-height:1.55;white-space:pre-wrap;min-height:140px;max-height:360px;overflow-y:auto}.model-column-error{margin:0;color:#b91c1c;font-size:12px}.model-column-meta{display:flex;flex-wrap:wrap;gap:10px;padding:10px 14px;font-size:11px;color:var(--muted);border-top:1px dashed var(--line);background:rgba(15,23,42,.02)}.workshop-stage.dark .model-column-meta{background:rgba(255,255,255,.02)}.model-column-vote{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.model-vote-buttons{display:inline-flex;gap:6px}.vote-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--muted);transition:all .15s ease}.vote-btn:hover{background:rgba(96,165,250,.08);color:var(--text)}.vote-btn.active.up{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.5);color:#15803d}.vote-btn.active.down{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.5);color:#b91c1c}.model-chip-free{display:inline-block;padding:2px 6px;border-radius:4px;font-size:9px;letter-spacing:.1em;font-weight:800;background:#16a34a;color:#fff}.model-compare-toolbar{display:flex;gap:8px;flex-wrap:wrap}.byok-btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:12px;font-weight:600;color:var(--text)}.byok-btn-ghost:hover:not(:disabled){background:rgba(96,165,250,.08)}.byok-btn-ghost:disabled{opacity:.5;cursor:not-allowed}.byok-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:none;background:#f59e0b;color:#fff;font-weight:700;cursor:pointer;font-size:12px;letter-spacing:.04em}.byok-btn-primary:hover{background:#d97706}.byok-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.byok-modal{width:100%;max-width:560px;max-height:90vh;background:var(--surface);color:var(--text);border-radius:14px;border:1px solid var(--line);box-shadow:0 24px 80px rgba(2,6,23,.35);overflow:hidden;display:flex;flex-direction:column}.byok-modal.scan-modal{max-width:760px}.byok-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.byok-modal-header>div:first-child{display:inline-flex;align-items:center;gap:8px}.byok-modal-header h2{margin:0;font-size:14px;letter-spacing:.06em;text-transform:uppercase}.byok-modal-close{background:transparent;border:0;cursor:pointer;color:var(--muted);padding:4px}.byok-modal-close:hover{color:var(--text)}.byok-modal-sub{margin:12px 20px 0;font-size:13px;color:var(--muted);line-height:1.5}.byok-modal-notice{display:flex;align-items:center;gap:6px;margin:12px 20px;padding:8px 12px;border-radius:8px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25);color:#047857;font-size:11px;line-height:1.4}.byok-fields{padding:0 20px 12px;gap:14px;overflow-y:auto}.byok-field,.byok-fields{display:flex;flex-direction:column}.byok-field{gap:6px}.byok-field-label{display:flex;flex-direction:column}.byok-field-label strong{font-size:13px}.byok-field-label small{font-size:11px;color:var(--muted)}.byok-field-input{display:flex;align-items:stretch;gap:4px}.byok-field-input input{flex:1 1;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;color:var(--text)}.byok-field-input input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}.byok-reveal{width:36px;background:var(--surface);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px;color:var(--muted)}.byok-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--line);background:var(--surface-2)}.byok-modal-footer>div,.scan-modal-actions{display:inline-flex;gap:8px}.scan-modal-actions,.scan-search{align-items:center}.scan-search{display:flex;gap:8px;margin:12px 20px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2)}.scan-search input{flex:1 1;border:0;background:transparent;outline:none;font-size:13px;color:var(--text)}.scan-count{font-size:11px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.scan-modal-body{padding:0 20px 20px;overflow-y:auto;flex:1 1}.scan-empty{text-align:center;color:var(--muted);padding:24px 0;font-size:13px}.scan-group{margin-bottom:20px}.scan-group h3{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:8px 0}.scan-group h3 span{font-weight:400;opacity:.65}.scan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:8px;gap:8px}.scan-row{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer;gap:2px}.scan-row:hover{border-color:#f59e0b;background:rgba(245,158,11,.05)}.scan-row strong{font-size:13px}.scan-row small{font-size:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--muted);word-break:break-all}.scan-spin{animation:scan-spin-anim .9s linear infinite}@keyframes scan-spin-anim{to{transform:rotate(1turn)}}:root{--level-iniciante:#3B82F6;--level-intermediario:#F97316;--level-avancado:#22C55E}.classroom-page{max-width:960px;margin:0 auto;padding:32px 24px;display:flex;flex-direction:column;gap:32px}.classroom-page-header{display:flex;align-items:center;gap:14px}.classroom-page-header h1{font-size:26px;font-weight:700;margin:0}.classroom-level-section{border:1px solid var(--line);border-radius:12px;overflow:hidden}.classroom-level-header{display:flex;align-items:center;gap:12px;padding:16px 20px;color:white;font-weight:700;font-size:16px}.classroom-level-header .level-count{margin-left:auto;font-size:12px;font-weight:600;opacity:.85;background:rgba(255,255,255,.2);border-radius:20px;padding:2px 10px}.classroom-level-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px;padding:20px;background:var(--surface)}.classroom-module-card{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:16px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s}.classroom-module-card:not(.locked):hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}.classroom-module-card.locked{opacity:.55}.classroom-module-card h3{font-size:14px;font-weight:600;margin:0;line-height:1.4}.classroom-module-card .card-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.classroom-module-card .card-score{font-size:12px;color:var(--muted)}.classroom-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;border-radius:4px;padding:2px 8px;width:-moz-fit-content;width:fit-content}.classroom-status-badge.completed{background:rgba(34,197,94,.12);color:#16a34a}.classroom-status-badge.available{background:rgba(59,130,246,.12);color:#2563eb}.classroom-status-badge.locked{background:var(--surface-2);color:var(--muted)}:root[data-theme=dark] .classroom-status-badge.completed{color:#4ade80}:root[data-theme=dark] .classroom-status-badge.available{color:#93c5fd}.classroom-module-card .card-actions{margin-top:auto;padding-top:8px}.classroom-empty-modules{padding:24px;color:var(--muted);font-size:14px;text-align:center}.dashboard-classroom-notice{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px 24px;display:flex;align-items:center;gap:14px;font-size:14px;color:var(--muted)}.dashboard-classroom-notice a{color:var(--accent);font-weight:600;text-decoration:underline}.practice-chat-section{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;margin-top:24px;display:flex;flex-direction:column;gap:16px}.practice-chat-header{display:flex;align-items:flex-start;gap:12px}.practice-chat-header h2{margin:0 0 2px;font-size:1rem;font-weight:600}.practice-chat-header .muted{margin:0;font-size:.82rem}.practice-chat-messages{display:flex;flex-direction:column;gap:14px;max-height:420px;overflow-y:auto;padding-right:4px}.practice-chat-message{display:flex;flex-direction:column;gap:6px}.practice-chat-message--user .practice-chat-bubble{background:var(--accent-subtle,rgba(99,102,241,.08));border-radius:8px 8px 4px 8px;align-self:flex-end;max-width:90%}.practice-chat-message--coach .practice-chat-bubble{background:var(--bg);border:1px solid var(--line);border-radius:8px 8px 8px 4px;max-width:100%}.practice-chat-message--error .practice-chat-bubble{border-color:var(--error,#f87171);background:rgba(248,113,113,.06)}.practice-chat-avatar{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.practice-chat-message--user .practice-chat-avatar{justify-content:flex-end}.practice-chat-role-label{line-height:1}.practice-chat-bubble{padding:12px 16px;font-size:.88rem;line-height:1.55}.practice-chat-bubble ol,.practice-chat-bubble p,.practice-chat-bubble ul{margin:0 0 8px}.practice-chat-bubble p:last-child{margin-bottom:0}.practice-chat-mock-notice{font-size:.76rem;color:var(--muted);background:var(--line);border-radius:4px;padding:4px 8px;margin-bottom:10px!important}.practice-chat-cursor{display:inline-block;width:2px;height:1em;background:var(--accent);vertical-align:middle;margin-left:2px;animation:blink 1s step-start infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.practice-chat-input-row{display:flex;flex-direction:column;gap:10px}.practice-chat-textarea{resize:vertical;min-height:96px;font-size:.88rem}.practice-chat-send-btn{align-self:flex-end;display:flex;align-items:center;gap:6px}.practice-chat-login-wall{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 0;text-align:center}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border,#e5e7eb);margin-top:16px}.admin-tabs button{background:transparent;padding:10px 16px;cursor:pointer;color:var(--muted,#6b7280);font-weight:500;border:none;border-bottom:2px solid transparent}.admin-tabs button.active{color:var(--fg,#111);border-bottom-color:var(--accent,#2563eb)}.admin-tabs button:hover:not(.active){color:var(--fg,#111)}.perm-matrix{width:100%;border-collapse:collapse;font-size:14px}.perm-matrix th{font-weight:600;padding:8px;background:var(--surface-2,#f9fafb)}.perm-matrix tbody tr:nth-child(odd){background:var(--surface-2,#fafafa)}.perm-matrix tbody td{border-top:1px solid var(--border,#eee)}.perm-matrix code{font-size:13px}.perm-diff{margin-top:14px;padding:10px 12px;border-radius:8px;background:var(--surface-2,#fffbeb);border:1px solid #fde68a}.perm-diff-row{display:flex;gap:8px;align-items:center;padding:4px 0}.chip{display:inline-flex;gap:4px;align-items:center;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-2,#f3f4f6);color:var(--fg)}.chip-add{background:#dcfce7;color:#166534}.chip-rm{background:#fee2e2;color:#991b1b}.chip-active{background:#dcfce7;color:#166534}.chip-suspended{background:#fef3c7;color:#92400e}.chip-deleted{background:#fee2e2;color:#991b1b}.button.danger{background:#dc2626;color:white;border-color:#dc2626}.button.danger:disabled{opacity:.5}.icon-btn{background:transparent;border:none;cursor:pointer;padding:4px;color:var(--muted);border-radius:6px}.icon-btn:hover{background:var(--surface-2,#f3f4f6)}.icon-btn-danger{color:#dc2626}.icon-btn-danger:hover{background:#fee2e2;color:#b91c1c}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.admin-row-deleted{opacity:.65;background:var(--surface-2,#fafafa)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;margin-left:8px}.badge-deleted{background:#fee2e2;color:#991b1b}.danger-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.danger-modal{background:var(--surface,#fff);border-radius:12px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;padding:20px;box-shadow:0 10px 40px rgba(0,0,0,.2)}.danger-modal-head{display:flex;gap:8px;align-items:center;margin-bottom:4px}.danger-cascade{background:var(--surface-2,#f9fafb);padding:10px 12px;border-radius:8px}.error{color:#dc2626;font-size:13px}.dashboard-grid{display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start}@media (max-width:960px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-grid__main{display:flex;flex-direction:column;gap:16px;min-width:0}.dashboard-grid__aside{position:-webkit-sticky;position:sticky;top:88px;display:flex;flex-direction:column;gap:16px}.my-teacher-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.my-teacher-card__header h2{font-size:16px;margin:0;color:var(--text)}.my-teacher-card__error{background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.3);color:#dc2626;padding:8px 10px;border-radius:6px;font-size:13px;margin:0}.my-teacher-card__intro{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.my-teacher-card__hint,.my-teacher-card__meta{color:var(--muted);font-size:12px;margin:0}.my-teacher-card__hint{font-style:italic}.my-teacher-card__search{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--muted)}.my-teacher-card__search input{background:transparent;border:none;color:var(--text);flex:1 1;outline:none;min-width:0}.my-teacher-card__list{list-style:none;margin:0;display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding:0 4px 0 0}.my-teacher-card__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.my-teacher-card__item-body{display:flex;flex-direction:column;gap:2px;min-width:0}.my-teacher-card__item-body strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-teacher-card__avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:white;font-weight:600;flex:0 0 32px}.my-teacher-card__cta{font-size:12px;min-height:32px;padding:4px 10px}.my-teacher-card__danger{font-size:13px;min-height:34px;padding:4px 10px;align-self:flex-start;color:#dc2626;border-color:rgba(220,38,38,.4)}.my-teacher-card__active{display:grid;grid-template-columns:auto 1fr;grid-gap:12px;gap:12px;align-items:start}.my-teacher-card__active-body{display:flex;flex-direction:column;gap:6px;min-width:0}.my-teacher-card__active-body strong{font-size:15px}.my-teacher-card__badge{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.my-teacher-card__badge--pending{background:rgba(249,115,22,.16);color:#c2410c}.my-teacher-card__badge--accepted{background:rgba(16,185,129,.16);color:#047857}@keyframes mtc-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.my-teacher-card__badge .spin{animation:mtc-spin 1.2s linear infinite}.reinforce-panel{display:flex;flex-direction:column;gap:16px}.reinforce-panel__tabs{display:inline-flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:4px;align-self:flex-start}.reinforce-panel__tab{background:transparent;border:none;color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:500}.reinforce-panel__tab--active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.08)}.reinforce-panel__grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.reinforce-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.reinforce-card__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.reinforce-card__head strong{font-size:14px}.reinforce-card__meta{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.reinforce-card__textarea{width:100%;min-height:110px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;color:var(--text);resize:vertical}.reinforce-card__footer{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.reinforce-card__actions{display:flex;gap:6px}.reinforce-card__delete,.reinforce-card__save{font-size:12px;min-height:32px;padding:4px 10px}.reinforce-card__delete{color:#dc2626;border-color:rgba(220,38,38,.4)}.reinforce-requests{display:flex;flex-direction:column;gap:8px}.reinforce-requests__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.reinforce-requests__row strong{font-size:14px}.reinforce-requests__actions{display:flex;gap:6px}.module-reinforcement{background:linear-gradient(135deg,rgba(15,118,110,.06),rgba(124,58,237,.06));border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:16px 18px;margin:18px 0}.module-reinforcement__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}.module-reinforcement__head h3{margin:0;font-size:15px;color:var(--accent)}.module-reinforcement__author{color:var(--muted);font-size:12px}.module-reinforcement__body{white-space:pre-wrap;line-height:1.55;color:var(--text)}.module-reinforcement__hint{font-style:italic;color:var(--muted);font-size:13px;background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:10px 12px;margin:12px 0}.module-reinforcement--preview{background:var(--surface-2);border-left:1px dashed var(--accent);border:1px dashed var(--accent);border-left-width:4px}.module-reinforcement__preview-hint{margin:8px 0 0;font-size:12px;font-style:italic;color:var(--muted)}.home{margin:0 auto;max-width:1180px;padding:48px 24px 72px}.home-hero{align-items:center;display:grid;grid-gap:52px;gap:52px;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}.home-badge{align-items:center;background:rgba(15,118,110,.1);border:1px solid rgba(15,118,110,.24);border-radius:999px;color:var(--accent);display:inline-flex;font-size:13px;font-weight:600;gap:7px;margin-bottom:22px;padding:7px 14px}.home-hero-title{font-size:50px;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:0 0 20px}.accent-text{color:var(--accent)}.home-hero-sub{color:var(--muted);font-size:17px;line-height:1.6;margin:0 0 28px;max-width:520px}.home-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px}.home-hero-actions .button{font-size:15px;font-weight:600;min-height:48px;padding:12px 22px}.home-checks{color:var(--muted);display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:0;padding:0}.home-checks li{align-items:center;display:inline-flex;font-size:14px;font-weight:500;gap:7px}.home-checks svg{color:var(--accent);flex:0 0 auto}.home-chat{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:18px;padding:22px}.home-chat-head{align-items:center;color:var(--muted);display:flex;font-size:13px;font-weight:500;justify-content:space-between;margin-bottom:10px}.home-chat-meta{align-items:center;display:inline-flex;gap:8px;opacity:.65}.home-chat-bubble{display:flex;gap:12px}.home-chat-avatar{align-items:center;background:var(--accent);border-radius:50%;color:#fff;display:inline-flex;flex:0 0 auto;height:34px;justify-content:center;width:34px}.home-chat-text{background:var(--surface-2);border-radius:12px;color:var(--text);font-size:14px;line-height:1.55;padding:14px 16px}.home-chat-text p{margin:0 0 10px}.home-chat-text p:last-child{margin-bottom:0}.home-chat-divider{border-top:1px solid var(--line)}.home-chat-input{align-items:center;border:1px solid var(--line);border-radius:12px;color:var(--muted);display:flex;font-size:14px;gap:12px;justify-content:space-between;padding:10px 10px 10px 16px}.home-chat-send{align-items:center;background:var(--accent);border-radius:9px;color:#fff;display:inline-flex;flex:0 0 auto;height:36px;justify-content:center;width:40px}.home-features{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(4,1fr);margin-top:72px}.home-feature{display:grid;grid-gap:10px;gap:10px;padding:22px}.home-feature-icon{align-items:center;background:rgba(15,118,110,.1);border-radius:10px;color:var(--accent);display:inline-flex;height:42px;justify-content:center;width:42px}.home-feature h3{font-size:16px;margin:4px 0 0}.home-feature p{font-size:14px;line-height:1.55;margin:0}.home-tools{align-items:center;display:flex;flex-wrap:wrap;gap:28px;justify-content:center;margin-top:22px;padding:22px 26px}.home-tools-label{color:var(--muted);font-size:14px;font-weight:600}.home-tools-divider{background:var(--line);flex:0 0 auto;height:22px;width:1px}.home-tool{align-items:center;display:inline-flex;font-size:15px;font-weight:600;gap:9px}.home-tool-muted{color:var(--muted);font-weight:500}@media (max-width:920px){.home-hero{gap:36px;grid-template-columns:1fr}.home-hero-title{font-size:38px}.home-features{grid-template-columns:repeat(2,1fr);margin-top:52px}}@media (max-width:560px){.home{padding:32px 18px 56px}.home-hero-title{font-size:31px}.home-features{grid-template-columns:1fr}.home-tools{gap:16px}.home-tools-divider{display:none}}