
.ent-rhino-wrap,
.ent-rhino-wrap *,
.ent-rhino-profile,
.ent-rhino-profile *{
  box-sizing:border-box;
}

.ent-rhino-wrap{
  width:min(1080px,calc(100% - 28px));
  margin:28px auto 48px;
  font-family:Arial,sans-serif;
  color:#29424F;
}

.ent-rhino-title{
  margin:0 0 22px!important;
  padding:0!important;
  color:#203944!important;
  font-size:30px!important;
  line-height:1.25!important;
  font-weight:800!important;
  text-align:center!important;
}

.ent-rhino-login{
  display:flex;
  justify-content:center;
  padding:32px 0;
}

.ent-rhino-capture{
  width:100%;
}

.ent-rhino-camera-shell{
  width:100%;
  margin:0 auto;
}

.ent-rhino-camera{
  position:relative;
  overflow:hidden;
  width:100%;
  height:560px;
  min-height:560px;
  border:1px solid #D4E0E4;
  border-radius:22px;
  background:
    radial-gradient(circle at 18% 22%,rgba(255,255,255,.95) 0 7%,transparent 22%),
    radial-gradient(circle at 84% 20%,rgba(187,220,229,.65) 0 10%,transparent 28%),
    radial-gradient(circle at 74% 82%,rgba(215,235,240,.9) 0 10%,transparent 30%),
    linear-gradient(135deg,#F8FCFD 0%,#DCECEF 48%,#BFD9E0 100%);
  box-shadow:0 14px 40px rgba(23,62,75,.12);
}

.ent-rhino-camera::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(115deg,transparent 0 44%,rgba(255,255,255,.34) 45% 46%,transparent 47%),
    linear-gradient(25deg,transparent 0 67%,rgba(255,255,255,.25) 68% 69%,transparent 70%);
  pointer-events:none;
}

.ent-rhino-camera::after{
  content:"ENT.GE";
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  transform:translate(-50%,-50%);
  color:rgba(31,111,134,.10);
  font-size:clamp(42px,8vw,96px);
  font-weight:900;
  letter-spacing:.08em;
  pointer-events:none;
}

.ent-rhino-camera video{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scaleX(-1);
  background:transparent;
}

.ent-rhino-mask{
  position:absolute;
  z-index:3;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.ent-rhino-face-guide{
  --hold:0deg;
  position:relative;
  width:min(63%,300px);
  aspect-ratio:.72;
  border-radius:50%;
}

.ent-rhino-face-guide::before{
  content:"";
  position:absolute;
  inset:5px;
  border:2px solid rgba(255,255,255,.9);
  border-radius:50%;
  box-shadow:0 0 0 9999px rgba(8,17,21,.22);
}

.ent-rhino-progress-ring{
  position:absolute;
  inset:-3px;
  border-radius:50%;
  background:conic-gradient(#57C793 var(--hold), rgba(255,255,255,.15) 0deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  opacity:.95;
}

.ent-rhino-face-guide.is-ready .ent-rhino-progress-ring{
  background:conic-gradient(#57C793 var(--hold),rgba(255,255,255,.15) 0deg);
}

.ent-rhino-face-guide.is-detecting::before{
  border-color:#9ED7E5;
}

.ent-rhino-step-counter{
  position:absolute;
  z-index:4;
  top:14px;
  right:14px;
  min-width:52px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(12,27,33,.66);
  color:#fff;
  font-size:11px;
  font-weight:800;
  text-align:center;
  backdrop-filter:blur(8px);
}

.ent-rhino-pose-text{
  position:absolute;
  z-index:4;
  left:14px;
  right:14px;
  bottom:14px;
  padding:13px 15px;
  border-radius:13px;
  background:rgba(11,27,33,.74);
  color:#fff;
  font-size:15px;
  line-height:1.35;
  font-weight:800;
  text-align:center;
  backdrop-filter:blur(8px);
}

.ent-rhino-camera-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:14px;
}

.ent-rhino-mini-status{
  min-height:22px;
  margin-top:8px;
  color:#71868E;
  font-size:11px;
  line-height:1.5;
  text-align:center;
}

.ent-rhino-btn{
  min-height:45px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 18px!important;
  border-radius:10px!important;
  font-family:Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:800!important;
  text-decoration:none!important;
  cursor:pointer!important;
}

.ent-rhino-btn:disabled{
  opacity:.55!important;
  cursor:not-allowed!important;
}

.ent-rhino-btn-primary{
  border:0!important;
  background:#1F6F86!important;
  color:#fff!important;
}

.ent-rhino-btn-light{
  border:1px solid #C8D9DF!important;
  background:#fff!important;
  color:#1F6F86!important;
}

.ent-rhino-results{
  width:min(920px,100%);
  margin:22px auto 0;
  padding:18px;
  border:1px solid #DCE6EA;
  border-radius:16px;
  background:#fff;
  box-shadow:0 7px 22px rgba(31,111,134,.05);
}

.ent-rhino-thumbs{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}

.ent-rhino-thumb{
  overflow:hidden;
  border:1px solid #DEE7EA;
  border-radius:11px;
  background:#F8FBFC;
}

.ent-rhino-thumb span{
  display:block;
  min-height:34px;
  padding:8px 7px;
  border-bottom:1px solid #E6EEF0;
  color:#506971;
  font-size:9px;
  line-height:1.25;
  font-weight:800;
  text-align:center;
}

.ent-rhino-thumb img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
}

.ent-rhino-thumb-empty{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#4AA778;
  font-size:22px;
  font-weight:900;
}

.ent-rhino-consent{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:15px;
  padding:12px 13px;
  border:1px solid #E0E9EC;
  border-radius:10px;
  background:#FBFDFD;
  color:#536A74;
  font-size:11px;
  line-height:1.5;
}

.ent-rhino-consent input{
  width:17px;
  height:17px;
  margin:0;
  accent-color:#1F6F86;
}

.ent-rhino-message{
  display:none;
  margin-top:12px;
  padding:10px 12px;
  border-radius:9px;
  font-size:11px;
  line-height:1.45;
  text-align:center;
}

.ent-rhino-message.is-error{
  display:block;
  background:#FFF1F1;
  color:#A43C3C;
}

.ent-rhino-message.is-success{
  display:block;
  background:#EEF8F3;
  color:#287557;
}

.ent-rhino-save{
  width:100%!important;
  margin-top:12px!important;
}

/* PROFILE */
.ent-rhino-profile{
  width:100%;
  margin-top:14px;
  overflow:hidden;
  border:1px solid #DCE6EA;
  border-radius:14px;
  background:#fff;
  box-shadow:0 5px 18px rgba(31,111,134,.045);
}

.ent-rhino-profile-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:17px 20px;
  border-bottom:1px solid #E5EDEF;
  background:#FBFDFD;
}

