/* =========================================================
                   PAGE AND TOKENS
                   ========================================================= */
html,
body {
    width: 100%;
    min-width: 320px;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

.tt-login {
    --tt-ink-1000: #071019;
    --tt-ink-950: #0a141e;
    --tt-ink-900: #101d29;
    --tt-ink-850: #172734;
    --tt-ink-800: #213441;
    --tt-red: #a33f45;
    --tt-red-light: #ca7277;
    --tt-silver: #d7dde1;
    --tt-silver-light: #f7f8f9;
    --tt-yellow: #cdb64f;
    --tt-yellow-light: #eadf9e;
    --tt-text: #16212b;
    --tt-text-soft: #475561;
    --tt-muted: #7e8993;
    --tt-line: #dbe1e5;
    --tt-line-soft: #e9edef;
    --tt-danger: #bd3f4b;
    --tt-success: #5f856f;
    --tt-display: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tt-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    color: var(--tt-text);
    background: #edf1f3;
    font-family: var(--tt-body);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

    .tt-login *,
    .tt-login *::before,
    .tt-login *::after {
        box-sizing: border-box;
    }

button,
input {
    font: inherit;
}

/* =========================================================
                   SPLIT LAYOUT
                   ========================================================= */

.tt-login-layout {
    display: grid;
    /* Track sizes stay paired with their original panel via `order` below,
       so reversing sides doesn't also swap which panel is wider. */
    grid-template-columns: minmax(0, 1.16fr) minmax(470px, .84fr);
    width: 100%;
    height: 100%;
}

/* =========================================================
                   LEFT BRAND EXPERIENCE
                   (dark brand panel sits on the left, light access
                   panel on the right - see `order` below)
                   ========================================================= */

.tt-brand-panel {
    order: 1;
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: clamp(30px, 4.3vw, 68px) clamp(38px, 5.2vw, 84px);
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient(circle at 84% 12%, rgba(205, 182, 79, .11), transparent 27%), radial-gradient(circle at 13% 89%, rgba(113, 139, 159, .10), transparent 29%), linear-gradient(142deg, var(--tt-ink-1000) 0%, var(--tt-ink-950) 41%, var(--tt-ink-850) 100%);
}

    .tt-brand-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -5;
        opacity: .22;
        background-image: linear-gradient(rgba(255, 255, 255, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .03) 1px, transparent 1px);
        background-size: 58px 58px;
        -webkit-mask-image: radial-gradient(circle at 39% 44%, #000 0%, transparent 74%);
        mask-image: radial-gradient(circle at 39% 44%, #000 0%, transparent 74%);
        pointer-events: none;
    }

    .tt-brand-panel::after {
        content: "";
        position: absolute;
        width: 680px;
        height: 680px;
        right: -440px;
        top: -72px;
        z-index: -4;
        border: 1px solid rgba(234, 223, 158, .055);
        border-radius: 50%;
        box-shadow: 0 0 0 92px rgba(255, 255, 255, .011), 0 0 0 184px rgba(255, 255, 255, .006);
        pointer-events: none;
    }

.tt-brand-top {
    position: relative;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.tt-brand {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    width: fit-content;
}

.tt-brand-mark {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .025));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 16px 38px rgba(0, 0, 0, .18);
}

    .tt-brand-mark svg {
        width: 24px;
        height: 24px;
    }

.tt-brand-copy {
    display: grid;
    gap: 2px;
    line-height: 1.1;
}

    .tt-brand-copy strong {
        color: #ffffff;
        font-family: var(--tt-display);
        font-size: 1.02rem;
        font-weight: 800;
        letter-spacing: -.02em;
    }

    .tt-brand-copy span {
        color: rgba(228, 234, 239, .48);
        font-size: .68rem;
    }

.tt-brand-edition {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    color: rgba(235, 239, 242, .55);
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(255, 255, 255, .065);
    border-radius: 999px;
    font-size: .60rem;
    font-weight: 650;
    letter-spacing: .05em;
    text-transform: uppercase;
}

    .tt-brand-edition::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--tt-yellow);
        box-shadow: 0 0 0 3px rgba(205, 182, 79, .10);
    }

