:root{--canvas-1: #0f231c;--canvas-2: #1e3d30;--canvas-3: #2e5743;--primary: #0f766e;--primary-dark: #115e59;--accent: #fbbf24;--card: #ffffff;--line: #e7e0d3;--thumb-bg: #f1efe8;--ink: #1c1917;--ink-soft: #57534e;--on-canvas: #e9f0ea;--on-canvas-soft: #b9c9bd;--good: #15803d;--good-bg: #dcfce7;--warn: #b45309;--warn-bg: #fef3c7;--bad: #b91c1c;--bad-bg: #fee2e2;--radius: 18px;--radius-lg: 26px;--shadow: 0 2px 8px rgba(10,22,17,.25);--shadow-lift: 0 10px 28px rgba(10,22,17,.35)}*{box-sizing:border-box}html{background:var(--canvas-3)}html,body,#root{margin:0;min-height:100%}body{font:16px/1.6 system-ui,sans-serif;background:linear-gradient(165deg,var(--canvas-1) 0%,var(--canvas-2) 48%,var(--canvas-3) 100%) fixed;color:var(--on-canvas)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}img{max-width:100%}h1,h2{color:#fff;letter-spacing:-.5px}.lm-header{position:sticky;top:0;z-index:30;background:#0f231cc7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;padding:14px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.08)}.lm-header .logo{font-weight:900;font-size:19px;white-space:nowrap;text-decoration:none;color:#fff;letter-spacing:-.3px}.lm-header .logo span{color:var(--accent)}.lm-auth-btn{border:none;border-radius:999px;padding:9px 16px;font-weight:800;background:var(--accent);color:var(--ink);white-space:nowrap;text-decoration:none}.lm-links{display:none;gap:4px;flex:1}@media (min-width: 720px){.lm-links{display:flex}.lm-links a{color:#fff;text-decoration:none;font-weight:700;font-size:14.5px;padding:8px 14px;border-radius:999px}.lm-links a.active{background:#ffffff29}}.lm-main{max-width:860px;margin:0 auto;padding:26px 18px calc(108px + env(safe-area-inset-bottom))}@media (min-width: 720px){.lm-main{padding:34px 24px 56px}}.lm-nav{position:fixed;bottom:10px;left:50%;transform:translate(-50%);z-index:30;background:#fffffff5;border-radius:999px;box-shadow:var(--shadow-lift);display:flex;gap:6px;padding:8px}.lm-nav a{display:flex;flex-direction:column;align-items:center;gap:1px;text-decoration:none;color:var(--ink-soft);font-size:11px;font-weight:700;min-width:76px;padding:6px 10px;border-radius:999px}.lm-nav a .ic{font-size:21px}.lm-nav a.active{color:#fff;background:var(--ink)}@media (min-width: 720px){.lm-nav{display:none}}.card{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 20px;color:var(--ink)}.stack{display:flex;flex-direction:column;gap:15px}.row{display:flex;align-items:center;gap:12px}.grow{flex:1}.muted{color:var(--on-canvas-soft)}.card .muted{color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:999px;min-height:50px;padding:10px 22px;font-weight:800;font-size:16px;background:var(--ink);color:#fff;text-decoration:none;transition:transform .12s ease}.btn:active{transform:scale(.98)}.btn.accent{background:var(--accent);color:var(--ink)}.btn.secondary{background:#fff;color:var(--ink);border:2px solid var(--line)}.btn:disabled{opacity:.45;cursor:default}.btn.small{min-height:40px;padding:6px 14px;font-size:14px}.banner{border-radius:var(--radius);padding:14px 16px;font-weight:600}.banner.good{background:var(--good-bg);color:var(--good)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.bad{background:var(--bad-bg);color:var(--bad)}.field{width:100%;font-size:16px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;border-radius:999px;padding:3px 11px}.badge.good{background:var(--good-bg);color:var(--good)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.neutral{background:#eee9df;color:var(--ink-soft)}.center{text-align:center}.lm-empty{padding:48px 16px;text-align:center;color:var(--on-canvas-soft)}.lm-empty .big{font-size:60px;margin-bottom:8px}.lm-empty strong{color:var(--on-canvas)}.course-card{display:flex;gap:18px;align-items:center;text-decoration:none;background:var(--card);color:var(--ink);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}.course-card .cover{width:76px;height:76px;border-radius:20px;background:var(--thumb-bg);display:grid;place-items:center;font-size:38px;flex-shrink:0}.course-card h3{margin:0 0 4px;font-size:18px;letter-spacing:-.3px}.course-card p{margin:0;color:var(--ink-soft);font-size:14.5px}.progress{height:10px;border-radius:999px;background:#eee9df;overflow:hidden}.progress>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#15803d);transition:width .3s ease}.lesson-row{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);text-align:left;width:100%;background:none;border-top:none;border-left:none;border-right:none}.lesson-row:last-child{border-bottom:none}.lesson-row .tick{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:15px;background:#eee9df;color:var(--ink-soft)}.lesson-row .tick.done{background:var(--good-bg);color:var(--good)}.lesson-row .t{font-weight:700;color:var(--ink)}.lesson-row .d{font-size:13px;color:var(--ink-soft)}.lesson-body{white-space:pre-wrap;color:var(--ink);font-size:16.5px;line-height:1.7}.q-option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:2px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px;font-weight:600;color:var(--ink)}.q-option.picked{border-color:var(--ink);background:#f6f4ef}.q-option .dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:800;flex-shrink:0}.q-option.picked .dot{background:var(--ink);border-color:var(--ink);color:#fff}.score-big{font-size:64px;font-weight:900;letter-spacing:-2px}.cert{background:#fffdf6;color:var(--ink);border-radius:18px;border:10px double var(--primary-dark);padding:clamp(24px,6vw,56px);text-align:center;box-shadow:var(--shadow-lift)}.cert .brand{font-weight:900;font-size:20px;color:var(--primary-dark);letter-spacing:2px}.cert .certifies{color:var(--ink-soft);margin:18px 0 6px;font-size:15px;letter-spacing:1.5px;text-transform:uppercase}.cert .holder{font-size:clamp(28px,6vw,44px);font-weight:900;letter-spacing:-.8px;margin:0}.cert .coursename{font-size:clamp(18px,3.4vw,26px);font-weight:800;margin:6px 0 0;color:var(--primary-dark)}.cert .meta{margin-top:22px;color:var(--ink-soft);font-size:14.5px}.cert .seal{width:84px;height:84px;margin:22px auto 0;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-size:40px;box-shadow:inset 0 0 0 6px #00000014}.cert .code{font-family:monospace;font-weight:700}@media print{body{background:#fff!important}.lm-header,.lm-nav,.no-print{display:none!important}.lm-main{padding:0;max-width:none}.cert{box-shadow:none}}
