/* #region CONSTANTES */

:root {
    /* Cores primárias */
    --brand-50:  #eff6ff;
    --brand-100: #dbeafe;
    --brand-200: #bfdbfe;
    --brand-300: #93c5fd;
    --brand-400: #60a5fa;
    --brand-500: #3b82f6;
    --brand-600: #2563eb;
    --brand-700: #1d4ed8;
    --brand-800: #1e40af;
    --brand-900: #1e3a8a;

    /* Cores neutras (frias, levemente azuladas) */
    --n-0:   #ffffff;
    --n-25:  #fafbfc;
    --n-50:  #f6f8fa;
    --n-100: #eef1f5;
    --n-150: #e2e7ed;
    --n-200: #d4dae2;
    --n-300: #b4bcc8;
    --n-400: #8b95a4;
    --n-500: #657081;
    --n-600: #4a5363;
    --n-700: #353c49;
    --n-800: #232935;
    --n-900: #141923;
    --n-950: #0a0d14;

    /* Semânticas */
    --success: #059669;
    --success-bg: #d1fae5;
    --success-br: #6ee7b7;
    --warning: #d97706;
    --warning-bg: #fef3c7;
    --warning-br: #fcd34d;
    --danger: #dc2626;
    --danger-bg: #fee2e2;
    --danger-br: #fca5a5;
    --info: #0284c7;
    --info-bg: #e0f2fe;
    --info-br: #7dd3fc;
    --neutral: #475569;
    --neutral-bg: #f1f5f9;
    --neutral-br: #cbd5e1;

     /* Texto DENTRO dos blocos semânticos (avisos, banners, callouts).
     Os fundos --*-bg são fixos e claros em todos os temas, então estes
     tokens NÃO devem ser sobrescritos por [data-theme]. */
    --on-semantic: #14181f;
    --on-semantic-2: #414b5a; 
  
    /* Tipografia */
    --font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

    /* Raios */
    --r-sm: 4px;
    --r-md: 6px;
    --r-lg: 8px;
    --r-xl: 12px;
    --r-2xl: 16px;

    /* Sombras */
    --sh-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 1px rgba(15, 23, 42, 0.03);
    --sh-md: 0 1px 3px rgba(15, 23, 42, 0.06), 0 4px 8px rgba(15, 23, 42, 0.04);
    --sh-lg: 0 4px 12px rgba(15, 23, 42, 0.08), 0 12px 24px rgba(15, 23, 42, 0.06);
    --sh-focus: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);

    /* Densidade espaçamentos */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 20px;
    --sp-6: 24px;
    --sp-8: 32px;
    --sp-10: 40px;

    /* Unidades controláveis via densidade */
    --input-h: 38px;
    --btn-h: 38px;
    --row-pad-y: 12px;
    --card-pad: 20px;
}

[data-density="compact"] {
    --input-h: 32px;
    --btn-h: 32px;
    --row-pad-y: 8px;
    --card-pad: 14px;
}

[data-density="comfortable"] {
    --input-h: 44px;
    --btn-h: 44px;
    --row-pad-y: 16px;
    --card-pad: 28px;
}


/* ============================================
    Temas adicionais
    Cada tema = pacote COMPLETO (fundo + superficies + textos + bordas + primária).
    Mesmo mecanismo do :root / [data-theme="dark"]: só reescrevem tokens,
    nenhum componente precisa mudar. Primárias dos temas claros usam tons
    ~700 para ficarem legíveis como texto sobre fundos claros; primárias dos
    temas escuros são mais claras para contrastarem com o fundo escuro.
    ============================================ */

  /* Aplicação de tokens (light por padrão) */
[data-theme="light"] {
    --bg: var(--n-50);                
    --surface: var(--n-0);            
    --surface-2: var(--n-25);
    --surface-3: var(--n-100);
    --border: var(--n-150);
    --border-strong: var(--n-200);
    --text: var(--n-900);
    --text-2: var(--n-600);
    --text-3: var(--n-400);
    --primary: var(--brand-600);
    --primary-hover: var(--brand-700);
    --primary-soft: var(--brand-50);
    --on-primary: #ffffff;
}

[data-theme="dark"] {
    --bg: var(--n-950);
    --surface: var(--n-900);
    --surface-2: var(--n-800);
    --surface-3: var(--n-700);
    --border: #242b3a;
    --border-strong: #2f384a;
    --text: #eef1f5;
    --text-2: #a8b0bf;
    --text-3: #6a7385;
    --primary: var(--brand-500);
    --primary-hover: var(--brand-400);
    --primary-soft: rgba(59, 130, 246, 0.14);
}

/* Areia Ambar - claro, quente */
[data-theme="sand"] {
    --bg: #f7f1e6;
    --surface: #fffdf8;
    --surface-2: #f2ebdc;
    --surface-3: #e9dfca;
    --border: #e6dbc4;
    --border-strong: #d6c7a8;
    --text: #2b2414;
    --text-2: #69593f;
    --text-3: #998a6c;
    --primary: #a65f00;
    --primary-hover: #8a4f00;
    --primary-soft: rgba(166, 95, 0, 0.12);
    --on-primary: #ffffff;
}

/* Salvia Verde - claro */
[data-theme="sage"] {
    --bg: #eef3ec;
    --surface: #fbfdfa;
    --surface-2: #e7eee4;
    --surface-3: #dae5d5;
    --border: #d6e0d0;
    --border-strong: #bfceb7;
    --text: #1b2a1c;
    --text-2: #4b5c47;
    --text-3: #7c8c77;
    --primary: #047857;
    --primary-hover: #036249;
    --primary-soft: rgba(4, 120, 87, 0.12);
    --on-primary: #ffffff;
}

/* Nevoa Teal - claro, frio */
[data-theme="mist"] {
    --bg: #ebf3f3;
    --surface: #f8fcfc;
    --surface-2: #e3eeee;
    --surface-3: #d3e3e3;
    --border: #cde0e0;
    --border-strong: #b3cccc;
    --text: #14282a;
    --text-2: #43585a;
    --text-3: #74898b;
    --primary: #0f766e;
    --primary-hover: #115e56;
    --primary-soft: rgba(15, 118, 110, 0.12);
    --on-primary: #ffffff;
}

/* Lavanda Roxo - claro */
[data-theme="lavender"] {
    --bg: #f3f0fa;
    --surface: #fcfbfe;
    --surface-2: #ebe6f6;
    --surface-3: #ded6ef;
    --border: #dbd3ed;
    --border-strong: #c6bade;
    --text: #221a31;
    --text-2: #534768;
    --text-3: #867a9c;
    --primary: #7c3aed;
    --primary-hover: #6d28d9;
    --primary-soft: rgba(124, 58, 237, 0.12);
    --on-primary: #ffffff;
}

/* Rose Rosa - claro */
[data-theme="rose"] {
    --bg: #faeff2;
    --surface: #fffafb;
    --surface-2: #f6e5ea;
    --surface-3: #efd6dd;
    --border: #efd3da;
    --border-strong: #e1b9c4;
    --text: #2e1820;
    --text-2: #69454f;
    --text-3: #9e7681;
    --primary: #be123c;
    --primary-hover: #9f1239;
    --primary-soft: rgba(190, 18, 60, 0.12);
    --on-primary: #ffffff;
}

/* Ardosia Indigo - escuro */
[data-theme="slate"] {
    --bg: #0e1320;
    --surface: #161d2e;
    --surface-2: #1e2740;
    --surface-3: #28324e;
    --border: #28324a;
    --border-strong: #38445e;
    --text: #e9edf8;
    --text-2: #a6b0c8;
    --text-3: #6c7790;
    --primary: #6366f1;
    --primary-hover: #818cf8;
    --primary-soft: rgba(99, 102, 241, 0.18);
    --on-primary: #ffffff;
}

