/* WEB-CTB | Etapa 05 - responsividade; somente apresentacao */
:root{--ctb-navy:#041e3e;--ctb-blue:#073768;--ctb-gold:#ffb900}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,"Segoe UI",sans-serif}body{min-height:100dvh;display:flex;flex-direction:column;background:#7793b2;color:#061f40}.ctb-main{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0}
.ctb-navbar{min-height:62px;flex:none;background:linear-gradient(120deg,#041c39,#062248 58%,#031934);color:white;display:flex;align-items:stretch;box-shadow:0 2px 9px #0002;position:relative;z-index:3}
.ctb-brand{width:190px;flex:none;color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.08;border-right:1px solid #b3bed2;margin:10px 0}.ctb-brand:hover{color:white}.ctb-brand-title{font-size:26px;font-weight:800;letter-spacing:-.5px;white-space:nowrap}.ctb-brand-title b{color:var(--ctb-gold)}.ctb-brand-sub{font-size:12px;font-weight:600;margin-top:1px}
.ctb-nav{flex:1;display:flex;align-items:stretch;min-width:0}.ctb-nav-item{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;text-align:center;color:#fff;text-decoration:none;font-weight:600;font-size:clamp(11px,1vw,13px);white-space:nowrap;position:relative}.ctb-nav-item:not(:last-child):after{content:"";position:absolute;right:0;top:11px;bottom:11px;width:1px;background:#bac6d7}.ctb-nav-item small{font-size:12px;font-weight:400}.ctb-nav-item:not(.ctb-nav-inativo):hover{background:#ffffff12;color:#fff}.ctb-nav-inativo{cursor:default;opacity:.8}.ctb-icon{width:21px;height:21px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.ctb-svg-defs{position:absolute;width:0;height:0;overflow:hidden}.ctb-menu-toggle{display:none}
.ctb-login-bg{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;isolation:isolate;overflow:hidden;background:#7996b8}
/* Fundo independente, sem login embutido e sem desfoque. */
.ctb-login-bg{background:#8eadd1 url('/assets/img/fundo-contabil-limpo.jpg') center/cover no-repeat}
.ctb-login-bg:before,.ctb-login-bg:after{content:none}
.ctb-login-card{width:min(100%,400px);background:linear-gradient(135deg,#fff,#fdfdfd);border-radius:12px;box-shadow:0 15px 38px #071b3655;padding:22px 28px 25px;display:flex;flex-direction:column;justify-content:center}.ctb-login-top{text-align:center;border-bottom:1px solid #dce0e5;padding-bottom:12px;margin-bottom:18px}.ctb-login-title{font-size:42px;font-weight:800;letter-spacing:-1px;line-height:1;margin:0;color:#061f40}.ctb-login-title span{color:var(--ctb-gold)}.ctb-login-sub{font-size:19px;margin:4px 0 0;color:#061f40;line-height:1.2}.ctb-login-form{display:flex;flex-direction:column;gap:12px}.ctb-input-row{height:44px;border:1px solid #b9c2ce;border-radius:7px;display:flex;align-items:center;overflow:hidden;margin:0;background:white}.ctb-input-row:focus-within{outline:2px solid #779ecb;outline-offset:1px}.ctb-field-icon{height:100%;width:49px;flex:none;display:grid;place-items:center;border-right:1px solid #b9c2ce;color:#111}.ctb-field-svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.ctb-input-row input{height:100%;width:100%;min-width:0;border:0;outline:none;padding:0 12px;font-size:16px;color:#192e46;background:transparent}.ctb-input-row input::placeholder{color:#666;opacity:1}.ctb-eye-button{height:100%;width:43px;flex:none;background:transparent;border:0;display:grid;place-items:center;color:#161616;cursor:pointer}.ctb-eye-button:focus-visible{outline:2px solid #779ecb;outline-offset:-3px}.ctb-enter-button{margin-top:7px;height:46px;border:0;border-radius:7px;background:linear-gradient(#094477,#063266);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.ctb-enter-button:hover{background:#0b4d88}.ctb-enter-button:focus-visible{outline:3px solid #ffb900;outline-offset:2px}.ctb-login-error{margin:0 0 14px;font-size:14px}
.ctb-footer{min-height:42px;flex:none;background:linear-gradient(100deg,#041b37,#05234a);color:#fff;display:flex;align-items:center;padding:8px 20px;gap:18px;font-size:13px;font-weight:600;flex-wrap:wrap}.ctb-footer-version{display:flex;align-items:center;gap:9px;margin-right:auto}.ctb-bars{height:18px;display:flex;gap:2px;align-items:flex-end}.ctb-bars i{width:4px;background:#fff;display:block}.ctb-bars i:nth-child(1){height:6px}.ctb-bars i:nth-child(2){height:11px}.ctb-bars i:nth-child(3){height:17px}.ctb-footer-date,.ctb-footer-time{display:flex;align-items:center;gap:7px}.ctb-footer-icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ctb-panel{border:1px solid #e1e6ee;border-radius:12px;box-shadow:0 4px 18px #142b460d}.ctb-context{font-size:.83rem;color:#e6edf5}.ctb-context strong{color:white}.btn-ctb{background:var(--ctb-navy);border-color:var(--ctb-navy);color:white}
@media(max-width:950px){.ctb-brand{width:155px}.ctb-brand-title{font-size:23px}.ctb-brand-sub{font-size:11px}.ctb-nav-item{font-size:11px}.ctb-icon{width:19px;height:19px}}
@media(max-width:767px){.ctb-navbar{min-height:58px;align-items:center;justify-content:space-between;flex-wrap:wrap}.ctb-brand{width:auto;margin:0 0 0 15px;border:0;align-items:flex-start}.ctb-brand-title{font-size:24px}.ctb-brand-sub{font-size:11px}.ctb-menu-toggle{display:flex;width:44px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:transparent;border:1px solid #ffffff55;border-radius:7px;margin:7px 12px 7px auto;color:white}.ctb-menu-toggle span{display:block;width:22px;height:2px;background:currentColor}.ctb-menu-toggle:focus-visible{outline:2px solid var(--ctb-gold)}.ctb-nav{display:none;flex:0 0 100%;flex-direction:column;background:#062448;max-height:calc(100dvh - 58px);overflow-y:auto}.ctb-nav.ctb-nav-aberto{display:flex}.ctb-nav-item{flex:none;min-height:46px;flex-direction:row;justify-content:flex-start;text-align:left;padding:8px 20px;gap:12px;font-size:14px;border-top:1px solid #ffffff25}.ctb-nav-item:after{display:none}.ctb-icon{width:20px;height:20px}.ctb-login-bg{padding:18px 12px;background-position:center}.ctb-login-card{width:min(100%,400px);padding:23px 22px}.ctb-footer{gap:8px 14px;padding:10px 14px;font-size:11px}.ctb-footer-icon{width:16px;height:16px}.ctb-footer-version{margin-right:auto}.ctb-footer-date{order:3;width:100%;justify-content:center}.ctb-footer-time{margin-left:auto}}
@media(max-width:380px){.ctb-login-card{padding:20px 16px}.ctb-login-title{font-size:36px}.ctb-login-sub{font-size:17px}.ctb-input-row input{font-size:16px}.ctb-footer{font-size:10px}}
@media(max-height:600px) and (min-width:768px){.ctb-login-bg{padding:10px}.ctb-login-card{padding:14px 24px}.ctb-login-top{padding-bottom:8px;margin-bottom:10px}.ctb-login-title{font-size:34px}.ctb-login-sub{font-size:16px}.ctb-login-form{gap:8px}.ctb-input-row{height:39px}.ctb-enter-button{height:40px;margin-top:2px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Etapa 06: seletor integrado e ajustes mobile */
.ctb-input-row select{height:100%;width:100%;min-width:0;border:0;outline:none;background:#fff;color:#263e59;padding:0 10px;font-size:14px;cursor:pointer;text-overflow:ellipsis}
.ctb-input-row select:invalid{color:#666}
.ctb-login-card{max-height:calc(100dvh - 112px);overflow-y:auto}
.ctb-enter-button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:767px){.ctb-login-bg{background-position:46% center}.ctb-login-card{max-height:none}.ctb-input-row select{font-size:14px}}
@media(max-height:540px){.ctb-login-bg{align-items:flex-start}.ctb-login-card{max-height:none}}

/* Etapa 08: recuperacao de senha e menu Utilitarios */
.ctb-login-link{color:#06467d;font-size:13px;text-align:right;text-decoration:underline;align-self:flex-end}
.ctb-nav-dropdown{flex:1;min-width:0;position:relative;display:flex}
.ctb-nav-button{width:100%;background:transparent;border:0;font-family:inherit;cursor:pointer}
.ctb-util-menu{display:none;position:absolute;top:100%;right:0;min-width:245px;background:#062448;box-shadow:0 10px 22px #0004;z-index:30;border-radius:0 0 6px 6px}
.ctb-util-menu.aberto{display:block}
.ctb-util-menu a{display:block;color:#fff;text-decoration:none;padding:13px 16px;font-size:14px}
.ctb-util-menu a:hover,.ctb-util-menu a:focus{background:#0d477e}
@media(max-width:767px){.ctb-nav-dropdown{display:block;flex:none}.ctb-nav-button{justify-content:flex-start}.ctb-util-menu{position:static;box-shadow:none;min-width:0}.ctb-util-menu a{padding-left:52px}}

/* Etapa 08C: botao discreto e centralizado de recuperacao de senha */
.ctb-forgot-button{display:flex;align-items:center;justify-content:center;align-self:center;width:190px;max-width:100%;min-height:32px;padding:6px 12px;border-radius:6px;background:#063266;color:#fff;text-decoration:none;font-size:12px;font-weight:600;line-height:1.25;text-align:center;transition:background-color .15s ease}
.ctb-forgot-button:hover{background:#0b4d88;color:#fff}
.ctb-forgot-button:focus-visible{outline:3px solid #ffb900;outline-offset:2px}

/* Etapa 09A: operador identificado no rodape, sem repetir o nome do sistema no painel. */
.ctb-footer-user{display:flex;align-items:center;justify-content:center;gap:8px;margin:auto;min-width:0;color:#fff}
.ctb-footer-user .ctb-footer-icon{color:var(--ctb-gold)}
.ctb-footer-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
@media(max-width:767px){.ctb-footer-user{order:2;margin-left:auto;margin-right:0}.ctb-footer-user span{max-width:135px}.ctb-footer-time{order:3;margin-left:0}.ctb-footer-date{order:4;width:100%;justify-content:center}}
@media(max-width:420px){.ctb-footer-user{order:2;flex-basis:100%;justify-content:center;margin:0}.ctb-footer-time{order:3;margin-left:auto}.ctb-footer-date{order:4}}
