/* Staff phone layout: one header, one main task, room for readable actions. */
.is-staff .shell>.topbar,
.is-staff .shell:has(.owner)>.topbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);height:auto;min-height:88px;padding:calc(env(safe-area-inset-top) + var(--space-3)) 0 var(--space-5);margin:0}
.is-staff .topbar .wordmark{flex:none}
.is-staff .topbar .brand-logo{width:64px;height:48px}
.is-staff .topbar .staff-name:not([hidden]){display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1);margin-left:auto;padding:var(--space-2) 0 var(--space-2) var(--space-3);max-width:60%;min-width:0;min-height:48px;line-height:1.4;font-size:var(--text-small);overflow-wrap:break-word}
.is-staff .topbar .staff-name small{font-size:var(--text-meta)}
.is-staff::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:var(--bg);z-index:50;pointer-events:none}
.is-staff .owner{padding:0 0 calc(100px + env(safe-area-inset-bottom))}
.is-staff .owner-back,.is-staff .visit-home{display:flex;align-items:center;min-height:44px;margin:0 0 var(--space-3);padding:0;font-size:var(--text-small);letter-spacing:0;text-transform:none}
.is-staff .service-heading{margin:var(--space-1) 0 var(--space-5)}
.is-staff .service-heading h1{font-size:var(--text-heading);margin:0}
.service-home-content,#staff-overview{display:grid;gap:var(--space-5)}
.service-home-content .resume-visit{margin:0;background:var(--attention);border-color:var(--attention);color:var(--on-attention)}
.service-home-content .resume-visit>span:first-child{min-width:0;overflow-wrap:break-word;line-height:1.5}
.service-home-content .resume-visit small{color:var(--on-attention)}
.service-home-content .save-staff-phone{margin:0}
.scan-hero{margin:0 0 var(--space-4)}
.is-staff .scan-hero .scan{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-4);width:100%;min-height:120px;padding:var(--space-6);border-radius:var(--radius-card);text-align:left}
.scan-hero .scan svg{width:36px;height:36px;flex:none}
.scan-hero .scan span{display:block;font-size:var(--text-section);line-height:1.4}
.is-staff .scan>span:last-child{margin:0;min-width:0;line-height:1.4}
.is-staff .service-lookup .scan{display:flex;justify-content:center;align-items:center;gap:var(--space-3);margin:var(--space-4) 0}
.is-staff .service-lookup .scan>span:last-child{font-size:var(--text-body)}
.scan-hero .scan small{display:block;font-size:var(--text-small);font-weight:400;line-height:1.5;margin-top:var(--space-2);opacity:.75}
.service-lookup .scan small{display:none}
.service-lookup .scan-hero small{display:block}
.is-staff .service-lookup{margin:0 0 var(--space-6)}
.lookup-heading{display:none}
.is-searching .lookup-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}
.lookup-heading h2{font-size:var(--text-section);margin:0}
.lookup-heading button{min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-control);font-size:var(--text-small)}
.is-searching .service-heading,.is-searching .scan-hero,.is-searching .service-home-content,.is-searching .service-bottom,
.is-searching .staff-member,.is-searching .group-members>summary,.is-searching .group-members>p,.is-searching .table-heading,.is-searching .visit-receipt,
.is-searching .service-lookup>summary,.is-searching .service-lookup>.scan{display:none!important}
.lookup-hint{font-size:var(--text-small);color:var(--muted);line-height:1.6;margin:var(--space-5) 0}
.is-staff .search-result{gap:var(--space-4);padding:18px var(--space-3);min-height:68px;border-bottom:1px solid var(--line);border-radius:0}
.search-result strong{min-width:0;overflow-wrap:break-word}
.search-result>span{flex:none;font-size:var(--text-small);white-space:normal}
.shift-card-heading{align-items:flex-start;flex-wrap:wrap;gap:var(--space-3)}
.shift-card-heading>.card-corner-action{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink);font-size:var(--text-small);white-space:normal}
.shift-card-heading h2{padding-top:var(--space-2)}
.shift-row{padding:18px 0}
.shift-card .shift-help{margin:var(--space-2) 0 18px}
.tonight-overview{background:var(--surface);color:var(--ink)}
.tonight-overview .shift-card-heading p,.tonight-overview .shift-empty,.tonight-overview .shift-counts,.tonight-overview .shift-row small,.tonight-overview .row-chevron{color:var(--muted)}
.tonight-overview .shift-counts strong,.tonight-overview .card-corner-action{color:var(--ink)}
.tonight-overview .shift-row,.tonight-overview .card-corner-action{border-color:var(--line)}
.shift-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin-bottom:var(--space-5)}
.shift-counts strong{font-size:var(--text-title)}
.is-staff .staff-reward{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);min-width:0;padding:var(--space-5) 0}
.is-staff .staff-reward>div{width:auto;min-width:0;overflow-wrap:normal;word-break:normal}
.staff-reward strong,.staff-reward small{display:block;max-width:100%;overflow-wrap:break-word;word-break:normal}
.is-staff .staff-reward button{width:100%;min-width:0;white-space:normal}
.is-staff .visit-receipt{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.visit-receipt p{flex:1 1 200px;min-width:0;overflow-wrap:break-word}
.visit-receipt button{flex:none}
.is-staff .staff-member-head{grid-template-columns:minmax(0,1fr) 44px;gap:var(--space-4);padding:var(--space-2) 0 var(--space-6);align-items:start!important}
.is-staff .staff-member-head>div:first-child{grid-column:1;grid-row:1}
.is-staff .staff-member-head .remove-member{grid-column:2;grid-row:1}
.is-staff .staff-member-head .staff-progress{grid-column:1/-1;grid-row:2;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4);margin:0}
.is-staff .staff-member-head .staff-progress>span{max-width:none;font-size:var(--text-meta)}
.is-staff .group-members .service-lookup{margin:var(--space-4) 0 0}
.is-staff #owner-content>h1{font-size:var(--text-title);line-height:1.2;letter-spacing:-.035em;margin:var(--space-1) 0 var(--space-6)}
.is-staff #owner-content>.owner-back{margin-bottom:var(--space-6)}
.is-staff .owner .section-heading{flex-wrap:wrap;gap:var(--space-3);margin:0 0 var(--space-5)}
.is-staff .owner .section-heading h2{flex:1 1 150px;font-size:var(--text-heading);line-height:1.3;letter-spacing:-.025em;overflow-wrap:normal;margin:0}
.is-staff .owner .section-heading button{flex:none;min-height:44px;padding:10px var(--space-4);border:1px solid var(--line);border-radius:var(--radius-control);letter-spacing:0}
.is-staff .owner .config-row>span:first-child{min-width:0;flex:1;overflow-wrap:break-word}
.is-staff .owner .config-row>span:only-child{white-space:normal;display:block;flex:1}
.is-staff .staff-access-note{margin:0 0 var(--space-6)}
.staff-access-note summary{margin-top:var(--space-3);line-height:1.5}
.staff-access-note details p{margin:var(--space-3) 0 0}
.is-staff .owner-hub{padding-top:0;gap:var(--space-4)}
.is-staff .owner-reservations{position:relative;background:var(--surface);color:var(--ink);min-height:112px!important;padding-right:56px!important;text-decoration:none}
.is-staff .owner-reservations>small{color:var(--muted)}
.is-staff .owner-reservations>.ui-icon{position:absolute;right:20px;top:22px}
.calendar-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:var(--space-3);margin:var(--space-5) 0 var(--space-6)}
.calendar-tools button{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;min-height:120px;padding:18px;border-radius:var(--radius-card);background:var(--surface);text-align:left;line-height:1.4}
.calendar-tools strong{font-size:var(--text-body)}
.calendar-tools small{font-size:var(--text-small);color:var(--muted);font-weight:400}
.calendar-tools .calendar-special{background:var(--surface);color:var(--ink)}
.calendar-tools .calendar-special small{color:var(--muted)}
.calendar-summary{border-radius:var(--radius-card);padding:var(--space-2) 18px;background:var(--surface);margin:var(--space-4) 0 var(--space-6)}
.calendar-summary .config-row:last-child{border-bottom:0}
.calendar-change-form{display:grid;gap:18px}
.calendar-change-form label{margin:0;min-width:0}
.calendar-change-form .calendar-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.calendar-change-form input,.calendar-change-form select,.calendar-change-form textarea{min-width:0;width:100%}
.calendar-change-form details{border-top:1px solid var(--line);padding-top:var(--space-3)}
.calendar-change-form summary{min-height:44px;align-content:center;cursor:pointer}
.calendar-change-form details label{margin:14px 0}
.calendar-impact{font-size:var(--text-small);line-height:1.6;color:var(--muted);margin:0}
.booking-night-status{padding:var(--space-4) var(--space-5);margin:var(--space-5) 0;border-radius:var(--radius-card);background:var(--surface);font-size:var(--text-small);line-height:1.6}
.booking-night-status p{margin:var(--space-2) 0 0;color:var(--muted)}
.booking-night-status.is-closed{border:1px solid var(--orange)}
.booking-night-status.is-closed strong{color:var(--attention)}
.calendar-change-form .check{display:flex;gap:10px;align-items:center}
.calendar-change-form .check input{width:22px;min-width:22px;height:22px}
.is-staff .config-row>span:last-child{display:flex;gap:var(--space-2);align-items:center;flex:0 1 auto;min-width:0;max-width:40%;white-space:normal}
@media(max-width:360px){.scan-hero .scan span{font-size:var(--text-section)}
.is-staff .scan-hero .scan{gap:var(--space-4);padding:var(--space-5)}
.calendar-tools{grid-template-columns:1fr}
.calendar-tools button{min-height:96px}
}