/* Bosque Verde - escuro */
[data-theme="forest"] {
    --bg: #0d1611;
    --surface: #14201a;
    --surface-2: #1c2a22;
    --surface-3: #26362c;
    --border: #243329;
    --border-strong: #33453a;
    --text: #e8f1ea;
    --text-2: #a3b4a9;
    --text-3: #6c7d72;
    --primary: #16a34a;
    --primary-hover: #22c55e;
    --primary-soft: rgba(22, 163, 74, 0.18);
    --on-primary: #ffffff;
}

/* Mel Laranja - claro */
[data-theme="mel"] {
    --bg: #fdf2e3;
    --surface: #fffaf2;
    --surface-2: #fae9d3;
    --surface-3: #f3dbbd;
    --border: #f1dcc0;
    --border-strong: #e6c79e;
    --text: #2e2010;
    --text-2: #715737;
    --text-3: #a48560;
    --primary: #c2410c;
    --primary-hover: #9a3412;
    --primary-soft: rgba(194, 65, 12, 0.12);
    --on-primary: #ffffff;
}

/* Argila Vermelho - claro */
[data-theme="argila"] {
    --bg: #f8efed;
    --surface: #fefbfa;
    --surface-2: #f3e3df;
    --surface-3: #ecd3cd;
    --border: #ecd5d0;
    --border-strong: #ddb9b1;
    --text: #2c1815;
    --text-2: #6b443d;
    --text-3: #9e756c;
    --primary: #b91c1c;
    --primary-hover: #991b1b;
    --primary-soft: rgba(185, 28, 28, 0.12);
    --on-primary: #ffffff;
}

/* Ametista Roxo - escuro */
[data-theme="ametista"] {
    --bg: #150f1f;
    --surface: #1d1629;
    --surface-2: #271d37;
    --surface-3: #332747;
    --border: #312642;
    --border-strong: #42355a;
    --text: #efeaf6;
    --text-2: #b3a8c4;
    --text-3: #7a6e8e;
    --primary: #a855f7;
    --primary-hover: #c084fc;
    --primary-soft: rgba(168, 85, 247, 0.18);
    --on-primary: #ffffff;
}


/* #endregion CONSTANTES */
/* #region CSS_RESET */

* {padding:0; margin:0;} 
*, *:before, *:after {box-sizing: border-box;}
html, body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, span, label, form {padding:0;margin:0;}
html {width:100%;height:100%;}
body {
	width:100%;
	height:100%;
	font-family: var(--font-ui);
	font-size: 14px;
	line-height: 1.5;
	color: var(--text);
	background: var(--bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
a{text-decoration:underline;outline:none;color:#00F;}
a:hover{text-decoration:underline;}
img{border:0;}
.compensate-for-scrollbar{margin-right: 0 !important;}
input, textarea, select { font-family: inherit; }

/* #endregion CSS_RESET */
/* #region SPLASH */

#web-splash {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--bg); /* Mesma cor do background_color do manifest */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease-out; /* Transição suave ao sumir */
}

.splash-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.splash-logo {
    width: 120px;
    height: 120px;
}

/* --- LOADER REDONDO --- */
.custom-loader-round {
  border: 4px solid var(--brand-200);
  border-top: 4px solid var(--primary); /* Usa o seu padrão */
  border-radius: 50%;
  animation: loader-spin 1s linear infinite;
  box-sizing: border-box;
}

@keyframes loader-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --- LOADER HORIZONTAL --- */
.custom-loader-h-container {
  height: 4px;
  background-color: var(--brand-200);
  border-radius: 2px;
  overflow: hidden;
  box-sizing: border-box;
}

.custom-loader-h-bar {
  height: 100%;
  width: 0%;
  background-color: var(--primary); /* Usa o seu padrão */
  transition: width linear;
}

/* #endregion SPLASH */
/* #region SHELL */

div#app_main{

	display: flex;
    flex-direction: column;
    min-height: 100vh;

    background: var(--bg);
    color: var(--text);
}

div#app_panel{
	display: flex;
    flex-direction: column;
    flex-grow: 1;
}

div.wrapper{
	width: 100%;
	max-width: 1200px;
	padding: 0 24px;
	margin: 0 auto;
}

div.wrapper.wrp-total{
	width: 100%;
    max-width: none;
	padding: 0 0;
	margin: 0 auto;
}

div.wrapper.wrp-full{
	max-width:none;
}

div.wrapper.wrp-short{
	max-width: 880px;
}

div.wrapper.wrp-pan {
    overflow: auto;
    position: absolute;
    height: stretch;
}

div.wrapper.short{
	max-width: 400px;
}

div.wrapper.clean{
	padding: 0;
}

/* #endregion SHELL */
/* #region BOTOES */
.btn{
	display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: var(--btn-h);
    line-height: var(--btn-h);
    padding: 0;
    border-radius: var(--r-md);
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, border-color .12s, color .12s, box-shadow .12s;
    white-space: nowrap;
	background: transparent;
    color: var(--text-2);
	text-decoration: none;
    padding-left: 10px;
    padding-right: 10px;
    text-decoration: none;
}
.btn:hover{
    text-decoration: none;
}


.btn:focus-visible { outline: none; box-shadow: var(--sh-focus); }
.btn-primary {
    background: var(--primary);
    color: var(--on-primary);
}
.btn-primary:hover { background: var(--primary-hover);}
.btn-secondary {
    background: var(--surface);
    color: var(--text);
    border-color: var(--border-strong);
}
.btn-secondary:hover { background: var(--surface-2); border-color: var(--n-300);}
.btn-ghost {
    background: transparent;
    color: var(--text-2);
}
.btn-ghost:hover { background: var(--surface-3); color: var(--text);}
.btn-sm {height: 30px;padding: 0 12px;font-size: 13px;}
.btn-inp {
    height: var(--input-h);
    padding: 0 12px;
    font-size: 13px;
}

.btn-icon {width: var(--btn-h);padding: 0;font-size: 16px;}
.btn-icon.btn-sm { width: 30px; }
.btn.disabled { opacity: .55; cursor: not-allowed; }

.btn-link{
    text-decoration: none;
    background: none;
    border: 0px;
    color: var(--text-2);
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    padding: 0px;
    font-size: 13px;
    font-weight: 500;
    align-items: baseline;
}
.btn-link:hover{
    text-decoration: none;
}


.btn-danger{background-color: var(--danger);}
.btn-warning{background-color: var(--warning);}
.btn-success{background-color: var(--success);}

/* #endregion BOTOES */
/* #region COMUNS */

div.thumb{
    padding: 3px;
    border: 1px solid var(--border);
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-3);
    background-color: var(--surface);
    background-origin: content-box;
 	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;   
}

div.overlay {
	opacity:    0.35; 
	background: #000; 
	width:      100%;
	height:     1000%;
	z-index:    100001;
	top:        0; 
	left:       0; 
	position:   fixed;
	overflow:   hidden;
}
div.loader{
	width:      100%;
	height:     100%;
	z-index:    100002;
	top:        0; 
	left:       0; 
	position:   fixed;
	overflow:	hidden;
}

a.icon{
	text-decoration: none;
	color: #999999;
}

div.bigicon{
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--primary-soft);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    font-size: 24px;
}

a.icon:hover{
	text-decoration: none;
}

div.text-overflow{
    -webkit-mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 50%, transparent 100%);
}

tr.registro{
    cursor: pointer;
}

