/* Backoffice da Karga (handoff 1 do backoffice, tokens da landing §2). Único estilo das telas:
   a CSP não aceita estilo inline (T-031). Medidas do quadro-backoffice-r1.html e dos screenshots. */

@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/Geist.ttf) format('truetype')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/GeistMono.ttf) format('truetype')}

:root{
  --color-bg:#F5F6F3;--color-surface:#FFFFFF;--color-bg-alt:#EEF0EC;
  --color-text:#14181B;--color-text-2:#454C52;--color-text-muted:#586068;
  --color-border:#DFE2DD;--color-border-strong:#8A928C;
  --color-accent:#1F7A55;--color-accent-strong:#18664A;--color-accent-soft:#E3F0E8;--color-focus-ring:#CFE6D9;
  --color-alert:#8F1D14;--color-alert-soft:#FDECEA;--color-on-dark-2:#C9D0CC;
  --veil:rgba(20,24,27,.35);
  --font-sans:'Geist',system-ui,sans-serif;--font-mono:'Geist Mono',ui-monospace,monospace;
  /* Barra lateral e painel: 1440 e 1024 (handoff §0 e §10; a barra mede 248 + 1 de borda
     nos screenshots, que é a largura de conteúdo do quadro mais o recuo). */
  --sidebar:249px;--side-panel:488px
}
/* O painel lateral mede 440 (380 em 1024) de conteúdo no quadro; nos screenshots, com o
   recuo, 488 e 428. A ficha do profissional mede 508 nas duas larguras (quadro: 460). */
@media (max-width:1279px){:root{--sidebar:217px;--side-panel:428px}}

*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{background:var(--color-bg);color:var(--color-text);font:400 14px/1.4 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
[hidden]{display:none!important}
.mono{font-family:var(--font-mono)}

/* Moldura das telas de quem entrou */
.app{display:flex;height:100vh;overflow:hidden}
.sidebar{flex:none;width:var(--sidebar);background:var(--color-surface);border-right:1px solid var(--color-border);padding:20px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.sidebar__brand{display:flex;align-items:center;gap:8px;padding:0 10px 14px;font:600 18px/1 var(--font-sans);letter-spacing:-.03em}
.sidebar__brand .brand-tag{font:500 10px/1 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted);padding-top:3px}
.sidebar__section{padding:10px 10px 4px;font:500 10px/1 var(--font-mono);letter-spacing:.08em;color:var(--color-text-muted)}
.sidebar__link{min-height:36px;padding:0 10px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;font:500 14px/1 var(--font-sans);color:var(--color-text)}
.sidebar__link:hover{background:var(--color-bg-alt)}
.sidebar__link.is-active{background:var(--color-bg-alt);font-weight:600}
.sidebar__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}
.sidebar__count{font:500 11px/1 var(--font-mono);padding:4px 7px;border-radius:999px;background:var(--color-text);color:var(--color-bg)}
.sidebar__spacer{flex:1}
.sidebar__me{padding:10px;border-radius:12px;background:var(--color-bg-alt);display:flex;flex-direction:column;gap:4px}
.sidebar__me-name{font:600 13px/1.2 var(--font-sans)}
.sidebar__me-meta{font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted)}
.sidebar__me-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sidebar__logout{display:contents}
.sidebar__me-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sidebar__logout-btn{border:0;background:none;padding:0;cursor:pointer;font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted)}
.sidebar__logout-btn:hover{text-decoration:underline}
.sidebar__logout-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}

.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}
.page-header{flex:none;padding:20px 28px 16px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:1px solid var(--color-border)}
.page-header__text{display:flex;flex-direction:column;gap:6px;min-width:0}
.page-header__title{font:600 26px/1.1 var(--font-sans);letter-spacing:-.03em}
.page-header__subtitle{font:400 14px/1.4 var(--font-sans);color:var(--color-text-2)}
.page-header__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.page-body{flex:1;min-height:0;padding:20px 28px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start}

/* Cartão */
.card{border-radius:16px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card__title{font:600 16px/1.2 var(--font-sans)}
.card__text{font:400 14px/1.45 var(--font-sans);color:var(--color-text-2)}

/* Tabela: cabeçalho em mono 11, linhas de 44 a 56 px, destaque com barra de 3 px. Cada tabela
   define as colunas numa classe própria (grid-template-columns), porque a CSP não aceita estilo
   inline. */
.table__head,.table__row{display:grid;gap:12px;padding:0 14px}
.table__head{padding-bottom:10px;border-bottom:1px solid var(--color-border)}
.table__th{font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted)}
/* O quadro do handoff mede em content-box: linha de 44 + 3 + 3 de recuo + 1 de borda = 51 px
   nos screenshots. Aqui (border-box) as alturas mínimas já somam o recuo e a borda. */
