/* Gracel Contabilidade V0.0.15 — camada de refinamento visual, sem alterar layouts ou regras de negócio. */
:root{--gc15-navy:#14213d;--gc15-blue:#29477f;--gc15-gold:#fca311;--gc15-ease:cubic-bezier(.22,.8,.25,1);}
/* Feedback universal para os dois portais, com acessibilidade preservada. */
:where(.gc-office-shell,.client-shell,.login-shell) button:not(:disabled){-webkit-tap-highlight-color:transparent;}
:where(.gc-office-shell,.client-shell,.login-shell) button:disabled{cursor:not-allowed;opacity:.64;}
:where(.gc-office-shell,.client-shell,.login-shell) :is(button,input,textarea,select,a):focus-visible{outline:3px solid rgba(252,163,17,.56);outline-offset:3px;}
:where(.gc-office-shell,.client-shell) :is(input,textarea,select){max-width:100%;}
:where(.gc-office-shell,.client-shell) :is(.btn,.modal-x){transition:transform .19s var(--gc15-ease),box-shadow .24s var(--gc15-ease),background-color .2s,border-color .2s,filter .2s;}
:where(.gc-office-shell,.client-shell) .btn:active:not(:disabled){transform:translateY(1px) scale(.985);}
@media(hover:hover) and (pointer:fine){
 :where(.gc-office-shell,.client-shell) :is(.btn,.modal-x):hover:not(:disabled){filter:brightness(1.035);}
}
/* Escritório GC — barra lateral azul com movimento permanente, inclusive nos módulos internos. */
.gc-office-shell .sidebar{isolation:isolate;overflow:hidden;background:linear-gradient(158deg,#14213d,#13294f 53%,#223f72);}
.gc-office-shell .sidebar::before{content:"";position:absolute;inset:-38% -90%;z-index:0;pointer-events:none;
 background:radial-gradient(ellipse 28% 42% at 27% 30%,rgba(100,150,227,.48),transparent 95%),radial-gradient(ellipse 34% 42% at 73% 68%,rgba(5,13,35,.68),transparent 95%),radial-gradient(ellipse 22% 36% at 61% 15%,rgba(52,92,161,.4),transparent 96%);
 transform:translate3d(-8%,-5%,0);animation:gc15SidebarFlow 18s ease-in-out infinite alternate;will-change:transform;}
.gc-office-shell .sidebar>*{position:relative;z-index:1;}
@keyframes gc15SidebarFlow{0%{transform:translate3d(-9%,-6%,0) rotate(-3deg)}50%{transform:translate3d(8%,5%,0) rotate(3deg)}100%{transform:translate3d(-2%,10%,0) rotate(-2deg)}}
.gc-office-shell .sidebar .gc-office-nav button{transition:background-color .2s,box-shadow .2s,transform .2s var(--gc15-ease),border-color .2s;}
@media(hover:hover) and (pointer:fine){.gc-office-shell .sidebar .gc-office-nav button:hover{background:rgba(255,255,255,.13);}}
/* Faixa de saudação animada apenas na Home. Não se cria faixa nos módulos internos. */
.gc-office-shell .gc-home-intro{isolation:isolate;background:linear-gradient(112deg,#14213d,#1b2f59 50%,#29477f);box-shadow:0 14px 40px rgba(20,33,61,.15),inset 0 1px rgba(255,255,255,.13);}
.gc-office-shell .gc-home-intro::before{content:"";position:absolute;inset:-38%;z-index:0;pointer-events:none;
 background:radial-gradient(ellipse 45% 65% at 78% 22%,rgba(95,154,239,.36),transparent 92%),radial-gradient(ellipse 42% 66% at 17% 80%,rgba(5,13,36,.45),transparent 94%);
 transform:translate3d(-7%,1%,0);animation:gc15HeroFlow 19s ease-in-out infinite alternate;will-change:transform;}
@keyframes gc15HeroFlow{0%{transform:translate3d(-7%,2%,0) scale(1)}50%{transform:translate3d(7%,-5%,0) scale(1.08)}100%{transform:translate3d(-3%,7%,0) scale(1.03)}}
.gc-office-shell .gc-home-intro::after{z-index:0;}
.gc-office-shell .gc-home-intro>*{position:relative;z-index:1;}
/* Home — mesmos cartões e informações, dimensões compactas e efeitos mais refinados. */
.gc-office-shell .gc-home-section{margin-bottom:22px;}
.gc-office-shell .gc-home-sectionhead{margin-bottom:11px;}
.gc-office-shell .gc-home-grid{gap:11px;}
.gc-office-shell .gc-home-module{min-height:84px;padding:13px 15px;gap:12px;border-radius:16px;
 background:linear-gradient(130deg,#fff 0%,#fff 56%,#f4f8ff 100%);border:1px solid #dce5ef;
 box-shadow:0 4px 16px rgba(18,45,79,.055),inset 0 1px rgba(255,255,255,.94);
 transition:transform .26s var(--gc15-ease),border-color .24s,box-shadow .26s var(--gc15-ease),background-color .24s;}
.gc-office-shell .gc-home-icon{width:41px;height:41px;flex-basis:41px;border-radius:12px;background:linear-gradient(140deg,#eef5ff,#e4edfa);box-shadow:inset 0 1px 0 #fff;transition:transform .26s var(--gc15-ease),background-color .25s;}
.gc-office-shell .gc-home-icon .gc-ico{width:22px;height:22px;}
.gc-office-shell .gc-home-copy{gap:3px;}
.gc-office-shell .gc-home-copy strong{font-size:13px;}
.gc-office-shell .gc-home-copy small{font-size:11px;line-height:1.42;}
.gc-office-shell .gc-home-arrow{transition:transform .25s var(--gc15-ease),color .25s;}
.gc-office-shell .gc-home-admin{background:linear-gradient(125deg,#fff,#fffbf4);}
.gc-office-shell .gc-home-admin .gc-home-icon{background:linear-gradient(135deg,#fff5dc,#ffead1);}
@media(hover:hover) and (pointer:fine){
 .gc-office-shell .gc-home-module:hover{transform:translateY(-4px);border-color:#a8c0df;box-shadow:0 15px 32px rgba(20,40,78,.13),0 1px 0 #fff inset;}
 .gc-office-shell .gc-home-module:hover .gc-home-icon{transform:scale(1.055) rotate(-2deg);}
 .gc-office-shell .gc-home-module:hover .gc-home-arrow{transform:translateX(3px);color:#29477f;}
}
.gc-office-shell .gc-home-module:active{transform:translateY(-1px) scale(.992);}
/* Acabamento compartilhado nos módulos sem alterar sua disposição, ações ou hierarquia. */
.gc-office-shell .topbar{background:linear-gradient(110deg,#fff,#f9fbff);border-bottom:1px solid #e2eaf4;}
.gc-office-shell .content :is(.card,.gc-fin-card,.gc-fin-list,.audit-category,.gc-fin-insight){box-shadow:0 3px 16px rgba(20,33,61,.055);}
.gc-office-shell .content :is(.card,.gc-fin-insight){border-color:#e0e9f3;}
.gc-office-shell .content .btn:focus-visible{outline-color:rgba(252,163,17,.6);}
.gc-office-shell .content :is(.field input,.field textarea,.field select,.search-box input):focus-visible{outline:2px solid rgba(41,71,127,.24);outline-offset:1px;border-color:#6e91bc;box-shadow:0 0 0 4px rgba(41,71,127,.075);}
.gc-office-shell .content :is(.table-wrap,.gc-fin-lists,.gc-fin-fixed-list){scrollbar-width:thin;}
.gc-office-shell .content :is(.gc-fin-movement,.gc-fin-fixed-row,.gc-service-match){transition:background-color .18s,border-color .18s,box-shadow .18s;}
.gc-office-shell .content :is(.gc-fin-movement,.gc-fin-fixed-row):hover{background-color:#f7faff;}
/* O mesmo padrão refinado em janelas já existentes, sem atrasar as ações do usuário. */
.gc-office-shell .content :is(.modal,.gc-fin-dialog,.gc-fin-modal),.client-shell .modal{box-shadow:0 28px 80px rgba(11,23,49,.22);}
/* Portal dos clientes — preservar organização, carnês, pagamentos e identidade estabelecida. */
.client-shell{background:linear-gradient(180deg,#f0f4fb,#fafbff 36%,#f7f9fc);}
.client-shell .client-head{box-shadow:0 6px 22px rgba(12,28,55,.14);}
.client-shell .client-welcome{box-shadow:0 18px 42px rgba(20,33,61,.15);}
.client-shell :is(.client-carnet,.month-card,.client-summary>div,.dashboard-current-period){box-shadow:0 3px 17px rgba(20,33,61,.055);}
.client-shell :is(.client-carnet,.month-card){transition:transform .23s var(--gc15-ease),box-shadow .23s var(--gc15-ease),border-color .23s;}
@media(hover:hover) and (pointer:fine){.client-shell .month-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(20,33,61,.12);}}
.client-shell .field :is(input,select,textarea):focus-visible{border-color:#9c0000;outline:2px solid rgba(156,0,0,.18);outline-offset:1px;box-shadow:0 0 0 4px rgba(156,0,0,.07);}
/* Logins permanecem fiéis às duas paletas (escritório azul / cliente vermelho). */
.login-shell .login-card{box-shadow:0 24px 65px rgba(12,30,59,.105);}
.login-shell .login-card .btn-primary{transition:transform .2s var(--gc15-ease),box-shadow .2s,filter .2s;}
.login-shell .login-card .btn-primary:hover:not(:disabled){box-shadow:0 10px 24px rgba(20,33,61,.16);filter:brightness(1.055);}
.login-shell .login-card .btn-primary:active:not(:disabled){transform:translateY(1px) scale(.992);}
.login-shell .password-eye{transition:background-color .2s,transform .2s var(--gc15-ease);}
.login-shell .password-eye:active{transform:scale(.94);}
/* Dimensões móveis: manter informação acessível, menus utilizáveis e nenhum overflow indevido. */
@media(max-width:1200px) and (min-width:741px){.gc-office-shell .gc-home-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:740px){
 .gc-office-shell .gc-home-grid{grid-template-columns:1fr;}
 .gc-office-shell .gc-home-module{min-height:78px;padding:12px 14px;}
 .gc-office-shell .gc-home-icon{flex-basis:40px;width:40px;height:40px;}
 .gc-office-shell .gc-home-intro{padding:clamp(18px,5vw,25px);}
 .gc-office-shell .content{min-width:0;}
 .client-shell .client-wrap{max-width:100%;}
 .client-shell .client-carnet-head{gap:12px;}
 .client-shell .client-summary{flex-wrap:wrap;}
}
@media(max-width:400px){.gc-office-shell .gc-home-module{gap:10px;}.gc-office-shell .gc-home-copy small{font-size:10.5px;}.gc-office-shell .gc-home-arrow{flex-basis:12px;}}
/* Movimento respeita preferência de acessibilidade sem afetar o uso do sistema. */
@media(prefers-reduced-motion:reduce){
 .gc-office-shell .sidebar::before,.gc-office-shell .gc-home-intro::before{animation:none!important;will-change:auto;transform:none!important;}
 .gc-office-shell .gc-home-module,.gc-office-shell .gc-home-icon,.gc-office-shell .gc-home-arrow,
 :where(.gc-office-shell,.client-shell,.login-shell) :is(.btn,.modal-x,.month-card){transition:none!important;}
}
