/* GastroZeit design foundation · local system fonts, no external assets. */
:root{
 --gz-cream:#f5f2ea;--gz-white:#fffefd;--gz-forest:#173d35;--gz-petrol:#285d62;
 --gz-ink:#203c35;--gz-muted:#536b62;--gz-line:#d9dfd4;--gz-sage:#e7eee5;
 --gz-sand:#eee7d8;--gz-error:#8c2829;--gz-focus:#9c6f24;
 --gz-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --gz-display:Georgia,"Times New Roman",serif;
 --gz-space-1:4px;--gz-space-2:8px;--gz-space-3:12px;--gz-space-4:16px;
 --gz-space-5:20px;--gz-space-6:24px;--gz-space-8:32px;--gz-space-10:40px;--gz-space-12:48px;
 --gz-card-radius:18px;--gz-control-radius:12px;--gz-target:52px;
 --gz-shadow:0 4px 18px #173d3508;--gz-shadow-raised:0 8px 24px #173d3510;
}
*{box-sizing:border-box}
body{margin:0;background:var(--gz-cream);color:var(--gz-ink);font:17px/1.55 var(--gz-font);-webkit-font-smoothing:antialiased}
main{max-width:1120px;margin:auto;padding:var(--gz-space-10) var(--gz-space-8) var(--gz-space-6)}
.brand{display:flex;justify-content:space-between;align-items:center;gap:var(--gz-space-6);padding-bottom:var(--gz-space-8);border-bottom:1px solid var(--gz-line);margin-bottom:var(--gz-space-12)}
.brand h1{font-size:1.9rem;font-weight:650;line-height:1.15;letter-spacing:-1.2px;margin:0;color:var(--gz-forest)}
.brand h1 span{color:var(--gz-petrol)}
.brand p{margin:6px 0 0;color:var(--gz-muted);font-size:.85rem;letter-spacing:.02em}
.location{background:var(--gz-forest);color:var(--gz-white);min-width:210px;max-width:48%;padding:var(--gz-space-4) var(--gz-space-6);border-radius:var(--gz-control-radius)}
.location>span{display:block;color:#d0dfd4;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:650}
.brand .site-name{font-size:1.2rem;font-weight:600;line-height:1.35;letter-spacing:0;color:var(--gz-white);margin-top:5px;overflow-wrap:anywhere}
.location:has(.site-name:empty){display:none}
h2{font-size:1.8rem;line-height:1.25;letter-spacing:-.5px;margin:var(--gz-space-2) 0 var(--gz-space-3)}
#screen:has(.names)>h2{font:400 clamp(1.9rem,4vw,2.65rem)/1.18 var(--gz-display);letter-spacing:-.025em;color:var(--gz-forest);margin-bottom:var(--gz-space-4)}
#screen>p{color:var(--gz-muted);max-width:620px;margin-top:0}
#screen>.eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.19em;color:var(--gz-petrol);margin-bottom:var(--gz-space-3)}
.search{max-width:520px;margin:var(--gz-space-8) 0 var(--gz-space-6);font-size:.85rem;font-weight:600;color:var(--gz-ink)}
.search input{font-size:1rem;font-weight:400;min-height:56px;background:var(--gz-white);border-color:#bdc9bd;box-shadow:0 2px 5px #173d3503}
input::placeholder{color:var(--gz-muted);opacity:1}
.names{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gz-space-5)}
button,input,select{font:inherit;max-width:100%;min-width:0;padding:14px 18px;border:1px solid #b5c4b8;border-radius:var(--gz-control-radius)}
input,select{width:100%;background:var(--gz-white);color:var(--gz-ink)}
button{cursor:pointer;min-height:var(--gz-target);background:var(--gz-forest);color:var(--gz-white);font-weight:600}
button:hover{background:var(--gz-petrol)}
button:disabled{opacity:.5;cursor:wait}
button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--gz-focus);outline-offset:4px}
.name{display:flex;align-items:center;gap:var(--gz-space-4);min-height:120px;padding:var(--gz-space-6);background:var(--gz-white);color:var(--gz-forest);border:1px solid #dde3d8;border-radius:var(--gz-card-radius);box-shadow:var(--gz-shadow);text-align:left;overflow-wrap:anywhere;font-size:1.1rem;line-height:1.4;font-weight:600}
.name:hover{background:#f2f6ee;border-color:#9db5a5;box-shadow:var(--gz-shadow-raised)}
.name:active{background:var(--gz-sage)}
.initials{display:grid;place-items:center;flex:0 0 50px;height:50px;background:var(--gz-sage);color:var(--gz-forest);border-radius:14px;font-size:.9rem;letter-spacing:.04em;font-weight:650}
.name:nth-child(3n+2) .initials{background:#e4eded;color:var(--gz-petrol)}
.name:nth-child(3n) .initials{background:var(--gz-sand);color:#65543b}
form,.actions{display:grid;gap:var(--gz-space-4);margin:var(--gz-space-6) 0}
form{max-width:540px}label{display:grid;gap:var(--gz-space-2)}
#message{white-space:pre-wrap;overflow-wrap:anywhere}
#message:empty{display:none}
#message:not(:empty){padding:14px 18px;background:var(--gz-sage);border-radius:var(--gz-control-radius)}
.error{color:var(--gz-error)}table{border-collapse:collapse;width:100%;font-size:.9rem}td{padding:var(--gz-space-2);overflow-wrap:anywhere}
details{margin:var(--gz-space-3) 0}summary{cursor:pointer;min-height:44px;padding:10px 0}
.session{background:var(--gz-white);padding:18px;border-radius:var(--gz-control-radius)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem}
.employee-access{border-top:1px solid var(--gz-line);margin-top:var(--gz-space-8);padding-top:18px}
.employee-access h2{font-size:1.2rem}.employee-access button{background:var(--gz-white);color:var(--gz-forest)}
#login-origin,#admin-pin-format{margin:0;color:var(--gz-muted);font-size:.9rem}form details{margin:0}
footer{display:flex;justify-content:space-between;align-items:center;gap:var(--gz-space-5);flex-wrap:wrap;margin-top:var(--gz-space-12);padding-top:var(--gz-space-6);border-top:1px solid var(--gz-line)}
#administration{background:transparent;color:var(--gz-petrol);border-color:#b9c9c1;font-size:.85rem;padding:12px 18px}
#administration:hover{background:#e5eae1;border-color:var(--gz-petrol)}
#administration span{margin-right:var(--gz-space-2)}.local-note{font-size:.7rem;color:var(--gz-muted);margin:0}
[hidden]{display:none!important}
@media(max-width:900px){.names{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){main{padding:var(--gz-space-6) var(--gz-space-5)}.brand{align-items:flex-start;flex-direction:column;gap:var(--gz-space-6);margin-bottom:var(--gz-space-8);padding-bottom:var(--gz-space-6)}.brand h1{font-size:1.7rem}.location{max-width:100%;min-width:0;width:100%;padding:var(--gz-space-4) var(--gz-space-5)}.brand .site-name{font-size:1.2rem}.names{grid-template-columns:minmax(0,1fr);gap:var(--gz-space-3)}.name{min-height:100px;padding:var(--gz-space-5);font-size:1.1rem}.search{margin-top:var(--gz-space-6)}footer{margin-top:var(--gz-space-8);gap:var(--gz-space-4)}.local-note{width:100%}h2{font-size:1.55rem}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s,box-shadow .15s}}

/* Personal booking view only; roster and administration keep their own layouts. */
main:has(.employee-dashboard) .brand{margin-bottom:var(--gz-space-6);padding-bottom:var(--gz-space-5)}
main:has(.employee-dashboard) .brand .location{display:none}
.employee-dashboard{display:grid;gap:var(--gz-space-6);min-width:0}
.employee-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--gz-space-5);flex-wrap:wrap}
.employee-identity{min-width:0}.employee-identity>p:first-child{font-size:.7rem;font-weight:700;letter-spacing:.15em;color:var(--gz-petrol);margin:0 0 8px}
.employee-identity h2{overflow-wrap:anywhere;margin:0 0 8px}.employee-identity>p:last-child{color:var(--gz-muted);margin:0;overflow-wrap:anywhere}
.employee-status{display:inline-flex;align-items:center;padding:10px 16px;border-radius:100px;font-size:.9rem;font-weight:650;background:var(--gz-sand);color:var(--gz-forest);max-width:100%;overflow-wrap:anywhere}
.employee-status.is-working{background:var(--gz-sage)}.employee-status.is-paused{background:#e4eded;color:var(--gz-petrol)}
.employee-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gz-space-4)}
.employee-metric{padding:var(--gz-space-6);background:var(--gz-white);border:1px solid var(--gz-line);border-radius:var(--gz-card-radius);box-shadow:var(--gz-shadow);min-width:0}
.employee-metric h3{font-size:.9rem;color:var(--gz-muted);font-weight:500;margin:0 0 10px}.employee-metric strong{display:block;font-size:1.2rem;line-height:1.4;color:var(--gz-forest);overflow-wrap:anywhere}.employee-metric p{font-size:.9rem;color:var(--gz-muted);margin:10px 0 0}
.employee-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gz-space-4)}
.employee-actions:has(>button:only-child){grid-template-columns:minmax(0,1fr)}
.employee-action{min-height:76px;font-size:1.2rem;white-space:normal;overflow-wrap:anywhere}.employee-action-secondary{background:var(--gz-white);color:var(--gz-petrol);border-color:#9bb6af}.employee-action-secondary:hover{background:var(--gz-sage)}
.employee-review-note{margin:0;padding:14px 18px;border-left:3px solid var(--gz-focus);background:var(--gz-sand);border-radius:8px;color:var(--gz-ink);font-size:.9rem}
.employee-navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gz-space-4)}
.employee-nav-link{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;min-height:110px;padding:20px;color:var(--gz-forest);background:var(--gz-white);border:1px solid var(--gz-line);border-radius:var(--gz-control-radius);text-decoration:none;overflow-wrap:anywhere}
.employee-nav-link:hover{background:var(--gz-sage);border-color:#9db5a5}.employee-nav-link strong{font-size:1.05rem}.employee-nav-link span{color:var(--gz-muted);font-size:.85rem}
.employee-history{min-width:0}.employee-history h3{margin:4px 0 16px;font-size:1.2rem}.employee-history>p{color:var(--gz-muted)}
.employee-entry{background:var(--gz-white);border:1px solid var(--gz-line);border-radius:var(--gz-control-radius);margin:0 0 12px;padding:0 20px;overflow-wrap:anywhere}
.employee-entry-heading{min-height:64px;padding:18px 0;font-weight:600;color:var(--gz-forest)}.employee-entry-heading span+span{display:inline-block;margin-left:16px;font-size:.85rem;color:var(--gz-muted)}
.employee-entry p,.employee-breaks{font-size:.9rem}.employee-entry p:last-child{padding-bottom:12px}.employee-breaks{padding-left:24px;color:var(--gz-muted)}.employee-breaks li{margin:8px 0}
.employee-signout{justify-self:start;background:transparent;color:var(--gz-muted);font-size:.9rem;min-height:52px}.employee-signout:hover{background:var(--gz-sage);color:var(--gz-forest)}
@media(max-width:650px){.employee-metrics,.employee-navigation{grid-template-columns:minmax(0,1fr)}.employee-metric{padding:20px}.employee-nav-link{min-height:84px}.employee-entry-heading span+span{display:block;margin:6px 0 0}.employee-heading{gap:14px}}
@media(max-width:390px){.employee-actions{grid-template-columns:minmax(0,1fr)}}

.brand .brand-claim{font-size:.9rem;letter-spacing:.03em;color:var(--gz-muted)}