/* animacao */

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.spinning {
    display: inline-block; /* Necessário para o transform funcionar */
    animation: spin 1s infinite linear;
}

.spinningIco::before {
    display: inline-block; /* Necessário para o transform funcionar */
    animation: spin 1s infinite linear;
}

/* badges */
.badge{
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    background: var(--surface-3);
    color: var(--text-2);
}
.badge-primary { background: var(--primary-soft); color: var(--primary); }
.badge-success { background: var(--success-bg); color: var(--success); }
.badge-warning { background: var(--warning-bg); color: var(--warning); }
.badge-danger { background: var(--danger-bg); color: var(--danger); }

.bg{background-color: var(--bg);}
.surface{background-color: var(--surface);}
.surface-2{background-color: var(--surface-2);}
.surface-3{background-color: var(--surface-3);}
.border{color: var(--border);}
.border-strong{color: var(--border-strong);}
.text{color: var(--text);}
.text-2{color: var(--text-2);}
.text-3{color: var(--text-3);}
.primary{color: var(--primary);}
.primary-bg{background-color: var(--primary);}
.primary-hover{color: var(--primary-hover);}
.primary-soft{color: var(--primary-soft);}
.on-primary{color: var(--on-primary);}

/* #endregion COMUNS */
/* #region NAV-MENU */

/* screen indicator */
.nav-float-btn {
  position: fixed; top: 16px; right: 16px; z-index: 480;
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--primary); color: #fff; border: none; cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  text-decoration: none;
  opacity: 0; transform: scale(0.7) translateY(-6px);
  pointer-events: none;                /* não clicável enquanto escondida */
  transition: opacity .2s ease, transform .2s ease;
}
.nav-float-btn:hover{
    text-decoration: none;
}
.nav-float-btn.show {
  opacity: 1; transform: scale(1) translateY(0);
  pointer-events: auto;
}

.nav-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: 499;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

.nav-backdrop.open {
    opacity: 1;
    pointer-events: auto;
}

.nav-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width:280px;
    background: var(--surface);
    border-left: 1px solid var(--border);
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.08);
    z-index: 500;
    transform: translateX(100%);
    transition: transform .25s ease;
    display: flex;
    flex-direction: column;
}

.nav-drawer.open {
    transform: translateX(0);
}

.nav-header{
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav-body{
    flex: 1 1 0%;
    overflow: auto;
    padding: 10px;
}

.nav-footer{
    padding: 12px;
    border-top: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-3);
    text-align: center;
}

.nav-header h2{
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.nav-header p{
    font-size: 14px;
    font-weight: 600;
    margin-top: 2px;
}

.nav.header a#navClose{
    height: 24px;
    width: 24px;
    padding: 0px;
    margin-left: 4px;
}

div.nav-body h2{
    padding: 8px 14px 4px;
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

div.nav-section{
    margin-bottom: 8px;
}

div.nav-item{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-2);
    font-size: 14px;
}

div.nav-item:hover{
    background: var(--surface-2);
    color: var(--text);
}

div.nav-item.active{
    background: var(--primary-soft);
    color: var(--primary);
    font-weight: 500;
}

/* #endregion NAV-MENU */
/* #region GRID_FLEX */

/* fllex and grid */
div.grid{
	display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}
div.grid-2cols{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-bottom: 14px;
}
div.grid-3cols{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 14px;
}


/* #endregion GRID_FLEX */
/* #region HEADER */

div#app_header{
    /*
    display: flex;
    align-items: center;
    justify-content: space-between;
    */
    height: 60px;
    padding: 0 24px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

div.header-logo{
	margin-top: 0;
	height: 40px;
	float: left;
}

div.header-logo img{
    width: auto;
    height: 40px;
    object-fit: contain;
}

div#app_header h1{
	font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--text);
	margin-top: 0;
}

/*breadcrumb*/
div.crumb{
    display: flex;
    align-items: center;
    gap: 0px;
    font-size: 13px;
    color: var(--text-2);
}

div.crumb a.itm,
div.crumb span.itm{
    color: var(--text-2);
    text-decoration: none;
    background: none;
    border: 0;
    padding: 4px 6px;
    border-radius: var(--r-sm);
    font-size: inherit;
}

div.crumb b{
    font-weight: normal;
}

div.crumb .itm:last-child{
	color: var(--text);
    font-weight: 500;
}

div.crumb span.sep {
    color: var(--text-3);
}
div.crumb span.sep::before {
	font-family: 'icomoon' !important;
	content: "\e90c";
	font-size: 14px;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 2;
	-webkit-font-smoothing: antialiased;
}

/*notifications*/
a.header-alert{
	display: none;
	position: relative;
	width: var(--btn-h);
	text-align: center;
}
a.header-alert::before{
	font-family: 'icomoon' !important;
	content: "\e904";
	font-size: 20px;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 2;
	-webkit-font-smoothing: antialiased;	
}
a.header-debug{
	display: flex;
	position: relative;
	width: var(--btn-h);
	text-align: center;
    opacity: 0.3;
}
a.header-debug::before{
	font-family: 'icomoon' !important;
	content: "\eb79";
	font-size: 20px;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 2;
	-webkit-font-smoothing: antialiased;	
}

a.header-debug.off{color: #ff0000;opacity: 1}

span.alert-num{
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--danger);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--surface);
}

/*user*/
div.header-controler{
    position: relative;
}
div.header-user{
	padding: 0 16px;
}
span.header-alias{
	width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--primary-soft);
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 13px;
}
span.header-name{
	font-size: 13px;
    font-weight: 500;
}

/*menu *******************************/
div.header-menu{
	display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 220px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-lg);
    padding: 6px;
    z-index: 100;
	line-height: 16px;
}

div.menu-data{
	padding: 10px 10px 12px;
    margin-bottom: 4px;
    font-size: 12px;
    color: var(--text-2);
}

div.menu-data h2{
    font-size: 14px;
    font-weight: 600;
	line-height: 22px;
}

a.menu-item{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: var(--r-sm);
    cursor: pointer;
    color: var(--text);
    font-size: 14px;
	text-decoration: none;
}

a.menu-item.logoff{color: var(--danger);}

a.menu-item::before{
	font-family: 'icomoon' !important;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	-webkit-font-smoothing: antialiased;	
}

a.menu-item.perfil::before{content: "\e931";}
a.menu-item.config::before{content: "\e928";}
a.menu-item.segura::before{content: "\e92a";}
a.menu-item.logoff::before{content: "\e91f";}

a.menu-item:hover {
    background: var(--surface-3);
}

div.menu-sep{
	height: 1px;
    background: var(--border);
    margin: 4px 0;
}

/*header mobile *******************************/
div.header-mobile{
    display: none;
	padding: 10px 16px;
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    overflow-x: auto;
    white-space: nowrap;			
}

/* #endregion HEADER */
/* #region LOGIN */

div#app_login{
	flex-grow: 1;
    display: flex;
    justify-content: center; /* Centraliza horizontalmente */
    align-items: center;     /* Centraliza verticalmente */

	justify-content: center;
    padding: 40px 24px;
}

div#app_login div.app_logo{
	height: 100px;
	width: 100%;
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	margin-bottom: 16px;
}

div#app_login h1{
	font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
	text-align: center;
}
div#app_login h2{
	font-size: 14px;
    color: var(--text-2);
    margin-top: 4px;
	text-align: center;
	font-weight: 300;
}

div#app_login a.botao.login{
	width: 100%;
}

div#app_login a.esqueci{
	float: right;
	text-decoration: none;
	color: var(--primary);
	font-size: 13px;
	font-weight: 500;
}

div#app_footer{
	width: 100%;
	padding: 16px 24px;
    text-align: center;
    font-size: 12px;
    color: var(--text-3);
}

