:root{--bg: #ffffff;--bg-elev: #f7f7f6;--surface: #ffffff;--border: #e6e5e2;--border-forte: #d2d0cb;--texto: #1c1b19;--texto-fraco: #6b6a65;--texto-suave: #93918b;--acento: #378add;--acento-texto: #ffffff;--vermelho: #e24b4a;--ambar: #ba7517;--verde: #1d9e75;--raio: 12px;--raio-sm: 8px;--max: 560px}:root[data-theme=dark]{--bg: #16161a;--bg-elev: #1d1d22;--surface: #1d1d22;--border: #2c2c33;--border-forte: #3a3a42;--texto: #ededec;--texto-fraco: #a3a2a0;--texto-suave: #76756f;--acento: #4f97e0;--acento-texto: #0d0d10;--vermelho: #ef6360;--ambar: #d68f2c;--verde: #34b88c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--texto);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;font-size:inherit;cursor:pointer}input,textarea{font-family:inherit;font-size:inherit}.app{display:flex;flex-direction:column;min-height:100%;max-width:var(--max);margin:0 auto;background:var(--bg)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px;position:sticky;top:0;background:var(--bg);z-index:10}.topbar h1{font-size:19px;font-weight:700;margin:0;letter-spacing:-.01em}.content{flex:1;padding:4px 18px 96px}.screen-title{font-size:22px;font-weight:700;margin:8px 0 2px;letter-spacing:-.02em}.screen-sub{color:var(--texto-fraco);margin:0 0 18px;font-size:14px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--max);display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);z-index:20}.tabbar button{flex:1;background:none;border:none;padding:9px 0 8px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--texto-suave);transition:color .12s}.tabbar button.ativo{color:var(--acento)}.tabbar .tab-label{font-size:11px;font-weight:500}.tabbar svg{width:22px;height:22px}.tab-badge{position:absolute;top:4px;margin-left:16px;background:var(--vermelho);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.btn{border:1px solid var(--border-forte);background:var(--surface);color:var(--texto);border-radius:var(--raio-sm);padding:11px 16px;font-weight:600;transition:background .12s,border-color .12s}.btn:hover{background:var(--bg-elev)}.btn-primario{background:var(--acento);border-color:var(--acento);color:var(--acento-texto)}.btn-primario:hover{filter:brightness(1.05);background:var(--acento)}.btn-bloco{width:100%}.btn-icone{border:1px solid var(--border);background:var(--surface);color:var(--texto);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0}.btn-icone svg{width:18px;height:18px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.bolinha{width:9px;height:9px;border-radius:50%;flex-shrink:0}.badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em}.badge-atrasado{background:color-mix(in srgb,var(--vermelho) 16%,transparent);color:var(--vermelho)}.badge-hoje{background:color-mix(in srgb,var(--ambar) 18%,transparent);color:var(--ambar)}.badge-amanha{background:color-mix(in srgb,var(--verde) 16%,transparent);color:var(--verde)}.contadores{display:flex;gap:18px;margin-bottom:16px;font-size:13px;color:var(--texto-fraco)}.contadores b{color:var(--texto);font-size:15px}.item{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.item-info{flex:1;min-width:0}.item-titulo{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.item.feito .item-titulo{text-decoration:line-through;color:var(--texto-suave)}.check{width:26px;height:26px;border-radius:50%;border:2px solid var(--border-forte);background:none;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;transition:all .12s}.check.on{background:var(--verde);border-color:var(--verde)}.check svg{width:14px;height:14px;color:#fff}.campo{margin-bottom:18px}.campo label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:var(--texto-fraco)}.input,.textarea{width:100%;background:var(--surface);border:1px solid var(--border-forte);border-radius:var(--raio-sm);padding:11px 12px;color:var(--texto);outline:none;transition:border-color .12s}.input:focus,.textarea:focus{border-color:var(--acento)}.textarea{resize:vertical;min-height:60px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--border-forte);background:var(--surface);color:var(--texto);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px}.chip.ativo{border-color:var(--acento);background:color-mix(in srgb,var(--acento) 12%,transparent);color:var(--acento)}.cores{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:30px;height:30px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer;transition:transform .1s}.swatch.ativo{border-color:var(--texto);transform:scale(1.12)}.criar-materia{border:1px dashed var(--border-forte);border-radius:var(--raio);padding:14px;margin-top:10px;background:var(--bg-elev)}.linha{display:flex;gap:8px;align-items:center}.preview-revisao{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--raio);padding:13px 14px;font-size:13px;color:var(--texto-fraco);display:flex;align-items:center;gap:8px;margin-bottom:18px}.preview-revisao b{color:var(--texto)}.toast{position:fixed;bottom:78px;left:50%;transform:translate(-50%);background:var(--verde);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;font-size:13px;z-index:30;box-shadow:0 2px 12px #00000026}.progresso{height:6px;background:var(--border);border-radius:999px;overflow:hidden;margin-bottom:20px}.progresso-fill{height:100%;background:var(--acento);transition:width .25s}.flashcard{border:1px solid var(--border-forte);border-radius:var(--raio);padding:28px 22px;min-height:240px;display:flex;flex-direction:column;background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none}.flashcard .pergunta{font-size:19px;font-weight:600;margin-top:18px}.flashcard .divisor{border:none;border-top:1px solid var(--border);margin:20px 0}.flashcard .resposta{font-size:16px;color:var(--texto-fraco)}.flashcard .dica-toque{margin-top:auto;color:var(--texto-suave);font-size:13px;text-align:center}.aval-botoes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.aval-botoes button{padding:13px 6px;border-radius:var(--raio-sm);border:1px solid var(--border-forte);background:var(--surface);font-weight:700;color:var(--texto)}.aval-errei{border-color:var(--vermelho)!important;color:var(--vermelho)!important}.aval-dificil{border-color:var(--ambar)!important;color:var(--ambar)!important}.aval-facil{border-color:var(--verde)!important;color:var(--verde)!important}.metricas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.metric{border:1px solid var(--border);border-radius:var(--raio);padding:14px}.metric .valor{font-size:26px;font-weight:700;letter-spacing:-.02em}.metric .rotulo{font-size:12px;color:var(--texto-fraco);margin-top:2px}.secao-titulo{font-size:14px;font-weight:700;margin:24px 0 12px}.barra-materia{margin-bottom:14px}.barra-materia .topo{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px}.barra-materia .trilha{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.barra-materia .preenche{height:100%;border-radius:999px}.heatmap{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}.heat-cell{aspect-ratio:1;border-radius:3px;background:var(--border)}.heatmap-legenda{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:8px;font-size:11px;color:var(--texto-suave)}.materia-linha{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.materia-linha .nome{flex:1;font-weight:600}.materia-linha .qtd{font-size:13px;color:var(--texto-fraco)}.vazio{text-align:center;padding:48px 20px;color:var(--texto-fraco)}.vazio .emoji{font-size:34px;display:block;margin-bottom:10px}.conclusao{text-align:center;padding:56px 20px}.conclusao .emoji{font-size:44px;display:block;margin-bottom:14px}.conclusao h2{margin:0 0 6px}.conclusao p{color:var(--texto-fraco);margin:0 0 24px}
