:root{--mobile-nav-h:70px;--safe-bottom:env(safe-area-inset-bottom,0px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
button,a,input,select,textarea{min-height:44px}
input,select,textarea{font-size:16px!important;max-width:100%}
.btn,.back-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;white-space:normal;text-align:center}
.table-wrap,.admin-table-wrap,.responsive-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px}
table{max-width:100%}

/* Toasts */
.v46-toast-stack{position:fixed;top:16px;right:16px;z-index:12000;display:grid;gap:10px;width:min(380px,calc(100vw - 32px))}
.v46-toast{background:#fff;border:1px solid #dbe4f0;border-left:5px solid #2563eb;border-radius:14px;padding:13px 15px;box-shadow:0 16px 45px rgba(15,23,42,.18);font-size:14px;line-height:1.45;animation:v46-toast-in .22s ease both}
.v46-toast.success{border-left-color:#16a34a}.v46-toast.error{border-left-color:#dc2626}.v46-toast.warning{border-left-color:#d97706}
@keyframes v46-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Loading state */
.v46-loading{pointer-events:none;opacity:.74;position:relative}
.v46-loading::after{content:"";width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;margin-left:9px;vertical-align:-3px;animation:v46-spin .7s linear infinite}
@keyframes v46-spin{to{transform:rotate(360deg)}}

/* Better phone/tablet layout */
@media (max-width:1100px){
  .app-shell{grid-template-columns:230px minmax(0,1fr)!important}
  .metric-grid,.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .admin-grid,.dashboard-grid,.feature-grid{grid-template-columns:1fr!important}
}

@media (max-width:820px){
  body{padding-bottom:calc(var(--mobile-nav-h) + var(--safe-bottom))!important}
  .app-shell{display:block!important;min-height:100vh}
  .sidebar{display:none!important}
  .main-content,.content,.dashboard-main{margin:0!important;width:100%!important;max-width:none!important;padding:16px!important}
  .topbar,.page-title,.smart-top,.mock-top{position:relative!important;inset:auto!important;display:flex!important;align-items:flex-start!important;gap:12px!important;flex-wrap:wrap!important;padding:14px 16px!important}
  .page-title>div:first-child{min-width:0;flex:1 1 100%}
  .page-title h1{font-size:clamp(1.55rem,7vw,2rem)!important;line-height:1.12}
  .page-title p,.hero p,.panel p{font-size:14px!important;line-height:1.55}
  .metric-grid,.admin-summary-grid,.form-grid{grid-template-columns:1fr!important;gap:12px!important}
  .metric-grid article{padding:17px!important;min-height:auto!important}
  .metric-grid article b{font-size:1.65rem!important}
  .panel,.hero-card,.smart-card,.exam-result-page{padding:18px!important;border-radius:18px!important}
  .btn,.back-btn,button{min-height:46px;padding:11px 14px!important;font-size:14px!important}
  .mobile-bottom{display:grid!important;grid-template-columns:repeat(5,1fr);position:fixed!important;left:0;right:0;bottom:0;z-index:11000;height:calc(var(--mobile-nav-h) + var(--safe-bottom));padding:8px 6px calc(8px + var(--safe-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid #dbe4f0;box-shadow:0 -10px 30px rgba(15,23,42,.10)}
  .mobile-bottom a{min-width:0;min-height:52px;padding:5px 2px!important;border-radius:12px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px!important;line-height:1.05;overflow:hidden}
  .mobile-bottom a i{font-size:20px;line-height:1}.mobile-bottom a span{overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .smart-main,.exam-stage,.exam-result-page{padding:14px!important;width:100%!important}
  .smart-top aside{width:100%;text-align:left!important}
  .smart-choices,.mock-choices{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .smart-choices label,.mock-choices label{padding:13px!important;min-height:56px!important;align-items:center!important}
  .smart-submit,.mock-controls{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .mock-layout{display:block!important}.exam-nav{display:none!important}
  .mock-top{position:sticky!important;top:0!important;z-index:1000!important;background:#fff!important}
  .mock-top>div{order:2;width:100%}.mock-timer{font-size:1.1rem!important}.mock-top #reviewExam{margin-left:auto}
  .answer-compare,.answer-feedback-grid,.mistake-answer-grid-v37{grid-template-columns:1fr!important;gap:10px!important}
  .answer-vs{display:none!important}
  dialog{width:calc(100vw - 24px)!important;max-height:85vh;overflow:auto;padding:18px!important;border-radius:18px!important}
  .mistake-toolbar-v38{display:grid!important;grid-template-columns:1fr!important}
  .mistake-pagination-v38{display:grid!important;grid-template-columns:1fr 1fr!important;text-align:center}.mistake-pagination-v38>div{grid-column:1/-1;grid-row:1}
  .performance-table>div{grid-template-columns:1fr!important;gap:6px!important;padding:12px 0!important}
  .admin-notification-bell{position:static!important}
}

@media (max-width:480px){
  .main-content,.content,.dashboard-main{padding:12px!important}
  .panel,.hero-card,.smart-card,.exam-result-page{padding:15px!important;border-radius:16px!important}
  .page-title h1{font-size:1.55rem!important}
  .kicker{font-size:10px!important;letter-spacing:.12em!important}
  .metric-grid article b{font-size:1.45rem!important}
  .mobile-bottom a{font-size:10px!important}
  .mobile-bottom a i{font-size:18px}
}

/* Tablet landscape */
@media (min-width:821px) and (max-width:1180px){
  .sidebar{width:220px!important}
  .main-content{padding:22px!important}
  .mobile-bottom{display:none!important}
  .mock-layout{grid-template-columns:230px minmax(0,1fr)!important}
}

/* Error pages */
.error-page-v46{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eff6ff,#fff7ed)}
.error-card-v46{width:min(620px,100%);background:#fff;border:1px solid #dbe4f0;border-radius:26px;padding:36px;text-align:center;box-shadow:0 24px 70px rgba(15,23,42,.13)}
.error-card-v46 .code{font-size:clamp(4rem,18vw,8rem);font-weight:900;line-height:.9;color:#2563eb}.error-card-v46 h1{margin:16px 0 8px}.error-card-v46 p{color:#64748b}