/* #endregion LOGIN */
/* #region CARDS */

/* cards */
div.card{
	background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
	padding: var(--card-pad);
}

div.card h2{
    font-size: 15px;
    font-weight: 600;
    margin: 0px 0px 10px;
}

div.card h3{
    font-size: 12px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 6px;
}

div.card h4{
    font-size: 13px;
    font-weight: 500;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 4px;
}

div.card-num{
    width: 32px; 
    height: 32px; 
    border-radius: 8px; 
    background: var(--primary-soft); 
    color: var(--primary); 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    font-size: 13px; 
    font-weight: 600; 
    flex-shrink: 0;
}

div.card-meta{
    display: flex;
    gap: 12px;
    align-items: flex-start;
}
div.card-meta h2{
    margin: 0;
}

table.card-table{
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
table.card-table tr{
    transition: background .08s;
}
table.card-table tr:hover{
    background: var(--surface-2);
}
table.card-table tr td{
    padding: 8px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    vertical-align: middle;
}
table.card-table tr th{
    padding: 8px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    vertical-align: middle;
    text-align: left;
    background-color: var(--surface-3);
}

table.card-table.vertical-hdr tr td:first-child{
    width: 1%;
    white-space:nowrap;
    color: var(--text-2);
}

div.card-text p{
    margin-bottom: 10px;
}
div.card-text ul,
div.card-text ol{
    margin-bottom: 10px;
    margin-left: 20px;
}
div.card-text ul li,
div.card-text ol li{
    margin-bottom: 5px;
}

div.card div.notes{
    display: flex;
    gap: 12px;
    padding: 16px;
    border-radius: 8px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    margin: 16px 0px;
}

div.card div.card-acts{
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 4px
}
div.card div.card-acts a{
    text-decoration: none;
    color: var(--text);
    padding: 4px 8px;
}
div.card div.card-acts a span.icon{
    float: left;
    margin-right: 6px;
    margin-top: 4px;
}

div.card div.card-acts a:hover{
    border-radius: 10px;
    background: var(--surface-3);
    color: var(--text);
}

a.linkopt{
    color: var(--primary);
    font-size: 13px;
    font-weight: 500;
    padding: 0px;
    margin-bottom: 12px;
    text-decoration: none;
    margin-top: 10px;
}

a.linkopt span.icon{
    float: left;
    font-size: 16px;
    margin-right: 6px;
}

/* ficha1 */
div.card-ficha1{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap:10px;
    margin-bottom: 20px;
    background-color: var(--surface-3);
    border-radius: 10px;
    padding: 10px;
}
div.card-ficha1 div.card-ficha-thb{
    height: auto;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top center;
    border-radius: 10px;
    flex: 0 0 48px;
}

div.card-ficha1 div.card-ficha-dat{
    flex: 1 1 0;
}

div.card-ficha1 div.card-ficha-dat h2{
    margin-bottom: 3px;
}

/* ficha2 */
div.card-ficha2{
    background-color: var(--surface-3);
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 20px;
}
div.card-ficha2 h2{
    margin-bottom: 3px;
}
div.card-ficha2 div.card-ficha-wrp{
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap:10px;
    margin-top: 10px;
}

div.card-ficha2 div.card-ficha-wrp div.card-ficha-thb{
    height: auto;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top center;
    border-radius: 10px;
    flex: 0 0 48px;
}

div.card-ficha2 div.card-ficha-wrp div.card-ficha-dat{
    flex: 1 1 0;
}

/*galeria*/
div.card-galeria{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
}
div.card-galeria a{
    text-decoration: none;
    border:1px solid transparent;
    border-radius: 8px;
    display: block;
    padding: 4px 8px;
}
div.card-galeria a:hover{
    border:1px solid var(--border);
}

/*card wranings */
div.card.danger{border: 1px solid var(--danger-br);background-color: var(--danger-bg);color: var(--on-semantic-2);}
div.card.warning{border: 1px solid var(--warning-br);background-color: var(--warning-bg);color: var(--on-semantic-2);}
div.card.success{border: 1px solid var(--success-br);background-color: var(--success-bg);color: var(--on-semantic-2);}
div.card.info{border: 1px solid var(--info-br);background-color: var(--info-bg);color: var(--on-semantic-2);}
div.card.neutral{border: 1px solid var(--neutral-br);background-color: var(--neutral-bg);color: var(--on-semantic-2);}

/*responsive tables */
table.rc-cards tr {
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
    padding: var(--card-pad);
}

/* #endregion CARDS */
/* #region PRINCIPAL */

div.principal-meta{
    font-size: 13px;
    color: var(--text-2);
	font-weight: normal;
	margin-bottom: 24px;
    padding-top: 24px;
}

div.principal-meta h1{
    font-size: 26px;
    font-weight: 700;
    margin: 0px;
    letter-spacing: -0.02em;
}
div.principal-meta h2{
    font-size: 13px;
    color: var(--text-2);
	font-weight: normal;
}
div.principal-meta.small h1{
    font-size: 22px;
    letter-spacing: -0.01em;
}

div.principal-meta h3{
    font-size: 14px;
    color: var(--text-2);
    margin-top: 4px;
    font-weight: normal;
}

/*lista*/
div.principal-lista{
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-sm);
}

div.principal-lista div.lista-item{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: transparent;
    border-top: 0px;
    border-right: 0px;
    border-bottom: 1px solid var(--border);
    border-left: 0px;
    border-image: initial;
    opacity: 1;
    text-align: left;
    transition: background 0.08s;
}	
div.principal-lista div.lista-item>a{
	font-size: 15px;
    font-weight: 500;
	text-decoration: none;
    color: var(--text);
	float: left;
	width: 100%;
    padding: 14px 16px;
}
div.principal-lista div.lista-item>a:hover{
    background: var(--surface-2);
}

/*sep*/
div.principal-sep{
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

div.principal-sep h2{
    margin: 0px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/*cards*/
div.principal-cards{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-bottom: 30px;
}

div.principal-cards div.lista-item{
    text-align: left;
    padding: 22px;
    cursor: pointer;
    opacity: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
    overflow: hidden;
    transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
    min-height: 150px;
    border-color: var(--border);
    color: var(--text);
    background: linear-gradient(135deg, var(--surface) 0%, var(--surface) 55%, var(--primary-soft) 140%);
    border-radius: var(--r-lg);
}

div.principal-cards div.lista-item div.lista-item-ico{    
    position: absolute;
    right: 0px;
    bottom: 0px;
    color: var(--primary);
    opacity: 0.4;
    transform: translate(22%, 25%) rotate(-12deg);
    transition: transform 0.3s, opacity 0.3s;
    pointer-events: none;
    background-position: center;
    background-size: contain;
    height:180px;
    width: 180px;
    font-size:180px;
}

div.principal-cards div.lista-item:not(.disabled):hover{
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
    transform: translateY(-2px);
    box-shadow: var(--sh-md);
}

div.principal-cards div.lista-item:not(.disabled):hover div.lista-item-ico{
    transform: translate(15%, 18%) rotate(-8deg);
    opacity: 0.6;
}

div.principal-cards div.lista-item div.lista-item-txt{
    position: relative;
    z-index: 1;
    margin-top: 20px;
    width: calc(100% - 40px);
}


div.principal-cards div.lista-item div.lista-item-txt h2{
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
}

div.principal-cards div.lista-item div.lista-item-txt p{
    font-size: 13px;
    color: var(--text-2);
    line-height: 1.45;
    max-width: 85%;
}

div.principal-cards div.lista-item.disabled{
    cursor: not-allowed;
    opacity: 0.45;
}

div.notFound{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 64px 24px;
    gap: 16px;
}

div.notFound div.block{
    max-width: 380px;
}
div.notFound span{
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--surface-3);
    color: var(--text-3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
}
div.notFound h2{
    font-size: 16px;
    font-weight: 600;
    margin: 0px 0px 6px;
    color: var(--text);
}

div.card.notFound span{
    background: transparent;
}
div.card.notFound h2{
    text-align: center;
    color: var(--text-3);
}


div.section{
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

div.section .section-text{
    margin: 0px;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

div.section .section-divider{
     flex: 1 1 0%; 
     height: 1px; 
     background: var(--border);
}
/* #endregion PRINCIPAL */
/* #region POPUP */

/* popup gemini*/
div#onx_popup_overlay{
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999;
    backdrop-filter: blur(3px); /* Opcional: dá um leve efeito blur no fundo */
}

div#onx_popup_overlay.onx_popup_no_overlay {
    background: rgba(0, 0, 0, 0.3);
	backdrop-filter:unset; 
}

div#onx_popup{
    border-radius: 12px; 
    box-shadow: 0px 10px 30px rgba(0,0,0,0.3);
    width: 100%;
    height: 100%;
    max-width: 800px;
    max-height: 500px;
    overflow: auto;
    position: relative;
    box-sizing: border-box;
    animation: popupFadeIn 0.3s ease-out;
    background-color: #ffffff;
}

div#onx_popup div.wrapper.popup{
    padding: var(--card-pad);
    display: inline-block;
}

