/* RastreCurve – Teoria interativa (usa as variáveis e componentes de app.css) */
.th-hero{padding:52px 0 44px}
.th-hero h1{font-size:clamp(1.9rem,4vw,3rem)}
.hero-scope{border-radius:14px;overflow:hidden;border:6px solid #26303b;box-shadow:0 30px 60px rgba(0,0,0,.45);background:#06110A}
.free-note{margin-top:18px;font-size:.9rem !important;color:#A9E5C4 !important}

.th{display:grid;grid-template-columns:270px minmax(0,1fr);gap:40px;align-items:start;padding:40px 0 60px}
.toc-box{position:sticky;top:84px}
.toc-in{background:var(--soft);border-radius:var(--r);padding:16px 14px}
.tp{padding:0 6px 12px;border-bottom:1px solid var(--line);margin-bottom:8px}
.tp b{display:block;font-family:var(--display);color:var(--navy);font-size:1.1rem;margin-bottom:8px}
.tp .pbar{width:100%}
.tp small{display:block;color:var(--muted);margin-top:6px;font-size:.8rem}
#toc{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 230px);overflow:auto}
#toc a{display:flex;gap:10px;align-items:flex-start;text-decoration:none;color:var(--ink);font-size:.9rem;padding:7px 8px;border-radius:9px;line-height:1.3}
#toc a:hover{background:#fff}
#toc a.on{background:#fff;box-shadow:0 1px 0 var(--line);font-weight:600}
#toc .n{flex:none;width:22px;height:22px;border-radius:50%;background:#fff;border:1.5px solid var(--line);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--muted)}
#toc a.ok .n{background:var(--green);border-color:var(--green);color:#fff}
#toc a.on .n{border-color:var(--green)}

.lesson{padding:10px 0 36px;margin-bottom:28px;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.l-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.l-n{flex:none;width:46px;height:46px;border-radius:12px;background:var(--navy);color:var(--lime);font-family:var(--display);font-size:1.35rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.l-head h2{font-family:var(--display);font-weight:600;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.15;color:var(--navy)}
.l-head p{margin-top:4px}
.l-body{font-size:1.02rem}
.l-body>p{margin:0 0 14px;max-width:78ch}
.l-body h3{font-family:var(--display);font-weight:600;color:var(--navy);font-size:1.2rem;margin:24px 0 8px}
.ul{margin:0 0 14px 1.2em;max-width:78ch}
.ul li{margin:4px 0}
.l-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:22px}
.mark.ok{border-color:var(--green) !important;color:var(--green2) !important;background:#E8F7EF !important}
.l-foot .btn{white-space:normal;text-align:left}

.tip{border-radius:12px;padding:12px 16px;margin:14px 0 16px;font-size:.96rem;border-left:4px solid var(--green);background:#EAF7F0;max-width:82ch}
.tip.warn{border-color:var(--orange);background:#FDF1E4}
.tip.info{border-color:#2F80ED;background:#EAF2FD}
.tip b{color:var(--navy)}

.fig{margin:16px 0 20px;max-width:640px}
.fig img{border-radius:12px;border:1px solid var(--line);width:auto;max-width:100%;height:auto}
.fig figcaption{font-size:.86rem;color:var(--muted);margin-top:6px}

.tbl{overflow-x:auto;margin:10px 0 18px;border:1px solid var(--line);border-radius:12px}
.tbl table{border-collapse:collapse;width:100%;font-size:.92rem;min-width:520px}
.tbl th{background:var(--navy);color:#fff;text-align:left;padding:9px 12px;font-weight:600}
.tbl td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}
.tbl tr:nth-child(even) td{background:#FAFBFC}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:14px 0 18px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;transition:.2s}
.card:hover{border-color:var(--green);box-shadow:var(--shadow)}
.card .ic{width:44px;height:44px;border-radius:12px;background:#E8F7EF;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:10px}
.card h4{font-family:var(--display);color:var(--navy);font-size:1.05rem;margin-bottom:4px}
.card p{font-size:.9rem;color:var(--muted)}

.mcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:14px 0 18px}
.mc{border:1px solid var(--line);border-radius:14px;padding:14px;align-content:start;display:grid;grid-template-columns:96px 1fr;gap:4px 14px;align-items:start}
.mc img{grid-row:span 2;width:96px;height:96px;object-fit:contain;background:radial-gradient(circle,#fff,#EEF2F6);border-radius:10px}
.mc h4{font-family:var(--display);color:var(--navy);font-size:1.1rem}
.mc .ul{margin:0 0 0 1.1em;font-size:.88rem}

.case{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:var(--soft);border-radius:var(--r);padding:16px;margin:16px 0 20px}
.case-img{display:flex;flex-direction:column;gap:10px}
.case-img img{border-radius:10px;width:100%;height:auto;background:#000}
.case-t h4{font-family:var(--display);color:var(--navy);font-size:1.15rem;margin-bottom:6px}
.case-t p{font-size:.94rem;margin-bottom:8px}
.case-t .ul{font-size:.92rem}

/* widgets */
.wd{border:1.5px solid var(--line);border-radius:16px;margin:18px 0 22px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(14,26,42,.05)}
.wd-h{background:linear-gradient(90deg,var(--navy),var(--navy2));color:#fff;padding:10px 16px;font-weight:600;font-size:.95rem}
.wd-b{padding:14px 16px 16px}
.ctl{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin-bottom:12px}
.ctl.inst{background:var(--soft);border-radius:12px;padding:10px 12px}
.ctl.col{flex-direction:column;align-items:stretch}
.fld{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--muted);min-width:120px}
.fld.grow{flex:1 1 220px}
.fld b{color:var(--navy)}
.fld select{font:inherit;font-size:.9rem;font-weight:500;color:var(--ink);padding:.45em .6em;border:1.5px solid var(--line);border-radius:9px;background:#fff}
.fld select:focus,.fld input:focus{outline:2px solid rgba(31,164,99,.35);border-color:var(--green)}
.fld input[type=range]{width:100%;accent-color:var(--green)}
.chk{display:flex;gap:6px;align-items:center;font-size:.88rem;padding-bottom:6px}
.chk input{accent-color:var(--green);width:16px;height:16px}
.zfix{font-size:.8rem;font-weight:700;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.35em .8em;margin-bottom:4px}
.scope-cv{width:100%;display:block;border-radius:12px;border:4px solid #26303b}
.two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.info .kv{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--line);padding:6px 0;font-size:.92rem}
.info .kv span{color:var(--muted)}
.info .kv b{color:var(--navy);font-family:Consolas,monospace}
.hint{font-size:.9rem;margin-top:10px;color:var(--ink)}
.hint.small{font-size:.82rem;color:var(--muted)}
.leg{font-size:.8rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin-top:6px}
.leg i{display:inline-block;width:16px;height:4px;border-radius:2px;margin-right:4px;vertical-align:middle}
.birth{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.tcv{width:100%;display:block;border:1px solid var(--line);border-radius:12px}
.lab{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.3fr);gap:18px;align-items:start}
.parts{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.btns{display:flex;flex-wrap:wrap;gap:8px}
.lab-msg{min-height:2.6em}
.seg{display:inline-flex;background:var(--soft);border-radius:999px;padding:3px;flex-wrap:wrap}
.seg button{border:0;background:none;border-radius:999px;padding:.45em .9em;font-size:.85rem;font-weight:600;color:var(--muted)}
.seg button.on{background:var(--navy);color:#fff}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.duo-t{display:block;font-size:.85rem;color:var(--navy);margin-bottom:6px}
.quad{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.gal.g3{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.gal figure{margin:0}
.gal figcaption{font-size:.82rem;margin-top:6px;line-height:1.35}
.qz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:start}
.qz-n{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green2)}
.qz-q{font-weight:600;margin:6px 0 10px}
.qz-o{display:flex;flex-direction:column;gap:8px}
.qz-o button{text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:.65em .9em;font-size:.93rem;transition:.15s}
.qz-o button:hover{border-color:var(--green)}
.qz-o button.right{border-color:var(--green);background:#E8F7EF}
.qz-o button.wrong{border-color:#E5484D;background:#FDECEC}
.qz-o button.dim{opacity:.55}
.qz-x{margin-top:12px;font-size:.93rem;background:var(--soft);border-radius:10px;padding:10px 12px}
.qz-x .btn{margin-top:10px}
.qz-end{text-align:center;padding:20px}
.qz-end b{font-family:var(--display);font-size:1.6rem;color:var(--navy)}
.qz-end p{margin:8px 0 14px}
.dg{width:100%;height:auto;max-width:760px;display:block}
.dgt,.dgs{font:600 15px "Segoe UI",sans-serif;fill:#1E2B3A}
.dgs{font-weight:500;font-size:14px;fill:#5C6B7A}
.dgb{font:700 18px "Segoe UI",sans-serif}
.dgx{font:700 15px "Segoe UI",sans-serif}
.dg-cap{font-size:.85rem;color:var(--muted);margin-top:6px}

@media (max-width:1060px){
  .th{grid-template-columns:minmax(0,1fr);gap:10px;padding-top:18px}
  .toc-box{position:sticky;top:64px;z-index:20;margin:0 -16px;min-width:0}
  .toc-in{min-width:0}
  .tp .pbar{flex:1;min-width:50px;width:auto}
  .toc-in{border-radius:0;padding:8px 12px;background:rgba(243,246,249,.97);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
  .tp{display:flex;align-items:center;gap:10px;border:0;padding:0 0 6px;margin:0}
  .tp b{margin:0;font-size:.95rem;white-space:nowrap}
  .tp small{margin:0;white-space:nowrap}
  #toc{flex-direction:row;overflow-x:auto;max-height:none;gap:6px;padding-bottom:2px;scrollbar-width:none}
  #toc::-webkit-scrollbar{display:none}
  #toc a{flex:none;background:#fff;border:1px solid var(--line);padding:5px 10px 5px 6px;font-size:.82rem;align-items:center}
  #toc a span:last-child{white-space:nowrap}
}
@media (max-width:820px){
  .two,.birth,.lab,.qz,.case{grid-template-columns:1fr}
  .quad{grid-template-columns:repeat(2,1fr)}
  .mcards{grid-template-columns:1fr}
  .lesson{scroll-margin-top:118px}
}
@media (max-width:520px){
  .parts{grid-template-columns:1fr 1fr}
  .fld{min-width:0}
  .wd-b{padding:12px 10px 14px}
  .mc{grid-template-columns:72px 1fr}
  .mc img{width:72px;height:72px}
  .l-n{width:38px;height:38px;font-size:1.1rem}
}

.sim-err{margin-top:10px;background:#FDECEC;border:1px solid #F5B5B7;color:#9B1C1F;border-radius:10px;padding:8px 12px;font-size:.88rem}
.foot .rights{font-size:.74rem;color:#8FA0B2;padding:0 0 18px;line-height:1.5}
.qz-img{margin:0}
.qz-img img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);background:#000}
.soon{display:flex;gap:18px;align-items:flex-start;background:linear-gradient(135deg,var(--navy),#0B2B24);color:#fff;border-radius:var(--r);padding:24px 26px;margin:6px 0 30px}
.soon-ic{flex:none;width:54px;height:54px;border-radius:14px;background:rgba(124,252,0,.14);display:flex;align-items:center;justify-content:center;font-size:1.7rem}
.soon h2{font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--lime);margin-bottom:6px}
.soon p{color:#D5E0EA;margin-bottom:14px;max-width:70ch}
