/* R138 shared/base.css */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',Inter,sans-serif;background:var(--bg,#F8FAFC);color:var(--text,#0F172A);line-height:1.5;min-height:100vh}
:root{--primary:#0066FF;--bg:#F8FAFC;--card:#fff;--text:#0F172A;--muted:#64748B;--border:#E2E8F0;--success:#10B981;--danger:#EF4444;--contact-footer-h:92px}
a{color:var(--primary)}
.hidden{display:none!important}
.page{padding:16px;max-width:960px;margin:0 auto}
.card{background:var(--card);border-radius:12px;padding:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);margin-bottom:12px}
.btn{display:inline-block;padding:10px 18px;border-radius:8px;border:none;font-weight:600;cursor:pointer;text-decoration:none;font-size:14px}
.btn-primary{background:var(--primary);color:#fff}
.btn-secondary{background:#fff;border:1px solid var(--border);color:var(--text)}
.btn-block{display:block;width:100%;text-align:center}
.form-input{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin:6px 0 12px}
.form-label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
.top-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.top-bar h1{flex:1;font-size:16px;margin:0;text-align:center}
.grid-cards{display:grid;gap:12px}
@media(min-width:768px){.grid-cards{grid-template-columns:repeat(2,1fr)}}
.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}
@media(min-width:768px){.stat-row{grid-template-columns:repeat(4,1fr)}}
.stat-card{background:var(--card);padding:12px;border-radius:10px;text-align:center;border:1px solid var(--border)}
.stat-card strong{display:block;font-size:22px;color:var(--primary)}
.stat-card small{font-size:12px;color:var(--muted)}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.tabs button{padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:13px}
.tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th,.table td{border:1px solid var(--border);padding:8px;text-align:left}
.toast{position:fixed;bottom:calc(var(--contact-footer-h) + 16px);left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#fff;padding:10px 18px;border-radius:999px;z-index:999;opacity:0;transition:opacity .2s;max-width:90vw;text-align:center}
.toast.show{opacity:1}
.toast-success{background:#065F46}
.toast-error{background:#991B1B}
.toast-warning{background:#92400E}
.stepper-dots{display:flex;gap:8px;margin-bottom:16px}
.stepper-dots span{padding:6px 12px;border-radius:999px;background:#E2E8F0;font-size:12px}
.stepper-dots span.active{background:var(--primary);color:#fff}
.q-option{display:block;width:100%;text-align:left;padding:14px;margin:8px 0;border:2px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;font-size:15px}
.q-option.selected{border-color:var(--primary);background:#EFF6FF}
.q-option.correct{border-color:var(--success);background:#ECFDF5}
.q-option.wrong{border-color:var(--danger);background:#FEF2F2}
.timer-ring{font-size:14px;font-weight:700;color:var(--primary);text-align:center;margin:8px 0}
.progress-bar{height:6px;background:#E2E8F0;border-radius:999px;margin:8px 0}
.progress-bar i{display:block;height:100%;background:var(--primary);border-radius:999px;transition:width .3s}
body.has-contact-footer{padding-bottom:calc(var(--contact-footer-h) + env(safe-area-inset-bottom))}
body.has-contact-footer .zw-root .zw-fab{bottom:calc(var(--contact-footer-h) + 12px + env(safe-area-inset-bottom))}
.contact-footer{position:fixed;left:0;right:0;bottom:0;z-index:110;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#1a1a1a;color:#fff;text-align:center}
.contact-footer__btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}
.contact-footer__cta,.contact-footer__btn{padding:8px 16px;border-radius:999px;font-size:13px;text-decoration:none;border:none;cursor:pointer}
.contact-footer__cta{background:var(--primary);color:#fff}
.contact-footer__btn{background:#333;color:#fff}
.contact-footer__brand{font-size:11px;opacity:.7;margin:0}
.empty{padding:48px 16px;text-align:center;color:var(--muted)}