.ent-rhino-profile-head>div>span{
  display:block;
  margin-bottom:3px;
  color:#1F6F86;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}

.ent-rhino-profile-head h2{
  margin:0!important;
  color:#203944!important;
  font-size:18px!important;
  line-height:1.35!important;
}

.ent-rhino-profile-new{
  flex:0 0 auto;
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 13px;
  border:1px solid #C8D9DF;
  border-radius:8px;
  background:#fff;
  color:#1F6F86!important;
  font-size:10px;
  font-weight:800;
  text-decoration:none!important;
}

.ent-rhino-profile-empty{
  padding:30px 16px;
  text-align:center;
  color:#71858E;
}

.ent-rhino-profile-empty>div{
  margin-bottom:8px;
  font-size:24px;
}

.ent-rhino-profile-empty strong{
  font-size:13px;
}

.ent-rhino-session-list{
  display:grid;
  gap:12px;
  padding:14px;
}

.ent-rhino-session{
  overflow:hidden;
  border:1px solid #DFE8EB;
  border-radius:12px;
  background:#fff;
}

.ent-rhino-session-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1px;
  background:#E3EBEE;
}

.ent-rhino-session-photo{
  min-width:0;
  background:#F8FBFC;
}

.ent-rhino-session-photo span{
  display:block;
  min-height:32px;
  padding:7px 6px;
  border-bottom:1px solid #E6EEF0;
  color:#506971;
  font-size:8.5px;
  line-height:1.2;
  font-weight:800;
  text-align:center;
}

.ent-rhino-session-photo img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
}

.ent-rhino-session-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 13px;
}

.ent-rhino-session-foot strong{
  display:block;
  color:#203944;
  font-size:12px;
}

.ent-rhino-session-foot small{
  display:block;
  margin-top:3px;
  color:#82949B;
  font-size:9px;
}

