/*
 * Desktop density foundation
 *
 * The application historically mixed generous fixed-pixel shell, card and
 * control geometry with a smaller typographic scale.  At desktop widths this
 * made the entire product feel enlarged even though changing the root font
 * size affected only a minority of headings.  Keep mobile/tablet geometry and
 * accessible touch targets intact; compact only the shared desktop surfaces.
 */
/* Responsive app-bar controls remain touch-safe where the compact shell
   overrides their inherited line box. This is an accessibility floor, not a
   mobile density change. */
.language-control,.appearance-control { min-block-size:44px; }
.responsive-app-bar .responsive-language-control,
.responsive-app-bar .responsive-appearance-control { block-size:44px;min-block-size:44px; }
.responsive-app-bar .responsive-appearance-control { inline-size:44px;min-inline-size:44px; }

/* ui-page-system reserves a stable scrollbar gutter for application shells.
   Authentication is a viewport composition, so reserve no empty gutter in a
   clean state; a real overflow still creates a normal scrollbar. */
:root:has(> body.login-page) { scrollbar-gutter:auto; }

@media (min-width:1200px) {
    :root {
        --desktop-density: .9;
        --shell-header-height: 66px;
        --shell-breadcrumb-height: 38px;
        --shell-padding-inline: clamp(20px,2.25vw,36px);
        --shell-cluster-gap: clamp(9px,1vw,15px);
        --shell-brand-max: 172px;
        --control-height: 44px;
        --field-label-control-gap: 7px;
        --field-control-feedback-gap: 7px;
        --field-group-gap: 23px;
        --form-label-gap: 12px;
        --form-group-gap: 24px;
        --ui-content-gap: 23px;
        --page-header-surface-padding: clamp(18px,1.9vw,24px);
        --space-4: 14px;
        --space-5: 18px;
        --space-6: 22px;
    }

    .ui-page__actions { gap:10px; }
    .page-header--surface { gap:14px; }
    .page-header__lead { gap:12px; }
    .page-header--surface h1 { font-size:clamp(1.45rem,2.05vw,1.8rem); }
    .page-header--surface h2 { font-size:clamp(1.2rem,1.7vw,1.45rem); }
    .page-header--surface p { margin-block-start:5px;line-height:1.55; }
    .page-header__badges { margin-block-start:8px; }
    .page-header__actions { gap:8px; }
    .page-header__artwork :is(img,svg) { inline-size:clamp(42px,4.5vw,64px);block-size:clamp(42px,4.5vw,64px); }

    .edu-card { padding:17px; }
    .edu-card--comfortable { padding:21px; }
    .edu-card--compact { padding:12px; }
    .edu-card__link,.edu-card__button { min-block-size:44px;padding:16px; }
    .edu-card__section-header,.edu-card__header { gap:13px; }
    .edu-card__header { margin-block-end:14px; }
    .edu-card__footer { padding-block-start:10px; }
    .edu-card__content { gap:5px; }

    .button.edu-button,
    .edu-action-disclosure>summary,
    .help-action { min-block-size:44px; }
    .button.edu-button { padding:9px 14px; }

    .edu-select__trigger,.edu-phone__country,.edu-phone>input[type=tel],
    .tenant-application .field-control,.onboarding-step-form :is(input,select,textarea),
    .onboarding-filter-grid :is(input,select) { min-height:44px;padding-block:9px; }
    .edu-text-input,.edu-textarea { padding-block:9px; }
    html[dir=rtl] :is(.edu-text-input,.edu-select__trigger,.edu-phone__country,.edu-phone>input[type=tel]) { padding-block:6px; }

    .edu-table-toolbar { padding:12px; }
    .edu-data-table :is(th,td),.pricing-book__table :is(th,td),
    .pricing-workspace__table :is(th,td) { padding-block:11px; }
    .staff-activity-results__head { padding:15px 18px; }
    .staff-activity-table :is(th,td) { padding:12px 14px; }

    .confirmation-dialog__panel,.input-dialog__panel,
    [role=dialog] .interaction-overlay__panel { padding:20px; }

    .tenant-application__content { max-width:1460px;padding-block-end:54px; }
    .tenant-page__header { gap:20px;margin-bottom:20px; }
    .tenant-page__header h1 { font-size:27px; }
    .staff-activity-filter-grid { gap:12px; }

    .onboarding-page { max-width:1460px;padding-block:24px 52px; }
    .onboarding-workspace { gap:18px; }
    .onboarding-step-card { padding:20px; }
    .onboarding-step-form { padding-top:20px; }

    .public-site-main,.ui-public-shell main { --ui-page-gap:var(--ui-space-major,24px); }
    .ui-public-shell__header { padding-block:17px; }

    /* Authentication keeps its two-column desktop composition but removes the
       accumulated vertical expansion that forced otherwise ordinary laptop
       viewports to scroll at 100% browser zoom. */
    .login-shell { grid-template-columns:minmax(0,1.05fr) minmax(540px,.95fr); }
    html[dir=rtl] .login-shell { grid-template-columns:minmax(540px,.95fr) minmax(0,1.05fr); }
    .login-art { column-gap:clamp(18px,2.7vw,38px);padding:40px 6.75% 122px; }
    .login-brand img { width:clamp(142px,16.5vw,190px); }
    .art-copy { margin-block-start:clamp(88px,15vh,165px); }
    .art-copy :is(h1,h2) { margin:15px 0 14px;font-size:clamp(33px,2.5vw,39px); }
    .art-copy p { font-size:clamp(13px,1vw,15px);line-height:1.65; }
    .art-decoration,html[dir=rtl] .art-decoration { min-height:280px;inline-size:min(27rem,34vw);inset-block-end:112px; }
    .login-art-float .visual-artwork { --artwork-size:clamp(5rem,6.3vw,6.3rem)!important; }
    .login-panel { padding:clamp(78px,11vh,122px) 38px clamp(22px,4vh,42px); }
    .login-tools { inset-block-start:24px;inset-inline-end:30px;gap:10px; }
    html[dir=rtl] .login-tools { left:30px; }
    .login-card { width:min(100%,490px); }
    .login-card .page-header__lead { display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px; }
    .login-card .page-header__copy { min-inline-size:0; }
    .login-card .page-header__artwork { grid-column:3;margin-inline-start:0; }
    .login-card .page-header h1 { white-space:nowrap;font-size:31px; }
    .login-card h2 { font-size:31px; }
    .login-card>p { margin-block-end:18px;line-height:1.6; }
    .login-portal-intent { padding:11px 13px; }
    .login-card .page-header__artwork>.visual-artwork { --artwork-size:clamp(6.75rem,15vw,9.75rem); }
    .form-control { min-height:48px;padding:11px 14px; }
    .form-control:focus { padding:10px 13px; }
    .login-card .password-control .form-control { padding-inline-end:54px; }
    .login-card .password-control .form-control:focus { padding-inline-end:53px; }
    .login-card .form-group { margin-block-end:20px; }
    .form-row { margin-block-end:18px; }
    .login-submit.button.edu-button { min-height:50px;padding:11px 18px; }
}

/* A normal desktop login is a viewport composition, not a document-length
   page. Keep genuinely short windows and validation-expanded forms in normal
   flow so they can scroll instead of clipping controls. */
@media (min-width:1200px) and (min-height:740px) {
    .login-page,.login-shell { min-height:100vh;min-height:100dvh; }
    .login-shell { block-size:100vh;block-size:100dvh; }
    .login-art,.login-panel { min-block-size:0; }
}

@media (min-width:1200px) and (min-height:740px) and (max-height:840px) {
    .login-art { padding-block:30px 112px; }
    .art-copy { margin-block-start:clamp(88px,13vh,108px); }
    .art-decoration,html[dir=rtl] .art-decoration { min-height:clamp(218px,30vh,246px);inset-block-end:74px; }
    .login-art-assurances { inset-block-end:52px; }
    .login-art-tagline { inset-block-end:18px; }
    .login-panel { place-items:stretch center;padding-block:94px 16px; }
    .login-tools { inset-block-start:12px; }
    .login-card .page-header__artwork>.visual-artwork { --artwork-size:clamp(5.5rem,12vh,6.5rem); }
    .login-card>p { margin-block-end:14px; }
    .login-card .form-group { margin-block-end:16px; }
    .form-row { margin-block-end:14px; }
}
