:root{
  --lib-ink:#101827;
  --lib-muted:#5f6b7a;
  --lib-line:#dfe5ec;
  --lib-soft:#f4f7fb;
  --lib-white:#fff;
  --lib-navy:#0b2854;
  --lib-blue:#145dcc;
  --lib-cyan:#0f8fb8;
  --lib-green:#218c4b;
  --lib-violet:#7650c7;
  --lib-orange:#d76816;
  --lib-radius:24px;
  --lib-shadow:0 18px 50px rgba(20,35,60,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.biblioteca-page{margin:0;background:#fff;color:var(--lib-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.library-wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
.library-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#cfe2ff}
.library-kicker.dark{color:#255583}
.library-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 18px;border-radius:14px;text-decoration:none;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.library-btn:hover{transform:translateY(-2px)}
.library-btn:focus-visible,.library-filter:focus-visible,.library-search-suggestions button:focus-visible,.library-result-line button:focus-visible,.library-topic-card a:focus-visible,.library-area-card:focus-visible{outline:3px solid #ffd56b;outline-offset:3px}
.library-btn-primary{background:#fff;color:#0b2854;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.library-btn-soft{background:rgba(255,255,255,.11);color:#fff;border:1px solid rgba(255,255,255,.28)}
.library-btn-light{background:#fff;color:#0b2854}

.library-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 76% 10%,rgba(49,151,255,.25),transparent 28%),radial-gradient(circle at 6% 98%,rgba(88,64,190,.20),transparent 34%),linear-gradient(135deg,#071a37 0%,#0b2854 54%,#133d73 100%);color:#fff}
.library-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent)}
.library-hero-grid{position:relative;z-index:1;min-height:530px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:72px;align-items:center;padding:78px 0}
.library-hero-copy h1{max-width:790px;margin:16px 0 18px;font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.045em}
.library-hero-copy h1 span{color:#a9ccff}
.library-hero-copy p{max-width:720px;margin:0;font-size:clamp(18px,2vw,22px);line-height:1.55;color:#dce8fa}
.library-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.library-search-card{background:#fff;color:var(--lib-ink);border-radius:28px;padding:26px;box-shadow:0 25px 70px rgba(0,0,0,.27);border:1px solid rgba(255,255,255,.62)}
.library-search-label{display:block;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#536273;margin-bottom:11px}
.library-search-box{display:flex;align-items:center;gap:10px;border:2px solid #d7e1ec;background:#f8fafc;border-radius:16px;padding:0 14px;transition:border-color .18s ease,box-shadow .18s ease}
.library-search-box:focus-within{border-color:#2a72d8;box-shadow:0 0 0 4px rgba(42,114,216,.12)}
.library-search-box>span{font-size:28px;line-height:1;color:#61748a;transform:rotate(-15deg)}
.library-search-box input{width:100%;min-height:54px;border:0;outline:0;background:transparent;color:#172033;font:inherit;font-size:16px}
.library-search-box input::placeholder{color:#8896a6}
.library-search-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.library-search-suggestions button{appearance:none;border:1px solid #dce4ed;background:#fff;color:#344356;border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}
.library-search-suggestions button:hover{background:#edf4ff;border-color:#b8d2f5}
.library-search-status{margin:18px 0 0;color:#667688;font-size:14px;font-weight:700}

.library-principle{padding:68px 0 40px;background:#fff}
.library-principle-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.library-principle h2{font-size:clamp(32px,4.3vw,54px);line-height:1.05;letter-spacing:-.035em;margin:12px 0 0}
.library-principle-grid>p{font-size:19px;line-height:1.75;color:var(--lib-muted);margin:4px 0 0}
.library-flow{margin-top:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px;border:1px solid var(--lib-line);border-radius:20px;background:#fbfcfe;box-shadow:0 10px 30px rgba(24,40,68,.06)}
.library-flow span{display:flex;align-items:center;gap:10px;font-weight:900;white-space:nowrap}
.library-flow span b{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#e8f1ff;color:#145dcc}
.library-flow i{font-style:normal;color:#a3adba;font-size:20px}

.library-map-section{padding:76px 0;background:var(--lib-soft);border-top:1px solid #edf1f5;border-bottom:1px solid #e5eaf0}
.library-section-head{max-width:790px}
.library-section-head h2,.library-topics-head h2,.library-bridge h2{font-size:clamp(34px,4.4vw,54px);line-height:1.04;letter-spacing:-.035em;margin:11px 0 14px}
.library-section-head p,.library-topics-head p{margin:0;color:var(--lib-muted);font-size:18px;line-height:1.7}
.library-area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.library-area-card{position:relative;min-height:218px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #dbe2ea;border-radius:24px;padding:24px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 8px 26px rgba(30,46,70,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}
.library-area-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:999px;right:-55px;bottom:-70px;background:var(--area-soft,#edf4ff);opacity:.9}
.library-area-card:hover{transform:translateY(-4px);box-shadow:var(--lib-shadow);border-color:var(--area,#2a72d8)}
.library-area-top{display:flex;justify-content:space-between;gap:14px;align-items:center}
.library-area-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--area-soft,#edf4ff);color:var(--area,#2a72d8);font-weight:1000;font-size:21px}
.library-area-count{font-size:12px;font-weight:900;border-radius:999px;padding:7px 10px;background:#f2f5f8;color:#59697a}
.library-area-card h3{margin:22px 0 8px;font-size:23px;line-height:1.08}
.library-area-card p{position:relative;z-index:1;margin:0;color:#687789;line-height:1.55}
.library-area-open{position:relative;z-index:1;margin-top:18px;font-weight:900;color:var(--area,#2a72d8)}

.library-topics-section{padding:82px 0}
.library-topics-head{display:flex;justify-content:space-between;gap:36px;align-items:flex-end}
.library-topics-head>div:first-child{max-width:600px}
.library-filter-wrap{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.library-filter{appearance:none;border:1px solid #d8e0e8;background:#fff;color:#4f5e6e;border-radius:999px;padding:9px 12px;font-weight:850;cursor:pointer;transition:.15s ease}
.library-filter:hover{background:#f5f8fb}
.library-filter.active{background:#0b2854;border-color:#0b2854;color:#fff}
.library-result-line{display:flex;align-items:center;justify-content:space-between;margin:30px 0 14px;padding-top:22px;border-top:1px solid #e6ebf0}
.library-result-line strong{font-size:15px;color:#4d5b69}
.library-result-line button{appearance:none;border:0;background:transparent;color:#145dcc;font-weight:900;text-decoration:underline;cursor:pointer}
.library-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.library-topic-card{display:flex;flex-direction:column;min-height:270px;border:1px solid #dde4eb;border-radius:22px;padding:22px;background:#fff;box-shadow:0 7px 24px rgba(23,40,67,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.library-topic-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(25,43,72,.10);border-color:#b9c9dc}
.library-topic-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.library-topic-number{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:30px;border-radius:10px;background:#f0f4f8;color:#516170;font-size:12px;font-weight:1000}
.library-topic-area{font-size:11px;font-weight:1000;letter-spacing:.055em;text-transform:uppercase;color:var(--area,#2a72d8);text-align:right}
.library-topic-card h3{font-size:22px;line-height:1.12;margin:17px 0 9px;letter-spacing:-.015em}
.library-topic-card>p{margin:0;color:#697888;line-height:1.55;font-size:15px}
.library-topic-levels{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px}
.library-topic-levels span{font-size:11px;font-weight:900;padding:6px 8px;border-radius:8px;background:#f5f7f9;color:#637182}
.library-topic-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:18px}
.library-topic-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 11px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:900}
.library-topic-main{background:#0b2854;color:#fff}
.library-topic-secondary{background:#f0f5fb;color:#24517e}
.library-topic-soon{font-size:12px;color:#7b8896;font-weight:800}
.library-topic-card.is-ready{border-color:#bdd9ff;background:linear-gradient(180deg,#fff,#f8fbff)}
.library-topic-card.is-ready .library-topic-number{background:#dcecff;color:#145dcc}
.library-loading,.library-empty{grid-column:1/-1;padding:42px;text-align:center;color:#6d7987;border:1px dashed #cad3de;border-radius:18px;background:#fafbfd}

.library-model-section{padding:10px 0 82px}
.library-model-card{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:34px;border-radius:28px;background:linear-gradient(135deg,#0a234b,#145dcc);color:#fff;box-shadow:0 22px 55px rgba(12,40,84,.19)}
.library-model-card h2{font-size:clamp(28px,3.6vw,44px);line-height:1.08;margin:10px 0 11px}
.library-model-card p{max-width:760px;margin:0;color:#dce9fb;font-size:17px;line-height:1.65}

.library-bridge{padding:76px 0;background:#f3f6fa;border-top:1px solid #e3e9ef}
.library-bridge-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.library-bridge-links{display:grid;gap:10px}
.library-bridge-links a{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 19px;border:1px solid #dbe3eb;border-radius:16px;background:#fff;color:#172231;text-decoration:none;transition:.16s ease}
.library-bridge-links a:hover{border-color:#aac4e4;transform:translateX(3px)}
.library-bridge-links span{font-weight:850}
.library-bridge-links b{color:#145dcc;font-size:13px}

[data-area="numeros"],.library-area-card[data-area="numeros"]{--area:#2563eb;--area-soft:#eaf1ff}
[data-area="algebra"],.library-area-card[data-area="algebra"]{--area:#c93561;--area-soft:#fdebf1}
[data-area="geometria"],.library-area-card[data-area="geometria"]{--area:#7650c7;--area-soft:#f0ebff}
[data-area="grandezas"],.library-area-card[data-area="grandezas"]{--area:#d76816;--area-soft:#fff0e4}
[data-area="dados"],.library-area-card[data-area="dados"]{--area:#0f8fb8;--area-soft:#e4f7fb}
[data-area="logica"],.library-area-card[data-area="logica"]{--area:#218c4b;--area-soft:#e7f6ed}

.topic-page{background:#fff}
.topic-hero{background:linear-gradient(145deg,#071a37,#0b2854 64%,#123c70);color:#fff;padding:68px 0 58px;overflow:hidden;position:relative}
.topic-hero::after{content:"¾";position:absolute;right:max(3vw,24px);top:-40px;font-size:clamp(210px,28vw,430px);font-weight:1000;line-height:1;color:rgba(255,255,255,.045);letter-spacing:-.08em}
.topic-hero .library-wrap{position:relative;z-index:1}
.topic-breadcrumb-mini{display:flex;gap:8px;align-items:center;font-size:13px;color:#bbd0ea;margin-bottom:24px}
.topic-breadcrumb-mini a{color:#fff;text-decoration:none;font-weight:850}
.topic-hero h1{max-width:850px;font-size:clamp(48px,7vw,82px);line-height:.96;letter-spacing:-.045em;margin:10px 0 18px}
.topic-hero .topic-lead{max-width:790px;font-size:clamp(19px,2.2vw,24px);line-height:1.55;color:#d9e8fa;margin:0}
.topic-quick-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.topic-quick-nav a{color:#fff;text-decoration:none;font-size:13px;font-weight:850;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.06)}
.topic-section{padding:76px 0;border-bottom:1px solid #e7ebef}
.topic-section.soft{background:#f5f7fa}
.topic-section.dark{background:#101c2d;color:#fff;border:0}
.topic-two-col{display:grid;grid-template-columns:.86fr 1.14fr;gap:70px;align-items:start}
.topic-section-title{position:sticky;top:92px}
.topic-section-title .topic-step{display:inline-flex;font-size:12px;font-weight:1000;letter-spacing:.1em;text-transform:uppercase;color:#2d5f92;margin-bottom:8px}
.topic-section.dark .topic-step{color:#9fc9ff}
.topic-section-title h2{font-size:clamp(32px,4.2vw,52px);line-height:1.04;letter-spacing:-.03em;margin:0}
.topic-section-title p{font-size:17px;line-height:1.65;color:#667586}
.topic-section.dark .topic-section-title p{color:#c7d4e3}
.topic-content{font-size:18px;line-height:1.75;color:#354353}
.topic-section.dark .topic-content{color:#dce5ee}
.topic-content p:first-child{margin-top:0}
.fraction-definition{display:grid;grid-template-columns:190px 1fr;gap:26px;align-items:center;padding:26px;border:1px solid #dce4ed;border-radius:22px;background:#fff;box-shadow:0 10px 30px rgba(20,37,63,.06);margin:24px 0}
.fraction-display{display:grid;grid-template-rows:1fr 3px 1fr;align-items:center;text-align:center;width:130px;margin:auto;font-size:58px;font-weight:1000;line-height:1}
.fraction-display .bar{height:3px;background:#0b2854;border-radius:3px}
.fraction-labels{display:grid;gap:13px}
.fraction-labels div{padding:12px 14px;border-radius:14px;background:#f3f6fa}
.fraction-labels b{color:#145dcc}
.topic-note{border-left:4px solid #145dcc;padding:16px 18px;background:#edf5ff;border-radius:0 14px 14px 0;margin:24px 0}
.topic-checklist{display:grid;gap:10px;margin:20px 0}
.topic-checklist div{display:flex;gap:12px;padding:14px 16px;border:1px solid #dce4eb;border-radius:14px;background:#fff}
.topic-checklist span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:9px;background:#e9f4ed;color:#1f8d49;font-weight:1000}
.mistake-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mistake-card{padding:20px;border:1px solid #e1e5ea;border-radius:18px;background:#fff}
.mistake-card .wrong{font-weight:1000;color:#b8344c;font-size:20px}
.mistake-card h3{margin:9px 0 7px;font-size:19px}
.mistake-card p{margin:0;color:#687686;font-size:15px;line-height:1.55}
.resolved-example{padding:28px;border-radius:22px;background:#0b2854;color:#fff}
.resolved-example .question{font-size:20px;font-weight:900;margin-bottom:22px}
.resolved-steps{display:grid;gap:11px}
.resolved-step{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;padding:13px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:14px}
.resolved-step b{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#fff;color:#0b2854}
.resolved-step p{margin:4px 0;color:#e0e9f5}
.simulator-card{padding:28px;border-radius:24px;background:#fff;color:#17202e}
.simulator-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}
.simulator-head h3{font-size:28px;margin:0}
.simulator-head p{margin:5px 0 0;color:#687686}
.simulator-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.simulator-controls label{font-size:13px;font-weight:900;color:#566576}
.simulator-controls input[type="range"]{width:100%;margin-top:9px}
.simulator-visual{display:grid;grid-template-columns:repeat(var(--den,4),1fr);gap:6px;min-height:128px}
.simulator-cell{border:2px solid #cbd7e4;background:#f7f9fb;border-radius:12px;transition:.15s ease}
.simulator-cell.on{background:#2a72d8;border-color:#2a72d8}
.simulator-result{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid #e3e8ed}
.simulator-result strong{font-size:32px}
.simulator-result span{color:#627183;text-align:right}
.application-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.application-card{padding:20px;border:1px solid #dfe5eb;border-radius:18px;background:#fff}
.application-card span{font-size:28px}
.application-card h3{margin:10px 0 6px;font-size:18px}
.application-card p{margin:0;color:#6c7a89;line-height:1.5;font-size:14px}
.connection-map{display:flex;align-items:stretch;gap:9px;overflow-x:auto;padding:10px 2px 16px}
.connection-node{min-width:155px;padding:18px;border-radius:18px;background:#fff;border:1px solid #dce3ea}
.connection-node.current{background:#0b2854;color:#fff;border-color:#0b2854}
.connection-node small{display:block;color:#718093;font-weight:850;margin-bottom:5px}
.connection-node.current small{color:#bbd4f3}
.connection-node b{font-size:18px}
.connection-arrow{display:grid;place-items:center;color:#9aa6b3;font-size:22px}
.topic-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.topic-action{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px;border-radius:16px;background:#fff;color:#182231;text-decoration:none;border:1px solid #dbe2e9}
.topic-action:hover{border-color:#9fbee4}
.topic-action span{font-weight:900}
.topic-action b{color:#145dcc}
.topic-related{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.topic-related a{display:inline-flex;padding:9px 12px;border:1px solid #dce4eb;border-radius:999px;text-decoration:none;color:#24517d;font-weight:850;background:#fff}
.topic-faq details{border-top:1px solid #dce3ea;padding:18px 0}
.topic-faq summary{cursor:pointer;font-weight:950;font-size:18px}
.topic-faq p{color:#647384;line-height:1.65}
.topic-closing{padding:72px 0;background:#071a37;color:#fff;text-align:center}
.topic-closing h2{max-width:820px;margin:0 auto 14px;font-size:clamp(34px,4.8vw,56px);line-height:1.06}
.topic-closing p{max-width:740px;margin:0 auto 26px;color:#cbdcf0;font-size:18px;line-height:1.65}

@media(max-width:980px){
  .library-hero-grid{grid-template-columns:1fr;gap:34px;padding:62px 0}
  .library-search-card{max-width:720px}
  .library-principle-grid,.library-bridge-grid,.topic-two-col{grid-template-columns:1fr;gap:30px}
  .library-area-grid,.library-topic-grid{grid-template-columns:repeat(2,1fr)}
  .library-topics-head{align-items:flex-start;flex-direction:column}
  .library-filter-wrap{justify-content:flex-start}
  .library-model-card{grid-template-columns:1fr}
  .library-flow{overflow-x:auto;justify-content:flex-start}
  .library-flow span{flex:0 0 auto}
  .topic-section-title{position:static}
  .application-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .library-wrap{width:min(100% - 24px,1180px)}
  .library-hero-grid{min-height:auto;padding:48px 0}
  .library-hero-copy h1{font-size:clamp(39px,12vw,58px)}
  .library-hero-actions .library-btn{width:100%}
  .library-search-card{padding:18px;border-radius:22px}
  .library-principle{padding:48px 0 28px}
  .library-principle-grid{gap:20px}
  .library-principle-grid>p{font-size:17px}
  .library-flow{border-radius:16px;padding:12px}
  .library-map-section,.library-topics-section,.library-bridge,.topic-section{padding:54px 0}
  .library-area-grid,.library-topic-grid,.mistake-grid,.topic-actions-grid,.application-grid{grid-template-columns:1fr}
  .library-area-card{min-height:200px}
  .library-topic-card{min-height:245px}
  .library-filter-wrap{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .library-filter{flex:0 0 auto}
  .library-model-section{padding-bottom:56px}
  .library-model-card{padding:24px}
  .library-bridge-links a{align-items:flex-start;flex-direction:column;gap:4px}
  .topic-hero{padding:48px 0}
  .topic-hero h1{font-size:clamp(46px,15vw,68px)}
  .fraction-definition{grid-template-columns:1fr}
  .simulator-controls{grid-template-columns:1fr}
  .simulator-result{align-items:flex-start;flex-direction:column}
  .simulator-result span{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}