.table__row{align-items:center;min-height:51px;padding-top:3px;padding-bottom:3px;border-bottom:1px solid var(--color-border)}
.table__row.is-highlight{background:var(--color-bg-alt);box-shadow:inset 3px 0 0 var(--color-text)}
.table__cell{min-width:0;font:400 14px/1.35 var(--font-sans)}
.table__label{font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-2)}
.table__number{font:500 14px/1 var(--font-mono);font-variant-numeric:tabular-nums}

/* Pílulas e selos */
.pill{flex:none;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font:500 11px/1 var(--font-mono);letter-spacing:.04em;white-space:nowrap}
.pill--neutral{background:var(--color-bg-alt);color:var(--color-text-2)}
.pill--dark{background:var(--color-text);color:var(--color-bg)}
.pill--accent{background:var(--color-accent-soft);color:var(--color-accent-strong)}
.pill--alert{background:var(--color-alert-soft);color:var(--color-alert)}

/* Botões: escuro (padrão do handoff), primário accent, secundário com borda e só texto */
.btn{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 14px/1 var(--font-sans);white-space:nowrap;cursor:pointer;background:transparent;color:var(--color-text)}
.btn--sm{min-height:36px;padding:0 12px;font-size:13px}
.btn--dark{background:var(--color-text);color:var(--color-bg)}
.btn--primary{background:var(--color-accent);color:#fff}
.btn--primary:hover{background:var(--color-accent-strong)}
.btn--secondary{box-shadow:inset 0 0 0 1.5px var(--color-text)}
.btn--ghost{background:transparent}
.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.btn:disabled{opacity:.5;cursor:default}

/* Painel lateral com véu */
.veil{position:fixed;inset:0;background:var(--veil);z-index:40}
.side-panel{position:fixed;top:0;right:0;bottom:0;width:var(--side-panel);background:var(--color-surface);box-shadow:-20px 0 40px -20px rgba(20,24,27,.4);padding:24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;z-index:41}
.side-panel__top{display:flex;justify-content:space-between;align-items:center}
.side-panel__title{font:600 20px/1.2 var(--font-sans);letter-spacing:-.02em}
.side-panel__close{font:400 22px/1 var(--font-sans);color:var(--color-text-muted)}

/* Aviso de ação feita: faixa escura no canto, some sozinha em 6 s */
.toast{position:fixed;right:28px;bottom:24px;padding:12px 16px;border-radius:14px;background:var(--color-text);color:var(--color-bg);font:500 14px/1.3 var(--font-sans);box-shadow:0 20px 40px -16px rgba(20,24,27,.5);z-index:50;animation:toast-life 6s forwards}
.toast a{text-decoration:underline}
@keyframes toast-life{0%,95%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){.toast{animation-timing-function:steps(1,end)}}

/* Telas sem conteúdo ainda */
.empty-text{font:400 14px/1.45 var(--font-sans);color:var(--color-text-2)}

/* Login do time (handoff 1 §1) */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login__box{width:420px;max-width:calc(100% - 48px);display:flex;flex-direction:column;gap:20px}
.login__brand{display:flex;align-items:center;gap:10px;font:600 22px/1 var(--font-sans);letter-spacing:-.03em}
.login__brand .brand-tag{font:500 11px/1 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted);padding-top:4px}
.login__title{font:600 28px/1.15 var(--font-sans);letter-spacing:-.03em}
.login__text{font:400 14px/1.45 var(--font-sans);color:var(--color-text-2)}
.login__form{display:flex;flex-direction:column;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field__label{font:600 14px/1 var(--font-sans)}
.field__input{min-height:48px;padding:0 14px;border:0;border-radius:12px;background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-border-strong);font:400 15px/1.45 var(--font-sans);color:var(--color-text);outline:none}
.field__input:focus{box-shadow:inset 0 0 0 1.5px var(--color-accent),0 0 0 3px var(--color-focus-ring)}
.code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.code__box{width:100%;height:60px;border:0;border-radius:12px;background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-border);text-align:center;font:500 26px/1 var(--font-mono);color:var(--color-text);outline:none;caret-color:var(--color-accent)}
.code__box:not(:placeholder-shown){box-shadow:inset 0 0 0 1.5px var(--color-border-strong)}
.code__box:focus{box-shadow:inset 0 0 0 2px var(--color-accent)}
.code.is-wrong .code__box{box-shadow:inset 0 0 0 2px var(--color-text)}
.login__alert{font:500 14px/1.4 var(--font-sans)}
.login__row{display:flex;justify-content:space-between;align-items:center}
.login__wait{font:500 13px/1 var(--font-mono);color:var(--color-text-muted)}
.inline-form{display:contents}
.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}

