/* Unified readable type scale across the three SkVision applications. */

:root {
    --type-caption: 12px;
    --type-meta: 11px;
    --type-small: 13px;
}

body {
    font-size: 16px;
    line-height: 1.72;
}

.brand-word small {
    font-size: 9px;
    opacity: .68;
}

.eyebrow {
    font-size: 12px;
    letter-spacing: .13em;
}

.hero-kicker {
    font-size: 11.5px;
    line-height: 1.6;
}

.hero-metrics > div > span {
    font-size: 12.5px;
    line-height: 1.5;
}

.console-head,
.console-data span,
.hero-scroll,
.stage-coordinate {
    font-size: 10px;
}

.measure-tag span {
    font-size: 10px;
}

.measure-tag strong {
    font-size: 13px;
}

.marquee-track span {
    font-size: 13px;
}

.section-heading > p,
.platform-copy > p {
    font-size: 16px;
    line-height: 1.9;
}

.cap-card p {
    font-size: 15px;
    line-height: 1.8;
}

.cap-number {
    font-size: 11.5px;
}

.cap-meta {
    font-size: 11px;
    line-height: 1.6;
}

.solution-copy p {
    font-size: 15px;
    line-height: 1.8;
}

.solution-index {
    font-size: 11px;
}

.solution-title span {
    font-size: 10.5px;
}

.solution-row > p {
    font-size: 14.5px;
    line-height: 1.8;
}

.solution-specs small {
    font-size: 11px;
}

.platform-list li {
    font-size: 14.5px;
}

.platform-list li span {
    font-size: 10px;
}

.studio-titlebar,
.canvas-toolbar,
.canvas-status,
.canvas-axis,
.canvas-tip,
.inspector-label,
.inspector-sub {
    font-size: 9.5px;
}

.studio-tool,
.studio-running,
.tree-title,
.tree-param {
    font-size: 9.5px;
}

.tree-item {
    font-size: 10.5px;
}

.about-body > p {
    font-size: 16.5px;
    line-height: 1.95;
}

.about-stats small {
    font-size: 12px;
}

.contact-side > p {
    font-size: 16px;
    line-height: 1.9;
}

.contact-details {
    font-size: 15px;
    line-height: 1.65;
}

.contact-details small {
    margin-bottom: 7px;
    color: #6f7d77;
    font-size: 12px;
    letter-spacing: .04em;
}

.footer-brand > p {
    color: rgba(255, 255, 255, .56);
    font-size: 15px;
    line-height: 1.9;
}

.footer-status {
    color: rgba(116, 245, 211, .72);
    font-size: 10.5px;
}

.footer-label {
    color: rgba(255, 255, 255, .62);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: .07em;
}

.footer-links a,
.footer-links span {
    color: rgba(255, 255, 255, .66);
    font-size: 14px;
    line-height: 1.75;
}

.footer-bottom {
    color: rgba(255, 255, 255, .38);
    font-size: 10.5px;
}

/* Authentication screens */

.auth-back {
    font-size: 13.5px;
}

.auth-form-head p {
    font-size: 14px;
    line-height: 1.75;
}

.field > span:first-child {
    font-size: 13px;
}

.field > span small {
    font-size: 10.5px;
}

.field-control input {
    font-size: 14px;
}

.field-error {
    font-size: 11.5px;
}

.check-label {
    font-size: 12px;
}

.form-hint {
    font-size: 11.5px;
}

.auth-readout span,
.auth-readout small {
    font-size: 9.5px;
}

.auth-readout strong {
    font-size: 12.5px;
}

.demo-label {
    font-size: 9.5px;
}

.demo-card strong {
    font-size: 12.5px;
}

.demo-fill {
    font-size: 11.5px;
}

.demo-credentials {
    font-size: 10.5px;
}

.auth-switch {
    font-size: 12px;
}

.auth-footnote {
    font-size: 9.5px;
}

/* Admin and storage portals */

.workspace-badge small {
    font-size: 9.5px;
}

.nav-caption {
    font-size: 9.5px;
}

.workspace-nav a,
.permission-nav {
    font-size: 13px;
}

.storage-title {
    font-size: 11px;
}

.storage-title strong,
.sidebar-storage small {
    font-size: 10.5px;
}

.profile-copy strong {
    font-size: 12.5px;
}

.profile-copy small {
    font-size: 10px;
}

.portal-topbar-title span,
.topbar-meta {
    font-size: 10px;
}

.portal-topbar-title strong {
    font-size: 14px;
}

.workspace-search input {
    font-size: 13px;
}