/* Animação simples de surgimento */
@keyframes popupFadeIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

/* Classes de estilo para o controle do Zoom */
.img-zoom-fit {
    max-width: 90vw;
    max-height: 90vh;
    width: auto;
    height: auto;
    cursor: zoom-in; /* Cursor de lupa com sinal de + */
}
.img-zoom-full {
    max-width: none !important;
    max-height: none !important;
    width: auto !important;
    height: auto !important;
    cursor: zoom-out; /* Cursor de lupa com sinal de - */
}

div#onx_popup div.onxpop_header{
    padding: 14px 20px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

div#onx_popup div.onxpop_header h2{
    font-size: 16px;
    font-weight: 600;
    margin: 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

div#onx_popup div.onxpop_header a.icon{
	color:var(--txt_nrm);
}

div#onx_popup div.painel{
    padding: 10px;
}

#onx_popup_bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 8px 14px;
    background: rgba(20, 20, 20, 0.85);
    color: #ffffff;
    border-radius: 8px 8px 0 0;
    box-sizing: border-box;
    user-select: none;
    backdrop-filter: blur(8px); /* Efeito translúcido moderno */
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

/* Botões de Ação na Barra (Zoom, Download, Navegação) */
#onx_popup_bar .onx-bar-btn,
#onx_popup_bar .fechaPopup {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #d1d5db;
    text-decoration: none;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

/* Efeito de Hover genérico */
#onx_popup_bar .onx-bar-btn:hover {
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    transform: translateY(-1px);
}

/* Efeito de clique (Active) */
#onx_popup_bar .onx-bar-btn:active,
#onx_popup_bar .fechaPopup:active {
    transform: scale(0.95);
}

/* Botão de Fechar com destaque vermelho no Hover */
#onx_popup_bar .fechaPopup {
    font-size: 20px;
    margin-left: 4px;
}

#onx_popup_bar .fechaPopup:hover {
    background: #ef4444; /* Vermelho destacado */
    color: #ffffff;
}

/* Container do Controle de Galeria (< 1/5 >) */
#onx_popup_bar .onx-bar-galeria {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-right: 6px;
    padding-right: 10px;
    border-right: 1px solid rgba(255, 255, 255, 0.15); /* Separador vertical */
}

/* Contador Numérico da Galeria */
#onx_popup_bar .onx-bar-galeria span {
    font-size: 12px;
    font-weight: 500;
    color: #9ca3af;
    min-width: 32px;
    text-align: center;
    letter-spacing: 0.5px;
}

/* Ajustes para telas pequenas (Smartphones) */
@media (max-width: 600px) {
    #onx_popup_bar {
        padding: 6px 10px;
        gap: 6px;
    }

    #onx_popup_bar .onx-bar-btn,
    #onx_popup_bar .fechaPopup {
        width: 28px;
        height: 28px;
        font-size: 13px;
    }
}

/* #endregion POPUP */
/* #region FORMS */
.input {
    width: 100%;
    height: var(--input-h);
    padding: 0 12px;
    border-radius: var(--r-md);
    border: 1px solid var(--border-strong);
    background: var(--surface);
    color: var(--text);
    font-size: 14px;
    outline: none;
    transition: border-color .12s, box-shadow .12s;
}
.input::placeholder { color: var(--text-3); }
.input:focus { border-color: var(--primary); box-shadow: var(--sh-focus); }

p.input{
    line-height: var(--input-h);
    overflow: hidden;
    text-overflow: ellipsis;
}

.check{
    width: 18px;
    height: var(--input-h);
    accent-color: var(--primary);
}

div.key .input {
    border-radius: var(--r-md) 0 0 var(--r-md);
}
div.key a.icon{
    height: var(--input-h);
    width: 30px;
    background-color: var(--primary);
    color: var(--on-primary);
    text-decoration: none;
    line-height: var(--input-h);
    text-align: center;
    border-radius: 0 var(--r-md) var(--r-md) 0;
    border: 1px solid var(--border-strong);
    border-left: none;
}

/*input field com icones */
div.inputico{
	position: relative;
    display: flex;
    align-items: center;
}
div.inputico .ico{
	position: absolute;
    left: 12px;
    display: flex;
    color: var(--text-3);
}

div.inputico .ico.dir{
    right: 8px;
	left: auto;
}

div.inputico .input.icoesq{padding-left: 38px;}
div.inputico .input.icodir{padding-right: 42px;}

/*showpwd */
a.shwPwd{
    text-decoration: none;
    cursor:pointer;
}
a.shwPwd::before{
    font-family: 'icomoon' !important;
    font-style: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    content: "\e960";	
}
a.shwPwd.off::before{content: "\e961";}

/* #endregion FORMS */
/* #region PAGINACAO */

div.navbar{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 20px;
    flex-wrap: wrap;
    gap: 12px;
}
div.navega {
    display: flex;
    gap: 4px;
    align-items: center;
}
div.navega div.total{
	background-color: #f3f4f4;
	margin-bottom: 5px;
	margin-top: 10px;
	display: inline-block;
	width: 100%;
	padding: 5px 0 5px 0;
}

/* #endregion PAGINACAO */
/* #region ALERTAS */

.alert-body{
	background-color:#f1f1f1;
}
div.alert h1{
	padding:0;
	font-size:16px;
	text-align:left;
	font-weight:bold;
}
div.alert-interno{
	padding:10px 0 10px 0;
}
div.alert-interno p{
	color:#6b6b6b;
	line-height:18px;
	font-size:14px;
			
}
div.alert a.botao{
	margin-right:10px;
	margin-top:10px;
	text-align:center;
	color:#ffffff;
	float:right;
}
div.alert a.botao.bok{
	background-color:#3582bc;
}
div.alert a.botao.bno{
	background-color:#7a7979;
}