/* Peças comuns das telas da rede (handoff 1 §2 e §4) */
.eyebrow{font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-muted)}
.mono-note{font:500 11px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--color-text-2)}
.card__h{font:600 16px/1 var(--font-sans)}
.card__head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.card__foot{font:400 13px/1.4 var(--font-sans);color:var(--color-text-muted)}
.divider{height:1px;background:var(--color-border)}
.who{display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.who__name{font:500 14px/1.2 var(--font-sans);overflow:hidden;text-overflow:ellipsis}
.who__stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.who__link:hover .who__name{text-decoration:underline}
.avatar{flex:none;width:26px;height:26px;border-radius:999px;background:var(--color-bg-alt);font:600 10px/26px var(--font-sans);text-align:center}
.avatar--lg{width:52px;height:52px;font:600 16px/52px var(--font-sans)}
.pill--sm{padding:3px 7px}
.pill--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--color-border-strong);color:var(--color-text-2)}
.pill--outline svg path{stroke:var(--color-text-2)}
.pill--plain{letter-spacing:0}
.pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pills--start{justify-content:flex-start}
a.pill:hover{box-shadow:inset 0 0 0 1px var(--color-border-strong)}
a.pill.pill--dark:hover{box-shadow:none}
.muted{color:var(--color-text-muted)}
.strong{font-weight:500}
.num{font:500 14px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text)}
.num--2{color:var(--color-text-2)}
.num--muted{color:var(--color-text-muted)}
.num--ok{color:var(--color-accent-strong)}
.bar{display:block;width:100%;height:4px}
.bar__track{fill:var(--color-bg-alt)}
.bar__fill{fill:var(--color-accent)}
.bar__fill--late{fill:var(--color-text)}
.btn--light{min-height:40px;padding:0 14px;border-radius:10px;background:var(--color-bg);color:var(--color-text)}
.btn--dark.btn--sm,.btn--secondary.btn--sm{min-height:36px}
.only-narrow{display:none!important}
@media (max-width:1279px){.only-wide{display:none!important}.only-narrow{display:inline-flex!important}}
.textarea{display:block;width:100%;min-height:92px;padding:10px 12px;border:0;border-radius:12px;background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-border-strong);font:400 14px/1.45 var(--font-sans);color:var(--color-text);resize:vertical;outline:none}
.textarea:focus{box-shadow:inset 0 0 0 1.5px var(--color-accent),0 0 0 3px var(--color-focus-ring)}
.textarea--lg{min-height:100px;padding:12px 14px;font-size:15px}
.field__help{font:400 12px/1.4 var(--font-sans);color:var(--color-text-muted)}
.form-error{font:500 13px/1.4 var(--font-sans);color:var(--color-text)}
.panel-note{font:400 13px/1.45 var(--font-sans);color:var(--color-text-2)}
.info-box{padding:10px 12px;border-radius:12px;background:var(--color-bg-alt);font:400 13px/1.45 var(--font-sans);color:var(--color-text-2)}
.info-box b{font-weight:600;color:var(--color-text)}
.side-panel--wide{width:508px}
.side-panel__spacer{flex:1}
.side-panel__actions{display:flex;gap:8px;justify-content:flex-end}
.side-panel form{display:flex;flex-direction:column;gap:16px;flex:1}

