@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#1e2925;--cream:#f5efe4;--paper:#fffdf8;--orange:#ff7849;--green:#1d9b6c;--mint:#d9f1e6;--line:#e8e1d6;--muted:#7c837e}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;min-height:100vh}button,input,select{font:inherit}.hidden{display:none!important}
.auth{min-height:100vh;padding:max(28px,env(safe-area-inset-top)) 24px 36px;display:flex;flex-direction:column;max-width:520px;margin:auto}.auth-brand{display:flex;align-items:center;gap:10px;font:800 17px Manrope}.auth-brand span{display:grid;place-items:center;width:35px;height:35px;border-radius:13px;background:var(--ink);color:white}.auth-art{margin:44px 0 36px;min-height:290px;border-radius:38px;background:linear-gradient(145deg,#ffd8b9,#ff8761);position:relative;overflow:hidden;padding:30px;display:flex;align-items:flex-end}.auth-art i{position:absolute;width:220px;height:220px;border:50px solid #ffffff30;border-radius:50%;right:-50px;top:-50px}.auth-art b{font-size:85px;position:absolute;right:24px;top:70px;transform:rotate(7deg)}.auth-art em{font:800 35px/1.05 Manrope;font-style:normal;color:#552d1f;position:relative}
form{display:grid;gap:12px}label{font-weight:700;display:grid;gap:8px}input,select{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:16px;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 4px #ff784920}form button,.now button{border:0;border-radius:17px;padding:16px;background:var(--ink);color:white;font-weight:800}.error{color:#b62d2d}
main{max-width:720px;margin:auto;padding:max(24px,env(safe-area-inset-top)) 18px max(36px,env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:flex-start;margin:8px 3px 24px}header small{font-weight:700;color:var(--orange)}h1,h2,h3{font-family:Manrope;margin:0}h1{font-size:29px;line-height:1.1;margin-top:5px}header button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--paper);font-size:20px}.shift-card{background:var(--ink);color:white;border-radius:30px;padding:22px;box-shadow:0 18px 40px #21372d20}.shift-top{display:flex;align-items:center;gap:9px;color:#cfe8dd}.shift-top>span{font-size:12px;font-weight:800;text-transform:uppercase}.shift-top i{width:7px;height:7px;background:#50d597;border-radius:50%;box-shadow:0 0 0 5px #50d59720}.shift-top small{margin-left:auto}.shift-main{display:grid;gap:3px;margin:25px 0}.shift-main strong{font:800 26px Manrope}.shift-main span{color:#b8c4bf}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats span{background:#ffffff0d;border:1px solid #ffffff12;border-radius:16px;padding:11px;font-size:11px;color:#b8c4bf}.stats b{display:block;color:white;font:800 21px Manrope}
.now{background:linear-gradient(135deg,#fff3ea,#ffd9c5);border:1px solid #ffc9ac;border-radius:27px;padding:20px;margin-top:16px}.now>small,.section-title small{color:var(--orange);font-weight:800;font-size:11px}.pet{display:flex;align-items:center;gap:12px;margin:12px 0 18px}.pet>span{width:54px;height:54px;border-radius:19px;background:white;display:grid;place-items:center;font-size:25px}.pet div{flex:1}.pet h2{font-size:20px}.pet p{margin:3px 0 0;color:#705f56}.pet time{font-weight:800}.now button{width:100%;background:var(--orange)}
.day{margin-top:28px}.section-title{display:flex;align-items:end;justify-content:space-between;margin:0 3px 13px}.section-title h2{font-size:23px}.section-title button{border:0;background:none;color:var(--green);font-weight:800}.appointment{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--line);padding:14px;border-radius:20px;margin-bottom:9px}.appointment .time{align-self:stretch;display:grid;place-items:center;background:#f2eee6;border-radius:14px;font-weight:800;font-size:13px}.appointment strong{display:block}.appointment p{margin:3px 0 0;color:var(--muted);font-size:13px}.appointment .badge{font-size:11px;font-weight:800;padding:7px 9px;border-radius:999px;background:#eee;color:#67706b}.appointment .badge.checked_in{background:#fff0d8;color:#a65f00}.appointment .badge.in_service{background:#dbeeff;color:#1764a6}.appointment .badge.completed{background:var(--mint);color:#14764f}.empty{text-align:center;background:var(--paper);border:1px dashed #d6cec1;border-radius:24px;padding:42px 20px}.empty span{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--mint);color:var(--green);font-size:25px}.empty h3{margin-top:12px}.empty p{color:var(--muted)}nav{margin-bottom:14px}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:white;border-radius:15px;padding:12px 18px;box-shadow:0 12px 30px #0003;z-index:3}
.shift-progress{display:grid;grid-template-columns:repeat(3,1fr);margin:15px 5px 2px}.shift-progress span{position:relative;display:grid;justify-items:center;gap:5px;color:#9a9f9b;font-size:10px}.shift-progress span:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 18px);right:calc(-50% + 18px);height:2px;background:#ddd8cf}.shift-progress i{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;border:2px solid #ddd8cf;border-radius:50%;background:var(--cream);font-style:normal;font-weight:900}.shift-progress b{font-weight:800}.shift-progress span.active,.shift-progress span.complete{color:var(--green)}.shift-progress span.active i{border-color:var(--green);color:white;background:var(--green);box-shadow:0 0 0 5px #1d9b6c16}.shift-progress span.complete i{border-color:var(--green);color:var(--green);background:var(--mint)}.shift-progress span.complete:not(:last-child)::after{background:var(--green)}
.appointment[aria-current="true"]{border-color:#ffad87;box-shadow:0 8px 24px #ff784916}.appointment{transition:transform .18s ease,border-color .18s ease}.appointment:active{transform:scale(.99)}
@media(min-width:700px){main{padding-top:50px}.auth{justify-content:center}.auth-art{min-height:240px;margin-top:25px}}
