:root{--bg: #0b0b0f;--bg2: #14141b;--card: #1a1a23;--line: #2a2a36;--text: #f3efe6;--muted: #a9a49a;--gold: #d4a53a;--gold2: #f0c860;--gold-dim: rgba(212, 165, 58, .14);--danger: #e06b5f;--ok: #58b37a;--radius: 14px;--font: "Inter", system-ui, -apple-system, Segoe UI, sans-serif;--serif: "Cormorant Garamond", Georgia, serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--gold2);text-decoration:none}h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:.01em;margin:0 0 8px;line-height:1.15}h1{font-size:2.2rem}h2{font-size:1.6rem}h3{font-size:1.25rem}p{margin:0 0 12px}.muted{color:var(--muted)}.gold{color:var(--gold2)}.small{font-size:.85rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--gold);font-weight:600}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#0b0b0feb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--text)}.brand img{height:34px;width:34px;object-fit:contain}.brand b{font-family:var(--serif);font-size:1.15rem;letter-spacing:.06em}.brand span{display:none;color:var(--muted);font-size:.8rem}.topnav{display:none;gap:4px}.topnav a svg{display:none}.topnav a,.tabbar a{color:var(--muted);padding:8px 12px;border-radius:10px;font-weight:500;font-size:.92rem}.topnav a.active,.tabbar a.active{color:var(--gold2);background:var(--gold-dim)}.main{flex:1;width:100%;max-width:980px;margin:0 auto;padding:20px 16px 96px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#0b0b0ff5;border-top:1px solid var(--line)}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.68rem;padding:6px 8px}.tabbar a svg{width:22px;height:22px}@media (min-width: 760px){.topnav{display:flex}.tabbar{display:none}.brand span{display:inline}.main{padding-bottom:40px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card{margin-top:14px}.grid{display:grid;gap:14px}@media (min-width: 640px){.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:1fr 1fr 1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:12px;border:1px solid var(--gold);background:linear-gradient(180deg,var(--gold2),var(--gold));color:#1a1405;font-weight:700;cursor:pointer;font-size:.95rem;font-family:var(--font);transition:transform .08s,opacity .2s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.ghost{background:transparent;color:var(--gold2)}.btn.dark{background:var(--bg2);color:var(--text);border-color:var(--line)}.btn.block{width:100%}.btn.sm{padding:8px 12px;font-size:.85rem;border-radius:10px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}label.field{display:block;margin-bottom:12px}label.field span{display:block;font-size:.82rem;color:var(--muted);margin-bottom:5px;font-weight:500}input,select,textarea{width:100%;padding:12px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-family:var(--font);font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}textarea{min-height:84px;resize:vertical}.alert{padding:12px 14px;border-radius:10px;border:1px solid;font-size:.9rem;margin-bottom:12px}.alert.err{border-color:var(--danger);color:#ffb3aa;background:#e06b5f1a}.alert.ok{border-color:var(--ok);color:#b6eac9;background:#58b37a1a}.alert.info{border-color:var(--gold);color:#f5dc9a;background:var(--gold-dim)}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge.gold{background:var(--gold-dim);color:var(--gold2);border:1px solid rgba(212,165,58,.4)}.badge.ok{background:#58b37a26;color:#9fe0b8}.badge.warn{background:#e06b5f26;color:#ffb3aa}.badge.dim{background:var(--bg2);color:var(--muted)}.progress{height:8px;border-radius:999px;background:var(--bg2);overflow:hidden;border:1px solid var(--line)}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transition:width .4s}.hero{padding:28px 20px;border-radius:18px;border:1px solid rgba(212,165,58,.35);background:radial-gradient(120% 140% at 0% 0%,rgba(212,165,58,.18),transparent 55%),var(--card)}.hero img{height:72px}.list{list-style:none;padding:0;margin:0}.list li{padding:12px 0;border-top:1px solid var(--line)}.list li:first-child{border-top:none}.lesson-row{display:flex;align-items:center;gap:12px}.check{width:24px;height:24px;border-radius:8px;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--bg2)}.check.on{background:var(--gold);border-color:var(--gold);color:#1a1405}.mod-card{display:block;color:var(--text)}.mod-card:hover{border-color:var(--gold)}.mod-num{font-family:var(--serif);font-size:2rem;color:var(--gold);line-height:1}.lesson-body p{font-size:1.02rem}.tbl{width:100%;border-collapse:collapse;font-size:.9rem}.tbl th,.tbl td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl th{color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.tbl input,.tbl select{padding:8px;font-size:.9rem;min-width:92px}.tbl .num{width:112px}.tbl input[type=number]{-moz-appearance:textfield}.tbl input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg button{background:var(--bg2);color:var(--muted);border:none;padding:7px 10px;font-size:.78rem;cursor:pointer;font-family:var(--font)}.seg button.on{background:var(--gold);color:#1a1405;font-weight:700}.seg button.on.no{background:var(--danger);color:#fff}.seg button.on.mid{background:#7a6a2f;color:#fff}.total{font-family:var(--serif);font-size:1.4rem}.center{text-align:center}.disclaimer{font-size:.78rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.foot{text-align:center;color:var(--muted);font-size:.78rem;padding:24px 16px;border-top:1px solid var(--line)}.demo-banner{background:var(--gold-dim);color:#f5dc9a;text-align:center;font-size:.78rem;padding:6px 12px;border-bottom:1px solid rgba(212,165,58,.3)}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--gold);animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.cert{background:#fdfaf2;color:#1a1405;border:10px double var(--gold);border-radius:6px;padding:36px 28px;text-align:center;font-family:var(--serif)}.cert img{height:90px}.cert h1{font-size:2.4rem;margin:10px 0 4px;color:#1a1405}.cert .name{font-size:2rem;margin:14px 0;border-bottom:2px solid var(--gold);display:inline-block;padding:0 24px 4px}.cert .fine{font-family:var(--font);font-size:.72rem;color:#5d5646;margin-top:18px}.cert .sig{display:flex;justify-content:space-around;margin-top:26px;font-family:var(--font);font-size:.85rem}.cert .sig div{border-top:1px solid #1a1405;padding-top:6px;min-width:160px}@media print{body{background:#fff}.topbar,.tabbar,.no-print,.demo-banner{display:none!important}.main{padding:0;max-width:none}.cert{border-width:8px}}
