.brand{
  --ink:#16211F;
  --ink-2:#22302D;
  --text:#1F2A28;
  --muted:#5F6E6A;
  --paper:#F3F5F4;
  --paper-2:#F8FAF9;
  --card:#FFFFFF;
  --line:#D9E0DD;
  --line-2:#E6EBE9;
  --brass:#0F5C54;
  --brass-dk:#0B463F;
  --brass-rgb:15,92,84;
  --accent-2-rgb:63,169,138;
  --oxblood:#B3261E;
  --mint:#BFE6D8;
  --mint-strong:#3FA98A;
  --shadow:0 16px 40px rgba(22,33,31,.10);
  --shadow-sm:0 1px 2px rgba(22,33,31,.05);
  --r:8px;
  --r-lg:14px;
  background:var(--paper);
  background-image:none;
}
.brand h1,.brand h2,.brand h3,.brand h4{font-family:'Inter','Segoe UI',system-ui,sans-serif;text-transform:none;letter-spacing:-.015em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand ::selection{background:var(--mint);color:var(--ink)}
/* alrevapro Imo: as páginas comuns da conta («A minha conta», Ajuda e sugestões) com as cores da Imo (azul-noite e caramelo)
   sobre os neutros quentes dela, para quem vem do backoffice da Imo não sentir que saiu dele. */
.brand.is-imo{--ink:#22282F;--ink-2:#2B323A;--text:#22282F;--muted:#6E655C;--paper:#F5F3EC;--paper-2:#FAF8F2;--card:#FFFEFB;--line:#E3DFD3;--line-2:#ECE8DE;
  --brass:#26303B;--brass-dk:#1B232C;--brass-rgb:38,48,59;--accent-2-rgb:154,105,78;--mint:#F2E6DC;--mint-strong:#9A694E;--line-input:#D8CBBB}

.brand-lockup{display:inline-flex;align-items:center;gap:9px;color:var(--ink)}
.brand-mark{width:30px;height:30px;flex:0 0 auto}
.brand-mark path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.brand-mark .bm-a{stroke:var(--brass);stroke-width:6.5}
.brand-mark .bm-v{stroke:var(--mint-strong);stroke-width:5}
.brand-word{font-weight:700;font-size:20px;letter-spacing:-.025em;line-height:1}
.brand-word span{font-weight:500;color:var(--brass);letter-spacing:-.01em}

.brand .topnav{background:var(--card);border-bottom:1px solid var(--line);box-shadow:none;padding:14px 28px}
.brand .topnav:after,.brand .card-panel:before,.brand .modal-box:before,.brand .login-card:before{display:none}
.brand .topnav .left{gap:0}
.brand .area{color:var(--muted);font-size:14px;font-weight:500;margin-left:16px;padding-left:16px;border-left:1px solid var(--line);line-height:22px}
.brand .user-pill{color:var(--text);font-weight:500;border-left-color:var(--line)}
.brand .user-pill button{color:var(--muted);font-weight:500}
.brand .user-pill button:hover{color:var(--ink)}

.brand .view{max-width:1240px;padding:40px 28px 64px;animation:none}

.brand .settings-tabs{background:none;border:none;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:0;gap:28px;width:100%;margin-bottom:32px}
.brand .settings-tabs .tab-item{padding:0 0 12px;border-radius:0;font-size:15px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.brand .settings-tabs .tab-item:hover{color:var(--ink)}
.brand .settings-tabs .tab-item.active{background:none;color:var(--ink);border-bottom-color:var(--brass)}

.brand .card-panel{border-radius:var(--r-lg);padding:28px 28px 10px;box-shadow:var(--shadow-sm)}
.brand .section-head{margin-bottom:18px}
.brand .section-head h2{font-size:22px;font-weight:650}
.brand .section-sub{margin:-10px 0 22px;max-width:72ch;line-height:1.5}

.brand table.data th{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 10px;white-space:nowrap}
.brand table.data td{padding:14px 10px}
.brand table.data td.strong{font-weight:600}
.brand table.data td a{color:var(--brass)}
.brand table.data td a:hover{text-decoration:underline}
.brand table.data small{color:var(--muted);font-size:12.5px}

.brand .plan{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--mint);color:var(--brass-dk);font-size:12.5px;font-weight:600;white-space:nowrap}
.brand .plan.custom{background:var(--paper);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.brand .tab-count{display:inline-block;min-width:20px;margin-left:7px;padding:1px 6px;border-radius:999px;background:var(--brass);color:#fff;font-size:12px;font-weight:600;text-align:center}
.brand .sub-line{display:block;color:var(--muted);font-size:12.5px;font-weight:400;margin-top:2px}
.brand .empty-line{color:var(--muted);margin:4px 0 22px}
.brand .state-off{display:block;color:var(--oxblood);font-size:12.5px;font-weight:500}

.brand .user-list{list-style:none;margin:0 0 8px;padding:0;border-top:1px solid var(--line)}
.brand .user-item{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:14px 2px;border-bottom:1px solid var(--line)}
.brand .user-item.inactive .user-main{opacity:.6}
.brand .user-main{flex:1 1 260px;min-width:0}
.brand .user-email{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.brand .user-meta{color:var(--text);font-size:14px;margin-top:2px}
.brand .user-access{color:var(--muted);font-size:13px;margin-top:2px}
.brand .user-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.brand .user-state{color:var(--muted);font-size:13px;margin-top:4px}
.brand .user-state .state-on.inline,.brand .user-state .state-off.inline{display:inline;margin:0}
.brand .state-wait{color:#9A6A1F;font-weight:600}
.brand .user-item.is-support{background:var(--bg,#F3F5F4);border-radius:var(--r);padding:12px 14px;border-bottom:0;margin-top:8px}
.brand .support-account{margin:14px 0 6px;padding:14px;border:1px dashed var(--line);border-radius:var(--r)}
.brand .support-account .btn{margin-top:8px}
@media (max-width:760px){
  .brand .user-actions{width:100%;justify-content:stretch}
  .brand .user-actions .btn{flex:1 1 auto;min-height:44px;justify-content:center}
}

.brand .btn{border-radius:var(--r);font-weight:600}
.brand .btn-primary{background:var(--brass);color:#fff;box-shadow:none}
.brand .btn-primary:hover{background:var(--brass-dk);color:#fff}
.brand .btn-outline{border:1px solid var(--line)}
.brand .btn-outline:hover{border-color:var(--ink);color:var(--ink)}
.brand .btn-danger{border:1px solid #EBC9C6}
.brand .btn-dark{background:var(--brass);color:#fff}
.brand .btn-dark:hover{background:var(--brass-dk)}

.brand .field-label{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600;color:var(--text)}
.brand .report-group-title{font-family:'Inter','Segoe UI',system-ui,sans-serif;text-transform:none;letter-spacing:-.01em;font-size:15px;font-weight:650;margin:28px 0 12px}
.brand input[type=text],.brand input[type=search],.brand input[type=email],.brand input[type=url],.brand input[type=number],.brand input[type=password],.brand select,.brand textarea{border-width:1px;border-radius:var(--r)}
.brand input::placeholder{color:#9AA7A3}

.brand .modal-box{border-radius:var(--r-lg);box-shadow:var(--shadow)}
.brand .modal-box h2{font-size:22px;font-weight:650}
.brand .modal-box h3{font-size:16px;font-weight:650}

.brand .login-card{border-radius:var(--r-lg);box-shadow:var(--shadow);padding:40px 36px 36px}
.brand .login-card .brand-lockup{display:flex;justify-content:center;margin-bottom:6px}
.brand .login-card .brand-mark{width:38px;height:38px}
.brand .login-card .brand-word{font-size:26px}
.brand .login-card .sub{margin-bottom:28px;font-size:14px}

/* Registo, login e passo inicial em duas metades (docs/adr/0012). A metade da direita só existe em ecrãs largos,
   e a imagem só é pedida aí: num telemóvel a página é só o formulário. */
.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);background:var(--card,#fff)}
.auth-main{display:flex;align-items:center;justify-content:center;padding:32px 20px}
.auth-box{width:100%;max-width:400px}
.auth-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.auth-logo{display:inline-flex;margin-bottom:28px;text-decoration:none}
.auth-logo .brand-mark{width:32px;height:32px}
.auth-logo .brand-word{font-size:22px}
.auth-out{background:none;border:0;padding:8px 0;margin-bottom:28px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}
.auth-out:hover{color:var(--ink)}
.auth-box h1{font-size:26px;font-weight:650;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px;color:var(--ink);text-transform:none;text-align:left}
.auth-sub{margin:0 0 24px;color:var(--muted);font-size:15px;line-height:1.5}
.auth-fine{margin:16px 0 0;font-size:13px;color:var(--muted);line-height:1.5}
/* Registo em dois passos e «Adicionar produto» (docs/adr/0023). */
.auth-progress{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 14px;font-size:13px;font-weight:600;color:var(--ink)}
.auth-progress small{font-size:13px;font-weight:400;color:var(--muted)}
.auth-progress a{margin-left:auto;font-weight:600}
.auth-progress-bar{display:flex;gap:4px}
.auth-progress-bar i{width:28px;height:4px;border-radius:2px;background:var(--line)}
.auth-progress-bar i.on{background:var(--brass)}
.auth-note{margin:0 0 20px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.auth-note p{margin:0 0 12px;line-height:1.5}
.product-pick{display:flex;flex-direction:column;gap:12px}
.product-card{display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);font:inherit;text-align:left;color:var(--ink);cursor:pointer;touch-action:manipulation}
.product-card:hover,.product-card:focus-visible{border-color:var(--brass);box-shadow:var(--shadow-sm)}
.product-card img{flex:0 0 auto;border-radius:10px}
.product-card span{display:flex;flex-direction:column;gap:3px;min-width:0}
.product-card b{font-size:16px;font-weight:650}
.product-card small{font-size:13px;color:var(--muted);line-height:1.4}
.invite-card{flex-wrap:wrap;cursor:default}
.invite-card:hover{border-color:var(--line);box-shadow:none}
.invite-actions{display:flex;gap:8px;width:100%;justify-content:flex-end}
.invite-actions form{margin:0}
.invite-actions .btn{min-height:44px}
.auth-alt{margin:16px 0 0;font-size:14px;color:var(--muted)}
.auth-fine a,.auth-alt a,.auth-check a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.auth-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text);line-height:1.45;margin:4px 0 20px}
.auth-check input{margin-top:3px;flex:0 0 auto}
.auth-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.auth-done p{color:var(--text);line-height:1.55;margin:0 0 12px}
.auth-done strong{overflow-wrap:anywhere}
.first-steps{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;margin:0 0 18px}
.first-steps-head{display:flex;align-items:baseline;gap:12px}
.first-steps-head h2{font-size:17px;font-weight:650;margin:0;color:var(--ink);text-transform:none;letter-spacing:0}
.first-steps-count{font-size:13px;color:var(--muted)}
.first-steps-close{margin-left:auto;background:none;border:0;padding:6px 0;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.first-steps-sub{margin:6px 0 12px;font-size:14px;color:var(--muted)}
.first-steps-head{flex-wrap:wrap}
.fs-bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin:12px 0 4px}
.fs-bar span{display:block;height:100%;width:0;background:var(--brass);border-radius:6px;transition:width .3s ease}
.fs-list{list-style:none;margin:0;padding:0;display:grid}
.fs-step{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.fs-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--line-input);align-self:start;margin-top:2px}
.fs-step.is-done .fs-check{border-color:var(--brass);background:var(--brass) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/14px no-repeat}
.fs-body strong{font-size:15px;color:var(--ink)}
.fs-body p{margin:2px 0 0;font-size:13.5px;color:var(--muted);line-height:1.45}
.fs-body small{display:block;margin-top:2px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.fs-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.fs-actions .btn{min-height:40px;white-space:nowrap}
.fs-step.is-next .fs-actions .btn:first-child{background:var(--brass);border-color:var(--brass);color:#fff}
.fs-done-label{display:none;font-size:13px;font-weight:600;color:var(--brass)}
.fs-step.is-done .fs-ok{display:none}
.fs-step.is-done .fs-done-label{display:inline}
.fs-step.is-done .fs-body strong{color:var(--muted)}
.fs-ready h3{margin:14px 0 6px;font-size:17px;text-transform:none;letter-spacing:0}
.fs-ready p{margin:0 0 12px;font-size:14.5px;color:var(--text);overflow-wrap:anywhere}
.fs-ready-actions{display:flex;gap:10px;flex-wrap:wrap}
.fs-tour{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.quick-tour .fs-tour{margin:0;padding:0;border:0}
.setup-back{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border:1px solid var(--brass);border-radius:var(--r);background:#F1F8F6;font-size:14px}
/* Assistente por conversa: botão flutuante no canto inferior direito e painel de conversa */
.asst-fab{position:fixed;right:24px;bottom:24px;z-index:150;display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;padding:0;border:0;border-radius:50%;background:var(--brass);color:#fff;font:inherit;font-weight:600;font-size:15px;cursor:pointer;box-shadow:0 10px 28px rgba(15,35,32,.28);transition:transform .15s ease,box-shadow .15s ease;touch-action:manipulation}
.asst-fab svg{width:38px;height:38px;display:block}
.asst-fab .bubble{fill:#fff}
.asst-fab .mark-a{fill:none;stroke:var(--brass);stroke-width:4.2;stroke-linecap:round;stroke-linejoin:round}
.asst-fab .mark-v{fill:none;stroke:#3FA88F;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.asst-avatar{flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.9);display:block}
.asst-avatar.sm{flex-basis:26px;width:26px;height:26px;border:0;align-self:flex-end}
.asst-avatar.lg{width:56px;height:56px;border:0;margin:0 auto 12px}
.asst-row{display:flex;gap:8px;align-items:flex-end;max-width:92%}
.asst-row .asst-msg{max-width:none}
.asst-icon svg,.asst-send svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.asst-fab:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,35,32,.34)}
.asst-fab:focus-visible,.asst-icon:focus-visible,.asst-send:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px var(--brass)}
.asst-open .asst-fab{display:none}
.asst{position:fixed;right:24px;bottom:24px;z-index:150;width:400px;max-width:calc(100vw - 32px);height:min(640px,calc(100dvh - 48px));display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(15,35,32,.28);overflow:hidden;animation:asstIn .2s ease}
.asst.hidden{display:none}
@keyframes asstIn{from{opacity:0;transform:translateY(12px) scale(.98)}}
.asst-head{display:flex;align-items:center;gap:6px;padding:14px 12px 14px 18px;background:var(--brass);color:#fff}
.asst-head>div{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.asst-head strong{font-size:16px;font-weight:650}
.asst-head small{font-size:12.5px;opacity:.82}
.asst-icon{width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation}
.asst-icon:hover{background:rgba(255,255,255,.16)}
.asst-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg,#F3F5F4)}
.asst-msg{max-width:86%;padding:10px 14px;border-radius:16px;font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}
.asst-msg ul{margin:4px 0;padding-left:18px}
.asst-msg li{margin:2px 0}
.asst-msg li::marker{color:var(--brass)}
.asst-msg.bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px;color:var(--ink)}
.asst-msg.mine{align-self:flex-end;background:var(--brass);color:#fff;border-bottom-right-radius:6px}
.asst-msg.error{background:#FBE4DF;border-color:#F0C4BC;color:#7A231B}
.asst-typing{display:inline-flex;gap:5px;align-items:center;padding:14px}
.asst-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:asstDot 1.1s infinite ease-in-out}
.asst-typing i:nth-child(2){animation-delay:.15s}
.asst-typing i:nth-child(3){animation-delay:.3s}
@keyframes asstDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.asst-empty{margin:auto 0;text-align:center;color:var(--muted);font-size:14.5px;line-height:1.5}
.asst-empty p{margin:0 0 6px}
.asst-empty strong{color:var(--ink);font-size:17px}
.asst-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.asst-chips button{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;touch-action:manipulation}
.asst-chips button:hover{border-color:var(--brass);color:var(--brass)}
.asst-card{align-self:stretch;background:var(--card);border:1.5px solid var(--brass);border-radius:16px;padding:14px 16px;display:grid;gap:10px}
.asst-card-title{font-size:15px;color:var(--ink)}
.asst-card ul{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:14px;line-height:1.45;color:var(--text)}
.asst-warn{margin:0;padding:9px 12px;border-radius:10px;background:#FCF3DC;border:1px solid #E2C27A;font-size:13.5px;line-height:1.45;color:var(--ink)}
.asst-card ul.asst-card-who{padding:9px 11px;border-radius:10px;background:#F3F5F4;font-size:13.5px;color:var(--muted)}
.asst-card-actions{display:flex;gap:8px;flex-wrap:wrap}
.asst-card-actions .btn{flex:1;min-height:44px;justify-content:center;text-align:center}
.asst-card-state{margin:0;font-size:13.5px;font-weight:600;color:var(--muted)}
.asst-card.is-done{border-color:#BFE6D8;background:#F1F8F6}
.asst-card.is-done .asst-card-state{color:#0B463F}
.asst-card.is-dismissed,.asst-card.is-failed{border-color:var(--line)}
.asst-card.is-failed .asst-card-state{color:#9B2C22}
.asst-form{display:flex;align-items:flex-end;gap:8px;padding:12px 12px 6px;border-top:1px solid var(--line);background:var(--card)}
.asst-form textarea{flex:1;min-width:0;min-height:44px;max-height:120px;resize:none;scrollbar-width:none;border-radius:14px;padding:11px 14px;font-size:16px;line-height:1.35}
.asst-send{flex:0 0 44px;height:44px;border:0;border-radius:50%;background:var(--brass);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation}
.asst-send:disabled{opacity:.45;cursor:default}
.asst-mic{flex:0 0 44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation}
.asst-mic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.asst-mic.is-on{background:#B3261E;border-color:#B3261E;color:#fff;animation:asst-mic 1.2s ease-in-out infinite}
.asst-mic:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
@keyframes asst-mic{50%{box-shadow:0 0 0 7px rgba(179,38,30,.18)}}
.asst-foot{margin:0;padding:0 14px 10px;background:var(--card);font-size:11.5px;color:var(--muted);text-align:center}
@media(max-width:760px){
  /* No telemóvel o botão fica por cima da barra de navegação e só na agenda e nos clientes, onde não há barra de guardar. */
  .asst-fab{right:14px;bottom:calc(76px + env(safe-area-inset-bottom));height:56px;width:56px}
  body:not([data-help="agenda"]):not([data-help="clients"]) .asst-fab{display:none}
  .asst{inset:0;width:auto;max-width:none;height:100dvh;border:0;border-radius:0}
  .asst-head{padding-top:calc(14px + env(safe-area-inset-top))}
  .asst-foot{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .asst-open{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.asst,.asst-typing i,.asst-mic.is-on{animation:none}.asst-fab{transition:none}}
.link-nopass{margin:0 0 16px;padding:14px 16px;border:1px solid #E2C27A;border-radius:var(--r);background:#FCF3DC;display:grid;gap:10px;justify-items:start}
.link-nopass p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink)}
.link-nopass .btn{min-height:44px}
.fb-toggle{display:none;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:12px;border:1px solid var(--line);border-radius:var(--r);background:none;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}
@media(max-width:760px){
  .brand .settings-tabs .tab-item{display:inline-flex;align-items:center;min-height:44px;padding:0 0 4px}
  button.chip{min-height:40px}
  .first-steps-close,.auth-out{min-height:44px;padding-left:6px;padding-right:6px}
  .fb-toggle{display:flex}
  .filter-bar.is-collapsed .fb-row{display:none}
}
@media(max-width:640px){
  .fs-step{grid-template-columns:24px minmax(0,1fr)}
  .fs-actions{grid-column:2;justify-content:flex-start}
  .fs-actions .btn{min-height:44px;flex:1}
  .fs-ready-actions .btn,.setup-back .btn{flex:1;justify-content:center;text-align:center;min-height:44px}
}
.auth-again{margin:16px 0 0;font-size:14px;color:var(--muted)}
.auth-again button{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth-ask{border:0;padding:0;margin:8px 0 0}
.auth-ask legend{padding:0;margin-bottom:10px;font-size:14px;font-weight:600;color:var(--ink)}
.slug-field{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.slug-field:focus-within{border-color:#0F5C54;box-shadow:0 0 0 3px rgba(15,92,84,.16)}
.slug-field span{padding:0 0 0 12px;color:var(--muted);font-size:15px;white-space:nowrap}
.brand .slug-field input{border:0;box-shadow:none;padding-left:2px;min-width:0;flex:1}
.brand .slug-field input:focus{box-shadow:none;outline:none}
#slugHint.is-bad{color:#9B2C22}
#slugHint.is-ok{color:#0F5C54}
/* «Alguém lhe recomendou a alrevapro?» no passo inicial: uma linha de texto que abre o campo do código. */
.ref-ask{margin:2px 0 14px}
.ref-toggle{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font:inherit;font-size:14.5px;font-weight:600;color:var(--brass);cursor:pointer;text-decoration:underline;text-decoration-color:rgba(15,92,84,.35);text-underline-offset:3px}
.ref-toggle:hover{text-decoration-color:currentColor}
.ref-toggle[aria-expanded=true]{display:none}
.ref-box{margin-top:4px}
.field-optional{font-weight:400;color:var(--muted);font-size:13px;margin-left:4px}
#refHint.is-bad{color:#9B2C22}
#refHint.is-ok{color:#0F5C54;font-weight:600}
.ref-done{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:10px 12px;border-radius:10px;background:#EEF7F4;font-size:14.5px;color:var(--text)}
.ref-done svg{width:18px;height:18px;flex:none;fill:none;stroke:#0F5C54;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 22px}
.type-opt{position:relative;display:block}
.type-opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.type-opt span{display:flex;align-items:center;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);font-size:15px;color:var(--ink);background:#fff}
.type-opt input:checked+span{border-color:#0F5C54;box-shadow:0 0 0 1px #0F5C54;font-weight:600}
.type-opt input:focus-visible+span{outline:2px solid #0F5C54;outline-offset:2px}
.auth-aside{display:none}
@media (min-width:960px){
  .auth{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .auth-aside{display:flex;align-items:center;justify-content:center;padding:48px;color:#fff;background:#0F5C54 url(../img/auth-agenda.webp) center/cover no-repeat;position:relative;isolation:isolate}
  .auth-aside:before{content:'';position:absolute;inset:0;background:rgba(10,70,63,.86);z-index:-1}
  .auth-aside-in{max-width:460px}
  .auth-quote{margin:0 0 40px}
  .auth-quote blockquote{margin:0;font-size:22px;line-height:1.4;font-weight:500;letter-spacing:-.01em}
  .auth-quote figcaption{margin-top:18px;font-size:14px;color:#BFE6D8;display:flex;align-items:center;gap:12px}
  .auth-quote-logo{flex:0 0 48px;width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.55);background:#000}
  .auth-quote-who{display:flex;flex-direction:column;gap:2px}
  .auth-quote-who strong{color:#fff;font-weight:600;font-size:15px}
  .auth-quote figcaption a{color:inherit;text-decoration:underline;text-underline-offset:3px}
  .auth-quote-tag{display:inline-block;margin-bottom:12px;padding:3px 10px;border-radius:999px;border:1px solid rgba(191,230,216,.5);font-size:12px;font-weight:600;color:#BFE6D8}
  .auth-aside h2{font-size:17px;font-weight:650;margin:0 0 16px;color:#fff;text-transform:none;letter-spacing:0}
  .auth-points{list-style:none;margin:0;padding:0;display:grid;gap:12px}
  .auth-points li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.45}
  .auth-points strong{display:block;font-weight:600}
  .auth-points small{display:block;margin-top:3px;font-size:13.5px;line-height:1.45;opacity:.82}
  .auth-points svg{width:18px;height:18px;flex:0 0 auto;margin-top:2px;fill:none;stroke:#BFE6D8;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
  /* O lado vende: frase, o produto a sério (captura ou a pauta), três pontos e o que tranquiliza. Fundo liso, sem a imagem. */
  .auth-aside.is-account,.auth-aside.is-book,.auth-aside.is-class{background-image:none}
  .auth-aside.is-account:before,.auth-aside.is-book:before{background:#0F5C54}
  .auth-aside.is-class:before{background:#3A1A15}
  .auth-aside.is-imo{background-image:none}
  .auth-aside.is-imo:before{background:#26303B}
  .auth-aside.is-imo .auth-points svg{stroke:#DDB08F}
  .auth-aside.is-imo .auth-trust{color:#DDE1E6}
  .auth-aside.is-class .auth-points svg{stroke:#F28B7B}
  .auth-aside.is-class .auth-trust{color:#F5C9C0}
  .auth-aside h2.auth-pitch{font-size:30px;line-height:1.15;font-weight:650;letter-spacing:-.02em;margin:0 0 12px}
  .auth-lead{margin:0 0 28px;font-size:16px;line-height:1.5;opacity:.88}
  .auth-shot{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 24px 48px -20px rgba(0,0,0,.55);margin:0 0 28px;background:#fff}
  .auth-mock{background:#fff;color:#2A2522;border-radius:10px;padding:14px 16px;margin:0 0 28px;box-shadow:0 24px 48px -20px rgba(0,0,0,.55);font-size:13px}
  .auth-mock-head{display:flex;justify-content:space-between;margin-bottom:8px}
  .auth-mock-head span{color:#7A6F68}
  .auth-mock table{width:100%;border-collapse:collapse;text-align:left}
  .auth-mock th{font-weight:600;color:#7A6F68;font-size:12px;padding:6px 4px;border-bottom:1px solid #EDE6E1}
  .auth-mock td{padding:7px 4px;border-bottom:1px solid #F4EFEC}
  .auth-mock td.neg{color:#C13B2B;font-weight:600}
  .auth-products{list-style:none;margin:0;padding:0;display:grid;gap:14px}
  .auth-products li{display:flex;gap:12px;align-items:center;font-size:14.5px;line-height:1.45}
  .auth-products img{flex:0 0 36px;border-radius:9px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
  .auth-products strong{font-weight:600}
  .auth-trust{margin:24px 0 0;font-size:13.5px;font-weight:600;color:#BFE6D8}
  /* Novidades no login (docs/adr/0024): cartões no tom do fundo, a etiqueta do produto e a data; os produtos por baixo, separados. */
  .auth-news{margin:0 0 28px}
  .auth-news-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
  .auth-news-head h3{margin:0;font-size:15px;font-weight:600;color:#fff;letter-spacing:0;text-transform:none}
  .auth-news-head small{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#BFE6D8}
  .auth-news-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
  .auth-news-list li{background:#176A61;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 16px}
  .auth-news-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
  .auth-news-meta time{font-size:12px;color:rgba(255,255,255,.62);font-variant-numeric:tabular-nums}
  .auth-news .nv-tag{color:#BFE6D8;background:rgba(191,230,216,.14)}
  .auth-news .nv-tag.class{color:#F5C9C0;background:rgba(245,201,192,.14)}
  .auth-news .nv-tag.new{color:#F3D9A4;background:rgba(243,217,164,.14)}
  .auth-news .nv-tag.gen{color:#D5E6FF;background:rgba(213,230,255,.14)}
  .auth-news-list b{display:block;font-size:15px;font-weight:600;color:#fff;line-height:1.35}
  .auth-news-list p{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.8);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .auth-news-list a{display:inline-block;margin-top:8px;font-size:13px;font-weight:600;color:#BFE6D8;text-decoration:underline;text-underline-offset:3px}
  .auth-news + .auth-products{padding-top:24px;border-top:1px solid rgba(255,255,255,.14)}
}

.brand .mfa-card{width:460px}
.brand .mfa-title{font-size:22px;font-weight:650;text-align:center;margin:18px 0 4px}
.brand .mfa-steps{margin:0 0 18px;padding-left:20px;color:var(--text);font-size:14px;line-height:1.5}
.brand .mfa-steps li+li{margin-top:6px}
.brand .mfa-qr{display:block;margin:0 auto 12px;border:1px solid var(--line);border-radius:var(--r);image-rendering:pixelated}
.brand .mfa-key{text-align:center;font-size:13px;color:var(--muted);margin:0 0 20px}
.brand .mfa-key code{display:inline-block;margin-top:4px;padding:3px 8px;background:var(--paper);border-radius:6px;color:var(--ink);font-size:13px;letter-spacing:.04em}
.brand .recovery-codes{list-style:none;padding:0;margin:0 0 22px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.brand .recovery-codes li{padding:9px 10px;background:var(--paper);border-radius:var(--r);text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--ink);font-weight:600}
@media (max-width:760px){
  .brand .topnav{padding:12px 16px}
  .brand .area{display:none}
  .brand .view{padding:24px 16px 48px}
  .brand .card-panel{padding:20px 16px 6px}
}

/* Backoffice dos negócios: mesma identidade da plataforma; a cor e o tema de cada negócio ficam na página pública. */
.brand{--brass-on-bar:var(--brass);--sage:var(--brass);--line-input:#C4CECA}
.admin-brand{display:flex;align-items:center;gap:10px;margin-right:18px;padding-right:18px;border-right:1px solid var(--line);color:var(--ink);min-width:0}
.admin-brand .brand-mark{width:26px;height:26px}
.admin-business{font-weight:650;font-size:15px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
/* Seletor no logótipo (docs/adr/0023): o logótipo abre os espaços da conta, no painel do menu do nome. */
.spaces{position:relative;display:flex;min-width:0}
button.admin-brand{background:none;border:none;border-right:1px solid var(--line);font:inherit;cursor:pointer;padding-top:0;padding-bottom:0;padding-left:0;min-height:44px;touch-action:manipulation}
.spaces-chevron{width:16px;height:16px;color:var(--muted);flex:0 0 auto}
@media (max-width:760px){button.admin-brand{border-right:none}}
.spaces-pop{left:0;right:auto;min-width:290px;max-width:calc(100vw - 32px)}
.spaces-title{margin:0;padding:8px 12px 6px;font-size:12px;font-weight:600;color:var(--muted)}
.spaces-list{display:flex;flex-direction:column;gap:2px}
.spaces-list button{min-height:52px}
.spaces-list button[aria-current="true"]{background:var(--paper)}
.spaces-icon{width:30px;height:30px;border-radius:8px;flex:0 0 auto;object-fit:contain}
.spaces-logo{background:var(--card);border:1px solid var(--line)}
.spaces-text{display:flex;flex-direction:column;min-width:0}
.spaces-text b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spaces-text small{font-size:12px;color:var(--muted)}
.spaces-pop .spaces-check{margin-left:auto;color:var(--brass)}
.spaces-empty{margin:0;padding:10px 12px;font-size:14px;color:var(--muted)}
.spaces-pop .spaces-invites{margin-bottom:4px;font-weight:600;color:var(--ink);background:var(--mint, var(--bg))}
.spaces-pop .spaces-add{margin-top:4px;padding-top:12px;border-top:1px solid var(--line);border-radius:0 0 8px 8px}
.brand .nav-link{color:var(--muted);font-weight:600;border-radius:var(--r)}
.brand .nav-link:hover{background:var(--paper);color:var(--ink)}
.brand .nav-link.active{background:var(--mint);color:var(--brass-dk)}
.brand .nav-link.active:after{display:none}
.brand .notif-bell,.brand .domain-pill{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r)}
.brand .notif-bell:hover,.brand .domain-pill:hover{border-color:var(--ink);background:var(--card)}
.brand .bottom-nav{background:var(--card);border-top:1px solid var(--line);box-shadow:0 -1px 0 rgba(22,33,31,.04)}
.brand .bottom-nav a{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:600;font-size:11px}
.brand .bottom-nav a.active{color:var(--brass)}

.brand .agenda-toolbar .date-label,.brand .agenda-head .staff,.brand .notif-toggle-row .nt-text h4,.brand .sub-group{font-family:'Inter','Segoe UI',system-ui,sans-serif;text-transform:none;letter-spacing:-.01em}
.brand .stat-card .snum,.brand .kpi .kn,.brand .health-strip .hv{font-family:'Inter','Segoe UI',system-ui,sans-serif;letter-spacing:-.03em;font-weight:700}
.brand .reports-title,.brand .empty-state h2,.brand .drawer-head h3{text-transform:none;letter-spacing:-.015em}
.brand .drawer-head h3{color:var(--ink)}
.brand .stat-card .slabel,.brand .kpi .kl,.brand .bar-col small,.brand .tmpl-box label,.brand .msg-meta .mtype,.brand .tag,.brand .sub-group{text-transform:none;letter-spacing:0}
.brand .kpi:before{display:none}
.brand .staff-avatar{background:var(--mint);color:var(--brass-dk);font-family:'Inter','Segoe UI',system-ui,sans-serif}
.brand .day-tab.active{background:var(--ink);color:#fff}
.brand .chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}

.brand input[type=text],.brand input[type=search],.brand input[type=email],.brand input[type=url],.brand input[type=tel],.brand input[type=number],.brand input[type=password],.brand input[type=date],.brand input[type=time],.brand select,.brand textarea,.brand .dd-btn,.brand .dp-btn,.brand .phone-field{border:1px solid var(--line-input)}
.brand input:hover,.brand select:hover,.brand textarea:hover,.brand .dd-btn:hover{border-color:#9FAEA9}
.brand input:focus,.brand select:focus,.brand textarea:focus,.brand .dd-btn:focus-visible,.brand .dd.is-open .dd-btn,.brand .dp-btn:focus-visible,.brand .dp.is-open .dp-btn{border-color:var(--brass);box-shadow:0 0 0 3px rgba(15,92,84,.15)}
.brand .phone-field input{border:none}
.brand .phone-field .prefix{color:var(--muted);border-right:1px solid var(--line-input)}

.brand .agenda-toolbar{gap:12px 16px}
.view-switch{display:inline-flex;padding:3px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line)}
.view-switch button{border:none;background:none;padding:7px 14px;border-radius:6px;font:inherit;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}
.view-switch button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(22,33,31,.12)}
.range-nav{display:flex;align-items:center;gap:6px}
.range-nav .date-label{min-width:130px;text-align:center;font-weight:650;font-size:15px}
.nav-step{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.nav-step:hover{border-color:var(--ink)}
.nav-step .icon{width:18px;height:18px}
.view-staff{min-width:190px}
.brand .agenda-toolbar #btnNovaMarcacao{margin-left:auto}
.brand .agenda-toolbar .day-tabs{flex-basis:100%;order:10}
/* Em modo Lista a lista continua a barra de cima, como o calendário: sem cantos em cima nem espaço entre os dois. */
.brand #agendaList{margin-top:0;border-radius:0 0 var(--r) var(--r);border-top:0;padding-top:4px}
/* Páginas de lista (agenda em lista, clientes, relatórios…): um só cartão com cabeçalho, separadores, uma barra de filtros e a
   tabela, sem caixas dentro. A pesquisa vem primeiro; os filtros mostram o valor escolhido e destacam-se quando filtram. */
.lp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lp-head h2{margin:0}
.lp-actions{display:flex;gap:8px;flex-wrap:wrap}
.lp-tabs{display:flex;gap:20px;margin:10px -28px 0;padding:0 28px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.lp-tabs::-webkit-scrollbar{display:none}
.lp-tabs button{border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;padding:12px 0;font:inherit;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;touch-action:manipulation}
.lp-tabs button:hover{color:var(--ink)}
.lp-tabs button.active,.lp-tabs button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--brass)}
.lp-n{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);font-size:11.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.lp-n.warn{background:#FFF4E6;border-color:#F3D6AF;color:#9A4F0C}
.lp-n.due{background:#FCEBE8;border-color:#F2CBC4;color:#A93A2C}
.lp-tabs .active .lp-n{background:var(--ink);border-color:var(--ink);color:var(--card)}
.wl-day-bar{border-bottom:0;padding-bottom:0}
.brand .lp-tabs.wl-filters{margin-top:22px;flex-wrap:nowrap}
.lp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 0;margin:0 0 4px;border-bottom:1px solid var(--line)}
.lp-search{flex:1 1 240px;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);cursor:text}
.lp-search:focus-within{border-color:var(--brass);box-shadow:0 0 0 3px color-mix(in srgb,var(--brass) 18%,transparent)}
.lp-search svg{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.brand .lp-search input{flex:1;min-width:0;height:38px;padding:0;border:0;background:none;box-shadow:none;font:inherit;font-size:14px;color:var(--ink);outline:none}
.lp-pick,.lp-btn{display:inline-flex;align-items:center;gap:6px;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--card);font:inherit;font-size:13.5px;white-space:nowrap}
.lp-pick{padding:0 2px 0 12px;color:var(--muted)}
.lp-pick>span{font-weight:500}
.lp-pick .dd{min-width:0}
.brand .lp-pick .dd-btn,.brand .lp-pick select{min-height:38px;height:38px;width:auto;border:0;box-shadow:none;background-color:transparent;padding:0 10px 0 4px;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.brand .lp-pick select{padding-right:30px;background-position:right 8px center}
.lp-btn{padding:0 12px;font-weight:600;color:var(--ink);cursor:pointer}
.lp-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lp-btn .lp-chev{width:14px;height:14px;color:var(--muted)}
.lp-pick.on,.lp-btn.on{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 8%,var(--card))}
.lp-clear{height:40px;padding:0 6px;border:0;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--brass);cursor:pointer}
.lp-clear:hover{text-decoration:underline}
.lp-count{margin-left:auto;font-size:13px;color:var(--muted);white-space:nowrap}
.lp-period{position:relative}
/* O painel do período sai do cartão sem ser cortado. */
.brand .card-panel:has(.lp-bar){overflow:visible}
.lp-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:200;display:none;grid-template-columns:180px 250px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.lp-period.is-open .lp-pop{display:grid}
.lp-presets{display:flex;flex-direction:column;gap:2px;padding:8px;border-right:1px solid var(--line)}
.lp-presets button,.lp-presets a{border:0;background:none;text-align:left;padding:9px 10px;border-radius:8px;font:inherit;font-size:14px;color:var(--text);cursor:pointer;text-decoration:none}
.lp-presets button:hover,.lp-presets a:hover{background:var(--paper-2)}
.lp-presets [aria-pressed="true"]{background:color-mix(in srgb,var(--brass) 12%,var(--card));color:var(--ink);font-weight:600}
.lp-range{display:grid;gap:12px;align-content:start;padding:14px}
.lp-range .field-label{margin-bottom:4px}
.lp-extra{flex-basis:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,230px));gap:12px;align-items:end;padding-top:6px}
.lp-extra.hidden{display:none}
.lp-foot{border-top:0}
/* Caixa (docs/adr/0026): totais por cima da lista e as ações em cada linha. */
.brand .lp-head .cx-sub{margin:6px 0 0;max-width:70ch}
.cx-table .cell-sub{display:block;font-size:12px;color:var(--muted)}
/* A barra de baixo cabe com cinco entradas (Agenda, Clientes, Caixa, Relatórios, Definições). */
.brand .bottom-nav:not([style]){grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.brand .domain-pill{white-space:nowrap}
.cx-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 12px}
.cx-kpi{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--brass) 18%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--brass) 6%,var(--card));min-width:0}
.cx-kpi .cx-k{font-size:12.5px;font-weight:600;color:var(--muted)}
.cx-kpi b{font-size:24px;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cx-kpi small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cx-kpi.ok{background:#EAF6EF;border-color:#C9E7D6}
.cx-kpi.ok b{color:#1D6B45}
.cx-kpi.warn{background:#FFF4E6;border-color:#F3D6AF}
.cx-kpi.warn b{color:#9A4F0C}
/* Por pagar: vermelho suave. */
.cx-kpi.due{background:#FDF1EF;border-color:#F2CBC4}
.cx-kpi.due b{color:#A93A2C}
.cx-kpi.muted{background:var(--paper-2);border-color:var(--line)}
.cx-kpi.muted b{color:var(--text)}
.cx-kpi .cx-k{text-transform:none}
/* Caixa por profissional: uma coluna por pessoa (como na agenda), em grelha que desce em vez de deslizar para o lado. */
.lp-actions .cx-modes{margin-right:4px}
.cx-board{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:12px;margin:4px 0 8px;align-items:start}
@media (max-width:760px){.cx-board{grid-template-columns:minmax(0,1fr)}}
.cx-board.hidden{display:none}
.cx-col{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--card);container-type:inline-size}
.cx-col-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;min-width:0;padding:12px 14px;border-bottom:1px solid var(--line)}
.cx-col-name{flex:1 1 120px;min-width:0}
.cx-col-head b{display:block;font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-col-head small{display:block;font-size:12.5px;color:var(--muted)}
.cx-col-list{list-style:none;margin:0;padding:0 14px}
.cx-col-empty{margin:0;padding:14px;font-size:13px}
.cx-li{display:grid;grid-template-columns:44px minmax(0,1fr) auto 40px;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.cx-li:first-child{border-top:0}
.cx-row-time{display:flex;flex-direction:column;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13.5px;line-height:1.25}
.cx-row-time b{font-weight:500}
.cx-row-time small{font-size:12px}
.cx-row-main{display:flex;flex-direction:column;min-width:0}
.cx-row-who{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-row-main small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-row-v{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;color:var(--ink);font-size:14px;font-weight:600;line-height:1.25}
.cx-pst{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600}
.cx-pst::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.cx-pst.ok{color:var(--brass)}
.cx-pst.due{color:#A93A2C}
.cx-row-act{display:flex;justify-content:center}
.cx-li.noshow,.cx-li.cancelled{opacity:.55}
/* Ações da Caixa: botão de ícone (quadrado com contorno fino, como as setas da agenda). ✓ marca como pago, ↺ desfaz. */
.cx-ic{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);cursor:pointer;touch-action:manipulation;box-shadow:0 1px 2px rgba(22,33,31,.06);transition:background .15s,border-color .15s,color .15s}
.cx-ic .icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.cx-ic.pay{color:var(--brass);border-color:color-mix(in srgb,var(--brass) 45%,var(--line))}
.cx-ic.pay:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.cx-ic.undo{color:var(--muted)}
.cx-ic.undo .icon{width:15px;height:15px;stroke-width:2}
@media (pointer:coarse){.cx-ic{width:40px;height:40px}}
.cx-ic.undo:hover{color:var(--ink);border-color:var(--muted);background:var(--line)}
.cx-ic:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.cx-col-sum{display:flex;align-items:center;gap:14px;font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:700}
.cx-col-sum .icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cx-sum-paid,.cx-sum-due{display:inline-flex;align-items:center;gap:5px}
.cx-sum-paid{color:var(--brass)}
.cx-sum-due{color:#A93A2C}
/* Coluna estreita (telemóvel): a hora fica por cima do cliente. */
@container (max-width:340px){
  .cx-li{grid-template-columns:minmax(0,1fr) auto 40px}
  .cx-row-time{grid-column:1/-1;flex-direction:row;gap:6px}
}
.cx-pg-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);cursor:pointer;touch-action:manipulation}
.cx-pg-btn:hover:not(:disabled){background:var(--paper-2)}
.cx-pg-btn:disabled{opacity:.4;cursor:default}
.cx-pg-btn .icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cx-col-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 14px 10px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.cx-staff{margin:0 0 12px;border:1px solid var(--line);border-radius:12px;padding:0 16px}
.cx-staff summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:14px;color:var(--ink)}
.cx-staff .table-wrap{margin:0 0 8px}
.cx-warn{color:var(--oxblood);font-weight:700}
.cx-table tr.noshow td,.cx-table tr.cancelled td{color:var(--muted)}
.cx-act{text-align:right;white-space:nowrap}
.tag.tag-due{background:#FCEBE8;color:#A93A2C}
@media(max-width:900px){.cx-totals{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  .cx-totals{gap:8px}
  .cx-kpi{padding:12px}
  .cx-kpi b{font-size:20px}
  /* A lista vira cartões: cliente e valor em cima, data, serviço e profissional por baixo, estado e ação no fim. */
  .cx-table thead{display:none}
  .cx-table,.cx-table tbody{display:block}
  .cx-table tr.cx-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
  .cx-table tr.cx-row td{display:block;padding:0;border:0}
  .cx-table .cx-client{grid-column:1;grid-row:1}
  .cx-table .cx-value{grid-column:2;grid-row:1;text-align:right;font-weight:700}
  .cx-table .cx-when{grid-column:1 / span 2;grid-row:2;font-size:13px}
  .cx-table .cx-service,.cx-table .cx-staff-cell{grid-column:1 / span 2;font-size:13px;color:var(--muted)}
  .cx-table .cx-service{grid-row:3}
  .cx-table .cx-staff-cell{grid-row:4}
  .cx-table .cx-state{grid-column:1;grid-row:5;align-self:center}
  .cx-table .cx-act{grid-column:2;grid-row:5}
  .cx-table .cx-act .btn{min-height:40px}
}
/* Janela de confirmação (`App.confirm`): pequena, ao centro, com a ação à direita; no telemóvel, os botões a toda a largura. */
.confirm-layer{z-index:260}
.brand .confirm-box{width:440px;padding:28px 28px 24px;border-radius:18px}
.confirm-box h2{margin:0 0 8px;font-size:20px;line-height:1.25}
.confirm-box p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}
.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
@media(max-width:560px){.confirm-actions{flex-direction:column-reverse}.confirm-actions .btn{width:100%;min-height:48px}}
/* Caixa: separadores como links, fecho do dia, pagamentos do mês e comissões. */
.cx-help{margin:0 0 16px;padding:0 18px;border:1px solid color-mix(in srgb,var(--brass) 22%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brass) 5%,var(--card))}
.cx-help summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;cursor:pointer;list-style:none;font-size:14px;font-weight:700;color:var(--brass)}
.cx-help summary::-webkit-details-marker{display:none}
.cx-help summary::after{content:'';width:8px;height:8px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.cx-help[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.cx-help ul{margin:0 0 14px;padding-left:18px;display:grid;gap:6px;font-size:14px;line-height:1.5;color:var(--text)}
.cx-help b{color:var(--ink)}
.cl-head{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.cl-head .cl-daynav{gap:6px}
.cl-head .cl-step{display:inline-grid;place-items:center;width:40px;height:40px;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);cursor:pointer}
.cl-head .cl-step:hover{border-color:#B8C4C0}
.cl-head .cl-step svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cl-title{display:grid;gap:6px;min-width:0}
.brand .cl-title .cl-day{margin:0;font-size:20px;line-height:1.2;color:var(--ink)}
.cl-daynav .dp{width:150px}
/* Setas, calendário e «Hoje» com a mesma altura; espaços iguais entre os blocos (20 px) e dentro deles (12 px). */
.cl-daynav .dp-btn,.cl-daynav input[type=date],.cl-daynav .btn{height:40px;min-height:40px;padding-top:0;padding-bottom:0;border-radius:10px}
.cl-daynav .btn{padding:0 14px;font-size:14px}
.cl-head{padding:20px 0 0;margin:0 0 20px}
.cl-title{gap:8px}
.cl-pending{margin:-8px 0 16px}
.cl-totals{margin:0 0 20px}
.cl-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.cl-badge.muted{background:var(--paper-2);color:var(--muted);border:1px solid var(--line)}
.cl-who{white-space:nowrap}
.cl-closed-note{margin:10px 0 0;font-size:13.5px;color:var(--muted);font-style:italic}
.cl-totals{grid-template-columns:repeat(3,minmax(0,1fr))}
.cl-late{margin:20px 0 0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2)}
.cl-late h3{margin:0;font-size:15px}
.cl-late .field-hint{margin:4px 0 10px}
.cl-late ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cl-late li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line)}
.cl-late-main{font-size:14px;color:var(--text)}
.cl-late-ref{grid-column:1;font-size:12.5px;color:var(--muted)}
.cl-late-ref a{color:var(--brass);font-weight:600}
.cl-late-value{grid-column:2;grid-row:1 / span 2;align-self:center;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.cl-name{display:inline-flex;align-items:center;gap:10px}
.cl-av{flex:none;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--tag-bg);color:var(--tag-fg);font-size:12.5px;font-weight:700}
.cl-pay{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:8px;background:#FFF4E6;color:#9A4F0C;font-weight:700;font-variant-numeric:tabular-nums}
.cl-table thead th{background:var(--paper-2)}
.cl-table thead th:first-child{border-radius:10px 0 0 10px}
.cl-table thead th:last-child{border-radius:0 10px 10px 0}
.cl-table tfoot td{border-top:2px solid var(--line);font-weight:700;color:var(--ink);padding-top:12px}
.brand .cl-pct input{width:64px;height:36px;padding:0 6px;text-align:right;font-variant-numeric:tabular-nums}
.cl-closebar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:24px -28px -10px;padding:18px 28px;border-top:1px solid color-mix(in srgb,var(--brass) 25%,var(--line));background:color-mix(in srgb,var(--brass) 7%,var(--card));border-radius:0 0 var(--r-lg) var(--r-lg)}
.cl-closebar-fields{flex:1 1 320px;display:grid;gap:8px;min-width:0}
.cl-closebar-fields .inline-check{margin:0}
/* O botão com a altura do campo da nota e alinhado com ele (a caixa fica por baixo dos dois). */
.cl-closebar #clNote,.cl-closebar .btn{height:46px;min-height:46px;box-sizing:border-box}
.cl-closebar .btn{flex:none;display:inline-flex;align-items:center;padding-top:0;padding-bottom:0}
/* Estados nas tabelas da Caixa: letra legível (as etiquetas gerais têm 9,5 px). */
.cx-page .tag{font-size:12.5px;font-weight:700;padding:4px 10px;letter-spacing:0;line-height:1.3}
/* Botões da Caixa: ícone + texto curto (ou só o ícone, com aria-label). */
.cx-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.cx-btn .icon{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cx-btn.btn-sm{min-height:36px}
.cx-btn.cx-icon{width:36px;padding:0}
.po-acts{display:inline-flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.po-detail{max-width:560px}
.pd-seg{display:inline-flex;padding:3px;margin:4px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}
.pd-seg button{min-height:36px;padding:0 14px;border:0;border-radius:8px;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;touch-action:manipulation}
.pd-seg button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* Com um mês inteiro (até 31 dias) a lista rola por dentro da janela; o total fica sempre à vista por baixo. */
.cl-late-sum{font-weight:500;color:var(--muted)}
.cl-late-more{margin-top:8px}
.cl-photo{object-fit:cover;padding:0;background:var(--paper-2)}
.pd-list{list-style:none;margin:0;padding:0 4px 0 0;border-top:1px solid var(--line);max-height:min(52dvh,440px);overflow-y:auto;overscroll-behavior:contain}
.pd-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px 14px;padding:12px 2px;border-bottom:1px solid var(--line)}
.pd-when{display:grid;gap:2px;min-width:0}
.pd-empty{padding:16px 2px;color:var(--muted);font-size:14px}
.pd-when a,.pd-when b{font-weight:650;color:var(--ink);text-decoration:none}
.pd-when a:hover{text-decoration:underline}
.pd-when small{font-size:12.5px;color:var(--muted)}
.pd-calc{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;color:var(--text);font-size:14px;white-space:nowrap}
.pd-calc i{font-style:normal;color:var(--muted)}
.pd-pay{min-width:84px;text-align:right;font-variant-numeric:tabular-nums;color:#8A4B10}
.pd-total{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border-radius:12px;background:#FFF7EC;border:1px solid #F0C9A0;font-size:14px}
.pd-total b{font-size:18px;color:#8A4B10}
@media (max-width:560px){
  .pd-row{grid-template-columns:minmax(0,1fr) auto}
  .pd-calc{grid-column:1;grid-row:2;font-size:13px}
  .pd-pay{grid-column:2;grid-row:1 / span 2}
}
@media (max-width:900px){.po-acts{justify-content:flex-start}}

.lp-tabs a{border-bottom:2px solid transparent;margin-bottom:-1px;padding:12px 0;font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.lp-tabs a:hover{color:var(--ink)}
.lp-tabs a.active{color:var(--ink);border-bottom-color:var(--brass)}
.cx-tabs{margin-bottom:6px}
.cl-bar{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:14px 0 6px}
.cl-daynav{display:flex;align-items:center;gap:8px}
.cl-daynav input[type=date]{width:auto;min-width:150px}
.cl-step{min-width:40px;font-size:18px;line-height:1}
.po-month{font-size:16px;min-width:150px;text-align:center}
.cl-pending{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.cl-chip{min-height:32px;padding:0 10px;border-radius:999px;border:1px solid #F0C9A0;background:#FCE9D2;color:#8A4B10;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.cl-status{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;margin:8px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);font-size:14px;color:var(--text)}
.cl-status.ok{border-color:color-mix(in srgb,var(--brass) 35%,var(--line));background:color-mix(in srgb,var(--brass) 6%,var(--card))}
.cl-status.warn{border-color:#F0C9A0;background:#FFF7EC}
.cl-status a{color:var(--brass);font-weight:700}
.cl-day{font-weight:700;color:var(--ink);margin-right:4px}
.cl-badge{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;background:#FFF4E6;color:#9A4F0C;border:1px solid #F3D6AF;font-size:12.5px;font-weight:700}
.cl-badge.ok{background:#EAF6EF;color:#1D6B45;border-color:#C9E7D6}
.cl-notetext{font-style:italic;color:var(--muted)}
.cl-status .lp-clear{margin-left:auto;height:auto}
.cl-status .po-days{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto}
.cl-status a.cl-chip{display:inline-flex;align-items:center;text-decoration:none;color:#8A4B10;background:#fff}
.cl-status a.cl-chip:hover{border-color:#D99A5B}
@media (max-width:760px){.cl-status .po-days{margin-left:0}}
.cl-pct{display:inline-flex;align-items:center;gap:4px}
.brand .cl-pct input{width:76px;height:38px;padding:0 8px;text-align:right}
.cl-pct i{font-style:normal;color:var(--muted)}
.cl-note-due{margin:12px 0 0;font-size:13.5px;color:#8A4B10}
.cl-closebox{display:grid;gap:8px;max-width:560px;margin:18px 0 12px;padding:16px;border:1px solid var(--line);border-radius:12px}
.cl-closebox .btn{justify-self:start}
.cx-due-totals{grid-template-columns:minmax(0,320px)}
.po-totals{grid-template-columns:repeat(2,minmax(0,280px))}
.sh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,300px));gap:16px;margin:16px 0 4px}
.sh-table tr.muted td{color:var(--muted)}
@media(max-width:760px){
  .cl-bar{flex-direction:column;align-items:stretch}
  .cl-daynav{justify-content:space-between}
  .cl-daynav input[type=date]{flex:1;min-width:0}
  .cl-step{min-height:44px;min-width:44px}
  .po-totals{grid-template-columns:1fr 1fr}
  .sh-grid{grid-template-columns:1fr}
  .cl-closebox .btn{justify-self:stretch}
  .cl-head{flex-direction:column;align-items:stretch}
  .cl-head .cl-daynav{display:grid;grid-template-columns:44px 1fr 44px auto}
  .cl-head .cl-step{width:44px;height:44px}
  .cl-daynav .dp{width:auto}
  .cl-daynav .dp-btn,.cl-daynav input[type=date],.cl-daynav .btn{height:44px;min-height:44px}
  .cl-head{padding-top:16px;margin-bottom:16px;gap:12px}
  .brand .cl-title .cl-day{font-size:18px}
  .cl-totals{grid-template-columns:1fr 1fr}
  .cl-totals .cx-kpi:first-child{grid-column:1 / -1}
  .cl-closebar{position:sticky;bottom:calc(68px + env(safe-area-inset-bottom));z-index:30;margin:16px -16px -10px;padding:12px 16px;border-radius:0;box-shadow:0 -6px 16px -10px rgba(0,0,0,.25)}
  .cl-closebar .btn{width:100%}
  .cl-table tfoot td:empty{display:none}
  /* As tabelas viram cartões: o nome em cima e cada número numa linha com a etiqueta. */
  .cl-table thead{display:none}
  .cl-table,.cl-table tbody,.cl-table tfoot,.cl-table tr,.cl-table td{display:block}
  .cl-table tfoot tr{margin-top:4px;padding:12px 14px;border:0;border-radius:12px;background:var(--paper-2)}
  .cl-table tfoot td{border:0;padding:3px 0}
  .cl-table tr{padding:12px 0;border-bottom:1px solid var(--line)}
  .cl-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;border:0;text-align:right}
  .cl-table td[data-label]:not([data-label=""])::before{content:attr(data-label);color:var(--muted);font-weight:500;text-align:left}
  .cl-table td[data-label=""]{font-size:15px;padding-bottom:6px}
  .cl-table td.cx-act{justify-content:flex-end;padding-top:8px}
  .cl-table td.cx-act:empty{display:none}
  .cl-table td[colspan]{display:block}
}
/* Relatórios: a barra é o cartão do topo; os números e os gráficos seguem por baixo. */
.brand .rep-bar{padding-bottom:0;margin-bottom:16px;overflow:visible}
.rep-bar .lp-bar{border-bottom:0;margin:0}
.rep-bar .period-label{font-size:13px;color:var(--muted)}
.lp-range .btn{justify-self:start}
@media(max-width:760px){
  .lp-tabs{margin:10px -16px 0;padding:0 16px}
  .lp-search{flex-basis:100%}
  .lp-pick,.lp-btn,.lp-clear{height:44px}
  .lp-count{flex-basis:100%;margin-left:0}
  .lp-pop{position:fixed;left:16px;right:16px;top:auto;bottom:16px;grid-template-columns:1fr;max-height:80dvh;overflow:auto}
  .lp-presets{display:grid;grid-template-columns:1fr 1fr;border-right:0;border-bottom:1px solid var(--line)}
  .lp-extra{grid-template-columns:1fr 1fr}
}

.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:420px}
.week-day{border-right:1px solid var(--line-2);display:flex;flex-direction:column;min-width:0}
.week-day:last-child{border-right:none}
.week-head{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 12px 10px;border:none;border-bottom:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;font:inherit}
.week-head span{font-size:12.5px;color:var(--muted);font-weight:600}
.week-head b{font-size:22px;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.week-head small{font-size:12px;color:var(--muted)}
.week-head:hover b{color:var(--brass)}
.week-day.is-today .week-head b{color:var(--brass)}
.week-day.is-today .week-head{box-shadow:inset 0 -2px 0 var(--brass)}
.week-list{display:flex;flex-direction:column;gap:6px;padding:10px 8px}
.range-appt{display:block;width:100%;text-align:left;border:1px solid var(--line-2);background:var(--paper-2);border-radius:var(--r);padding:7px 9px;font:inherit;font-size:13px;color:var(--text);cursor:pointer;line-height:1.35}
.range-appt:hover{border-color:var(--brass)}
.range-appt b{color:var(--ink);font-variant-numeric:tabular-nums}
.range-appt span{font-weight:600;color:var(--ink)}
.range-appt small{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.range-appt.online{background:var(--mint);border-color:transparent}

.month-summary{padding:12px 16px;font-size:13.5px;color:var(--muted);border-bottom:1px solid var(--line)}
.month-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}
.month-dow span{padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--muted)}
.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.month-day{position:relative;min-height:108px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 10px;border:none;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);background:var(--card);text-align:left;font:inherit;cursor:pointer;min-width:0}
.month-day:nth-child(7n){border-right:none}
.month-day:hover{background:var(--paper-2)}
.month-day.is-out{background:var(--paper);color:var(--muted)}
.month-day.is-out .month-num{color:#A7B2AF}
.month-num{font-size:14px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.month-day.is-today .month-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--brass);color:#fff;margin:-3px 0 0 -4px}
.month-count{position:absolute;top:8px;right:10px;font-size:12px;font-weight:600;color:var(--brass-dk);background:var(--mint);border-radius:999px;padding:1px 8px}
.month-lines{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0}
.month-line{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.month-line b{font-variant-numeric:tabular-nums;color:var(--ink)}
.month-more{font-size:12px;color:var(--muted)}

@media (max-width:900px){
  .week-grid{grid-template-columns:1fr;min-height:0}
  .week-day{border-right:none;border-bottom:1px solid var(--line-2)}
  .week-head{flex-direction:row;align-items:baseline;gap:10px}
  .month-day{min-height:64px;padding:6px}
  .month-lines{display:none}
  .month-count{position:static;margin-top:auto}
}
@media (max-width:760px){
  .brand .agenda-toolbar #btnNovaMarcacao{margin-left:0;order:9}
  .range-nav{flex:1;justify-content:space-between}
  .range-nav .btn{width:auto;flex:0 0 auto}
  .view-staff{flex-basis:100%}
}

@media (max-width:760px){
  .admin-brand{margin-right:0;padding-right:0;border-right:none}
  .admin-business{max-width:150px}
}
.sms-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:6px 0 26px}
.sms-stat{display:flex;flex-direction:column;gap:4px}
.sms-stat span{font-size:13px;color:var(--muted);font-weight:600}
.sms-stat b{font-size:28px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.sms-stat small{font-size:12.5px;color:var(--muted)}
.sms-test{margin-top:26px;max-width:520px}
.sms-test-row{display:flex;gap:10px;align-items:center}
.sms-test-row .phone-field{flex:1}
.integration{padding:20px 0;border-top:1px solid var(--line)}
.integration-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.integration-head h3{margin:0 0 4px;font-size:16px}
.integration-head .muted{margin:0;color:var(--muted);font-size:13.5px}
.integration-meta{margin:10px 0 0;font-size:13.5px;color:var(--muted)}
.integration-form{display:grid;grid-template-columns:minmax(0,420px) auto auto;gap:18px;align-items:end;margin-top:16px}
.integration-form .form-field{margin:0}
/* Campos a mais de uma integração (modelo e tetos do assistente): ocupam a linha toda, por cima da chave e dos botões */
.integration-form>.field-row,.integration-form>.form-field:has(.ik-option){grid-column:1/-1;max-width:640px}
.integration-form>.field-row{margin:0}
.switch-row{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;min-height:46px}
.integration-actions{display:flex;gap:10px}
@media(max-width:760px){.sms-stats{grid-template-columns:1fr 1fr}.integration-form{grid-template-columns:1fr}.sms-test-row{flex-direction:column;align-items:stretch}}

/* Plataforma: lista de negócios e página de cada negócio */
.brand table.data td .row-title{color:var(--ink);font-weight:600}
.brand table.data td .row-title:hover{color:var(--brass)}
.brand .row-sub{display:block;color:var(--muted);font-size:12.5px;font-weight:400;margin-top:2px}
.brand .row-action{width:44px;text-align:right}
.brand .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:9px;border:1px solid var(--line);color:var(--text);background:var(--card);transition:.15s}
.brand .icon-btn:hover{border-color:var(--brass);color:var(--brass)}
.brand .icon-btn .icon{width:18px;height:18px}
.brand .app-code-cell{font-weight:600;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--ink)}
.brand .back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;font-weight:600;margin-bottom:14px}
.brand .back-link:hover{color:var(--ink)}
.brand .back-link .icon{width:16px;height:16px}
.brand .page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}
.brand .page-head h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.brand .page-sub{margin:4px 0 0;color:var(--muted);font-size:14px}
.brand .page-sub a{color:var(--brass)}
.brand .state-off.inline{display:inline;margin-left:10px}
.brand .detail-list{display:grid;grid-template-columns:max-content 1fr;gap:12px 28px;margin:0 0 24px;font-size:14.5px}
.brand .detail-list dt{color:var(--muted)}
.brand .detail-list dd{margin:0;color:var(--ink);font-weight:500}
.brand .detail-list dd small{display:block;color:var(--muted);font-weight:400;font-size:13px;margin-top:2px}
.brand .confirm-inline{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;max-width:560px}
.brand .confirm-inline p{margin:0 0 12px;font-size:14px;color:var(--text)}
.brand .tab-loading{margin:0;color:var(--muted);font-size:14px}
.brand .form-narrow{max-width:640px}
.brand .form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.brand .card-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.brand .confirm-inline{margin-bottom:14px}
.brand .state-on{display:block;color:var(--sage);font-size:12.5px;font-weight:600}
.brand #stab-parametrizacoes .sub-tabs{margin:0 0 18px}
/* Parametrizações por app (docs/adr/0024): a escolha da app em cima e só os separadores e as linhas dessa app. */
.set-nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:0 0 4px}
.set-apps a{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:6px;font-size:14px;font-weight:600;color:var(--muted);text-decoration:none}
.set-apps a[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(22,33,31,.12)}
.set-apps .prod-ic{width:18px;height:18px;margin:0;border-radius:5px}
.set-nav .set-tabs{align-self:stretch}
/* Cada app só mostra os seus separadores e o que é dela (Book, Class, Imo). */
.set-nav:not([data-current=book]) .set-tabs[data-app=book],.set-nav:not([data-current=class]) .set-tabs[data-app=class],.set-nav:not([data-current=imo]) .set-tabs[data-app=imo]{display:none}
[data-cur-app]:not([data-cur-app=book]) [data-app-only=book],[data-cur-app]:not([data-cur-app=class]) [data-app-only=class],[data-cur-app]:not([data-cur-app=imo]) [data-app-only=imo]{display:none!important}
.set-app-name{color:var(--muted);font-weight:500}
/* Métricas (docs/adr/0024): números em cima, barras dos novos e dos que saíram, e a tabela de coortes com a cor da retenção. */
@media (min-width:1201px){.ov-kpis.mt-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
.mt-card{margin:0 0 16px;padding:22px 24px}
.mt-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.mt-head h2{font-size:16px;font-weight:650;margin:0}
.mt-legend{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.mt-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:8px}
.mt-legend i.in,.mt-pair .in{background:var(--sage)}
.mt-legend i.out,.mt-pair .out{background:var(--oxblood)}
.mt-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;align-items:end;height:200px;padding:0 0 4px;border-bottom:1px solid var(--line)}
.mt-col{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;cursor:default}
.mt-pair{flex:1;display:flex;align-items:flex-end;gap:3px;width:100%;justify-content:center}
.mt-pair span{width:min(18px,40%);min-height:2px;border-radius:4px 4px 0 0;color:#fff;font-size:11px;font-weight:600;text-align:center;line-height:16px}
.mt-col small{font-size:11.5px;color:var(--muted)}
.mt-col em{font-style:normal;font-size:12px;font-weight:650;color:var(--ink)}
.mt-cohort td.mt-cell{background:color-mix(in srgb,var(--sage) calc(var(--p) * 0.6%),transparent);font-variant-numeric:tabular-nums}
@media (max-width:760px){.mt-bars{gap:3px}.mt-col small{font-size:10px}}
/* Pontuação de saúde: número com cor (≥70 bem, 40–69 atenção, <40 em risco) e, na página do negócio, o que deu cada parte. */
.hs-pill{display:inline-flex;align-items:baseline;justify-content:center;min-width:38px;padding:3px 9px;border-radius:999px;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;cursor:help}
.hs-pill.big{font-size:18px;padding:4px 12px}
.hs-pill small{font-size:11px;font-weight:500;opacity:.7}
.hs-good{background:color-mix(in srgb,var(--t-green) 16%,var(--card));color:color-mix(in srgb,var(--t-green) 75%,var(--ink))}
.hs-watch{background:color-mix(in srgb,var(--t-amber) 20%,var(--card));color:color-mix(in srgb,var(--t-amber) 70%,var(--ink))}
.hs-risk{background:color-mix(in srgb,var(--t-red) 16%,var(--card));color:color-mix(in srgb,var(--t-red) 75%,var(--ink))}
.hs-parts{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px}
.hs-parts li{display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:4px 10px;font-size:13.5px}
.hs-parts i{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.hs-parts em{display:block;height:100%;width:var(--w)}
.hs-parts em.hs-good{background:var(--t-green)}.hs-parts em.hs-watch{background:var(--t-amber)}.hs-parts em.hs-risk{background:var(--t-red)}
.hs-parts b{font-variant-numeric:tabular-nums;font-size:12.5px}
.hs-parts small{grid-column:2 / -1;color:var(--muted);font-size:12px;margin-top:-2px}
#tenantTable th[data-sort]{cursor:pointer;user-select:none}
#tenantTable th[data-sort]::after{content:" ↕";color:var(--muted);font-weight:400}
.pl-midyear{display:grid;gap:6px;margin:0 0 14px}
.pl-midyear .sub-group{margin:0 0 4px}
.pl-midyear .pl-min{margin:6px 0 0 28px}
.pg-card.class-settings{max-width:none}
.class-settings .cs-dates{max-width:420px}
.class-settings .cs-dates input{max-width:none}
/* Produtos no site: um cartão para os clientes e outro para as lojas, cada interruptor com a frase do que faz. */
.ps-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;align-items:start}
.ps-card{margin:0;padding:22px 24px}
.ps-card h2{font-size:16px;font-weight:650;margin:0 0 12px}
.ps-sub{margin:-6px 0 14px;color:var(--muted);font-size:13.5px}
.ps-switch{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.ps-switch input{margin-top:3px;flex:none}
.ps-switch b{display:block;font-size:14.5px}
.ps-switch small{display:block;color:var(--muted);font-size:13px;line-height:1.45;margin-top:2px}
.ps-store{padding:14px 0;border-top:1px solid var(--line)}
.ps-store:first-of-type{border-top:0;padding-top:0}
.ps-url{display:flex;gap:8px;align-items:center;margin:10px 0 0 28px}
.ps-url input{flex:1;min-width:0}
.ps-store:has(.ps-switch input:not(:checked)) .ps-url{opacity:.55}
@media (max-width:900px){.ps-grid{grid-template-columns:1fr}.ps-url{margin-left:0}}
.pp-stripe{margin:0 0 16px}
.pp-stripe-head{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.pp-stripe-head h2{margin:0}
.pp-stripe .ps-sub{margin:0}
.pp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.pp-field{margin-top:18px}
.pp-field:first-of-type{margin-top:0}
.ps-switch+.pp-field{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.pp-num{display:flex;align-items:center;gap:8px}
.pp-num input{width:120px}
.pp-num span{color:var(--muted);font-size:14px}
@media (max-width:900px){.pp-grid{grid-template-columns:1fr}}
/* Subscrições e Pagamentos recebidos: o mesmo topo, separadores e filtros nas duas. */
.fin-tabs{margin:4px 0 20px}
.neg-filters .fin-ended{margin:0 0 0 auto;min-height:44px}
.mg .neg-filters .mk-sel{flex:0 1 220px}
@media (max-width:760px){.neg-filters .fin-ended{margin:0}.mg .neg-filters .mk-sel{flex:1 1 100%}}
.set-nav a:focus:not(:focus-visible){outline:none}
.brand .sub-tab.active{background:var(--ink);border-color:var(--ink);color:#fff}

/* Plataforma → Site */
.brand .site-range{display:flex;padding:3px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.brand .site-range button{border:0;background:none;padding:7px 12px;border-radius:8px;font:600 13px 'Inter',sans-serif;color:var(--muted);cursor:pointer;min-height:34px}
.brand .site-range button.active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.1)}
.brand #stab-site .sub-group{margin:26px 0 12px}
.brand .funnel{display:grid;gap:10px}
.brand .funnel-row{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr) 70px 170px;gap:12px;align-items:center;font-size:14px}
.brand .funnel-row .fl{color:var(--ink);font-weight:500}
.brand .funnel-row .fbar{height:12px;border-radius:999px;background:var(--line-2);overflow:hidden}
.brand .funnel-row .fbar i{display:block;height:100%;border-radius:999px;background:var(--brass)}
.brand .funnel-row b{text-align:right;font-variant-numeric:tabular-nums}
.brand .funnel-row small{color:var(--muted)}
.brand .site-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px}
.brand .site-list .data td{padding:9px 0}
@media(max-width:760px){
  .brand .funnel-row{grid-template-columns:minmax(0,1fr) 60px;row-gap:4px}
  .brand .funnel-row .fbar{grid-column:1/-1;grid-row:2}
  .brand .funnel-row small{grid-column:1/-1}
  .brand .site-grid{grid-template-columns:minmax(0,1fr)}
}

/* ── Plataforma: barra lateral e painel de Início ── */
.platform-shell .shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100dvh - 65px)}
.platform-shell .shell>.view{min-width:0;max-width:none;width:100%;margin:0;padding:32px 36px 64px}
.side-nav{position:sticky;top:65px;align-self:start;height:calc(100dvh - 65px);overflow-y:auto;display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:20px 14px;border-right:1px solid var(--line);background:var(--card)}
.side-nav nav{display:flex;flex-direction:column;gap:2px}
.side-nav nav a{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:10px;color:var(--text);font-weight:500;font-size:14.5px}
.side-nav nav a .icon{width:19px;height:19px;color:var(--muted);flex:0 0 auto}
.side-nav nav a span{flex:1}
.side-nav nav a:hover{background:var(--paper)}
.side-nav nav a.active{background:color-mix(in srgb,var(--brass) 12%,var(--card));color:var(--ink);font-weight:650}
.side-nav nav a.active .icon{color:var(--brass)}
.side-badge{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--oxblood);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.side-group{margin:18px 12px 6px;font-size:11.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.side-site{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:13.5px;color:var(--muted);border:1px solid var(--line)}
.side-site .icon{width:16px;height:16px}
.side-site:hover{color:var(--ink);border-color:var(--ink)}
.side-toggle{display:none;width:42px;height:42px;margin-right:6px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);align-items:center;justify-content:center;cursor:pointer}
.side-toggle .icon{width:20px;height:20px}
.side-scrim{position:fixed;inset:0;z-index:89;background:rgba(10,20,18,.38)}

.home-head{margin:4px 0 22px}
.home-head h1{margin:0;font-size:clamp(26px,3vw,32px);font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.home-head p{margin:4px 0 0;color:var(--muted)}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.quick{display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--text);text-align:left;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s,box-shadow .15s}
.quick:hover{border-color:var(--brass);transform:translateY(-1px);box-shadow:0 10px 24px -14px rgba(15,92,84,.35)}
.quick .q-ico{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:color-mix(in srgb,var(--brass) 12%,var(--card));color:var(--brass);display:flex;align-items:center;justify-content:center}
.quick .q-ico .icon{width:20px;height:20px}
.quick b{display:block;font-size:15px;color:var(--ink);font-weight:650}
.quick small{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.quick.is-alert .q-ico{background:color-mix(in srgb,var(--oxblood) 12%,var(--card));color:var(--oxblood)}
.home-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.kpi-card{padding:18px 18px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card)}
.kpi-card span{display:block;font-size:13px;color:var(--muted);font-weight:500}
.kpi-card b{display:block;font-size:30px;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin-top:6px;font-variant-numeric:tabular-nums}
.kpi-card small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.home-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.home-cols .card-panel .section-head{margin-bottom:10px}
.home-cols .card-panel .section-head h2{font-size:18px}
.link-more{font-size:13.5px;font-weight:600;color:var(--brass)}
.home-list{list-style:none;margin:0 0 14px;padding:0}
.home-list li+li{border-top:1px solid var(--line-2)}
.home-list a{display:flex;flex-direction:column;gap:2px;padding:11px 4px;border-radius:8px}
.home-list a:hover b{color:var(--brass)}
.home-list b{font-size:15px;color:var(--ink);font-weight:600}
.home-list small{font-size:13px;color:var(--muted)}

@media(max-width:640px){.home-kpis{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){
  .platform-shell .shell{grid-template-columns:minmax(0,1fr)}
  .side-toggle{display:inline-flex}
  .side-nav{position:fixed;top:0;left:0;bottom:0;z-index:90;width:min(290px,84vw);height:100dvh;padding-top:calc(20px + env(safe-area-inset-top));transform:translateX(-102%);transition:transform .22s ease;box-shadow:12px 0 40px rgba(0,0,0,.18)}
  body.side-open .side-nav{transform:none}
  body.side-open{overflow:hidden}
  .home-cols{grid-template-columns:minmax(0,1fr)}
  .platform-shell .topnav .area{display:none}
}
@media(max-width:520px){.quick-grid{grid-template-columns:minmax(0,1fr)}.home-kpis{gap:10px}.kpi-card b{font-size:26px}}

/* ---------- Gestão (Resumo, Clientes, Pagamentos, Gastos, Cofre) ---------- */
.mg>.card-panel,.mg .mg-cols>.card-panel{margin-bottom:18px}
.mg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;margin:4px 0 18px}
.mg-head h2{margin:0;font-size:clamp(24px,2.6vw,30px);font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.mg-head p{margin:4px 0 0;color:var(--muted)}
.mg-actions{display:flex;gap:8px;flex-wrap:wrap}
.mg-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.kpi-card.lead{background:var(--brass);border-color:var(--brass)}
.kpi-card.lead span,.kpi-card.lead small{color:rgba(255,255,255,.78)}
.kpi-card.lead b{color:#fff}
.kpi-card.alert b{color:var(--oxblood)}
.mg-title{margin:0 0 14px;font-size:15px;font-weight:600;color:var(--ink)}
.mg-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.mg-title-row .mg-title{margin:0}
.mg-empty{color:var(--muted);margin:6px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mg-link{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;text-align:left}
.mg-link:hover{color:var(--brass);text-decoration:underline}
.mg .debt,.mg-balance .debt b{color:var(--oxblood);font-weight:600}
.mg .muted{color:var(--muted)}
.mg-warn{background:#FFF6E0;border:1px solid #F1D99B;color:#6B5212;border-radius:var(--r);padding:10px 14px;margin:0 0 16px;font-size:14px}

/* grelha de mensalidades */
.mg-matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
.mg-matrix th{font-weight:600;color:var(--muted);font-size:12px;padding:0 3px 8px;white-space:nowrap;text-align:center}
.mg-matrix th.now{color:var(--brass)}
.mg-matrix td{padding:4px 3px;text-align:center;border-top:1px solid var(--line-2)}
.mg-matrix td.name{text-align:left;padding:8px 14px 8px 0;min-width:170px}
.mg-matrix td.name small{display:block;color:var(--muted);font-size:12px;margin-top:1px}
.mg-matrix td.num{text-align:right;padding-left:12px;white-space:nowrap}
.cell{display:inline-block;width:26px;height:22px;border-radius:6px;border:none;padding:0;vertical-align:middle;background:transparent}
button.cell{cursor:pointer}
button.cell:hover{outline:2px solid var(--ink);outline-offset:1px}
.cell.pago{background:var(--mint-strong)}
.cell.parcial{background:repeating-linear-gradient(135deg,var(--mint-strong) 0 5px,var(--mint) 5px 10px)}
.cell.pendente{background:#fff;box-shadow:inset 0 0 0 2px #D9A23A}
.cell.falta{background:#E9A8A2;box-shadow:inset 0 0 0 1px var(--oxblood)}
.staff-nologin{margin-top:12px}
.staff-nologin>summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;padding:6px 0}
.staff-nologin[open]>summary{margin-bottom:8px}
.cell.gratis{background:var(--line-2);box-shadow:inset 0 0 0 1px var(--line)}
.cell.na{background:transparent}
.mg-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:12.5px;color:var(--muted)}
.mg-legend span{display:inline-flex;align-items:center;gap:7px}
.mg-legend i{display:inline-block;width:14px;height:12px;border-radius:3px}
.mg-legend i.bar-in{background:var(--mint-strong)}
.mg-legend i.bar-out{background:var(--ink-2)}

/* gráfico recebido/gastos */
.mg-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;margin-bottom:6px}
.mg-chart .m{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.mg-chart .pair{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:150px;width:100%}
.mg-chart .pair i{display:block;width:min(26px,38%);background:var(--mint-strong);border-radius:4px 4px 0 0;min-height:2px}
.mg-chart .pair i.out{background:var(--ink-2)}
.mg-chart span{font-size:12px;color:var(--muted)}
.mg-chart span.now{color:var(--brass);font-weight:700}
.mg-chart b{font-size:12.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.mg-chart b.neg{color:var(--oxblood)}

.mg-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mg-list{display:flex;flex-direction:column}
.mg-li{display:flex;justify-content:space-between;align-items:center;gap:8px 14px;padding:11px 0;border-top:1px solid var(--line-2);flex-wrap:wrap}
.mg-li:first-child{border-top:none}
.mg-li small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.mg-li b{font-weight:600;color:var(--ink)}
.mg-li-end{display:flex;align-items:center;gap:10px}
.mg-li .num,.mg-li-end span{font-variant-numeric:tabular-nums;font-weight:600}

/* barras por categoria */
.mg-bars{display:flex;flex-direction:column;gap:10px}
.mg-bars .br{display:grid;grid-template-columns:minmax(120px,220px) minmax(0,1fr) auto;gap:12px;align-items:center;font-size:13.5px}
.mg-bar{height:10px;border-radius:5px;background:var(--line-2);overflow:hidden}
.mg-bar i{display:block;height:100%;background:var(--brass);border-radius:5px}
.mg-bars small{color:var(--muted)}

/* tabelas com filtros */
.mg-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.mg-toolbar input[type=search]{flex:1 1 260px;min-width:0}
.mg-toolbar select{flex:0 1 230px;min-width:0}
.brand .mg-toolbar input[type=search]{border:1px solid var(--line-input);border-radius:var(--r);padding:9px 12px;font:inherit;background:var(--card)}
.mg-table-panel{padding:6px 14px}
/* Valor de uma oferta: fica a 0 € e não se mexe (platform-gestao.js); tem de se ver que está bloqueado. */
#mgpAmount:disabled{background:var(--paper-2);color:var(--muted);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--muted)}
.mg tr.mg-row{cursor:pointer}
.mg tr.mg-row:hover td,.mg-detail-pays tr.mg-row:hover td{background:var(--paper-2)}
.mg tr.mg-row:focus-visible{outline:2px solid var(--brass);outline-offset:-2px}
.mg tr.hidden{display:none}
.mg-tag{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}
.mg-tag.s1{background:var(--mint);color:#0B463F}
.mg-tag.s2{background:#FCEFD2;color:#7A5410}
.mg-tag.s3{background:var(--line-2);color:var(--muted)}

/* detalhe do cliente */
.mg-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;padding-right:36px}
.mg-detail-head h2{margin:0}
.mg-detail-head .muted{margin:2px 0 0;color:var(--muted)}
.mg-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin-bottom:16px;font-size:12.5px;color:var(--muted)}
.mg-info b{display:block;font-size:14px;color:var(--ink);font-weight:500;margin-top:2px;overflow-wrap:anywhere}
.mg-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.mg-balance div{background:var(--paper);border-radius:10px;padding:12px 14px;font-size:12.5px;color:var(--muted)}
.mg-balance b{display:block;font-size:19px;color:var(--ink);font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}
.mg-notes{margin:0 0 16px;white-space:pre-wrap;color:var(--text)}
.mg-detail-pays{max-height:260px;overflow:auto}
.mg-left{margin-right:auto}
.modal-footer-btns .mg-left{order:-1}
.brand .mg-danger-link{color:var(--oxblood)}
#mgpHint,#mgeHint{margin:0 0 12px}
.mg-check{display:flex;align-items:flex-end;padding-bottom:10px}

/* cofre */
.mg-lock{max-width:460px;margin:30px auto;text-align:center}
.mg-lock h2{margin:10px 0 6px}
.mg-lock p{color:var(--muted)}
.mg-lock-ico{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:14px;background:var(--mint);color:var(--brass)}
.mg-lock-ico .icon{width:24px;height:24px}
.mg-lock-form{display:flex;gap:8px;margin:16px 0 6px}
.mg-lock-form input{flex:1;min-width:0;text-align:center;font-size:20px;letter-spacing:.2em;font-variant-numeric:tabular-nums}
.mg-pw{display:flex;align-items:center;gap:4px;min-width:0}
.mg-pw span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.mg-pw .pw{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:none;color:var(--muted);cursor:pointer;flex:0 0 auto}
.icon-btn:hover{background:var(--paper);color:var(--ink)}
.icon-btn .icon{width:17px;height:17px}
.mg-pw-input{display:flex;align-items:stretch;gap:4px}
.mg-pw-input input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.mg-pw-input .icon-btn{height:auto;width:40px;border:1px solid var(--line-input)}
.mg-strength{height:4px;border-radius:2px;background:var(--line-2);margin:8px 0 4px;overflow:hidden}
.mg-strength i{display:block;height:100%;width:0;background:var(--brass);transition:width .2s}
.mg-gen-out{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;padding:14px;border-radius:10px;background:var(--paper);margin:6px 0 14px;overflow-wrap:anywhere;user-select:all}
.mg-log summary{cursor:pointer;font-weight:600;color:var(--ink)}
.mg-log[open] summary{margin-bottom:10px}
.mg input[type=range]{width:100%}

@media(max-width:1100px){.mg-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.mg-cols{grid-template-columns:minmax(0,1fr)}.mg-info{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
  .mg-kpis{gap:10px}.kpi-card b{font-size:24px}
  .mg-chart{gap:4px}.mg-chart b{font-size:11px}
  .mg-bars .br{grid-template-columns:minmax(0,1fr) auto}.mg-bar{grid-column:1/-1;grid-row:2}
  .mg-balance{grid-template-columns:minmax(0,1fr)}
  .mg-info{grid-template-columns:minmax(0,1fr)}
  .mg-head .mg-actions{width:100%}.mg-head .mg-actions .btn{flex:1}
  .mg-toolbar select{flex:1 1 100%}
}

/* ---------- Suporte: kanban (docs/adr/0003) ---------- */
.sup-board-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.sup-board-head h1{margin:0}
.brand .sup-board-sub{margin:0 0 16px}
.sup-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px}
.sup-filter{max-width:100%;overflow-x:auto}
.sup-filter button{white-space:nowrap}
.brand input.sup-search{flex:1 1 220px;max-width:340px;min-height:40px}
/* O quadro fica com a altura do ecrã (--sup-top vem do script) e cada coluna faz scroll por dentro: a página não cresce com os cartões. */

.sup-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;align-items:stretch;overflow-x:auto;scroll-snap-type:x mandatory;height:calc(100dvh - var(--sup-top,260px) - 24px);min-height:420px}
.sup-col{display:flex;flex-direction:column;min-height:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 6px 6px 12px;scroll-snap-align:start;transition:border-color .15s,background .15s}
.sup-col.over{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 6%,var(--card))}
.sup-col h2{display:flex;align-items:center;gap:8px;font-size:14px;margin:2px 10px 10px 4px;flex:none}
.sup-col h2 small{color:var(--muted);font-weight:500;font-size:12px}
.sup-col h2 b{margin-left:auto;font-size:12px;color:var(--muted)}
.sup-cards{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 6px 6px 0;scrollbar-width:thin}
.sup-more{flex:none;min-height:40px;border:1px dashed var(--line);border-radius:10px;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;touch-action:manipulation}
.sup-more:hover{color:var(--text);border-color:var(--muted)}
.sup-card{background:var(--bg,#F3F5F4);border:1px solid var(--line);border-radius:10px;padding:9px 11px;cursor:pointer;display:flex;flex-direction:column;gap:4px;flex:none;transition:border-color .15s,box-shadow .15s}
.sup-card:hover,.sup-card:focus-visible{border-color:var(--brass);outline:none}
.sup-card.dragging{opacity:.5}
.sup-card.unread{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass) inset}
/* Quadro do Suporte com o estilo das Ideias e roadmap (docs/adr/0024): cada coluna no seu tom, cartões brancos por cima. */
.sup-col{--c:#7A8784;background:color-mix(in srgb,var(--c) 6%,var(--paper));border-color:color-mix(in srgb,var(--c) 18%,var(--line))}
.sup-col[data-status="2"]{--c:var(--t-blue)}.sup-col[data-status="3"]{--c:var(--brass)}.sup-col[data-status="4"]{--c:var(--t-green)}
.sup-col.over{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--card))}
.sup-col h2{color:var(--ink)}
.sup-col h2:before{content:'';flex:none;width:8px;height:8px;border-radius:50%;background:var(--c)}
.sup-col h2 b{font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--card));padding:1px 8px;border-radius:999px}
.sup-col h2 b:empty{display:none}
.sup-card{background:var(--card);border-radius:12px;padding:11px 13px;box-shadow:0 1px 2px rgba(22,33,31,.05);transition:border-color .15s,box-shadow .15s}
.sup-card:hover,.sup-card:focus-visible{border-color:var(--c,var(--brass));box-shadow:0 4px 12px rgba(22,33,31,.08)}
.sup-card.unread{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass) inset,0 4px 12px rgba(22,33,31,.06)}
.sup-more{background:color-mix(in srgb,var(--c,var(--muted)) 6%,var(--card))}
.sc-tags{display:flex;gap:6px;flex-wrap:wrap}
.sc-tag{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--line-2,#E6EAE8);color:var(--text)}
.sc-tag.k1{background:#FBE4DF;color:#9B2C22}
.sc-tag.k2{background:#E1ECFB;color:#2F4F8A}
.sc-tag.k3{background:#E3F2EC;color:#0B463F}
.sc-tag.task{background:#EDE8F7;color:#4B3B7A}
.sc-tag.high{background:#9B2C22;color:#fff}
.c1{--tag-bg:#E6EAE8;--tag-fg:#33403C}.c2{--tag-bg:#FBE4DF;--tag-fg:#9B2C22}.c3{--tag-bg:#FCE9D2;--tag-fg:#8A4B10}.c4{--tag-bg:#FBF1C7;--tag-fg:#6B5300}
.c5{--tag-bg:#DDF1E4;--tag-fg:#1D5E3A}.c6{--tag-bg:#D5EEF0;--tag-fg:#0E5560}.c7{--tag-bg:#E1ECFB;--tag-fg:#2F4F8A}.c8{--tag-bg:#EDE8F7;--tag-fg:#4B3B7A}
.sc-tag[class*=" c"]{background:var(--tag-bg);color:var(--tag-fg);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-board-actions{display:flex;gap:10px;flex-wrap:wrap}
.sup-tag-filter,.tag-pick{display:flex;flex-wrap:wrap;gap:8px}
.sup-tag-filter{margin:-4px 0 16px}
.tag-pick{margin-bottom:10px}
.tag-btn{min-height:40px;max-width:100%;padding:0 14px;border-radius:999px;border:1.5px solid transparent;background:var(--tag-bg,var(--card));color:var(--tag-fg,var(--text));font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;touch-action:manipulation;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag-btn[data-tag="0"]{border-color:var(--line)}
.tag-btn:hover{border-color:var(--tag-fg,var(--line))}
.tag-pick .tag-btn[aria-pressed="true"]:before{content:'✓ '}
.tag-btn[aria-pressed="true"]{border-color:var(--tag-fg,var(--brass));box-shadow:0 0 0 1px var(--tag-fg,var(--brass)) inset}
.tag-btn:focus-visible,.tag-color:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.tag-form{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg,#F3F5F4)}
.tag-form.hidden{display:none}
.tag-form-title{font-size:15px;margin:16px 0 8px}
.tag-colors{display:flex;flex-wrap:wrap;gap:8px}
.tag-color{width:40px;height:40px;border-radius:50%;border:2px solid #fff;background:var(--tag-bg);box-shadow:0 0 0 1px var(--line);cursor:pointer;touch-action:manipulation;padding:0}
.tag-color[aria-checked="true"]{box-shadow:0 0 0 2px var(--tag-fg)}
.tag-form-btns{display:flex;gap:8px;flex-wrap:wrap}
.tag-form .err:empty{display:none}
.tag-list{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column}
.tag-list li{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.tag-list li small{color:var(--muted)}
.tag-list-actions{display:flex;gap:8px;margin-left:auto}
@media(max-width:560px){.sup-board-actions{width:100%}.sup-board-actions .btn{flex:1;justify-content:center;text-align:center}.tag-btn,.tag-color{min-height:44px}.tag-color{width:44px;height:44px}.tag-list-actions{width:100%;margin-left:0}.tag-list-actions .btn{flex:1}}
.sc-new{font-size:11.5px;font-weight:700;color:var(--brass)}
.sc-title{font-weight:600;font-size:14.5px;line-height:1.3;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sc-meta{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sup-card .sc-tag{font-size:11px;padding:1px 7px}
.sc-foot{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
.sc-foot .late{color:#9B2C22;font-weight:700}
.sc-empty{color:var(--muted);font-size:13px;margin:4px}
.sup-linked{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:6px}
.sup-linked small{color:var(--muted)}
.sup-move{max-width:240px}
@media(max-width:900px){.sup-board{grid-template-columns:repeat(4,minmax(78vw,1fr))}.brand input.sup-search{max-width:none;flex-basis:100%;font-size:16px}}
.sup-linked .link-btn{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--brass);cursor:pointer;text-align:left}

/* ---------- Cobrança: por confirmar e dados de pagamento (docs/adr/0006) ---------- */
.mg-waiting{border-color:#EBCB82;background:#FFFBF0;margin-bottom:16px}
.mg-waiting h3{margin:0 0 4px;display:flex;align-items:center;gap:8px}
.mg-waiting h3 b{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#7A5410;color:#fff;font-size:12px;line-height:22px;text-align:center}
.mg-waiting-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.mg-waiting-list li{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #EBDDB8}
.mw-main{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px}
.mw-main span{color:var(--muted);font-size:13.5px}
.mw-amount{font-weight:700;white-space:nowrap}
.mw-amount small{font-weight:500;color:var(--muted)}
.mw-actions{display:flex;gap:8px;flex-wrap:wrap}
.mg-paysettings{margin-bottom:16px}
.mg-paysettings>summary{cursor:pointer;font-weight:700;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mg-paysettings>summary small{font-weight:500;color:var(--muted)}
.mg-paysettings[open]>summary{margin-bottom:14px}
.brand .mg-paysettings{padding-bottom:26px}
.mg-paysettings .field-row,.mg-paysettings .form-field{margin-bottom:16px}
.mg-paysettings .field-hint{margin:8px 0 0}
.mg-paysettings>.field-hint{margin:0 0 18px}
.mg-paysettings .btn{margin-top:2px}
.mg-paysettings .err:empty{display:none}

/* Conta alrevapro (ADR 0007): faixa a lembrar em que negócio está, e a escolha do negócio. */
.support-bar{display:flex;align-items:center;justify-content:center;gap:6px 14px;flex-wrap:wrap;padding:8px 16px;background:#0F5C54;color:#fff;font-size:13.5px;text-align:center}
.support-bar a{color:#BFE6D8;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:6px 2px}
.pick-card{width:480px}
.pick-search{display:flex;gap:8px;align-items:stretch;margin-bottom:14px}
.pick-search input{flex:1;min-width:0;width:auto}
.pick-search .btn{flex:0 0 auto}
.pick-list{list-style:none;margin:0;padding:0;max-height:min(56vh,460px);overflow:auto;border:1px solid var(--line);border-radius:var(--r)}
.pick-list li+li{border-top:1px solid var(--line)}
.pick-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:56px;padding:12px 16px;background:none;border:0;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.pick-item:hover,.pick-item:focus-visible{background:var(--bg,#F3F5F4)}
.pick-item.is-current{background:#E3F1EC}
.pick-name{font-weight:600;font-size:15px}
.pick-slug{font-size:13px;color:var(--muted)}
.pick-empty{text-align:center;color:var(--muted);font-size:14px;padding:18px 0}
.link-button{background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:14px;cursor:pointer;padding:10px 4px}
@media (max-width:760px){.pick-search .btn{min-height:44px}}

/* Equipa do negócio na plataforma: uma linha por pessoa, folha para adicionar e editar. */
.team-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-bottom:8px}
.team-head h2{margin:0 0 4px}
.team-head .section-sub{margin:0;max-width:60ch}
.team-head-btns{display:flex;gap:8px;flex-wrap:wrap}
.team-head-btns .btn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:560px){.team-head-btns{width:100%}.team-head-btns .btn{flex:1 1 auto}}
.team-list{list-style:none;margin:8px 0 0;padding:0}
/* Lugares da equipa face ao plano (docs/adr/0015): o número e, no limite, o aviso com «Mudar de plano». */
.team-seats-more{font-weight:700;color:var(--sage);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.team-seats{margin:8px 0 0;font-size:13.5px;color:var(--muted);max-width:60ch}
.team-seats.warn{color:#8A4B10;font-weight:600}
.team-full{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0 4px;padding:12px 14px;border-radius:12px;background:#FCE9D2;color:#5C3410;font-size:14px}
.team-full p{margin:0;flex:1 1 280px}
.card-panel:has(.team-list){overflow:visible}
.team-item{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:14px 2px;border-bottom:1px solid var(--line)}
.team-item.inactive .team-main{opacity:.6}
.team-photo{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper);color:var(--muted);font-weight:650;font-size:16px;border:1px solid var(--line);padding:0;position:relative}
.team-photo img{width:100%;height:100%;object-fit:cover}
button.team-photo{cursor:pointer}
.admin-who{display:flex;align-items:center;gap:10px}
.admin-who .team-photo{width:36px;height:36px;font-size:14px}
button.team-photo:hover::after,button.team-photo:focus-visible::after{content:"Foto";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;font-size:11px;font-weight:600}
.team-item>.team-photo+.team-main{flex:1 1 220px}
.team-main{min-width:0;flex:1 1 280px}
.team-name{font-weight:650;color:var(--ink);font-size:15px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.team-what{font-weight:500;font-size:13px;color:var(--muted)}
.team-email{font-size:14px;color:var(--text);margin-top:2px;overflow-wrap:anywhere}
.team-note{font-size:13px;color:var(--muted);margin-top:2px}
.team-state{font-size:13px;color:var(--muted);margin-top:4px}
.team-state .state-off.inline{display:inline;margin:0}
.team-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
/* O menu «⋯» abre para fora do cartão: sem isto o cartão cortava-o na última linha da lista. */
.brand .card-panel:has(.team-list){overflow:visible}
.team-more{position:relative}
.team-more>summary{list-style:none;cursor:pointer;min-width:40px;justify-content:center}
.team-more>summary::-webkit-details-marker{display:none}
.team-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column}
.team-menu button{background:none;border:0;text-align:left;font:inherit;font-size:14px;padding:11px 12px;border-radius:10px;cursor:pointer;color:var(--ink)}
.team-menu button:hover,.team-menu button:focus-visible{background:var(--bg,#F3F5F4)}
.team-menu button.danger{color:var(--oxblood)}
.person-sheet{width:860px}
/* Folha da pessoa na horizontal: quem é e o que faz à esquerda, o acesso à direita; uma coluna em ecrãs estreitos. */
.person-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:4px 32px;align-items:start}
.person-col{min-width:0}
.person-col.hidden{display:none}
.person-what,.person-role{border:0;margin:0 0 14px;padding:0;display:grid;gap:8px}
.choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);cursor:pointer}
.choice:has(input:checked){border-color:var(--brass);background:#F1F8F6}
.choice input{margin-top:3px;flex:0 0 auto;accent-color:var(--brass)}
.choice span{display:flex;flex-direction:column;gap:2px}
.choice small{color:var(--muted);font-size:13px;line-height:1.4}
@media (max-width:760px){
  .team-head .btn{width:100%;justify-content:center;min-height:44px}
  .team-actions{width:100%;justify-content:stretch}
  /* Os botões de cada pessoa numa só linha: «Ficha», «Acesso»/«Dar acesso» a repartir a largura e o «⋯» estreito. */
  .team-actions{flex-wrap:nowrap}
  .team-actions>.btn{flex:1 1 0;min-width:0;width:auto}
  .team-more{flex:0 0 52px}
  .team-actions .btn,.team-more>summary{min-height:44px;justify-content:center}
  .team-more>summary{width:100%}
  .team-menu{left:0;right:0}
}

/* Guia de ajuda do backoffice (ADR 0006): fundo escurecido com desfoque leve, buraco nítido no que se explica, balão sólido. */
.help-btn{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer;position:relative}
.help-btn>span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--brass);color:#fff;font-size:13px;font-weight:700}
.help-btn.has-new::after{content:'';position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--oxblood);box-shadow:0 0 0 2px var(--card)}
.help-btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
@media (max-width:760px){.help-btn{padding:0 10px}.help-btn-text{display:none}}

.help-layer{position:fixed;inset:0;z-index:1000;pointer-events:none}
/* O desfoque fica parado (sem animar o recorte), numa camada própria do GPU: é o desfoque animado que pesava. */
.help-shade{position:absolute;inset:0;background:rgba(23,19,16,.52);backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);pointer-events:auto;transform:translateZ(0)}
.help-ring{position:absolute;left:0;top:0;border:2px solid var(--brass);border-radius:12px;box-shadow:0 0 0 4px rgba(15,92,84,.18);transition:transform .22s ease,width .22s ease,height .22s ease;will-change:transform;pointer-events:none}

.help-pop{position:absolute;width:340px;max-width:calc(100vw - 24px);background:var(--card);color:var(--text);border-radius:var(--r-lg);box-shadow:0 18px 50px rgba(0,0,0,.28);padding:18px 18px 14px;pointer-events:auto;outline:none;animation:helpIn .22s ease}
.help-pop.is-center{left:50% !important;top:50% !important;transform:translate(-50%,-50%);width:400px}
.help-pop.is-sheet{left:0 !important;right:0;bottom:0;top:auto !important;width:auto;max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:18px 18px calc(16px + env(safe-area-inset-bottom));transform:none}
@keyframes helpIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.help-pop.is-center{animation:none}
.help-count{font-size:12px;font-weight:600;color:var(--brass);letter-spacing:.02em;margin-bottom:4px}
.help-title{font-size:17px;margin:0 0 6px;color:var(--ink)}
.help-text{font-size:14.5px;line-height:1.55;margin:0 0 10px}
.help-safe{font-size:12.5px;color:var(--muted);background:var(--sage-lt);border-radius:10px;padding:8px 10px;margin:0 0 10px}
.help-actions{display:flex;align-items:center;gap:8px}
.help-gap{flex:1}
.help-link{background:none;border:0;padding:10px 4px;font:inherit;font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.help-pop .btn,.help-invite .btn{min-height:40px}
@media (max-width:760px){.help-pop .btn,.help-invite .btn{min-height:44px}}

.help-invite{position:fixed;right:20px;bottom:20px;z-index:1001;width:340px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 18px 50px rgba(0,0,0,.22);padding:16px 16px 10px;animation:helpIn .25s ease}
.help-invite-text{margin:0 0 8px;font-size:14.5px;line-height:1.5}
.help-invite.is-welcome{left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:440px;padding:26px 24px 16px;animation:none}
.help-welcome-title{font-size:21px;margin:0 0 8px;color:var(--ink)}
.help-welcome-back{position:fixed;inset:0;z-index:1000;background:rgba(23,19,16,.45);backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px)}
@media (max-width:760px){
  .help-invite{left:0;right:0;bottom:0;width:auto;max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:16px 16px calc(12px + env(safe-area-inset-bottom))}
  .help-invite.is-welcome{left:0;right:0;top:auto;bottom:0;transform:none;width:auto}
}

.help-panel-wrap{position:fixed;inset:0;z-index:999;background:rgba(23,19,16,.35);display:flex;justify-content:flex-end}
.help-panel-wrap.hidden{display:none}
.help-panel{width:400px;max-width:100%;height:100%;overflow:auto;background:var(--card);padding:20px 20px 28px;outline:none;animation:helpSide .22s ease;box-shadow:-10px 0 40px rgba(0,0,0,.15)}
@keyframes helpSide{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.help-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.help-panel-head h2{font-size:18px;margin:0}
.help-panel-head .modal-close{position:static}
.help-progress{margin:0 0 16px}
.help-progress small{color:var(--muted);font-size:13px}
.help-bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-bottom:6px}
.help-bar span{display:block;height:100%;background:var(--brass);border-radius:6px;transition:width .3s ease}
.help-group{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px}
.help-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.help-item{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:52px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:none;text-align:left;font:inherit;cursor:pointer;color:var(--ink)}
.help-item:hover,.help-item:focus-visible{border-color:var(--brass);background:#F1F8F6;outline:none}
.help-visit .help-item{border-color:var(--brass);background:#F1F8F6}
.help-item-text{display:flex;flex-direction:column;gap:2px}
.help-item-text strong{font-size:14.5px}
.help-item-text small{font-size:13px;color:var(--muted)}
.help-check{flex:0 0 20px;height:20px;border-radius:50%;border:2px solid var(--line-input);margin-top:1px}
.help-item.is-done .help-check,.help-guide.is-done .help-check{border-color:var(--brass);background:var(--brass) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5'><path d='M5 12l5 5L20 7'/></svg>") center/12px no-repeat}
.help-foot{font-size:13.5px;color:var(--muted);margin:20px 0 0}
.help-search{width:100%;min-height:46px;margin:0 0 4px;font-size:16px}
.help-setup{border-color:var(--brass);background:#F1F8F6;margin-top:10px}
.help-area>summary{list-style:none;position:relative;padding-right:36px}
.help-area>summary::-webkit-details-marker{display:none}
.help-area>summary:after{content:'';position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .15s}
.help-area[open]>summary:after{transform:translateY(-30%) rotate(-135deg)}
.help-area>.help-list{margin:6px 0 8px 12px}
.help-where{font-weight:600}
.help-go{display:inline-block;margin:0 0 10px 44px;font-size:13.5px;font-weight:600;color:var(--brass)}
.help-all{text-decoration:none;margin-top:18px}
.help-empty{color:var(--muted);font-size:14px;margin:14px 0}
.feat-intro{color:var(--muted);max-width:62ch;margin:0 0 20px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.feat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.feat-card.is-off{background:transparent;border-style:dashed}
.feat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.feat-head h2{margin:0;font-size:17px;text-transform:none;letter-spacing:0}
.feat-state{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;background:#E3F2EC;color:#0B463F;white-space:nowrap}
.feat-card.is-off .feat-state{background:var(--line);color:var(--muted)}
.feat-card ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:14px;color:var(--text);line-height:1.45}
.feat-card .btn{margin-top:auto;align-self:flex-start;min-height:44px}
@media(max-width:640px){.feat-card .btn{align-self:stretch;justify-content:center;text-align:center}}
/* «Como fazer…»: cada guia abre no painel como passos numerados */
.help-guide>summary{list-style:none}
.help-guide>summary::-webkit-details-marker{display:none}
.help-guide[open]>summary{border-color:var(--brass);background:#F1F8F6}
.help-steps{margin:8px 0 6px;padding:0 4px 0 30px;display:grid;gap:8px;font-size:14px;line-height:1.5;color:var(--text)}
.help-steps strong{display:block;color:var(--ink)}
@media (max-width:760px){
  .help-panel-wrap{align-items:flex-end}
  .help-panel{width:100%;height:auto;max-height:88vh;border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:calc(24px + env(safe-area-inset-bottom));animation:helpIn .22s ease}
}

/* Quem pede menos movimento no sistema vê o guia sem animações. */
@media (prefers-reduced-motion: reduce){
  .help-ring,.help-bar span{transition:none}
  .help-pop,.help-invite,.help-panel{animation:none}
}
.help-layer.no-motion .help-ring{transition:none}

/* Subscrições (docs/adr/0008): estado numa etiqueta e a página de cada cliente */
.mg-state{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;background:var(--line-2);color:var(--muted)}
.mg-state.k-ok{background:var(--mint);color:#0B463F}
.mg-state.k-trial{background:#E3EEF6;color:#1E4B6E}
.mg-state.k-due,.mg-state.k-waiting{background:#FCEFD2;color:#7A5410}
.mg-state.k-late{background:#F6D9D5;color:var(--oxblood)}
.brand .sp-head{flex-wrap:wrap;margin-bottom:18px}
.sp-state{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.sp-state p{margin:0;font-size:15px;font-weight:500;color:var(--ink)}
.sp-state.k-late{border-color:#E9A8A2;background:#FDF4F2}
.sp-state.k-trial{border-color:#C9DCEA;background:#F3F8FC}
.sp-state.k-due,.sp-state.k-waiting{border-color:#EBCB82;background:#FFFBF0}
.sp-state.k-ok{border-color:#BFE6D8;background:#F3FBF8}
.sp-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start}
.sp-cols>.card-panel{margin:0}
.sp-contact{grid-template-columns:repeat(2,minmax(0,1fr))}
.mg-info b small{font-weight:400;color:var(--muted);font-size:12px}
.sp-months{display:flex;gap:6px;flex-wrap:wrap}
.sp-months>div{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11.5px;color:var(--muted)}
.sp-months>div.now small{color:var(--brass);font-weight:600}
.sp-danger{display:flex;gap:8px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line-2)}
.sp-danger+.confirm-inline,.sp-danger~.confirm-inline{margin-top:12px}
.extras-head{margin-top:28px}
@media(max-width:900px){.sp-cols{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.sp-contact{grid-template-columns:minmax(0,1fr)}.brand .sp-head .mg-actions{width:100%}.brand .sp-head .mg-actions .btn{flex:1}}

/* Opção ainda por terminar (ADR 0010, fases 2 e 3): guarda-se já, funciona quando chegar. */
.soon{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--sage-lt);color:var(--muted);font-size:11.5px;font-weight:600}

/* Painel de gestão (Gestão → Resumo, 2026-10-31): período, totais com variação, gráficos SVG, categorias, negócios e a tabela. */
.dash{margin-bottom:26px}
.dash-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;margin-bottom:16px}
.dash-bar h2{margin:0;font-size:24px;letter-spacing:-.02em;color:var(--ink)}
.dash-bar p{margin:2px 0 0;color:var(--muted);font-size:14px}
.dash-period{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.dash-period button{border:none;background:none;padding:8px 12px;border-radius:9px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;min-height:36px}
.dash-period button.active{background:var(--ink);color:#fff}
.dash-period select{border:none;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);min-height:36px;padding:0 8px;width:auto}
.dash-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}
.dash-kpi{padding:16px;border-radius:14px;border:1px solid var(--line);background:var(--card);min-width:0}
.dash-kpi span{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.dash-kpi b{display:block;font-size:24px;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin:6px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-kpi small{display:block;font-size:12px;color:var(--muted);line-height:1.4}
.dash-kpi.pos b{color:var(--sage, #2F7A6B)}
.dash-kpi.neg b{color:var(--oxblood, #A8412F)}
.dash-delta{font-style:normal;font-weight:700;margin-right:4px}
.dash-delta.up{color:var(--sage, #2F7A6B)}
.dash-delta.down{color:var(--oxblood, #A8412F)}
.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.dash-card{margin:0;padding:20px 22px}
.dash-card.wide{grid-column:1 / -1}
.dash-card-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin-bottom:12px}
.dash-card-head h3{margin:0;font-size:16px;color:var(--ink)}
.dash-big{font-size:20px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.dash-big small{font-size:13px;font-weight:500;color:var(--muted)}
.dash-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--muted)}
.dash-legend span::before{content:'';display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.dash-legend .rev::before{background:#0F5C54}
.dash-legend .exp::before{background:#E3A89C}
.dash-legend .res::before{background:#C6913E;height:3px;border-radius:2px;vertical-align:3px}
.dash-legend .new::before{background:#3FA98A}
.dash-legend .out::before{background:#A8412F}
.dash-chart{display:block;width:100%;height:220px}
.dash-chart.small{height:150px}
.dash-chart .axis{stroke:var(--line);stroke-width:1}
.dash-chart rect.rev{fill:#0F5C54}
.dash-chart rect.exp{fill:#E3A89C}
.dash-chart polyline.res{fill:none;stroke:#C6913E;stroke-width:2.5;vector-effect:non-scaling-stroke}
.dash-chart circle.res{fill:#fff;stroke:#C6913E;stroke-width:2;vector-effect:non-scaling-stroke}
.dash-chart .mrr{fill:none;stroke:#0F5C54;stroke-width:2.5;vector-effect:non-scaling-stroke}
.dash-chart .mrr-area{fill:#BFE6D8;opacity:.6}
.dash-xlabels{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));padding:4px 28px 0;font-size:11.5px;color:var(--muted);text-align:center;text-transform:capitalize}
.dash-xlabels span{overflow:hidden;white-space:nowrap}
.dash-xlabels .now{color:var(--ink);font-weight:700}
.dash-moves{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));align-items:end;gap:4px;height:130px;padding:0 28px}
.dash-move{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%}
.dash-move i{display:block;width:min(12px,40%);min-height:2px;border-radius:3px 3px 1px 1px}
.dash-move i.new{background:#3FA98A}
.dash-move i.out{background:#A8412F}
.dash-cats,.dash-clients{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dash-cats li{display:grid;grid-template-columns:minmax(90px,1.2fr) minmax(60px,2fr) auto 38px;align-items:center;gap:10px;font-size:13.5px}
.dash-cats li span{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-cats li b{font-variant-numeric:tabular-nums;color:var(--ink);font-size:13.5px}
.dash-cats li small{color:var(--muted);text-align:right}
.dash-cat-bar{height:8px;border-radius:4px;background:var(--paper);overflow:hidden}
.dash-cat-bar i{display:block;height:100%;background:#0F5C54;border-radius:4px}
.dash-clients li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.dash-clients li:last-child{border-bottom:none;padding-bottom:0}
.dash-clients small{grid-column:1;color:var(--muted);font-size:12.5px}
.dash-clients b{grid-row:1 / span 2;grid-column:2;align-self:center;font-variant-numeric:tabular-nums;color:var(--ink)}
.dash-more{margin:10px 0 0;font-size:13px;color:var(--muted)}
.dash-table tr.now td{background:color-mix(in srgb,var(--sage-lt) 50%,transparent)}
.dash-table tfoot th{border-top:2px solid var(--ink);font-weight:700;padding-top:10px}
.brand table.data.dash-table{min-width:0;width:100%}
.dash-sub{margin-top:8px}
@media(max-width:1200px){.dash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.dash-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
  .dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .dash-kpi b{font-size:20px}
  .dash-card{padding:16px}
  .dash-opt{display:none}
  .dash-xlabels{font-size:10px;padding:4px 8px 0}
  .dash-moves{padding:0 8px}
  .dash-period{width:100%}
  .dash-period button{flex:1}
}

/* Integrações → Banco: os passos para ligar a Enable Banking. */
.int-steps{margin:0 0 18px;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.6}
.int-steps code{font-size:12.5px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:1px 6px;word-break:break-all;color:var(--ink)}
.integration textarea.ik-key{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}

/* Gastos e banco (2026-10-31): contas com o saldo, o mês do banco (entradas, saídas, seis meses) e os movimentos. */
.mg-pos{color:var(--sage, #2F7A6B);font-weight:650}
.mg-neg{color:var(--oxblood, #A8412F);font-weight:650}
.fin-total{display:flex;align-items:baseline;gap:10px;margin:2px 0 16px}
.fin-total b{font-size:36px;font-weight:700;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.fin-total span{color:var(--muted);font-size:14px}
.fin-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.fin-card{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.fin-card.warn{border-color:color-mix(in srgb,var(--brass) 60%,var(--line))}
.fin-card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fin-card-top b{display:block;font-size:15px;color:var(--ink)}
.fin-card-top small{display:block;font-size:12.5px;color:var(--muted)}
.fin-bank{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--ink);color:#fff;font-weight:700;font-size:16px;flex:0 0 auto}
.fin-balance{font-size:24px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.fin-meta{font-size:12.5px;color:var(--muted)}
.fin-alert{margin:6px 0 0;font-size:13px;color:var(--ink);background:color-mix(in srgb,var(--brass) 14%,var(--card));border-radius:8px;padding:8px 10px}
.fin-alert a{font-weight:600;color:var(--ink);text-decoration:underline}
.fin-card-actions{display:flex;gap:8px;margin-top:10px}
/* Uma conta por linha: nome, saldo e ações lado a lado (o nome do titular é comprido e encolhe com reticências). */
.fin-cards{display:flex;flex-direction:column;gap:8px}
.fin-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 24px;padding:12px 16px}
.fin-card-top{margin:0;min-width:0}
.fin-card-top>div{min-width:0}
.fin-card-top b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-amount{text-align:right}
.fin-amount .fin-balance{font-size:20px}
.fin-card .fin-card-actions{margin:0}
.fin-card .fin-alert{grid-column:1/-1;margin:0}
@media (max-width:760px){.fin-card{grid-template-columns:minmax(0,1fr) auto}.fin-card .fin-card-actions{grid-column:1/-1}}
.fin-nav{display:flex;align-items:center;gap:10px}
.fin-nav .mg-title{margin:0;min-width:150px;text-align:center}
.fin-pill{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--brass) 16%,var(--card));color:var(--ink)}
.fin-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}
.fin-chart{display:flex;align-items:flex-end;gap:12px;height:150px;padding:8px 0 4px;margin:0 0 18px;position:relative}
.fin-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.fin-col span{font-size:12px;color:var(--muted);text-transform:capitalize}
.fin-col.now span{color:var(--ink);font-weight:700}
.fin-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}
.fin-bars i{display:block;width:min(18px,40%);border-radius:5px 5px 2px 2px;min-height:2px}
.fin-bars i.in{background:var(--sage, #2F7A6B)}
.fin-bars i.out{background:color-mix(in srgb,var(--oxblood, #A8412F) 75%,var(--card))}
.fin-legend{position:absolute;top:0;right:0;display:flex;gap:12px;font-size:12px;color:var(--muted)}
.fin-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.fin-legend .in::before{background:var(--sage, #2F7A6B)}
.fin-legend .out::before{background:color-mix(in srgb,var(--oxblood, #A8412F) 75%,var(--card))}
.fin-filter{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--paper);border:1px solid var(--line);margin:0 0 10px;flex-wrap:wrap}
.fin-filter button{border:none;background:none;padding:7px 12px;border-radius:9px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;min-height:36px}
.fin-filter button.active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.fin-moves{list-style:none;margin:0;padding:0}
.fin-move{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:6px 14px;padding:12px 4px;border-top:1px solid var(--line)}
.fin-move:first-child{border-top:none}
.fin-move.ignored{opacity:.55}
.fin-day{display:flex;flex-direction:column;align-items:center;font-weight:700;font-size:17px;color:var(--ink);line-height:1.1}
.fin-day small{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase}
.fin-what{min-width:0}
.fin-what b{display:block;font-size:15px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-what small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}
.fin-amount.in{color:var(--sage, #2F7A6B)}
.fin-amount.out{color:var(--ink)}
.fin-act{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:180px}
.fin-tag{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);color:var(--muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-tag.ok{background:var(--sage-lt);border-color:transparent;color:var(--sage, #2F7A6B)}
.fin-x{border:none;background:none;color:var(--muted);cursor:pointer;width:32px;height:32px;border-radius:8px}
.fin-x:hover{background:var(--paper);color:var(--ink)}
.fin-choice{display:flex;flex-wrap:wrap;gap:6px 18px;margin:4px 0 12px}
@media(max-width:700px){
  .fin-kpis{grid-template-columns:minmax(0,1fr)}
  .fin-move{grid-template-columns:40px minmax(0,1fr) auto}
  .fin-act{grid-column:2 / -1;justify-content:flex-start;min-width:0}
  .fin-act .btn{min-height:40px}
  .fin-total b{font-size:30px}
}

/* Grupos de serviços nas Definições (ADR 0010). */
.svc-groups{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:0 0 24px}
.svc-order-hint{margin:0 0 12px}
.svc-groups-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.svc-groups-head h4{margin:0}
.svc-groups-empty{color:var(--muted);font-size:14px;margin:8px 0 0}
.svc-group-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.svc-group-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.svc-group-name{font-weight:600;flex:1;min-width:0}
.svc-group-list small{color:var(--muted)}
.confirm-inline{margin:10px 0 0;padding:12px;border-radius:10px;background:#FBEFD9;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.confirm-inline p{margin:0;flex:1 1 100%;font-size:14px}

/* Vários serviços na «Nova marcação» (ADR 0010). */
.more-services #mMoreList{display:grid;gap:8px;margin-bottom:8px}
.more-services #mMoreList:empty{margin:0}
.more-svc{display:flex;gap:8px;align-items:center}
.more-svc select{flex:1;min-width:0}
/* Marcações da mesma visita na agenda. */
.tag.tag-visit{background:rgba(15,92,84,.14);color:var(--ink)}

/* ---------- Mensagens personalizáveis (docs/adr/0013): editor da plataforma e leitura do gestor ---------- */
.msg-page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:18px}
.msg-page-head h1{margin:0 0 4px}
.msg-page-head .section-sub{max-width:640px;margin:0}
.msg-pick{min-width:240px}
.msg-editor{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(0,1.05fr);gap:20px;align-items:start}
.msg-editor[aria-busy=true]{opacity:.6}
.msg-list{display:flex;flex-direction:column;gap:6px;position:sticky;top:16px}
.msg-item{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 12px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--card);font:inherit;color:var(--text);cursor:pointer;touch-action:manipulation}
.msg-item:hover{border-color:var(--muted)}
.msg-item.active{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass) inset}
.msg-item-name{font-weight:600;font-size:14.5px}
.msg-item-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted)}
.msg-chan{font-weight:700}
.msg-state.s-personalizado,.msg-status.s-personalizado{color:var(--brass)}
.msg-dirty{color:#8A4B10;font-weight:700}
.msg-form{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;min-width:0}
.msg-form-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.msg-form-head h2{margin:0;font-size:18px}
.msg-status{font-size:12.5px;font-weight:700;color:var(--muted)}
.msg-form .section-sub{margin:4px 0 14px}
.msg-form textarea{width:100%;resize:vertical;line-height:1.5}
.msg-tokens{margin-top:6px}
.msg-token-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.msg-token{min-height:36px;padding:0 12px;border-radius:999px;border:1px dashed var(--line);background:var(--bg,#F3F5F4);font:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;touch-action:manipulation}
.msg-token:hover{border-color:var(--brass);color:var(--brass)}
.msg-errors{margin:12px 0 0;padding:10px 12px 10px 28px;border-radius:10px;background:#FBE4DF;color:#9B2C22;font-size:14px}
.msg-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.msg-form .confirm-inline{margin-top:12px}
.msg-form .phone-field{margin:8px 0}
.msg-updated{margin:12px 0 0;font-size:12.5px;color:var(--muted)}
.msg-preview{position:sticky;top:16px;min-width:0}
.msg-preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.msg-counter{font-size:12.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.msg-counter.over{color:#9B2C22}
.msg-subject,.notif-subject{margin:0 0 8px;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.msg-subject span,.notif-subject span{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-right:6px}
/* O email é o HTML que sai: as regras da página não lhe tocam (os estilos dele são todos em linha). */
.mail-frame,.mail-frame *{all:revert}
.mail-frame{display:block;max-height:620px;overflow:auto;overscroll-behavior:contain;border:1px solid #D9E0DD;border-radius:12px;background:#F3F5F4}
.mail-frame a{pointer-events:none}
.sms-phone{padding:18px 14px;border-radius:22px;background:#E9EDEB;border:1px solid var(--line)}
.sms-bubble{max-width:92%;padding:10px 14px;border-radius:16px 16px 16px 4px;background:#fff;color:#16211F;font-size:14.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.notif-texts{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.notif-texts h3{margin:0 0 4px;font-size:16px}
.notif-texts .btn{margin-top:10px}
.notif-text{border:1px solid var(--line);border-radius:12px;padding:0 14px;margin-top:10px;background:var(--card)}
.notif-text summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-height:48px;padding:12px 0;cursor:pointer}
.notif-text summary small{flex-basis:100%;color:var(--muted)}
.notif-chan{font-size:12px;font-weight:700;color:var(--muted)}
.notif-text[open]{padding-bottom:14px}
@media(max-width:1180px){.msg-editor{grid-template-columns:200px minmax(0,1fr)}.msg-preview{grid-column:1/-1;position:static}}
@media(max-width:760px){
  .msg-editor{grid-template-columns:minmax(0,1fr)}
  .msg-list{position:static;flex-direction:row;overflow-x:auto;padding-bottom:4px}
  .msg-item{flex:0 0 auto;min-width:150px}
  .msg-actions .btn{flex:1 1 calc(50% - 8px);justify-content:center;text-align:center}
  .msg-form input,.msg-form textarea{font-size:16px}
}

/* Filtro da lista de negócios na plataforma (ativos, suspensos, todos). */
.tenant-filter{margin:4px 0 14px}
.tenant-filter .muted{margin-left:4px;font-weight:500}

/* O seu telemóvel (plataforma → Equipa): código da app com QR e os telemóveis ligados. */
.phone-link{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.phone-link h3{margin:0;font-size:17px}
.phone-code{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:12px 0}
.phone-code img{border-radius:12px;background:#fff;border:1px solid var(--line)}
.phone-digits{font-size:28px;font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums;margin:0 0 4px}
.phone-devices{list-style:none;margin:8px 0 0;padding:0}
.phone-devices li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.phone-devices li span small{display:block;color:var(--muted);font-size:13px}

/* Tema no menu do nome: três opções lado a lado, a escolhida em destaque. */
.user-menu-pop .um-theme{margin:4px 0 0;padding:8px 6px 4px;border-top:1px solid var(--line)}
.user-menu-pop .um-theme-label{display:block;font-size:12px;font-weight:600;color:var(--muted);padding:0 6px 6px}
.user-menu-pop .um-theme-label b{font-weight:600;color:var(--text)}
.user-menu-pop .um-theme-opts{display:flex;gap:4px;padding:3px;border-radius:10px;background:var(--paper)}
.user-menu-pop .um-theme-opts button{flex:1;justify-content:center;padding:8px 6px;min-height:36px;color:var(--muted);border-radius:7px}
.user-menu-pop .um-theme-opts .icon{width:18px;height:18px;margin:0;color:currentColor}
.user-menu-pop .um-theme-opts button:hover{background:var(--line-2)}
.user-menu-pop .um-theme-opts button[aria-pressed="true"]{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}

/* Lançador de produtos da plataforma (ADR 0021), como o das apps da Zoho: ícone de cor por produto e grelha para trocar. */
.prod-switch{position:relative;margin:4px 8px 12px}
.prod-switch summary{list-style:none;display:flex;align-items:center;gap:11px;padding:8px 8px 8px 8px;border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;min-height:56px;transition:border-color .15s,box-shadow .15s}
.prod-switch summary::-webkit-details-marker{display:none}
.prod-switch summary:hover,.prod-switch[open] summary{border-color:var(--brass);box-shadow:0 0 0 3px rgba(var(--accent-2-rgb),.15)}
.prod-name small{display:block;font-size:11px;color:var(--muted);font-weight:600;line-height:1.1;letter-spacing:.02em}
.prod-name b{display:block;font-size:16px;line-height:1.2}
.prod-grid{margin-left:auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--muted)}
.prod-grid svg{width:16px;height:16px;fill:currentColor}
.prod-switch[open] .prod-grid,.prod-switch summary:hover .prod-grid{background:var(--paper-2);color:var(--ink)}
.app-tile{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none;color:#fff;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12)}
.app-tile svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.app-tile.t-book{background:#0F5C54}
.app-tile.t-class{background:#C13B2B}
.prod-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:30;width:300px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px -16px rgba(0,0,0,.3);padding:12px}
.prod-menu-title{margin:2px 4px 10px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.prod-apps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prod-apps a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:14px 8px 12px;border-radius:12px;border:1px solid transparent;color:var(--ink);text-decoration:none}
.prod-apps a .app-tile{width:48px;height:48px;border-radius:14px}
.prod-apps a .app-tile svg{width:26px;height:26px}
.prod-apps a b{font-size:14px}
.prod-apps a small{font-size:11.5px;color:var(--muted);line-height:1.3}
.prod-apps a:hover{background:var(--paper-2)}
.prod-apps a.on{border-color:var(--line);background:var(--paper-2)}
.prod-apps a.on b::after{content:" ✓";color:var(--brass)}
.class-settings{display:grid;gap:16px;max-width:520px}
.class-settings .btn{justify-self:start;min-width:140px}
.class-settings input:not([type=checkbox]){width:100%;max-width:200px;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:16px;background:var(--card);color:var(--ink);display:block;margin:6px 0 4px}
.class-settings .form-field small{display:block}
#professores,#definicoes{margin-top:16px}
.class-settings .switch-row small{display:block;font-weight:400;color:var(--muted)}

/* Na barra de cima, ao lado do logótipo: sempre à vista, também no telemóvel. */
.prod-switch.prod-top{margin:0 0 0 14px;padding-left:14px;border-left:1px solid var(--line)}
.prod-top summary{min-height:40px;padding:3px 6px 3px 3px;gap:8px;border-color:transparent;background:transparent;border-radius:10px}
.prod-top summary:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.prod-top summary:focus:not(:focus-visible){outline:none;box-shadow:none}
.prod-top summary:hover,.prod-top[open] summary{background:var(--paper-2);box-shadow:none;border-color:transparent}
.prod-top .app-tile{width:28px;height:28px;border-radius:8px}
.prod-top .app-tile svg{width:16px;height:16px}
.prod-top .prod-name{display:flex;align-items:baseline;gap:5px;white-space:nowrap}
.prod-top .prod-name small{display:inline;font-size:15px;font-weight:500;color:var(--muted);letter-spacing:0}
.prod-top .prod-name b{display:inline;font-size:15px}
.prod-top .prod-grid{width:28px;height:28px}
.prod-top .prod-menu{left:14px}
@media (max-width:600px){.prod-switch.prod-top{margin-left:6px;padding-left:6px;min-width:0}.prod-top .prod-name{display:none}.prod-top summary{gap:4px}.prod-top .prod-menu{position:fixed;left:12px;right:12px;top:64px;width:auto}}
.class-row-actions{white-space:normal;text-align:right}
.class-row-actions>*{margin-left:8px}
.class-row-actions .confirm-inline{display:block;margin-top:8px}
.class-row-actions .confirm-inline.hidden,.class-row-actions .hidden{display:none}
/* Ícone do produto no topo (alrevapro Class), em vez do símbolo da marca. */
.brand-app{display:block;width:30px;height:30px;flex:0 0 auto;border-radius:8px}
/* Plataforma: Visão geral e Negócios com os dois produtos juntos (docs/adr/0024). */
.ov-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ov-head .home-head{margin-bottom:18px}
.ov-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 16px}
.ov-kpis .kpi-card b{font-size:28px}
.kpi-card.is-bad b{color:var(--oxblood)}
.kpi-card em{font-style:normal;font-weight:650}
.up{color:#1E7B4F}.down{color:var(--oxblood)}
.ov-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.ov-g2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.ov-g3 .card-panel,.ov-g2 .card-panel{margin:0}
.ov-g3 .section-head h2,.ov-g2 .section-head h2,.ov-chart-head h2{font-size:17px;margin:0}
.ov-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ov-shortcuts a{display:block;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);transition:border-color .15s}
.ov-shortcuts a:hover{border-color:var(--brass)}
.ov-shortcuts b{display:block;font-size:14px;color:var(--ink);font-weight:650}
.ov-shortcuts small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.ov-shortcuts a.is-alert{border-color:color-mix(in srgb,var(--oxblood) 40%,var(--line))}
.ov-foot{margin:14px 0 0;font-size:13px;color:var(--muted)}
.ov-foot b{color:var(--ink)}
.ov-rank{list-style:none;margin:0;padding:0}
.ov-rank li+li{border-top:1px solid var(--line-2)}
.ov-rank a{display:flex;justify-content:space-between;gap:12px;padding:11px 2px;font-size:14px}
.ov-rank b{color:var(--ink);font-weight:600}
.ov-rank span{color:var(--muted);white-space:nowrap}
.ov-chart-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.brand .ov-chart-head .section-sub,.brand .ov-g3 .section-sub,.brand .ov-g2 .section-sub{margin:4px 0 8px}
.ov-chart-big{text-align:right}
.ov-chart-big b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.ov-chart-big small{font-size:12.5px;font-weight:600}
.ov-range{margin:10px 0 6px}
.ov-chart{height:220px}
.ov-chart svg{width:100%;height:100%;overflow:visible}
.ov-chart .g line{stroke:var(--line);stroke-width:1}
.ov-chart text{font-size:11px;fill:var(--muted);font-family:inherit}
.ov-chart{color:var(--brass)}
.ov-chart .a{fill:url(#mrrFill)}
.ov-chart circle.p{fill:var(--card);stroke:var(--brass);stroke-width:2;vector-effect:non-scaling-stroke}
.ov-chart .l{fill:none;stroke:var(--brass);stroke-width:2;vector-effect:non-scaling-stroke}
.ov-chart circle{fill:var(--brass)}
.ov-alerts{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.ov-alerts li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:12px}
.ov-alerts b{display:block;font-size:14px;color:var(--ink);font-weight:650}
.ov-alerts small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.ov-alerts a{font-size:13px;font-weight:650;white-space:nowrap}
.al-dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--muted)}
.al-bad .al-dot{background:var(--oxblood)}
.al-warn .al-dot{background:#B7791F}
.al-good .al-dot{background:#1E7B4F}
.ov-funnel{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:12px}
.ov-funnel li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;font-size:14px}
.ov-funnel b{color:var(--ink)}
.ov-funnel i,.ov-bars i,.ov-meter{grid-column:1/-1;display:block;height:8px;border-radius:4px;background:var(--line-2);overflow:hidden}
.ov-funnel em,.ov-bars em,.ov-meter em{display:block;height:100%;width:var(--w);background:var(--brass);border-radius:4px}
.ov-funnel small{grid-column:1/-1;font-size:12px;color:var(--muted)}
.ov-bars{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.ov-bars li{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.ov-bars li>i{grid-column:auto}
.ov-bars span{display:flex;align-items:center;gap:4px;min-width:0}
.ov-bars small{color:var(--muted)}
.ov-bars b{font-variant-numeric:tabular-nums;color:var(--ink)}
.ov-bars em.class{background:#C13B2B}
.ov-sub-title{margin:16px 0 0;font-size:12.5px;color:var(--muted);font-weight:600}
.dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--brass)}
.dot.class{background:#C13B2B}
.ov-cost{display:grid;grid-template-columns:1fr auto;gap:10px 12px;margin:10px 0 14px;font-size:14px}
.ov-cost dt{color:var(--text)}.ov-cost dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.ov-cost .neg{color:var(--oxblood)}
.ov-cost .tot{padding-top:10px;border-top:1px solid var(--line);font-size:16px;font-weight:700;color:var(--ink)}
.ov-meter{margin-bottom:8px}
/* Plano financeiro e sócios (docs/adr/0024): os números do protótipo com as cores da plataforma. */
.fp{--fp-brand:var(--brass);--fp-mint:#3FA98A;--fp-neg:var(--oxblood);--fp-warn:#B7791F;--fp-ink:var(--ink);--fp-c1:var(--brass);--fp-c2:#3FA98A;--fp-c3:#7CC7AE;--fp-c4:#2F6FB0;--fp-c5:#B07A2A}
.fp-saved{font-size:13px;color:var(--muted)}
.fp-view>.card-panel,.fp-view>.ov-g2{margin-bottom:16px}
.fp-month{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:14px 18px}
.fp-month .field-label{margin:0;white-space:nowrap}
.fp-month input[type=range]{flex:1;accent-color:var(--brass)}
.fp-month b{min-width:64px;text-align:right;color:var(--ink)}
.fp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.fp-kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.fp-kpis .kpi-card b{font-size:24px}
.fp-kpis .kpi-card b.neg{color:var(--fp-neg)}
.kpi-card.lead b.neg{color:#FFD2CB}
.fp-kpis .kpi-card small{line-height:1.45}
.fp-on{box-shadow:0 0 0 2px var(--on)}
.fp-pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:650;color:var(--t-green);background:color-mix(in srgb,var(--t-green) 12%,var(--card))}
.fp-pill.warn{color:var(--t-amber);background:color-mix(in srgb,var(--t-amber) 14%,var(--card))}
.fp-pill.neg{color:var(--t-red);background:color-mix(in srgb,var(--t-red) 12%,var(--card))}
.kpi-card.lead .fp-pill{color:#fff;background:rgba(255,255,255,.18)}
.fp-chart{margin-top:6px}
.fp-svg{width:100%;height:auto;display:block}
.fp-svg text{font-size:11px;fill:var(--muted);font-family:inherit}
.fp-svg line.g{stroke:var(--line-2);stroke-width:1}
.fp-svg line.z{stroke:var(--line);stroke-width:1;stroke-dasharray:4 4}
.fp-svg .sel{fill:var(--brass);opacity:.06}
.fp-svg .tip{fill:var(--ink)}
.fp-svg .tipt{font-size:11.5px;font-weight:600;fill:#fff}
.fp-donut{display:block;width:100%;max-width:240px;margin:0 auto}
.fp-donut .dl{font-size:12px;fill:var(--muted)}
.fp-donut .dv{font-size:22px;font-weight:700;fill:var(--ink)}
.fp-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12.5px;color:var(--text)}
.fp-legend-col{flex-direction:column}
.fp-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.fp-legend .c-brand{background:var(--fp-brand)}.fp-legend .c-warn{background:var(--fp-warn)}.fp-legend .c-mint{background:var(--fp-mint)}.fp-legend .c-c3{background:var(--fp-c3)}.fp-legend .c-neg{background:var(--fp-neg)}
.fp-ins{display:grid;gap:10px}
.fp-in{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}
.fp-in i{flex:none;width:8px;height:8px;border-radius:50%;margin-top:7px;background:var(--t-green)}
.fp-in.warn i{background:var(--t-amber)}.fp-in.neg i{background:var(--t-red)}
.fp-ue{margin-bottom:12px;font-size:13.5px}
.fp-ue>div{display:flex;justify-content:space-between;gap:12px}
.fp-ue.strong{font-weight:650}
.fp-ue b{font-variant-numeric:tabular-nums;color:var(--ink)}
.fp-ue b.neg{color:var(--fp-neg)}
.fp-ue i{display:block;height:8px;border-radius:999px;background:var(--line-2);margin-top:5px;overflow:hidden}
.fp-ue em{display:block;height:100%;border-radius:999px;background:var(--fp-mint)}
.fp-ue em.neg{background:var(--fp-neg)}.fp-ue em.brand{background:var(--fp-brand)}
.fp-table td,.fp-table th{white-space:nowrap;font-variant-numeric:tabular-nums}
.fp-table td.neg{color:var(--fp-neg)}.fp-table td.pos{color:var(--t-green)}
.fp-table tr.hl td,.fp-table td.hl{background:color-mix(in srgb,var(--brass) 8%,var(--card));font-weight:650}
.fp-sub{margin:20px 0 8px}
.fp-policy{font-size:14px;line-height:1.55;margin-bottom:16px}
.fp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;margin:6px 0 14px}
.fp-grid .field-label{min-height:34px;display:flex;align-items:flex-end}
.fp-form input[type=text],.fp-form input[type=number]{height:38px;padding:0 10px;font-size:14px}
.fp-form .w-num{width:150px}
.fp-form td.center{text-align:center}
.fp-soc-table{max-width:560px;margin-bottom:12px}
.fp-pres-head{margin-bottom:16px}
@media(max-width:1200px){.fp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.fp-kpis,.fp-kpis.three{grid-template-columns:minmax(0,1fr)}.fp-month{flex-wrap:wrap}}
@media print{.side-nav,.topnav,.platform-top,#fpTabs,.id-actions,.fp-month,#v-pres{display:none!important}.fp-view{display:block!important}.platform-shell .shell{display:block}}
.pay-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.pay-total{margin-left:auto;font-size:14px;color:var(--muted)}
.pay-total b{color:var(--ink)}
/* Marketing (docs/adr/0024): calendário do mês com chips por produto e rede, banco de ideias, ritmo, campanhas e objetivos. */
.mk-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.mk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.mk-nav{display:flex;align-items:center;gap:8px}
.mk-nav b{min-width:150px;text-align:center;font-size:16px;color:var(--ink)}
.mk-sp{flex:1}
.brand .mk-sel{width:auto;height:40px;padding:0 30px 0 12px;font-size:14px}
.mk-rot{margin:0 4px}
.mk-sum{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin:0 0 12px}
.mk-sum b{color:var(--ink)}
.mk-red,.mk-red b{color:var(--t-red)!important}
.mk-empty{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 14px;border-style:dashed}
.mk-empty .field-hint{margin:2px 0 0}
.mk-g{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.mk-month{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.mk-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--paper)}
.mk-wd span{padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--muted)}
.mk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.md{min-height:118px;padding:6px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:3px;min-width:0;transition:background .12s}
.md:nth-child(7n){border-right:0}
.md.out{background:color-mix(in srgb,var(--paper) 60%,var(--card))}
.md.out .md-h b{color:var(--muted)}
.md.today{background:color-mix(in srgb,var(--brass) 6%,var(--card))}
.md.today .md-h b{background:var(--brass);color:#fff;border-radius:999px;padding:0 7px}
.md.hol .md-h small{color:var(--t-red)}
.md.drop,.mk-ideas.drop{background:color-mix(in srgb,var(--brass) 12%,var(--card))}
.md-h{display:flex;align-items:center;gap:6px;min-height:22px}
.md-h b{font-size:13px;color:var(--ink)}
.md-h small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-add{margin-left:auto;border:0;background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;opacity:0;width:22px;height:22px;border-radius:6px}
.md:hover .md-add,.md-add:focus-visible{opacity:1}
.md-add:hover{background:var(--line-2);color:var(--ink)}
.mc{--c:var(--brass);display:flex;align-items:center;gap:5px;width:100%;padding:3px 6px;border:1px solid color-mix(in srgb,var(--c) 22%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--c) 7%,var(--card));font:inherit;font-size:12px;color:var(--ink);text-align:left;cursor:grab;min-width:0}
.mc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc.p2{--c:#C13B2B}.mc.p3{--c:#5F6B68}
.mc.done{opacity:.55}.mc.done span{text-decoration:line-through}
.mc.late{border-color:var(--t-red);box-shadow:inset 3px 0 0 var(--t-red)}
.mkn{flex:none;display:inline-grid;place-items:center;min-width:20px;height:16px;padding:0 3px;border-radius:4px;font-size:9.5px;font-weight:700;font-style:normal;color:#fff;background:#5F6B68}
.mkn.n1{background:#C13584}.mkn.n2{background:#111}.mkn.n3{background:#1877F2}.mkn.mr{background:var(--t-amber)}.mkn.rt{background:#7A8784}
.mk-ideas{margin:0;transition:background .15s}
.mk-ideas-list{display:grid;gap:5px;margin-top:4px}
.mk-ideas .bz-h{margin:0}.mk-ideas .field-hint{margin:2px 0 0}
.mk-r{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13.5px}
.mk-r b{font-variant-numeric:tabular-nums;color:var(--ink)}
.mk-late td{background:color-mix(in srgb,var(--t-red) 4%,var(--card))}
.mk-lk{text-decoration:none;font-weight:600;text-align:left}
.mk-tl{position:relative;height:10px;border-radius:999px;background:var(--line-2);margin:4px 0}
.mk-tl i{position:absolute;top:0;height:100%;border-radius:999px;background:var(--brass)}
.mk-tl i.p2{background:#C13B2B}
.mk-tl u{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink);text-decoration:none}
.mk-focus{margin:0 0 14px}
.mk-focus textarea{width:100%}
.brand .mk-in{width:96px;height:36px;padding:0 8px;text-align:right}
.mk-meter.ok em{background:var(--t-green)}.mk-meter.bad em{background:var(--t-red)}.mk-meter em{background:var(--brass)}
.mk-marcos{margin-top:14px}
.mk-marco{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.mk-marco.done .mk-lk{text-decoration:line-through;color:var(--muted)}
.mk-marco.late .muted{color:var(--t-red)}
.mk-est{margin-bottom:16px}
.mk-est-h{padding:20px 20px 4px}.mk-est-h .bz-h{margin:0}.mk-est-h .field-hint{margin:4px 0 8px}
.mk-est-foot{padding:0 20px 16px}
.mk-ul{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14px;line-height:1.5}
@media(max-width:1100px){.mk-g{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.mk-grid,.mk-wd{grid-template-columns:repeat(7,minmax(90px,1fr))}.mk-month{overflow-x:auto}}
/* Calendário da equipa (separador de Ideias e roadmap): uma linha por semana; os dias ficam por trás e os eventos são barras
   que atravessam os dias (grid-column), cada um na sua faixa (grid-row). */
.cal-bar .cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav h2{margin:0 4px;font-size:18px;min-width:170px;text-align:center}
.cal-month{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);user-select:none;-webkit-user-select:none}
.cal-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--paper)}
.cal-wd span{padding:8px 10px;font-size:12.5px;font-weight:600;color:var(--muted)}
.cw{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px repeat(var(--lanes,0),26px) minmax(22px,1fr);row-gap:3px;min-height:112px;border-bottom:1px solid var(--line-2);position:relative}
.cw:last-child{border-bottom:0}
.cd{grid-row:1 / -1;border-right:1px solid var(--line-2);padding:5px 7px;cursor:cell;min-width:0}
.cd:nth-child(7){border-right:0}
.cd.we{background:color-mix(in srgb,var(--paper) 45%,var(--card))}
.cd.out{background:color-mix(in srgb,var(--paper) 75%,var(--card))}
.cd.out .cd-h b{color:var(--muted)}
.cd.today{background:color-mix(in srgb,var(--brass) 6%,var(--card))}
.cd.today .cd-h b{background:var(--brass);color:#fff;border-radius:999px;padding:0 7px}
.cd.sel{background:color-mix(in srgb,var(--brass) 16%,var(--card))}
.cd-h{display:flex;align-items:center;gap:6px;min-width:0}
.cd-h b{font-size:13px;color:var(--ink)}
.cd-h small{font-size:11px;color:var(--t-red);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb{position:relative;z-index:1;display:flex;align-items:center;gap:5px;min-width:0;margin:0 4px;padding:0 8px;border:1px solid color-mix(in srgb,var(--tag-fg) 25%,transparent);border-radius:7px;background:var(--tag-bg);color:var(--tag-fg);font:inherit;font-size:12.5px;font-weight:600;text-align:left;cursor:grab;touch-action:manipulation}
.cb:hover{border-color:var(--tag-fg)}
.cb.cont-l{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}
.cb.cont-r{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}
.cb.away{background:repeating-linear-gradient(135deg,var(--tag-bg) 0 6px,color-mix(in srgb,var(--tag-bg) 55%,var(--card)) 6px 12px)}
.cb.done{opacity:.55}.cb.done .cb-t{text-decoration:line-through}
.cb.late{border-color:var(--t-red);color:var(--t-red)}
.cb b{font-weight:700;font-variant-numeric:tabular-nums}
.cb-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}
.cb-p{flex:none;font-style:normal;font-size:10px;font-weight:700;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--tag-fg) 14%,transparent)}
.cb-ic{flex:none;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cb-h{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize}
.cb-h.l{left:-2px}.cb-h.r{right:-2px}
.cal-dragging,.cal-dragging .cb,.cal-dragging .cd{cursor:grabbing}
.cal-away{margin:0 0 10px;font-size:14px;color:var(--muted)}
.cal-away:empty{display:none}
.cal-away b{color:var(--ink)}
.cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;font-size:12.5px}
.cal-done td{color:var(--muted)}
.cal-done .mk-lk{text-decoration:line-through}
#paneCal .sup-tag-filter{margin:0 0 12px}
@media(max-width:900px){.cal-nav h2{min-width:0;font-size:16px}.cw{min-height:84px;grid-template-rows:24px repeat(var(--lanes,0),22px) minmax(10px,1fr)}.cd{padding:3px 4px;cursor:pointer}.cb{margin:0 2px;padding:0 4px;font-size:11px}.cb-p,.cb b,.cb-h{display:none}.cd-h small{display:none}}
/* Novidades (docs/adr/0024): a lista, a pré-visualização e o bloco no ecrã de entrar e na Ajuda. */
.nv-g{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.nv-block{margin:0}.nv-block .field-row{align-items:end}.nv-max{max-width:180px}
.nv-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--brass);background:color-mix(in srgb,var(--brass) 12%,var(--card))}
.nv-tag.class{color:#C13B2B;background:color-mix(in srgb,#C13B2B 12%,var(--card))}
.nv-tag.new{color:var(--t-amber);background:color-mix(in srgb,var(--t-amber) 14%,var(--card))}
.nv-tag.gen{color:var(--t-blue);background:color-mix(in srgb,var(--t-blue) 12%,var(--card))}
.nv-t{display:block;margin-top:4px;color:var(--ink)}
.nv-preview{border-radius:18px;padding:22px;background:var(--brass);color:#fff;display:grid;gap:10px}
.nv-preview small{font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.nv-preview h3{margin:0 0 4px;font-size:20px;color:#fff}
.nv-card{background:#fff;color:var(--text);border-radius:12px;padding:14px}
.nv-card b{display:block;margin:6px 0 2px;color:var(--ink)}
.nv-card p,.nv-none{margin:0;font-size:13.5px}
.nv-none{opacity:.85}
.nv-where{grid-template-columns:repeat(2,max-content)!important}
#nvRows .icon-btn{width:30px;height:30px}
@media(max-width:1000px){.nv-g{grid-template-columns:minmax(0,1fr)}}
.help-news-item{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.help-news-item .nv-tag{justify-self:start}
.help-news-item small{color:var(--muted);font-size:13px;line-height:1.45}
/* Ideias e roadmap (docs/adr/0024): quadro por estado, cartões com tipo, prioridade e impacto. */
.id-actions{display:flex;gap:8px;flex-wrap:wrap}
.id-select{width:auto;min-width:180px;height:44px}
.id-mode{margin-left:auto}
.id-board{display:grid;grid-template-columns:repeat(var(--cols,5),minmax(230px,1fr));gap:14px;align-items:start;overflow-x:auto;padding-bottom:8px}
.id-col{--c:var(--muted);background:color-mix(in srgb,var(--c) 6%,var(--paper));border:1px solid color-mix(in srgb,var(--c) 18%,var(--line));border-radius:14px;padding:12px;min-height:200px;transition:border-color .15s,background .15s}
.id-col.s1{--c:#7A8784}.id-col.s2{--c:var(--t-blue)}.id-col.s3{--c:var(--t-amber)}.id-col.s4{--c:var(--brass)}.id-col.s5{--c:var(--t-green)}.id-col.s6{--c:var(--t-red)}
.id-col.over{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--card))}
.id-col h2{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin:2px 4px 10px;color:var(--ink)}
.id-col h2:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:8px}
.id-col h2 b{margin-left:auto;font-size:12px;font-weight:600;color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--card));padding:1px 8px;border-radius:999px}
.id-card{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 13px;margin:0 0 9px;cursor:grab;box-shadow:0 1px 2px rgba(22,33,31,.05);transition:border-color .15s,box-shadow .15s}
.id-card:hover{border-color:var(--c,var(--brass));box-shadow:0 4px 12px rgba(22,33,31,.08)}
.id-card.dragging{opacity:.4}
.id-card b{display:block;font-weight:600;line-height:1.35;margin:8px 0;color:var(--ink)}
.id-tags{display:flex;gap:5px;flex-wrap:wrap}
.id-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:650}
.id-tag.feat{color:var(--brass);background:color-mix(in srgb,var(--brass) 12%,var(--card))}
.id-tag.biz{color:#5B4B8A;background:color-mix(in srgb,#5B4B8A 12%,var(--card))}
.id-tag.fast{color:var(--t-amber);background:color-mix(in srgb,var(--t-amber) 14%,var(--card))}
.id-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.id-dots{display:inline-flex;gap:3px;vertical-align:middle}
.id-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.id-dots i.on{background:var(--brass)}
.id-dots.ef i.on{background:#5F6B68}
.id-empty{margin:0;padding:18px 8px;text-align:center;font-size:12.5px;color:var(--muted);border:1.5px dashed var(--line);border-radius:10px}
.id-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:650;--c:#7A8784;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--card))}
.id-st.s2{--c:var(--t-blue)}.id-st.s3{--c:var(--t-amber)}.id-st.s4{--c:var(--brass)}.id-st.s5{--c:var(--t-green)}.id-st.s6{--c:var(--t-red)}
.id-foot{margin-top:14px}
.id-scale{display:flex;gap:6px}
.id-scale button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line-input);background:var(--card);font:inherit;font-weight:600;color:var(--text);cursor:pointer}
.id-scale button[aria-pressed=true]{background:var(--brass);border-color:var(--brass);color:#fff}
.id-modal-actions{display:flex;align-items:center;gap:8px;margin-top:18px}
.id-modal-actions span{flex:1}
@media(max-width:900px){.id-mode{margin-left:0}.id-board{grid-template-columns:repeat(var(--cols,5),minmax(78vw,1fr));scroll-snap-type:x mandatory}.id-col{scroll-snap-align:start}}
/* Cor com significado (docs/adr/0024): cada número do topo com o seu tom, estados em etiquetas, uma cor por produto. */
.brand{--t-green:#1E7B4F;--t-red:var(--oxblood);--t-amber:#B7791F;--t-blue:#2F6FB0;--t-book:var(--brass);--t-class:#C13B2B}
.kpi-card{position:relative;overflow:hidden}
.kpi-card[class*=tone-]{border-color:color-mix(in srgb,var(--tone) 22%,var(--line));background:color-mix(in srgb,var(--tone) 6%,var(--card))}
.kpi-card[class*=tone-] span{color:color-mix(in srgb,var(--tone) 70%,var(--text))}
.kpi-card.tone-green{--tone:var(--t-green)}.kpi-card.tone-red{--tone:var(--t-red)}.kpi-card.tone-amber{--tone:var(--t-amber)}.kpi-card.tone-blue{--tone:var(--t-blue)}
.kpi-card.tone-red b{color:var(--t-red)}
.kpi-card .pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:650;font-style:normal;margin-right:4px}
.pill.up{color:var(--t-green);background:color-mix(in srgb,var(--t-green) 12%,var(--card))}
.pill.down{color:var(--t-red);background:color-mix(in srgb,var(--t-red) 12%,var(--card))}
.pill.info{color:var(--t-blue);background:color-mix(in srgb,var(--t-blue) 12%,var(--card))}
.kpi-card.lead .pill.up{color:#fff;background:rgba(255,255,255,.18)}
.kpi-card.lead .pill.down{color:#fff;background:rgba(168,65,47,.55)}
.kpi-spark{position:absolute;right:14px;bottom:14px;width:42%;height:34px;opacity:.9}
.kpi-spark path{fill:none;stroke:#BFE6D8;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.kpi-card.lead small{position:relative;z-index:1}
.kpi-split,.kpi-meter{display:flex;height:6px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--tone,var(--brass)) 14%,var(--card));margin:10px 0 6px}
.kpi-split em,.kpi-meter em{display:block;height:100%;width:var(--w)}
.kpi-split em.book{background:var(--t-book)}.kpi-split em.class{background:var(--t-class)}
.kpi-meter em{background:var(--tone);border-radius:999px}
.kpi-card small .dot{margin:0 4px 0 0;vertical-align:1px}
.dot.book{background:var(--t-book)}
.ov-alerts li.al-bad{border-color:color-mix(in srgb,var(--t-red) 25%,var(--line));background:color-mix(in srgb,var(--t-red) 5%,var(--card))}
.ov-alerts li.al-warn{border-color:color-mix(in srgb,var(--t-amber) 28%,var(--line));background:color-mix(in srgb,var(--t-amber) 6%,var(--card))}
.ov-alerts li.al-good{border-color:color-mix(in srgb,var(--t-green) 25%,var(--line));background:color-mix(in srgb,var(--t-green) 5%,var(--card))}
.ov-alerts li.al-info{background:color-mix(in srgb,var(--t-blue) 4%,var(--card))}
.al-info .al-dot{background:var(--t-blue)}
.ov-alerts li.al-bad a{color:var(--t-red)}
.ov-shortcuts a{display:flex;align-items:center;gap:12px}
.ov-shortcuts a>span:last-child{min-width:0}
.sc-ic{--c:var(--brass);flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--card))}
.sc-ic .icon{width:18px;height:18px}
.ov-shortcuts .t-amber .sc-ic{--c:var(--t-amber)}.ov-shortcuts .t-blue .sc-ic{--c:var(--t-blue)}.ov-shortcuts .t-teal .sc-ic{--c:var(--brass)}
.ov-shortcuts .t-green .sc-ic{--c:var(--t-green)}.ov-shortcuts .t-grey .sc-ic{--c:#5F6B68}.ov-shortcuts .t-red .sc-ic{--c:var(--t-red)}
.ov-shortcuts a:hover .sc-ic{background:var(--c);color:#fff}
.ov-shortcuts a.is-alert{background:color-mix(in srgb,var(--t-amber) 7%,var(--card));border-color:color-mix(in srgb,var(--t-amber) 35%,var(--line))}
.ov-shortcuts a.is-alert small{color:var(--t-amber);font-weight:600}
.ov-funnel li:nth-child(1) em{background:var(--brass)}
.ov-funnel li:nth-child(2) em{background:#2C8A78}
.ov-funnel li:nth-child(3) em{background:#3FA98A}
.ov-funnel li:nth-child(4) em{background:#6CC2A6}
.ov-funnel li:nth-child(n+5) em{background:#9AD7C1}
.ov-bars li:nth-child(5n+2) em:not(.class){background:#3FA98A}
.ov-bars li:nth-child(5n+3) em:not(.class){background:var(--t-blue)}
.ov-bars li:nth-child(5n+4) em:not(.class){background:var(--t-amber)}
.ov-bars li:nth-child(5n+5) em:not(.class){background:#5B4B8A}
.ov-rank a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}
.neg-av.sm{width:30px;height:30px;font-size:11px;border-radius:50%}
.rk-name{min-width:0}
.rk-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-bar,.neg-count i{display:block;height:4px;border-radius:999px;background:var(--line-2);margin-top:5px;overflow:hidden}
.rk-bar em,.neg-count em{display:block;height:100%;width:var(--w);background:var(--brass);border-radius:999px}
.rk-num{text-align:right;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.rk-num small{display:block;font-size:11.5px;font-weight:500;color:var(--muted)}
.neg-count{display:inline-block;min-width:64px;text-align:right}
.neg-mrr{font-weight:650;color:var(--ink)}
.tenant-filter .fdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:1px}
.fdot.ok{background:var(--t-green)}.fdot.info{background:var(--t-blue)}.fdot.bad{background:var(--t-red)}.fdot.off{background:var(--muted)}
.tenant-filter .cnt{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:999px;font-size:12px;font-weight:650;background:var(--line-2);color:var(--muted)}
.tenant-filter button[aria-pressed=true] .cnt{background:var(--brass);color:#fff}
.neg-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 16px}
.neg-filters .view-switch{margin:0;height:44px;align-items:center;background:var(--card)}
.neg-filters .view-switch button{height:36px;padding:0 14px}
.neg-filters .view-switch button[aria-pressed=true]{background:var(--paper)}
.neg-search{display:flex;align-items:center;gap:8px;flex:1 1 260px;max-width:380px;padding:0 12px;height:44px;border:1px solid var(--line-input);border-radius:var(--r);background:var(--card);cursor:text}
.neg-search:focus-within{border-color:var(--brass);box-shadow:0 0 0 3px rgba(15,92,84,.15)}
.neg-search .icon{width:16px;height:16px;color:var(--muted);flex:none}
.brand .neg-search input[type=search],.brand .neg-search input[type=search]:hover,.brand .neg-search input[type=search]:focus{border:0;outline:0;box-shadow:none;background:none;font:inherit;width:100%;height:100%;min-height:0;padding:0;border-radius:0}
.neg-name{display:flex;align-items:center;gap:12px}
.neg-av{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em}
.neg-av.a0{background:#0F5C54}.neg-av.a1{background:#A8412F}.neg-av.a2{background:#2F6FB0}.neg-av.a3{background:#B07A2A}.neg-av.a4{background:#5B4B8A}.neg-av.a5{background:#3C4A47}
.neg-av.class{background:#C13B2B}
.neg-av.imo{background:#26303B}
.neg-av.has-logo{background:#fff;border:1px solid var(--line);overflow:hidden}
.neg-av.has-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
/* ── Plataforma: página de um negócio (docs/adr/0024) ── */
.neg-av.big{width:56px;height:56px;border-radius:14px;font-size:18px}
.neg-av.big.has-logo img{padding:6px}
.bz-head{display:flex;align-items:center;gap:16px;margin:6px 0 20px;flex-wrap:wrap}
.bz-id{flex:1;min-width:0}
.bz-id h1{margin:0;font-size:26px;letter-spacing:-.02em}
.bz-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:14px;color:var(--muted)}
.bz-meta a{color:var(--text)}
.bz-act{display:flex;gap:8px;flex-wrap:wrap}
.bz-act .inline-form{margin:0}
.bz-kp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.bz-kp .kpi-card b{font-size:26px}
.bz-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 18px;scrollbar-width:none}
.bz-tabs::-webkit-scrollbar{display:none}
.bz-tabs button{flex:none;border:0;background:none;padding:12px 14px;font:inherit;font-size:14.5px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.bz-tabs button:hover{color:var(--ink)}
.bz-tabs button.on{color:var(--ink);font-weight:650;border-bottom-color:var(--brass)}
.bz-2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
.bz-col{display:grid;gap:16px;min-width:0}
.bz-2 .card-panel,.bz-col .card-panel{margin:0}
.bz-h{font-size:16px;font-weight:650;color:var(--ink);margin:0 0 12px}
.card-panel .bz-h~.bz-h{margin-top:22px}
.bz-h-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.bz-h-row .bz-h{margin:0}
.bz-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.bz-mini .kpi-card{padding:14px 16px}
.bz-mini .kpi-card b{font-size:24px}
.bz-rows{display:grid;grid-template-columns:auto minmax(0,1fr);margin:0}
.bz-rows dt,.bz-rows dd{padding:10px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.bz-rows dt{color:var(--text)}
.bz-rows dd{margin:0;text-align:right;font-weight:600;color:var(--ink);padding-left:16px}
.bz-rows dd.soft{font-weight:500}
.bz-rows .tot{border-bottom:0;font-size:15px;padding-top:12px}
.bz-rows dd.neg{color:var(--oxblood)}
.bz-danger{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--oxblood) 30%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--oxblood) 5%,var(--card))}
.bz-danger b{display:block;color:var(--ink)}
.bz-danger small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.bz-danger-btn{color:var(--oxblood)}
.bz-product{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:6px}
.bz-product b{display:block;color:var(--ink)}
.bz-product small{display:block;color:var(--muted);font-size:13px}
.bz-bars{display:grid;gap:10px;margin-top:6px}
.bz-bar{display:grid;grid-template-columns:44px minmax(0,1fr) 48px;align-items:center;gap:10px;font-size:13.5px}
.bz-bar span{color:var(--muted)}
.bz-bar b{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink)}
.bz-bar i{display:block;height:10px;border-radius:999px;background:var(--line-2);overflow:hidden}
.bz-bar em{display:block;height:100%;width:var(--w);border-radius:999px;background:var(--brass)}
.bz-big{font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0 0 8px}
.bz-big small{font-size:14px;font-weight:500;color:var(--muted)}
.bz-wall{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px}
.bz-wall b{color:var(--ink)}
.bz-notes{display:grid;gap:10px;margin-top:16px}
.bz-note{padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.bz-note small{color:var(--muted);font-size:12.5px}
.bz-note p{margin:4px 0 6px;white-space:pre-wrap;color:var(--ink)}
.bz-note .link-btn{font-size:13px;color:var(--muted)}
.bz-log{list-style:none;margin:0;padding:0}
.bz-log li{position:relative;padding:0 0 14px 20px}
.bz-log li:before{content:'';position:absolute;left:4px;top:7px;width:8px;height:8px;border-radius:50%;background:var(--brass)}
.bz-log li:after{content:'';position:absolute;left:7.5px;top:18px;bottom:0;width:1px;background:var(--line)}
.bz-log li:last-child:after{display:none}
.bz-log b{display:block;font-weight:600;color:var(--ink);font-size:14px}
.bz-log small{color:var(--muted);font-size:12.5px}
/* Conteúdo dos separadores: o mesmo espaço entre tudo, uma linha entre secções, botões à direita no fim de cada uma. */
#tenantPage .ttab .card-panel:not(.mg-table-panel):not(:has(.team-list)):not(:has(.msg-editor)){padding:24px;display:flex;flex-direction:column;gap:14px}
#tenantPage .ttab .card-panel:not(.mg-table-panel)>*{margin:0}
#tenantPage .ttab .card-panel>.bz-h:not(:first-child),#tenantPage .ttab .card-panel>.bz-h-row:not(:first-child){margin-top:8px;padding-top:20px;border-top:1px solid var(--line-2)}
#tenantPage .ttab .card-panel>.bz-h-row .bz-h{margin:0;padding:0;border:0}
#tenantPage .ttab .card-panel>.bz-h+.field-hint{margin-top:-8px}
#tenantPage .ttab .form-field{margin:0}
#tenantPage .ttab .field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end;margin:0}
#tenantPage .ttab .field-label{display:flex;align-items:center;gap:8px;min-height:22px;margin-bottom:6px}
#tenantPage .ttab .field-label .opt-tag{margin:0;padding:1px 8px}
#tenantPage .ttab .feature-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 20px;margin:0}
#tenantPage .ttab .inline-check{margin:0;font-size:14px;gap:10px;align-items:center;min-height:24px}
#tenantPage .ttab .card-actions{margin:0;justify-content:flex-end;flex-wrap:wrap}
#tenantPage .ttab .card-panel>.card-actions{padding-top:2px}
#tenantPage .ttab .sp-danger{justify-content:flex-end;padding-top:16px;margin:0}
#tenantPage .ttab .confirm-inline{margin:0}
#tenantPage .ttab .bz-rows dt:first-child,#tenantPage .ttab .bz-rows dd:nth-child(2){padding-top:0}
#tenantPage .ttab .bz-note-input{width:100%;min-height:96px}
#tenantPage .ttab .bz-notes{margin:0}
#tenantPage .ttab .ov-meter{margin:0}
#tenantPage .ttab .mg-title-row .mg-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#tenantPage .ttab .sp-months{margin:0}
#tenantPage .ttab .mg-legend{margin:0}
#tenantPage .ttab p.sp-state{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-weight:500;color:var(--ink)}
#tenantPage .bz-danger{margin-top:16px}
#tenantPage .bz-danger + .danger-zone{margin-top:16px}
#tenantPage .ttab .mg-table-panel{padding:24px}
#tenantPage .ttab .mg-table-panel .mg-empty{margin:0;color:var(--muted)}
#tenantPage #ttab-resumo>.danger-confirm{max-width:none;margin-top:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
#tenantPage #ttab-resumo>.danger-confirm p{margin:0}
#tenantPage #ttab-resumo>.danger-confirm .card-actions{margin:4px 0 0;justify-content:flex-end}
#ttab-faturacao .mg-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
#ttab-faturacao .mg-title-row .bz-h{margin:0}
@media(max-width:1100px){.bz-2{grid-template-columns:minmax(0,1fr)}.bz-kp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.bz-head{align-items:flex-start}.bz-act{width:100%}.bz-act .btn{width:100%}.bz-act .inline-form{width:100%}}
.card-panel.np{padding:0;overflow:hidden}
.neg-table td{vertical-align:middle}
.neg-row{cursor:pointer}
.neg-row:hover td{background:color-mix(in srgb,var(--brass) 4%,var(--card))}
.prod-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;background:color-mix(in srgb,var(--brass) 12%,var(--card));color:var(--brass)}
.prod-ic{display:inline-block;vertical-align:-4px;margin-right:6px;border-radius:5px}
.prod-chip{display:inline-flex!important;align-items:center}
.prod-chip .prod-ic{margin-right:6px;vertical-align:0}
#tenantProduct button{display:inline-flex;align-items:center}
.prod-chip.class{background:#FBE9E6;color:#A8322A}
.prod-chip.imo{background:#E9E4DC;color:#26303B}
.neg-state{--st:var(--muted);display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:12.5px;font-weight:650;white-space:nowrap;color:var(--st);background:color-mix(in srgb,var(--st) 10%,var(--card));border:1px solid color-mix(in srgb,var(--st) 22%,var(--card))}
.neg-state:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--st)}
.neg-state.st-ok{--st:#1E7B4F}
.neg-state.st-bad{--st:var(--oxblood)}
.neg-state.st-info{--st:#2F6FB0}
.neg-state.st-off{--st:#7A8784}
@media(max-width:1200px){.ov-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.ov-g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.ov-g2,.ov-g3{grid-template-columns:minmax(0,1fr)}.ov-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.ov-kpis{grid-template-columns:minmax(0,1fr)}.ov-shortcuts{grid-template-columns:minmax(0,1fr)}}

/* Acertos de alinhamento das páginas novas da plataforma (docs/adr/0024). */
.ov-head .home-head{flex:1 1 420px;min-width:0}
.ov-head>.btn,.ov-head>.id-actions{flex:none}
.ov-top{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr)}
@media(max-width:1200px){.ov-top{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi-card .fp-pill,.kpi-card small .pill{display:inline-block;width:auto}
.brand input[type=month]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line-input);border-radius:var(--r);background:var(--card);font:inherit;color:var(--text)}
.modal-box .field-label{display:flex;align-items:center;gap:8px;min-height:22px}
.modal-box .field-label .opt-tag{margin:0;padding:1px 8px}
.modal-box .field-row{align-items:end}
.modal-box>.field-hint{margin:-6px 0 14px}
.modal-box .inline-check{margin:4px 0 8px}
.fp-view>.field-hint{margin:0 0 12px}
.fp-view>.bz-h.fp-sub+.field-hint{margin:-4px 0 10px}
.fp #chWf{margin-top:12px}
.fp .card-panel>.field-hint{margin:2px 0 8px}
.mk-bar2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.mk-bar .mk-actions{display:flex;gap:8px;margin-left:auto}
.mk-empty .field-hint{margin:4px 0 0}

/* Páginas antigas da plataforma com a mesma cara das novas (docs/adr/0024): cabeçalho fora do cartão, títulos do mesmo
   tamanho, números com tom e separadores sublinhados. */
.pg-sec>.pg-card{margin:0}
.pg-head .id-actions .site-range{margin:0}
.dash-bar h2,.mg-head h2{font-size:clamp(26px,3vw,32px);font-weight:700;letter-spacing:-.03em}
.tone-green{--tone:var(--t-green)}.tone-red{--tone:var(--t-red)}.tone-amber{--tone:var(--t-amber)}.tone-blue{--tone:var(--t-blue)}
.dash-kpi[class*=tone-]{border-color:color-mix(in srgb,var(--tone) 22%,var(--line));background:color-mix(in srgb,var(--tone) 6%,var(--card))}
.dash-kpi[class*=tone-] span{color:color-mix(in srgb,var(--tone) 70%,var(--text))}
.dash-kpi.lead{background:var(--brass);border-color:var(--brass)}
.dash-kpi.lead span,.dash-kpi.lead small{color:rgba(255,255,255,.8)}
.dash-kpi.lead b{color:#fff}
.dash-kpi.lead .dash-delta{color:#fff}
.platform-shell .sub-tabs{gap:4px;margin:0 0 20px;border-bottom:1px solid var(--line);border-radius:0}
.platform-shell .sub-tab{min-height:auto;padding:11px 14px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;margin-bottom:-1px;font-weight:500}
.platform-shell .sub-tab:hover{color:var(--ink)}
.platform-shell .sub-tab.active{background:none;color:var(--ink);font-weight:650;border-bottom-color:var(--brass)}
.dash-period{background:var(--paper);border:1px solid var(--line)}
.dash-period button.active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(22,33,31,.12)}
/* Marketing: uma barra só, os filtros abrem-se quando é preciso. */
.mk-tabs-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);margin:0 0 16px}
.mk-tabs-row .sub-tabs{border-bottom:0;margin:0}
.mk-csv{display:inline-flex;align-items:center;gap:6px;padding:0 4px 10px;font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none}
.mk-csv:hover{color:var(--ink)}
.mk-csv .icon{width:16px;height:16px}
.mk-nav .icon-btn{width:36px;height:36px;font-size:18px}
.mk-filter-btn{display:inline-flex;align-items:center;gap:6px}
.mk-filter-btn .icon{width:16px;height:16px}
.mk-filter-btn.on{border-color:var(--brass);color:var(--ink)}
.mk-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--brass);color:#fff;font-size:11.5px;font-weight:700}
.mk-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;margin:-4px 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
/* Novidades: a lista no centro; o bloco edita-se dentro da pré-visualização. */
.nv-list{min-height:220px}
.nv-ord{width:96px}
.nv-empty{display:grid;justify-items:center;gap:8px;text-align:center;padding:48px 24px}
.nv-empty b{font-size:16px;color:var(--ink)}
.nv-empty p{margin:0 0 8px;max-width:420px;color:var(--muted);font-size:14px}
.nv-side{display:grid;gap:12px;align-content:start}
.nv-side-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}
.nv-side-head a{font-weight:600;color:var(--brass);text-decoration:none}
.nv-block{padding:0;margin:0}
.nv-block summary{cursor:pointer;list-style:none;padding:16px 20px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}
.nv-block summary::-webkit-details-marker{display:none}
.nv-block summary:after{content:'›';margin-left:auto;color:var(--muted);transition:transform .15s}
.nv-block[open] summary:after{transform:rotate(90deg)}
.nv-block summary small{font-weight:400;color:var(--muted)}
.nv-block-in{padding:0 20px 18px}
.nv-block-in .form-field{margin-bottom:12px}
.site-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
#siteProduct button{display:inline-flex;align-items:center}
#stab-site .id-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){.site-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Marketing: consultar num painel à direita e inserir numa caixa rápida no próprio dia. */
.md{position:relative}
.md-num{border:0;background:none;padding:0 4px;margin-left:-4px;border-radius:6px;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.md-num:hover{background:var(--line-2)}
.md.today .md-num{background:var(--brass);color:#fff;border-radius:999px;padding:0 7px;margin-left:0}
.md.out .md-num{color:var(--muted)}
.md-more{border:0;background:none;padding:2px 6px;font:inherit;font-size:12px;font-weight:650;color:var(--brass);text-align:left;cursor:pointer;border-radius:6px}
.md-more:hover{background:color-mix(in srgb,var(--brass) 8%,var(--card))}
.mc{cursor:pointer}
.mk-drawer{position:fixed;inset:0;z-index:150;background:rgba(15,24,22,.28);display:flex;justify-content:flex-end}
.mk-drawer-box{width:min(440px,100%);height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--card);box-shadow:-12px 0 40px rgba(15,24,22,.16);padding:22px 24px 28px;display:flex;flex-direction:column;gap:14px;animation:mkIn .18s ease-out}
@keyframes mkIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.mk-d-head{display:flex;align-items:center;justify-content:space-between}
.mk-d-kind{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}
.mk-d-title{margin:0;font-size:21px;line-height:1.3;color:var(--ink)}
.mk-d-when{margin:-6px 0 0;color:var(--muted);font-size:14px}
.mk-d-when.late{color:var(--t-red)}
.mk-d-status{display:flex;flex-wrap:wrap;gap:6px}
.mk-d-status button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.mk-d-status button[aria-pressed=true]{background:var(--brass);border-color:var(--brass);color:#fff}
.mk-d-rows{border-top:1px solid var(--line-2)}
.mk-d-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.mk-d-row span{color:var(--muted)}
.mk-d-row b{font-weight:600;color:var(--ink);text-align:right}
.mk-d-text span{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}
.mk-d-text p{margin:0;white-space:pre-wrap;font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper);border-radius:10px;padding:10px 12px}
.mk-d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}
.mk-d-list{display:grid;gap:8px}
.mk-d-item{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:10px 12px;font:inherit;cursor:pointer}
.mk-d-item:hover{border-color:var(--brass)}
.mk-d-item b{display:block;font-weight:600;color:var(--ink)}
.mk-d-item small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.mk-quick{position:absolute;z-index:20;top:28px;left:4px;width:260px;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 32px rgba(15,24,22,.18);display:grid;gap:10px}
.md:nth-child(7n) .mk-quick,.md:nth-child(7n-1) .mk-quick{left:auto;right:4px}
.mk-quick input{height:40px;font-size:14px}
.mk-q-row{display:flex;gap:8px;flex-wrap:wrap}
.mk-q-seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.mk-q-seg button{border:0;background:none;padding:4px 9px;border-radius:7px;font:inherit;font-size:12.5px;font-weight:650;color:var(--muted);cursor:pointer}
.mk-q-seg button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(22,33,31,.12)}
.mk-q-seg .mkn-b.n1[aria-pressed=true]{background:#C13584;color:#fff}.mk-q-seg .mkn-b.n2[aria-pressed=true]{background:#111;color:#fff}.mk-q-seg .mkn-b.n3[aria-pressed=true]{background:#1877F2;color:#fff}
.mk-q-actions{display:flex;justify-content:space-between;align-items:center}
@media(max-width:700px){.mk-quick{position:fixed;left:16px!important;right:16px!important;top:auto;bottom:16px;width:auto}}

/* ===== Plataforma no telemóvel (todas as páginas de /platform). Fica no fim para ganhar às regras de cada página. ===== */
@media (max-width:900px){
  /* O menu fechado não deixa sombra na borda do ecrã. */
  .platform-shell .side-nav{box-shadow:none}
  body.side-open .platform-shell .side-nav,body.side-open.platform-shell .side-nav{box-shadow:12px 0 40px rgba(0,0,0,.18)}
  .platform-shell .shell>.view{padding:20px 16px 56px}
  /* Cabeçalhos: o título em cima e as ações por baixo, a toda a largura. */
  .platform-shell .ov-head,.platform-shell .mg-head,.platform-shell .dash-bar{flex-wrap:wrap;align-items:flex-start;gap:12px}
  .platform-shell .ov-head>.btn,.platform-shell .ov-head>.id-actions,.platform-shell .ov-head>.view-switch{flex:1 1 100%}
  .platform-shell .id-actions{display:flex;flex-wrap:wrap;gap:8px}
  .platform-shell .id-actions>.btn{flex:1 1 auto}
  .platform-shell .home-head h1{font-size:clamp(24px,7vw,30px)}
  /* Seletores e separadores: deslizam para o lado em vez de passarem da largura. */
  .platform-shell .view-switch{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .platform-shell .view-switch::-webkit-scrollbar,.platform-shell .sub-tabs::-webkit-scrollbar{display:none}
  .platform-shell .view-switch>*{flex:0 0 auto;white-space:nowrap}
  .platform-shell .sub-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .platform-shell .sub-tab{flex:0 0 auto;white-space:nowrap}
  .platform-shell .dash-period{display:flex;flex-wrap:wrap;gap:6px}
  /* Números grandes que cabem sempre. */
  .platform-shell .kpi-card b,.platform-shell .dash-kpi b{font-size:clamp(18px,5.4vw,28px);overflow-wrap:break-word}
  .platform-shell table.m-cards .prod-chip{max-width:100%;white-space:normal}
  .platform-shell .mk-nav{flex-wrap:wrap}
  .platform-shell .kpi-card{min-width:0}
  /* Grelhas de duas e três colunas passam a uma. */
  .platform-shell .ov-g2,.platform-shell .ov-g3,.platform-shell .bz-2,.platform-shell .ps-grid,.platform-shell .pp-grid,.platform-shell .fp-grid,.platform-shell .sp-cols,.platform-shell .mg-cols,.platform-shell .home-cols,.platform-shell .nv-g{grid-template-columns:minmax(0,1fr)!important}
  .platform-shell .ov-shortcuts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  /* Filtros: a pesquisa a toda a largura, as listas lado a lado. */
  .platform-shell .neg-filters{gap:8px}
  .platform-shell .neg-search{flex:1 1 100%;max-width:none}
  .platform-shell .neg-filters .mk-sel,.platform-shell .mg-toolbar select{flex:1 1 calc(50% - 4px);min-width:0}
  .platform-shell .pay-total{flex:1 1 100%;margin:0}
  /* Tabelas com .m-cards: cada linha é um cartão com as etiquetas por cima dos valores. */
  .platform-shell table.m-cards thead{display:none}
  .platform-shell table.m-cards,.platform-shell table.m-cards tbody{display:block;width:100%}
  .platform-shell table.m-cards tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 14px;padding:14px 16px;border-bottom:1px solid var(--line)}
  .platform-shell table.m-cards tr:last-child{border-bottom:0}
  .platform-shell table.m-cards tr.hidden,.platform-shell table.m-cards td.m-hide,.platform-shell table.m-cards td.row-action{display:none!important}
  .platform-shell table.m-cards td{display:block;padding:0;border:0;text-align:left!important;min-width:0}
  .platform-shell table.m-cards td:first-child{grid-column:1 / -1}
  .platform-shell table.m-cards td[colspan]{grid-column:1 / -1}
  .platform-shell table.m-cards td[data-label]::before{content:attr(data-label);display:block;font-size:11.5px;font-weight:500;color:var(--muted);margin:0 0 3px}
  .platform-shell .table-wrap:has(> table.m-cards){overflow:visible}
  /* Tabelas que não viram cartões deslizam para o lado. */
  .platform-shell .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* Quadros (Suporte, Ideias): uma coluna de cada vez, a deslizar, com a seguinte a espreitar. */
  .platform-shell .sup-board,.platform-shell .id-board{scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
  .platform-shell .sup-col,.platform-shell .id-col{scroll-snap-align:start}
  /* Calendário do Marketing: sete colunas que cabem, com os ícones das publicações; o dia abre a lista desse dia. */
  .platform-shell .mk-grid,.platform-shell .mk-wd{grid-template-columns:repeat(7,minmax(0,1fr))}
  .platform-shell .mk-month{overflow:hidden}
  .platform-shell .md{min-height:64px;padding:4px 3px;gap:2px;flex-direction:row;flex-wrap:wrap;align-content:flex-start;cursor:pointer}
  .platform-shell .md-h{flex:1 1 100%}
  .platform-shell .md-h small,.platform-shell .md-add{display:none}
  .platform-shell .mc{width:auto;padding:0;border:0;background:none;gap:0}
  .platform-shell .mc span{display:none}
  .platform-shell .md-more{font-size:10.5px;padding:0;flex:1 1 100%;text-align:left}
  .platform-shell .mk-bar,.platform-shell .mk-actions{flex-wrap:wrap}
  .platform-shell .mk-actions{margin-left:0;width:100%}
  .platform-shell .mk-actions .btn{flex:1 1 auto}
  /* Gráficos SVG encolhem com a largura. */
  .platform-shell svg.dash-chart,.platform-shell .fp-chart svg,.platform-shell .site-chart svg{width:100%;height:auto}
  /* Modais e gavetas a toda a largura. */
  .platform-shell .modal-box{width:100%!important;max-width:100%}
  .platform-shell .field-row{flex-wrap:wrap}
  .platform-shell .field-row>div{flex:1 1 140px!important}
}
@media (max-width:420px){
  .platform-shell .ov-kpis,.platform-shell .dash-kpis,.platform-shell .site-kpis,.platform-shell .mg-kpis,.platform-shell .fp-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .platform-shell .ov-shortcuts{grid-template-columns:minmax(0,1fr)}
}

/* Backoffice dos negócios em telemóveis muito estreitos (≤ 380 px): a barra de cima cabe sempre (nome do negócio mais curto,
   sem a seta do menu do nome e com menos espaço entre os botões). */
@media (max-width:380px){
  .topnav .right{gap:6px}
  .topnav .left{min-width:0;flex:1 1 auto}
  .admin-business{max-width:96px}
  .user-menu-btn .um-chevron{display:none}
  .user-menu-btn{padding:4px}
}

/* Tablets e ecrãs médios (761–1180 px): a barra de cima do backoffice dos negócios só com ícones (o nome aparece ao passar o
   rato ou no leitor de ecrã), para nunca passar da largura. Abaixo de 761 px vale o telemóvel, com a barra de baixo. */
@media (min-width:761px) and (max-width:1180px){
  .topnav .nav-link>span:not([class]){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .topnav .nav-link{padding:0 11px;position:relative}
  .topnav .um-text,.topnav .help-btn-text{display:none}
  .topnav .domain-pill{font-size:0;gap:0;padding:9px 11px}
  .topnav .domain-pill .icon{width:16px!important;height:16px!important}
}
/* Em ecrãs de toque (telemóvel e tablet) os campos têm sempre 16 px: com menos, o Safari faz zoom ao tocar no campo. */
@media (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea{font-size:16px!important}
}

/* «Adicionar produto» → confirmação: o produto, os factos (o que cria, dias grátis, preço, o que fica igual) e as duas saídas. */
.add-confirm .ac-product{display:flex;align-items:center;gap:12px;margin:8px 0 18px;font-weight:650;font-size:15px;color:var(--ink)}
.add-confirm .ac-product img{border-radius:11px}
.add-confirm .ac-facts{list-style:none;margin:18px 0 22px;padding:0;display:grid;gap:12px}
.add-confirm .ac-facts li{position:relative;padding-left:28px;font-size:14.5px;line-height:1.5;color:var(--text)}
.add-confirm .ac-facts li::before{content:"";position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--sage) 16%,var(--card));box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--sage) 16%,var(--card)),inset 0 0 0 16px var(--sage)}
.add-confirm .ac-facts b{color:var(--ink)}
.add-confirm .ac-actions{display:grid;gap:10px}
.add-confirm .ac-actions .btn{justify-content:center;text-align:center}
a.product-card{text-decoration:none}

/* Negócio suspenso no seletor e na confirmação do Book: primeiro pedir para reabrir o que já tinha. */
.spaces-paused{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--muted);text-decoration:none;opacity:.8}
.spaces-paused:hover{background:var(--paper);opacity:1}
.spaces-paused small{color:var(--oxblood)}
.add-confirm .ac-reopen{display:grid;gap:10px;margin:0 0 8px}
.add-confirm .ac-or{display:flex;align-items:center;gap:10px;margin:14px 0 6px;color:var(--muted);font-size:13px}
.add-confirm .ac-or::before,.add-confirm .ac-or::after{content:"";flex:1;height:1px;background:var(--line)}

/* Afiliados (docs/adr/0027): Crescimento → Afiliados. */
.af-tabs{margin-bottom:18px;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.af-tabs .sub-tab{white-space:nowrap;border:0;background:none;font:inherit;cursor:pointer}
.af-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--oxblood);color:#fff;font-size:12px;font-weight:650;line-height:1}
.af-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.af-view{min-height:240px}
.af-h{margin:22px 0 12px;font-size:17px;font-weight:650;color:var(--ink)}
.af-h:first-child{margin-top:0}
.af-h3{margin:20px 0 10px;font-size:13px;font-weight:650;color:var(--muted);text-transform:none;letter-spacing:0}
.af-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:14px}
.af-card header{display:flex;justify-content:space-between;gap:12px}
.af-card h3{margin:8px 0 2px;font-size:17px;color:var(--ink)}
.af-card header p{margin:0;color:var(--muted);font-size:13px}
.af-card footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.af-kv{margin:12px 0 0;display:grid;gap:0;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
.af-kv div{display:grid;grid-template-columns:minmax(110px,34%) minmax(0,1fr);gap:10px;padding:9px 12px;font-size:14px}
.af-kv div+div{border-top:1px solid var(--line-2)}
.af-kv dt{color:var(--muted)}
.af-kv dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.af-empty{margin:0;padding:22px 8px;text-align:center;color:var(--muted)}
.af-filters input[type=search]{flex:1 1 240px;max-width:340px;min-height:44px}
.af-filters select{flex:0 1 220px;min-height:44px}
.af-table .num{text-align:right;font-variant-numeric:tabular-nums}
.af-table tr.af-new{background:#FFFBEF}
.af-link{border:0;background:none;padding:0;font:inherit;color:var(--brass);cursor:pointer;text-align:left}
.af-link:hover{text-decoration:underline}
.af-strong{font-weight:650;color:var(--ink)}
.af-bad{color:var(--oxblood)}
.af-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0;color:var(--muted);font-size:14px;flex-wrap:wrap}
/* Resumo dos afiliados: aviso do que pede ação, faixa de números, funil com percentagem, ranking em tabela. */
.af-attn{display:grid;gap:8px;margin-bottom:16px}
.af-attn-item{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;width:100%;min-height:52px;padding:10px 16px;border:1px solid #BFE0D5;border-radius:12px;background:#F2FAF7;font:inherit;font-size:14px;color:var(--text);text-align:left;cursor:pointer}
.af-attn-item:hover{border-color:var(--brass)}
.af-attn-item .dot{width:8px;height:8px;border-radius:50%;background:var(--brass);flex:none}
.af-attn-item b{color:var(--ink);font-weight:650}
.af-attn-item span{color:var(--muted)}
.af-attn-item em{margin-left:auto;font-style:normal;font-weight:600;color:var(--brass)}
.af-attn-item.is-bad{border-color:#EBC8C4;background:#FDF4F3}
.af-attn-item.is-bad .dot{background:var(--oxblood)}
.af-attn-item.is-bad em{color:var(--oxblood)}
.af-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 0 16px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.af-stats>div{padding:14px 18px;border-top:1px solid var(--line-2);min-width:0}
.af-stats>div:nth-child(-n+2){border-top:0}
.af-stats>div:nth-child(odd){border-right:1px solid var(--line-2)}
.af-stats dt{font-size:13px;color:var(--muted)}
.af-stats dd{margin:4px 0 0;font-size:22px;font-weight:650;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.af-stats small{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
@media (min-width:1100px){
  .af-stats{grid-template-columns:repeat(6,minmax(0,1fr))}
  .af-stats.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .af-stats.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .af-stats>div{border-top:0;border-right:1px solid var(--line-2)}
  .af-stats>div:last-child{border-right:0}
}
.af-funnel b{display:inline-flex;gap:8px;align-items:baseline;font-variant-numeric:tabular-nums}
.af-funnel b small{grid-column:auto;font-weight:500;color:var(--muted);min-width:34px;text-align:right}
.af-rank{width:100%;border-collapse:collapse;font-size:14px}
.af-rank th{font-size:12.5px;font-weight:600;color:var(--muted);text-align:left;padding:0 0 8px;border-bottom:1px solid var(--line-2)}
.af-rank td{padding:11px 0;border-bottom:1px solid var(--line-2)}
.af-rank tr:last-child td{border-bottom:0}
.af-rank .num{text-align:right;width:90px;font-variant-numeric:tabular-nums}
.af-rank a{color:var(--ink);font-weight:600}
.af-rank-n{display:inline-block;width:22px;color:var(--muted);font-variant-numeric:tabular-nums}
.af-sync{margin:16px 0 0;color:var(--muted);font-size:13.5px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.af-note{margin:0 0 16px;padding:12px 14px;border-radius:10px;background:var(--paper);border:1px solid var(--line);font-size:14px}
.af-note.bad{background:#FDF1EF;border-color:#F0C9C2}
.af-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.af-section{margin:24px 0 12px}
.af-log{list-style:none;margin:0;padding:0}
.af-log li{padding:11px 2px}
.af-log li+li{border-top:1px solid var(--line-2)}
.af-log .af-log-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.af-log b{font-weight:600;color:var(--ink);font-size:14px}
.af-log .af-log-head span{color:var(--muted);font-size:12.5px;white-space:nowrap}
.af-log small{color:var(--muted);font-size:12.5px}
.af-details{margin:4px 0 0;font-size:13px;color:var(--text);overflow-wrap:anywhere;line-height:1.5}
.af-details span+span::before{content:"·";margin:0 8px;color:var(--muted)}
.af-back{margin-bottom:14px}
.af-sheet-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:16px}
.af-av{flex:none;width:52px;height:52px;border-radius:14px;background:var(--brass);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px}
.af-sheet-id{flex:1 1 280px;min-width:0}
.af-sheet-id h2{margin:0;font-size:22px;color:var(--ink)}
.af-sheet-id p{margin:2px 0 0;color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.af-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px!important}
.af-sub{font-size:12.5px!important}
.af-sheet-actions{display:flex;flex-wrap:wrap;gap:8px}
.af-chart{display:flex;align-items:flex-end;gap:10px;height:150px;margin-top:14px}
.af-chart div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;font-size:12px;color:var(--muted)}
.af-chart b{color:var(--ink);font-size:13px}
.af-chart i{display:flex;align-items:flex-end;width:100%;max-width:44px;min-height:3px;border-radius:6px 6px 2px 2px;background:var(--line);overflow:hidden}
.af-chart em{display:block;width:100%;background:var(--brass)}
.af-form-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
.af-form-grid>div>.card-panel+.card-panel,.af-form-grid>div>.card-panel+.err,.af-form-grid .af-example{margin-top:16px}
.af-checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.af-linkbox{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;margin:10px 0}
.af-linkbox code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:13px}
.af-iban{font-size:12.5px}
.af-danger{border-color:#E8C4C4}
.af-credit{margin-top:16px}
.af-credit input{flex:0 1 220px;min-height:44px}
.af-wide{width:100%;margin-top:16px;min-height:48px}
.af-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;position:relative}
.af-pick input{flex:1 1 220px;min-height:44px}
.af-picked{font-weight:600;color:var(--ink)}
.af-results{flex:1 1 100%;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.af-results button{display:flex;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:0;background:none;font:inherit;text-align:left;cursor:pointer;min-height:44px}
.af-results button+button{border-top:1px solid var(--line-2)}
.af-results button:hover{background:var(--paper)}
.af-results span,.af-results p{color:var(--muted);font-size:13px}
.af-results p{margin:0;padding:10px 12px}
.af-rule{display:block;border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:10px;cursor:pointer}
.af-rule.on{border-color:var(--brass);background:var(--paper)}
.af-rule-head{display:flex;gap:10px;align-items:flex-start}
.af-rule-head input{margin-top:4px;width:auto}
.af-rule-head small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.af-rule-head em{display:block;font-style:normal;color:var(--brass);font-size:13px;margin-top:6px}
.af-rule-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:12px}
.af-rule-nums label{font-size:12.5px;color:var(--muted);display:grid;gap:4px}
.af-modal{width:640px}
.side-nav a .side-badge{margin-left:auto}
@media (max-width:900px){
  .af-form-grid{grid-template-columns:minmax(0,1fr)}
    .af-sheet-actions{width:100%}
  .af-kv div{grid-template-columns:minmax(0,1fr);gap:2px}
  .af-table .num{text-align:left}
  .af-filters input[type=search],.af-filters select,.af-filters .btn{flex:1 1 100%;max-width:none}
}

/* Site e funil: cada dia do gráfico é um botão que filtra o resto da página. */
button.bar-col{border:0;background:none;padding:0 0 4px;margin:0;font:inherit;cursor:pointer;border-radius:6px;touch-action:manipulation}
button.bar-col:hover .bar{filter:brightness(1.15)}
button.bar-col:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.bar-chart:has(button.bar-col.is-on) button.bar-col:not(.is-on) .bar{opacity:.35}
button.bar-col.is-on{background:rgba(15,92,84,.08)}
button.bar-col.is-on small .dn{color:var(--brass)}
.site-dayfilter{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:0 0 16px;padding:10px 14px;border:1px solid #BFE0D5;border-radius:10px;background:#F2FAF7;font-size:14px;color:var(--text)}
.site-dayfilter b{color:var(--ink)}

/* Definições → Permissões: o perfil em cartões, as permissões em grupos por menu, uma caixa por permissão. */
.perm-profiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.perm-profile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.perm-profile small{font-size:12.5px;color:var(--muted)}
.perm-profile.active{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 8%,var(--card))}
.perm-profile:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.perm-menu{margin:0 0 12px;padding:0;border:0}
.perm-menu legend{margin:0 0 6px;padding:0;font-size:15px;font-weight:700;color:var(--ink)}
.perm-item{display:flex;align-items:flex-start;gap:12px;padding:10px 2px;border-top:1px solid var(--line);cursor:pointer}
.perm-item:first-of-type{border-top:0}
.perm-item input{flex:none;width:20px;height:20px;margin-top:1px;accent-color:var(--brass)}
.perm-item b{display:block;font-weight:600;color:var(--ink)}
.perm-item small{display:block;font-size:12.5px;color:var(--muted)}
.perm-item.perm-off{opacity:.45;cursor:default}
@media (max-width:640px){.perm-profiles{grid-template-columns:minmax(0,1fr)}}

/* Fecho do dia sem «Ver a divisão do dinheiro» (Definições → Permissões): sem a % do negócio, o que fica para ele e o que se paga. */
#clPage[data-split="0"] .cl-split{display:none}
#clPage[data-split="0"] .cx-totals{grid-template-columns:minmax(0,1fr)}
