/* Camada responsiva: telemóvel (<=640), tablet (641-1024), computador (>=1025), ecrãs grandes e paisagem. Fontes fluidas. */
:root{--fs:clamp(14.5px,.26vw + 13.7px,17.5px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--fs);line-height:1.5;overflow-x:hidden}
h1{font-size:clamp(21px,1.4vw + 15px,34px)}.hero h1{font-size:clamp(21px,1.6vw + 14px,34px)}
h2{font-size:clamp(16px,.5vw + 14px,21px)}h3{font-size:clamp(14px,.3vw + 13px,17px)}
.main{padding:clamp(14px,2vw,34px)}.card{padding:clamp(14px,1.5vw,24px)}
img,svg,video,canvas{max-width:100%}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tbl{min-width:420px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(130px,16vw,200px),1fr));gap:12px}
.kpi b{font-size:clamp(20px,1.6vw + 12px,30px)}
.mcal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}.mh2{text-align:center;font-size:.8em;color:var(--muted)}
.mc{min-height:clamp(58px,9vw,112px);border:1px solid #e3eefb;border-radius:10px;padding:4px;display:flex;flex-direction:column;gap:2px;overflow:hidden;background:#fff}.mc.out{opacity:.4}.mc.today{border-color:var(--acc);box-shadow:none}
.mc>span:first-child{font-size:.8em;font-weight:700;color:#4b6a88}
.ms{display:block;font-size:.72em;line-height:1.2;padding:2px 5px;border-radius:6px;background:#f1efe9;color:#0f2a3d;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms.done{background:#dcfce7}.ms.race{background:#ffedd5}
.card.flat{box-shadow:none;border:1px solid #e3eefb}.btnlink{display:inline-block;background:var(--acc);color:#fff;border-radius:10px;padding:10px 16px;font-weight:700;text-decoration:none;margin:6px 0}
.mtop{display:none}
/* Tablet e computador */
@media(min-width:861px) and (max-width:1100px){.app{grid-template-columns:190px 1fr}.side-nav a{font-size:13px;padding:8px 10px}.hero-art{transform:scale(.85);transform-origin:right bottom}}
@media(min-width:1101px){.app{grid-template-columns:250px 1fr}}
@media(min-width:1500px){.main{max-width:1560px}.card{padding:26px}}
/* Telemóvel e tablet vertical: barra inferior fixa */
@media(max-width:860px){
  .app{display:block}
  .side{position:fixed!important;left:0;right:0;bottom:0;top:auto;height:auto!important;z-index:60;padding:4px 0 calc(4px + env(safe-area-inset-bottom))!important;flex-direction:row;border:0!important;border-top:1.5px solid var(--line)!important;background:#fff!important;box-shadow:none}
  .side .brand,.side .side-foot{display:none!important}
  .side-nav{width:100%;margin:0;padding:0 6px;gap:2px;flex-direction:row!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x proximity}
  .side-nav a{flex:0 0 auto!important;min-width:70px;flex-direction:column!important;gap:3px!important;padding:6px 8px!important;font-size:10.5px!important;text-align:center;border-radius:12px!important;border:0!important;color:#4b6a88!important;scroll-snap-align:start}
  .side-nav a svg{width:22px;height:22px}.side-nav a.on{background:#f1efe9!important;color:#0f2a3d!important}
  .main{padding:12px 12px calc(86px + env(safe-area-inset-bottom))!important}
  .mtop{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px 10px;font-weight:800;color:#0f2a3d}.mtop button{min-height:36px}
  .hero{padding:14px 16px!important;border-radius:20px!important;margin-bottom:14px!important}.hero-art{transform:scale(.7);transform-origin:right center;margin:-10px -14px -10px 0}
  input,select,textarea{font-size:16px!important}
  .grid2,.cols{grid-template-columns:1fr 1fr}.mcal{gap:2px}.mc{padding:2px;border-radius:7px}.ms{font-size:0;height:6px;padding:0;border-radius:3px}.ms.race{font-size:0}
}
@media(max-width:560px){.grid2,.cols,.grid{grid-template-columns:1fr!important}.hero-art{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.between{flex-wrap:wrap;gap:8px}.row{flex-wrap:wrap}.race{grid-template-columns:50px 1fr!important}.wk{grid-template-columns:1fr!important}}
/* Alvos de toque */
@media(pointer:coarse){button,.btn,select,input:not([type=checkbox]):not([type=radio]){min-height:44px}button.sm{min-height:36px}a.btnlink{min-height:44px}}
/* Paisagem baixa (telemóvel deitado) */
@media(max-height:480px) and (orientation:landscape){.hero{display:none}.side{padding-top:2px!important}.side-nav a{flex-direction:row!important;min-width:0;font-size:12px!important}.side-nav a svg{width:18px;height:18px}.main{padding-bottom:64px!important}.t3d{height:70vh!important}}
@media(prefers-contrast:more){.muted{color:#25384d}}
.bellwrap{position:fixed;top:12px;right:14px;z-index:70}.legal{font-size:11.5px;color:#8aa0b5;margin:0 0 8px}.legal a{color:#8aa0b5}
.legalpage{max-width:820px;margin:0 auto;padding:24px 16px}
@media(max-width:860px){.bellwrap{top:8px;right:10px}}
/* ===== Modo app (telemóvel/tablet vertical): barra de separadores + folha «Mais» ===== */
html{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}
.appnav{display:none}
@media(max-width:860px){
  .side{display:none!important}
  .appnav{display:block}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:space-around;align-items:stretch;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid #dbeafe;padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:none}
  .tabbar a,.tabbar button.tab-more{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;border-radius:14px;background:none!important;color:#5b7690!important;font-size:10.5px;font-weight:700;text-decoration:none;border:0;min-height:52px;box-shadow:none}
  .tabbar a svg{width:23px;height:23px}.tab-more .ham{font-size:21px;line-height:23px}
  .tabbar a.on,.tab-more.on{color:#0f2a3d!important;background:#f1efe9!important}
  .tabbar a span,.tab-more span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .sheet{position:fixed;inset:0;z-index:80;background:rgba(10,42,74,.45);display:flex;align-items:flex-end;animation:fadeIn .2s}
  .sheet-in{width:100%;max-height:82vh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:10px 14px calc(78px + env(safe-area-inset-bottom));animation:slideUp .28s cubic-bezier(.2,.8,.2,1)}
  .sheet-handle{width:44px;height:5px;border-radius:3px;background:#d9d6cd;margin:2px auto 12px}
  .sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
  .sheet-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;border-radius:16px;background:#f4f3ee;color:#0f2a3d;text-decoration:none;font-size:12px;font-weight:700;text-align:center;min-height:78px;justify-content:center}
  .sheet-grid a svg{width:26px;height:26px;color:#0d9488}.sheet-grid a.on{background:#eceae3;box-shadow:none}
  .main{padding-bottom:calc(88px + env(safe-area-inset-bottom))!important;min-height:100vh}
  .bellwrap{top:10px;right:78px}.mtop{padding-right:44px;position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);margin:-12px -12px 8px;padding:10px 12px}
  .card,.row,.kpi{animation-duration:.35s}
  body{-webkit-user-select:none;user-select:none}input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text}
}
@media(min-width:861px){.appnav{display:none!important}}
@keyframes fadeIn{from{opacity:0}}@keyframes slideUp{from{transform:translateY(100%)}}
@media(max-width:860px) and (orientation:landscape) and (max-height:480px){.tabbar a span,.tab-more span{display:none}.tabbar a,.tabbar button.tab-more{min-height:40px}.sheet-grid{grid-template-columns:repeat(5,1fr)}}
.eqtog{display:inline-flex;align-items:center;gap:6px;font-size:.9em;font-weight:600;text-transform:none;letter-spacing:0;color:#0f2a3d;margin:0 10px 0 0}.eqtog input{width:auto;min-height:0}
.eqchips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}.eqchips button{font-size:12px;padding:5px 10px;min-height:32px}