/* Rede agora (handoff 1 §2) */
.card__stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.card__stack--roomy{gap:20px}
.net-alert{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;border-radius:14px;background:var(--color-text);color:var(--color-bg)}
.net-alert__text{display:flex;flex-direction:column;gap:3px}
.net-alert__title{font:600 15px/1.3 var(--font-sans)}
.net-alert__sub{font:400 13px/1.4 var(--font-sans);color:var(--color-on-dark-2)}
.net-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.stat{border-radius:16px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.stat--lg{padding:12px;gap:12px}
.stat__value{font:500 24px/1 var(--font-mono);letter-spacing:-.03em}
.stat__note{font:400 13px/1.3 var(--font-sans);color:var(--color-text-2)}
.shift-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.shift-row__meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sla{display:grid;grid-template-columns:minmax(0,1fr) 64px 64px;gap:10px}
.sla--row{align-items:center;min-height:28px}
.sla--roomy{min-height:36px}
.sla__num{text-align:right;font:500 14px/1 var(--font-mono);color:var(--color-accent-strong)}
.sla__num.is-below{color:var(--color-text)}
.sla__num.is-none{color:var(--color-text-muted)}
.right{text-align:right}
.cols-tasks{grid-template-columns:120px 80px minmax(0,1.2fr) 160px 190px minmax(0,1fr) 112px}
.due{display:flex;flex-direction:column;gap:6px}
.due__left{font:500 14px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-2)}
.net-empty{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.net-empty__side{display:flex;flex-direction:column;gap:16px}
.empty{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.empty__title{font:600 20px/1.3 var(--font-sans)}
.empty__text{font:400 15px/1.45 var(--font-sans);color:var(--color-text-2)}
.empty__mark path{stroke:#B9C0BB}
@media (max-width:1279px){
  .cols-tasks{grid-template-columns:88px 46px minmax(0,1fr) 108px 150px 112px}
  .cols-tasks .col-state{display:none}
  .late-time{display:none}
  .net-empty{grid-template-columns:minmax(0,1fr) 230px}
}

/* Painel de reatribuir */
.ctx-box{padding:12px 14px;border-radius:12px;background:var(--color-bg-alt);display:flex;flex-direction:column;gap:6px}
.ctx-box__top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ctx-box__text{font:400 14px/1.4 var(--font-sans)}
.choices{display:flex;flex-direction:column;gap:16px}
.choice{position:relative;min-height:80px;padding:10px 12px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--color-border);background:var(--color-surface);display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice:has(input:checked){box-shadow:inset 0 0 0 2px var(--color-accent);background:var(--color-accent-soft)}
.choice:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.choice.is-disabled{background:var(--color-bg-alt);opacity:.7;cursor:default}
.choice.is-disabled .who__name{color:var(--color-text-2)}
.choice__main{display:flex;flex-direction:column;gap:4px}
.choice__sub{padding-left:34px;font:400 12px/1.3 var(--font-sans);color:var(--color-text-2)}
.choice--compact{min-height:52px}
.choice--compact .choice__sub{padding-left:0}
.choice--compact .choice__main{flex-direction:row;align-items:center;gap:10px}

/* Profissionais (handoff 1 §4) */
.page-body--pros{gap:20px}
.cols-pros{grid-template-columns:minmax(0,1.6fr) 130px 110px 80px 84px 84px 64px 116px 184px}
.table__row.cols-pros{min-height:69px;padding-top:6px;padding-bottom:6px}
.pros-cards{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}
.card__actions{display:flex;gap:8px}
@media (max-width:1279px){
  .cols-pros{grid-template-columns:minmax(0,1fr) 100px 64px 72px 72px 48px 116px}
  .cols-tasks .pill{white-space:normal;text-align:left;line-height:1.3}
  .cols-pros .col-wide{display:none}
  .pros-cards{grid-template-columns:minmax(0,1fr) 260px}
}
.pro-head{display:flex;align-items:center;gap:12px}
.pro-head__text{display:flex;flex-direction:column;gap:5px}
.pro-head__name{font:600 20px/1.2 var(--font-sans)}
.pro-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.action-list{display:flex;flex-direction:column;gap:8px}
.action-row{width:100%;min-height:72px;padding:8px 14px;border:0;border-radius:12px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;cursor:pointer;color:var(--color-text)}
.action-row:hover{box-shadow:inset 0 0 0 1px var(--color-border-strong)}
.action-row--static{cursor:default}
.action-row--static:hover{box-shadow:inset 0 0 0 1px var(--color-border)}
.action-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.action-row__text{display:flex;flex-direction:column;gap:3px}
.action-row__title{font:600 14px/1.2 var(--font-sans)}
.action-row__sub{font:400 13px/1.3 var(--font-sans);color:var(--color-text-2)}
.action-row__go{color:var(--color-text-muted)}
.history{display:flex;flex-direction:column;gap:6px;font:400 13px/1.45 var(--font-sans);color:var(--color-text-2)}
.field__label--sm{font:600 14px/1 var(--font-sans)}

/* Cadastros (handoff 1 §4) */
.signups{display:grid;grid-template-columns:280px minmax(0,1fr) 340px;gap:20px;align-items:start}
.pending{display:flex;flex-direction:column}
.pending-item{min-height:74px;padding:8px 12px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.pending-item.is-selected{background:var(--color-bg-alt);box-shadow:inset 3px 0 0 var(--color-text)}
.pending-item__text{display:flex;flex-direction:column;gap:4px}
.pending-item__name{font:600 14px/1.2 var(--font-sans)}
.pending-foot{font:400 12px/1.4 var(--font-sans);color:var(--color-text-muted)}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border)}
.kv__value{font:500 15px/1.4 var(--font-sans)}
.council{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--color-bg-alt)}
.council__text{display:flex;flex-direction:column;gap:4px}
.council__title{font:600 14px/1.3 var(--font-sans)}
.council__sub{font:400 13px/1.4 var(--font-sans);color:var(--color-text-2)}
.check-row{display:flex;align-items:center;gap:12px;min-height:44px;font:500 15px/1.3 var(--font-sans);cursor:pointer}
.check{flex:none;appearance:none;width:24px;height:24px;margin:0;border-radius:7px;box-shadow:inset 0 0 0 1.5px var(--color-border-strong);background:var(--color-surface);cursor:pointer}
.check:checked{box-shadow:none;background:var(--color-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5 L6.5 12 L13 4.5' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.check:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.reasons{display:flex;flex-direction:column;gap:6px}
.reason-opt{position:relative;min-height:40px;padding:0 12px;border-radius:10px;display:flex;align-items:center;gap:10px;box-shadow:inset 0 0 0 1px var(--color-border);font:500 14px/1.2 var(--font-sans);cursor:pointer}
.reason-opt input{position:absolute;opacity:0;pointer-events:none}
.reason-opt:has(input:checked){box-shadow:inset 0 0 0 2px var(--color-text);font-weight:600}
.reason-opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.reject{display:flex;flex-direction:column;gap:12px}
@media (max-width:1279px){.signups{grid-template-columns:230px minmax(0,1fr)}}

/* Extrato (handoff 1 §4) */
.statement{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
.money{display:grid;grid-template-columns:minmax(0,1fr) 90px 140px;gap:10px}
.money--row{align-items:center;min-height:45px;border-bottom:1px solid var(--color-border)}
.money__label{font:400 14px/1.3 var(--font-sans)}
.money__total{display:flex;justify-content:space-between;align-items:baseline;padding-top:6px}
.money__total-label{font:600 17px/1 var(--font-sans)}
.money__total-value{font:500 28px/1 var(--font-mono)}
.bonus-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:41px;border-bottom:1px solid var(--color-border)}
.bonus-row__value{display:flex;gap:8px;align-items:center;flex:none}
.bonus-missing{font:400 13px/1.4 var(--font-sans);color:var(--color-text-2)}
.bonus-missing b{font-weight:600;color:var(--color-text)}
.bonus-result{font:600 14px/1.4 var(--font-sans)}
.toast{display:flex;align-items:center;gap:14px}
.toast a{font-weight:600;text-underline-offset:3px}
@media (max-width:1279px){.statement{grid-template-columns:minmax(0,1fr) 300px}}

/* Auditoria amostral (handoff 1 §3): amostra 300, revisão flexível, rubrica 340; em 1024 a
   rubrica vai para baixo da revisão (§10). */
.audit{display:grid;grid-template-columns:300px minmax(0,1fr) 340px;gap:20px;align-items:start}
.dark-note{padding:10px 12px;border-radius:12px;background:var(--color-text);color:var(--color-bg);font:500 13px/1.4 var(--font-sans)}
.sample-item{min-height:74px;padding:8px 12px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sample-item:hover{background:var(--color-bg-alt)}
.sample-item.is-selected{background:var(--color-bg-alt);box-shadow:inset 3px 0 0 var(--color-text)}
.sample-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.sample-item__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.sample-item__title{font:600 14px/1.2 var(--font-sans)}
.audit__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.audit__head-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.audit__title{font:600 18px/1.2 var(--font-sans)}
.eyebrow--strong{color:var(--color-text)}
.audit-alerts{display:flex;flex-direction:column;gap:6px}
.audit-alert{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--color-bg-alt);font:400 14px/1.35 var(--font-sans)}
.audit-alert.is-resolved{background:transparent;box-shadow:inset 0 0 0 1px var(--color-border)}
.num-b{font-family:var(--font-mono);font-weight:500}
.pill--plain-mono{background:var(--color-bg-alt);color:var(--color-text-2)}
.change-row{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border)}
.change-row__before{font:400 14px/1.35 var(--font-sans);color:var(--color-text-2);text-decoration:line-through;text-decoration-color:var(--color-border-strong)}
.change-row__arrow{color:var(--color-text-muted)}
.change-row__after{font:600 14px/1.35 var(--font-sans)}
.audit__why{font:400 14px/1.45 var(--font-sans)}
.rubric{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:12px}
.rubric__rows{display:flex;flex-direction:column}
.rubric__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:41px;border-bottom:1px solid var(--color-border)}
.rubric__item{font:500 14px/1.3 var(--font-sans)}
.seg{display:flex;gap:4px}
.seg__opt{position:relative;min-width:80px;min-height:32px;padding:0 10px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font:500 13px/1 var(--font-sans);color:var(--color-text-2);box-shadow:inset 0 0 0 1px var(--color-border);cursor:pointer}
.seg__opt input,.score__opt input{position:absolute;opacity:0;pointer-events:none}
.seg__opt--ok:has(input:checked){background:var(--color-accent-soft);color:var(--color-accent-strong);box-shadow:none;font-weight:600}
.seg__opt--fail:has(input:checked){background:var(--color-text);color:var(--color-bg);box-shadow:none;font-weight:600}
.seg__opt:has(input:focus-visible),.score__opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.score{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.score__opt{position:relative;min-height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font:500 18px/1 var(--font-mono);box-shadow:inset 0 0 0 1px var(--color-border);cursor:pointer}
.score__opt:has(input:checked){background:var(--color-text);color:var(--color-bg);box-shadow:none}
.rubric:disabled .seg__opt,.rubric:disabled .score__opt{cursor:default}
.rubric .field{gap:12px}
.rubric__note{min-height:96px}
@media (max-width:1279px){
  .audit{grid-template-columns:230px minmax(0,1fr)}
  .audit__list{grid-row:span 2}
  .audit__rubric{grid-column:2}
}

/* Planos canário (handoff 1 §3) */
.cols-canary{grid-template-columns:110px minmax(0,1.6fr) minmax(0,1fr) 120px minmax(0,1fr) 120px}
.table__row.cols-canary{min-height:69px;padding-top:6px;padding-bottom:6px}
.table__cell--span{grid-column:1/-1}
.two-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:1279px){.cols-canary{grid-template-columns:70px minmax(0,1.3fr) minmax(0,1fr) 56px minmax(0,1fr) 56px}}

/* Configuração (handoff 1 §5): cartão de 760 px, linhas com o stepper de 200 px. */
.settings{display:grid;grid-template-columns:minmax(0,760px)}
.setting{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--color-border)}
.setting__text{display:flex;flex-direction:column;gap:5px;min-width:0}
.setting__label{font:600 15px/1.3 var(--font-sans)}
.setting__help{font:400 13px/1.45 var(--font-sans);color:var(--color-text-2)}
.setting__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;align-items:center}
.setting__tag{padding:4px 7px;border-radius:999px;background:var(--color-bg-alt);font:500 10px/1 var(--font-mono);letter-spacing:.04em;color:var(--color-text-2)}
.setting__changed{font:500 10px/1.6 var(--font-mono);letter-spacing:.04em;color:var(--color-text-muted)}
.setting__changed:hover{text-decoration:underline}
.stepper{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:6px;align-items:center}
.stepper__btn{height:40px;border:0;border-radius:10px;background:transparent;box-shadow:inset 0 0 0 1px var(--color-border-strong);font:500 18px/1 var(--font-mono);color:var(--color-text);cursor:pointer}
.stepper__btn:disabled{opacity:.4;cursor:default}
.stepper__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.stepper__value{text-align:center;font:500 20px/1 var(--font-mono);white-space:nowrap}
.stepper__value.is-changed{color:var(--color-accent-strong)}
.stepper__unit{font-size:12px;color:var(--color-text-muted)}
.stepper--inline{display:inline-flex;gap:4px;vertical-align:middle}
.stepper--inline .stepper__btn{width:22px;height:22px;border-radius:6px;font-size:13px}
.stepper--inline .stepper__value{font:500 13px/1 var(--font-mono)}
.settings__foot{font:400 13px/1.45 var(--font-sans);color:var(--color-text-muted)}
.history-list{display:flex;flex-direction:column;gap:8px}
.history-item{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid var(--color-border)}
.history-item__change{font:500 14px/1.3 var(--font-mono)}

