/* Canonical interactive components shared by every authenticated workspace. */
[data-hpc-ui-contract="1"] :where(.as-card, .ac-panel, .ac-hero-card, .hpc-card, .card, .rounded-2xl.bg-white, .rounded-xl.bg-white) {
    border-color: var(--ui-border);
    border-radius: var(--ui-radius-card) !important;
    box-shadow: var(--ui-shadow-xs);
}

[data-hpc-ui-contract="1"] :where(.ac-hero-card, .hpc-core-hero) {
    padding: clamp(.9rem, 1.3vw, 1.2rem) !important;
}

[data-hpc-ui-contract="1"] :where(.ac-hero-card .ac-toolbar, .hpc-core-hero, .page-header) {
    gap: .85rem;
}

[data-hpc-ui-contract="1"] :where(.as-btn, .btn, .hpc-button, .hpc-icon-button, button.hpc-ui-action, a.hpc-ui-action) {
    border-radius: var(--ui-radius-control) !important;
    font-weight: 720;
    letter-spacing: 0;
    text-transform: none;
}

[data-hpc-ui-contract="1"] :where(.as-btn, .btn, .hpc-button) {
    min-height: 36px;
    padding: .5rem .78rem;
    line-height: 1.2;
}

[data-hpc-ui-contract="1"] :where(.as-btn, .btn, .hpc-button, .hpc-icon-button):disabled {
    cursor: not-allowed;
    opacity: .58;
}

[data-hpc-ui-contract="1"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea, [contenteditable="true"]) {
    width: 100%;
    min-height: var(--ui-control-height);
    border: 1px solid var(--ui-border-strong);
    border-radius: var(--ui-radius-control) !important;
    background: var(--ui-surface);
    color: var(--ui-text);
    font-size: .88rem;
    line-height: 1.4;
}

[data-hpc-ui-contract="1"] :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus {
    border-color: var(--ui-primary);
    box-shadow: 0 0 0 3px var(--ui-focus);
    outline: 0;
}

[data-hpc-ui-contract="1"] :where(input, select, textarea)[aria-invalid="true"] {
    border-color: #dc6b63 !important;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, .10) !important;
}

[data-hpc-ui-contract="1"] select:not([multiple]) {
    -webkit-appearance: none !important;
    appearance: none !important;
}

[data-hpc-ui-contract="1"] select[data-hpc-combobox-ready] {
    background-image: none !important;
}

[data-hpc-ui-contract="1"] .hpc-combobox-button {
    min-height: var(--ui-control-height);
    border-radius: var(--ui-radius-control) !important;
}

[data-hpc-ui-contract="1"] .hpc-combobox-arrow {
    display: grid;
    flex: 0 0 1.35rem;
    width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    font-size: 0 !important;
}

[data-hpc-ui-contract="1"] .hpc-combobox-arrow::before {
    content: "";
    width: .48rem;
    height: .48rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-.12rem) rotate(45deg);
}

[data-hpc-ui-contract="1"] .hpc-combobox.open .hpc-combobox-arrow {
    transform: rotate(180deg);
}

[data-hpc-ui-contract="1"] .hpc-combobox-panel {
    z-index: 700;
    border-radius: var(--ui-radius-card) !important;
    box-shadow: var(--ui-shadow-md);
}

[data-hpc-ui-contract="1"] .hpc-combobox-option {
    min-height: 38px;
    border-radius: 8px !important;
}

[data-hpc-ui-contract="1"] .hpc-combobox .hpc-pill,
[data-hpc-ui-contract="1"] :where(.badge, .as-badge, .hpc-ui-badge, .hpc-status, .ac-status, .selected-pill) {
    max-width: 100%;
    border-radius: var(--ui-radius-pill) !important;
    line-height: 1.2;
    white-space: normal;
}

