/* Triscal Intelligence Operation (TIO) — full-screen login experience */
:root {
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    color: #172033;
    background: #f5f8fc;
    font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { background: #f5f8fc; color: #172033; }

.auth-skip-link {
    position: fixed;
    left: 16px;
    top: -60px;
    z-index: 10;
    padding: 10px 14px;
    border-radius: 8px;
    background: #172033;
    color: #fff;
}
.auth-skip-link:focus { top: 16px; }

.login-page {
    position: relative;
    display: flex;
    min-height: 100vh;
    height: 100vh;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
}

/* Brand — sits at the top of the form panel */
.login-brand {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    margin-bottom: 30px;
}
.login-brand img { display: block; width: 158px; height: auto; }
.login-brand > span { width: 1px; height: 34px; margin: 0 18px; background: #d9dee6; }
.login-brand strong { color: #ff5a0a; font-size: .7rem; line-height: 1.35; letter-spacing: .18em; }

/* Card shell */
.login-card {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    grid-template-columns: minmax(380px, .85fr) minmax(520px, 1.15fr);
    overflow: hidden;
}

/* Form panel */
.login-form-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px clamp(46px, 5vw, 78px);
    background: #fff;
    border-right: 1px solid #e6ebf1;
    overflow-y: auto;
}
.login-form-panel > .login-brand,
.login-form-panel > .login-heading,
.login-form-panel > .login-form { width: 100%; max-width: 460px; }
.login-heading { margin-bottom: 28px; }
.login-kicker {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 12px;
    color: #ff5a0a;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .16em;
}
.login-kicker svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linejoin: round;
}
.login-heading h1 {
    margin: 0;
    color: #172033;
    font-size: clamp(2rem, 2.6vw, 2.7rem);
    line-height: 1.1;
    letter-spacing: -.045em;
}
.login-heading h1 em { color: #ff5a0a; font-style: normal; }
.login-heading p { margin: 12px 0 0; color: #7d899b; font-size: .94rem; line-height: 1.55; }

.login-form { display: block; width: 100%; }
.login-validation:empty { display: none; }
.login-validation {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #ffd0bf;
    border-radius: 10px;
    background: #fff5f1;
    color: #b93412;
    font-size: .78rem;
}
.login-validation ul { margin: 0; padding-left: 18px; }

.login-field { margin-bottom: 18px; }
.login-field > label { display: block; margin-bottom: 8px; font-size: .76rem; font-weight: 700; }
.login-input-wrap { position: relative; }
.login-input-wrap > svg {
    position: absolute;
    left: 15px;
    top: 50%;
    width: 20px;
    transform: translateY(-50%);
    fill: none;
    stroke: #94a0b2;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}
.login-input-wrap > input {
    width: 100%;
    height: 54px;
    padding: 0 47px;
    border: 1px solid #d7dee8;
    border-radius: 9px;
    outline: 0;
    background: #fff;
    color: #172033;
    font: inherit;
    font-size: .86rem;
    transition: border-color .16s, box-shadow .16s;
}
.login-input-wrap > input::placeholder { color: #9da8b8; }
.login-input-wrap > input:focus { border-color: #ff7a39; box-shadow: 0 0 0 4px rgba(255, 90, 10, .1); }
.login-field > span { display: block; min-height: 18px; padding-top: 4px; color: #c53f1b; font-size: .7rem; }

.password-toggle {
    position: absolute;
    right: 8px;
    top: 50%;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    transform: translateY(-50%);
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #8e99aa;
    cursor: pointer;
}
.password-toggle:hover { background: #f4f6f9; }
.password-toggle svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }

.login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 2px 0 24px;
    font-size: .74rem;
}
.login-options a { color: #f25209; text-decoration: none; }
.login-options a:hover { text-decoration: underline; }
.remember-field { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.remember-field input { position: absolute; opacity: 0; pointer-events: none; }
.remember-field span {
    display: grid;
    width: 19px;
    height: 19px;
    place-items: center;
    border: 1px solid #ccd5e0;
    border-radius: 5px;
    background: #fff;
}
.remember-field input:checked + span { border-color: #ff5a0a; background: #ff5a0a; }
.remember-field input:checked + span:after {
    width: 5px;
    height: 9px;
    transform: translateY(-1px) rotate(45deg);
    border: solid #fff;
    border-width: 0 2px 2px 0;
    content: "";
}
.remember-field input:focus-visible + span { outline: 3px solid rgba(255, 90, 10, .22); }

.login-submit {
    width: 100%;
    height: 55px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(110deg, #ff5a0a, #ff701b);
    box-shadow: 0 13px 27px rgba(255, 90, 10, .22);
    color: #fff;
    font: inherit;
    font-size: .92rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .16s, box-shadow .16s;
}
.login-submit:hover { transform: translateY(-1px); box-shadow: 0 16px 31px rgba(255, 90, 10, .3); }
.login-submit:focus-visible,
.password-toggle:focus-visible,
.login-sso:focus-visible,
.login-options a:focus-visible {
    outline: 3px solid rgba(255, 90, 10, .25);
    outline-offset: 2px;
}

.login-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 22px 0 18px;
    color: #9aa5b5;
    font-size: .7rem;
}
.login-divider:before,
.login-divider:after { height: 1px; flex: 1; background: #e3e7ed; content: ""; }

/* SSO (corporate) — active placeholder */
.login-sso {
    display: flex;
    width: 100%;
    height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 1px solid #d7dee8;
    border-radius: 9px;
    background: #fff;
    color: #4a5567;
    font: inherit;
    font-size: .84rem;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .16s, background .16s;
}
.login-sso:hover { border-color: #ff7a39; background: #fff8f4; }
.login-sso svg { width: 20px; flex: 0 0 20px; fill: none; stroke: #8e99aa; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.login-sso-note { margin: 10px 0 0; color: #b06033; font-size: .72rem; text-align: center; }

.login-secure-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 22px 0 0;
    color: #99a4b3;
    font-size: .68rem;
}
.login-secure-note svg { width: 15px; flex: 0 0 15px; fill: none; stroke: currentColor; stroke-width: 1.7; }

/* Story panel */
.login-story-panel {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 40px clamp(40px, 4.2vw, 64px);
    background: linear-gradient(155deg, #fcfdff 0%, #eef3f9 100%);
    overflow: hidden;
}
.login-story-copy,
.login-benefits { width: 100%; max-width: 720px; }
.login-story-panel:after {
    position: absolute;
    right: -180px;
    top: -160px;
    width: 520px;
    height: 520px;
    border-radius: 50%;
    background: linear-gradient(145deg, rgba(255, 255, 255, .8), rgba(236, 242, 249, .2));
    content: "";
    pointer-events: none;
}
.login-story-copy { position: relative; z-index: 1; text-align: center; }
.login-story-copy h2 {
    margin: 0;
    color: #172033;
    font-size: clamp(1.7rem, 2.4vw, 2.3rem);
    line-height: 1.14;
    letter-spacing: -.04em;
}
.login-story-copy h2 em { color: #ff5a0a; font-style: normal; }
.login-story-copy p {
    max-width: 620px;
    margin: 14px auto 0;
    color: #788497;
    font-size: .84rem;
    line-height: 1.62;
}

/* TIO hub — central core with four surrounding capability cards */
.tio-hub {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 20px clamp(24px, 4vw, 60px);
    margin: 8px auto;
    padding: 10px 0;
    width: 100%;
    max-width: 640px;
}
.tio-orbit {
    position: absolute;
    left: 50%;
    top: 50%;
    width: clamp(190px, 24vw, 250px);
    height: clamp(190px, 24vw, 250px);
    transform: translate(-50%, -50%);
    border: 2px dashed rgba(255, 90, 10, .45);
    border-radius: 50%;
    pointer-events: none;
}
.tio-core {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: clamp(120px, 15vw, 150px);
    height: clamp(120px, 15vw, 150px);
    border-radius: 50%;
    background: radial-gradient(circle at 50% 40%, #fff 60%, #fff4ee 100%);
    box-shadow: 0 18px 40px rgba(255, 90, 10, .16), inset 0 0 0 1px #ffe0d0;
    text-align: center;
}
.tio-core strong { color: #ff5a0a; font-size: clamp(1.8rem, 2.6vw, 2.4rem); font-weight: 800; letter-spacing: -.03em; }
.tio-core small { margin-top: 2px; color: #6c7889; font-size: .58rem; font-weight: 600; line-height: 1.25; max-width: 100px; }

.tio-card {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 14px 16px;
    border: 1px solid #e7ebf1;
    border-radius: 14px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 10px 26px rgba(35, 52, 74, .07);
}
.tio-card--people { grid-column: 1; grid-row: 1; }
.tio-card--agents { grid-column: 3; grid-row: 1; }
.tio-card--data { grid-column: 1; grid-row: 2; }
.tio-card--systems { grid-column: 3; grid-row: 2; }
.tio-card-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    background: #fff2ea;
}
.tio-card-icon svg { width: 19px; fill: none; stroke: #ff5a0a; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tio-card strong { display: block; color: #172033; font-size: .78rem; }
.tio-card small { display: block; margin-top: 3px; color: #8b96a6; font-size: .62rem; line-height: 1.4; }

/* Feature strip */
.login-benefits {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    padding-top: 18px;
    border-top: 1px solid #e6ebf1;
}
.login-benefits > div { display: flex; align-items: flex-start; gap: 10px; }
.login-benefits > div > span {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid #ffd8c6;
    border-radius: 50%;
    background: #fff7f2;
    color: #ff5a0a;
}
.login-benefits > div > span svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.login-benefits p { display: flex; margin: 1px 0 0; flex-direction: column; }
.login-benefits strong { font-size: .68rem; }
.login-benefits small { margin-top: 4px; color: #8b96a6; font-size: .58rem; line-height: 1.35; }

/* Footer */
.login-footer {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    padding: 12px clamp(20px, 3vw, 44px);
    background: #fff;
    border-top: 1px solid #eceff3;
    color: #98a3b2;
    font-size: .62rem;
}
.login-footer strong { display: flex; align-items: center; gap: 7px; color: #7f8b9b; font-weight: 600; }
.login-footer i { width: 7px; height: 7px; border-radius: 50%; background: #32bd72; box-shadow: 0 0 0 4px rgba(50, 189, 114, .12); }

/* Responsive */
@media (max-width: 1050px) {
    .login-card { grid-template-columns: minmax(340px, .95fr) minmax(400px, 1.05fr); }
    .login-form-panel { padding: 40px 38px; }
    .login-story-panel { padding-inline: 32px; }
    .tio-card small { display: none; }
    .login-benefits { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
    .login-page { height: auto; min-height: 100vh; }
    .login-brand { margin-bottom: 24px; }
    .login-brand img { width: 156px; }
    .login-card { display: block; width: 100%; }
    .login-form-panel { padding: 48px 32px; border-right: 0; overflow: visible; }
    .login-story-panel { display: none; }
}

@media (max-width: 480px) {
    .login-brand img { width: 142px; }
    .login-brand > span { margin: 0 11px; }
    .login-brand strong { font-size: .56rem; }
    .login-form-panel { padding: 40px 22px; }
    .login-heading h1 { font-size: 1.9rem; }
    .login-options { align-items: flex-start; gap: 12px; }
    .login-footer > span { max-width: 55%; }
}