/* Papéis (handoff 1 §9) */
.cols-team{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) 150px 140px 130px}
.table__row.cols-team{min-height:57px;padding-top:4px;padding-bottom:4px}
.strong-600{font-weight:600}
.ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-lock{font:400 12px/1.3 var(--font-sans);color:var(--color-text-muted)}
.team-add{display:grid;grid-template-columns:minmax(0,1fr) 300px auto;gap:12px;align-items:end}
.team-add__help{font-size:13px}
.team-add__roles{border:0;margin:0;padding:0;min-width:0}
.team-add__roles legend{padding:0;margin-bottom:8px}
.team-add__go{padding-bottom:26px}
.role-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.role-pick__opt{position:relative;min-height:36px;padding:0 12px;border-radius:12px;box-shadow:inset 0 0 0 1.5px var(--color-text);display:inline-flex;align-items:center;justify-content:center;font:600 13px/1 var(--font-sans);cursor:pointer}
.role-pick__opt input{position:absolute;opacity:0;pointer-events:none}
.role-pick__opt:has(input:checked){background:var(--color-text);color:var(--color-bg);box-shadow:none}
.role-pick__opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.dark-band{padding:12px 14px;border-radius:12px;background:var(--color-text);color:var(--color-bg);display:flex;flex-direction:column;gap:4px}
.dark-band__title{font:600 14px/1.3 var(--font-sans)}
.dark-band__text{font:400 13px/1.4 var(--font-sans);color:var(--color-on-dark-2)}
@media (max-width:1279px){
  .cols-team{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) 100px 80px 120px}
  .team-add{grid-template-columns:minmax(0,1fr) 240px auto}
}

