:root{
  --blue:#07539a;--blue-dark:#053b70;--blue-deep:#052c54;--yellow:#ffd400;
  --yellow-soft:#fff4ad;--bg:#f3f6fa;--surface:#fff;--text:#15243a;--muted:#708096;
  --line:#e3e9f1;--green:#18a66a;--red:#e04b4b;--orange:#ee9b27;--shadow:0 12px 35px rgba(14,43,77,.08);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:white}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--blue-deep),var(--blue));color:white;padding:64px 9%;display:flex;flex-direction:column;justify-content:center;gap:28px}
.login-brand:after{content:"";position:absolute;width:420px;height:420px;border:90px solid rgba(255,212,0,.08);border-radius:50%;right:-170px;bottom:-150px}
.login-logo{width:160px;height:160px;object-fit:cover;border-radius:30px;box-shadow:0 22px 50px rgba(0,0,0,.25);background:#fff}
.login-brand h1{font-size:clamp(36px,4vw,62px);line-height:1.05;margin:8px 0 14px}.login-brand p{max-width:650px;font-size:18px;line-height:1.65;color:#dceafa}
.login-highlights{display:flex;flex-wrap:wrap;gap:12px}.login-highlights span{background:rgba(255,255,255,.1);padding:11px 14px;border-radius:12px;font-size:13px}
.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(430px,100%)}.login-card h2{font-size:34px;margin:8px 0}.login-card>label{display:block;font-weight:600;font-size:13px;margin-top:22px}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:13px 14px;color:var(--text);outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(7,83,154,.1)}textarea{min-height:92px;resize:vertical}
.password-row{display:flex;gap:8px}.password-row input{flex:1}.icon-button{width:48px;border:1px solid var(--line);background:#fff;border-radius:11px}
.mobile-logo-wrap{display:none}.demo-access{margin-top:22px;background:#f6f8fb;border:1px dashed #cfd9e6;border-radius:12px;padding:14px;display:grid;gap:4px;font-size:12px;color:var(--muted)}.demo-access strong{color:var(--text)}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--blue)}.eyebrow.light{color:var(--yellow)}.muted{color:var(--muted)}
.btn{border:0;border-radius:11px;padding:12px 17px;font-weight:700;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);color:white;box-shadow:0 8px 20px rgba(7,83,154,.2)}.btn.light{background:white;color:var(--blue)}.btn.ghost{background:#edf2f8;color:var(--text)}.btn.danger{background:#fff0f0;color:var(--red)}.btn.full{width:100%;margin-top:22px}
.app{display:flex;min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:252px;background:var(--blue-deep);color:white;display:flex;flex-direction:column;padding:22px 15px;z-index:50;transition:.25s}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand img{width:52px;height:52px;object-fit:cover;border-radius:13px;background:white}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{font-size:22px}.sidebar-brand span{font-size:11px;letter-spacing:.16em;color:var(--yellow)}
nav{display:grid;gap:4px;padding-top:20px;overflow:auto}.nav-item{border:0;background:transparent;color:#bed0e4;padding:12px 13px;text-align:left;border-radius:10px;display:flex;align-items:center;gap:12px;font-weight:600;font-size:13px}.nav-item span{width:22px;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.1);color:white}.nav-item.active{box-shadow:inset 3px 0 var(--yellow)}
.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:17px}.user-mini{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:11px;background:var(--yellow);color:var(--blue-deep);font-weight:800;display:grid;place-items:center}.user-mini strong,.user-mini span{display:block}.user-mini strong{font-size:12px}.user-mini span{font-size:10px;color:#aac0d9}
.main{margin-left:252px;width:calc(100% - 252px)}.topbar{height:86px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:40}.topbar h2{margin:3px 0 0;font-size:23px}.top-actions{display:flex;align-items:center;gap:14px}.date-pill{background:#f4f7fb;border:1px solid var(--line);padding:10px 13px;border-radius:11px;font-size:12px;font-weight:600}.notification-btn{border:0;background:#f4f7fb;border-radius:11px;width:42px;height:42px;position:relative}.notification-btn span{position:absolute;right:-3px;top:-3px;width:17px;height:17px;background:var(--red);color:white;border-radius:50%;font-size:9px;display:grid;place-items:center}.menu-btn{display:none;border:0;background:#edf2f8;border-radius:9px;padding:8px}
.content{padding:28px 32px 48px}.page{display:none}.page.active{display:block}.hero-card{background:linear-gradient(120deg,var(--blue-deep),var(--blue));min-height:260px;border-radius:22px;padding:38px 44px;color:white;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.hero-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,212,0,.2),transparent 36%)}.hero-card>div{position:relative;z-index:2}.hero-card h1{font-size:38px;line-height:1.08;margin:10px 0}.hero-card p{color:#dceafa}.hero-tag{font-size:10px;background:var(--yellow);color:var(--blue-deep);padding:7px 10px;border-radius:99px;font-weight:800;letter-spacing:.12em}.hero-ball{font-size:120px;filter:drop-shadow(0 20px 20px rgba(0,0,0,.2));transform:rotate(-12deg);margin-right:40px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stats-grid.small{grid-template-columns:repeat(3,1fr)}.stat-card{background:white;border:1px solid var(--line);border-radius:15px;padding:19px;display:flex;align-items:center;gap:14px;box-shadow:0 6px 20px rgba(10,40,80,.04)}.stat-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-weight:800}.stat-icon.blue{background:#e7f1fc;color:var(--blue)}.stat-icon.green{background:#e5f8f0;color:var(--green)}.stat-icon.yellow{background:#fff6cc;color:#aa7600}.stat-icon.red{background:#fdeaea;color:var(--red)}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card span{font-size:11px;color:var(--muted)}.stat-card strong{font-size:22px;margin:2px 0}.stat-card small{font-size:10px;color:#9aa7b8}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 5px 20px rgba(11,42,79,.035)}.panel.wide{grid-column:1/-1}.panel-head,.page-actions{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.panel-head h3,.page-actions h3{margin:5px 0;font-size:18px}.link-btn{border:0;background:transparent;color:var(--blue);font-weight:700;font-size:12px}
.finance-summary{display:flex;align-items:center;justify-content:center;gap:50px;padding:25px 0 10px}.donut{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--green) 0 65%,#ecf0f5 65%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:105px;height:105px;background:#fff;border-radius:50%}.donut div{position:relative;z-index:2;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:25px}.donut span{font-size:10px;color:var(--muted)}.legend-list{display:grid;gap:14px}.legend-list div{display:grid;grid-template-columns:12px 90px 30px;align-items:center;font-size:12px}.dot{width:8px;height:8px;border-radius:50%}.dot.paid{background:var(--green)}.dot.pending{background:var(--orange)}.dot.overdue{background:var(--red)}
.activity-list{display:grid}.activity{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.activity:last-child{border:0}.date-box{background:#edf4fb;color:var(--blue);border-radius:10px;padding:7px;text-align:center}.date-box strong,.date-box span,.activity strong,.activity span{display:block}.date-box strong{font-size:17px}.date-box span{font-size:8px}.activity>div:nth-child(2) strong{font-size:12px}.activity>div:nth-child(2) span{font-size:10px;color:var(--muted);margin-top:3px}.activity em{font-style:normal;font-size:9px;background:#f1f4f8;padding:6px 8px;border-radius:99px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);font-size:12px}th{font-size:10px;text-transform:uppercase;color:#8795a8;letter-spacing:.08em}.athlete-cell{display:flex;align-items:center;gap:10px}.mini-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--blue),#4a8bc7);color:white;display:grid;place-items:center;font-weight:800;font-size:11px}.athlete-cell strong,.athlete-cell span{display:block}.athlete-cell span{font-size:9px;color:var(--muted);margin-top:2px}.badge{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:9px;font-weight:800}.badge.success,.badge.pago,.badge.ativo{background:#e4f8ef;color:#078452}.badge.warning,.badge.pendente{background:#fff3d7;color:#a26a00}.badge.danger,.badge.vencido,.badge.inativo{background:#fdeaea;color:#c43838}.badge.info{background:#e5f1fc;color:var(--blue)}
.page-actions{margin-bottom:20px}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;background:#fff;border:1px solid var(--line);padding:14px;border-radius:14px;margin-bottom:16px}.form-layout{display:grid;gap:16px}.form-section{padding:25px}.section-title{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px}.section-title>span{width:35px;height:35px;border-radius:10px;background:var(--blue);color:white;display:grid;place-items:center;font-weight:800}.section-title h3,.section-title p{margin:0}.section-title p{font-size:11px;color:var(--muted);margin-top:3px}.form-grid{display:grid;gap:16px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid label{font-size:11px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{margin-top:7px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.checks{display:grid;gap:10px;margin-top:20px;padding:16px;background:#f7f9fc;border-radius:12px}.checks label{font-size:11px;display:flex;align-items:center;gap:8px}.checks input{width:auto}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.attendance-head,.attendance-row{display:grid;grid-template-columns:1fr 110px 110px 110px;align-items:center;gap:10px;padding:13px}.attendance-head{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:800;border-bottom:1px solid var(--line)}.attendance-row{border-bottom:1px solid var(--line)}.attendance-row:last-child{border:0}.radio-choice{text-align:center}.radio-choice input{width:auto}
.action-btn{border:0;background:#edf4fb;color:var(--blue);padding:7px 10px;border-radius:8px;font-size:10px;font-weight:700}.action-btn.green{background:#e7f8ef;color:var(--green)}
.documents-grid,.media-grid,.reports-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.document-card,.media-card,.report-card{background:white;border:1px solid var(--line);border-radius:15px;padding:20px;text-align:left}.document-icon{width:45px;height:45px;border-radius:12px;background:#e9f2fb;color:var(--blue);display:grid;place-items:center;font-size:20px;margin-bottom:18px}.document-card strong,.document-card span{display:block}.document-card span{font-size:10px;color:var(--muted);margin:7px 0 15px}.integration-note{display:flex;align-items:center;gap:16px}.integration-note>div:nth-child(2){flex:1}.integration-note h3,.integration-note p{margin:0}.integration-note p{color:var(--muted);font-size:11px;margin-top:5px}.drive-icon{width:52px;height:52px;border-radius:14px;background:#f0f5fb;color:var(--blue);display:grid;place-items:center;font-size:23px}
.media-card{padding:0;overflow:hidden}.media-cover{height:145px;background:linear-gradient(135deg,var(--blue),#0b75cc);display:grid;place-items:center;font-size:55px;position:relative}.media-cover span{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.45);color:white;padding:5px 8px;border-radius:99px;font-size:9px}.media-info{padding:16px}.media-info strong,.media-info small{display:block}.media-info small{color:var(--muted);margin-top:5px}.report-card{min-height:155px;display:flex;flex-direction:column;gap:8px;justify-content:center;transition:.2s}.report-card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}.report-card span{font-size:27px}.report-card small{color:var(--muted)}
.settings-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.tech-list{display:grid;gap:12px;margin:18px 0}.tech-list>div{display:flex;align-items:center;gap:10px}.tech-list>div>span{width:27px;height:27px;border-radius:8px;background:#e5f8ef;color:var(--green);display:grid;place-items:center}.tech-list strong,.tech-list small{display:block}.tech-list strong{font-size:11px}.tech-list small{font-size:9px;color:var(--muted)}.danger-zone{margin-top:16px;display:flex;align-items:center;justify-content:space-between}.danger-zone h3,.danger-zone p{margin:0}.danger-zone p{font-size:11px;color:var(--muted);margin-top:5px}
.toast{position:fixed;right:24px;top:24px;background:var(--blue-deep);color:white;padding:13px 18px;border-radius:11px;z-index:200;opacity:0;transform:translateY(-15px);pointer-events:none;transition:.25s;box-shadow:var(--shadow);font-size:12px}.toast.show{opacity:1;transform:none}
.modal{position:fixed;inset:0;background:rgba(5,30,55,.55);z-index:100;display:grid;place-items:center;padding:20px}.modal-card{background:white;border-radius:18px;width:min(650px,100%);max-height:90vh;overflow:auto;padding:28px;position:relative}.modal-close{position:absolute;right:14px;top:12px;border:0;background:#eef2f7;width:33px;height:33px;border-radius:9px;font-size:20px}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.documents-grid,.media-grid,.reports-grid{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:span 2}.settings-grid{grid-template-columns:1fr}}
@media(max-width:780px){.login-screen{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.mobile-logo-wrap{display:block;text-align:center}.mobile-logo-wrap img{width:105px;height:105px;object-fit:cover;border-radius:22px}.sidebar{transform:translateX(-100%)}.sidebar.open{transform:none}.main{margin-left:0;width:100%}.menu-btn{display:block}.topbar{padding:0 16px}.date-pill{display:none}.content{padding:18px 14px 35px}.hero-card{padding:27px;min-height:245px}.hero-card h1{font-size:29px}.hero-ball{font-size:65px;margin:0}.dashboard-grid{grid-template-columns:1fr}.stats-grid,.stats-grid.small{grid-template-columns:1fr 1fr}.finance-summary{gap:25px}.filter-bar{grid-template-columns:1fr}.form-grid.three,.form-grid.two{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.documents-grid,.media-grid,.reports-grid{grid-template-columns:1fr}.attendance-head,.attendance-row{grid-template-columns:1fr 75px 75px 75px;font-size:10px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:480px){.stats-grid,.stats-grid.small{grid-template-columns:1fr}.hero-ball{display:none}.page-actions{flex-direction:column}.finance-summary{flex-direction:column}.top-actions{gap:5px}.notification-btn{display:none}}


/* ===== Frequência e financeiro no padrão Gestão ===== */
.button-group{display:flex;gap:10px;flex-wrap:wrap}
.compact{font-size:11px}
.attendance-kpis,.finance-kpis{display:grid;gap:14px;margin-bottom:18px}
.attendance-kpis{grid-template-columns:repeat(4,1fr)}
.finance-kpis{grid-template-columns:repeat(5,1fr)}
.attendance-kpi,.finance-kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;position:relative;overflow:hidden;box-shadow:0 6px 20px rgba(10,40,80,.04)}
.attendance-kpi:before,.finance-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.attendance-kpi span,.attendance-kpi strong,.attendance-kpi small,.finance-kpi span,.finance-kpi strong,.finance-kpi small{display:block}
.attendance-kpi span,.finance-kpi span{font-size:11px;color:var(--muted);font-weight:700}
.attendance-kpi strong,.finance-kpi strong{font-size:25px;margin:6px 0 3px}
.attendance-kpi small,.finance-kpi small{font-size:9px;color:#9aa7b8}
.attendance-kpi.present:before,.finance-kpi.received:before{background:var(--green)}
.attendance-kpi.absent:before,.finance-kpi.overdue:before{background:var(--red)}
.attendance-kpi.justified:before,.finance-kpi.pending:before{background:var(--orange)}
.attendance-kpi.total:before,.finance-kpi.balance:before{background:var(--blue)}
.finance-kpi.expense:before{background:#7657c8}

.attendance-toolbar,.finance-toolbar{display:grid;align-items:end;gap:14px;margin-bottom:16px}
.attendance-toolbar{grid-template-columns:1fr 1fr 2fr}
.finance-toolbar{grid-template-columns:1fr 2fr 1fr}
.attendance-toolbar label,.finance-toolbar label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.attendance-toolbar input,.attendance-toolbar select,.finance-toolbar input,.finance-toolbar select{margin-top:7px}
.attendance-quick-info{background:#f5f8fc;border-radius:12px;padding:13px 16px}
.attendance-quick-info strong,.attendance-quick-info small{display:block}
.attendance-quick-info strong{font-size:12px;margin:4px 0}
.attendance-quick-info small{font-size:10px;color:var(--muted)}

.frequency-panel{padding:0;overflow:hidden}
.frequency-panel .panel-head{padding:21px 22px;border-bottom:1px solid var(--line)}
.attendance-list.management-style{display:grid}
.management-attendance-row{display:grid;grid-template-columns:minmax(220px,1fr) 430px;align-items:center;gap:18px;padding:15px 22px;border-bottom:1px solid var(--line);transition:.2s}
.management-attendance-row:last-child{border-bottom:0}
.management-attendance-row:hover{background:#fbfcfe}
.attendance-status-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.att-status-btn{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:10px;padding:10px 8px;font-size:10px;font-weight:800;transition:.18s}
.att-status-btn:hover{transform:translateY(-1px)}
.att-status-btn.present.active{background:#e4f8ef;border-color:#8dd7b7;color:#087a4e}
.att-status-btn.absent.active{background:#fdeaea;border-color:#efaaaa;color:#bd3434}
.att-status-btn.justified.active{background:#fff3d7;border-color:#f2cd7d;color:#956200}
.attendance-history-panel{margin-top:18px}

.finance-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:14px;padding:5px;background:#e9eef5;border-radius:12px;width:max-content;max-width:100%}
.finance-tab{border:0;background:transparent;border-radius:9px;padding:10px 15px;color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap}
.finance-tab.active{background:#fff;color:var(--blue);box-shadow:0 4px 12px rgba(10,40,80,.08)}
.finance-section{display:none}
.finance-section.active{display:block}
.finance-action-group{display:flex;gap:6px;flex-wrap:wrap}
.finance-action-group .action-btn{white-space:nowrap}
.money-in{color:var(--green);font-weight:800}
.money-out{color:var(--red);font-weight:800}
.cash-type{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800}
.cash-type:before{content:"";width:7px;height:7px;border-radius:50%}
.cash-type.entry{color:var(--green)}.cash-type.entry:before{background:var(--green)}
.cash-type.exit{color:var(--red)}.cash-type.exit:before{background:var(--red)}
.monthly-report-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px;margin-bottom:16px}
.monthly-highlight{background:linear-gradient(135deg,var(--blue-deep),var(--blue));color:#fff}
.monthly-highlight .eyebrow{color:var(--yellow)}
.monthly-highlight h3{font-size:34px;margin:12px 0 8px}
.monthly-highlight p{color:#dceafa;font-size:11px;line-height:1.6}
.monthly-lines{display:grid;gap:12px;margin-top:16px}
.monthly-lines div{display:flex;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:11px}
.monthly-lines div:last-child{border-bottom:0}
.monthly-lines span{color:var(--muted)}

@media(max-width:1180px){
  .finance-kpis{grid-template-columns:repeat(3,1fr)}
  .attendance-kpis{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .management-attendance-row{grid-template-columns:1fr}
  .attendance-toolbar,.finance-toolbar{grid-template-columns:1fr}
  .monthly-report-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
  .finance-kpis,.attendance-kpis{grid-template-columns:1fr}
  .attendance-status-buttons{grid-template-columns:1fr}
  .button-group{width:100%}.button-group .btn{flex:1}
}

/* ===== Sistema conectado: estados, usuarios e acessibilidade ===== */
.connection-indicator{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:10px;color:var(--muted)}
.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(238,155,39,.12)}
.connection-indicator.online .connection-dot{background:var(--green);box-shadow:0 0 0 4px rgba(24,166,106,.12)}
.connection-indicator.offline .connection-dot{background:var(--red);box-shadow:0 0 0 4px rgba(224,75,75,.12)}
.loading-overlay{position:fixed;inset:0;background:rgba(5,35,64,.34);z-index:300;display:grid;place-items:center;backdrop-filter:blur(2px)}
.loading-card{background:#fff;border-radius:16px;padding:22px 28px;display:flex;align-items:center;gap:14px;box-shadow:0 20px 60px rgba(5,35,64,.25);font-size:12px}
.spinner{width:26px;height:26px;border:3px solid #dbe5ef;border-top-color:var(--blue);border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.system-status-box{background:#f5f8fc;border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:16px}
.system-status-box strong,.system-status-box small{display:block}.system-status-box strong{font-size:12px;margin:5px 0}.system-status-box small{font-size:9px;color:var(--muted);word-break:break-all}
.users-panel{margin-top:16px}.users-panel .panel-head{margin-bottom:12px}
.empty-state{padding:30px;text-align:center;color:var(--muted);font-size:12px}
.error-state{padding:14px;border-radius:11px;background:#fff0f0;color:#b53232;font-size:11px}
.notice{padding:13px 15px;border-radius:11px;background:#edf5fd;border:1px solid #d4e6f7;color:#245a8b;font-size:11px;line-height:1.5}
.notice.warning{background:#fff7df;border-color:#f4d98b;color:#886000}
.notice.success{background:#e8f8f0;border-color:#b8e5ce;color:#087a4e}
.modal-card h2{margin:7px 0 18px}.modal-card label{font-size:11px;font-weight:700}.modal-card label input,.modal-card label select,.modal-card label textarea{margin-top:7px}
.document-meta{display:grid;gap:5px}.document-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.media-actions{display:flex;gap:7px;margin-top:12px}
.report-table-preview{margin-top:16px}.report-summary{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.report-summary span{background:#f1f5f9;padding:8px 10px;border-radius:9px;font-size:10px;font-weight:700}
.permission-hidden{display:none!important}.disabled-action{opacity:.45;pointer-events:none}
.password-strength{height:5px;border-radius:99px;background:#e8edf3;margin-top:7px;overflow:hidden}.password-strength i{display:block;height:100%;width:0;background:var(--red);transition:.2s}
.upload-progress{height:8px;background:#edf1f5;border-radius:99px;overflow:hidden;margin-top:12px}.upload-progress i{display:block;height:100%;background:var(--blue);width:0;transition:.2s}
.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-actions .action-btn{padding:8px 11px}
.status-line{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.status-line i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.demo-banner{background:linear-gradient(90deg,#fff6cf,#fffaf0);border:1px solid #f2d77a;color:#7b5a00;padding:9px 13px;font-size:10px;font-weight:700;text-align:center}
body.has-demo-banner .topbar{top:32px}body.has-demo-banner .sidebar{top:32px}body.has-demo-banner .app{padding-top:32px}
@media(max-width:780px){body.has-demo-banner .topbar{top:29px}.demo-banner{font-size:9px}.users-panel .panel-head{flex-direction:column}.users-panel .btn{width:100%}}

/* Evita que tabelas largas forcem rolagem horizontal da página em telas pequenas. */
.main,.content,.page,.panel,.dashboard-grid>*{min-width:0}
.table-wrap{max-width:100%;width:100%}