.workspace-search kbd {
    font-size: 9px;
}

.workspace-eyebrow {
    font-size: 10.5px;
}

.workspace-heading p {
    font-size: 13.5px;
    line-height: 1.7;
}

.workspace-button {
    font-size: 12.5px;
}

.breadcrumb {
    font-size: 11px;
}

.workspace-stats article > div span {
    font-size: 11px;
}

.workspace-stats small,
.admin-stat > small {
    font-size: 9.5px;
}

.block-head > div span,
.block-note {
    font-size: 10.5px;
}

.block-signal {
    font-size: 10px;
}

.folder-info strong {
    font-size: 13.5px;
}

.folder-info small {
    font-size: 10.5px;
}

.file-table-head,
.admin-table-head {
    font-size: 10px;
}

.file-name strong,
.account-name strong {
    font-size: 13px;
}

.file-name small,
.account-name small,
.file-category,
.file-location,
.file-size,
.file-date {
    font-size: 10.5px;
}

.file-icon small {
    font-size: 7.5px;
}

.portal-empty p,
.permission-cards p,
.switch-row small,
.form-section-title p {
    font-size: 11px;
    line-height: 1.7;
}

.status-pill,
.permission-pill,
.mini-action,
.account-usage {
    font-size: 10px;
}

.customer-summary small,
.quota-overview-copy span,
.quota-overview > span {
    font-size: 10px;
}

.customer-summary strong,
.quota-overview-copy strong {
    font-size: 12px;
}

.dialog-copy,
.workspace-field span,
.upload-target,
.preview-title p {
    font-size: 11px;
}

.drop-zone small,
.viewer-head,
.viewer-foot,
.document-meta dl > div,
.meta-note p {
    font-size: 10.5px;
}

.toast {
    font-size: 12px;
}

@media (max-width: 760px) {
    .footer-brand > p {
        font-size: 14.5px;
    }

    .footer-links a,
    .footer-links span {
        font-size: 13.5px;
    }

    .contact-details {
        font-size: 14.5px;
    }
}

/* Final layout polish from rendered-page verification. */
.workspace-body .overview-stat-grid .admin-stat {
    min-height: 112px;
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: auto auto;
    row-gap: 3px;
}

.workspace-body .overview-stat-grid .admin-stat > .stat-icon {
    grid-row: 1 / span 2;
}

.workspace-body .overview-stat-grid .admin-stat > div {
    grid-column: 2;
    grid-row: 1;
}

.workspace-body .overview-stat-grid .admin-stat > small {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin-left: 0;
}

.workspace-body .overview-stat-grid .admin-stat > div > span {
    white-space: nowrap;
}

.workspace-body details:not([open]) > form {
    display: none !important;
}

.workspace-field .password-field-control {
    position: relative;
    display: block;
    height: 45px;
}

.workspace-field .password-field-control input {
    height: 100%;
    padding-right: 48px;
}

.workspace-field .password-field-control .password-toggle {
    position: absolute;
    inset: 0 0 0 auto;
    width: 45px;
    height: 100%;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
}

.workspace-field .password-field-control .eye-shape {
    display: block;
    margin: 0;
}

.workspace-field input.input-validation-error,
.workspace-field select.input-validation-error {
    border-color: #c85b51;
    box-shadow: 0 0 0 3px rgba(200, 91, 81, .08);
}

.workspace-field .field-error {
    display: block;
    margin-top: 5px;
    color: #b3423b;
    font-weight: 500;
}

.workspace-field .field-error:empty {
    display: none;
}

/* Layout corrections after the readable type scale. */
.workspace-body .workspace-badge small {
    font-size: 11.5px !important;
    letter-spacing: .05em;
    white-space: nowrap;
}

.workspace-body .admin-table.account-admin-table .admin-table-head,
.workspace-body .admin-table.account-admin-table .admin-table-row {
    grid-template-columns:
        minmax(280px, 1.35fr)
        120px
        100px
        minmax(160px, .8fr)
        minmax(180px, auto);
    gap: 16px;
}

.workspace-body .admin-table-head span,
.workspace-body .file-table-head span {
    white-space: nowrap;
}

.workspace-body .status-pill,
.workspace-body .permission-pill,
.workspace-body .role-pill,
.workspace-body .source-pill {
    white-space: nowrap;
}

.workspace-body .account-admin-table .account-name {
    align-items: center;
}

.workspace-body .account-admin-table .account-name > span:last-child {
    justify-content: center;
}

.workspace-body .portal-search .workspace-button {
    height: 100%;
    min-height: 100%;
}

