/* ═══ 5.0 (b) · revisão da Joana de 21/10 (noite): Hoje coeso, com ar de app avançada; a coluna das ações sem cores de fundo;
   Calendário com Dia, Semana e Mês, estados com ícones e sobreposições lado a lado; Relatórios numa secção própria ═══ */

/* ---------- 1 · coluna das ações (toda a app): cartão branco, linhas neutras, só o ícone tem cor, linhas finas a dividir ---------- */
.cx47s{background:#fff;border:1px solid #dfe4e5;border-radius:12px;box-shadow:0 1px 2px rgba(28,42,45,.04),0 6px 16px rgba(28,42,45,.05);padding:6px 6px 7px;gap:0}
.cx47s .t47{font-size:9.5px;font-weight:700;letter-spacing:.09em;color:#8a918b;margin:9px 8px 3px}
.cx47s .t47:first-child{margin-top:3px}
.cx47s .btn,.cx47s .btn.k41{position:relative;height:28px;background:transparent;border:0;border-radius:7px;box-shadow:none;color:var(--ink);font-weight:600;padding:0 8px;gap:8px}
.cx47s .btn svg.i40{width:14px;height:14px}
.cx47s .btn+.btn::before{content:'';position:absolute;left:8px;right:8px;top:0;height:1px;background:#eaeeef}
.cx47s .btn:hover,.cx47s .btn.k41:hover{background:#f1f4f5;border:0}
.cx47s .btn:hover::before,.cx47s .btn:hover+.btn::before{opacity:0}
/* a ação principal continua cheia a verde; é a única */
.cx47s .btn.k41.ok{background:#298a8f;color:#fff;margin:2px 0}
.cx47s .btn.k41.ok:hover{background:#247a7e}
.cx47s .btn.k41.ok::before,.cx47s .btn.k41.ok+.btn::before{display:none}
.cx47s .btn.k41.ok svg.i40{color:#fff}
/* cada ícone com a sua cor */
.cx47s .btn.k41.rg{--k:#c27a1a}.cx47s .btn.k41.cam{--k:#2f74c0}.cx47s .btn.k41.nav{--k:#1a73e8}.cx47s .btn.k41.lg{--k:#8a918b}
.cx47s .btn.k41.wa svg.i40{color:#1fb85a}.cx47s .btn.k41.tel{--k:#d93025}.cx47s .btn.k41.sms{--k:#d08a1e}.cx47s .btn.k41.em{--k:#1a6fd1}
.cx47s .btn.k41.pdf{--k:#c4302b}.cx47s .btn.k41.prc{--k:#7458c4;color:var(--ink)}
.cx47s .btn.lk47{color:var(--mu)}
.cx47s .sel47{margin:2px 0 0}
/* confirmação com o cliente: uma linha de estado, sem caixa de cor */
.cx47s .cfb44,.cx47s .cfb44.pend,.cx47s .cfb44.av,.cx47s .cfb44.ok{background:none;border:0;border-radius:0;padding:4px 8px 7px;margin:0 0 3px;border-bottom:1px solid #eaeeef;font-size:11.5px;line-height:1.4;color:var(--mu);gap:2px}
.cx47s .cfb44>span:first-child{display:block}
.cx47s .cfb44>span:first-child b{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.cx47s .cfb44>span:first-child b::before{content:'';width:7px;height:7px;border-radius:50%;flex:none}
.cx47s .cfb44.pend>span:first-child b{color:#9a6212}.cx47s .cfb44.pend>span:first-child b::before{background:#e0a33a}
.cx47s .cfb44.av>span:first-child b{color:#a0332a}.cx47s .cfb44.av>span:first-child b::before{background:#d9534a}
.cx47s .cfb44.ok>span:first-child{color:var(--mu)}
.cx47s .cfb44.ok>span:first-child svg.i40{color:#298a8f;width:13px;height:13px;vertical-align:-2px}
.cx47s .cfb44.ok>span:first-child b{color:#2b696e}.cx47s .cfb44.ok>span:first-child b::before{display:none}
.cx47s .cfb44 .btn.k41,.cx47s .cfb44 .btn.k41.ok{background:transparent;color:var(--ink);height:26px;margin:0;justify-content:flex-start;font-size:12px}
.cx47s .cfb44 .btn.k41.ok svg.i40{color:#298a8f}
.cx47s .cfb44 .btn.k41:hover{background:#f1f4f5}
.cx47s .cfb44 .btn.k41.rg svg.i40{color:#c27a1a}

/* ---------- 2 · Hoje: em cima as três formas de começar; a próxima marcação num cartão ligado ao cartão das ações; atrasos; restantes ---------- */
.hj50top{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;margin-bottom:10px}
.hj50top.n2{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) auto}
.hj50top.n1{grid-template-columns:minmax(0,520px)}
.hj50voz,.hj50b{display:flex;align-items:center;gap:13px;height:60px;padding:0 16px;border-radius:14px;text-align:left;cursor:pointer;min-width:0;font:inherit}
.hj50voz{border:0;background:linear-gradient(120deg,#1c565b 0%,#277a7e 62%,#2e9096 100%);color:#fff;box-shadow:0 8px 18px rgba(28,86,91,.20),inset 0 1px 0 rgba(255,255,255,.08);position:relative;overflow:hidden}
.hj50voz::after{content:'';position:absolute;right:-30px;top:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.10),transparent 70%);pointer-events:none}
.hj50voz:hover{filter:brightness(1.06)}
.hj50voz .mc{flex:none;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 6px rgba(255,255,255,.06)}
.hj50voz .mc svg.i40{width:19px;height:19px;color:#fff}
.hj50voz .tx,.hj50b .tx{display:flex;flex-direction:column;min-width:0}
.hj50voz b{font-family:var(--disp);font-size:17px;font-weight:600;line-height:1.2;white-space:nowrap}
.hj50voz small{font-size:12.5px;opacity:.86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hj50b{border:1px solid #dfe4e5;background:#fff;box-shadow:0 1px 2px rgba(28,42,45,.04)}
.hj50b:hover{border-color:#a7cacb;box-shadow:0 4px 14px rgba(28,42,45,.07)}
.hj50b .ic{flex:none;width:36px;height:36px;border-radius:10px;background:#eef4f4;color:#2b696e;display:flex;align-items:center;justify-content:center}
.hj50b .ic svg.i40{width:18px;height:18px}
.hj50b b{font-size:14px;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hj50b small{font-size:12px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hj50sim{align-self:stretch;border:1.5px dashed #a7cacb;background:#fff;border-radius:14px;color:#2b696e;font-weight:700;font-size:12.5px;padding:0 14px;display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.hj50sim svg.i40{width:14px;height:14px}
body.nodemo44 .hj50sim{display:none}

.hj50m{display:grid;grid-template-columns:minmax(0,1fr) 30px 430px;align-items:stretch;margin-bottom:10px}
.hj50m.one{grid-template-columns:minmax(0,1fr)}
.hj50c{background:#fff;border:1px solid #dfe4e5;border-radius:14px;box-shadow:0 1px 2px rgba(28,42,45,.04),0 6px 16px rgba(28,42,45,.05);padding:12px 16px 12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.hj50h{display:flex;align-items:center;gap:14px;min-width:0}
.hj50t{flex:none;width:74px;height:56px;border-radius:12px;background:linear-gradient(180deg,#f2f7f7,#e7f0f0);border:1px solid #d2e4e4;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}
.hj50t b{font-family:var(--disp);font-size:20px;color:var(--ink)}
.hj50t span{font-size:11.5px;color:var(--mu);font-weight:600}
.hj50n{flex:1;min-width:0}
.hj50n .k{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#2b696e}
.hj50n .k b{letter-spacing:.02em;text-transform:none;font-size:11.5px;color:#9a6212;background:#fdf3e1;border-radius:10px;padding:1px 8px}
.hj50n .lv{width:7px;height:7px;border-radius:50%;background:#298a8f;box-shadow:0 0 0 3px rgba(41,138,143,.16);animation:lv50b 2.2s ease-in-out infinite}
@keyframes lv50b{0%,100%{box-shadow:0 0 0 3px rgba(41,138,143,.16)}50%{box-shadow:0 0 0 6px rgba(41,138,143,.04)}}
.hj50n h2{font-family:var(--disp);font-size:24px;font-weight:600;color:var(--ink);margin:2px 0 0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;text-transform:none;letter-spacing:0}
.hj50n h2:hover{color:#2b696e}
.hj50n h2.vz{cursor:default;color:var(--mu)}
.hj50h .rt{flex:none;display:flex;align-items:center;gap:8px;align-self:flex-start}
.hj50h .rt .inp,.hj50h .rt .btn{height:32px;min-height:0;font-size:12.5px}
.hj50i{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 20px;padding-top:10px;border-top:1px solid #eceff0}
.hj50i>div{display:flex;align-items:flex-start;gap:9px;min-width:0}
.hj50i .ii{flex:none;width:26px;height:26px;border-radius:8px;background:#f1f4f5;display:flex;align-items:center;justify-content:center;color:#5f696b}
.hj50i .ii svg.i40{width:14px;height:14px}
.hj50i>div>span:last-child{display:flex;flex-direction:column;min-width:0;font-size:13px;color:var(--ink);line-height:1.3}
.hj50i>div>span:last-child>*:not(em){overflow:hidden;text-overflow:ellipsis}
.hj50i em{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a918b;line-height:1.3}
.hj50i .v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl50b{color:#a0332a;font-weight:600}
.hj50c .ov45{margin:0;padding:7px 11px}
.hj50c .hx45{background:#f6f8f9;border-color:#e3e8e9}
.hj50c .vz50b{font-size:13px;color:var(--mu);padding:4px 0 2px}
/* a linha verde que liga a marcação às ações */
.hj50lk{position:relative}
.hj50lk::before{content:'';position:absolute;left:0;right:0;top:41px;height:2px;background:linear-gradient(90deg,#298a8f,#4aaeb3)}
.hj50lk::after{content:'';position:absolute;left:-5px;right:-5px;top:37px;height:10px;background:radial-gradient(circle at 5px 5px,#fff 0 2px,#298a8f 2.5px 4.5px,transparent 5px),radial-gradient(circle at calc(100% - 5px) 5px,#fff 0 2px,#4aaeb3 2.5px 4.5px,transparent 5px)}
.hj50a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px;align-content:start;padding:8px 10px 9px;border-color:#d2e4e4}
.hj50a>.cfb44{grid-column:1/-1;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
.hj50a>.cfb44>span:first-child{grid-column:1/-1;margin-bottom:3px}
.hj50a>.cfb44 .btn+.btn::before{display:none}
.hj50a>div{display:flex;flex-direction:column;min-width:0}
/* a mesma ficha na linha aberta e na janela da marcação */
.hj50e{margin:0}
.hj50e .hj50c{box-shadow:none;padding:10px 14px}
.hj50e .hj50i{border-top:0;padding-top:0}
.hj50e .hj50lk::before{top:30px}.hj50e .hj50lk::after{top:26px}
.hj50v{display:flex;justify-content:flex-end;margin-top:-2px}
.em44 .hj50e{width:min(1000px,84vw)}
/* atrasos e restantes */
.hj50x .atr47{margin:0 0 10px}
.hj50r.card{padding-bottom:10px}
#view>.hj50r.card.grow{flex:0 1 auto;min-height:150px}
.hj50r.card.grow>.tab{flex:0 1 auto;min-height:0;overflow:auto}
.hj50r .th{position:sticky;top:0;z-index:2}
.hj50r .ch{margin-bottom:8px}
.hj50r .th,.hj50r .tr{grid-template-columns:64px minmax(0,1fr) 210px 22px}
.hj50r .h47{font-family:var(--disp);font-size:17px;color:var(--ink)}
.hj50r .xp{padding-top:12px}
.hj50r .vazio50b{font-size:13px;color:var(--mu);padding:4px 2px}
/* os passos do Hoje fazem a ação ao carregar */
.st50b button.c{border:0;background:none;padding:0;margin:0;font:inherit;cursor:pointer}
.st50b button.c:disabled{cursor:default}
.st50b button.c:not(:disabled):hover i{border-color:#298a8f;box-shadow:0 0 0 3px rgba(41,138,143,.15)}

/* ---------- 3 · Calendário: uma linha de filtros; Dia, Semana e Mês; marcações com a altura da duração ---------- */
#view .filt.cal50f{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-bottom:10px;min-width:0}
#view .cal50f .q42{flex:1 1 200px!important;min-width:140px!important;max-width:280px;width:auto!important}
#view .cal50f>select.inp,#view .cal50f .sel46{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:176px;height:36px;min-height:0;font-size:12.5px;padding-right:26px}
#view .cal50f .btn{flex:none;height:36px;min-height:0;font-size:12.5px;white-space:nowrap;padding:0 11px}
.seg50b{display:inline-flex;flex:none;background:#e9edee;border-radius:10px;padding:3px;gap:2px}
.seg50b button{border:0;background:none;border-radius:8px;height:30px;padding:0 9px;font:inherit;font-size:12.5px;font-weight:600;color:var(--mu);display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.seg50b button svg.i40{width:13px;height:13px}
.seg50b button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(28,42,45,.12)}
.nav50b{display:inline-flex;align-items:center;flex:none;border:1px solid var(--bd);border-radius:10px;background:#fff;height:36px;overflow:hidden}
.nav50b button{border:0;background:none;height:34px;font:inherit;cursor:pointer;color:var(--ink)}
.nav50b .ar{width:30px;display:flex;align-items:center;justify-content:center}
.nav50b .ar svg.i40{width:14px;height:14px}
.nav50b .ar.nx svg.i40{transform:rotate(180deg)}
.nav50b .ar:hover{background:#f1f4f5}
.nav50b .lb{min-width:100px;padding:0 6px;font-weight:700;font-size:12.5px;border-left:1px solid var(--bd);border-right:1px solid var(--bd)}
.nav50b .lb:hover{background:#f1f4f5}
.cal50{display:flex;flex-direction:column;background:#fff;border:1px solid #dfe4e5;border-radius:14px;box-shadow:0 1px 2px rgba(28,42,45,.04);overflow:hidden;min-height:0}
.corpo>.cal50.grow{min-height:260px}
.cg50h{display:grid;border-bottom:1px solid #e3e8e9;background:#f8fafb;flex:none}
.cg50h>div{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;font-size:12.5px;font-weight:600;color:var(--ink);border-left:1px solid #eceff0;cursor:pointer;white-space:nowrap;overflow:hidden;min-width:0}
.cg50h>div:hover{background:#eff3f4}
.cg50h>div.td b{background:#2b696e;color:#fff;border-radius:9px;padding:1px 8px}
.cg50h>div small{font-size:11px;color:var(--mu);font-weight:600}
.cg50h>div .ow{color:#b03a2e;display:inline-flex}
.cg50h>div .ow svg.i40{width:13px;height:13px}
.cg50h>div.tc{cursor:default;flex-direction:column;gap:0;line-height:1.2}
.cg50s{flex:1 1 0;overflow:auto;min-height:0;position:relative}
.cg50b{display:grid;position:relative}
.cg50t{position:relative}
.cg50t span{position:absolute;right:8px;transform:translateY(-50%);font-size:10.5px;color:#8a918b;font-weight:600;font-variant-numeric:tabular-nums}
.cg50t span:first-child{transform:none}
.cg50d{position:relative;border-left:1px solid #eceff0;background-image:repeating-linear-gradient(to bottom,#e6ebec 0,#e6ebec 1px,transparent 1px,transparent 24px,#f4f5f2 24px,#f4f5f2 25px,transparent 25px,transparent 48px)}
.cg50d.td{background-color:#f7fbfb}
.cg50d.ed{cursor:copy}
.cg50d.dov{background-color:#eaf3f3}
.now50b{position:absolute;left:0;right:0;height:2px;background:#d9534a;z-index:3;pointer-events:none}
.now50b::before{content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#d9534a}
.ev50b{position:absolute;z-index:2;box-sizing:border-box;background:color-mix(in srgb,var(--es) 70%,#fff);border:1px solid color-mix(in srgb,var(--ec) 22%,#fff);border-left:3px solid var(--ec);border-radius:7px;padding:2px 6px;font-size:11.5px;line-height:1.3;color:var(--ink);overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(28,42,45,.06)}
.ev50b:hover{box-shadow:0 4px 12px rgba(28,42,45,.14);z-index:4}
.ev50b .r1{display:flex;align-items:center;gap:5px;min-width:0;white-space:nowrap}
.ev50b .r1>b{font-variant-numeric:tabular-nums;font-size:11px;color:color-mix(in srgb,var(--ec) 80%,#000)}
.ev50b .nm{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ev50b .r1 .nm{flex:1}
.ev50b .tp,.ev50b .mo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5f696b;font-size:11px}
.ev50b .tp svg.i40,.ev50b .mo svg.i40{width:11px;height:11px;vertical-align:-1px}
.ev50b .ics{margin-left:auto;display:inline-flex;gap:2px;flex:none}
.ev50b.rm{border-style:dashed;border-left-style:solid;background:repeating-linear-gradient(135deg,#fff 0 6px,color-mix(in srgb,var(--es) 55%,#fff) 6px 12px)}
.ev50b.s1{padding-top:1px}
.ei50b{width:15px;height:15px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;font-style:normal;color:#fff}
.ei50b svg.i40{width:9px;height:9px;stroke-width:3}
.ei50b.ok{background:#298a8f}
.ei50b.rm{background:#d9534a}
.ei50b.ov{background:#fff;color:#b03a2e;box-shadow:inset 0 0 0 1.5px #d9534a}
.ei50b.ov svg.i40{width:10px;height:10px;stroke-width:2.6}
.ei50b.cf{background:#e0a33a}
.ei50b.av{background:#c0553a}
.ei50b.cm{background:#2f74c0}
/* mês */
.cm50h{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f8fafb;border-bottom:1px solid #e3e8e9;flex:none}
.cm50h span{height:30px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a918b;border-left:1px solid #eceff0}
.cm50g{flex:1 1 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:0}
.mc50{border-left:1px solid #eceff0;border-top:1px solid #eceff0;padding:3px 4px;display:flex;flex-direction:column;gap:2px;min-height:0;overflow:hidden}
.mc50.om{background:#f8fafb}
.mc50.om .dn{color:#b4bab3}
.mc50.td{background:#f4fafa}
.mc50 .dn{align-self:flex-start;border:0;background:none;font:inherit;font-size:12px;font-weight:700;color:var(--ink);border-radius:9px;padding:1px 7px;cursor:pointer}
.mc50 .dn:hover{background:#eef1f2}
.mc50.td .dn{background:#2b696e;color:#fff}
.mc50.dov{background:#eaf3f3}
.me50{display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.25;padding:1px 4px;border-radius:5px;cursor:pointer;white-space:nowrap;min-width:0;background:color-mix(in srgb,var(--es) 55%,#fff)}
.me50:hover{background:var(--es)}
.me50 .dt{width:6px;height:6px;border-radius:50%;background:var(--ec);flex:none}
.me50 b{font-variant-numeric:tabular-nums;font-weight:700;color:color-mix(in srgb,var(--ec) 80%,#000)}
.me50 span{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.me50 .ei50b{width:13px;height:13px}
.me50 .ei50b svg.i40{width:8px;height:8px}
.mm50{align-self:flex-start;border:0;background:none;font:inherit;font-size:11px;font-weight:700;color:#2b696e;cursor:pointer;padding:0 4px}
/* legenda */
.leg50b{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11.5px;color:var(--mu);flex:none}
.leg50b>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.leg50b .sw{width:10px;height:10px;border-radius:3px;background:var(--es);border-left:3px solid var(--ec)}
.leg50b .sep{width:1px;height:14px;background:var(--bd)}
.leg50b .dica{margin-left:auto;color:#8a918b}

/* ---------- 4 · Relatórios: secção própria na barra lateral ---------- */
.ill50b{display:block}
#side .nb.r50b{gap:7px}
#side .nb.r50b .lb{letter-spacing:-.1px}
.om40 .om41.r50b{--k:#4b5fc0}

/* ecrãs mais estreitos do que o portátil de referência: os filtros do calendário passam a duas linhas, sem deslizar para o lado */
@media (max-width:1460px){#view .filt.cal50f{flex-wrap:wrap}#view .cal50f .sp{display:none}.hj50m{grid-template-columns:minmax(0,1fr) 26px 400px}}

