:root{
  --bg:#071f2a;
  --panel:#0f3341;
  --panel2:#0b2a36;
  --line:#315766;
  --text:#f2f7f9;
  --muted:#bdd0d8;
  --accent:#8fe5dc;
  --danger:#ffb8b2;
  --ok:#9de6bf;
  --brand-serif:"Bodoni 72","Bodoni MT",Didot,Georgia,"Times New Roman",serif;
  --ui-sans:system-ui,-apple-system,"Segoe UI","Nirmala UI","URVALI Devanagari",sans-serif;
}
*{box-sizing:border-box}
html{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-synthesis:none;
}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--ui-sans);font-size:16.5px;font-weight:400;line-height:1.58;
  letter-spacing:.004em;
}
a{color:var(--accent);text-underline-offset:3px}
header{
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:18px clamp(20px,4.5vw,64px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:10;background:#071f2af5;
}
.brand{
  display:inline-block;color:#f6f9fa;text-decoration:none;
  font-family:var(--brand-serif);font-size:31px;font-weight:600;
  line-height:1;letter-spacing:1.55px;text-transform:uppercase;
}
.brand span{
  display:block;margin-top:9px;
  font-family:var(--ui-sans);font-size:10.5px;font-weight:600;
  line-height:1.2;letter-spacing:3px;color:#c2d2d9;text-transform:uppercase;
}
nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
nav a{font-size:15px;font-weight:500;text-decoration:none;letter-spacing:.01em}
main{max-width:1040px;margin:auto;padding:34px 20px 68px}
.hero,.card{
  background:var(--panel);border:1px solid var(--line);border-radius:15px;
  padding:clamp(20px,3.4vw,32px);margin:0 0 22px;
}
h1,h2,h3{
  margin-top:.2em;color:#f2f7f9;font-family:var(--ui-sans);
  font-weight:500;line-height:1.18;letter-spacing:-.012em;
}
h1{font-size:clamp(30px,4vw,39px)}
h2{font-size:clamp(22px,3vw,28px)}
h3{font-size:20px}
p,li,td,th,label,input,select,button{font-family:var(--ui-sans)}
strong{font-weight:550}
.small{
  font-size:12px;font-weight:500;line-height:1.45;letter-spacing:1.15px;
  color:var(--muted);text-transform:uppercase;
}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.btn,button{
  display:inline-block;border:0;border-radius:8px;padding:11px 17px;
  background:var(--accent);color:#082630;text-decoration:none;
  font-size:14.5px;font-weight:500;line-height:1.2;letter-spacing:.005em;
  cursor:pointer;
}
.btn.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}
button+button{margin-left:7px}
label{display:block;margin:12px 0 5px;font-size:15px;font-weight:500}
input,select{
  width:100%;padding:11px 12px;border:1px solid #527381;border-radius:8px;
  background:#092733;color:#f6f9fa;font-size:15.5px;font-weight:400;line-height:1.4;
  outline:none;
}
input:focus,select:focus{border-color:#82d8d1;box-shadow:0 0 0 2px #82d8d122}
input[type=checkbox]{width:auto}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.msg{padding:12px 15px;border-radius:8px;margin:0 0 18px;background:#173c47}
.msg.error{border:1px solid #9d5555;color:#ffd5d0}
.msg.ok{border:1px solid #3b8667;color:#c8f3da}
.pill{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:999px;font-size:13px}
.danger{background:#954e4e;color:white}
.scroll{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{border-bottom:1px solid var(--line);padding:10px 9px;text-align:left;vertical-align:top}
th{font-weight:500;color:#dbe7eb}
.stat-number{font-size:27px;font-weight:500;line-height:1.1}
.status-note{color:var(--muted);font-size:14px}
footer{
  border-top:1px solid var(--line);padding:26px 20px;text-align:center;
  color:var(--muted);font-size:14px;font-weight:400;
}
footer strong{font-weight:500;letter-spacing:.01em}
@media(max-width:680px){
  header{align-items:flex-start;flex-direction:column;padding:17px 18px}
  .brand{font-size:28px}.brand span{font-size:9px;letter-spacing:2.3px}
  nav{gap:14px}main{padding:22px 14px 54px}.row{grid-template-columns:1fr}
  h1{font-size:29px}h2{font-size:22px}
}

/* v1.1 global sharpness lock */
.card h1,.card h2,.card h3,.hero h1,.hero h2{font-weight:500!important}.btn,button{font-weight:500!important}label,nav a,th{font-weight:500!important}

/* FINAL v1.2 typography lock — sharp, lighter, consistent across the complete access UI */
body{font-weight:400!important}
h1,h2,h3,.card h1,.card h2,.card h3,.hero h1,.hero h2{font-weight:500!important;letter-spacing:-.01em!important}
label,nav a,th,.btn,button{font-weight:500!important}
input,select,td,p,li{font-weight:400!important}
.brand{font-weight:600!important}.brand span{font-weight:500!important}

/* v1.3 readability: match the course's comfortable reading scale. */
body{font-size:18px;line-height:1.65;letter-spacing:normal}
.small,.status-note,.pill,footer,.brand span{font-size:16px;line-height:1.6;letter-spacing:normal;text-transform:none;color:#d8e7ec}
label,input,select,.btn,button,nav a{font-size:18px;line-height:1.5}
table{font-size:16px;line-height:1.6}th,td{padding:12px;overflow-wrap:anywhere}
input,select,button,.btn{min-height:44px}input[type=checkbox]{min-height:22px;width:22px;vertical-align:middle}
button,.btn{margin:4px 4px 4px 0;white-space:normal}.inline{display:inline;margin:0}
button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}
:focus-visible{outline:3px solid #ffdc83;outline-offset:3px}
.card,.hero,.grid>*{min-width:0}.grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
header{position:static}p,a{overflow-wrap:anywhere}.scroll{max-width:100%}
@media(max-width:680px){.brand span{font-size:16px;letter-spacing:normal}nav{gap:12px}.card,.hero{padding:18px}button+button{margin-left:0}}

@font-face{font-family:"URVALI Devanagari";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/devanagari-400.woff2") format("woff2")}
:root{--ui-sans:system-ui,-apple-system,"Segoe UI","Nirmala UI","URVALI Devanagari",sans-serif;opacity:1}

/* Keep admin tables legible inside their own horizontal scroll region. */
.scroll table{min-width:760px}.scroll th,.scroll td{overflow-wrap:normal;word-break:normal}

/* Typography 1.4.1: reference wordmark retained; neutral readable interface. */
h1,h2,h3{font-family:var(--ui-sans)}
strong{font-weight:600}
.brand{font-family:var(--brand-serif);font-size:31px;line-height:1;letter-spacing:1.55px}
.brand span{font-family:var(--ui-sans);font-size:16px;font-weight:400!important;line-height:1.6;letter-spacing:normal}
@media(max-width:680px){.brand{font-size:28px}}

/* URVALI UI R2: keep action labels and timestamps readable. */
.scroll .urvali-users{min-width:1060px;table-layout:auto}
.urvali-users th:last-child,.urvali-users td:last-child{min-width:110px;white-space:nowrap}
.urvali-users .urvali-manage{white-space:nowrap;overflow-wrap:normal;word-break:normal;min-width:88px;min-height:44px}
.urvali-users th:nth-child(8),.urvali-users td:nth-child(8){white-space:nowrap;min-width:170px}
.urvali-users th:nth-child(7),.urvali-users td:nth-child(7){min-width:170px;overflow-wrap:normal;word-break:normal}
.scroll:focus-visible{outline:3px solid #ffdc83;outline-offset:3px}
