/* Portal de Gestão de Férias — estilos.
   Unificação (v34) dos ficheiros app-v2 … app-v33, pela ordem em que eram carregados. */

/* === base (antigo <style> do index.html) === */

:root{--ink:#172629;--muted:#68797c;--line:#dde5e6;--canvas:#edf2f3;--paper:#fff;--brand:#143b3f;--brand2:#20565a;--orange:#ed9348;--orange-soft:#fff0e4;--green:#32796e;--green-soft:#dff0ec;--red:#b64e51;--red-soft:#fce8e8;--weekend:#f1f4f4;--shadow:0 10px 30px rgba(18,50,54,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.45 Inter,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{min-height:100vh;display:grid;grid-template-columns:235px minmax(0,1fr)}.side{background:var(--brand);color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:28px}.brand{height:74px;display:flex;align-items:center}.brand img{display:block;width:178px;max-height:68px;object-fit:contain;object-position:left center}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;color:#c8dcda;border-radius:10px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:11px}.nav button:hover,.nav button.active{background:rgba(255,255,255,.12);color:#fff}.nav svg{width:19px;height:19px}.side-footer{margin-top:auto;color:#a9c4c2;font-size:13px}.main{padding:28px;min-width:0}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.top h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em}.top p{margin:4px 0 0;color:var(--muted)}.year{display:flex;align-items:center;gap:10px}.year select,.control{border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);padding:9px 12px}.avatar{width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:600}.page{display:none}.page.active{display:block}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:26px;font-weight:600;margin-top:4px}.stat-note{font-size:13px;color:var(--muted)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.panel-head h2{margin:0;font-size:19px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.key{display:flex;align-items:center;gap:6px}.dot{width:11px;height:11px;border-radius:3px;background:var(--green)}.dot.half{background:var(--orange)}.dot.pending{background:transparent;border:2px solid var(--orange)}.table-wrap{overflow:auto}.calendar{border-collapse:separate;border-spacing:0;min-width:880px;width:100%;font-size:13px}.calendar th,.calendar td{height:38px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}.calendar thead th{color:var(--muted);font-weight:500}.calendar th:first-child,.calendar td:first-child{position:sticky;left:0;z-index:2;background:var(--paper);text-align:left;padding:0 12px;min-width:150px;border-left:1px solid var(--line)}.calendar thead th:first-child{z-index:3}.weekend{background:var(--weekend)}.day{border:0;width:100%;height:100%;background:transparent;color:inherit}.day:hover{box-shadow:inset 0 0 0 2px var(--orange)}.day.f{background:var(--green);color:#fff;font-weight:600}.day.t{background:var(--orange);color:#fff;font-weight:600}.detail{min-height:48px;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:14px}.detail strong{color:var(--ink)}.primary,.secondary,.ghost{border:0;border-radius:9px;padding:10px 14px}.primary{background:var(--orange);color:#263536;font-weight:600}.secondary{background:var(--brand);color:#fff}.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.person{border:1px solid var(--line);border-radius:13px;padding:15px}.person-top{display:flex;align-items:center;gap:10px}.initials{width:38px;height:38px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:600}.person h3{font-size:16px;margin:0}.person small{color:var(--muted)}.balance{display:flex;justify-content:space-between;align-items:flex-end;margin-top:15px}.balance b{font-size:23px}.progress{height:7px;background:var(--weekend);border-radius:20px;overflow:hidden;margin-top:9px}.progress span{display:block;height:100%;background:var(--green)}.requests{width:100%;border-collapse:collapse}.requests th,.requests td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.requests th{font-size:13px;color:var(--muted);font-weight:500}.badge{display:inline-flex;border-radius:20px;padding:4px 9px;font-size:12px;font-weight:600}.badge.approved{background:var(--green-soft);color:var(--green)}.badge.pending{background:var(--orange-soft);color:#9b571e}.summary-list{display:grid;gap:12px}.summary-row{display:grid;grid-template-columns:180px 1fr 70px;align-items:center;gap:12px}.summary-bar{height:12px;background:var(--weekend);border-radius:10px;overflow:hidden}.summary-bar span{display:block;height:100%;background:var(--green)}dialog{border:0;border-radius:16px;padding:0;max-width:500px;width:calc(100% - 28px);box-shadow:0 30px 80px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(8,26,29,.55)}.dialog-body{padding:22px;background:var(--paper);color:var(--ink)}.dialog-body h2{margin:0 0 18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--paper);color:var(--ink)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.toast{position:fixed;right:22px;bottom:22px;background:var(--brand);color:#fff;border-radius:10px;padding:12px 16px;box-shadow:var(--shadow);display:none}.toast.show{display:block}
@media(max-width:900px){.app{grid-template-columns:1fr}.side{padding:14px 16px;gap:12px}.brand{height:52px}.brand img{width:145px;max-height:48px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.side-footer{display:none}.main{padding:18px}.people-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.stats,.people-grid{grid-template-columns:1fr}.top{align-items:center}.top h1{font-size:23px}.top p{display:none}.year label{display:none}.main{padding:12px}.summary-row{grid-template-columns:110px 1fr 55px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
body:not(.authenticated) .app{visibility:hidden}


/* === app-v2 === */
:root{--weekend-strong:#d9e4e5;--holiday:#f8d7d0;--holiday-ink:#8b2929}
body{font-size:17px}.app{grid-template-columns:270px minmax(0,1fr)}.side{padding:26px 22px}.brand{height:125px;justify-content:center}.brand img{width:220px;max-height:118px;object-fit:contain;object-position:center}.nav button{font-size:16px;padding:13px 14px}.stat-label,.stat-note,.legend{font-size:14px}.panel-head h2{font-size:21px}.calendar{font-size:15px;min-width:980px}.calendar th,.calendar td{height:46px}.calendar th:first-child,.calendar td:first-child{min-width:180px;font-weight:500}.calendar .weekend{background:var(--weekend-strong)}.calendar .holiday{background:var(--holiday)}.calendar th.holiday{color:var(--holiday-ink);font-weight:700}.calendar th.today{box-shadow:inset 0 -4px 0 var(--orange)}.day{font-size:15px}.quarter-stack{display:grid;gap:22px}.month-block{border-top:2px solid var(--brand)}.month-title{display:flex;justify-content:space-between;align-items:center;padding:12px 2px 8px;font-size:18px;font-weight:600}.month-title small{font-size:14px;color:var(--muted);font-weight:400}.view-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-wrap{position:relative}.filter-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:290px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 18px 50px rgba(16,46,49,.2);display:none}.filter-panel.open{display:block}.filter-panel strong{display:block;margin-bottom:8px}.filter-option{display:flex;align-items:center;gap:9px;padding:8px 4px;font-size:15px}.filter-option input{width:18px;height:18px;accent-color:var(--green)}.holiday-label{display:inline-flex;align-items:center;gap:6px}.holiday-swatch{width:12px;height:12px;border-radius:3px;background:var(--holiday);border:1px solid #d89f95}.weekend-swatch{width:12px;height:12px;border-radius:3px;background:var(--weekend-strong);border:1px solid #b9cacc}.person.inactive{opacity:.6;background:#f1f3f3}.person-status{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.status-active{color:var(--green);font-weight:600}.status-inactive{color:var(--red);font-weight:600}.mini-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:14px}.empty-view{padding:35px;text-align:center;color:var(--muted)}@media(max-width:900px){.app{grid-template-columns:1fr}.brand{height:70px;justify-content:flex-start}.brand img{width:170px;max-height:68px}.calendar{font-size:14px}.calendar th,.calendar td{height:43px}}


/* === app-v3 === */
.calendar-host,.month-block .table-wrap{overflow:visible}
.calendar{width:100%;min-width:0;table-layout:fixed;font-size:14px}
.calendar th,.calendar td{height:35px}
.calendar th:first-child,.calendar td:first-child{width:150px;min-width:150px;padding-left:9px;padding-right:9px}
.calendar th:not(:first-child),.calendar td:not(:first-child){width:auto}
.day{font-size:14px}
.month-title{padding-top:9px;padding-bottom:6px}
@media(max-width:1100px){.app{grid-template-columns:225px minmax(0,1fr)}.side{padding-left:16px;padding-right:16px}.brand img{width:185px}.main{padding:18px}.calendar th:first-child,.calendar td:first-child{width:132px;min-width:132px}.calendar{font-size:13px}.day{font-size:13px}}
@media(max-width:900px){.calendar-host,.month-block .table-wrap{overflow:visible}.calendar{font-size:12px}.day{font-size:12px}.calendar th,.calendar td{height:33px}.calendar th:first-child,.calendar td:first-child{width:116px;min-width:116px;padding-left:5px;padding-right:5px}}


/* === app-v4 === */
.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.filter-action{border:1px solid var(--line);background:var(--paper);color:var(--brand);border-radius:8px;padding:8px 7px;font-size:14px;font-weight:600}
.filter-action:hover{background:var(--weekend)}


/* === app-v5 === */
.annual-table{width:100%;border-collapse:separate;border-spacing:0}
.annual-table th,.annual-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left}
.annual-table th{font-size:14px;color:var(--muted);font-weight:600}
.annual-table th:not(:first-child),.annual-table td:not(:first-child){text-align:center;width:18%}
.annual-table td:first-child{font-weight:600}
.annual-value{display:inline-flex;min-width:62px;justify-content:center;border-radius:9px;padding:7px 10px;font-weight:700;font-size:17px}
.annual-entitlement{background:#e4edf8;color:#245b91}
.annual-used{background:var(--green-soft);color:var(--green)}
.annual-balance{background:var(--orange-soft);color:#9b571e}
.annual-table tr:last-child td{border-bottom:0}
@media(max-width:620px){.annual-table th,.annual-table td{padding:11px 7px}.annual-table th{font-size:12px}.annual-value{min-width:45px;padding:6px;font-size:15px}.annual-table th:not(:first-child),.annual-table td:not(:first-child){width:auto}}


/* === app-v6 === */
.annual-table{width:min(880px,100%);table-layout:fixed}
.annual-table th,.annual-table td{padding:10px 12px}
.annual-table th:first-child{width:auto}
.annual-table th:not(:first-child),.annual-table td:not(:first-child){width:128px}
.annual-person{display:grid;grid-template-columns:minmax(125px,160px) minmax(80px,1fr);align-items:center;gap:14px}
.annual-person-name{white-space:nowrap}
.annual-person-bar{height:10px;background:var(--weekend);border-radius:10px;overflow:hidden}
.annual-person-bar span{display:block;height:100%;background:var(--green);border-radius:10px}
.annual-value{min-width:54px;padding:6px 9px;font-size:16px}
@media(max-width:760px){.annual-table th:not(:first-child),.annual-table td:not(:first-child){width:105px}.annual-person{grid-template-columns:minmax(105px,135px) minmax(55px,1fr);gap:8px}}
@media(max-width:620px){.annual-table{min-width:610px}.annual-person{grid-template-columns:120px 80px}}


/* === app-v7 === */
.side-request{width:100%;border:0;border-radius:10px;padding:12px 14px;background:var(--orange);color:#263536;font-weight:700;display:flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 8px 20px rgba(0,0,0,.14)}
.side-request:hover{filter:brightness(1.05)}
.side-request svg{width:19px;height:19px}
.main .open-request{display:none}
.nav-count{margin-left:auto;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--orange);color:#263536;display:inline-grid;place-items:center;font-size:12px;font-weight:800}
.request-actions{display:flex;gap:7px;flex-wrap:wrap}
.request-action{border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:13px;font-weight:600;background:#fff}
.request-action.approve{color:var(--green)}
.request-action.reject{color:var(--red)}
.badge.rejected{background:var(--red-soft);color:var(--red)}
.manager-note{color:var(--muted);font-size:13px}
@media(max-width:900px){.side-request{width:auto;align-self:flex-start}.side{align-items:stretch}}


/* === app-v8 === */
.request-action.edit{color:var(--brand)}
.request-action.delete{color:var(--red)}
.request-actions .request-action{white-space:nowrap}
@media(max-width:760px){.requests th,.requests td{padding:9px 7px}.request-actions{min-width:150px}}


/* === app-v9 === */
.day.pending-request{background:#fff6f6;color:var(--red);font-weight:800;box-shadow:inset 0 0 0 2px var(--red)}
.day.pending-request:hover{background:var(--red-soft);box-shadow:inset 0 0 0 3px var(--red)}
.pending-swatch{width:13px;height:13px;border:2px solid var(--red);border-radius:3px;background:#fff6f6}
.calendar-action-dialog{max-width:460px}
.calendar-action-title{margin:0 0 5px;font-size:20px}
.calendar-action-info{margin:0 0 18px;color:var(--muted)}
.calendar-action-status{display:inline-flex;margin-bottom:16px}
.calendar-action-buttons{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.danger-button{border:1px solid #e9b9ba;background:var(--red-soft);color:var(--red);border-radius:9px;padding:9px 12px;font-weight:650}


/* === app-v10 === */
.top{position:relative;background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--orange);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);margin-bottom:22px}
.top h1{font-size:36px;line-height:1.12;font-weight:750;color:var(--brand);letter-spacing:-.025em}
.top p{margin-top:7px;font-size:16px;font-weight:500;color:var(--muted)}
.panel-head h2{font-size:23px;font-weight:720;color:var(--brand)}
@media(max-width:900px){.top{padding:15px 17px}.top h1{font-size:31px}}
@media(max-width:620px){.top{padding:13px 14px;border-left-width:5px}.top h1{font-size:27px}.panel-head h2{font-size:21px}}


/* === app-v11 === */
body:not(.authenticated) .app{visibility:hidden}
.auth-screen{position:fixed;inset:0;z-index:1000;background:linear-gradient(135deg,var(--brand),#245b60);display:grid;place-items:center;padding:24px}
.auth-card{width:min(460px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.auth-logo{display:block;width:210px;margin:0 auto 24px;background:var(--brand);border-radius:12px;padding:12px}
.auth-card h1{margin:0 0 6px;font-size:30px;color:var(--brand)}
.auth-card p{margin:0 0 20px;color:var(--muted)}
.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:14px;color:var(--muted)}
.auth-form input,.auth-form select{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px}
.auth-error{min-height:20px;color:var(--red);font-size:13px}
.admin-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px}.admin-form{display:grid;gap:12px}.admin-form label{display:grid;gap:5px;color:var(--muted);font-size:13px}.admin-form input,.admin-form select{padding:10px;border:1px solid var(--line);border-radius:9px}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.users-table th{color:var(--muted);font-size:13px}.user-chip{font-size:12px;border-radius:20px;padding:4px 8px;background:var(--green-soft);color:var(--green)}
.session-box{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.15);display:grid;gap:8px;color:#c8dcda;font-size:13px}.session-box button{border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;border-radius:8px;padding:7px}
@media(max-width:900px){.session-box{margin-top:0}.admin-grid{grid-template-columns:1fr}}


/* === app-v14 === */
.stat{min-height:142px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.stat-label{font-size:17px;font-weight:700;color:var(--brand);line-height:1.25}
.stat-value{font-size:48px;line-height:1;font-weight:800;color:var(--brand);margin:12px 0 8px}
.stat-note{font-size:14px;line-height:1.3;color:#536b6e}
.balance{align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.balance span{font-size:15px;font-weight:650;color:var(--ink)}
.balance b{font-size:36px;line-height:1;color:var(--green);font-weight:800}
.person-status .mini-button{display:none!important}
.person-status{justify-content:flex-start}
.filter-panel strong{font-size:17px;color:var(--brand)}
.filter-option{font-weight:550;color:var(--ink)}
.filter-option:has(input:checked){background:var(--green-soft);border-radius:8px;color:var(--brand)}
@media(max-width:620px){.stat{min-height:125px}.stat-value{font-size:42px}}


/* === app-v15 === */
/* Filtros com maior destaque visual */
.view-controls,
.filter-wrap {
  background: #eef7f5;
  border: 2px solid var(--green);
  border-radius: 12px;
  padding: 7px 9px;
  box-shadow: 0 3px 10px rgba(50, 121, 110, .13);
}

.view-controls label {
  color: var(--brand);
  font-weight: 700;
}

.view-controls .control,
#filter-button {
  background: #fff;
  border: 1px solid var(--green);
  color: var(--brand);
  font-weight: 650;
}

#filter-button::before {
  content: "Filtros · ";
  color: var(--green);
}

#filter-button:hover,
#filter-button[aria-expanded="true"],
.filter-wrap:has(.filter-panel.open) #filter-button {
  background: var(--green);
  color: #fff;
}

.filter-wrap:has(.filter-panel.open) #filter-button::before {
  color: #fff;
}

.filter-panel {
  border: 2px solid var(--green);
}


/* === app-v16 === */
html,body{max-width:100%;overflow-x:hidden}
.mobile-welcome{border:0;border-radius:22px;padding:0;width:min(420px,calc(100% - 28px));box-shadow:0 24px 70px rgba(8,26,29,.35)}
.mobile-welcome::backdrop{background:rgba(8,26,29,.68);backdrop-filter:blur(3px)}
.mobile-welcome-card{text-align:center;padding:28px 22px 22px;background:#fff;color:var(--ink)}
.mobile-welcome-logo{width:170px;max-height:72px;object-fit:contain;background:var(--brand);border-radius:12px;padding:9px;margin-bottom:18px}
.mobile-welcome h2{color:var(--brand);font-size:28px;margin:0 0 10px}
.mobile-welcome p{font-size:17px;margin:0;color:var(--muted)}
.mobile-welcome-balance{font-size:54px;line-height:1;font-weight:800;color:var(--green);margin:20px 0 5px}
.mobile-welcome small{display:block;font-size:15px;color:var(--muted);margin-bottom:22px}
.mobile-welcome button{width:100%;min-height:48px;font-size:17px}

@media(max-width:900px){
 .app{grid-template-columns:1fr;min-height:100dvh}
 .side{padding:12px 14px;gap:10px;position:relative}
 .brand{height:58px;justify-content:center}.brand img{width:170px;max-height:54px;object-position:center}
 .nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
 .nav button{flex:0 0 auto;min-height:44px;padding:9px 12px;font-size:14px}
 .side-footer{display:none}.session-box{margin-top:2px;padding-top:8px;grid-template-columns:1fr auto;align-items:center}.session-box span{grid-column:1}.session-box button{grid-column:2;grid-row:1/3}
 .main{padding:16px 12px 24px;width:100%;overflow:hidden}
 .top{align-items:center;margin-bottom:16px}.top h1{font-size:27px}.top p{font-size:14px}.year{flex-wrap:wrap;justify-content:flex-end}
 .stats{grid-template-columns:1fr;gap:10px}.stat{min-height:118px;padding:14px}.stat-value{font-size:44px}
 .panel{padding:13px;border-radius:13px}.panel-head{align-items:stretch}.panel-head h2{width:100%;font-size:22px}
 .toolbar{width:100%;align-items:stretch}.view-controls,.filter-wrap{width:100%}.view-controls{display:grid;grid-template-columns:auto 1fr;gap:7px}.view-controls label{align-self:center}.view-controls .control{width:100%;min-height:44px}
 #filter-button{width:100%;min-height:46px}.filter-panel{position:fixed;left:12px;right:12px;top:auto;bottom:12px;width:auto;max-height:70dvh;overflow:auto;z-index:60}
 .legend{line-height:1.5}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .calendar{min-width:760px;font-size:13px}.calendar th,.calendar td{height:40px}.calendar th:first-child,.calendar td:first-child{min-width:142px;padding:0 9px}
 .people-grid{grid-template-columns:1fr}.person{padding:14px}.balance b{font-size:38px}
 .summary-row{grid-template-columns:minmax(110px,1fr) 2fr 54px;gap:8px}
 .detail{align-items:stretch;flex-direction:column}.detail .primary{min-height:46px}
 .form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.dialog-actions button{min-height:46px}
 .admin-grid{grid-template-columns:1fr}.admin-form input,.admin-form select{min-height:44px}
}

@media(max-width:600px){
 .top{align-items:flex-start;flex-direction:column}.year{width:100%;justify-content:flex-start}.avatar{margin-left:auto}
 .requests,.users-table,.requests tbody,.users-table tbody,.requests tr,.users-table tr,.requests td,.users-table td{display:block;width:100%}
 .requests thead,.users-table thead{display:none}.requests tr,.users-table tr{border:1px solid var(--line);border-radius:11px;padding:8px 11px;margin-bottom:10px;background:#fff}
 .requests td,.users-table td{border:0;padding:5px 0}.requests td:last-child,.users-table td:last-child{padding-top:9px}
 .request-actions{display:flex;flex-wrap:wrap;gap:7px}.request-actions button{min-height:42px;flex:1}
}


/* === app-v17 === */
@media(max-width:600px){
  #page-team .person{min-width:0;overflow:hidden}
  #page-team .person-top>div:last-child{min-width:0}
  #page-team .person h3{overflow-wrap:anywhere}
  #page-team .balance{display:grid;grid-template-columns:1fr;justify-items:center;gap:8px;text-align:center}
  #page-team .balance span{font-size:16px}
  #page-team .balance b{display:block;width:100%;font-size:46px;text-align:center}

  #page-summary .table-wrap{overflow:visible}
  #page-summary .annual-table,
  #page-summary .annual-table tbody{display:block;width:100%;min-width:0}
  #page-summary .annual-table thead{display:none}
  #page-summary .annual-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}
  #page-summary .annual-table td{display:block;width:auto!important;padding:0!important;border:0;text-align:center;min-width:0}
  #page-summary .annual-table td:first-child{grid-column:1/-1;text-align:left;padding-bottom:10px!important;border-bottom:1px solid var(--line)}
  #page-summary .annual-person{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  #page-summary .annual-person-name{font-size:17px;font-weight:700;white-space:normal;overflow-wrap:anywhere}
  #page-summary .annual-person-bar{width:100%;height:9px}
  #page-summary .annual-table td:nth-child(2)::before{content:'Direito'}
  #page-summary .annual-table td:nth-child(3)::before{content:'Tirados'}
  #page-summary .annual-table td:nth-child(4)::before{content:'Saldo'}
  #page-summary .annual-table td:not(:first-child)::before{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
  #page-summary .annual-value{display:block;min-width:0;width:100%;padding:9px 3px;font-size:20px;font-weight:800}
}


/* === app-v18 === */
/* Reorganização visual exclusiva para telemóveis */
@media(max-width:600px){
  .side{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"brand request" "nav nav" "session session";
    gap:11px;
    padding:12px;
    box-shadow:0 5px 18px rgba(8,26,29,.22);
  }
  .brand{grid-area:brand;height:48px;justify-content:flex-start;min-width:0}
  .brand img{width:142px;max-height:46px;object-position:left center}
  .side-request{grid-area:request;align-self:center;min-height:43px;padding:9px 12px!important;border-radius:11px!important;white-space:nowrap}
  .nav{
    grid-area:nav;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    width:100%;
    overflow:visible;
    padding:0;
  }
  .nav button{
    min-width:0;
    min-height:58px;
    padding:7px 4px;
    justify-content:center;
    flex-direction:column;
    gap:4px;
    text-align:center;
    white-space:normal;
    font-size:12px;
    line-height:1.15;
    border:1px solid rgba(255,255,255,.08);
  }
  .nav svg{width:20px;height:20px;flex:0 0 auto}
  .nav button.active{background:rgba(255,255,255,.17);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
  .session-box{
    grid-area:session;
    margin:0;
    padding:10px 2px 0;
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 10px;
    border-top:1px solid rgba(255,255,255,.18);
  }
  .session-box strong{font-size:14px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .session-box span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .session-box button{min-height:38px;padding:6px 9px;font-size:12px}

  .main,.page,.panel,.stats,.stat{width:100%;min-width:0;max-width:100%}
  .main{padding:14px 10px 24px;background:#eef2f2}
  .top{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:15px;
    margin:0 0 13px;
    background:#fff;
    border:1px solid var(--line);
    border-left:4px solid var(--orange);
    border-radius:14px;
    box-shadow:0 5px 16px rgba(16,46,49,.08);
  }
  .top h1{font-size:23px;line-height:1.15;overflow-wrap:anywhere}
  .top p{display:block;margin-top:5px;font-size:12px;line-height:1.3}
  .year{width:auto;justify-content:flex-end;gap:7px}.year label{display:none}.year select{min-height:42px;padding:7px 8px}
  .avatar{width:39px;height:39px;font-size:13px}
  .stats{gap:11px;margin-bottom:14px}
  .stat{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:128px;
    padding:17px 14px;
    text-align:center;
    overflow:hidden;
    border-radius:15px;
  }
  .stat-label{width:100%;font-size:16px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
  .stat-value{width:100%;margin:7px 0 3px;font-size:46px;line-height:1;text-align:center}
  .stat-note{width:100%;font-size:13px;line-height:1.25;white-space:normal}
  .panel{box-shadow:0 5px 16px rgba(16,46,49,.08)}
}


/* === app-v19 === */
/* Ajustes exclusivos para telemóveis: estabilidade horizontal e cabeçalho centrado */
@media(max-width:600px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  .app,.side,.main{width:100%;max-width:100%;min-width:0;overflow-x:hidden}

  .side{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"brand" "request" "nav" "session";
    padding:12px;
  }
  .brand{
    width:100%;
    height:60px;
    justify-content:center;
    overflow:hidden;
  }
  .brand img{
    width:184px;
    max-width:72vw;
    max-height:58px;
    object-position:center;
  }
  .side-request{width:100%;justify-content:center}
  .nav,.session-box,.top,.stats,.panel,.table-wrap{max-width:100%;min-width:0}
  .table-wrap{overflow-x:auto;overscroll-behavior-x:contain}
}


/* === app-v20 === */
.user-record-dialog{max-width:620px}
.user-record-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 18px}
.user-record-summary div{background:var(--weekend);border-radius:10px;padding:10px;text-align:center}
.user-record-summary span{display:block;color:var(--muted);font-size:12px}.user-record-summary b{font-size:20px;color:var(--brand)}
.record-actions{display:flex;gap:7px;flex-wrap:wrap}.observations-preview{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.carry-note{font-size:12px;color:var(--muted);margin:-4px 0 3px}.balance-opening{color:var(--orange)}
@media(max-width:700px){.user-record-summary{grid-template-columns:1fr 1fr}.users-table .optional-admin-col{display:none}.user-record-dialog .form-grid{grid-template-columns:1fr}}
.company-wordmark{color:#fff;font-size:20px;font-weight:750;line-height:1.1;letter-spacing:-.02em}
.auth-product-mark{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 14px;padding:10px 16px;border-radius:12px;background:var(--brand);color:#fff;font-size:18px;font-weight:750}


/* === app-v22-branding === */
:root{--brand-text:#fff}.side,.side .nav button,.side .nav button:hover,.side .nav button.active,.side .session-box,.side .side-footer{color:var(--brand-text)!important}
.branding-panel{margin:0 0 18px;padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,var(--paper),var(--green-soft))}.branding-panel h2{margin:0 0 4px}.branding-panel>p{margin:0 0 16px;color:var(--muted)}.branding-grid{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:18px}.branding-logo-box,.branding-colors{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:15px}.branding-preview{height:105px;border-radius:10px;background:var(--brand);display:grid;place-items:center;margin-bottom:12px;padding:12px}.branding-preview img{max-width:100%;max-height:80px;object-fit:contain}.branding-preview span{color:#fff;font-weight:700;font-size:18px}.branding-help{font-size:12px;color:var(--muted);margin:7px 0}.branding-color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.branding-color-grid select{width:100%;height:48px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--paper);color:var(--ink)}.branding-color-grid label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.branding-color-grid input[type=color]{width:100%;height:48px;border:1px solid var(--line);border-radius:9px;padding:4px;background:#fff}.branding-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:14px}.branding-message{min-height:20px;color:var(--green);font-weight:600;font-size:13px}@media(max-width:720px){.branding-grid{grid-template-columns:1fr}.branding-color-grid{grid-template-columns:1fr 1fr}.branding-panel{padding:14px}}

.branding-preview span{color:var(--brand-text)!important}.branding-message.error{color:#b42318}.branding-actions button:disabled{opacity:.65;cursor:wait}


/* === app-v23-platform === */
.platform-access{margin:0 0 18px;padding:16px 18px;border-radius:13px;background:#143b3f;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:15px}.platform-access strong,.platform-access span{display:block}.platform-access strong{font-size:18px}.platform-access span{margin-top:3px;color:#d7e5e4}.platform-access a{background:#f37f20;color:#143b3f;text-decoration:none;font-weight:800;border-radius:9px;padding:10px 14px;white-space:nowrap}@media(max-width:600px){.platform-access{align-items:flex-start;flex-direction:column}}


/* === app-v24-login === */
.auth-screen{position:fixed;inset:0;z-index:9999;overflow:auto;background:#f4f6f7;color:#172629}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(390px,1.05fr) minmax(420px,.95fr)}
.login-intro{position:relative;overflow:hidden;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(34px,5vw,76px);color:#33252a;background:radial-gradient(circle at 8% 4%,#fff 0%,transparent 34%),linear-gradient(145deg,#faf7f4 0%,#f3e9e4 58%,#ecd8d5 100%)}
.login-intro:before{content:"";position:absolute;right:-16%;bottom:-18%;width:min(36vw,520px);aspect-ratio:1;border:1px solid rgba(158,42,54,.12);border-radius:50%;box-shadow:0 0 0 54px rgba(158,42,54,.035),0 0 0 108px rgba(158,42,54,.02)}
.login-intro:after{content:"";position:absolute;top:0;left:0;width:8px;height:100%;background:linear-gradient(#8f2632,#c44a55)}
.login-brand-logo{position:relative;z-index:1;display:block;width:min(350px,78%);height:auto;margin-inline:auto;object-fit:contain;object-position:center;filter:drop-shadow(0 12px 22px rgba(91,29,36,.13))}
.login-message{position:relative;z-index:1;max-width:680px;margin:70px 0}
.login-eyebrow{display:inline-block;margin-bottom:18px;color:#a62e3b;font-size:.82rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.login-message h1{max-width:650px;margin:0;font-size:clamp(2.2rem,4.2vw,4.7rem);font-weight:650;line-height:1.04;letter-spacing:-.045em}
.login-message p{max-width:610px;margin:24px 0 30px;color:#695b60;font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.65}
.login-benefits{display:flex;flex-wrap:wrap;gap:10px}
.login-benefits span{padding:9px 13px;border:1px solid rgba(157,43,55,.16);border-radius:999px;background:rgba(255,255,255,.64);color:#57454b;font-size:.87rem;box-shadow:0 5px 18px rgba(88,40,46,.045)}
.login-intro small{position:relative;z-index:1;color:#806d73;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.login-access{display:grid;place-items:center;min-height:100vh;padding:clamp(26px,5vw,76px);background:linear-gradient(135deg,#fff 0%,#f5f7f7 100%)}
.login-access-inner{width:min(100%,500px)}
.login-access .auth-product-mark{display:flex!important;align-items:center;gap:11px;width:auto!important;min-height:0!important;margin:0 0 18px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#7a686d!important;font-size:.78rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase}
.login-access .auth-product-mark span{display:grid;width:26px;height:26px;border-radius:7px;background:#f5e5e7;box-shadow:inset 0 0 0 1px #ead0d4}
.login-access .auth-product-mark span:after{content:"";width:8px;height:8px;margin:auto;border-radius:2px;background:#ad3440;transform:rotate(45deg)}
.login-access h2{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-.035em}
.login-instruction{margin:12px 0 28px;color:#627174;font-size:1rem;line-height:1.55}
.login-access .auth-form{display:grid;gap:17px}
.login-access .auth-form label{display:grid;gap:7px;color:#34464a;font-size:.9rem;font-weight:650}
.login-access .auth-form input{width:100%;min-height:52px;padding:13px 15px;border:1px solid #cdd7d9;border-radius:11px;background:#fff;color:#172629;outline:none;transition:border-color .18s,box-shadow .18s}
.login-access .auth-form input::placeholder{color:#9aa6a8}
.login-access .auth-form input:focus{border-color:#b4313e;box-shadow:0 0 0 4px rgba(180,49,62,.11)}
.login-access .auth-error{min-height:21px;color:#ad313c;font-size:.88rem}
.login-submit{width:100%;min-height:54px;border-radius:11px!important;background:linear-gradient(135deg,#a92f3b,#ca4651)!important;color:#fff!important;font-size:1rem;box-shadow:0 12px 28px rgba(169,47,59,.2);transition:transform .18s,box-shadow .18s}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 15px 32px rgba(169,47,59,.27)}
.login-submit:focus-visible{outline:3px solid rgba(180,49,62,.3);outline-offset:3px}
.login-help{margin:22px 0 0;color:#748184;font-size:.86rem;text-align:center}
.auth-text-button{display:block;margin:18px auto 0;padding:7px 10px;border:0;background:transparent;color:#9f2d39;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.auth-text-button:hover{color:#711f28}.auth-success{color:#257064!important;line-height:1.5}.login-submit:disabled{cursor:wait;opacity:.65}
@media(max-width:860px){.login-shell{grid-template-columns:1fr}.login-intro{min-height:auto;padding:30px 24px 34px}.login-brand-logo{width:min(255px,72%)}.login-message{margin:34px 0 12px;text-align:center}.login-message h1{font-size:clamp(2rem,8vw,3rem)}.login-message p{margin:18px auto 22px}.login-benefits{justify-content:center}.login-intro small{display:none}.login-access{min-height:auto;padding:38px 22px 48px}.login-access-inner{max-width:520px}}
@media(max-width:480px){.login-intro{padding:24px 18px 28px}.login-brand-logo{width:min(225px,76%)}.login-message{margin-top:26px}.login-message h1{font-size:2rem;line-height:1.08}.login-message p{font-size:.96rem;line-height:1.5}.login-benefits{display:grid;grid-template-columns:1fr;width:100%}.login-benefits span{text-align:center}.login-access{padding:32px 18px 42px}.login-access h2{font-size:2rem}.login-instruction{margin-bottom:24px}.login-access .auth-form input,.login-submit{min-height:50px}}
@media(prefers-reduced-motion:reduce){.login-submit,.login-access .auth-form input{transition:none}}


/* === app-v25-departments === */
.department-filter-label{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--brand);font-size:.82rem}.department-filter-label select{min-width:190px}.departments-panel{margin-top:20px}.department-form{display:grid;grid-template-columns:minmax(240px,420px) auto;align-items:end;gap:12px;margin:18px 0}.department-form label{display:grid;gap:7px;font-weight:700}.department-form input,.department-inline{border:1px solid #cad8d9;border-radius:10px;background:#fff;padding:10px 12px;color:#173f43}.department-list{display:grid;gap:9px}.department-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #dce6e7;border-radius:12px;padding:12px 14px;background:#fff}.department-row small{display:block;margin-top:3px;color:#617779}.department-actions{display:flex;align-items:center;gap:8px}.department-actions button{border:1px solid #cad8d9;background:#fff;border-radius:9px;padding:8px 11px;cursor:pointer}.department-inline{width:100%;min-width:130px;padding:7px 8px}.department-admin-col{min-width:150px}@media(max-width:720px){.department-filter-label{width:100%;align-items:stretch;flex-direction:column;gap:4px}.department-filter-label select{width:100%;min-width:0}.department-form{grid-template-columns:1fr}.department-row{align-items:flex-start;flex-direction:column}.department-actions{width:100%;justify-content:flex-end}.department-admin-col{min-width:135px}}


/* === app-v26-reports === */
.reports-intro{margin:0;color:var(--muted)}
.report-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.report-card{border:1px solid var(--line);border-radius:15px;padding:20px;background:linear-gradient(145deg,#fff,#f7faf9);display:flex;flex-direction:column;gap:12px}
.report-card h3{margin:0;font-size:20px}.report-card p{margin:0;color:var(--muted);min-height:48px}
.report-format{display:inline-flex;align-self:flex-start;padding:4px 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:12px;font-weight:700}
.report-card .primary{align-self:flex-start;margin-top:auto}.report-note{margin-top:18px;padding:13px 15px;border-radius:10px;background:var(--orange-soft);color:#7f4a1e;font-size:14px}
.report-download-ready{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px;padding:14px 16px;border:1px solid #9bc7bd;border-radius:12px;background:#edf8f5;color:#163f3d}.report-download-ready strong{font-size:1rem}.report-download-ready span{color:#476765}.report-download-ready a{display:inline-flex;align-items:center;justify-content:center;padding:10px 15px;border-radius:9px;background:#176c62;color:#fff;font-weight:700;text-decoration:none}.report-download-ready a:hover{background:#10564e}
.name-fields-note{grid-column:1/-1;color:var(--muted);font-size:13px;margin:-4px 0 2px}
@media(max-width:720px){.report-cards{grid-template-columns:1fr}.report-card p{min-height:0}}


/* === app-v27-admin-users === */
.users-admin-panel .panel-head{align-items:center;gap:18px}.users-admin-panel .panel-head>div:first-child{min-width:0}.users-new-button{margin-left:auto;white-space:nowrap}.users-list-layout{display:block!important;width:100%;min-width:0}.users-list-layout .table-wrap{width:100%;max-width:100%;overflow-x:auto}.users-list-intro{margin:0 0 14px;color:var(--muted);font-size:14px}.users-admin-panel .users-table{table-layout:fixed;width:100%;min-width:0}.users-admin-panel .users-table th,.users-admin-panel .users-table td{padding:8px 10px;line-height:1.25;vertical-align:middle}.users-admin-panel .users-table th:first-child{width:18%}.users-admin-panel .users-table th:nth-child(2){width:24%}.users-admin-panel .users-table th:nth-child(3){width:17%}.users-admin-panel .users-table th:nth-child(4){width:12%}.users-admin-panel .users-table th:nth-child(5){width:12%}.users-admin-panel .users-table th:last-child{width:17%}.users-admin-panel .users-table td{overflow-wrap:anywhere}.users-admin-panel .department-inline{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.users-admin-panel .record-actions{display:flex;gap:6px;flex-wrap:wrap}.users-admin-panel .record-actions button{white-space:normal;max-width:100%}.user-create-dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 70px #102b3040}.user-create-dialog::backdrop{background:#102b3099;backdrop-filter:blur(3px)}.user-create-body{padding:24px}.dialog-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-title-row h2{margin:3px 0 4px;font-size:28px}.dialog-title-row p{margin:0;color:var(--muted)}.dialog-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--brand)}.dialog-close{border:0;background:#eef3f3;border-radius:50%;width:38px;height:38px;font-size:25px;line-height:1;cursor:pointer}.user-create-dialog .admin-form{grid-template-columns:1fr 1fr;gap:13px 14px}.user-create-dialog .admin-form>p,.user-create-dialog .admin-form>.auth-error,.user-create-dialog .admin-form>button,.user-create-secondary-actions{grid-column:1/-1}.user-create-dialog .admin-form input,.user-create-dialog .admin-form select{width:100%;box-sizing:border-box;min-height:44px}.user-create-secondary-actions{display:flex;justify-content:flex-end;margin-bottom:-4px}.user-create-dialog .admin-form>button.primary{width:100%;min-height:48px}.user-create-dialog .name-fields-note{margin:0;color:var(--muted);font-size:13px}
@media(max-width:760px){.users-admin-panel .panel-head{align-items:stretch;flex-direction:column}.users-new-button{margin-left:0;width:100%}.users-admin-panel .users-table{min-width:0}.users-admin-panel .users-table tr{padding:8px 10px}.users-admin-panel .users-table td{padding:4px 0}.users-admin-panel .record-actions{margin-top:4px}.user-create-dialog .admin-form{grid-template-columns:1fr}.user-create-dialog .admin-form>*{grid-column:1}.user-create-body{padding:19px}.dialog-title-row h2{font-size:24px}}

.users-admin-panel [data-delete-user]{color:#9d2935;border-color:#e4b9bf}


/* === app-v28-security === */
.session-box{gap:7px}
.session-box .session-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:7px}
.session-box .session-password,.session-box .session-logout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;border-radius:9px;font-weight:700}
.session-box .session-password{border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.08);color:var(--brand-text,#fff)}
.session-box .session-logout{border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.18);color:var(--brand-text,#fff);box-shadow:0 5px 16px rgba(0,0,0,.12)}
.session-box .session-logout svg,.session-box .session-password svg{width:17px;height:17px;flex:0 0 auto}
.session-box .session-logout:hover,.session-box .session-password:hover{background:rgba(255,255,255,.2)}
.requests-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.requests-filter{display:grid;gap:4px;font-size:12px;font-weight:700;color:var(--muted)}
.requests-filter select{min-width:170px;border:2px solid color-mix(in srgb,var(--orange) 50%,var(--line));border-radius:9px;background:var(--paper);color:var(--ink);padding:8px 34px 8px 10px}
.requests th,.requests td{padding:7px 10px;height:42px;vertical-align:middle}
.requests .request-actions{gap:5px}.requests .request-action{padding:6px 8px}
.password-section{grid-column:1/-1;border-top:1px solid var(--line);margin-top:4px;padding-top:15px}
.password-section h3{margin:0 0 4px;font-size:17px}.password-section p{margin:0 0 12px;color:var(--muted);font-size:13px}
.password-fields{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px}
.password-fields label{display:grid;gap:5px;font-size:13px;color:var(--muted)}
.password-fields input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--paper);color:var(--ink)}
.password-message{min-height:20px;margin-top:7px;font-size:13px;font-weight:700}
.self-password-dialog .dialog-body{max-width:480px}.self-password-dialog .field{margin-bottom:12px}
.employee-department-note{font-size:13px;color:var(--muted);font-weight:700}
@media(max-width:700px){.requests-toolbar{width:100%;align-items:stretch}.requests-filter{flex:1 1 150px}.requests-filter select{min-width:0;width:100%}.password-fields{grid-template-columns:1fr}.session-box .session-actions{grid-template-columns:1fr 1fr}}


/* === app-feriados === */
.holidays-panel{margin-top:20px}
.holidays-panel .legend{display:block;margin-top:4px;max-width:720px}
.holiday-form{display:grid;grid-template-columns:170px minmax(200px,1fr) 150px auto;align-items:end;gap:12px;margin:18px 0}
.holiday-form label{display:grid;gap:7px;font-weight:700}
.holiday-form input,.holiday-form select{border:1px solid #cad8d9;border-radius:10px;background:#fff;padding:10px 12px;color:#173f43}
.holiday-form .auth-error{grid-column:1/-1}
.holiday-list{display:grid;gap:6px}
.holiday-row{display:grid;grid-template-columns:100px 1fr auto 90px;align-items:center;gap:12px;border:1px solid #dce6e7;border-radius:10px;padding:8px 12px;background:#fff}
.holiday-row.is-national{background:var(--weekend)}
.holiday-date{font-variant-numeric:tabular-nums;font-weight:600}
.request-error-detail{color:var(--red)}
@media(max-width:720px){.holiday-form{grid-template-columns:1fr}.holiday-row{grid-template-columns:90px 1fr;row-gap:4px}.holiday-row .user-chip,.holiday-row button{justify-self:start}}


/* === app-v33-layout === */
/* Texto legível sobre a cor de destaque da empresa (calculado em app-v13.js). */
:root{--on-accent:#172629}
.primary,.side-request,.nav-count,.users-new-button,.department-form .primary,.holiday-form .primary{color:var(--on-accent)!important}
.primary:disabled{opacity:.6;cursor:wait}

/* Meio-dia: metade da célula preenchida, distinto das férias mesmo quando a empresa usa uma só cor. */
.day.t{background:linear-gradient(135deg,var(--green) 0 50%,color-mix(in srgb,var(--green) 22%,#fff) 50% 100%)!important;color:var(--ink)!important}
.dot.half{background:linear-gradient(135deg,var(--green) 0 50%,color-mix(in srgb,var(--green) 22%,#fff) 50% 100%)!important;box-shadow:inset 0 0 0 1px var(--green)}
.day.f{color:var(--on-accent)!important}


/* === v35: botão Backoffice destacado e mostrar/ocultar palavra-passe === */
.side .nav button#platform-nav{margin-top:14px;background:#f4b400!important;color:#1f2a2c!important;font-weight:800;border:2px solid #ffd666;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.side .nav button#platform-nav:hover{background:#ffc928!important;color:#1f2a2c!important}
.side .nav button#platform-nav svg{stroke:#1f2a2c}
.password-field{position:relative;display:block;width:100%}
.password-field input{width:100%;padding-right:46px!important;box-sizing:border-box}
.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted,#68797c);display:grid;place-items:center;cursor:pointer;padding:0}
.password-toggle:hover,.password-toggle:focus-visible{background:rgba(0,0,0,.06);color:var(--ink,#172629)}
.password-toggle svg{width:20px;height:20px}
input[type=password]::-ms-reveal{display:none}

/* === v36: telemóvel — "As minhas férias" e calendário em lista === */
.mine-balance{display:grid;justify-items:center;text-align:center;gap:6px;margin-bottom:16px;padding:22px 18px}
.mine-label{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.mine-balance strong{font-size:56px;line-height:1;color:var(--green)}
.mine-details{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:13px;color:var(--muted);margin:6px 0 10px}
.mine-details b{color:var(--ink)}
.mine-request{width:100%;max-width:360px;min-height:52px;font-size:17px;border-radius:12px}
.mine-list{display:grid;gap:8px}
.mine-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.mine-item small{display:block;color:var(--muted);margin-top:2px}
.mine-edit{grid-column:1/-1;justify-self:start;border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:8px 14px;font-weight:600;min-height:40px}
.mine-empty{color:var(--muted);text-align:center;padding:14px 4px}
.badge.rejected{background:var(--red-soft);color:var(--red)}
.calendar-list{display:none}
.calendar-list-day{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}
.calendar-list-day.is-holiday .calendar-list-date{color:var(--red)}
.calendar-list-date{font-weight:700;text-transform:capitalize;font-size:14px}
.calendar-list-date small{display:block;font-weight:500;font-size:12px;text-transform:none}
.calendar-list-people{display:flex;flex-wrap:wrap;gap:6px}
.calendar-list-person{background:var(--green-soft);color:var(--green);border-radius:20px;padding:5px 10px;font-size:13px;font-weight:600}
.calendar-list-person.half{background:linear-gradient(135deg,var(--green-soft) 50%,#fff 50%);border:1px solid var(--green-soft)}
.calendar-list-person.pending{background:var(--orange-soft);color:#9b571e}
.calendar-list-none{color:var(--red);font-size:13px}
@media(max-width:700px){
 #calendar-views{display:none}
 .calendar-list{display:block}
 .nav button{min-height:44px}
 .primary,.ghost,.secondary,.request-action{min-height:44px}
 .field input,.field select,.field textarea{min-height:46px;font-size:16px}
 #nav-mine{font-weight:700}
}
@media(max-width:900px){
 .session-box{grid-template-columns:1fr}
 .session-box button{grid-column:auto;grid-row:auto}
 .session-box .session-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:2px}
}

/* === v37: importar e exportar === */
.import-panel{margin-top:20px}
.import-panel .legend{display:block;margin-top:4px}
.import-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;margin:16px 0}
.import-card{border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}
.import-card h3{margin:0;font-size:16px}
.import-card p{margin:0;color:var(--muted);font-size:14px}
.import-buttons{display:flex;flex-wrap:wrap;gap:8px}
.import-file-label{display:inline-flex;align-items:center;cursor:pointer;border-radius:9px;padding:10px 14px}
.import-year-note{color:var(--muted)}
.import-busy{color:var(--muted)}
.import-error-box{background:var(--red-soft);color:var(--red);border-radius:10px;padding:12px 14px}
.import-preview,.import-done{border:1px solid var(--line);border-radius:12px;padding:16px}
.import-done{background:var(--green-soft)}
.import-preview h3,.import-done h3{margin:0 0 12px;font-size:16px}
.import-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.import-stats div{background:var(--weekend);border-radius:10px;padding:10px;text-align:center}
.import-stats b{display:block;font-size:24px}
.import-stats span{font-size:12px;color:var(--muted)}
.import-detail{margin:10px 0 0;font-size:14px;color:var(--muted)}
.import-errors-title{color:var(--red);margin:16px 0 6px}
.import-warnings-title{color:#9b571e;margin:16px 0 6px}
.import-issues{margin:0;padding-left:20px;font-size:14px;max-height:260px;overflow:auto}
.import-issues.is-error li{color:var(--red)}
.import-issues li{margin:3px 0}
.import-invite-option{display:flex;gap:8px;align-items:flex-start;margin-top:16px;font-size:14px}
.import-invite-option small{color:var(--muted)}
.import-confirm{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}
.import-invites{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--orange-soft);color:#7f4a1e;font-size:14px}
@media(max-width:820px){.import-actions{grid-template-columns:1fr}.import-stats{grid-template-columns:1fr 1fr}.import-invites{flex-direction:column;align-items:stretch}}
.import-invites[hidden]{display:none}

/* === v43: importação fase 2 — folhas e colunas === */
.import-layout{border:1px solid var(--line);border-radius:10px;margin:0 0 14px;background:var(--weekend)}
.import-layout.is-busy{opacity:.6;pointer-events:none}
.import-layout>summary{cursor:pointer;padding:11px 14px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;font-size:14px}
.import-layout>summary span{color:var(--muted)}
.import-layout>summary em{margin-left:auto;font-style:normal;color:var(--brand-text);text-decoration:underline}
.import-layout[open]>summary em{display:none}
.import-layout>.import-detail{margin:0 14px 10px}
.import-sheet{background:var(--paper);border-top:1px solid var(--line);padding:12px 14px}
.import-sheet.is-ignored{opacity:.75}
.import-sheet-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:14px}
.import-sheet-head small{color:var(--muted)}
.import-sheet-head label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.import-sheet-head select{width:auto;min-width:0;padding:6px 8px}
.import-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-top:10px}
.import-col{border:1px solid var(--line);border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-width:0}
.import-col.is-mapped{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}
.import-col-title{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.import-col-title i{font-style:normal;font-weight:600;font-size:11px;color:var(--muted);background:var(--weekend);border-radius:4px;padding:1px 5px;margin-right:6px}
.import-col-sample{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.import-col select{padding:6px 8px;font-size:13px}
@media(max-width:820px){.import-cols{grid-template-columns:1fr 1fr}.import-layout>summary em{margin-left:0}}
@media(max-width:480px){.import-cols{grid-template-columns:1fr}}

/* === v38: mudar perfil === */
.role-action.role-promote{border-color:var(--green);color:var(--green);font-weight:700}

/* === v39: lista de colaboradores compacta === */
.users-compact .user-actions-origin{display:none!important}
.users-compact td{padding-top:10px!important;padding-bottom:10px!important;vertical-align:top}
.users-compact tbody tr:hover{background:var(--weekend)}
.users-compact .user-name{display:block;font-size:16px;font-weight:800;color:var(--brand);line-height:1.25}
.users-compact td:first-child{min-width:280px}
.users-compact .record-actions{display:flex!important;flex-wrap:wrap;gap:6px;margin-top:7px;flex-direction:row!important;align-items:center}
.users-compact .record-actions button{margin:0!important;padding:5px 11px!important;min-height:30px!important;font-size:12.5px!important;font-weight:700;border-radius:999px!important;border:1.5px solid var(--line)!important;background:var(--paper)!important;color:var(--ink)!important;white-space:nowrap;width:auto!important}
.users-compact .record-actions .act-record{border-color:var(--brand)!important;color:var(--brand)!important}
.users-compact .record-actions .act-promote{border-color:#2f8f5b!important;color:#1f6f43!important;background:#e8f6ee!important}
.users-compact .record-actions .act-demote{border-color:#c98a1b!important;color:#8a5a06!important;background:#fff6e5!important}
.users-compact .record-actions .act-toggle{border-color:#8a9a9c!important;color:#4a5a5c!important}
.users-compact .record-actions .act-invite{border-color:#3b6fb6!important;color:#2b5590!important;background:#eef4fc!important}
.users-compact .record-actions .act-delete{border-color:#d9a3a5!important;color:var(--red)!important}
.users-compact .record-actions button:hover{filter:brightness(.95);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.users-compact .record-actions button:disabled{opacity:.55}
@media(max-width:700px){.users-compact td:first-child{min-width:230px}}
.users-compact{table-layout:auto;width:100%}
.users-compact td:first-child,.users-compact th:first-child{width:48%;min-width:480px}
.users-compact .record-actions{flex-wrap:nowrap}
@media(max-width:1100px){.users-compact td:first-child,.users-compact th:first-child{min-width:300px}.users-compact .record-actions{flex-wrap:wrap}}
/* v39.2: larguras fixas — a 1.ª coluna (nome + opções) fica com o espaço da antiga coluna de ações */
.users-admin-panel .users-table.users-compact th:first-child{width:46%!important;min-width:0!important}
.users-admin-panel .users-table.users-compact td:first-child{min-width:0!important}
.users-admin-panel .users-table.users-compact th:nth-child(2){width:22%!important}
.users-admin-panel .users-table.users-compact th:nth-child(3){width:14%!important}
.users-admin-panel .users-table.users-compact th:nth-child(4){width:9%!important}
.users-admin-panel .users-table.users-compact th:nth-child(5){width:9%!important}
.users-compact .record-actions{flex-wrap:wrap!important}
.users-compact td{overflow-wrap:anywhere}
.users-admin-panel .users-table.users-compact th:first-child{width:47%!important}
.users-admin-panel .users-table.users-compact th:nth-child(2){width:21%!important}
.users-admin-panel .users-table.users-compact th:nth-child(3){width:13%!important}
.users-admin-panel .users-table.users-compact th:nth-child(4){width:11%!important}
.users-admin-panel .users-table.users-compact th:nth-child(5){width:8%!important}
.users-compact .user-chip{white-space:nowrap}
@media(max-width:820px){.users-admin-panel .users-table.users-compact td:first-child{width:100%!important;max-width:none!important}}

/* === v40: equipa do colaborador === */
.team-badge{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 14px;border-radius:999px;background:var(--brand);color:var(--brand-text,#fff);font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.team-badge span{opacity:.8;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}
.team-badge strong{font-size:16px;font-weight:800}
.team-note{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:var(--green-soft);color:var(--ink);font-size:14px;line-height:1.45}
.team-note span{font-weight:800;color:var(--green);margin-right:2px}
@media(max-width:620px){.team-badge{margin-top:6px;font-size:13px}}

/* === v41: detalhe do dia — no telemóvel a lista já mostra tudo === */
@media(max-width:700px){#day-detail{display:none}}

/* === v42: calendário no pedido de férias === */
.picker-hidden-field{display:none!important}
#request-dialog{max-width:520px}
.picker{border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:14px;background:var(--paper)}
.picker-modes{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--weekend);border-radius:10px;padding:4px}
.picker-modes button{border:0;border-radius:8px;padding:8px;background:transparent;font-weight:700;color:var(--muted);min-height:38px}
.picker-modes button.is-on{background:var(--paper);color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.picker-modes button[hidden]{display:none}
.picker-modes:has(button[hidden]){grid-template-columns:1fr}
.picker-help{margin:8px 2px;font-size:13px;color:var(--muted)}
.picker-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}
.picker-head strong{font-size:16px}
.picker-nav{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:22px;line-height:1}
.picker-nav:disabled{opacity:.35}
.picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.picker-wd{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:2px 0}
.picker-day{aspect-ratio:1/1;min-height:38px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:700;font-size:15px;color:var(--ink);padding:0}
.picker-day:hover:not(:disabled){border-color:var(--green)}
.picker-day.is-today{box-shadow:inset 0 -3px 0 var(--orange)}
.picker-day.is-off{background:var(--weekend);color:#a4b0b2;border-color:transparent}
.picker-day.is-booked{background:repeating-linear-gradient(135deg,var(--green-soft) 0 5px,#fff 5px 10px);color:var(--green);border-color:var(--green-soft)}
.picker-day.is-sel{background:var(--green);color:var(--on-accent,#fff);border-color:var(--green)}
.picker-day.is-anchor{outline:3px solid var(--orange);outline-offset:-3px}
.picker-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px;font-size:12px;color:var(--muted)}
.picker-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.lg-sel{background:var(--green)}.lg-booked{background:repeating-linear-gradient(135deg,var(--green-soft) 0 3px,#fff 3px 6px);border:1px solid var(--green-soft)}.lg-off{background:var(--weekend)}
.picker-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:14px}
.picker-summary small{color:var(--muted)}
.picker-clear{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:6px 12px;font-weight:600;flex:0 0 auto}
.picker-error{color:var(--red);font-size:13px;margin-top:6px}
.picker-error:empty{display:none}
@media(max-width:620px){#request-dialog{width:calc(100% - 16px)}.picker{padding:10px}.picker-day{min-height:40px}}

/* === v44: RGPD — aceitação dos termos e links para os documentos === */
.auth-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;font-weight:500!important;font-size:14px;line-height:1.45;color:var(--ink);background:var(--weekend);border:1px solid var(--line);border-radius:10px;padding:11px 12px;cursor:pointer}
.auth-check input{width:20px!important;height:20px;min-height:0!important;margin:1px 0 0!important;padding:0!important;flex:0 0 auto;accent-color:var(--brand)}
.auth-check a,.auth-legal-links a{color:#9f2d39;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.auth-legal-links{margin:18px 0 0;font-size:13px;color:var(--muted);text-align:center}

/* v45: faltas (vermelho vivo, separadas das férias) */
.day.absence{background:#e0161f!important;color:#fff!important;font-weight:800}
.day.absence-half{background:linear-gradient(135deg,#e0161f 0 50%,#ffd3d5 50% 100%)!important;color:#fff!important;text-shadow:0 0 2px #8a0007}
.day.absence:hover{box-shadow:inset 0 0 0 3px #7d0a10}
.absence-swatch{display:inline-block;width:13px;height:13px;border-radius:3px;background:#e0161f;vertical-align:-2px;margin-right:5px}
.calendar-list-person.absence{background:#e0161f;color:#fff;border-color:#e0161f}
.absence-dialog{max-width:460px}
.absence-dialog .field{margin-bottom:12px}
.absence-who{margin:0 0 14px;line-height:1.5}
.absence-types{display:flex;gap:18px;margin:0 0 14px}
.absence-types label{display:flex;align-items:center;gap:7px;font-weight:600}
.absence-types input{accent-color:#e0161f;width:18px;height:18px}
.absence-hint{font-size:13px;color:var(--muted);margin:4px 0 0}
.absence-save{border:0;border-radius:9px;padding:10px 14px;background:#e0161f;color:#fff;font-weight:700}
.absence-save:disabled{opacity:.6}
.absence-badge{background:#e0161f;color:#fff}
.absence-note-text{background:#fff1f1;border-radius:9px;padding:10px 12px;margin:10px 0 0}
.report-employee{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--paper);color:var(--ink)}

/* === v44: meio-dia manhã/tarde, menus do colaborador e "As minhas férias" completa === */
.nav button[hidden],#half-period-field[hidden]{display:none!important}
.mine-list-panel+.mine-list-panel{margin-top:16px}
.mine-absence-total{margin:0 0 4px;font-weight:700;color:#b3121a}
.absence-types{flex-wrap:wrap}

/* === v45: ordenar listas pelas colunas === */
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover,th.sortable:focus-visible{background:rgba(0,0,0,.04);outline:none}
.sort-arrow{display:inline-block;margin-left:5px;font-size:10px;opacity:.45}
th[aria-sort="ascending"] .sort-arrow,th[aria-sort="descending"] .sort-arrow{opacity:1}
.holiday-head{display:grid;grid-template-columns:100px 1fr auto 90px;gap:12px;padding:0 12px;font-size:12px;color:var(--muted)}
.holiday-sort{border:0;background:none;padding:2px 0;font:inherit;font-weight:700;color:inherit;text-align:left;cursor:pointer}
.holiday-sort:hover,.holiday-sort:focus-visible{color:var(--ink)}
@media(max-width:720px){.holiday-head{grid-template-columns:90px 1fr auto}.holiday-head>span{display:none}}

/* === v46: "As minhas férias" mais legível e botão Sair no telemóvel === */
.mine-balance{gap:16px;padding:0;overflow:hidden;justify-items:stretch}
.mine-hero{display:grid;justify-items:center;gap:4px;padding:24px 18px 22px;background:linear-gradient(135deg,var(--brand),var(--green));color:#fff}
.mine-hero .mine-label{color:rgba(255,255,255,.85);font-size:15px}
.mine-balance .mine-hero strong{font-size:72px;line-height:1;color:#fff;letter-spacing:-.02em}
.mine-hero-note{font-size:14px;color:rgba(255,255,255,.85)}
.mine-details{display:block;margin:0;padding:0 18px;font-size:inherit;color:inherit}
.mine-progress{display:flex;height:12px;border-radius:999px;background:var(--weekend,#eef2f2);overflow:hidden}
.mine-progress-used{background:var(--green)}
.mine-progress-pending{background:#e8912f}
.mine-progress-text{margin:8px 0 14px;text-align:center;font-size:15px;color:var(--muted)}
.mine-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mine-stat{display:grid;align-content:start;gap:3px;border-radius:14px;padding:14px 14px 13px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--line);text-align:left}
.mine-stat b{font-size:32px;line-height:1.05;color:var(--ink)}
.mine-stat span{font-size:15px;font-weight:700;color:var(--ink)}
.mine-stat small{font-size:13px;color:var(--muted)}
.mine-stat.is-total{border-left-color:var(--brand);background:var(--green-soft)}
.mine-stat.is-used{border-left-color:var(--green)}.mine-stat.is-used b{color:var(--green)}
.mine-stat.is-pending{border-left-color:#e8912f}.mine-stat.is-pending b{color:#9b571e}
.mine-stat.is-absence{border-left-color:#e0161f}.mine-stat.is-absence b{color:#b3121a}
.mine-balance .mine-request{justify-self:center;margin:0 18px 20px;width:calc(100% - 36px);max-width:420px;min-height:56px;font-size:18px}
.mine-list-panel h2{font-size:22px}
.mine-list{gap:10px}
.mine-item{padding:15px 16px;border-radius:14px;border-left:5px solid var(--line)}
.mine-item strong{font-size:18px}
.mine-item small{font-size:15px;margin-top:4px}
.mine-item:has(.badge.approved){border-left-color:var(--green)}
.mine-item:has(.badge.pending){border-left-color:#e8912f}
.mine-item:has(.badge.rejected){border-left-color:var(--red)}
.mine-item:has(.absence-badge){border-left-color:#e0161f}
.mine-item .badge{font-size:13px;padding:6px 10px}
.mine-edit{min-height:44px;font-size:15px}
.mine-logout{display:none}
.top-logout{display:none}
@media(max-width:900px){
 .mine-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .mine-logout{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:54px;margin:18px 0 6px;border:2px solid var(--red);border-radius:14px;background:var(--paper);color:var(--red);font-size:17px;font-weight:800}
 .mine-logout svg{width:20px;height:20px}
 .top-logout{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--red);font-weight:800;font-size:14px}
 .top-logout svg{width:18px;height:18px}
}
@media(max-width:600px){.top .year{flex-wrap:nowrap;gap:8px}.top-logout{margin-left:0}}
@media(max-width:360px){.mine-balance .mine-hero strong{font-size:60px}.mine-stat b{font-size:27px}}
.mine-stat b span{font:inherit;color:inherit}
@media(max-width:600px){.top .avatar{display:none}}

/* === v47: contacto do suporte === */
.support-box{display:grid;gap:4px;border-radius:12px;padding:12px 13px;font-size:13px;line-height:1.4}
.support-box strong{font-size:14px}
.support-box a{display:inline-flex;align-items:center;gap:7px;margin-top:4px;font-weight:800;text-decoration:none;word-break:break-all}
.support-box a svg{width:17px;height:17px;flex:0 0 auto}
.side-support{margin-top:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:var(--brand-text,#fff)}
.side-support span{opacity:.85}
.side-support a{color:var(--brand-text,#fff)}
.side .side-support+.session-box{margin-top:12px}
.mine-support{display:none;margin-top:18px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font-size:15px;padding:16px}
.mine-support span{color:var(--muted)}
.mine-support a{color:var(--brand);font-size:16px}
.auth-support{margin:10px 0 0;font-size:14px;color:var(--muted,#617478)}
.auth-support a{font-weight:700;color:inherit}
@media(max-width:900px){.side-support{display:none}.mine-support{display:grid}}
