/* Shared touch layout. */
nav a,nav button,.admin-menu a,.button,button{font-weight:750}
#portal-header>nav a,#portal-header>nav button,.admin-menu a,.admin-nav a{font-weight:750!important}
@media(max-width:760px){
 html{scroll-padding-top:72px}body:not(.board){margin:0;width:100%;min-width:0}
 body:not(.board) main{width:100%;min-width:0;padding:16px 12px 96px;box-sizing:border-box}
 body:not(.board) .panel,body:not(.board) .card{padding:16px;min-width:0}
 body:not(.board) .detail-grid,body:not(.board) .form-grid,body:not(.board) .hero,body:not(.board) .terminal-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px}
 #portal-header.portal-header{padding:8px 12px!important;gap:8px!important}
 .header-tools{gap:8px;padding:8px 12px!important}.header-tools .button{min-height:42px!important}
 .portal-header-collapsed .header-tools{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6px 8px}
 .portal-header-collapsed .header-tools [data-header-toggle]{grid-column:1;grid-row:1}
 .portal-header-collapsed .header-compact-name{grid-column:2;grid-row:1;overflow-wrap:normal}
 .portal-header-collapsed .header-notifications{grid-column:1;grid-row:2;justify-content:center;margin:0}
 .portal-header-collapsed .header-tools [data-header-clock]{grid-column:2;grid-row:2}
 .portal-header-collapsed .header-tools [data-header-emergency]{grid-column:1/-1;grid-row:3}
 .header-tools [data-header-clock]{order:5;flex-basis:100%;width:100%;margin:0}
 .header-tools #portal-clock{font-size:16px!important;text-align:right;box-sizing:border-box}
 body:not(.board) input,body:not(.board) select,body:not(.board) textarea{font-size:16px!important;max-width:100%;min-width:0;box-sizing:border-box}
 body:not(.board) input:not([type=checkbox]):not([type=radio]),body:not(.board) select{min-height:46px}
 .toolbar,.actions{gap:10px;flex-wrap:wrap;min-width:0}.toolbar>*{min-width:0;max-width:100%}
 .toolbar label{flex:1 1 145px}.toolbar input,.toolbar select{width:100%}
 .button,button{min-height:44px;max-width:100%;overflow-wrap:normal;word-break:normal}
 .button{white-space:normal;text-align:center}
 .responsive-table,.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 dialog{width:calc(100% - 24px)!important;max-width:560px;max-height:calc(100dvh - 32px);padding:18px;overflow-y:auto;box-sizing:border-box}
 dialog::backdrop{background:#0e292c99}dialog .actions{display:grid;grid-template-columns:minmax(0,1fr)}
 dialog .button,dialog button:not([aria-label]){white-space:normal;line-height:1.35}
 .terminal-camera-dialog video{width:100%;height:auto;max-height:38dvh;object-fit:contain;border-radius:12px;background:#102b2b}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .stats>a,.stats>div{min-width:0;padding:12px!important}.stats small{font-size:11px!important}.stats strong{font-size:28px!important}
 [data-terminal-code-form]{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
 [data-terminal-code-form] input[name=code]{font-size:28px!important;font-weight:800;text-align:center;letter-spacing:.2em;width:100%;min-height:58px}
 .terminal-qr-button{display:flex;align-items:center;justify-content:center}
 body.admin-workspace .admin-layout{min-width:0;width:100%;margin:0;position:relative;grid-template-columns:minmax(0,1fr)!important}
 body.admin-workspace .admin-nav{position:absolute;inset:0;z-index:40;width:100%;box-sizing:border-box;max-height:100%;overflow:auto;display:flex;flex-direction:column;flex-wrap:nowrap;background:#edf5f1}
 body.admin-workspace .admin-nav a{font-size:16px;min-height:44px;white-space:normal;overflow-wrap:normal}
 body.admin-workspace.admin-menu-collapsed .admin-nav{display:none}
 body.admin-workspace .admin-body{min-width:0;padding:12px 12px 96px}
 .back-button,.floating-back{bottom:max(14px,env(safe-area-inset-bottom))!important;left:10px!important;max-width:43vw}
 #back-to-top{bottom:max(14px,env(safe-area-inset-bottom))!important;right:10px!important;max-width:43vw}
 .terminal-calendar{display:flex!important;overflow-x:auto;padding:6px 3px 12px;gap:8px;scroll-snap-type:x proximity}
 .terminal-calendar .button{flex:0 0 88px;white-space:nowrap;scroll-snap-align:start}
 .terminal-login-method{display:grid;grid-template-columns:1fr 1fr}
 .terminal-services .button{font-weight:800;line-height:1.3}
}
@media(prefers-reduced-motion:reduce){nav a,nav button,.button{transition:none!important;transform:none!important}}

@media(max-width:760px){
 [data-dashboard-results] .table-wrap{background:transparent;border:0;padding:0!important;overflow:visible}
 .mobile-appointments{display:block;width:100%;min-width:0!important;border-collapse:separate}
 .mobile-appointments thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .mobile-appointments tbody{display:grid;gap:14px}
 .mobile-appointments tr{display:block;border:1px solid #cadfd7;border-radius:14px;background:#fff;overflow:hidden;padding:8px 12px;box-shadow:0 3px 12px #163b3608}
 .mobile-appointments td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid #edf2f0;white-space:normal!important;font-size:16px;overflow-wrap:normal}
 .mobile-appointments td::before{content:attr(data-mobile-label);font-weight:750;color:#526b64;font-size:13px;align-self:center}
 .mobile-cell-value{min-width:0;overflow-wrap:anywhere}.mobile-cell-value small{display:block}
 .mobile-appointments td:last-child{display:block;border:0}.mobile-appointments td:last-child::before{display:none}
 .mobile-appointments td:last-child a{display:block;padding:11px;background:#e2f2ed;border-radius:9px;text-align:center;font-weight:750}
 .mobile-appointments td[colspan]{display:block}.mobile-appointments td[colspan]::before{display:none}
 .mobile-appointments .priority-row{border:2px solid #d77732}.mobile-appointments .patient-late-row{border-color:#c42e3a}
}

.portal-menu-toggle, .portal-layout-switch, .portal-mobile-actions { display:none !important; }
html[data-portal-layout="desktop"] .portal-layout-switch { display:inline-flex !important; }
@media screen and (max-width:900px) {
    html:not([data-portal-layout="desktop"])[data-portal-menu-ready] .portal-menu-toggle {
        display:inline-flex !important;
    }
    html:not([data-portal-layout="desktop"]) body:not(.board)>#portal-header.portal-header {
        display:grid !important;
        grid-template-columns:minmax(0,1fr) auto !important;
        gap:6px;
        padding:8px 12px !important;
    }
    html:not([data-portal-layout="desktop"]) #portal-header>.brand { display:flex; grid-row:1; grid-column:1; min-width:0; }
    html:not([data-portal-layout="desktop"]) #portal-header>.authenticated-name { grid-row:2; grid-column:1/-1; }
    html:not([data-portal-layout="desktop"]) #portal-header>#portal-clock { grid-row:3; grid-column:1/-1; }
    html:not([data-portal-layout="desktop"]):not(.header-start-collapsed) body:not(.portal-header-collapsed) #portal-header>.portal-mobile-actions {
        display:flex !important;
        grid-row:1;
        grid-column:2;
        justify-content:flex-end;
        align-items:center;
        gap:6px;
        min-width:0;
    }
    #portal-header .portal-menu-toggle { min-height:44px; }
    #portal-header .language-switch-compact { display:flex; flex-wrap:nowrap; gap:2px; }
    #portal-header .language-switch-compact button {
        display:grid;
        justify-items:center;
        align-content:center;
        min-width:36px;
        min-height:44px;
        padding:3px 4px;
        font-size:11px;
        line-height:1.15;
    }
    html:not([data-portal-layout="desktop"]) #portal-navigation {
        display:grid !important;
        grid-column:1/-1;
        grid-row:4;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
        width:100%;
        min-width:0;
        box-sizing:border-box;
        overflow:visible !important;
        align-items:stretch;
        padding:6px 0;
    }
    html:not([data-portal-layout="desktop"])[data-portal-menu-ready] #portal-header:not([data-menu-open])>#portal-navigation {
        display:none !important;
    }
    html:not([data-portal-layout="desktop"]) #portal-navigation>a,
    html:not([data-portal-layout="desktop"]) #portal-navigation button {
        display:flex;
        justify-content:center;
        align-items:center;
        min-height:44px;
        max-width:100%;
        box-sizing:border-box;
        padding:7px 8px;
        text-align:center;
        white-space:normal !important;
        overflow-wrap:anywhere;
    }
    html:not([data-portal-layout="desktop"]) #portal-navigation>form { grid-column:1/-1; min-width:0; }
    html:not([data-portal-layout="desktop"]) #portal-navigation .language-switch {
        display:none;
    }
    html:not([data-portal-layout="desktop"]) #portal-navigation .portal-layout-switch { display:flex !important; grid-column:1/-1; }
}
@media screen and (max-width:460px) {
    html:not([data-portal-layout="desktop"]) #portal-header>.brand { grid-column:1/-1; }
    html:not([data-portal-layout="desktop"]):not(.header-start-collapsed) body:not(.portal-header-collapsed) #portal-header>.portal-mobile-actions { grid-row:2; grid-column:1/-1; }
    html:not([data-portal-layout="desktop"]) #portal-header>.authenticated-name { grid-row:3; }
    html:not([data-portal-layout="desktop"]) #portal-header>#portal-clock { grid-row:4; }
    html:not([data-portal-layout="desktop"]) #portal-navigation { grid-row:5; }
}

.schedule-sort-mobile { display: none }
.schedule-sort-heading { appearance: none; border: 0; border-radius: 6px; background: transparent; color: inherit; padding: 4px 2px; font: inherit; font-weight: 750; cursor: pointer; text-align: left }
.schedule-sort-heading:hover,.schedule-sort-heading:focus-visible { background: #def2eb; color: #085f55 }
.sort-arrow { margin-left: 4px; color: #086c60; font-weight: 850 }
@media (max-width: 760px) { .schedule-sort-mobile { display: block; margin-bottom: 10px; } .schedule-sort-mobile select { width: 100%; } }
