* { box-sizing: border-box; }

html,
body {
     width: 100%;
     min-height: 100%;
     margin: 0;
}

body {
     min-height: 100vh;
     min-height: 100svh;
     overflow: hidden;
     background: #303030;
     color: #162137;
     font-family: Arial, Helvetica, sans-serif;
}

.login-layout {
     display: grid;
     grid-template-columns: 52.5% 47.5%;
     width: calc(100% - 2px);
     height: calc(100vh - 2px);
     height: calc(100svh - 2px);
     min-height: 560px;
     margin: 1px;
     overflow: hidden;
     border-radius: 10px;
     background: #fff;
}

.login-panel {
     position: relative;
     display: flex;
     justify-content: center;
     min-width: 0;
     overflow: hidden;
     background: radial-gradient(circle at 66% 48%, rgba(255, 255, 255, .9) 0 23%, transparent 54%),
                 linear-gradient(145deg, #fff 0%, #fffdfb 57%, #fff7ec 100%);
}

.login-panel::before {
     position: absolute;
     inset: -5% -9% -5% -17%;
     background: url('../img/logos/iso-fmsac.png') center / min(67vw, 640px) auto no-repeat;
     opacity: .065;
     content: '';
     transform: rotate(-8deg);
}

.login-content {
     position: relative;
     width: min(352px, calc(100% - 48px));
     padding-top: 21px;
}

.login-header { text-align: center; }

.company-logo {
     display: block;
     width: 142px;
     margin: 0 auto 20px;
}

h1 {
     margin: 0 0 10px;
     color: #26344c;
     font: 700 13px/1.15 Georgia, 'Times New Roman', serif;
}

#currentTime {
     display: block;
     color: #111a2b;
     font-size: 31px;
     font-weight: 800;
     line-height: 1;
     letter-spacing: -.8px;
}

#currentDate {
     min-height: 12px;
     margin: 5px 0 11px;
     color: #8190a8;
     font-size: 10px;
}

.form-field { margin-bottom: 7px; }
.form-field:nth-child(4) { margin-bottom: 13px; }

label,
.verification-title {
     display: block;
     margin-bottom: 4px;
     color: #1f2d43;
     font-size: 9px;
     line-height: 1.15;
}

input {
     display: block;
     width: 100%;
     height: 32px;
     padding: 0 9px;
     border: 1px solid #cbd7e5;
     border-radius: 6px;
     outline: none;
     background: rgba(255, 255, 255, .84);
     color: #202836;
     font: 11px Arial, sans-serif;
}

input:focus {
     border-color: #93abc7;
     box-shadow: 0 0 0 3px rgba(50, 103, 158, .1);
}

input[readonly] {
     border-color: #cfd5db;
     background: #e7e7e7;
     color: #747474;
}

.verification-title { font-weight: 700; }

.verification-slider {
     position: relative;
     display: flex;
     align-items: center;
     width: 100%;
     height: 35px;
     padding: 0 40px;
     border: 1px solid #e1e8f0;
     border-radius: 999px;
     background: #f0f5fa;
     outline: none;
     touch-action: none;
     user-select: none;
}

.verification-slider:focus-visible {
     box-shadow: 0 0 0 3px rgba(50, 103, 158, .15);
}

.verification-slider.blocked {
     opacity: .6;
     cursor: not-allowed;
}

.verification-slider.blocked .slider-thumb { cursor: not-allowed; }

.slider-thumb {
     position: absolute;
     top: 2px;
     left: 3px;
     display: grid;
     place-items: center;
     width: 29px;
     height: 29px;
     border: 1px solid #dbe3ec;
     border-radius: 50%;
     background: #fff;
     box-shadow: 0 1px 3px rgba(31, 50, 74, .14);
     color: #8ba0b9;
     font-size: 13px;
     cursor: grab;
     transition: transform .2s ease, background .2s ease, color .2s ease;
}

.slider-thumb.dragging {
     cursor: grabbing;
     transition: none;
}

.slider-label {
     width: 100%;
     overflow: hidden;
     color: #9aabc1;
     font-size: 10px;
     font-weight: 700;
     text-align: center;
     text-overflow: ellipsis;
     white-space: nowrap;
}

.verification-slider.verified {
     border-color: #9ed9b8;
     background: #e8f7ee;
}

.verification-slider.verified .slider-thumb {
     background: #28a861;
     color: #fff;
     cursor: default;
}