/* Trilha (handoff 1 §9) */
.cols-trail{grid-template-columns:130px 120px minmax(0,1.4fr) 140px minmax(0,1fr)}
.table__row.cols-trail{min-height:57px;padding-top:4px;padding-bottom:4px}
.table__row.is-denied{background:var(--color-bg-alt)}
.trail-what{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.trail-about{font:500 13px/1.3 var(--font-mono);color:var(--color-text-2)}
.text-2{color:var(--color-text-2)}
.trail-foot{font:400 14px/1.45 var(--font-sans);color:var(--color-text-muted)}
.menu{position:relative}
.menu summary{list-style:none;cursor:pointer}
.menu summary::-webkit-details-marker{display:none}
.menu summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.menu__list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;padding:6px;border-radius:12px;background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border),0 16px 32px -16px rgba(20,24,27,.35);display:flex;flex-direction:column}
.menu__opt{padding:8px 10px;border-radius:8px;font:500 11px/1.3 var(--font-mono);letter-spacing:.04em;color:var(--color-text-2)}
.menu__opt:hover,.menu__opt.is-active{background:var(--color-bg-alt);color:var(--color-text)}
.rubric__note{resize:none}

/* Peças comuns das telas de alunos (handoff 1 §6 a §8): as tabelas destas telas usam recuo de
   12 e linhas de 48 + 4 + 4 + 1 = 57 px, como o quadro. */
