:root { --app-sidebar-width: 224px; --app-ink:#263567; --app-muted:#617184; --app-teal:#087cb8; --app-green:#009b63; --app-lime:#a6ce39; --app-line:#dbe4ed; --app-bg:#f4f7fb; }
.app-section-tabs { display:flex; gap:22px; overflow-x:auto; margin:0 0 20px; border-bottom:1px solid var(--app-line); }
.app-section-tabs button { flex:none; display:inline-flex; align-items:center; min-height:0; padding:9px 2px 11px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:var(--app-muted); font:600 13px Arial,sans-serif; white-space:nowrap; cursor:pointer; }
.app-section-tabs button:hover { background:transparent; color:var(--app-ink); }
.app-section-tabs button[aria-selected="true"] { background:transparent; border-bottom-color:var(--app-teal); color:var(--app-ink); font-weight:700; }
.app-section-tabs button:focus-visible { outline:2px solid var(--app-teal); outline-offset:-2px; }
.acesso-verificando { min-height:100vh; display:grid; place-items:center; color:#617184; font:600 15px Arial,sans-serif; }
.acesso-verificando[hidden],#tela-login[hidden],#app-painel[hidden],#acesso-pendente[hidden],#login-erro[hidden] { display:none !important; }
body.app-sidebar-recolhida { --app-sidebar-width:64px; }
body.app-com-sidebar { padding-left:var(--app-sidebar-width); background:var(--app-bg) !important; color:var(--app-ink); transition:padding-left .2s ease; }
.app-carregando-pagina { margin:0; padding:50px 32px; color:var(--app-muted); font:600 15px Arial,sans-serif; }
.app-sidebar { box-sizing:border-box; position:fixed; inset:0 auto 0 0; width:var(--app-sidebar-width); z-index:1500; display:flex; flex-direction:column; background:#263567; color:#eef4fb; font:14px/1.4 Arial,sans-serif; box-shadow:2px 0 14px #16254f24; transition:width .2s ease; }
.app-sidebar-topo { display:flex; align-items:center; justify-content:space-between; gap:4px; padding:16px 10px 16px 20px; border-bottom:1px solid #ffffff1a; }
.app-sidebar-brand { color:#fff; font-size:18px; font-weight:700; letter-spacing:.02em; text-decoration:none; white-space:nowrap; }
.app-sidebar-toggle { width:34px; height:34px; flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:0; border:0; border-radius:6px; color:#fff; background:transparent; cursor:pointer; }
.app-sidebar-toggle:hover,.app-sidebar-toggle:focus-visible { background:#ffffff20; }
.app-sidebar-toggle span { width:17px; height:2px; border-radius:2px; background:currentColor; }
.app-sidebar-user { display:flex; align-items:center; gap:11px; padding:22px 14px; border-bottom:1px solid #ffffff1a; min-width:0; }
.app-sidebar-avatar { width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:50%; background:#e1eff8; color:#263567; font-weight:700; font-size:18px; }
.app-sidebar-user > span:last-child { min-width:0; display:flex; flex-direction:column; gap:2px; }
.app-sidebar-user strong,.app-sidebar-user small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-sidebar-user small { color:#c3d2e7; font-size:11px; }
.app-sidebar-nav { padding:18px 9px; display:flex; flex-direction:column; gap:4px; overflow:auto; }
.app-sidebar-nav a,.app-sidebar-exit { display:flex; align-items:center; gap:11px; border:0; border-radius:7px; padding:10px 12px; color:#e1eafa; background:transparent; text-align:left; text-decoration:none; cursor:pointer; font:inherit; white-space:nowrap; }
.app-sidebar-nav a:hover,.app-sidebar-exit:hover { background:#ffffff16; color:#fff; }
.app-sidebar-nav a[aria-current="page"] { background:#e9f3fa; color:#263567; font-weight:700; box-shadow:inset 3px 0 var(--app-lime); }
.app-sidebar svg { width:18px; height:18px; flex:none; }
.app-sidebar-exit { margin:auto 9px 14px; }
.app-com-sidebar .navbar-superior { position:relative; box-shadow:none; border-bottom:1px solid var(--app-line); }
.app-com-sidebar .dashboard-container { max-width:1100px; }
.orcamento-clientes-opcoes { position:fixed; z-index:10000; box-sizing:border-box; overflow-y:auto; padding:4px; border:1px solid var(--app-line); border-radius:8px; background:#fff; box-shadow:0 10px 28px #1d394333; font:13px/1.35 Arial,sans-serif; }
.orcamento-clientes-opcoes[hidden] { display:none; }
.orcamento-cliente-opcao { display:block; width:100%; border:0; border-radius:5px; padding:8px 10px; background:transparent; color:var(--app-ink); text-align:left; font:inherit; cursor:pointer; }
.orcamento-cliente-opcao:hover,.orcamento-cliente-opcao[aria-selected="true"] { background:#e6f4fa; color:#075f8a; }
.orcamento-cliente-opcao:focus-visible { outline:2px solid #0095da; }
.orcamento-cliente-opcao strong,.orcamento-cliente-opcao small { display:block; }
.orcamento-cliente-opcao small { margin-top:2px; color:var(--app-muted); font-size:11px; overflow-wrap:anywhere; }
.orcamento-cliente-opcao.novo { color:#007d53; font-weight:700; }
.orcamento-clientes-aviso { margin:0; padding:9px 10px; color:var(--app-muted); font-size:12px; }
#cli-cliente-id { display:none !important; }
.cliente-nome-estado { float:right; color:var(--app-muted); font:700 10px Arial,sans-serif; }
.cliente-nome-estado.vinculado { color:#007d53; }
body.app-sidebar-recolhida .app-sidebar-topo { justify-content:center; padding:16px 6px; }
body.app-sidebar-recolhida .app-sidebar-brand,body.app-sidebar-recolhida .app-sidebar-user > span:last-child,body.app-sidebar-recolhida .app-sidebar-nav span,body.app-sidebar-recolhida .app-sidebar-exit span { display:none; }
body.app-sidebar-recolhida .app-sidebar-user { justify-content:center; padding:16px 6px; }
body.app-sidebar-recolhida .app-sidebar-nav a,body.app-sidebar-recolhida .app-sidebar-exit { justify-content:center; padding:12px; }
@media print { body.app-com-sidebar { padding-left:0 !important; } .app-sidebar { display:none !important; } }
.painel-inicial { max-width:1100px; margin:0 auto; padding:48px 34px; font:14px/1.45 Arial,sans-serif; }
.painel-inicial h1 { text-align:left; font-size:32px; color:var(--app-ink); margin:0 0 28px; }
.financeiro-controles input,.financeiro-controles select { padding:9px 12px; border:1px solid var(--app-line); border-radius:7px; background:#fff; font:inherit; }
label.app-date-field { display:grid; gap:6px; width:max-content; max-width:100%; color:var(--app-muted); font:700 13px/1.35 Arial,sans-serif; }
label.app-date-field > input.app-date-input { box-sizing:border-box; width:170px; max-width:100%; min-width:0; height:38px; margin:0; padding:7px 10px; border:1px solid var(--app-line); border-radius:7px; background:#fff; color:var(--app-ink); font:400 14px Arial,sans-serif; color-scheme:light; }
label.app-date-field > input.app-date-input:focus-visible { outline:2px solid var(--app-teal); outline-offset:2px; }
.painel-aviso-atencao { padding:16px 18px; border:1px solid #e4c66b; border-left:4px solid #d7a229; border-radius:8px; background:#fff9e8; color:#664a12; font-weight:700; line-height:1.5; }
@media (max-width:550px) { .painel-inicial { padding:25px 16px; } }
/* A página de entrada usa a identidade do sistema sem simular uma folha impressa. */
#tela-login.login-container { min-height:100vh; height:auto; display:grid; grid-template-columns:1fr 1fr; padding:0; align-items:stretch; background:#f6f8fb; color:#263567; }
.login-apresentacao { min-height:100vh; box-sizing:border-box; padding:44px clamp(34px,6vw,90px); display:flex; flex-direction:column; justify-content:center; text-align:left; color:#fff; background:linear-gradient(145deg,#263567 0%,#164d86 58%,#087cb8 100%); border-bottom:7px solid #a6ce39; }
.login-apresentacao h1 { margin:12px 0 0; text-align:left; font-size:clamp(34px,4vw,58px); line-height:1.1; letter-spacing:-.035em; }
.login-etiqueta { font-size:11px; font-weight:800; letter-spacing:.16em; color:#087cb8; }
.login-apresentacao .login-etiqueta { color:#c8e86d; }
.login-area { display:flex; align-items:center; justify-content:center; padding:44px 24px; }
#tela-login .login-box { width:min(100%,390px); box-sizing:border-box; padding:0; text-align:left; border:0; border-radius:0; background:transparent; box-shadow:none; }
#tela-login .login-logo { display:block; max-width:125px; max-height:90px; object-fit:contain; margin:0 0 32px; }
#tela-login h2 { margin:8px 0 6px; font-size:30px; font-weight:750; color:#263567; }
.login-instrucao { margin:0 0 30px; font-size:14px; color:#687d84; }
#tela-login label { display:block; margin:18px 0 7px; color:#3a4d77; font-size:13px; font-weight:700; }
#tela-login .login-input { display:block; width:100%; box-sizing:border-box; height:46px; margin:0; padding:10px 13px; border:1px solid #c8d6e5; border-radius:7px; background:white; color:#263567; font-size:14px; outline:none; }
#tela-login .login-input:focus { border-color:#087cb8; box-shadow:0 0 0 3px #087cb822; }
#tela-login #login-senha { margin:0; }
#tela-login #btn-entrar { width:100%; height:47px; margin-top:27px; border:0; border-radius:7px; background:#009b63; color:white; font-size:14px; font-weight:700; cursor:pointer; }
#tela-login #btn-entrar:hover { background:#007d53; }
#tela-login #btn-entrar:disabled { opacity:.65; cursor:wait; }
#tela-login .login-erro { margin-top:16px; color:#b42318; font-size:13px; line-height:1.4; }
@media(max-width:700px) { #tela-login.login-container { grid-template-columns:1fr; } .login-apresentacao { min-height:auto; padding:36px 24px; } .login-apresentacao h1 { font-size:clamp(28px,8vw,38px); } .login-area { min-height:65vh; box-sizing:border-box; padding:36px 22px; } }