.verification-slider.verified .slider-label { color: #278451; }

.mark-button {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     width: 106px;
     height: 106px;
     margin: 15px auto 0;
     padding: 0;
     border: 5px solid rgba(255, 255, 255, .68);
     border-radius: 50%;
     outline: 3px solid rgba(201, 65, 74, .2);
     background: linear-gradient(145deg, #ff625a 4%, #ed2c32 49%, #d71926 100%);
     box-shadow: inset 0 2px 5px rgba(255, 255, 255, .42), 0 6px 12px rgba(177, 30, 39, .27);
     color: #fff;
     cursor: pointer;
}

.mark-button:active { transform: scale(.985); }

.mark-button:disabled {
     opacity: .55;
     cursor: not-allowed;
     filter: grayscale(.25);
}

.mark-button:disabled:active { transform: none; }

.fingerprint-icon {
     width: 25px;
     height: 25px;
     margin-bottom: 6px;
     fill: none;
     stroke: currentColor;
     stroke-linecap: round;
     stroke-linejoin: round;
     stroke-width: 2;
}

.mark-button span {
     font-size: 10px;
     font-weight: 800;
     letter-spacing: .35px;
}

.illustration-panel {
     min-width: 0;
     overflow: hidden;
}

.illustration-panel img {
     display: block;
     width: 100%;
     height: 100%;
     object-fit: cover;
}

.result-content {
     width: min(407px, calc(100% - 64px));
     padding-top: 25px;
}

.result-header .company-logo {
     width: 165px;
     margin-bottom: 18px;
}

.result-header h1 { margin-bottom: 16px; }

.employee-summary {
     display: flex;
     align-items: center;
     gap: 10px;
     margin-bottom: 13px;
}

.employee-avatar {
     display: grid;
     place-items: center;
     width: 46px;
     height: 46px;
     border-radius: 50%;
     background: #e1edff;
     color: #2161d8;
     font-size: 14px;
     font-weight: 800;
}

.employee-summary small,
.employee-summary strong,
.employee-summary b {
     display: block;
     line-height: 1.35;
}

.employee-summary small {
     color: #8190a8;
     font-size: 9px;
}

.employee-summary strong,
.employee-summary b { font-size: 11px; }

.result-status { text-align: center; }

.result-check {
     display: grid;
     place-items: center;
     width: 42px;
     height: 42px;
     margin: 0 auto 8px;
     border: 1px solid #20aa5e;
     border-radius: 50%;
     color: #159c50;
     font-size: 20px;
}

.result-status h2 {
     margin: 0 0 5px;
     font-size: 14px;
}

.result-status p {
     margin: 0 0 13px;
     color: #8190a8;
     font-size: 9px;
}

.daily-marks {
     display: grid;
     gap: 10px;
}

.mark-card {
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: center;
     min-height: 42px;
     border-radius: 7px;
     background: #e7e7e7;
     color: #667991;
     font-size: 9px;
     line-height: 1.45;
}

.current-mark {
     border: 1px solid #a7edc4;
     background: #edfff4;
     color: #12a650;
}

.return-button {
     display: grid;
     place-items: center;
     height: 37px;
     margin-top: 13px;
     border: 1px solid #cbd7e5;
     border-radius: 7px;
     box-shadow: 0 2px 4px rgba(31, 50, 74, .08);
     color: #34445e;
     font-size: 11px;
     font-weight: 700;
     text-decoration: none;
}

.countdown-text {
     margin: 14px 0 0;
     color: #9aabc1;
     font-size: 9px;
     text-align: center;
}

@media (min-width: 1200px) and (min-height: 700px) {
     .login-content {
          transform: scale(1.18);
          transform-origin: top center;
     }
}

@media (min-width: 1600px) and (min-height: 850px) {
     .login-content { transform: scale(1.3); }
}

@media (max-width: 767px) {
     body {
          overflow-y: auto;
          background: #fff;
     }

     .login-layout {
          display: block;
          width: 100%;
          height: auto;
          min-height: 100vh;
          min-height: 100svh;
          margin: 0;
          border-radius: 0;
     }

     .login-panel {
          min-height: 100vh;
          min-height: 100svh;
     }

     .login-panel::before {
          inset: -3% -72% -2% -78%;
          background-size: 620px auto;
     }

     .login-content {
          width: min(352px, calc(100% - 48px));
          padding: max(31px, env(safe-area-inset-top)) 0 max(26px, env(safe-area-inset-bottom));
     }

     .company-logo { width: 138px; }

     .mark-button {
          width: 104px;
          height: 104px;
          margin-top: 16px;
     }

     .illustration-panel { display: none; }

     .result-content {
          width: min(407px, calc(100% - 48px));
          padding-top: max(26px, env(safe-area-inset-top));
     }
}

@media (min-width: 420px) and (max-width: 767px) {
     .login-content {
          width: min(430px, calc(100% - 40px));
          transform: scale(1.08);
          transform-origin: top center;
     }
}