div.msgConfirm{
	display:none;
	position:absolute;
	right:330px;
	max-width:400px;
	background-color:#093;
	color:#FFF;
	font-size:12px;
	padding:10px;
	-webkit-box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.3);
	-moz-box-shadow:    0px 4px 10px 0px rgba(0, 0, 0, 0.3);
	box-shadow:         0px 4px 10px 0px rgba(0, 0, 0, 0.3);
	-webkit-border-bottom-right-radius: 10px;
	-webkit-border-bottom-left-radius: 10px;
	-moz-border-radius-bottomright: 10px;
	-moz-border-radius-bottomleft: 10px;
	border-bottom-right-radius: 10px;
	border-bottom-left-radius: 10px;
	z-index:2000;
}
div.msgConfirm span.icon{
	float:left;
	font-size:16px;
	margin-right:15px;
	color:#FFF;
}
div.msgConfirm.err{
	background-color:#C93C3E;
}

/* messages box*/
div.alertbox div.card{
    margin-bottom: 20px;
}
div.alertflx{
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

div.alertbox div.ico{
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--danger);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    flex-grow: 0;
}    

div.alertbox div.ico::before{
    font-family: 'icomoon' !important;
    font-style: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;	
}

div.card.danger div.ico::before{content: "\e900";}
div.card.warning div.ico::before{content: "\e902";}
div.card.success div.ico::before{content: "\e935";}


div.alerttxt{
    flex-grow: 1;
}
a.alertclose{
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    flex-grow: 0;
    color: var(--danger);
}
a.alertclose::before{
    font-family: 'icomoon' !important;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	-webkit-font-smoothing: antialiased;	
    content: "\e93f";
}
div.alerttxt h1{
    text-align: left !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    margin-bottom: 2px !important;
}
div.alerttxt h2{
    text-align: left !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--on-semantic) !important;
    margin-bottom: 0 !important;
}
div.alerttxt p{
    text-align: left !important;
    font-size: 13px !important;
    color: var(on-semantic-2) !important;
    margin-top: 4px !important;
    line-height: 1.5 !important;
}
div.alertact{
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
}
div.card.danger h1{color: var(--danger);}



/* #endregion ALERTAS */
/* #region CONFIRMA */

/* Container do fundo escurecido (Overlay) */
.confirma-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(15, 23, 42, 0.4); /* Fundo escurecido suave */
    backdrop-filter: blur(4px); /* Efeito de desfoque moderno */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    padding: 20px;
    box-sizing: border-box;
    animation: fadeIn 0.2s ease-out;
}

/* Caixa do Modal / Popup */
.confirma-modal {
    background: #ffffff;
    width: 100%;
    max-width: 460px; /* Largura ideal baseada na imagem */
    border-radius: 24px; /* Bordas arredondadas elegantes */
    padding: 32px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    box-sizing: border-box;
    transform: scale(0.95);
    animation: scaleUp 0.25s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* Títulos e Textos */
.confirma-title {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 24px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    line-height: 1.2;
}

.confirma-subtitle {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}

/* Área de Ícones Dinâmicos */
.confirma-icon-box {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    font-size: 28px;
}

/* Container de Botões */
.confirma-buttons-container {
    display: flex;
    gap: 12px;
    justify-content: center;
    width: 100%;
    margin-top: 12px;
    flex-wrap: wrap-reverse; /* Em telas muito pequenas, joga o botão principal para cima */
}

/* Animações de Entrada */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes scaleUp {
    to { transform: scale(1); }
}

/* #endregion CONFIRMA */
/* #region TABELAS */

table.lista{
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;	
}

table.lista{
    cursor: pointer;
    transition: background .08s;
}
table.lista tr:hover {
    background: var(--surface-3);
}
table.lista th{
	text-align: left;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text);
    padding: 12px 16px;
    background: var(--surface-3);
	border-bottom: 2px solid var(--border-strong);
    white-space: nowrap;
    position: relative;
}
table.lista td{
	padding: var(--row-pad-y) 16px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    vertical-align: middle;
}

table.lista td div.thumb{
	width: 48px;
    height: 48px;
}

/*tabela responsiva */
table.lista.rc-cards td.rc-title-cell {
  font-size:18px; 
  font-weight:700; 
}
table.lista.rc-cards tbody td {
    padding: 4px 0px;
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

table.lista.rc-cards td div.thumb {
    width: 100%;
    height: 100%;
}

table.lista.rc-cards td.rc-card-last{ border-bottom:0; }

table.lista.rc-cards td.rc-action-cell .icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 10px;
    background: #fff;
    color: var(--text);
}

/* #endregion TABELAS */
/* #region DETALHES */


/*detalhe*/
div.detalhe-header{
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    padding: 20px 0;
}

div.detalhe-header>div.wrapper{
    min-width: 0px;
    display: flex;
    gap: 16px;
    align-items: center;
}

div.detalhe-header div.thumb{
    background-size: cover;
    width: 64px;
    height: 64px;
}

div.detalhe-header .info1{
    font-size: 12px;
    color: var(--text-3);
}
div.detalhe-header .info2{
    font-size: 13px;
    color: var(--text-2);
    margin-top: 2px;
}

/* colunas */

div.detalhe-colunas{
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
div.detalhe-coluna{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

div.detalhe-coluna.coluna1{
    /* flex-grow: 1, flex-shrink: 1, flex-basis: 500px */
    flex: 20 1 400px; 
}
div.detalhe-coluna.coluna2{
    /* flex-grow: 1 (faz ocupar o resto da linha), flex-basis: 320px */
    flex: 1 0 320px; 
}
div.detalhe-coluna.colunaH{
    /* flex-grow: 1, flex-shrink: 1, flex-basis: 500px */
    flex: 1 1 400px; 
}


/* thumb */

div.detalhe div.imagem{
    padding: 0;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-3);
    background-color: var(--surface);
    background-origin: content-box;
 	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
    aspect-ratio: 16 / 9;
    border:none;
} 
div.detalhe div.thumb.auto{
    aspect-ratio: 16 / 9;
    background-size: auto;
    border:none;
    position: relative;
} 

div.detalhe div.thumb div.galeria{
    position: absolute;
    bottom: 12px;
    right: 12px;
    display: flex;
    gap: 4px;
}
div.detalhe div.thumb div.galeria a{
    width: 32px;
    height: 32px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
    text-decoration: none;
}

/* abas */

div.detalhe-abas{
    border-bottom: 1px solid var(--border);
    background: var(--surface);
}

div.detalhe-abas div.abas-shell{
    display: flex;
    gap: 4px;
    overflow-x: auto;
    overflow-y: hidden;
}

div.detalhe-abas .abas-item{
    padding: 12px 16px;
    background: none;
    border: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-2);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    transition: color .12s, border-color .12s;
    text-decoration: none;
}

div.detalhe-abas .abas-item.selected {
    color: var(--primary);
    border-bottom-color: var(--primary);
}

div.detalhe-abas .abas-item:hover {
    color: var(--text);
}


/* #endregion DETALHES */
/* #region ABAS */

div.app-abas{
	width: 100%;
	padding-top: 20px;
}
div.app-abas ul{
	list-style-type: none;
	height: 40px;
	margin-left: 5%;
}

div.app-abas ul li{
	list-style-type: none;
	float: left;
}
div.app-abas a{
	color: #000000;
	background-color: #f0f0f0;
	height: 40px;
	line-height: 40px;
	float: left;
	text-align: center;
	font-size: 13px;
	text-decoration: none;
	border-radius: 5px 5px 0 0;
	padding: 0 20px 0 20px;
	min-width: 120px;
	margin-right: 2px;
}
div.app-abas a:hover{
	background-color: #b0b0b0;
	color: #ffffff;
	font-weight: bold;
}
div.app-abas a.selected{
	background-color: #ffffff;
	color: #000000;
}

/* #endregion ABAS */
/* #region PWA */