[data-hpc-ui-contract="1"] .hpc-combobox .hpc-pill > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[data-hpc-ui-contract="1"] :where([role="tablist"], .as-tabs, .hpc-tabs-nav, .hpc-detail-tabs, .hpc-core-tabs) {
    display: flex;
    align-items: stretch;
    gap: .35rem;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: .25rem;
    border: 1px solid var(--ui-border);
    border-radius: var(--ui-radius-card);
    background: #eef3f7;
    scrollbar-width: thin;
}

[data-hpc-ui-contract="1"] :where([role="tab"], .as-tab, [data-hpc-tab-target], [data-hpc-tab]) {
    flex: 0 0 auto;
    min-height: 36px;
    border: 0;
    border-radius: 8px !important;
    background: transparent;
    color: #536a80;
    padding: .48rem .75rem;
    font-size: .8rem;
    font-weight: 760;
    line-height: 1.25;
    text-align: center;
    white-space: nowrap;
}

[data-hpc-ui-contract="1"] :where([role="tab"], .as-tab, [data-hpc-tab-target], [data-hpc-tab]):hover {
    background: rgba(255,255,255,.72);
    color: var(--ui-text);
}

[data-hpc-ui-contract="1"] :where([role="tab"], .as-tab, [data-hpc-tab-target], [data-hpc-tab]).is-active,
[data-hpc-ui-contract="1"] :where([role="tab"], .as-tab, [data-hpc-tab-target], [data-hpc-tab]).active,
[data-hpc-ui-contract="1"] [role="tab"][aria-selected="true"] {
    background: #fff;
    color: var(--ui-primary-strong);
    box-shadow: var(--ui-shadow-xs);
}

[data-hpc-ui-contract="1"] [data-hpc-tab-panel][hidden] {
    display: none !important;
}

[data-hpc-ui-contract="1"] :where(.hpc-ui-table-region, .table-wrap, .overflow-x-auto) {
    max-width: 100%;
    scrollbar-gutter: stable;
}

[data-hpc-ui-contract="1"] table.hpc-ui-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

[data-hpc-ui-contract="1"] table.hpc-ui-table th {
    color: #536a80;
    font-size: .72rem;
    font-weight: 780;
    letter-spacing: .025em;
    text-transform: none;
    white-space: nowrap;
}

[data-hpc-ui-contract="1"] table.hpc-ui-table :where(th, td) {
    padding: .68rem .78rem;
    line-height: 1.38;
    vertical-align: top;
}

[data-hpc-ui-contract="1"] table.hpc-ui-table tbody tr:hover td {
    background: #f8fbfd;
}

[data-hpc-ui-contract="1"] table.hpc-ui-table td:last-child :where(.flex, .inline-flex, .as-actions, .ac-actions, .row-actions) {
    flex-wrap: nowrap;
    justify-content: flex-end;
    white-space: nowrap;
}

[data-hpc-ui-contract="1"] .hpc-richtext {
    overflow: hidden;
    border: 1px solid var(--ui-border-strong);
    border-radius: var(--ui-radius-control) !important;
    background: #fff;
}

[data-hpc-ui-contract="1"] .hpc-richtext:focus-within {
    border-color: var(--ui-primary);
    box-shadow: 0 0 0 3px var(--ui-focus);
}

[data-hpc-ui-contract="1"] .hpc-richtext-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    padding: .38rem .45rem;
    border-bottom: 1px solid var(--ui-border);
    background: var(--ui-surface-muted);
}

[data-hpc-ui-contract="1"] .hpc-richtext-toolbar button {
    min-width: 32px;
    min-height: 30px !important;
    border: 1px solid var(--ui-border);
    border-radius: 7px !important;
    background: #fff;
    color: #31495f;
    padding: .3rem .5rem !important;
    font-size: .76rem;
    font-weight: 760;
}

[data-hpc-ui-contract="1"] .hpc-richtext-toolbar button:hover,
[data-hpc-ui-contract="1"] .hpc-richtext-toolbar button[aria-pressed="true"] {
    border-color: #91bfd3;
    background: #eaf6fb;
    color: var(--ui-primary-strong);
}

