:root{
  --navy:#101d3b;
  --navy-2:#182957;
  --purple:#6f4fe8;
  --purple-2:#8a6ff1;
  --purple-soft:#eeeaff;
  --bg:#f7f8fe;
  --card:#ffffff;
  --text:#111a33;
  --muted:#65708a;
  --line:#e4e8f3;
  --green:#2d9b59;
  --orange:#f7ab2b;
  --danger:#d65463;
  --shadow:0 18px 60px rgba(52,58,102,.12);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:var(--bg);
}
button,input,textarea{font:inherit}
button{cursor:pointer}
.topbar{
  height:68px;
  background:linear-gradient(110deg,#0e1a34,#13254c);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(18px,5vw,64px);
  position:sticky;
  top:0;
  z-index:50;
}
.brand{
  border:0;background:none;color:#fff;display:flex;align-items:center;gap:12px;
  font-weight:800;font-size:18px;
}
.brand-mark{
  width:34px;height:34px;display:grid;place-items:center;background:#fff;color:var(--purple);
  border-radius:9px;font-size:21px;
}
.topbar-actions{display:flex;align-items:center;gap:12px}
.icon-btn,.lang-btn,.admin-link{
  border:0;background:transparent;color:#fff;border-radius:10px;padding:8px 10px;
}
.icon-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.65);border-radius:50%;padding:0}
.admin-link{background:rgba(255,255,255,.1)}
.view{display:none;min-height:calc(100vh - 68px)}
.view.active{display:block}
.card{background:var(--card);border:1px solid rgba(226,230,242,.9);box-shadow:var(--shadow);border-radius:var(--radius)}
.hero-shell{
  min-height:calc(100vh - 68px);
  padding:48px clamp(20px,8vw,120px) 36px;
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 12% 22%,rgba(113,82,235,.11),transparent 22%),
    radial-gradient(circle at 95% 0%,rgba(113,82,235,.08),transparent 24%),
    linear-gradient(#fafbff,#f6f7fd);
}
.hero-grid{
  max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  align-items:center;gap:20px;
}
.access-card{padding:44px clamp(24px,5vw,66px);text-align:center;z-index:2}
.main-icon{
  margin:0 auto 14px;width:68px;height:68px;border-radius:50%;
  display:grid;place-items:center;color:#fff;font-size:33px;
  background:linear-gradient(145deg,var(--purple-2),#5534d8);
  box-shadow:0 12px 24px rgba(111,79,232,.25)
}
.eyebrow{margin:0 0 8px;font-size:12px;letter-spacing:.14em;font-weight:850;color:var(--purple)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(34px,4vw,48px);line-height:1.05;margin-bottom:12px}
h2{font-size:32px;margin-bottom:8px}
h3{font-size:17px;margin-bottom:18px}
.lead{color:var(--muted);line-height:1.6;max-width:620px;margin-left:auto;margin-right:auto}
.code-form{margin-top:24px}
.code-inputs{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:18px}
.code-inputs input{
  width:min(180px,40%);height:72px;border:1.5px solid #dfe4f1;border-radius:14px;
  text-align:center;font-size:30px;font-weight:800;color:var(--text);outline:0;background:#fff;
}
.code-inputs input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(111,79,232,.1)}
.code-separator{font-size:28px;font-weight:800}
.primary-btn,.secondary-btn{
  border:0;border-radius:12px;min-height:50px;padding:0 22px;font-weight:800;
  transition:.18s ease;
}
.primary-btn{
  color:#fff;background:linear-gradient(90deg,#7253eb,#6746dc);box-shadow:0 10px 22px rgba(111,79,232,.22)
}
.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.03)}
.code-form .primary-btn{width:100%}
.secondary-btn{border:1px solid #cfd5e6;background:#fff;color:var(--purple)}
.compact{min-height:42px}
.single-use{margin-top:20px;font-size:13px;color:var(--muted)}
.status-msg{min-height:20px;margin:10px 0 0;font-size:13px}
.status-msg.error{color:var(--danger)}
.status-msg.ok{color:var(--green)}
.teacher-visual{
  height:500px;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:visible;
}
.teacher-glow{
  position:absolute;
  width:400px;
  height:400px;
  border-radius:50%;
  left:50%;
  bottom:0;
  transform:translateX(-56%);
  background:
    radial-gradient(circle at 50% 50%,rgba(111,79,232,.15),rgba(111,79,232,.055) 58%,transparent 70%);
  filter:blur(1px);
}
.teacher-asset{
  position:relative;
  z-index:2;
  display:block;
  height:500px;
  width:auto;
  max-width:118%;
  object-fit:contain;
  object-position:center bottom;
  transform:translate(-30px,10px);
  transform-origin:center bottom;
  filter:drop-shadow(0 28px 38px rgba(19,31,65,.18));
}
.benefits{
  max-width:1050px;margin:26px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px
}
.benefits article{display:flex;gap:14px;align-items:center;padding:16px}
.benefits p{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.45}
.benefit-icon{
  width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:grid;place-items:center;
  background:var(--purple-soft);color:var(--purple);font-size:22px;font-weight:800
}

/* Survey */
.survey-wrap{padding:48px 18px;max-width:1000px;margin:auto}
.survey-card{padding:34px}
.survey-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:10px}
.survey-heading p{color:var(--muted)}
.code-badge{background:var(--purple-soft);color:var(--purple);padding:9px 13px;border-radius:999px;font-weight:800}
.question{padding:20px 0;border-bottom:1px solid var(--line)}
.question-title{font-weight:750;margin-bottom:13px}
.scale{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.scale label{position:relative}
.scale input{position:absolute;opacity:0;pointer-events:none}
.scale span{
  height:46px;border:1px solid #d8ddec;border-radius:10px;display:grid;place-items:center;
  background:#fff;font-weight:800;color:#69738c;transition:.15s
}
.scale input:checked + span{background:var(--purple);color:#fff;border-color:var(--purple);box-shadow:0 7px 16px rgba(111,79,232,.22)}
.scale span:hover{border-color:var(--purple);color:var(--purple)}
.comment-label{display:block;font-weight:750;margin-top:24px}
.comment-label textarea{
  display:block;width:100%;min-height:120px;margin-top:9px;padding:14px;border:1px solid #d9dfed;border-radius:12px;resize:vertical;outline:0
}
.comment-label textarea:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(111,79,232,.08)}
.comment-label small{display:block;text-align:right;color:var(--muted);font-weight:500;margin-top:6px}
.survey-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}