.card__text--muted{color:var(--color-text-muted)}
.table__row--57{min-height:57px;padding-top:4px;padding-bottom:4px}
.cols-exports,.cols-invites,.cols-funnel{padding-left:12px;padding-right:12px}
.card__stack--16{gap:16px}
.card__actions--wrap{flex-wrap:wrap}

/* Suporte ao aluno (handoff 1 §6) */
.search-row{display:flex;gap:8px;align-items:center}
.search-field{flex:1;min-width:0;min-height:48px;padding:0 14px;border-radius:12px;background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-border-strong);display:flex;align-items:center;gap:10px;cursor:text}
.search-field:focus-within{box-shadow:inset 0 0 0 1.5px var(--color-accent),0 0 0 3px var(--color-focus-ring)}
.search-field svg{flex:none}
.search-field__input{flex:1;min-width:0;border:0;background:transparent;outline:none;font:500 16px/1 var(--font-mono);color:var(--color-text)}
.search-field__input::placeholder{font:400 15px/1 var(--font-sans);color:var(--color-text-muted)}
.search-field--compact{flex:none}
/* D-044: a busca do cabeçalho aceita nome e e-mail, então cabe um e-mail curto (era 4ch). */
.search-field--compact .search-field__input{flex:none;width:22ch}
.cols-exports{grid-template-columns:120px minmax(0,1fr) 160px 140px}
.support-head{display:flex;flex-direction:column;gap:5px}
.support-title{font:600 20px/1.2 var(--font-sans)}
.kv-list{display:flex;flex-direction:column}
.kv--tight{padding:11px 0}
.kv-list .kv:last-child{border-bottom:0}
.kv__value--sm{font:500 14px/1.4 var(--font-sans)}
.export-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--color-bg-alt)}
.export-item--sent{background:transparent;box-shadow:inset 0 0 0 1px var(--color-border)}
.export-item__text{display:flex;flex-direction:column;gap:4px}
.export-item__title{font:600 14px/1.3 var(--font-sans)}
.consent-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:41px;border-bottom:1px solid var(--color-border)}
.consent-row__label{font:500 14px/1.3 var(--font-sans)}
.consent-row__state{display:flex;gap:8px;align-items:center}
.note-item{display:flex;flex-direction:column;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}
.note-item__body{font:400 14px/1.45 var(--font-sans);color:var(--color-text)}
.note-field{display:flex;flex-direction:column}
.note-field__input{min-height:92px;padding:10px 14px;font-size:15px;resize:none}
.note-field__input::placeholder{color:var(--color-text-muted)}
.support-deleted{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}