[data-hpc-ui-contract="1"] .hpc-richtext-editor {
    min-height: 126px;
    max-height: 420px;
    overflow-y: auto;
    padding: .78rem .85rem;
    color: var(--ui-text);
    font-size: .9rem;
    line-height: 1.55;
}

[data-hpc-ui-contract="1"] .hpc-richtext.is-compact .hpc-richtext-editor {
    min-height: 88px;
    max-height: 220px;
}

[data-hpc-ui-contract="1"] .hpc-toast-region {
    position: fixed;
    top: calc(var(--ui-topbar-height) + 12px);
    right: 14px;
    bottom: auto;
    z-index: 1200;
    display: grid;
    width: min(390px, calc(100vw - 28px));
    gap: .65rem;
    pointer-events: none;
}

[data-hpc-ui-contract="1"] .hpc-toast {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 28px;
    align-items: start;
    gap: .65rem;
    border: 1px solid var(--ui-border);
    border-left-width: 4px;
    border-radius: var(--ui-radius-card);
    background: #fff;
    padding: .78rem;
    box-shadow: var(--ui-shadow-md);
    pointer-events: auto;
    animation: hpc-toast-in .18s ease-out both;
}

[data-hpc-ui-contract="1"] .hpc-toast-success { border-left-color: var(--ui-success); }
[data-hpc-ui-contract="1"] .hpc-toast-error { border-left-color: var(--ui-danger); }
[data-hpc-ui-contract="1"] .hpc-toast-warning { border-left-color: var(--ui-accent); }
[data-hpc-ui-contract="1"] .hpc-toast-info { border-left-color: var(--ui-primary); }
[data-hpc-ui-contract="1"] .hpc-toast-icon {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: var(--ui-surface-muted);
    font-weight: 900;
}
[data-hpc-ui-contract="1"] .hpc-toast-title { display: block; font-size: .82rem; }
[data-hpc-ui-contract="1"] .hpc-toast-message { display: block; margin-top: .12rem; color: var(--ui-text-muted); font-size: .8rem; line-height: 1.4; }
[data-hpc-ui-contract="1"] .hpc-toast-close { display: grid; width: 28px; height: 28px; place-items: center; border: 0; border-radius: 7px; background: transparent; color: #718399; }
[data-hpc-ui-contract="1"] .hpc-toast-close:hover { background: #eef3f7; color: var(--ui-text); }
[data-hpc-ui-contract="1"] .hpc-toast.is-leaving { opacity: 0; transform: translateY(-6px); transition: .2s ease; }

@keyframes hpc-toast-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
    [data-hpc-ui-contract="1"] :where([role="tablist"], .as-tabs, .hpc-tabs-nav, .hpc-detail-tabs, .hpc-core-tabs) {
        border-radius: 9px;
    }

    [data-hpc-ui-contract="1"] table.hpc-ui-table td:last-child :where(.flex, .inline-flex, .as-actions, .ac-actions, .row-actions) {
        justify-content: flex-start;
    }

    [data-hpc-ui-contract="1"] .hpc-toast-region {
        top: auto;
        right: 10px;
        bottom: 10px;
        left: 10px;
        width: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-hpc-ui-contract="1"] *, [data-hpc-ui-contract="1"] *::before, [data-hpc-ui-contract="1"] *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

[data-hpc-ui-contract="1"] .hpc-richtext-editor:empty::before {
    content: attr(data-placeholder);
    color: #8a9aab;
    pointer-events: none;
}

/* Form and action hierarchy shared by all pages. */
[data-hpc-ui-contract="1"] :where(label, .as-label, .ac-field-label, .assessment-field > span, .hpc-ui-label) {
    color: #536a80;
    font-size: .78rem;
    font-weight: 720;
    letter-spacing: 0 !important;
    line-height: 1.35;
    text-align: left;
    text-transform: none !important;
}

[data-hpc-ui-contract="1"] :where(.help-text, .form-help, .as-help, .ac-field-help, small.text-slate-500) {
    color: var(--ui-text-muted);
    font-size: .74rem;
    line-height: 1.42;
}

[data-hpc-ui-contract="1"] :where(input[type="checkbox"], input[type="radio"]) {
    width: 1rem;
    min-width: 1rem;
    height: 1rem;
    min-height: 1rem;
    accent-color: var(--ui-primary);
}

[data-hpc-ui-contract="1"] :where(
    .as-btn-primary,
    .hpc-button-primary,
    .hpc-ui-action-primary,
    button[type="submit"]:not(.as-btn-danger):not(.hpc-button-danger):not(.btn-danger):not([data-variant="danger"])
) {
    border-color: var(--ui-primary) !important;
    background: var(--ui-primary) !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(20, 127, 169, .16) !important;
}

[data-hpc-ui-contract="1"] :where(
    .as-btn-primary,
    .hpc-button-primary,
    .hpc-ui-action-primary,
    button[type="submit"]:not(.as-btn-danger):not(.hpc-button-danger):not(.btn-danger):not([data-variant="danger"])
):hover {
    border-color: var(--ui-primary-strong) !important;
    background: var(--ui-primary-strong) !important;
}

[data-hpc-ui-contract="1"] :where(.as-btn-danger, .hpc-button-danger, .btn-danger, [data-variant="danger"]) {
    border-color: var(--ui-danger) !important;
    background: var(--ui-danger) !important;
    color: #fff !important;
}

[data-hpc-ui-contract="1"] :where(.hpc-dropdown-panel, .hpc-user-panel, .modal-content, [role="dialog"]) {
    border-color: var(--ui-border);
    border-radius: var(--ui-radius-modal) !important;
    box-shadow: var(--ui-shadow-md);
}

[data-hpc-ui-contract="1"] :where(.hpc-dropdown-item, [role="menuitem"]) {
    border-radius: 8px !important;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
}

[data-hpc-ui-contract="1"] :where(nav[aria-label*="Pagination"], .pagination, .hpc-pagination) :where(a, button, span) {
    border-radius: 7px !important;
}

[data-hpc-ui-contract="1"] :where(.empty-state, .as-empty-state, .ac-empty-state, [data-empty-state]) {
    border: 1px dashed var(--ui-border-strong);
    border-radius: var(--ui-radius-card) !important;
    background: var(--ui-surface-subtle);
    padding: 1.15rem;
    color: var(--ui-text-muted);
    text-align: center;
}

[data-hpc-ui-contract="1"] :where(.hpc-ui-alert, .alert, [class*="as-alert"]) {
    border-radius: var(--ui-radius-control) !important;
    line-height: 1.45;
}

[data-hpc-ui-contract="1"] :where(.hpc-combobox-search, .hpc-combobox-panel input[type="search"]) {
    min-height: 36px;
}

[data-hpc-ui-contract="1"] .hpc-combobox-button[aria-invalid="true"] {
    border-color: #dc6b63 !important;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, .10) !important;
}

@media (max-width: 760px) {
    [data-hpc-ui-contract="1"] :where(.as-btn, .btn, .hpc-button) {
        min-height: 40px;
    }

    [data-hpc-ui-contract="1"] .hpc-richtext-toolbar {
        flex-wrap: nowrap;
        overflow-x: auto;
    }
}

/* Canonical interactive select integrity. Internal combobox controls must stay
   clickable and must not inherit generic page-action layout rules. */
[data-hpc-ui-contract="1"] .hpc-combobox-panel,
[data-hpc-ui-contract="1"] .hpc-combobox-options,
[data-hpc-ui-contract="1"] button.hpc-combobox-option,
[data-hpc-ui-contract="1"] .hpc-combobox-pill-remove {
    pointer-events: auto !important;
}

[data-hpc-ui-contract="1"] button.hpc-combobox-option.hpc-ui-action,
[data-hpc-ui-contract="1"] .hpc-combobox-pill-remove.hpc-ui-action {
    min-width: 0 !important;
    max-width: none !important;
    box-shadow: none !important;
}

/* Selection reliability: small single-select fields intentionally remain native.
   They keep one project-owned arrow and never receive a second generated control. */
[data-hpc-ui-contract="1"] select.hpc-native-select:not([multiple]) {
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer;
    padding-right: 2.35rem !important;
    background-color: var(--ui-surface) !important;
    background-image:
        linear-gradient(45deg, transparent 50%, #557189 50%),
        linear-gradient(135deg, #557189 50%, transparent 50%) !important;
    background-position:
        calc(100% - 17px) calc(50% - 2px),
        calc(100% - 12px) calc(50% - 2px) !important;
    background-repeat: no-repeat !important;
    background-size: 5px 5px, 5px 5px !important;
}

[data-hpc-ui-contract="1"] select.hpc-native-select:not([multiple]):disabled {
    cursor: not-allowed;
}

/* Generated searchable choices must own their complete hit area. */
[data-hpc-ui-contract="1"] .hpc-combobox {
    isolation: isolate;
}

[data-hpc-ui-contract="1"] .hpc-combobox.open {
    z-index: 710;
}

[data-hpc-ui-contract="1"] .hpc-combobox-panel {
    pointer-events: auto !important;
    touch-action: manipulation;
}

[data-hpc-ui-contract="1"] button.hpc-combobox-option {
    position: relative;
    z-index: 1;
    width: 100% !important;
    max-width: none !important;
    cursor: pointer;
    pointer-events: auto !important;
    touch-action: manipulation;
    user-select: none;
}

[data-hpc-ui-contract="1"] button.hpc-combobox-option > * {
    pointer-events: none;
}

[data-hpc-ui-contract="1"] button.hpc-combobox-option:disabled,
[data-hpc-ui-contract="1"] button.hpc-combobox-option.is-disabled {
    cursor: not-allowed;
}

/* Tenant ownership must remain visible while Platform Context is active. */
[data-hpc-ui-contract="1"] .ui-platform-context-notice {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    border: 1px solid #b9dceb;
    border-radius: var(--ui-radius-card);
    background: #eef9fd;
    color: #173a56;
    padding: .68rem .8rem;
    box-shadow: var(--ui-shadow-xs);
}

[data-hpc-ui-contract="1"] .ui-platform-context-notice__icon {
    display: grid;
    place-items: center;
    flex: 0 0 1.7rem;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 8px;
    background: #d8f0fa;
    color: #1676a0;
    font-weight: 900;
}

[data-hpc-ui-contract="1"] .ui-platform-context-notice strong,
[data-hpc-ui-contract="1"] .ui-platform-context-notice span {
    display: block;
}

[data-hpc-ui-contract="1"] .ui-platform-context-notice span {
    margin-top: .12rem;
    color: #526d84;
    font-size: .78rem;
    line-height: 1.42;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .28rem .42rem;
    max-width: 100%;
    border: 1px solid #b9dceb;
    border-radius: 999px;
    background: #eef9fd;
    color: #145f80;
    padding: .28rem .55rem;
    font-size: .72rem;
    font-weight: 780;
    line-height: 1.2;
    text-align: left;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution__name {
    min-width: 0;
    overflow-wrap: break-word;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution__code {
    border-left: 1px solid #b9dceb;
    padding-left: .42rem;
    color: #52738a;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .04em;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution.is-platform {
    border-color: #d6dce5;
    background: #f5f7fa;
    color: #536579;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution.is-unknown {
    border-color: #f0cf92;
    background: #fff8e8;
    color: #835b11;
}

[data-hpc-ui-contract="1"] .ui-institution-attribution.is-compact {
    padding: .2rem .42rem;
    font-size: .67rem;
}