/* Thank you + login */
.center-page,.admin-login-page{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 50% 25%,#eeeaff,transparent 38%)}
.thanks-card,.login-panel{width:min(520px,100%);padding:42px;text-align:center}
.success-icon{width:72px;height:72px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:#e8f7ed;color:var(--green);font-size:35px;font-weight:900}
.thanks-card p{color:var(--muted);line-height:1.6}
.login-panel form{text-align:left;margin-top:25px}
.login-panel label,.settings-grid label{display:block;font-size:13px;font-weight:750;margin-bottom:16px}
.login-panel input,.settings-grid input{
  display:block;width:100%;height:48px;margin-top:7px;border:1px solid #dbe0ed;border-radius:10px;padding:0 13px;outline:0
}
.login-panel input:focus,.settings-grid input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(111,79,232,.08)}
.password-wrap{position:relative}
.password-wrap input{padding-right:45px}
.password-wrap button{position:absolute;right:8px;top:15px;border:0;background:transparent;color:var(--muted)}
.login-panel .primary-btn{width:100%;margin-top:4px}
.text-btn{border:0;background:transparent;color:var(--purple);margin-top:16px;font-weight:750}

/* Admin */
.dashboard{min-height:calc(100vh - 68px);display:grid;grid-template-columns:230px minmax(0,1fr)}
.sidebar{
  background:linear-gradient(180deg,#0f1d3a,#0c1730);color:#fff;padding:20px 12px;display:flex;flex-direction:column;min-height:calc(100vh - 68px)
}
.sidebar-brand{font-weight:850;padding:6px 12px 20px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:10px}
.sidebar nav{display:grid;gap:5px}
.nav-item,.logout-btn{
  border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:11px;border-radius:9px;padding:12px 13px;text-align:left
}
.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,#4b37c9,#6e51eb)}
.logout-btn{margin-top:auto}
.dashboard-main{padding:26px clamp(16px,3vw,34px) 40px;overflow:hidden}
.dashboard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.date-pill{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 13px;font-size:12px;color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{padding:18px;display:flex;align-items:center;gap:13px;box-shadow:0 8px 24px rgba(52,58,102,.06)}
.kpi>span{font-size:26px;color:var(--purple)}
.kpi b{display:block;font-size:25px}
.kpi small{color:var(--muted)}
.active-state{color:var(--green)}
.summary-grid{display:grid;grid-template-columns:.9fr 1.25fr;gap:12px;margin-top:12px}
.chart-card,.rating-card,.question-results,.distribution,.bottom-grid>.card,.section-card{padding:20px;box-shadow:0 8px 24px rgba(52,58,102,.06)}
.donut{
  --pct:69;
  width:150px;height:150px;border-radius:50%;margin:12px auto 20px;
  background:conic-gradient(var(--purple) calc(var(--pct)*1%),#e9ecf4 0);
  display:grid;place-items:center;
}
.donut:before{content:"";position:absolute;width:104px;height:104px;border-radius:50%;background:#fff}
.donut{position:relative}
.donut>div{position:relative;text-align:center}
.donut strong{display:block;font-size:24px}
.donut span{font-size:10px;color:var(--muted)}
.legend p{display:flex;align-items:center;font-size:12px;color:var(--muted)}
.legend p b{margin-left:auto;color:var(--text)}
.dot{width:9px;height:9px;border-radius:50%;margin-right:8px}
.dot.purple{background:var(--purple)} .dot.pale{background:#e9ecf4}
.rating-card{text-align:center}
.rating-card h3{text-align:left}
.big-rating{font-size:58px;font-weight:850;margin-top:23px}
.stars{font-size:28px;color:var(--orange);letter-spacing:5px;margin:0 0 9px}
.rating-card p{color:var(--muted);font-size:12px;margin-top:8px}
.results-grid{display:grid;grid-template-columns:1.45fr .95fr;gap:12px;margin-top:12px}
.result-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 36px 24px;gap:9px;align-items:center;margin:12px 0;font-size:12px}
.result-bar,.dist-bar{height:7px;border-radius:999px;background:#edf0f7;overflow:hidden}
.result-fill,.dist-fill{height:100%;background:linear-gradient(90deg,#7a5cf0,#5f42da);border-radius:inherit}
.star-small{color:var(--orange)}
.dist-row{display:grid;grid-template-columns:72px 1fr 38px;align-items:center;gap:8px;font-size:12px;margin:18px 0}
.bottom-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-top:12px}
.activity-item{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12px}
.activity-check{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:1px solid #a6d9b5;color:var(--green);font-size:10px}
.activity-time{margin-left:auto;color:var(--muted)}
.pending-number{font-size:42px;font-weight:850}
.pending-card p{color:var(--muted)}
.dash-section{display:none}
.dash-section.active{display:block}
.section-card{min-height:420px}
.section-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.muted{color:var(--muted)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;margin-top:18px}
table{border-collapse:collapse;width:100%;min-width:620px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);font-size:13px}
th{background:#f7f8fc;color:#65708a;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.status-chip{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750}
.status-chip.used{background:#e8f7ed;color:var(--green)}
.status-chip.free{background:var(--purple-soft);color:var(--purple)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}
.toggle-row{display:flex!important;align-items:center;justify-content:space-between;background:#f7f8fd;padding:13px;border-radius:10px}
.toggle-row input{width:20px!important;height:20px!important;margin:0!important}
.toast{
  position:fixed;right:22px;bottom:22px;background:#111d3a;color:#fff;padding:13px 16px;border-radius:10px;
  transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s;z-index:100;box-shadow:var(--shadow)
}
.toast.show{opacity:1;transform:translateY(0)}


@media(max-width:1100px) and (min-width:901px){
  .teacher-asset{transform:translate(-22px,18px) scale(1.22)}
  .teacher-glow{transform:translateX(-55%) scale(.9)}
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .teacher-visual{display:none}
  .benefits{grid-template-columns:1fr}
  .dashboard{grid-template-columns:76px 1fr}
  .sidebar span{display:none}
  .sidebar-brand span{display:none}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .summary-grid,.results-grid,.bottom-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .topbar{padding:0 14px}
  .brand span:last-child{display:none}
  .admin-link{font-size:12px}
  .hero-shell{padding:28px 14px}
  .access-card{padding:30px 18px}
  .code-inputs input{height:62px;font-size:25px}
  .survey-card{padding:22px 16px}
  .survey-heading{display:block}
  .code-badge{display:inline-block;margin-top:8px}
  .scale{gap:6px}
  .survey-actions{display:grid;grid-template-columns:1fr}
  .survey-actions button{width:100%}
  .dashboard{display:block}
  .sidebar{min-height:auto;position:sticky;top:68px;z-index:30;flex-direction:row;overflow:auto;padding:8px}
  .sidebar-brand,.logout-btn{display:none}
  .sidebar nav{display:flex}
  .nav-item{white-space:nowrap}
  .nav-item span{display:inline}
  .dashboard-main{padding:18px 12px 30px}
  .dashboard-head{align-items:flex-start}
  .date-pill{display:none}
  .kpi-grid{grid-template-columns:1fr}
  .settings-grid{grid-template-columns:1fr}
  .section-title-row{display:block}
  .section-title-row .primary-btn{margin-top:10px}
}