/* =========================================================
                   LEFT HERO
                   ========================================================= */

.tt-brand-hero {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 720px;
    margin: auto 0;
}

.tt-brand-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 18px;
    color: var(--tt-yellow-light);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

    .tt-brand-eyebrow::before {
        content: "";
        width: 34px;
        height: 1px;
        background: linear-gradient(90deg, rgba(205, 182, 79, .12), var(--tt-yellow), rgba(205, 182, 79, .10));
    }

.tt-brand-hero h1 {
    max-width: 690px;
    margin: 0;
    color: #f8fafb;
    font-family: var(--tt-display);
    font-size: clamp(2.35rem, 4.15vw, 4.85rem);
    font-weight: 750;
    line-height: .99;
    letter-spacing: -.058em;
    text-wrap: balance;
}

    .tt-brand-hero h1 span {
        color: var(--tt-yellow-light);
    }

.tt-brand-description {
    max-width: 560px;
    margin: 23px 0 0;
    color: rgba(226, 232, 237, .62);
    font-size: .94rem;
    line-height: 1.72;
}

/* =========================================================
                   REFLECTIVE BRAND OBJECT
                   ========================================================= */

.tt-reflective-object {
    position: relative;
    width: min(630px, 92%);
    height: 94px;
    margin-top: 37px;
    perspective: 900px;
}

.tt-reflective-rail {
    position: absolute;
    inset: 12px 0 auto;
    height: 58px;
    display: grid;
    grid-template-columns: 1fr 1.25fr 1fr;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 12px;
    transform: rotateX(4deg) rotateZ(-1.6deg);
    transform-origin: center;
    box-shadow: 0 30px 55px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .18);
    animation: ttStickerFloat 7s ease-in-out infinite;
    will-change: transform;
}

    /* A single soft reflection passes across the material. */
    .tt-reflective-rail::before {
        content: "";
        position: absolute;
        top: -45%;
        bottom: -45%;
        left: -24%;
        z-index: 3;
        width: 15%;
        opacity: 0;
        transform: skewX(-20deg);
        background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, .08), rgba(255, 255, 255, .48), rgba(255, 255, 255, .08), transparent );
        filter: blur(1px);
        animation: ttStickerShine 6.8s ease-in-out infinite;
        pointer-events: none;
    }

    .tt-reflective-rail::after {
        content: "";
        position: absolute;
        inset: 0;
        opacity: .20;
        background-image: linear-gradient(45deg, rgba(255, 255, 255, .60) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .24) 50%, rgba(255, 255, 255, .24) 75%, transparent 75%);
        background-size: 12px 12px;
        mix-blend-mode: screen;
        pointer-events: none;
    }