/* The PDF review uses the same surface and action hierarchy across roles. */
.service-lookup{padding:var(--space-4);background:var(--surface);border-radius:var(--radius-card)}
#search-results:not(:empty),#owner-results:not(:empty){margin-top:var(--space-4)}
.lookup-heading{gap:var(--space-4);margin-bottom:var(--space-3)}
.is-staff .member-help,.is-staff .member-taste-summary,.is-staff .staff-rewards{margin-top:var(--space-4);padding:var(--space-5);border-radius:var(--radius-card);background:var(--surface)}
.is-staff .member-help summary{min-height:48px;display:flex;align-items:center;font-weight:600;cursor:pointer}
.is-staff .member-help button{width:100%;margin-top:var(--space-3);min-height:48px}
.is-staff .staff-rewards h3{font-size:var(--text-body);margin:0}
.is-staff .staff-reward{border-top:1px solid var(--line);margin-top:var(--space-3);padding:var(--space-4) 0 0}
.is-staff .tags .tag{min-height:48px}
.group-members[hidden]{display:none}
.account-actions{display:grid;gap:var(--space-3);margin-top:var(--space-5)}
.account-actions button{width:100%;margin:0;min-height:48px}
.booking-summary .booking-counts{margin:var(--space-4) 0 0}
.booking-summary .booking-night-status{margin:0;padding:0;background:none;border:0}
.booking-date-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.booking-date-heading details{min-width:0;max-width:100%}
.booking-date-heading summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--muted)}
.reservation-diary>#add-reservation{margin:var(--space-4) 0 0}
.owner-tile{position:relative}
.owner-tile>.ui-icon{position:absolute;top:var(--space-4);right:var(--space-4)}

.journey-card{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);margin:var(--space-4) 0;min-height:96px}
.staff-rota-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-4) 0}
.staff-access-note{margin:var(--space-4) 0}
.calendar-form-row label[hidden]{display:none}
.booking-fields-row .check,.guest-flags .check{display:flex;align-items:center;gap:var(--space-3)}
.guest-flags .check input{width:22px;height:22px;flex:none;margin:0}
