:root{--garnet: #6B1F2A;--garnet-light: #8A2A36;--garnet-deep: #4A1019;--ouro: #C4922A;--ouro-bright: #D9A93F;--ouro-muted: rgba(196, 146, 42, .45);--pergaminho: #F5EFE4;--trufa: #1C1714;--videira: #7A9374;--rose: #E8D2C4;--bg: #1C0E10;--bg-2: #2A1318;--bg-3: #36171D;--wine: var(--garnet);--wine-light: var(--garnet-light);--wine-deep: var(--garnet-deep);--gold: var(--ouro);--gold-bright: var(--ouro-bright);--gold-muted: var(--ouro-muted);--cream: var(--pergaminho);--cream-dim: #D8CFBE;--cream-faint: rgba(245, 239, 228, .45);--bronze: #8b6f47;--serif: "Cormorant Garamond", Georgia, serif;--display: "Cormorant Garamond", Georgia, serif;--sans: "Jost", -apple-system, BlinkMacSystemFont, sans-serif;--mono: "Jost", ui-monospace, monospace;--radius: 12px;--radius-sm: 8px;--header-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;font-size:16px}body{height:100%;background:var(--bg);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}#root{height:100%;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--sans);border:none;background:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--wine);border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes flip{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes spin{to{transform:rotate(360deg)}}.app-layout{display:flex;height:100dvh;overflow:hidden}.sidebar{width:256px;flex-shrink:0;height:100%;background:var(--bg-2);border-right:1px solid rgba(201,168,124,.1);display:flex;flex-direction:column;overflow:hidden}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid rgba(201,168,124,.08);flex-shrink:0}.sidebar-close-btn{display:none;margin-left:auto;color:var(--cream-faint);font-size:18px;background:none;border:none;cursor:pointer;padding:4px}.sidebar-section-label{font-size:9px;font-family:var(--mono);color:var(--gold);letter-spacing:1.5px;text-transform:uppercase;padding:10px 10px 4px}.sidebar-footer{padding:12px 14px;border-top:1px solid rgba(201,168,124,.08);flex-shrink:0}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:199;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.mobile-bar{display:none;height:52px;padding:0 16px;align-items:center;gap:12px;background:#14090ff2;border-bottom:1px solid rgba(201,168,124,.1);flex-shrink:0}.menu-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--cream-dim);transition:background .15s}.menu-btn:hover{background:#ede1d014}.app-content{flex:1;overflow:hidden}@media(max-width:767px){.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .25s ease;width:280px}.sidebar.sidebar-open{transform:translate(0)}.sidebar-overlay,.sidebar-close-btn{display:block}.mobile-bar{display:flex}}.page{display:flex;flex-direction:column;height:100%;animation:fadeIn .25s ease}.page-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,24px)}.header{position:sticky;top:0;z-index:100;height:var(--header-h);background:#14090feb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(201,168,124,.12);display:flex;align-items:center;gap:12px;padding:0 20px;padding-top:env(safe-area-inset-top,0)}.header-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#c9a87c1a;color:var(--gold);font-size:18px;flex-shrink:0;transition:background .15s}.header-back:hover{background:#c9a87c33}.header-title{flex:1;font-family:var(--display);font-size:18px;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-action{flex-shrink:0;font-size:13px;color:var(--gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-sm);font-weight:500;font-size:14px;padding:12px 20px;transition:all .2s}.btn-primary{background:var(--wine);color:var(--cream);border:1px solid var(--wine-light)}.btn-primary:hover{background:var(--wine-light)}.btn-gold{background:#c9a87c26;color:var(--gold-bright);border:1px solid var(--gold-muted)}.btn-gold:hover{background:#c9a87c40}.btn-ghost{background:transparent;color:var(--cream-dim);border:1px solid rgba(237,225,208,.15)}.btn-ghost:hover{border-color:#ede1d04d;color:var(--cream)}.btn-full{width:100%}.card{background:var(--bg-2);border-radius:var(--radius);overflow:hidden;transition:transform .2s}.progress-track{height:4px;background:#ede1d01a;border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;background:var(--gold);transition:width .5s ease}.text-gold{color:var(--gold)}.text-cream{color:var(--cream)}.text-dim{color:var(--cream-dim)}.text-display{font-family:var(--display)}.text-serif{font-family:var(--serif)}.text-mono{font-family:var(--mono)}.divider{height:1px;background:#ede1d014;margin:20px 0}.badge-complete{display:inline-flex;align-items:center;gap:4px;background:#2a7d3e33;color:#6fcf97;border:1px solid rgba(42,125,62,.3);border-radius:20px;font-size:12px;font-weight:600;padding:3px 10px}.section-label{font-size:10px;font-family:var(--mono);color:var(--gold);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px}.continue-card{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,var(--wine-deep) 0%,var(--bg-3) 100%);border:1px solid rgba(138,41,54,.3);border-radius:14px;padding:18px 20px;transition:border-color .2s}.module-row{display:flex;align-items:center;gap:14px;padding:14px 20px;transition:background .15s;cursor:pointer}
