:root{--hora:46px;--geral:#0F2F78;--pessoal:#6F675D;--parceiro:#7A3E8F;--tx:var(--foreground);--tx2:var(--mov-texto-2);--tx3:var(--mov-texto-3);
  --borda:var(--border);--linha:var(--mov-linha-suave);--alt:var(--secondary);--azul:var(--mov-link);--amarelo:var(--mov-acao);--sel:var(--mov-selecao)}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--background);color:var(--tx);font:14px/1.4 "Instrument Sans",system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
.marca{font-family:Archivo,sans-serif;font-stretch:80%;font-weight:800}
[hidden]{display:none !important}

.barra{background:var(--mov-barra);color:#fff;display:flex;align-items:center;gap:12px;padding:8px 16px;flex-shrink:0}
.nome{display:flex;flex-direction:column;line-height:1.05}
.nome b{font-size:21px}
.nome small{font-family:Archivo,sans-serif;font-stretch:75%;font-weight:700;font-size:9.5px;color:var(--mov-barra-linha);letter-spacing:.06em}
.dir{margin-left:auto;display:flex;align-items:center;gap:10px}
.btn-acao{background:var(--amarelo);color:var(--mov-acao-texto);border:0;border-radius:12px;padding:8px 14px;font-weight:700}
.btn-acao:hover{background:var(--mov-acao-hover)}
.btn-admin{color:#fff;font-size:13px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--amarelo);color:var(--tx);display:grid;place-items:center;font-weight:700;font-size:13px;border:0}
.btn-menu{display:none;background:none;border:0;color:#fff;font-size:20px}
.aviso-membro{background:var(--mov-atualizado-fundo);color:var(--mov-atualizado-texto);padding:10px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.aviso-membro button{border:0;background:var(--amarelo);border-radius:10px;padding:6px 12px;font-weight:700}

.ctrl{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--borda);flex-shrink:0;flex-wrap:wrap}
.btn{background:var(--card);border:1px solid var(--borda);border-radius:10px;padding:6px 12px}
.btn:hover{background:var(--alt)}
.btn-ico{width:32px;height:32px;padding:0;display:grid;place-items:center}
.periodo{font-family:Archivo,sans-serif;font-stretch:85%;font-weight:800;font-size:20px;margin-left:6px}
.seg{display:flex;background:var(--alt);border-radius:12px;padding:3px;margin-left:auto}
.seg button{border:0;background:transparent;padding:6px 14px;border-radius:9px;color:var(--tx2);font-weight:600}
.seg button[aria-pressed=true]{background:var(--card);color:var(--azul);box-shadow:var(--mov-sombra)}

main{flex:1;display:flex;min-height:0}
.lado{width:250px;flex-shrink:0;border-right:1px solid var(--borda);overflow:auto;padding:12px 14px 40px}
.mini{margin-bottom:14px}
.mini .cab{font-weight:700;margin-bottom:4px}
.mini table{width:100%;border-collapse:collapse;text-align:center;font-size:12px}
.mini th{color:var(--tx3);font-weight:600;padding:2px 0}
.mini td{padding:0}
.mini td button{width:26px;height:26px;border:0;background:none;border-radius:50%}
.mini td button.fora{color:#B5AC9F}
.mini td button.na-visao{background:var(--sel)}
.mini td button.hoje{background:var(--azul);color:#fff;font-weight:700}
.lado h3{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin:16px 0 6px}
.ag{display:flex;align-items:center;gap:8px;padding:4px;border-radius:8px;cursor:pointer;user-select:none}
.ag:hover{background:var(--alt)}
.ag input{appearance:none;width:16px;height:16px;border-radius:4px;border:2px solid var(--c);margin:0;flex-shrink:0;display:grid;place-items:center}
.ag input:checked{background:var(--c)}
.ag input:checked::after{content:"";width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translateY(-1px)}
.ag .sub{font-size:11px;color:var(--tx3);display:block;line-height:1.1}
.fam{display:flex;align-items:center;gap:8px;padding:3px 4px;font-size:13px}

.area{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}
.vista{flex:1;min-height:0;overflow:auto}
.carregando{padding:20px;color:var(--tx3)}

.topo-grade{position:sticky;top:0;z-index:5;background:var(--background)}
.grade-cab{display:grid;border-bottom:1px solid var(--borda)}
.grade-cab .d{padding:6px 8px;border-left:1px solid var(--linha)}
.grade-cab .d small{display:block;color:var(--tx3);text-transform:uppercase;font-size:11px;letter-spacing:.05em}
.grade-cab .d b{font-family:Archivo,sans-serif;font-stretch:85%;font-size:22px;font-weight:800}
.grade-cab .d.hoje b{background:var(--azul);color:#fff;border-radius:50%;width:36px;height:36px;display:inline-grid;place-items:center;font-size:18px}
.grade-cab .d.hoje small{color:var(--azul);font-weight:700}
.dia-todo{display:grid;border-bottom:1px solid var(--borda);min-height:8px}
.dia-todo .c{border-left:1px solid var(--linha);padding:2px;display:flex;flex-direction:column;gap:2px}
.dia-todo .rot{font-size:10px;text-align:right;padding:4px 6px 0 0;color:var(--tx3)}
.grade{display:grid;position:relative}
.horas .h{height:var(--hora);font-size:11px;color:var(--tx3);text-align:right;padding-right:6px;transform:translateY(-7px)}
.col{position:relative;border-left:1px solid var(--linha);background:repeating-linear-gradient(to bottom,var(--linha) 0 1px,transparent 1px var(--hora));cursor:cell}
.col.fim-semana{background-color:#FBF8F1}
.agora{position:absolute;left:-1px;right:0;height:2px;background:var(--mov-perigo);z-index:4;pointer-events:none}
.agora::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--mov-perigo)}

.ev{position:absolute;overflow:hidden;cursor:pointer;color:var(--tx);font-size:12px;line-height:1.25;padding:4px 6px 4px 8px;text-align:left;
  background-color:color-mix(in srgb,var(--c) 13%,#fff);border:0;border-radius:8px;border-left:4px solid var(--c);box-shadow:0 1px 0 rgba(0,0,0,.04)}
.ev:hover{filter:brightness(.97);z-index:3}
.ev:focus-visible{outline:2px solid var(--azul);outline-offset:1px;z-index:3}
.ev .ti{font-weight:700;display:block}
.ev .hr{color:var(--tx2);font-size:11px;display:block}
.ev.passado{opacity:.62}
.ev.recusado .ti{text-decoration:line-through}
.ev.estatico{position:relative;display:block;width:100%}
.ic{display:inline-block;width:13px;height:13px;background:currentColor;vertical-align:-2px;margin-right:4px;flex-shrink:0;
  -webkit-mask:var(--icone) center/contain no-repeat;mask:var(--icone) center/contain no-repeat}
.ev .ic{color:color-mix(in srgb,var(--c) 80%,#000)}

.mes{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto;grid-auto-rows:minmax(108px,1fr);min-height:100%}
.mes .cab-d{position:sticky;top:0;background:var(--background);padding:6px 8px;font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--borda);z-index:2}
.mes .cel{border-left:1px solid var(--linha);border-bottom:1px solid var(--linha);padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0;cursor:cell}
.mes .cel.fora{background:#FAF7F0;color:#A79E91}
.mes .cel .n{font-weight:700;font-size:12.5px;margin:2px 4px}
.mes .cel.hoje .n{background:var(--azul);color:#fff;border-radius:999px;padding:0 7px;align-self:flex-start}
.mes .ev{position:relative;height:22px;padding:2px 6px;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;border-radius:6px}
.mes .ev .hr{display:none}
.mes .ev .ti{display:inline;font-weight:600}
.mes .mais{font-size:11.5px;color:var(--azul);font-weight:600;padding-left:6px;border:0;background:none;text-align:left}

/* camadas: cartão, modal, aviso */
.pop{position:fixed;z-index:30;width:380px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;background:var(--card);border-radius:16px;box-shadow:var(--mov-sombra-pop)}
.veu{position:fixed;inset:0;background:rgba(28,23,18,.38);z-index:40;display:grid;place-items:center;padding:16px}
.modal{background:var(--background);border-radius:20px;box-shadow:var(--mov-sombra-pop);width:min(860px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--tx);color:#fff;padding:10px 16px;border-radius:12px;z-index:60;font-weight:600;box-shadow:var(--mov-sombra-pop);max-width:90vw}

@media (max-width:820px){
  .lado{position:fixed;inset:0 auto 0 0;z-index:25;background:var(--background);transform:translateX(-100%);transition:transform .2s;box-shadow:var(--mov-sombra-pop);padding-top:16px}
  .lado.aberta{transform:none}
  .btn-menu{display:block}
  .nome small,.btn-admin{display:none}
  .seg{margin-left:0;width:100%}
  .seg button{flex:1;padding:6px 4px}
  .periodo{font-size:17px}
  .mes{grid-template-rows:auto;grid-auto-rows:minmax(70px,1fr)}
  .mes .ev .ti{font-size:0}
  .mes .ev{height:8px;padding:0;border-left-width:0;background:var(--c)}
  .mes .ev .ic{display:none}
}

/* modal e formulário */
.veu.topo{z-index:50}
.modal.pequeno{width:min(420px,100%)}
.modal.medio{width:min(620px,100%)}
.m-cab{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--borda)}
.m-cab h2,.modal h2{margin:0;font-family:Archivo,sans-serif;font-stretch:85%;font-weight:800;font-size:22px}
.m-cab .quando{color:var(--tx2);font-size:13px}
.m-cab .x{margin-left:auto;border:0;background:none;font-size:22px;color:var(--tx3)}
.voltar{border:0;background:none;color:var(--azul);font-weight:600}
.rolo{overflow:auto;padding:14px 18px}
.pe{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--borda);background:#FCFAF5;align-items:center;flex-wrap:wrap}
.pe .esp{flex:1;font-size:12px;color:var(--tx3);min-width:160px}
.busca-tipo{width:100%;padding:10px 14px;border:1px solid var(--input);border-radius:12px;background:#fff;margin-bottom:6px}
.familia h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.tile{display:flex;align-items:center;gap:6px;border:1px solid var(--borda);background:#fff;border-radius:10px;padding:10px;text-align:left;font-weight:600}
.tile:hover{background:var(--sel);border-color:var(--azul)}
.tile .ic{width:16px;height:16px;color:var(--azul)}
.form{display:grid;grid-template-columns:130px 1fr;gap:12px 14px;align-items:center}
.form label.r{color:var(--tx2);font-size:13px;font-weight:600}
.form .campo,.form select,.form textarea{width:100%;padding:8px 10px;border:1px solid var(--input);border-radius:10px;background:#fff}
.form textarea{min-height:80px;resize:vertical}
.linha{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linha .campo{width:auto}
.pilulas{display:flex;gap:6px;flex-wrap:wrap}
.pilulas button{border:1px solid var(--borda);background:#fff;border-radius:999px;padding:6px 12px;font-weight:600}
.pilulas button[aria-pressed=true]{background:var(--sel);border-color:var(--azul);color:var(--azul)}
.cond{grid-column:1/-1;display:grid;grid-template-columns:130px 1fr;gap:12px 14px;align-items:center;background:var(--alt);border-radius:14px;padding:12px}
.cond:empty{display:none}
.tipo-esc{display:flex;align-items:center;gap:8px}
.tipo-esc .ic{width:18px;height:18px;color:var(--azul)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--input);border-radius:10px;background:#fff;padding:5px}
.chips span{background:var(--sel);color:var(--azul);border-radius:999px;padding:3px 9px;font-size:12.5px;font-weight:600}
.chips span.ext{background:#fff;border:1px dashed var(--tx3);color:var(--tx)}
.chips span button{border:0;background:none;padding:0 0 0 4px;color:inherit}
.chips input{border:0;outline:0;flex:1;min-width:180px;padding:4px}
.dica{font-size:12px;color:var(--tx3)}
.btn-acao:disabled{opacity:.6}

/* cartão */
.pop .topo{padding:14px 16px 10px;border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 10%,#fff);position:relative}
.pop .topo .tp{font-family:Archivo,sans-serif;font-stretch:75%;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 75%,#000)}
.pop .topo h2{margin:2px 28px 0 0;font-size:18px}
.pop .fechar{position:absolute;top:6px;right:8px;border:0;background:none;font-size:22px;color:var(--tx3)}
.pop .corpo{padding:12px 16px;display:grid;gap:10px;font-size:13.5px}
.pop .lin{display:flex;gap:10px;align-items:flex-start}
.pop .lin .i{width:18px;text-align:center;flex-shrink:0;color:var(--tx3)}
.pop .quadrado{display:inline-block;width:12px;height:12px;border-radius:3px;margin-top:3px}
.pop .pauta{white-space:pre-line}
.pop .quebra{word-break:break-all}
.btn-sala{background:var(--azul);color:#fff;border-radius:10px;padding:6px 12px;font-weight:700;text-decoration:none;display:inline-block}
.pessoas{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.pessoas span{font-size:12px;background:var(--alt);border-radius:999px;padding:2px 8px}
.pessoas span.sim{background:var(--mov-ok-fundo);color:var(--mov-ok)}
.pessoas span.nao{background:#FBE5E3;color:var(--mov-perigo);text-decoration:line-through}
.pessoas span.talvez{background:var(--mov-atualizado-fundo);color:var(--mov-atualizado-texto)}
.adicionar summary{cursor:pointer;color:var(--azul);font-weight:600}
.adicionar ul{margin:6px 0;padding-left:18px}
.adicionar a{color:var(--azul)}
.pop .resp{display:flex;gap:6px;padding:10px 16px;border-top:1px solid var(--borda);background:#FCFAF5;align-items:center}
.pop .resp .dica{margin-right:auto}
.pop .resp button{border:1px solid var(--borda);background:#fff;border-radius:999px;padding:5px 12px;font-weight:600}
.pop .resp button.on{background:var(--azul);color:#fff;border-color:var(--azul)}
.pop .acoes{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--borda)}
.btn.perigo{color:var(--mov-perigo)}

/* prévia do e-mail */
.email{background:#fff;border-radius:14px;border:1px solid var(--borda);overflow:hidden}
.email .meta{padding:12px 16px;border-bottom:1px solid var(--borda);font-size:13px;color:var(--tx2)}
.email .conv{display:flex;gap:12px;padding:16px}
.email .conv .ic{width:22px;height:22px;color:var(--azul)}
.email .bts{display:flex;gap:8px;margin-top:10px}
.email .bts span{border:1px solid var(--borda);border-radius:999px;padding:5px 14px;font-weight:600}
.email .anexo{margin:0 16px 12px;display:inline-block;border:1px solid var(--borda);border-radius:10px;padding:6px 10px;font-size:12.5px}
.email .rod{padding:0 16px 14px}

/* admin */
.admin{max-width:1000px;margin:0 auto;padding:16px;overflow:auto;flex:1}
.admin h1{font-family:Archivo,sans-serif;font-stretch:85%;font-weight:800}
.admin table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
.admin td,.admin th{padding:8px;border-bottom:1px solid var(--linha);text-align:left;vertical-align:top;font-size:13px}
.admin .grupos{display:flex;flex-wrap:wrap;gap:4px 10px}
.admin .grupos label{white-space:nowrap}
.admin .pedido{background:var(--mov-atualizado-fundo)}
.admin form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0 24px}
.admin form input,.admin form select{padding:8px 10px;border:1px solid var(--input);border-radius:10px;background:#fff}

@media (max-width:820px){
  .form,.cond{grid-template-columns:1fr}
  .pop{left:12px !important;right:12px;width:auto;top:auto !important;bottom:12px;max-height:80vh}
}
