/* Meet Luís: coluna de app de telemóvel, larga no PC para o calendário. Tom pessoal, azul-petróleo. */
:root{
  --bg:#f4f4f5; --card:#ffffff; --fg:#27272a; --muted:#6b6b72; --line:#e4e4e7;
  --acc:#17606e; --acc-soft:#e1f0f2; --on-acc:#ffffff; --warn:#b4531a; --warn-soft:#fbeadf;
  --free:#1f8a5b; --free-soft:#e3f4ec;
  --c-luis:#17606e; --c-rev:#27272a; --c-fam:#7c5cc4; --c-live:#2f74c0; --c-pul:#d9822b;
  --display:"Figtree",system-ui,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
  --hora:44px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#18181b; --card:#232327; --fg:#f2f2f3; --muted:#a1a1aa; --line:#34343a;
  --acc:#62b6c4; --acc-soft:#173338; --on-acc:#0e2226; --warn:#f0a06b; --warn-soft:#3a2516; --c-luis:#62b6c4; --free:#4cc28c; --free-soft:#163126; --c-rev:#d4d4d8; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#18181b; --card:#232327; --fg:#f2f2f3; --muted:#a1a1aa; --line:#34343a;
  --acc:#62b6c4; --acc-soft:#173338; --on-acc:#0e2226; --warn:#f0a06b; --warn-soft:#3a2516; --c-luis:#62b6c4; --free:#4cc28c; --free-soft:#163126; --c-rev:#d4d4d8; color-scheme:dark}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.45;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 40px}
.wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
h1{font-family:var(--display);font-weight:800;letter-spacing:-.01em;font-size:30px;line-height:1.05;margin:0}
h1 b{color:var(--acc)}
.sub{color:var(--muted);margin:4px 0 0;font-size:14px}
.aviso{font-size:13px;background:var(--card);border:1px dashed var(--line);border-radius:10px;padding:8px 12px;color:var(--muted)}
.tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
.tabs button{flex:1;border:0;background:transparent;color:var(--fg);font:600 14px var(--body);padding:9px 4px;border-radius:9px;cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--acc);color:var(--on-acc)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
section{display:flex;flex-direction:column;gap:12px}
.barra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;color:var(--fg);font:600 13px var(--body);padding:6px 11px;border-radius:7px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.nav{display:flex;align-items:center;gap:6px}
.nav button{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:8px;min-width:34px;height:32px;font:600 14px var(--body);cursor:pointer;padding:0 10px}
.nav b{font-size:14px;min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:99px;padding:5px 10px;font:500 13px var(--body);cursor:pointer}
.chip i{width:10px;height:10px;border-radius:50%;background:var(--c)}
.chip[aria-pressed="false"]{opacity:.45}
.chip small{color:var(--muted)}
.dia{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.dia.hoje{border-color:var(--acc)}
.dia h2{font-family:var(--display);font-weight:700;font-size:19px;margin:0 0 2px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dia h2 span{font-family:var(--body);text-transform:none;font-size:12px;font-weight:600;color:var(--free);letter-spacing:0}
.dia.vazio{padding:8px 14px;color:var(--muted);font-size:14px}
.ev{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:start;font-size:14px}
.ev time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;padding-top:1px}
.ev .t{border-left:3px solid var(--c);padding-left:8px;min-width:0}
.ev .t small{display:block;color:var(--muted);font-size:12px}
.ev.pul .t{border-left-style:dashed}
.ev.livre .t{border-left-color:var(--free);background:var(--free-soft);color:var(--free);font-weight:600;border-radius:0 6px 6px 0;padding:2px 8px}
/* Calendário em grelha de horas */
.grelha-scroll{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px}
.grelha{display:grid;grid-template-columns:44px repeat(var(--cols),minmax(0,1fr));min-width:calc(44px + var(--cols) * var(--colmin))}
.grelha .cab{position:sticky;top:0;background:var(--card);border-bottom:1px solid var(--line);padding:8px 4px;text-align:center;font-size:12px;font-weight:600;line-height:1.2}
.grelha .cab small{display:block;font-family:var(--display);font-size:20px}
.grelha .cab.hoje small{color:var(--acc)}
.horas-col{position:relative;height:calc(var(--hora) * 14)}
.horas-col span{position:absolute;right:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;transform:translateY(-50%)}
.col{position:relative;height:calc(var(--hora) * 14);border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hora) - 1px),var(--line) calc(var(--hora) - 1px),var(--line) var(--hora))}
.bl{position:absolute;left:3px;right:3px;border-radius:6px;padding:2px 6px;font-size:12px;line-height:1.25;overflow:hidden;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 16%,var(--card))}
.bl small{display:block;color:var(--muted);font-variant-numeric:tabular-nums}
.bl.pul{border-left-style:dashed}
.bl.livre{background:var(--free-soft);border-left-color:var(--free);color:var(--free);font-weight:600;z-index:0}
.bl:not(.livre){z-index:1}
.mes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mes .sem{font-size:11px;font-weight:700;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.05em}
.mes button{background:var(--card);border:1px solid var(--line);border-radius:10px;min-height:76px;padding:5px;text-align:left;color:var(--fg);cursor:pointer;display:flex;flex-direction:column;gap:2px;font:12px var(--body);min-width:0;overflow:hidden}
.mes button.fora{opacity:.35}
.mes button.hoje{border-color:var(--acc)}
.mes button b{font-family:var(--display);font-size:18px;line-height:1}
.mes .pt{display:flex;gap:3px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.mes .pt i{flex:0 0 6px;height:6px;border-radius:50%;background:var(--c)}
.mes .lv{color:var(--free);font-weight:600;font-size:11px;margin-top:auto}
/* Cartões e formulários */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:12px}
.card h3{margin:0;font-size:15px}
.card .nota{margin:-6px 0 0}
.linha{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.linha label{font-weight:500}
select,input{font:15px var(--body);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px}
input[type=text],input[type=email]{width:100%;box-sizing:border-box}
input[type=range]{width:100%;accent-color:var(--acc);padding:0;border:0;background:transparent}
.opcoes{display:flex;gap:6px;flex-wrap:wrap}
.opcoes button{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;padding:7px 11px;font:600 13px var(--body);cursor:pointer}
.opcoes button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.contador{display:flex;align-items:center;gap:10px}
.contador button{width:44px;height:44px;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:700 20px var(--body);cursor:pointer}
.contador output{font-family:var(--display);font-size:34px;font-weight:700;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.ate{font-size:14px;color:var(--free);font-weight:600}
.maq{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);border-top:1px dashed var(--line);padding-top:10px}
.maq .seg button{padding:4px 10px}
.link{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px}
.link code{flex:1;min-width:0;overflow-wrap:anywhere;font-family:var(--body);font-weight:600}
.btn{border:0;background:var(--acc);color:var(--on-acc);font:600 14px var(--body);padding:9px 14px;border-radius:9px;cursor:pointer}
.btn.sec{background:transparent;color:var(--fg);border:1px solid var(--line)}
.btn.peq{padding:6px 10px;font-size:13px}
.lista-links{display:flex;flex-direction:column;gap:8px}
.lk{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.lk .linha b{font-size:14px}
.lk p{margin:0;font-size:13px;color:var(--muted)}
.lk .acoes{display:flex;gap:6px;flex-wrap:wrap}
.modelos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.modelos button{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:12px;padding:10px;text-align:left;cursor:pointer;font:14px var(--body);display:flex;flex-direction:column;gap:2px}
.modelos button b{font-size:14px}
.modelos button small{color:var(--muted);font-size:12px}
.passos{display:flex;gap:6px}
.passos i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.passos i.on{background:var(--acc)}
.telemovel{border:1px solid var(--line);border-radius:22px;background:var(--card);padding:18px 16px;display:flex;flex-direction:column;gap:12px;max-width:420px;width:100%;box-sizing:border-box;align-self:center}
.perfil{display:flex;gap:12px;align-items:center}
.perfil .av{flex:0 0 46px;height:46px;border-radius:50%;background:var(--acc);color:var(--on-acc);display:grid;place-items:center;font-family:var(--display);font-size:22px}
.perfil b{display:block}
.perfil small{color:var(--muted)}
.diasel{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.diasel button{flex:0 0 auto;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:10px;padding:6px 10px;font:600 13px var(--body);cursor:pointer;text-align:center;line-height:1.2}
.diasel button small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.diasel button[aria-pressed="true"]{border-color:var(--acc);background:var(--acc-soft)}
.horas{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.horas button{border:1px solid var(--free);color:var(--free);background:transparent;border-radius:8px;padding:8px 0;font:600 14px var(--body);font-variant-numeric:tabular-nums;cursor:pointer}
.horas button[aria-pressed="true"]{background:var(--free);color:var(--card)}
.vazio-t{color:var(--muted);font-size:14px;margin:0}
.ok{background:var(--free-soft);color:var(--free);border-radius:12px;padding:12px;font-weight:600}
.nota{font-size:12px;color:var(--muted);margin:0}
.interr{display:flex;justify-content:space-between;align-items:center;gap:10px}
.interr span small{display:block;color:var(--muted);font-size:12px}
.sw{position:relative;flex:0 0 46px;height:26px;border-radius:99px;border:0;background:var(--line);cursor:pointer}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--card);transition:left .15s}
.sw[aria-checked="true"]{background:var(--free)}
.sw[aria-checked="true"]::after{left:23px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;font-size:14px;z-index:20;max-width:calc(100% - 32px)}
@media (prefers-reduced-motion:reduce){.sw::after{transition:none}}
[hidden]{display:none!important}
@media (max-width:520px){.mes button{min-height:58px}.mes .pt{font-size:0;gap:0}.mes .pt i{margin-right:2px}.mes .lv{font-size:10px}}
.bloco{display:flex;flex-direction:column;gap:10px}
.bloco+.bloco{border-top:1px solid var(--line);padding-top:12px}
.bloco h4{margin:0;font-size:14px}
.erro{color:var(--acc);font-size:13px;font-weight:600;margin:0}
.req{color:var(--acc)}
.email{border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px 14px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.email .cab-email{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px}
.email .cab-email b{color:var(--fg)}
.email p{margin:0}
.email a{color:var(--acc);font-weight:600;overflow-wrap:anywhere}
.email .bt{align-self:flex-start;background:var(--acc);color:var(--on-acc);border-radius:8px;padding:8px 12px;font-weight:600;font-size:13px}
.campo{display:flex;flex-direction:column;gap:4px}
.campo label{font-size:13px;font-weight:600}
.wa{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:#1fa855;color:#fff;border-radius:10px;padding:10px 14px;font-weight:700;font-size:14px;text-decoration:none}
.wa svg{width:18px;height:18px;fill:currentColor}
.notif{display:flex;gap:10px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:14px;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.notif .ic{flex:0 0 32px;height:32px;border-radius:8px;background:#2aa3df;color:#fff;display:grid;place-items:center;font-weight:700}
.notif small{display:block;color:var(--muted);font-size:12px}
.msg{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--free-soft);border-radius:10px;padding:10px 12px;font-size:14px;margin:0}
.reuniao{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.reuniao .estado{font-size:12px;font-weight:700}
.reuniao .estado.pend{color:var(--warn)}
.reuniao .estado.feito{color:var(--free)}
.reuniao dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:13px}
.reuniao dt{color:var(--muted)}
.reuniao dd{margin:0;min-width:0;overflow-wrap:anywhere}
.fab{position:fixed;right:max(20px,calc(env(safe-area-inset-right,0px) + 20px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;border:0;background:var(--acc);color:var(--on-acc);font:400 34px/1 var(--body);box-shadow:0 6px 18px rgba(23,96,110,.35);cursor:pointer;z-index:15}
.folha{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:30;display:flex;align-items:flex-end;justify-content:center}
.folha-in{background:var(--card);width:100%;max-width:520px;max-height:92%;overflow-y:auto;border-radius:18px 18px 0 0;box-sizing:border-box;padding:16px max(16px,env(safe-area-inset-left,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:10px}
.folha-in h3{margin:0;font-size:17px}
.alerta{background:var(--warn-soft);color:var(--fg);border-radius:10px;padding:8px 10px;font-size:13px;margin:0}
.ev.livre.toca,.bl.livre.toca{cursor:pointer;outline:1px dashed var(--free)}
.agcal{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:4px}
.agcal b{font-size:13px}
.maqtopo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.maqtopo .seg button{padding:4px 10px}

.topo{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.topo img{width:44px;height:44px;border-radius:12px}
.pequeno{font-size:13px}
.cartao-centro{max-width:420px;margin:40px auto;display:flex;flex-direction:column;gap:14px}
.lingua{display:inline-flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:2px}
.lingua button{border:0;background:transparent;color:var(--fg);font:600 12px var(--body);padding:4px 8px;border-radius:6px;cursor:pointer}
.lingua button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.aviso-erro{background:var(--warn-soft);color:var(--fg);border-radius:10px;padding:10px 12px;font-size:14px}
a{color:var(--acc)}

button,select,a.btn{touch-action:manipulation}
.vista-dono{position:sticky;top:8px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;margin-bottom:12px;border-radius:12px;background:var(--acc);color:var(--on-acc);font-weight:600;font-size:14px}
.vista-dono .btn{background:var(--on-acc);color:var(--acc);text-decoration:none;white-space:nowrap}
.vista-dono[hidden]{display:none}
.agendas summary{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:12px;color:var(--muted);cursor:pointer;padding:2px 0}
.agendas summary::-webkit-details-marker{display:none}
.agendas summary span,.lista-agendas .nome{display:inline-flex;align-items:center;gap:5px}
.agendas summary i,.lista-agendas i{width:8px;height:8px;border-radius:50%;background:var(--c);display:inline-block}
.agendas summary b{margin-left:auto;font-weight:600;color:var(--fg)}
.agendas summary b::after{content:" ▾"}
.agendas[open] summary b::after{content:" ▴"}
.lista-agendas{display:flex;flex-direction:column;gap:2px;margin-top:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 12px}
.lista-agendas .interr{border:0;background:none;width:100%;font:500 14px var(--body);color:var(--fg);padding:8px 0;cursor:pointer;text-align:left}
.agendas{width:100%}