div.pwaIos{
    position:absolute;
    bottom: 0;
    margin: 20px;
    z-index: 3000;
}
div.pwaMsg{
    background-color: #ffffff;
    border-radius:10px;
    width: 100%;
    padding: 10px;
}
div.arrow-down {
  width: 0; 
  height: 0; 
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #ffffff;
  margin: 0 auto;    
}

div.pwaIos img{
    display: inline;
    height: 20px;
}

/* #endregion PWA */
/* #region GALERIA */

div.app_galeria{
    padding: 20px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

div.app_galeria div.galeria-item{
    position: relative;
    display: block;
    padding: 0px;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    aspect-ratio: 4 / 3;
    box-shadow: var(--sh-sm);
    transition: transform 0.15s, box-shadow 0.15s;
    background: var(--surface-3);
    transform: translateY(0px);
    
}

div.app_galeria div.galeria-item button{
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-color: #ffffff;
    position: absolute;
    inset: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 14px;
    border: 0px;
    border-radius: 4px;
    box-shadow: rgba(0, 0, 0, 0.14) 0px 1px 4px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px;
}

div.app_galeria div.galeria-item a{
    height: 180px;
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

/* #endregion GALERIA */
/* #region FOOTER */

div#app_footer p.padrao{
	text-align: center;
	color: #6f7174;
	padding-top: 20px;
}

div#app_footer a{
	color: #DDDDDD;
}

/* #endregion FOOTER */
/* #region COMPONENTES */

/*sem dados*/
div.lstNoData{
	text-align:center;
	padding-top:40px;	
}
div.lstNoData .icon{
	font-size:40px;
	margin-bottom:20px;
	color:#fa8221 !important;
	text-shadow:#b7b7b7 2px 2px 5px;
	display: block;
}
div.lstNoData p{
	margin-bottom:10px;
	color:#fa851f;
	
}
div.lstNoData p strong{
	font-size:16px;
	color:#000;
}

/*toggle*/
a.icon.formtoggle{
	font-size: 36px;
	margin-right: 20px;
	float:left;
}

a.icon.formtoggle:before{
	float: left;
}

a.icon.formtoggle span{
	font-family:Roboto, Arial, Helvetica, sans-serif;
	font-size:14px;
	float: left;
	color:#606060;
	margin-left: 10px;
	line-height: 40px;
}

a.icon.formtoggle.icon-toggle-off{
	color:#999999;
}

a.icon.formtoggle.icon-toggle-on{
	color:#009900;
}

/* PRINT */
div.principal.print{
    margin:10px;
}


/* #endregion COMPONENTES */
/* #region DEBUG */

div.debug{
	background-color: #000000;
	margin: 20px;
	padding: 15px;
	color:#00FF05;
    border-radius: 10px;
}
div.debug a{
	color:#FFFF00;
}
table.debug{
	border-collapse:collapse;
	border:1px solid #000;
	font-size:12px;
    margin-bottom: 20px;
}
table.debug th{
	border:1px solid #999999;
	background-color:#666666;
	color:#ffffff;
	padding:4px;
}
table.debug td{
	background-color:#333333;
	border:1px solid #999999;	
	padding:4px;
}
table.debug td.break{
	word-break: break-all;
}

pre.debug{
    max-width: 100%;
    overflow: auto;
    padding-bottom: 20px;
    margin-bottom: 20px;
}

/* FILLBAR */
div.fillbar{
	border:1px solid #999;
	background-color: #fafafa;
}

div.fillbar div.fill{
	background-color: #00ff00;
}

/* #endregion DEBUG */
/* #region ATALHOS */