.tt-reflective-red {
    background: linear-gradient(110deg, #74252a, #ad484d 48%, #d17a7f 75%, #8e3439);
}

.tt-reflective-white {
    background: linear-gradient(110deg, #aeb7bd, #f8f9fa 42%, #ffffff 58%, #c3cbd0);
}

.tt-reflective-yellow {
    background: linear-gradient(110deg, #917b27, #d1b950 48%, #eee09b 75%, #aa9334);
}

.tt-reflective-shadow {
    position: absolute;
    left: 7%;
    right: 7%;
    bottom: 4px;
    height: 22px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .20);
    filter: blur(15px);
}

/* =========================================================
                   CAPABILITY STRIP
                   ========================================================= */

.tt-capabilities {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(610px, 94%);
    margin-top: 28px;
    overflow: hidden;
    background: linear-gradient(145deg, rgba(255, 255, 255, .052), rgba(255, 255, 255, .016));
    border: 1px solid rgba(255, 255, 255, .068);
    border-radius: 15px;
}

.tt-capability {
    position: relative;
    min-width: 0;
    padding: 14px 16px;
}

    .tt-capability:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 24%;
        right: 0;
        width: 1px;
        height: 52%;
        background: rgba(255, 255, 255, .07);
    }

    .tt-capability small {
        display: block;
        margin-bottom: 4px;
        color: rgba(224, 230, 235, .36);
        font-size: .58rem;
        letter-spacing: .065em;
        text-transform: uppercase;
    }

    .tt-capability strong {
        display: block;
        overflow: hidden;
        color: #eef2f4;
        font-size: .73rem;
        font-weight: 650;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .tt-capability:last-child strong {
        color: var(--tt-yellow-light);
    }

.tt-brand-footer {
    position: relative;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(227, 233, 238, .34);
    font-size: .67rem;
}

    .tt-brand-footer svg {
        width: 14px;
        height: 14px;
        flex: none;
    }

/* =========================================================
   TAPETRACK — RIGHT ACCESS PANEL V2
   REFLECTIVE SOLUTIONS CONTROL DESK
   ========================================================= */


/* =========================================================
   RIGHT PANEL ENVIRONMENT
   ========================================================= */

.tt-access-panel {
    order: 2;
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: clamp(26px, 3.6vw, 58px);
    overflow: hidden;
    background: radial-gradient( circle at 88% 10%, rgba(255, 255, 255, .96) 0, rgba(255, 255, 255, .58) 22%, transparent 46% ), linear-gradient( 145deg, #f5f6f4 0%, #eef1f0 48%, #e9edec 100% );
}


    /* reflective diagonal architecture */
    .tt-access-panel::before {
        content: "";
        position: absolute;
        z-index: -2;
        width: 720px;
        height: 720px;
        right: -360px;
        top: -245px;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        transform: rotate(-8deg);
        background: linear-gradient( 90deg, transparent 0 13%, rgba(163, 63, 69, .08) 13% 14.2%, transparent 14.2% 19%, rgba(193, 201, 205, .30) 19% 20.4%, transparent 20.4% 25%, rgba(205, 182, 79, .10) 25% 26.3%, transparent 26.3% 100% );
        pointer-events: none;
    }


    /* subtle technical background */
    .tt-access-panel::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -3;
        opacity: .55;
        background-image: linear-gradient( rgba(36, 52, 64, .025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(36, 52, 64, .025) 1px, transparent 1px );
        background-size: 54px 54px;
        -webkit-mask-image: linear-gradient( 90deg, transparent, rgba(0,0,0,.5) 30%, #000 );
        mask-image: linear-gradient( 90deg, transparent, rgba(0,0,0,.5) 30%, #000 );
        pointer-events: none;
    }


/* =========================================================
   STAGE
   ========================================================= */

.tt-access-stage {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 620px;
}


    /* remove old color halo system */
    .tt-access-stage::before,
    .tt-access-stage::after {
        display: none;
    }


/* =========================================================
   TOP PRODUCT IDENTITY
   ========================================================= */

.tt-access-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 0 3px;
}


.tt-access-product {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}


.tt-access-product-mark {
    position: relative;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    color: #172630;
    background: linear-gradient( 145deg, rgba(255,255,255,.96), rgba(246,248,248,.82) );
    border: 1px solid rgba(52, 68, 79, .13);
    border-radius: 13px;
    box-shadow: 0 9px 24px rgba(28, 39, 47, .075), inset 0 1px 0 rgba(255,255,255,.9);
}


    .tt-access-product-mark::after {
        content: "";
        position: absolute;
        left: 8px;
        right: 8px;
        bottom: -1px;
        height: 2px;
        background: linear-gradient( 90deg, #a33f45 0 33.333%, #d9dfe2 33.333% 66.666%, #cdb64f 66.666% 100% );
        border-radius: 999px;
    }


    .tt-access-product-mark svg {
        width: 22px;
        height: 22px;
    }


.tt-access-product-copy {
    display: grid;
    min-width: 0;
    line-height: 1.08;
}


    .tt-access-product-copy strong {
        color: #17232c;
        font-family: var(--tt-display);
        font-size: .95rem;
        font-weight: 800;
        letter-spacing: -.025em;
    }


    .tt-access-product-copy span {
        margin-top: 4px;
        color: #879198;
        font-size: .56rem;
        font-weight: 700;
        letter-spacing: .085em;
        text-transform: uppercase;
    }


.tt-secure-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 8px 11px;
    color: #4e6157;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(68, 91, 78, .12);
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(30, 43, 51, .035), inset 0 1px 0 rgba(255,255,255,.75);
    font-size: .59rem;
    font-weight: 700;
    letter-spacing: .01em;
}


    .tt-secure-chip::before {
        display: none;
    }


.tt-secure-dot {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    background: #64846f;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(100, 132, 111, .11);
}


/* =========================================================
   MAIN ACCESS CONSOLE
   ========================================================= */

.tt-access-console {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 68px;
    width: 100%;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(50, 64, 74, .12);
    border-radius: 26px;
    box-shadow: 0 34px 70px rgba(24, 35, 43, .13), 0 8px 22px rgba(24, 35, 43, .055), inset 0 1px 0 rgba(255, 255, 255, .95);
}


    /* remove previous top rainbow stripe */
    .tt-access-console::before {
        display: none;
    }


/* =========================================================
   REFLECTIVE MATERIAL RAIL
   ========================================================= */

.tt-material-rail {
    position: relative;
    order: 2;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 22px 12px 18px;
    overflow: hidden;
    color: #ffffff;
    background: radial-gradient( circle at 90% 0%, rgba(255,255,255,.08), transparent 32% ), linear-gradient( 165deg, #0a151e 0%, #101e28 52%, #172833 100% );
    border-left: 1px solid rgba(6, 17, 25, .18);
}


    /* restrained technical texture */
    .tt-material-rail::before {
        content: "";
        position: absolute;
        inset: 0;
        opacity: .18;
        background-image: linear-gradient( rgba(255,255,255,.05) 1px, transparent 1px );
        background-size: 100% 28px;
        pointer-events: none;
    }


    /* small reflective edge */
    .tt-material-rail::after {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 1px;
        background: linear-gradient( 180deg, rgba(163,63,69,.65), rgba(223,227,229,.8) 50%, rgba(205,182,79,.7) );
        opacity: .7;
    }


.tt-material-index {
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    color: rgba(255,255,255,.88);
}


    .tt-material-index span {
        font-family: var(--tt-display);
        font-size: .74rem;
        font-weight: 800;
        letter-spacing: .04em;
    }


    .tt-material-index small {
        color: rgba(255,255,255,.28);
        font-size: .51rem;
        font-weight: 700;
        letter-spacing: .08em;
    }


/* =========================================================
   REFLECTIVE SWATCH STACK
   ========================================================= */

.tt-material-stack {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 7px;
    width: 30px;
    margin: auto 0;
}


.tt-material-swatch {
    position: relative;
    display: block;
    width: 30px;
    height: 70px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 7px;
    box-shadow: 0 10px 22px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.34);
}


    /* micro-prismatic impression */
    .tt-material-swatch::after {
        content: "";
        position: absolute;
        inset: 0;
        opacity: .21;
        background-image: linear-gradient( 45deg, rgba(255,255,255,.75) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.32) 50%, rgba(255,255,255,.32) 75%, transparent 75% );
        background-size: 8px 8px;
        mix-blend-mode: screen;
        pointer-events: none;
    }


.tt-material-red {
    background: linear-gradient( 115deg, #77282e 0%, #ad484e 46%, #cf757a 70%, #8e3439 100% );
}


.tt-material-silver {
    background: linear-gradient( 115deg, #aeb7bc 0%, #f5f7f8 40%, #ffffff 58%, #c5cdd1 100% );
}


.tt-material-yellow {
    background: linear-gradient( 115deg, #897421 0%, #cdb64f 46%, #eadf9e 70%, #a48c30 100% );
}


/* vertical industry identity */
.tt-material-code {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 6px;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    color: rgba(226,232,236,.28);
    font-size: .48rem;
    font-weight: 700;
    letter-spacing: .16em;
}


/* =========================================================
   FORM SURFACE
   ========================================================= */

.tt-access-content {
    position: relative;
    order: 1;
    min-width: 0;
    padding: clamp(34px, 3vw, 43px) clamp(32px, 3.2vw, 44px) 30px;
}


    /* remove previous decorative bubble */
    .tt-access-content::before {
        display: none;
    }


/* =========================================================
   HEADER
   ========================================================= */

.tt-access-header {
    position: relative;
    z-index: 2;
    margin-bottom: 19px;
}


.tt-access-heading-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}


.tt-access-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: #904149;
    font-size: .57rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}


    .tt-access-eyebrow::before {
        width: 20px;
        height: 2px;
        background: linear-gradient( 90deg, #a33f45, #cdb64f );
        border-radius: 999px;
    }


.tt-access-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #7a8881;
    font-size: .53rem;
    font-weight: 650;
    white-space: nowrap;
}


    .tt-access-status i {
        width: 5px;
        height: 5px;
        background: #698876;
        border-radius: 50%;
        box-shadow: 0 0 0 3px rgba(105,136,118,.10);
    }


.tt-access-header h1 {
    margin: 0;
    color: #14212a;
    font-family: var(--tt-display);
    font-size: clamp(2.05rem, 2.55vw, 2.55rem);
    font-weight: 750;
    line-height: 1.02;
    letter-spacing: -.055em;
}


.tt-access-header p {
    max-width: 390px;
    margin: 10px 0 0;
    color: #75818a;
    font-size: .77rem;
    line-height: 1.62;
}


/* =========================================================
   ACCESS SCOPE
   ========================================================= */

.tt-access-scope {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 23px;
    overflow: hidden;
    background: #f7f9f9;
    border: 1px solid #e6eaec;
    border-radius: 11px;
}


.tt-scope-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    padding: 10px 9px;
}


    .tt-scope-item:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 24%;
        right: 0;
        width: 1px;
        height: 52%;
        background: #e1e6e8;
    }


.tt-scope-number {
    color: #a7afb5;
    font-family: var(--tt-display);
    font-size: .51rem;
    font-weight: 800;
}


.tt-scope-copy {
    display: grid;
    min-width: 0;
    line-height: 1.08;
}


    .tt-scope-copy strong {
        overflow: hidden;
        color: #44525c;
        font-size: .58rem;
        font-weight: 750;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


    .tt-scope-copy small {
        overflow: hidden;
        margin-top: 3px;
        color: #9ba4aa;
        font-size: .48rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


/* =========================================================
   FIELDS
   ========================================================= */

.tt-field {
    position: relative;
    z-index: 3;
    margin-bottom: 16px;
}


.tt-field-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
}


    .tt-field-label label {
        color: #35434d;
        font-size: .69rem;
        font-weight: 750;
    }


    .tt-field-label span {
        color: #a0a8ad;
        font-size: .53rem;
        font-weight: 500;
    }


.tt-input-shell {
    position: relative;
    display: flex;
    align-items: center;
}


.tt-input-icon {
    position: absolute;
    left: 7px;
    z-index: 4;
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    color: #77858e;
    background: #f0f3f4;
    border: 1px solid #e8ecee;
    border-radius: 9px;
    pointer-events: none;
    transition: color .16s ease, background .16s ease, border-color .16s ease;
}


    .tt-input-icon svg {
        width: 16px;
        height: 16px;
    }


/* Smaller than the username field's icon badge - the padlock glyph read oversized/heavy next
   to the person icon above it at the shared 39px size. */
.tt-input-icon--lock {
    width: 32px;
    height: 32px;
}

    .tt-input-icon--lock svg {
        width: 13px;
        height: 13px;
    }


.tt-input-shell:focus-within .tt-input-icon {
    color: #334b59;
    background: #edf1f2;
    border-color: #dce3e6;
}


.tt-login-control {
    width: 100%;
    height: 53px;
    padding: 0 48px 0 57px;
    color: #1d2932;
    background: #fbfcfc;
    border: 1px solid #d8dfe2;
    border-radius: 11px;
    outline: none;
    font-family: var(--tt-body);
    font-size: .79rem;
    font-weight: 500;
    caret-color: #455e6d;
    box-shadow: inset 0 1px 1px rgba(27,39,47,.015);
    transition: background .16s ease, border-color .16s ease, box-shadow .16s ease;
}


    .tt-login-control::placeholder {
        color: #a5adb3;
        font-weight: 400;
    }


    .tt-login-control:hover {
        background: #ffffff;
        border-color: #c8d1d5;
    }


    .tt-login-control:focus {
        background: #ffffff;
        border-color: #607886;
        box-shadow: 0 0 0 3px rgba(67, 91, 106, .075), inset 3px 0 0 rgba(163, 63, 69, .68);
    }


    .tt-login-control:-webkit-autofill,
    .tt-login-control:-webkit-autofill:hover,
    .tt-login-control:-webkit-autofill:focus {
        -webkit-text-fill-color: #1d2932;
        -webkit-box-shadow: 0 0 0 1000px #ffffff inset;
        transition: background-color 5000s ease-in-out 0s;
    }


/* =========================================================
   PASSWORD CONTROL
   ========================================================= */

.tt-password-toggle {
    position: absolute;
    right: 8px;
    z-index: 5;
    width: 37px;
    height: 37px;
    display: grid;
    place-items: center;
    padding: 0;
    color: #7f8b93;
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}


    .tt-password-toggle:hover {
        color: #344b59;
        background: #eff2f3;
    }

/* Only one glyph shows at a time - password hidden (default) shows the open
   eye as the "reveal" affordance; [aria-pressed="true"] (password visible)
   swaps to the slashed eye. Both svg children render by default otherwise. */
.tt-password-toggle .tt-eye-off {
    display: none;
}

.tt-password-toggle[aria-pressed="true"] .tt-eye {
    display: none;
}

.tt-password-toggle[aria-pressed="true"] .tt-eye-off {
    display: block;
}


/* =========================================================
   PRIMARY SIGN-IN ACTION
   ========================================================= */

.tt-login-submit {
    position: relative;
    z-index: 3;
    width: 100%;
    height: 58px;
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 7px;
    padding: 6px 7px 6px 14px;
    overflow: hidden;
    color: #ffffff;
    background: linear-gradient( 115deg, #0d1922 0%, #172832 52%, #203641 100% );
    border: 1px solid #101d25;
    border-radius: 12px;
    cursor: pointer;
    box-shadow: 0 15px 27px rgba(17,28,36,.18), inset 0 1px 0 rgba(255,255,255,.08);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}


    .tt-login-submit:hover {
        transform: translateY(-1px);
        background: linear-gradient( 115deg, #12202a 0%, #1a303b 52%, #29444f 100% );
        box-shadow: 0 18px 31px rgba(17,28,36,.22), inset 0 1px 0 rgba(255,255,255,.09);
    }


    .tt-login-submit:active {
        transform: translateY(0);
    }


    .tt-login-submit:disabled {
        opacity: .68;
        cursor: progress;
        transform: none;
    }


/* three tape materials represented vertically */
.tt-login-submit-accent {
    width: 4px;
    height: 34px;
    flex: 0 0 4px;
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    overflow: hidden;
    border-radius: 999px;
}


    .tt-login-submit-accent i:nth-child(1) {
        background: #b34b52;
    }


    .tt-login-submit-accent i:nth-child(2) {
        background: #e4e8ea;
    }


    .tt-login-submit-accent i:nth-child(3) {
        background: #d3bc55;
    }


.tt-login-submit-copy {
    display: grid;
    text-align: left;
    line-height: 1.08;
}


    .tt-login-submit-copy small {
        margin-bottom: 4px;
        color: rgba(225,232,236,.48);
        font-size: .49rem;
        font-weight: 550;
        letter-spacing: .045em;
        text-transform: uppercase;
    }


    .tt-login-submit-copy strong {
        color: #ffffff;
        font-size: .78rem;
        font-weight: 700;
    }


.tt-submit-arrow {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    display: grid;
    place-items: center;
    margin-left: auto;
    color: #22251c;
    background: linear-gradient( 145deg, #eadb91, #c7ad45 );
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 9px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
}


    .tt-submit-arrow svg {
        width: 16px;
        height: 16px;
    }


/* =========================================================
   VALIDATION
   ========================================================= */

.tt-login-alert:empty,
.tt-login-alert.validation-summary-valid {
    display: none;
}


.tt-login-alert.validation-summary-errors {
    position: relative;
    z-index: 3;
    margin-bottom: 15px;
    padding: 10px 12px 10px 37px;
    color: #963b44;
    background: #fff6f6;
    border: 1px solid #efd4d6;
    border-radius: 9px;
    font-size: .67rem;
    line-height: 1.4;
}


    .tt-login-alert.validation-summary-errors::before {
        content: "!";
        position: absolute;
        left: 12px;
        top: 10px;
        width: 16px;
        height: 16px;
        display: grid;
        place-items: center;
        color: white;
        background: #a33f45;
        border-radius: 50%;
        font-size: .57rem;
        font-weight: 800;
    }


.tt-login-alert.validation-summary-errors ul {
    margin: 0;
    padding: 0;
    list-style: none;
}


/* =========================================================
   TRUST FOOTER
   ========================================================= */

.tt-trust-row {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 19px;
    padding-top: 17px;
    border-top: 1px solid #e9edef;
}


.tt-trust-item {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 8px 9px;
    background: #fafbfb;
    border: 1px solid #edf0f1;
    border-radius: 9px;
}


.tt-trust-icon {
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    display: grid;
    place-items: center;
    color: #607568;
    background: #edf3ef;
    border-radius: 7px;
}


    .tt-trust-icon svg {
        width: 14px;
        height: 14px;
    }


.tt-trust-copy {
    display: grid;
    min-width: 0;
    line-height: 1.1;
}


    .tt-trust-copy strong {
        overflow: hidden;
        color: #4b5b64;
        font-size: .57rem;
        font-weight: 750;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


    .tt-trust-copy span {
        overflow: hidden;
        margin-top: 3px;
        color: #9aa3a8;
        font-size: .49rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


/* =========================================================
   PANEL FOOTNOTE
   ========================================================= */

.tt-access-footnote {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 14px;
    padding: 0 3px;
    color: #91999e;
    font-size: .52rem;
    font-weight: 600;
    letter-spacing: .035em;
}


.tt-access-footnote-line {
    width: 22px;
    height: 1px;
    background: linear-gradient( 90deg, #a33f45, #cdb64f );
}


.tt-access-footnote-code {
    margin-left: auto;
    color: #b0b6ba;
    font-family: var(--tt-display);
    font-size: .48rem;
    font-weight: 750;
    letter-spacing: .13em;
}


/* =========================================================
   SHORT LAPTOP
   ========================================================= */

@media (max-height: 790px) {

    .tt-access-panel {
        padding-top: 22px;
        padding-bottom: 22px;
    }

    .tt-access-top {
        margin-bottom: 11px;
    }

    .tt-access-content {
        padding: 23px 29px 21px;
    }

    .tt-access-header {
        margin-bottom: 14px;
    }

    .tt-access-heading-row {
        margin-bottom: 7px;
    }

    .tt-access-header h1 {
        font-size: 1.82rem;
    }

    .tt-access-header p {
        margin-top: 6px;
        line-height: 1.48;
    }

    .tt-access-scope {
        margin-bottom: 15px;
    }

    .tt-scope-item {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .tt-field {
        margin-bottom: 11px;
    }

    .tt-login-control {
        height: 47px;
    }

    .tt-input-icon {
        width: 34px;
        height: 34px;
    }

    .tt-input-icon--lock {
        width: 28px;
        height: 28px;
    }

    .tt-login-control {
        padding-left: 50px;
    }

    .tt-login-submit {
        height: 50px;
    }

    .tt-submit-arrow {
        width: 35px;
        height: 35px;
        flex-basis: 35px;
    }

    .tt-trust-row {
        margin-top: 12px;
        padding-top: 11px;
    }

    .tt-trust-item {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .tt-material-swatch {
        height: 55px;
    }

    .tt-access-footnote {
        margin-top: 8px;
    }
}


/* =========================================================
   VERY SHORT DISPLAY
   ========================================================= */

@media (max-height: 650px) {

    .tt-access-top {
        margin-bottom: 7px;
    }

    .tt-access-product-mark {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .tt-access-content {
        padding: 17px 24px 16px;
    }

    .tt-access-header {
        margin-bottom: 10px;
    }

        .tt-access-header h1 {
            font-size: 1.55rem;
        }

        .tt-access-header p {
            font-size: .68rem;
        }

    .tt-access-scope {
        display: none;
    }

    .tt-field {
        margin-bottom: 8px;
    }

    .tt-field-label {
        margin-bottom: 4px;
    }

    .tt-login-control {
        height: 43px;
    }

    .tt-input-icon {
        height: 31px;
        width: 31px;
    }

    .tt-input-icon--lock {
        height: 26px;
        width: 26px;
    }

    .tt-login-control {
        padding-left: 46px;
    }

    .tt-login-submit {
        height: 45px;
    }

    .tt-login-submit-copy small {
        display: none;
    }

    .tt-submit-arrow {
        width: 32px;
        height: 32px;
        flex-basis: 32px;
    }

    .tt-trust-row {
        margin-top: 8px;
        padding-top: 8px;
    }

    .tt-material-swatch {
        height: 43px;
    }

    .tt-access-footnote {
        display: none;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 880px) {

    /* Brand panel is decorative (aria-hidden) - drop it so the access
       column is no longer forced to share the row with a second track. */
    .tt-login-layout {
        display: block;
    }

    .tt-brand-panel {
        display: none;
    }

    .tt-access-panel {
        width: 100%;
        height: 100%;
        padding: 26px;
        overflow-y: auto;
        overflow-x: hidden;
    }

    .tt-access-stage {
        max-width: 620px;
        margin: auto 0;
    }

    .tt-access-panel::after {
        display: block;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 560px) {

    .tt-access-panel {
        padding: 17px;
    }

    .tt-access-top {
        margin-bottom: 12px;
    }

    .tt-secure-chip {
        display: none;
    }


    /* side rail becomes top material header */
    .tt-access-console {
        display: block;
        border-radius: 21px;
    }


    .tt-material-rail {
        height: 73px;
        flex-direction: row;
        padding: 13px 18px;
        border-left: 0;
        border-bottom: 1px solid rgba(255,255,255,.08);
    }


        .tt-material-rail::after {
            left: 0;
            right: 0;
            top: auto;
            bottom: 0;
            width: auto;
            height: 2px;
            background: linear-gradient( 90deg, #a33f45 0 33.333%, #e3e7e9 33.333% 66.666%, #cdb64f 66.666% 100% );
        }


    .tt-material-index {
        width: auto;
        display: grid;
        justify-content: initial;
        margin-right: auto;
    }


        .tt-material-index small {
            margin-top: 3px;
        }


    .tt-material-stack {
        width: auto;
        display: flex;
        gap: 6px;
        margin: 0 14px;
    }


    .tt-material-swatch {
        width: 31px;
        height: 40px;
        border-radius: 6px;
    }


    .tt-material-code {
        display: grid;
        writing-mode: initial;
        transform: none;
        font-size: .43rem;
        line-height: 1.3;
        text-align: right;
    }


    .tt-access-content {
        padding: 27px 22px 22px;
    }


    .tt-access-heading-row {
        align-items: flex-start;
    }


    .tt-access-status {
        display: none;
    }


    .tt-access-header h1 {
        font-size: 1.88rem;
    }


    .tt-access-scope {
        margin-bottom: 20px;
    }


    .tt-scope-item {
        display: grid;
        gap: 3px;
    }


    .tt-scope-number {
        display: none;
    }


    .tt-scope-copy small {
        display: none;
    }


    .tt-trust-row {
        grid-template-columns: 1fr;
    }


    .tt-access-footnote {
        padding: 0 2px;
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 390px) {

    .tt-access-panel {
        padding: 11px;
    }

    .tt-access-product-copy span {
        display: none;
    }

    .tt-access-content {
        padding: 22px 18px 19px;
    }

    .tt-field-label span {
        display: none;
    }

    .tt-access-scope {
        grid-template-columns: repeat(3, 1fr);
    }

    .tt-scope-item {
        justify-items: center;
        text-align: center;
    }

    .tt-access-footnote-code {
        display: none;
    }
}


/* =========================================================
   REDUCED MOTION / PROFESSIONAL STATIC UI
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .tt-login-control,
    .tt-password-toggle,
    .tt-login-submit {
        transition: none;
    }
}