.ent-rhino-delete{
  padding:0;
  border:0;
  background:transparent;
  color:#A44B4B;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}

@media(max-width:900px){
  .ent-rhino-thumbs,
  .ent-rhino-session-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .ent-rhino-wrap{
    width:calc(100% - 16px);
    margin:16px auto 32px;
  }

  .ent-rhino-title{
    margin-bottom:15px!important;
    font-size:22px!important;
    line-height:1.3!important;
  }

  .ent-rhino-camera{
    height:auto;
    min-height:0;
    aspect-ratio:3/4;
    border-radius:16px;
  }

  .ent-rhino-face-guide{
    width:min(68%,250px);
  }

  .ent-rhino-step-counter{
    top:10px;
    right:10px;
  }

  .ent-rhino-pose-text{
    left:10px;
    right:10px;
    bottom:10px;
    padding:11px 12px;
    font-size:13px;
  }

  .ent-rhino-camera-controls{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }

  .ent-rhino-btn{
    width:100%!important;
  }

  .ent-rhino-results{
    margin-top:14px;
    padding:11px;
    border-radius:12px;
  }

  .ent-rhino-thumbs,
  .ent-rhino-session-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ent-rhino-profile-head{
    display:block;
    padding:15px 13px;
  }

  .ent-rhino-profile-head h2{
    font-size:15px!important;
  }

  .ent-rhino-profile-new{
    width:100%;
    margin-top:10px;
  }

  .ent-rhino-session-list{
    padding:10px;
  }
}

@media(max-width:390px){
  .ent-rhino-title{
    font-size:20px!important;
  }

  .ent-rhino-thumbs,
  .ent-rhino-session-grid{
    grid-template-columns:1fr 1fr;
  }
}

.ent-rhino-camera.ent-rhino-flash::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:30;
  background:#fff;
  animation:entRhinoFlash .18s ease-out forwards;
  pointer-events:none;
}
@keyframes entRhinoFlash{
  from{opacity:.85}
  to{opacity:0}
}


/* v3.2 Facebook-style live movement guidance */
.ent-rhino-face-guide{
  --move-x:0px;
  --move-y:0px;
}




.ent-rhino-pose-text strong{
  display:block;
  color:#fff;
  font-size:15px;
  line-height:1.35;
  font-weight:800;
}

.ent-rhino-pose-text small{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.78);
  font-size:10px;
  line-height:1.3;
  font-weight:600;
}

@media(max-width:760px){
  .ent-rhino-pose-text strong{
    font-size:13px;
  }

  .ent-rhino-pose-text small{
    font-size:9px;
  }

  .ent-rhino-direction-dot{
    width:16px;
    height:16px;
  }

  .ent-rhino-center-target{
    width:25px;
    height:25px;
  }
}


/* v3.3 continuation CTA */
.ent-rhino-go-profile{
  width:100%!important;
  margin-top:10px!important;
}

.ent-rhino-profile-next{
  display:block;
  margin-top:5px;
  color:#1F6F86;
  font-size:9px;
  font-weight:800;
}


/* v3.4 stable capture UI */
.ent-rhino-wrap [hidden]{
  display:none!important;
}

.ent-rhino-camera-shell{
  position:relative;
  min-height:630px;
}

.ent-rhino-camera{
  contain:layout paint;
}

.ent-rhino-camera video{
  position:absolute;
  inset:0;
}

.ent-rhino-camera-controls{
  min-height:45px;
}

.ent-rhino-mini-status{
  min-height:22px;
}

