/* KOREOS — linguagem visual comum dos acessos públicos.
   Somente apresentação: não altera formulários, sessões ou autenticação. */
:root{
    --kap-ink:#0f172a;--kap-muted:#64748b;--kap-line:#cbd5e1;
    --kap-paper:rgba(255,255,255,.96);--kap-accent:#2563eb;
    --kap-accent-rgb:37,99,235;--kap-deep:#0f2044;
}
body.login-page,
body.kap-access,
body.ksf-body{
    min-height:100dvh;
    background:
      radial-gradient(circle at 13% 18%,rgba(var(--kap-accent-rgb),.15),transparent 28%),
      radial-gradient(circle at 88% 82%,rgba(14,165,233,.12),transparent 30%),
      linear-gradient(145deg,#e8eef6 0%,#f8fafc 48%,#e4edf7 100%);
    background-size:130% 130%;
    animation:kapOcean 18s ease-in-out infinite alternate;
}
body.login-page::before,
body.kap-access::before,
body.ksf-body::before{
    content:"";position:fixed;inset:0;pointer-events:none;opacity:.38;
    background-image:linear-gradient(rgba(15,32,68,.035) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(15,32,68,.035) 1px,transparent 1px);
    background-size:42px 42px;
    mask-image:linear-gradient(to bottom,black,transparent 82%);
}
@keyframes kapOcean{to{background-position:7% 3%,93% 76%,center}}
@media(prefers-reduced-motion:reduce){body.login-page,body.kap-access,body.ksf-body{animation:none}}

/* Login principal */
body.login-page .login-shell{
    position:relative;width:min(1240px,calc(100vw - 40px));max-width:none;min-height:620px;
    grid-template-columns:minmax(0,1.62fr) minmax(430px,.88fr);
    gap:0;
    border:1px solid rgba(111,142,182,.42);border-radius:14px;
    box-shadow:0 34px 90px rgba(15,32,68,.22),0 2px 8px rgba(15,32,68,.08);overflow:hidden;
}
body.login-page .login-brand{
    position:relative;isolation:isolate;width:100%;min-height:100%;align-self:stretch;justify-self:stretch;
    padding:34px 38px;
    background:
      radial-gradient(circle at 12% 8%,rgba(14,165,233,.15),transparent 25%),
      radial-gradient(circle at 92% 84%,rgba(37,99,235,.11),transparent 30%),
      linear-gradient(145deg,#f8fbff 0%,#edf5fd 58%,#e6f0fa 100%);
}
body.login-page .login-brand::before{
    content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.5;
    background-image:linear-gradient(rgba(30,78,125,.06) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(30,78,125,.06) 1px,transparent 1px);
    background-size:42px 42px;mask-image:linear-gradient(135deg,#000,transparent 74%);
}
body.login-page .login-brand::after{
    content:"";position:absolute;z-index:-1;width:280px;height:280px;right:-145px;top:-125px;
    border:1px solid rgba(37,99,235,.17);border-radius:50%;
    box-shadow:0 0 0 34px rgba(37,99,235,.035),0 0 0 70px rgba(37,99,235,.02);
}
body.login-page .login-panel{
    position:relative;padding:48px 46px;background:
      radial-gradient(circle at 100% 0,rgba(37,99,235,.08),transparent 30%),#fff;
}
body.login-page .login-panel::before{
    content:"ACESSO SEGURO";position:absolute;right:28px;bottom:20px;
    color:#e5edf8;font-size:.58rem;font-weight:900;letter-spacing:.18em;pointer-events:none;
}
body.login-page .login-box,
body.login-page .login-box-modern{
    width:100%;max-width:100%;padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important
}
body.login-page .login-brand-logo-wrap{
    width:285px!important;height:88px!important;max-width:100%;padding:0!important;
    border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important
}
body.login-page .login-brand-logo{
    width:100%;height:100%;object-fit:contain;object-position:left center;
    filter:saturate(1.08) drop-shadow(0 7px 16px rgba(37,99,235,.14));
}
body.login-page .login-brand-copy{
    max-width:46ch;margin-top:9px;color:#536b85;font-size:.82rem;line-height:1.55;
}
body.login-page .login-hub--brand{
    margin-top:20px!important;border-top:1px solid #c8d9ea;padding-top:15px;
}
body.login-page .login-hub-head{
    color:#173758;font-size:.73rem;letter-spacing:.025em;text-transform:uppercase;
}
body.login-page .login-hub-head i{color:#1685d1}
body.login-page .login-hub-note{margin:4px 0 11px;color:#6f849b;font-size:.65rem}
body.login-page .login-hub--brand .lhub-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;
}
body.login-page .lhub-card{
    position:relative;min-height:52px;border-radius:7px!important;
    background:rgba(255,255,255,.82)!important;border-color:#ccdceb!important;
    padding:8px 8px!important;overflow:hidden;
    display:grid!important;grid-template-columns:31px minmax(0,1fr)!important;
    align-items:center!important;gap:8px!important;
    transition:background .18s ease,border-color .18s ease,transform .18s ease!important;
}
body.login-page .lhub-card::before{
    content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--c);
    border-radius:0 3px 3px 0;box-shadow:0 0 12px var(--c);
}
body.login-page .lhub-card::after{
    content:"";display:none;
}
body.login-page .lhub-card:hover{
    transform:translateY(-2px)!important;background:#fff!important;
    border-color:color-mix(in srgb,var(--c) 58%,#b9cadd)!important;
    box-shadow:0 10px 20px -16px rgba(15,55,96,.52)!important;
}
body.login-page .login-hub--brand .lhub-name{color:#17324f}
body.login-page .login-hub--brand .lhub-tag{display:none}
body.login-page .login-hub--brand .lhub-ic{
    width:31px;height:31px;border-radius:6px;font-size:.75rem;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.72);
}
body.login-page .login-hub--brand .lhub-name{font-size:.68rem;line-height:1.15;font-weight:780}
body.login-page .login-lang-pill{margin-bottom:28px!important;border-color:#d7e2ef;background:#f6f9fd}
body.login-page .login-header{margin-bottom:28px!important}
body.login-page .login-header h2{font-size:2rem!important;letter-spacing:-.045em}
body.login-page .login-header p{max-width:34ch;font-size:.83rem!important;line-height:1.55}
body.login-page .form-group{margin-bottom:16px!important}
body.login-page .login-input-wrap .form-control{
    min-height:50px!important;background:#f7faff!important;border-color:#ccdae9!important;
}
body.login-page .login-input-wrap .form-control:focus{background:#fff!important}
body.login-page .btn-login-submit,
body.login-page .qr-login-scan-btn,
body.login-page .face-login-scan-btn{
    min-height:48px!important;padding:11px 14px!important;font-size:.86rem!important;
    border-radius:7px!important;box-shadow:0 9px 20px rgba(15,32,68,.11)!important;
}
body.login-page .btn-login-submit{
    background:linear-gradient(110deg,#155eef,#2563eb 58%,#315db7)!important;
}
body.login-page .qr-login-scan-btn{background:linear-gradient(110deg,#078477,#12978c)!important}
body.login-page .face-login-scan-btn{background:linear-gradient(110deg,#183455,#247e91)!important}
body.login-page .login-qr-divider{margin:15px 0!important}
body.login-page .face-login-note{
    margin-top:9px!important;padding:9px 11px!important;font-size:.67rem!important;
    border-radius:7px!important;background:linear-gradient(90deg,#edf6fc,#e4f4fb)!important;
}
body.login-page .login-box-modern .form-control,
body.login-page .login-hub-toggle{border-radius:7px}
body.login-page .login-lang-pill{border-radius:7px}

/* Cliente e fornecedor */
body.kap-access{
    margin:0;display:flex;align-items:center;justify-content:center;
    padding:clamp(14px,3vw,36px);font-family:"Noto Sans JP","Segoe UI",system-ui,sans-serif;color:var(--kap-ink);
}
body.kap-client{--kap-accent:#2563eb;--kap-accent-rgb:37,99,235;--kap-deep:#172554}
body.kap-client.kap-crm{--kap-accent:#7c3aed;--kap-accent-rgb:124,58,237;--kap-deep:#2e1065}
body.kap-client.kap-mfg{--kap-accent:#d97706;--kap-accent-rgb:217,119,6;--kap-deep:#451a03}
body.kap-supplier{--kap-accent:#0f766e;--kap-accent-rgb:15,118,110;--kap-deep:#042f2e}
body.kap-access .portal-shell{
    position:relative;z-index:1;width:min(1040px,100%);min-height:610px;
    display:grid;grid-template-columns:minmax(0,1.08fr) 430px;
    overflow:hidden;border:1px solid rgba(148,163,184,.5);border-radius:0;
    background:var(--kap-paper);box-shadow:0 30px 80px rgba(15,23,42,.17);
}
body.kap-access .portal-visual{
    min-height:610px;padding:44px;background:
      linear-gradient(145deg,rgba(255,255,255,.03),transparent 45%),
      linear-gradient(145deg,var(--kap-deep),var(--kap-accent));
}
body.kap-access .portal-visual::before,
body.kap-access .portal-visual::after{border-radius:0;transform:rotate(35deg)}
body.kap-access .portal-badge,
body.kap-access .lang-btn{border-radius:3px}
body.kap-access .portal-feature i{border-radius:3px}
body.kap-access .portal-form-panel{padding:38px;gap:22px}
body.kap-access .portal-logo-wrap{
    width:92px;height:44px;border:0;border-radius:0;background:transparent;
}
body.kap-access .portal-logo-wrap img{padding:0;object-position:left center}
body.kap-access .portal-heading h1{font-size:1.35rem}
body.kap-access .input-wrap input,
body.kap-access .btn-submit,
body.kap-access .alert-error{border-radius:3px}
body.kap-access .btn-submit{background:var(--kap-accent);box-shadow:none}
body.kap-access .btn-submit:hover{transform:none;filter:brightness(.94)}
body.kap-access .input-wrap input:focus{border-color:var(--kap-accent);box-shadow:0 0 0 3px rgba(var(--kap-accent-rgb),.14)}
body.kap-access .forgot-link,
body.kap-access .portal-back-link a{color:var(--kap-accent)}
body.kap-access .lang-row{gap:0}
body.kap-access .lang-btn{min-width:38px;padding:6px;border-color:#dbe3ed;text-align:center}
body.kap-access .lang-btn+ .lang-btn{border-left:0}

/* Login especializado: KMR e Motorista */
body.kap-access .cw-login,
body.kap-access .ldp{
    position:relative;z-index:1;width:min(920px,100%);max-width:none;min-height:520px;
    display:grid;grid-template-columns:minmax(300px,.92fr) minmax(340px,1.08fr);
    overflow:hidden;border:1px solid rgba(148,163,184,.5);border-radius:0;
    background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.18);
}
body.kap-access .cw-login-hd,
body.kap-access .ldp-hd{
    padding:44px;display:flex;flex-direction:column;justify-content:center;
    background:linear-gradient(145deg,var(--kap-deep),var(--kap-accent));
}
body.kap-access .cw-login-hd h1,
body.kap-access .ldp-hd h1{font-size:1.65rem;line-height:1.15}
body.kap-access .cw-login-hd p,
body.kap-access .ldp-hd p{font-size:.88rem;line-height:1.55}
body.kap-access .cw-login-bd,
body.kap-access .ldp-bd{padding:42px;display:flex;flex-direction:column;justify-content:center}
body.kap-access .cw-login-bd form,
body.kap-access .ldp-bd form{display:block;width:100%}
body.kap-access .cw-login-bd .mb-3,
body.kap-access .ldp-bd .mb-3{margin-bottom:15px}
body.kap-access .cw-login .form-label,
body.kap-access .ldp .form-label{display:block;margin-bottom:6px;color:#334155;font-size:.76rem;font-weight:750}
body.kap-access .ldp-hd .ic{border-radius:3px}
body.kap-access .cw-login .form-control,
body.kap-access .ldp .form-control,
body.kap-access .ldp .form-select,
body.kap-access .cw-login .btn-primary,
body.kap-access .ldp .btn-go,
body.kap-access .ldp .btn-signup{min-height:44px;border-radius:3px}
body.kap-access .cw-login .form-control,
body.kap-access .ldp .form-control,
body.kap-access .ldp .form-select{
    display:block;width:100%;height:auto;padding:10px 12px;border:1px solid #cbd5e1;
    background:#f8fafc;color:#0f172a;font:inherit;outline:none;
}
body.kap-access .cw-login .form-control:focus,
body.kap-access .ldp .form-control:focus,
body.kap-access .ldp .form-select:focus{
    border-color:var(--kap-accent);box-shadow:0 0 0 3px rgba(var(--kap-accent-rgb),.13);background:#fff;
}
body.kap-access .cw-login .btn-primary,
body.kap-access .ldp .btn-go{display:block;width:100%;border:0;color:#fff;background:var(--kap-deep);font-weight:800}
body.kap-access .ldp-foot{
    position:absolute;bottom:12px;left:0;width:42%;padding:0;color:rgba(255,255,255,.62)
}

/* SaaS storefront */
body.ksf-body{
    display:flex;align-items:center;justify-content:center;
    padding:24px 16px!important;
}
body.ksf-body .ksf-wrap{
    position:relative;z-index:1;width:min(940px,100%);max-width:940px;
    margin:auto;
}
body.ksf-body .ksf-card{
    display:grid;grid-template-columns:350px minmax(390px,1fr);
    overflow:hidden;border-radius:0!important;border:1px solid rgba(148,163,184,.5);
    box-shadow:0 30px 80px rgba(15,23,42,.18);
}
body.ksf-body .ksf-head{
    min-height:480px;padding:38px!important;display:flex;flex-direction:column;justify-content:center;
    background:
      linear-gradient(135deg,rgba(56,189,248,.14),transparent 45%),
      linear-gradient(145deg,#0b1730,#123b70)!important;color:#fff;
}
body.ksf-body .ksf-head p{color:rgba(255,255,255,.76)!important}
body.ksf-body .ksf-head img{
    display:block;width:auto;max-width:172px;max-height:54px;margin:0 0 8px;
    padding:0!important;border:0!important;background:transparent!important;
    box-shadow:none!important;object-fit:contain;object-position:left center;
}
body.ksf-body .ksf-head h1{font-size:1.38rem!important;line-height:1.18;margin-top:18px!important}
body.ksf-body .ksf-inner{padding:38px 42px!important;display:flex;flex-direction:column;justify-content:center}
body.ksf-body input,body.ksf-body .ksf-btn{border-radius:3px!important}
.kap-saas-tag{
    display:inline-flex;align-items:center;gap:7px;width:max-content;margin-bottom:18px;
    padding:6px 10px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);
    font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase
}
.kap-saas-features{display:grid;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.15)}
.kap-saas-features span{display:flex;align-items:center;gap:8px;font-size:.78rem;color:rgba(255,255,255,.86)}
.kap-saas-features i{color:#c4b5fd}
.kap-login-lang{display:flex;justify-content:flex-end;margin-bottom:22px}
.kap-login-lang a{
    min-width:42px;height:34px;padding:7px;border:1px solid #dbe3ed;color:#334155;text-decoration:none;text-align:center;
    background:#fff;filter:grayscale(.35)
}
.kap-login-lang a+a{border-left:0}.kap-login-lang a.is-active{background:#eef2ff;filter:none;box-shadow:inset 0 -3px var(--kap-accent)}
.kap-login-lang-dark{position:absolute;right:18px;top:18px;margin:0}
.kap-login-lang-dark a{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);color:#fff}
.kap-login-lang-dark a.is-active{background:rgba(255,255,255,.22);box-shadow:inset 0 -3px #fff}
.kap-form-heading{display:grid;gap:3px;margin-bottom:22px}
.kap-form-heading span{color:#7c3aed;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.kap-form-heading strong{font-size:1.28rem;color:#0f172a}
.kap-form-heading small{font-size:.75rem;color:#64748b;line-height:1.45}
/* Bandeira do seletor de idioma = SVG inline da fonte única (app_supported_languages).
   As bandeiras desenhadas em CSS (.kap-flag-br/-jp/-en/-tl) foram removidas em
   2026-08-10: com o SVG dentro do span elas viravam fundo/bandeira duplicada.
   .kap-flag segue só como caixa (o tamanho vem inline do componente). */
.kap-flag{position:relative;display:inline-block;overflow:hidden}
body.ksf-body .ksf-field{margin-bottom:14px!important}
body.ksf-body .ksf-field input{min-height:46px!important;background:#f8fafc!important;border-color:#cbd5e1!important}
body.ksf-body .ksf-btn-primary{min-height:46px!important;background:#0f3b70!important;border-color:#0f3b70!important}
body.ksf-body .ksf-trust{margin-top:16px!important;padding-top:16px!important;border-top:1px solid #dbe3ed}
body.kap-access .cw-login-hd,body.kap-access .ldp-hd{position:relative}

/* CRM e pré-cadastro: estado público de entrada */
body.kap-crm-public-login,
body.kap-prereg-access{
    min-height:100dvh;background:
      radial-gradient(circle at 16% 18%,rgba(124,58,237,.14),transparent 28%),
      radial-gradient(circle at 86% 82%,rgba(37,99,235,.12),transparent 30%),
      linear-gradient(145deg,#e8eef6,#f8fafc 48%,#e9e5ff);
}
body.kap-crm-public-login .crm-portal-shell,
body.kap-prereg-access .kmr-shell{position:relative;z-index:1}
body.kap-crm-public-login .crm-portal-wrap{max-width:1080px}
body.kap-crm-public-login .crm-portal-topline,
body.kap-crm-public-login .crm-portal-hero,
body.kap-crm-public-login .crm-portal-card,
body.kap-prereg-access .kmr-card{border-radius:0!important;box-shadow:none!important}
body.kap-crm-public-login .crm-portal-login-grid{gap:10px}
body.kap-crm-public-login .crm-portal-card{border-color:#cbd5e1}
body.kap-crm-public-login .crm-portal-action,
body.kap-crm-public-login .form-control,
body.kap-crm-public-login .btn{border-radius:3px!important}
body.kap-prereg-access .kmr-shell{max-width:1060px}
body.kap-prereg-access input,
body.kap-prereg-access button,
body.kap-prereg-access .kmr-pinpad{border-radius:3px!important}
body.kap-prereg-access .kmr-shell{padding:14px 16px 36px}
body.kap-prereg-access .kmr-brand{
    min-height:58px;padding:7px 10px;border:1px solid #cbd5e1;border-radius:0!important;
    background:#fff;box-shadow:none
}
body.kap-prereg-access .kmr-brand .logo img{width:92px;height:38px;object-fit:contain}
body.kap-prereg-access .kmr-brand .logo .name{font-size:.92rem}
body.kap-prereg-access .kmr-brand .logo .name small{display:inline-flex;margin-top:2px;padding:2px 6px;background:#e2e8f0;font-size:.58rem}
body.kap-prereg-access .kmr-lang{gap:0}
body.kap-prereg-access .kmr-lang a{min-width:40px;padding:7px;border:1px solid #dbe3ed;border-radius:0!important;text-align:center}
body.kap-prereg-access .kmr-lang a+a{border-left:0}
/* Bandeira = SVG inline do componente (includes/lang_switcher.php). O emoji por
   ::after saiu em 2026-08-10 (não renderiza no Chrome/Edge desktop). */
body.kap-prereg-access .kmr-lang a[data-l]{display:inline-flex;align-items:center;justify-content:center}
body.kap-prereg-access .kmr-hero{
    margin-top:10px;padding:18px 22px;border-radius:0!important;box-shadow:none;
    background:linear-gradient(125deg,#0f2044,#0284c7)
}
body.kap-prereg-access .kmr-hero h1{font-size:1.35rem}
body.kap-prereg-access .kmr-hero p{font-size:.8rem}
body.kap-prereg-access .kmr-card{
    margin-top:10px;padding:18px 22px;border:1px solid #cbd5e1;border-radius:0!important;box-shadow:none
}
body.kap-prereg-access .kmr-card h2{font-size:.95rem}
body.kap-prereg-access .kmr-field input{border-radius:3px!important}
body.kap-prereg-access .kmr-btn{border-radius:3px!important;box-shadow:none}

@media(max-width:919px){
    body.login-page .login-shell{
        display:block!important;width:min(680px,calc(100vw - 24px));min-height:0;
        grid-template-columns:1fr!important
    }
    body.login-page .login-brand{display:none}
    body.login-page .login-panel{display:block!important;width:100%!important;min-width:0!important;padding:28px}
    body.login-page .login-box{max-width:100%}
    body.login-page .login-hub--form .lhub-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;
    }
    body.login-page .login-hub--form .lhub-tag{display:none!important}
    body.login-page .login-hub--form .lhub-card{
        min-width:0!important;min-height:50px!important;
        grid-template-columns:31px minmax(0,1fr)!important;
        padding:8px 10px!important;gap:8px!important;
    }
    body.login-page .login-hub--form .lhub-name{
        min-width:0;color:#17324f!important;font-size:.72rem!important;line-height:1.2!important;
        word-break:normal!important;overflow-wrap:normal!important;white-space:normal;
    }
    body.kap-access .portal-shell{grid-template-columns:minmax(250px,.72fr) minmax(360px,1fr);min-height:560px}
    body.kap-access .portal-visual{min-height:560px;padding:28px}
    body.kap-access .portal-form-panel{padding:30px}
}
@media(max-width:700px){
    body.kap-access{align-items:flex-start;padding:10px}
    body.kap-access .portal-shell,
    body.kap-access .cw-login,
    body.kap-access .ldp,
    body.ksf-body .ksf-card{grid-template-columns:1fr;min-height:0}
    body.kap-access .portal-visual{display:flex;min-height:180px;padding:24px}
    body.kap-access .portal-visual-body{margin-top:18px}
    body.kap-access .portal-visual-title{font-size:1.45rem}
    body.kap-access .portal-visual-sub{font-size:.82rem}
    body.kap-access .portal-visual-features{display:none}
    body.kap-access .portal-form-panel{padding:26px 22px}
    body.kap-access .cw-login-hd,
    body.kap-access .ldp-hd{min-height:180px;padding:25px}
    body.kap-access .cw-login-bd,
    body.kap-access .ldp-bd{padding:26px 22px}
    body.kap-access .ldp-foot{position:static;width:100%;padding:0 20px 16px;color:#94a3b8}
    body.ksf-body .ksf-head{min-height:210px;padding:26px!important}
    body.ksf-body .ksf-inner{padding:26px 22px!important}
    body.ksf-body .ksf-head h1{font-size:1.2rem!important}
    body.ksf-body{align-items:flex-start;padding:10px!important}
    .kap-saas-features{display:none}
}
@media(max-width:440px){
    body.login-page .login-shell{width:calc(100vw - 16px)}
    body.login-page .login-panel{padding:20px 16px!important}
    body.login-page .login-box,body.login-page .login-box-modern{width:100%!important;min-width:0!important}
    body.login-page .login-input-wrap,body.login-page .form-control,
    body.login-page .btn-login-submit,body.login-page .qr-login-scan-btn,
    body.login-page .face-login-scan-btn{width:100%!important;max-width:100%!important}
    body.login-page .login-hub--form .lhub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    body.kap-access .portal-form-panel{gap:17px}
}
