/* Shared interaction and layout guarantees for the EDUINFO portal. */
:root { --portal-nav-height: calc(64px + env(safe-area-inset-bottom, 0px)); }
body { min-width: 0; }
main, main > *, .offcanvas-body { min-width: 0; }
.portal-bottom-nav { position: fixed; inset: auto 0 0; display: flex; align-items: stretch; z-index: 1040; padding-bottom: env(safe-area-inset-bottom, 0px); background: var(--color-surface); border-top: 1px solid var(--color-border); }
.portal-bottom-tab { display: flex; flex: 1; flex-direction: column; gap: 3px; align-items: center; justify-content: center; min-width: 0; min-height: 64px; padding: 6px 3px; border: 0; background: transparent; color: var(--color-text-muted); text-decoration: none; font: 600 11px 'Fira Sans',sans-serif; }
.portal-bottom-tab.active { color: var(--color-brand); background: var(--color-brand-soft); }
.portal-bottom-tab .material-symbols-outlined { font-size: 23px; }
.portal-footer { color: var(--color-text-muted); border-color: var(--color-border)!important; background: var(--color-surface); }
.portal-footer a { color: inherit; }
.kinfo-dropdown > button.nav-link-item { border: 0; background: transparent; text-align: left; }
.kinfo-dropdown.is-open > .kinfo-dropdown-menu { display: block!important; }
.kinfo-dropdown:not(.is-open) > .kinfo-dropdown-menu { display: none!important; }
:focus-visible { outline: 3px solid var(--color-brand); outline-offset: 3px; }
.portal-notice { margin-block: 12px; }
.portal-error-summary a { color: inherit; text-decoration: underline; }
.portal-save-state { color: var(--color-text-muted); display: block; margin-block: 10px; font-size: 13px; }
.portal-save-state[data-dirty="true"] { color: var(--color-warning-text); }
.portal-inline-help { color: var(--color-text-muted)!important; }
html[data-theme="dark"] .subject-editor .form-text { color: var(--color-text-muted)!important; }
html[data-theme="dark"] .subject-editor .btn-primary { color: var(--color-on-brand)!important; }
.portal-field-label { font-size: 13px; font-weight: 600; color: var(--color-text); }
.portal-information { line-height: 1.65; }
.subject-card { padding: 20px!important; margin-bottom: 0!important; }
.subject-card .stretched-link::after { z-index: 1; }
.subject-card span:empty { display: none!important; }

[data-page="subjects.index"] .filters, [data-page="subjects.archive"] .filters { padding: 16px; }
[data-page="subjects.index"] .filters .field, [data-page="subjects.archive"] .filters .field { margin-bottom: 10px; }
.subject-tabs { flex-wrap: wrap; }
.portal-course-summary { color: var(--color-text); }
table[data-mobile-cards] td { overflow-wrap: anywhere; }
@media(min-width:992px) {
    .filters > div:last-child { position: sticky; bottom: 8px; background: var(--color-surface); padding-bottom: 8px; z-index: 2; }
}
@media(max-width:767.98px) {
    .subject-card { padding: 18px!important; }
    table[data-mobile-cards], table[data-mobile-cards] tbody { display: block; width: 100%!important; }
    table[data-mobile-cards] thead { display: none; }
    table[data-mobile-cards] tr { display: flex; flex-direction: column; padding: 16px; border-bottom: 1px solid var(--color-border); }
    table[data-mobile-cards] td { display: block; width: 100%!important; border: 0; padding: 5px 0!important; text-align: left!important; order: 3; }
    table[data-mobile-cards] td::before { content: attr(data-label) ' · '; font-size: 12px; color: var(--color-text-muted); }
    table[data-mobile-cards] td:nth-child(1) { order: 0; }
    table[data-mobile-cards] td:nth-child(2) { order: 1; }
    table[data-mobile-cards] td:last-child { order: 2; }
}
@media(max-width:991.98px) {
    body { padding-bottom: var(--portal-nav-height)!important; }
    .offcanvas { max-width: min(90vw, 380px); }
    .kinfo-mobile-header { gap: 8px; }
    main { padding-bottom: 24px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior: auto!important; transition: none!important; } }
.portal-outline-disclosure > summary,.portal-role-details > summary,.portal-user-editor > summary {cursor:pointer;font-weight:600;padding:.6rem 0;}
.portal-role-details[open] > summary,.portal-user-editor[open] > summary {margin-bottom:1rem;}
[data-page="admin.users.index"] td {overflow-wrap:anywhere;}
[data-page="admin.users.index"] td:last-child {min-width:175px;}
[data-page="admin.users.index"] td:last-child .d-inline-flex {flex-direction:column;align-items:stretch;}
[data-page="admin.users.index"] td:last-child .btn {white-space:nowrap;justify-content:center;}
.portal-save-state {display:block;font-size:.85rem;color:var(--color-text-muted,#667085);padding:.4rem 0;}
.portal-save-state[data-dirty="true"] {color:var(--bs-warning-text-emphasis,#875900);}
@media(min-width:992px){.portal-outline-disclosure > summary {display:none;}}
.thesis-v10 .badge {max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:start;line-height:1.5;}
.portal-thesis-navigation > summary {cursor:pointer;font-weight:600;padding:.5rem 0;}
.portal-thesis-navigation {margin-bottom:1rem;}
@media(min-width:768px){.portal-thesis-navigation > summary {display:none;}.portal-thesis-navigation:not([open]) > nav {display:flex!important;}}
@media(max-width:767.98px){
 .portal-thesis-dashboard-header > .d-flex:last-child {display:none!important;}
 .v11-daily-heading {display:none;}.v11-metrics {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 .thesis-v10-workspace-nav {flex-wrap:wrap!important;}
}
.v11-metric {text-decoration:none;color:inherit;}
.targygraf-buttons-bar {flex-wrap:wrap;}
.targygraf-buttons-bar > .btn {white-space:normal;text-align:left;max-width:100%;}
.course[data-status-label]::after {content:attr(data-status-label);display:block;font-size:10px;font-weight:400;line-height:1.3;margin-top:4px;}
@media(max-width:767.98px){.targygraf-buttons-bar > .ms-auto {margin-left:0!important;}.targygraf-header-card {padding:1rem!important;}#planner-controls,#risk-controls {width:100%;}}
.portal-confirm-dialog {width:min(640px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid var(--color-border);border-radius:12px;padding:24px;background:var(--color-surface,#fff);color:var(--color-text,#222);}
.portal-confirm-dialog::backdrop {background:rgba(0,0,0,.5);}
.portal-confirm-dialog li {overflow-wrap:anywhere;margin-bottom:.5rem;}
.subject-card a:not(.stretched-link),.subject-card button {position:relative;z-index:2;}

@media(max-width:767.98px){#btn-mode-progress,#btn-mode-planner,#btn-mode-risk {flex:1;padding-inline:8px;font-size:13px;}[aria-label="Tárgygráf Módválasztó"] {display:flex;width:100%;min-width:0;}}
.kinfo-navbar-nav .nav-link-item.active {color:var(--color-brand)!important;background:var(--color-brand-soft)!important;}
[data-page="programs.index"] [style*="grid-template-columns"] {grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))!important;}
