
/* Coffee Rush STA v10.4.0 · Plataforma de aula (prototipo local)
   El backend real sustituirá esta capa de persistencia local sin cambiar el motor económico. */
:root{
  --platform-navy:#12335b;
  --platform-blue:#005a9b;
  --platform-yellow:#fbcd00;
  --platform-soft:#f4f8fc;
  --platform-border:#d9e3ee;
  --platform-green:#178448;
  --platform-red:#b93d39;
}
html[data-platform-managed="student"] body{min-height:100vh}
.platform-gate{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(180deg,#f7fbff 0%,#edf5fb 100%);color:#16304f}
.platform-gate[hidden],.platform-student-app[hidden]{display:none!important}
.access-shell{width:min(720px,100%);display:grid;gap:20px}
.access-brand{display:flex;align-items:center;gap:14px;justify-content:center;text-align:left}
.access-brand-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--platform-blue);color:white;font-weight:900;font-size:22px;box-shadow:0 12px 28px rgba(0,90,155,.16)}
.access-brand strong{display:block;font-size:clamp(24px,4vw,34px);line-height:1}.access-brand span{display:block;color:#5c6f84;margin-top:5px;font-size:14px}
.access-card{background:white;border:1px solid var(--platform-border);border-radius:24px;padding:clamp(24px,4vw,40px);box-shadow:0 18px 48px rgba(25,63,99,.10)}
.access-card h1{font-size:clamp(26px,4vw,38px);margin:0 0 8px;color:var(--platform-navy)}
.access-card>p{margin:0 0 26px;color:#617387;line-height:1.55}
.access-code-label{display:grid;gap:9px;font-weight:800;color:#294763}.access-code-label small{font-weight:500;color:#6b7d90}
.access-code-input{width:100%;box-sizing:border-box;padding:16px 18px;border:2px solid #cbd8e5;border-radius:14px;font:800 20px/1.2 Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#183b60;background:#fbfdff;outline:none}
.access-code-input:focus{border-color:var(--platform-blue);box-shadow:0 0 0 4px rgba(0,90,155,.12)}
.access-actions{display:flex;gap:12px;margin-top:18px}.access-actions button{min-height:48px;border:0;border-radius:13px;padding:0 22px;font:800 15px Arial,sans-serif;cursor:pointer}.access-enter{background:var(--platform-blue);color:white;flex:1}.access-enter:hover{background:#004b82}.access-help{background:#eef4f9;color:#274a6d}
.access-error{min-height:24px;margin-top:12px;color:var(--platform-red);font-weight:700}.access-example{margin-top:22px;border-top:1px solid #e6edf4;padding-top:18px;color:#6b7c8d;font-size:13px;line-height:1.5}
.platform-dev-note{padding:12px 15px;border-radius:12px;background:#fff7d6;border:1px solid #f0d56a;color:#6f5a00;font-size:13px;line-height:1.45}
.platform-session-chip{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid #d7e3ee;background:#f8fbfe;border-radius:12px;color:#274967;white-space:nowrap}.platform-session-chip strong{font-size:13px}.platform-session-chip span{font-size:11px;color:#6b7d8f}
.platform-logout{border:0;background:#edf3f8;color:#34506c;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer}.platform-logout:hover{background:#e2ebf3}
html[data-classroom-session="active"] #resetBtn,
html[data-classroom-session="active"] #loadBtn,
html[data-classroom-session="active"] #exportBtn,
html[data-classroom-session="active"] #importBtn,
html[data-classroom-session="active"] #csvBtn,
html[data-classroom-session="active"] .setup-view{display:none!important}
html[data-classroom-session="active"] #teamName,
html[data-classroom-session="active"] #seed{pointer-events:none}

/* Profesor */
.teacher-page{margin:0;min-height:100vh;background:#f2f6fa;color:#17334f;font:14px/1.45 Arial,Helvetica,sans-serif}
.teacher-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 22px;background:white;border-bottom:1px solid #dce6ef;box-shadow:0 4px 18px rgba(34,68,102,.05)}
.teacher-brand strong{display:block;font-size:19px;color:var(--platform-navy)}.teacher-brand span{font-size:12px;color:#6d7e8f}
.teacher-badge{padding:8px 11px;background:#fff7d6;border:1px solid #ecd56c;border-radius:10px;color:#6f5900;font-weight:700;font-size:12px}
.teacher-layout{width:min(1450px,calc(100% - 32px));margin:24px auto 60px;display:grid;grid-template-columns:285px minmax(0,1fr);gap:20px}
.teacher-panel{background:white;border:1px solid #dce6ef;border-radius:18px;box-shadow:0 10px 30px rgba(35,68,101,.06)}
.teacher-sidebar{padding:16px;align-self:start;position:sticky;top:86px}.teacher-sidebar h2{font-size:15px;margin:0 0 12px}.class-list{display:grid;gap:7px}.class-button{width:100%;border:1px solid transparent;background:#f6f9fc;border-radius:11px;padding:10px 12px;text-align:left;cursor:pointer;color:#244663}.class-button:hover{background:#edf4fa}.class-button.active{background:#e5f2fb;border-color:#a9d0eb;color:#004e87}.class-button strong{display:block;font-size:13px}.class-button span{font-size:11px;color:#718294}.teacher-main{display:grid;gap:18px}.teacher-class-head{padding:22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}.teacher-class-head h1{font-size:26px;margin:0 0 4px}.teacher-class-head p{margin:0;color:#718194}.seed-box{display:flex;align-items:center;gap:10px;background:#f6f9fc;border:1px solid #dce6ef;border-radius:12px;padding:10px 12px}.seed-box code{font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#244969}.teacher-btn{border:0;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer}.teacher-btn.primary{background:var(--platform-blue);color:white}.teacher-btn.secondary{background:#edf3f8;color:#2c4f6f}.teacher-btn.danger{background:#fff0ef;color:#9f302d}.teacher-btn:disabled{opacity:.45;cursor:not-allowed}
.teacher-create{padding:20px}.teacher-create h2,.teacher-companies h2{font-size:17px;margin:0 0 14px}.create-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px}.create-row input{border:1px solid #cbd8e5;border-radius:11px;padding:12px 13px;font:600 14px Arial;outline:none}.create-row input:focus{border-color:var(--platform-blue);box-shadow:0 0 0 3px rgba(0,90,155,.1)}
.teacher-companies{padding:20px}.companies-table-wrap{overflow:auto}.companies-table{width:100%;border-collapse:collapse;min-width:760px}.companies-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#748597;text-align:left;padding:9px 10px;border-bottom:1px solid #dfe8f0}.companies-table td{padding:12px 10px;border-bottom:1px solid #edf2f6;vertical-align:middle}.companies-table tbody tr:hover{background:#fbfdff}.company-name{font-weight:800;color:#193b5b}.access-code{display:inline-flex;align-items:center;gap:8px;font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:#1b4a6f;background:#edf5fb;border-radius:8px;padding:6px 8px}.progress-pill{display:inline-flex;border-radius:999px;padding:5px 8px;background:#eef4f8;color:#405c72;font-size:12px;font-weight:700}.progress-pill.started{background:#e4f4ea;color:#176f3d}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.row-actions button{padding:7px 9px;border-radius:8px;border:0;font-weight:700;font-size:11px;cursor:pointer}.empty-companies{padding:28px;text-align:center;border:1px dashed #cad8e4;border-radius:13px;color:#718295;background:#fafcfe}.teacher-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.teacher-summary article{padding:15px 17px;background:white;border:1px solid #dce6ef;border-radius:14px}.teacher-summary span{display:block;font-size:11px;color:#718294}.teacher-summary strong{font-size:22px;color:#193c5c}
.teacher-footer-note{padding:14px 18px;color:#687b8e;font-size:12px}.teacher-message{min-height:20px;color:#197245;font-weight:700;margin-top:8px}
@media(max-width:900px){.teacher-layout{grid-template-columns:1fr}.teacher-sidebar{position:static}.class-list{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.teacher-layout{width:min(100% - 18px,1450px);margin-top:10px}.teacher-topbar{padding:12px}.teacher-badge{display:none}.class-list{grid-template-columns:1fr 1fr}.teacher-class-head{grid-template-columns:1fr}.create-row{grid-template-columns:1fr}.teacher-summary{grid-template-columns:1fr 1fr}}