@media (max-width: 1180px) {
    .workspace-body .admin-table.account-admin-table .admin-table-head,
    .workspace-body .admin-table.account-admin-table .admin-table-row {
        grid-template-columns:
            minmax(220px, 1.3fr)
            115px
            95px
            minmax(150px, 1fr);
    }
}

@media (max-width: 760px) {
    .workspace-body .admin-table.account-admin-table .admin-table-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

/* Final portal type scale: normal content is never smaller than navigation. */
.workspace-body :is(p, span, small, label, a, button, input, select, textarea, dt, dd),
.simple-body :is(p, span, small, label, a, button, input, select, textarea, dt, dd) {
    font-size: 14px !important;
    line-height: 1.6;
}

.workspace-body strong,
.simple-body strong {
    font-size: 14px !important;
    line-height: 1.55;
}

.workspace-sidebar .brand-word strong,
.simple-body .brand-word strong {
    font-size: 18px !important;
}

.workspace-sidebar .brand-word small,
.simple-body .brand-word small {
    font-size: 9px !important;
}

.file-icon small {
    font-size: 9px !important;
}

.workspace-heading h1 {
    font-size: clamp(36px, 3.2vw, 46px) !important;
}

.block-head h2 {
    font-size: 20px !important;
}

.form-section-title h2 {
    font-size: 21px !important;
}

.dialog-head h2 {
    font-size: 24px !important;
}

.preview-title h1 {
    font-size: clamp(26px, 2.4vw, 34px) !important;
}

.workspace-body .admin-stat strong,
.workspace-body .workspace-stats strong {
    font-size: 26px !important;
}

.workspace-body .admin-table-head,
.workspace-body .admin-table-head span,
.workspace-body .file-table-head,
.workspace-body .file-table-head span,
.workspace-body .permission-matrix-head,
.workspace-body .permission-matrix-head span,
.workspace-body .audit-head,
.workspace-body .audit-head span {
    color: #53635b !important;
    font-size: 16px !important;
    font-weight: 600;
    line-height: 1.55;
}

.workspace-body .workspace-nav a,
.workspace-body .nav-caption {
    font-size: 14px !important;
}

.workspace-body .portal-search input,
.workspace-body .workspace-field input,
.workspace-body .workspace-field select,
.workspace-body .audit-filter select {
    font-size: 15px !important;
}

.workspace-body .workspace-button,
.workspace-body .mini-action {
    font-size: 14px !important;
}

.workspace-body .status-pill,
.workspace-body .permission-pill,
.workspace-body .role-pill,
.workspace-body .source-pill {
    padding: 6px 10px;
}

.workspace-body .admin-table-row,
.workspace-body .account-list-row,
.workspace-body .audit-row,
.workspace-body .permission-matrix-row {
    min-height: 82px;
}

.workspace-body .file-row {
    min-height: 76px;
}

.workspace-body .portal-search {
    height: 50px;
}

.workspace-body .workspace-button {
    min-height: 44px;
}

@media (max-width: 760px) {
    .workspace-body .admin-table-head,
    .workspace-body .admin-table-head span,
    .workspace-body .file-table-head,
    .workspace-body .file-table-head span,
    .workspace-body .permission-matrix-head,
    .workspace-body .permission-matrix-head span {
        font-size: 15px !important;
    }
}

/* Portal readability pass: keep metadata secondary without making it unreadable. */
.workspace-badge small,
.nav-caption {
    font-size: 11px;
    line-height: 1.5;
}

.portal-topbar-title span,
.topbar-meta,
.breadcrumb {
    font-size: 11.5px;
}

.storage-title,
.storage-title strong,
.sidebar-storage small,
.profile-copy small {
    font-size: 11.5px;
}

.profile-copy strong {
    font-size: 13.5px;
}

.workspace-eyebrow {
    font-size: 11px;
    line-height: 1.5;
}

.workspace-heading p {
    max-width: 760px;
    font-size: 14px;
    line-height: 1.75;
}

.block-head > div span,
.block-note,
.file-table-head,
.admin-table-head {
    color: #69766f;
    font-size: 12px;
    line-height: 1.55;
}

.block-signal,
.workspace-stats small,
.admin-stat > small {
    font-size: 10.5px;
}

.account-name strong,
.file-name strong {
    font-size: 14px;
    line-height: 1.55;
}

.account-name small,
.file-name small {
    color: #718079;
    font-size: 12px;
    line-height: 1.6;
}

.file-category,
.file-location,
.file-size,
.file-date,
.account-usage,
.quota-cell > span {
    color: #66736d;
    font-size: 11.5px;
    line-height: 1.55;
}

.folder-info small {
    font-size: 11.5px;
}

.file-icon small {
    font-size: 9px;
}

.status-pill,
.permission-pill,
.role-pill,
.source-pill {
    font-size: 11px;
    line-height: 1.45;
}

.mini-action {
    min-height: 30px;
    font-size: 11px;
}

.portal-empty p,
.permission-cards p,
.switch-row small,
.form-section-title p {
    color: #718079;
    font-size: 12px;
    line-height: 1.7;
}

.switch-row strong {
    font-size: 13px;
}

.form-section-title h2 {
    font-size: 18px;
}

.workspace-field > span,
.workspace-field span,
.dialog-copy,
.upload-target,
.preview-title p {
    font-size: 12px;
}

.workspace-field input,
.workspace-field select,
.portal-search input,
.audit-filter select {
    font-size: 14px;
}

.workspace-field select {
    width: 100%;
    height: 45px;
    padding: 0 13px;
    border: 1px solid #d8ded8;
    outline: 0;
    background: #fff;
    color: #35433e;
}

.workspace-field select:focus {
    border-color: #54a890;
    box-shadow: 0 0 0 3px rgba(21, 157, 126, .07);
}

.workspace-field textarea {
    width: 100%;
    min-height: 108px;
    padding: 11px 13px;
    border: 1px solid #d8ded8;
    outline: 0;
    resize: vertical;
    background: #fff;
    color: #35433e;
    font: inherit;
    font-size: 14px;
}

.workspace-field textarea:focus {
    border-color: #54a890;
    box-shadow: 0 0 0 3px rgba(21, 157, 126, .07);
}

.fixed-role-readout {
    min-height: 45px;
    padding: 0 13px;
    display: flex;
    align-items: center;
    color: #5e6b65;
    background: #f2f5f1;
    border: 1px solid #d8ded8;
}

.role-card-actions {
    margin-top: 18px;
    padding-top: 14px;
    display: flex;
    align-items: center;
    gap: 7px;
    border-top: 1px solid #e0e6e0;
}

.role-card-actions form {
    display: contents;
}

.permission-role-choice {
    min-width: 170px;
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: #52615b;
    background: #fff;
    border: 1px solid #dbe2dc;
}

.permission-role-choice.active {
    color: #216c58;
    background: #edf7f2;
    border-color: #9fcfbd;
}

.permission-role-choice > span:last-child {
    display: flex;
    flex-direction: column;
}

.permission-role-choice small {
    color: #84918b;
    font-size: 10.5px;
}

.permission-role-choice strong {
    font-size: 13px;
}

.permission-role-strip {
    flex-wrap: wrap;
}

.workspace-button,
.quick-panel a,
.panel-link {
    font-size: 13px;
}

.customer-summary small,
.quota-overview-copy span,
.quota-overview > span {
    font-size: 11.5px;
}

.customer-summary strong,
.quota-overview-copy strong {
    font-size: 13px;
}

.quota-readout span,
.retention-note span,
.retention-note small {
    font-size: 11px;
}

.quota-readout strong {
    font-size: 12.5px;
}

.drop-zone small,
.viewer-head,
.viewer-foot,
.document-meta dl > div,
.meta-note p,
.dialog-copy {
    font-size: 12px;
    line-height: 1.65;
}

.audit-row {
    min-height: 72px;
}

.audit-row strong,
.audit-row > span {
    font-size: 12px;
}

.audit-row small,
.audit-time,
.audit-ip,
.operation-code {
    color: #66736d;
    font-size: 11px;
    line-height: 1.55;
}

.role-card p {
    font-size: 12.5px;
}

.role-meta {
    font-size: 11px;
}

.role-meta strong {
    font-size: 13px;
}

.role-tags span,
.role-permission-list small,
.permission-count,
.permission-role-strip small {
    font-size: 10.5px;
}

.role-permission-list strong,
.permission-role-strip strong,
.permission-module strong,
.permission-matrix-head {
    font-size: 12px;
}

.permission-module small,
.permission-check,
.permission-matrix-head {
    font-size: 11px;
}

.permission-check i {
    width: 17px;
    height: 17px;
}

.permission-check input:checked + i::after {
    top: 4px;
    left: 3px;
}

@media (max-width: 760px) {
    .block-head > div span,
    .block-note,
    .file-table-head,
    .admin-table-head {
        font-size: 11px;
    }

    .account-name strong,
    .file-name strong {
        font-size: 13.5px;
    }

    .account-name small,
    .file-name small {
        font-size: 11.5px;
    }
}