input.date{width:70px;}
input.date2{width:70px;}
input.date3{width:100px;}
input.num{width:70px;}
input.mny{width:70px;}
input.hora{width:70px;}
input.hora2{width:50px;}
input.cep{width:70px;}
input.dec{width:70px;}
input.dec1{width:70px;}
input.dec2{width:70px;}
input.dec3{width:70px;}
input.dec4{width:70px;}
input.tel{width:120px;}
input.cel{width:120px;}
input.telf{width:120px;}
input.cpf{width:120px;}
input.cnpj{width:120px;}
input.color{width:70px;}
input[type=datetime-local]{width:180px;padding:1px;}
input[type=date]{width:120px;}
input[type=time]{width:120px;}
input[type=number]{width:100px;}
input.disabled, select.disabled, textarea.disabled{background-color: #E5E5E5;color:#B9B9B9;}

.cen{text-align:center !important;}
.dir{text-align:right !important;}
.esq{text-align:left !important;}
.bld{font-weight:bold !important;}
.itl{font-style:italic !important;}
.tch{text-decoration:line-through !important;}
.nolnk{text-decoration:none !important;}
.inv{display:none !important;}
.vis{display:block !important;}
.wrp{white-space:normal !important;}
.nwrp{white-space:nowrap !important;}
.aut{overflow:auto !important;}
.vis{display:block !important;}
.fix{position:fixed !important;}
.mono{font-family: var(--font-mono) !important;}
.divedit{background-color: #fff; white-space:pre; overflow: auto;-moz-tab-size:4;tab-size:4;}
.pointer{cursor:pointer}
.alpha2{opacity: 0.2}
.alpha4{opacity: 0.4}
.alpha6{opacity: 0.6}
.alpha8{opacity: 0.8}
.transp{background-color: transparent !important;border:none !important;padding: 3px !important;font-size: 11px !important;font-weight: normal !important;overflow: hidden !important;}
.elp{max-width: 100px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}

/*fontes*/
.fs10{font-size:10px !important;}
.fs12{font-size:12px !important;}
.fs14{font-size:14px !important;}
.fs16{font-size:16px !important;}
.fs18{font-size:18px !important;}
.fs20{font-size:20px !important;}

/*lineheight*/
.lh14{line-height:14px !important;}
.lh16{line-height:16px !important;}
.lh18{line-height:18px !important;}
.lh20{line-height:20px !important;}
.lh22{line-height:22px !important;}
.lh24{line-height:24px !important;}

/* quebra geral */
div.brk{clear:both;display:block;}
.sep10{clear:both;display:block;height:10px;}
.sep20{clear:both;display:block;height:20px;}
.sep30{clear:both;display:block;height:30px;}
.sep40{clear:both;display:block;height:40px;}
.sep50{clear:both;display:block;height:50px;}
.sep60{clear:both;display:block;height:60px;}
.sep80{clear:both;display:block;height:80px;}
.sep100{clear:both;display:block;height:100px;}
.div1{clear:both;display:block;border-top:1px solid #999;}
.div2{clear:both;display:block;border-top:1px dashed #999;}
.div3{clear:both;display:block;border-top:1px dotted #999;}

/*cores*/
.c-gr0{color:#fff !important;}
.c-gr1{color:#eee !important;}
.c-gr2{color:#ddd !important;}
.c-gr3{color:#bbb !important;}
.c-gr4{color:#999 !important;}
.c-gr5{color:#777 !important;}
.c-gr6{color:#555 !important;}
.c-gr7{color:#333 !important;}
.c-gr8{color:#222 !important;}
.c-gr9{color:#000 !important;}

.c-gry{color:#888 !important;}
.c-red{color:#f00 !important;}
.c-vrd{color:#0f0 !important;}
.c-gre2{color:#0b0 !important;}
.c-gre{color:#090 !important;}
.c-brw{color:#900 !important;}
.c-blu{color:#00f !important;}
.c-wht{color:#fff !important;}
.c-blk{color:#000 !important;}
.c-ylw{color:#ff0 !important;}
.c-ora{color:#f90 !important;}
.c-vio{color:#90f !important;}

.b-gr0{background-color:#fff !important;}
.b-gr1{background-color:#eee !important;}
.b-gr2{background-color:#ddd !important;}
.b-gr3{background-color:#bbb !important;}
.b-gr4{background-color:#999 !important;}
.b-gr5{background-color:#777 !important;}
.b-gr6{background-color:#555 !important;}
.b-gr7{background-color:#333 !important;}
.b-gr8{background-color:#222 !important;}
.b-gr9{background-color:#000 !important;}

.b-gry{background-color:#888 !important;}
.b-red{background-color:#f00 !important;}
.b-vrd{background-color:#0f0 !important;}
.b-gre2{background-color:#0b0 !important;}
.b-gre{background-color:#090 !important;}
.b-brw{background-color:#900 !important;}
.b-blu{background-color:#00f !important;}
.b-wht{background-color:#fff !important;}
.b-blk{background-color:#000 !important;}
.b-ylw{background-color:#ff0 !important;}
.b-ora{background-color:#f90 !important;}
.b-vio{background-color:#90f !important;}

/*pasteis*/
.b-grep{background-color:#CFEFD2 !important;}
.b-redp{background-color:#ECDBDC !important;}
.b-orap{background-color:#F3E5D5 !important;}
.b-blup{background-color:#D8DDEB !important;}
.b-ylwp{background-color:#FFFFDF !important;}

/*alinhamento*/
.fl{float:left !important;}
.fr{float:right !important;}
.vt{vertical-align:top !important;}

/*margens*/
.ml-20{margin-left:-20px !important;}
.ml-10{margin-left:-10px !important;}
.ml-5{margin-left:-5px !important;}
.ml-2{margin-left:-2px  !important;}
.ml-1{margin-left:-1px  !important;}
.ml0{margin-left:0 !important;}
.ml1{margin-left:1px !important;}
.ml2{margin-left:2px !important;}
.ml3{margin-left:3px !important;}
.ml4{margin-left:4px !important;}
.ml5{margin-left:5px !important;}
.ml10{margin-left:10px !important;}
.ml20{margin-left:20px !important;}
.ml25{margin-left:25px !important;}
.ml30{margin-left:30px !important;}
.ml40{margin-left:40px !important;}

.mr0{margin-right:0 !important;}
.mr1{margin-right:1px !important;}
.mr2{margin-right:2px !important;}
.mr3{margin-right:3px !important;}
.mr4{margin-right:4px !important;}
.mr5{margin-right:5px !important;}
.mr10{margin-right:10px !important;}
.mr20{margin-right:20px !important;}
.mr25{margin-right:25px !important;}
.mr30{margin-right:30px !important;}
.mr40{margin-right:40px !important;}

.mt-20{margin-top:-20px !important;}
.mt-10{margin-top:-10px !important;}
.mt-5{margin-top:-5px !important;}
.mt-2{margin-top:-2px  !important;}
.mt-1{margin-top:-1px  !important;}
.mt0{margin-top:0 !important;}
.mt1{margin-top:1px !important;}
.mt2{margin-top:2px !important;}
.mt3{margin-top:3px !important;}
.mt4{margin-top:4px !important;}
.mt5{margin-top:5px !important;}
.mt10{margin-top:10px !important;}
.mt20{margin-top:20px !important;}
.mt25{margin-top:25px !important;}
.mt30{margin-top:30px !important;}
.mt40{margin-top:40px !important;}

.mb0{margin-bottom:0 !important;}
.mb1{margin-bottom:1px !important;}
.mb2{margin-bottom:2px !important;}
.mb3{margin-bottom:3px !important;}
.mb4{margin-bottom:4px !important;}
.mb5{margin-bottom:5px !important;}
.mb10{margin-bottom:10px !important;}
.mb20{margin-bottom:20px !important;}
.mb25{margin-bottom:25px !important;}
.mb30{margin-bottom:30px !important;}
.mb40{margin-bottom:40px !important;}

.mx200{max-width:200px !important;}
.mx300{max-width:300px !important;}
.mx400{max-width:400px !important;}
.mx500{max-width:500px !important;}
.mx600{max-width:600px !important;}
.mx700{max-width:700px !important;}
.mx800{max-width:800px !important;}

.pd0{padding: 0 !important;}
.pd1{padding: 1px !important;}
.pd2{padding: 2px !important;}
.pd3{padding: 3px !important;}
.pd4{padding: 4px !important;}
.pd5{padding: 5px !important;}
.pd10{padding: 10px !important;}
.pd15{padding: 15px !important;}
.pd20{padding: 20px !important;}
.pd30{padding: 30px !important;}

/*larguras*/
.l20{width:20px !important;}
.l30{width:30px !important;}
.l40{width:40px !important;}
.l50{width:50px !important;}
.l60{width:60px !important;}
.l70{width:70px !important;}
.l80{width:80px !important;}
.l90{width:90px !important;}
.l100{width:100px !important;}
.l120{width:120px !important;}
.l140{width:140px !important;}
.l160{width:160px !important;}
.l180{width:180px !important;}
.l200{width:200px !important;}
.l230{width:230px !important;}
.l250{width:250px !important;}
.l300{width:300px !important;}
.l350{width:350px !important;}
.l400{width:400px !important;}
.l450{width:450px !important;}
.l500{width:500px !important;}
.l550{width:550px !important;}
.l600{width:600px !important;}

.lm40{min-width:40px !important;}
.lm60{min-width:60px !important;}
.lm80{min-width:80px !important;}
.lm100{min-width:100px !important;}
.lm120{min-width:120px !important;}
.lm140{min-width:140px !important;}
.lm160{min-width:160px !important;}
.lm180{min-width:180px !important;}
.lm200{min-width:200px !important;}
.lm300{min-width:300px !important;}
.lm400{min-width:400px !important;}
.lm500{min-width:500px !important;}
.lm600{min-width:600px !important;}

.p100{width:100% !important;}
.p90{width:90% !important;}
.p85{width:85% !important;}
.p80{width:80% !important;}
.p70{width:70% !important;}
.p66{width:66% !important;}
.p60{width:60% !important;}
.p50{width:50% !important;}
.p49{width:49% !important;}
.p48{width:48% !important;}
.p45{width:45% !important;}
.p40{width:40% !important;}
.p33{width:33% !important;}
.p25{width:25% !important;}
.p20{width:20% !important;}
.p15{width:15% !important;}
.p10{width:10% !important;}
.p5{width:5% !important;}
.p1{width:1% !important;}
.p0{width:0% !important;}

/*alturas*/
.h20{height:20px !important;}
.h30{height:30px !important;}
.h40{height:40px !important;}
.h50{height:50px !important;}
.h60{height:60px !important;}
.h70{height:70px !important;}
.h80{height:80px !important;}
.h90{height:90px !important;}
.h100{height:100px !important;}
.h120{height:120px !important;}
.h140{height:140px !important;}
.h160{height:160px !important;}
.h180{height:180px !important;}
.h200{height:200px !important;}
.h250{height:250px !important;}
.h300{height:300px !important;}
.h350{height:350px !important;}
.h400{height:400px !important;}
.h450{height:450px !important;}
.h500{height:500px !important;}

.hm40{min-height:40px !important;}
.hm60{min-height:60px !important;}
.hm80{min-height:80px !important;}
.hm100{min-height:100px !important;}
.hm120{min-height:120px !important;}
.hm140{min-height:140px !important;}
.hm160{min-height:160px !important;}
.hm180{min-height:180px !important;}
.hm200{min-height:200px !important;}
.hm300{min-height:300px !important;}
.hm400{min-height:400px !important;}
.hm600{min-height:500px !important;}

.desktp{display: block !important;}
.mobile{display: none !important;}

/* #endregion ATALHOS */