/* Alunos (D-044): sem par no handoff; mesma tabela das telas de alunos (recuo de 12, linhas de
   57 px). A linha inteira é o link da ficha. Em 1024, Vínculo e Convite saem (estão na ficha). */
.cols-students{grid-template-columns:64px minmax(0,1fr) minmax(0,1.3fr) 132px 72px 104px minmax(0,1fr) 128px;padding-left:12px;padding-right:12px}
.table__row--link{color:inherit;text-decoration:none}
.table__row--link:hover,.table__row--link:focus-visible{background:var(--color-bg-alt)}
@media (max-width:1279px){
  .cols-students{grid-template-columns:52px minmax(0,1fr) minmax(0,1.2fr) 126px 96px 116px;column-gap:10px}
  .cols-students .col-wide{display:none}
}

/* Convites (handoff 1 §7) */
.cols-invites{grid-template-columns:110px minmax(0,1fr) 110px 150px minmax(0,1.2fr) 130px}
.side-panel form.invite-form{gap:14px}
.field__help--13{font-size:13px}
.invite-pick{border:0;margin:0;padding:0;min-width:0}
.invite-pick legend{padding:0;margin-bottom:8px}
.pick2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pick2__opt{position:relative;min-height:44px;padding:0 16px;border-radius:12px;box-shadow:inset 0 0 0 1.5px var(--color-text);display:inline-flex;align-items:center;justify-content:center;font:600 14px/1 var(--font-sans);cursor:pointer}
.pick2__opt input{position:absolute;opacity:0;pointer-events:none}
.pick2__opt:has(input:checked){background:var(--color-text);color:var(--color-bg);box-shadow:none}
.pick2__opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.invite-note{min-height:84px;padding:10px 14px;font-size:15px}
.invite-done{display:flex;flex-direction:column;gap:14px}
.invite-code{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;border-radius:12px;background:var(--color-bg-alt)}
.invite-code__value{font:500 30px/1 var(--font-mono);letter-spacing:.12em}
.invite-msg{padding:14px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--color-border);font:400 14px/1.55 var(--font-sans);overflow-wrap:anywhere}
.invite-msg__url{font-family:var(--font-mono);font-size:13px}
.invite-msg__code{font-family:var(--font-mono);font-weight:500}
.funnel-bar{display:grid;grid-template-columns:180px minmax(0,1fr) 60px;gap:12px;align-items:center;min-height:32px}
.funnel-bar__label{font:500 14px/1.2 var(--font-sans)}
.funnel-bar__track{display:block}
.funnel-bar__bg{fill:var(--color-bg-alt)}
.funnel-bar__fill{fill:var(--color-text)}
.cols-funnel{grid-template-columns:minmax(70px,1fr) 80px 80px 110px 100px}
@media (max-width:1279px){
  .funnel-bar{grid-template-columns:180px minmax(0,1fr) 60px}
  .cols-funnel{grid-template-columns:minmax(52px,1fr) 50px 44px 72px 60px;column-gap:8px}
  .cols-invites{grid-template-columns:110px minmax(0,1fr) 110px 150px minmax(0,1.2fr) 130px}
}

/* Resumo diário (handoff 1 §8) */
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.kpi{border-radius:16px;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.kpi__value{font:500 26px/1 var(--font-mono);letter-spacing:-.03em}
.kpi__note{font:400 12px/1.3 var(--font-sans);color:var(--color-text-2)}
.sparks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.spark__head{display:flex;justify-content:space-between;gap:8px}
.spark{display:block;width:100%;height:48px}
.spark__bar{fill:var(--color-text);opacity:.28}
.spark__bar.is-today{fill:var(--color-accent);opacity:1}
.spark__foot{display:flex;justify-content:space-between}
.side-panel:has(.invite-form),.side-panel:has(.invite-done){gap:14px}
.invite-note{resize:none}