.ent-rhino-pose-text{
  min-height:64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ent-rhino-progress-ring{
  transition:background .16s linear;
}


@media(max-width:760px){
  .ent-rhino-camera-shell{
    min-height:0;
  }

  .ent-rhino-camera{
    width:100%;
    height:auto;
    aspect-ratio:3/4;
  }

  .ent-rhino-pose-text{
    min-height:58px;
  }
}



/* v3.5: the camera prompt itself is the start button */
.ent-rhino-camera-start{
  width:auto!important;
  border:1px solid rgba(255,255,255,.18)!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  transition:background .16s ease,transform .16s ease,opacity .16s ease!important;
}

.ent-rhino-camera-start:hover{
  background:rgba(11,27,33,.86)!important;
  transform:translateY(-1px);
}

.ent-rhino-camera-start:focus-visible{
  outline:2px solid #9ED7E5!important;
  outline-offset:2px!important;
}

.ent-rhino-camera-start.is-running{
  cursor:default!important;
  pointer-events:none!important;
  border-color:transparent!important;
}

.ent-rhino-camera-controls{
  min-height:0!important;
}

.ent-rhino-camera-controls:has(#ent-rhino-restart[hidden]){
  display:none!important;
}

@media(max-width:760px){
  .ent-rhino-camera-start{
    left:10px!important;
    right:10px!important;
    width:calc(100% - 20px)!important;
  }
}


/* v3.6 brand-colored in-camera start CTA */
.ent-rhino-camera-start{
  left:50%!important;
  right:auto!important;
  bottom:24px!important;
  width:min(360px,calc(100% - 28px))!important;
  min-height:58px!important;
  transform:translateX(-50%)!important;
  padding:11px 18px!important;
  border:0!important;
  border-radius:14px!important;
  background:#1F6F86!important;
  color:#fff!important;
  box-shadow:0 10px 28px rgba(31,111,134,.28)!important;
  backdrop-filter:none!important;
  z-index:10!important;
}

.ent-rhino-camera-start:hover{
  background:#195F73!important;
  transform:translateX(-50%) translateY(-1px)!important;
}

.ent-rhino-camera-start:focus-visible{
  outline:2px solid #9ED7E5!important;
  outline-offset:2px!important;
}

.ent-rhino-camera-start strong{
  display:block!important;
  font-size:16px!important;
  line-height:1.2!important;
  color:#fff!important;
}

.ent-rhino-camera-start small{
  display:block!important;
  margin-top:4px!important;
  font-size:10px!important;
  line-height:1.2!important;
  color:rgba(255,255,255,.86)!important;
}

.ent-rhino-camera-start.is-running{
  left:14px!important;
  right:14px!important;
  bottom:14px!important;
  width:auto!important;
  min-height:64px!important;
  transform:none!important;
  background:rgba(11,27,33,.74)!important;
  box-shadow:none!important;
  border:1px solid rgba(255,255,255,.10)!important;
  cursor:default!important;
  pointer-events:none!important;
}

.ent-rhino-camera-start.is-loading{
  background:#1F6F86!important;
  opacity:.88;
  cursor:wait!important;
}

@media(max-width:760px){
  .ent-rhino-camera-start{
    left:50%!important;
    right:auto!important;
    width:calc(100% - 24px)!important;
    transform:translateX(-50%)!important;
    bottom:12px!important;
  }

  .ent-rhino-camera-start.is-running{
    left:10px!important;
    right:10px!important;
    width:auto!important;
    transform:none!important;
    bottom:10px!important;
  }
}


/* v3.7 completion flow */
.ent-rhino-go-profile{
  width:100%!important;
  margin-top:12px!important;
  background:#1F6F86!important;
  color:#fff!important;
}

.ent-rhino-go-profile:hover{
  background:#195F73!important;
  color:#fff!important;
}


/* v3.7.1 capture confirmation + ENT.GE center mark */



.ent-rhino-capture-toast{
  position:absolute;
  left:50%;
  top:18px;
  z-index:12;
  transform:translate(-50%,-8px);
  min-width:190px;
  max-width:calc(100% - 110px);
  padding:10px 14px;
  border-radius:999px;
  background:#1F6F86;
  color:#fff;
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  text-align:center;
  box-shadow:0 8px 22px rgba(31,111,134,.28);
  opacity:0;
  transition:opacity .18s ease,transform .18s ease;
  pointer-events:none;
}

.ent-rhino-capture-toast.is-showing{
  opacity:1;
  transform:translate(-50%,0);
}

@media(max-width:760px){
  .ent-rhino-direction-dot{
    width:50px!important;
    height:24px!important;
  }

  .ent-rhino-direction-dot span{
    font-size:8px!important;
  }

  .ent-rhino-capture-toast{
    top:12px;
    min-width:170px;
    max-width:calc(100% - 90px);
    font-size:11px;
  }
}


/* v3.9.2 inline completion CTA */
.ent-rhino-camera-start.is-complete{
  left:50%!important;
  right:auto!important;
  bottom:24px!important;
  width:min(420px,calc(100% - 28px))!important;
  min-height:58px!important;
  transform:translateX(-50%)!important;
  background:#1F6F86!important;
  box-shadow:0 10px 28px rgba(31,111,134,.28)!important;
  border:0!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}

.ent-rhino-camera-start.is-complete strong{
  font-size:16px!important;
}

.ent-rhino-camera-start.is-complete small{
  display:none!important;
}

@media(max-width:760px){
  .ent-rhino-camera-start.is-complete{
    width:calc(100% - 24px)!important;
    bottom:12px!important;
  }
}


/* v3.9.3 mobile profile photo visibility fix - desktop unchanged */
@media(max-width:760px){
  .ent-rhino-profile,
  .ent-rhino-session-list,
  .ent-rhino-session,
  .ent-rhino-session-grid,
  .ent-rhino-session-photo{
    min-width:0!important;
    max-width:100%!important;
  }

  .ent-rhino-profile{
    overflow:visible!important;
  }

  .ent-rhino-session{
    overflow:hidden!important;
  }

  .ent-rhino-session-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;
    gap:1px!important;
  }

  .ent-rhino-session-photo{
    display:block!important;
    width:100%!important;
    overflow:hidden!important;
    background:#F8FBFC!important;
  }

  .ent-rhino-session-photo img{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    aspect-ratio:3/4!important;
    object-fit:cover!important;
    position:static!important;
    transform:none!important;
  }
}

@media(max-width:390px){
  .ent-rhino-session-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* v3.9.4 mobile private-image transport fix */
@media(max-width:760px){
  #ent-visualizations .ent-rhino-session-photo img{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    height:auto!important;
    min-height:120px!important;
    object-fit:cover!important;
    background:#EEF4F6!important;
  }
}
