@font-face{font-family:Amatic;src:url('/amatic-sc-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Amatic;src:url('/amatic-sc-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;color:#193a30;background:#f5f3ec;font-size:16px}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:inherit}
:focus-visible{outline:3px solid #8cac74;outline-offset:2px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#17382f;padding:.5rem max(1rem,calc((100vw - 1120px)/2));color:white;min-height:88px}
.brand{display:flex;align-items:center;gap:.35rem;background:#f5ecdf;color:#3f8990;border-radius:16px;padding:.3rem .8rem .3rem .5rem;text-decoration:none;min-height:72px}
.brand-dog{position:relative;display:block;overflow:hidden;width:58px;height:61px;flex:0 0 58px}
.brand-dog img{position:absolute;max-width:none;width:500px;height:auto;left:-227px;top:-7px}
.brand-name{font-family:Amatic,"Segoe UI",sans-serif;font-weight:700;font-size:2.55rem;line-height:1;white-space:nowrap}
.account{display:flex;align-items:center;gap:.75rem;font-size:.88rem}
.topbar button{background:transparent;border:1px solid #b6c8bb;border-radius:12px;color:white;padding:.55rem .8rem}
.shell{max-width:1120px;margin:0 auto;padding:1.5rem 1rem 4rem}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:Amatic,"Segoe UI",sans-serif;letter-spacing:.01em}
h1{font-size:3.2rem;line-height:1.08;margin-bottom:.35rem}
h2{font-size:2.3rem;line-height:1.1;margin-bottom:1rem}
h3{font-size:1.1rem;margin-bottom:.5rem}
.intro{color:#60756c;margin-bottom:1.4rem;line-height:1.5}
.panel{background:#fffefa;border:1px solid #d8e0d9;border-radius:22px;padding:1.25rem;margin-bottom:1rem;box-shadow:0 3px 14px #17382f09}
.notice{border-radius:12px;padding:.85rem 1rem;background:#e9efea;color:#315a48;line-height:1.5;margin:.8rem 0}
.error{background:#fff0ec;color:#8c3428}
.muted{color:#6b7d72}
.tag{display:inline-block;border-radius:100px;padding:.2rem .6rem;background:#eef3e3;color:#265640;font-size:.85rem}
.tag.pending{background:#fff0d9;color:#775923}
.tag.declined{background:#fbe8e3;color:#914633}
.tag.done{background:#e0f2ea;color:#236044}
.primary,.secondary{border-radius:12px;padding:.68rem 1rem;min-height:44px;font-weight:650}
.primary{border:1px solid #17382f;background:#17382f;color:white}
.secondary{border:1px solid #c4d0c6;background:#fffefa;color:#17382f}
.textbutton{border:0;background:transparent;color:#236c52;text-decoration:underline;padding:.4rem}
.stack{display:grid;gap:.8rem}
.row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.spread{justify-content:space-between}
label{display:block;font-weight:600;font-size:.9rem}
input[type=email],input[type=text],input[type=date],input[type=password],input[type=month],select{display:block;width:100%;margin-top:.35rem;padding:.73rem;border:1px solid #b8c8bc;border-radius:11px;color:#193a30;background:white;min-height:44px}
input[type=checkbox]{accent-color:#17382f;width:1.1rem;height:1.1rem}
.login{max-width:480px;margin:3rem auto}
.login .panel{padding:1.7rem}
.nav{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.2rem 0}
.nav button.active{background:#17382f;color:white}
.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1rem 0}
.summary .panel{padding:1rem}
.number{font-size:1.8rem;font-weight:750}
.summary .muted{font-size:.85rem}
.dog-list{display:flex;gap:.65rem;flex-wrap:wrap}
.dog{display:flex;align-items:center;gap:.7rem;background:#f1f4eb;border:1px solid #dce5d2;padding:.5rem .85rem;border-radius:13px}
.dog img{width:48px;height:42px;object-fit:cover;object-position:center;border-radius:10px}
.dog-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;max-width:700px}
.dog-photo-card{min-width:0;background:#f1f4eb;border:1px solid #dce5d2;border-radius:16px;overflow:hidden}
.dog-photo-card h3{padding:.8rem 1rem;margin:0;font-size:1.15rem;overflow-wrap:anywhere}
.dog-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;background:#f1f4eb;border-radius:14px}
.dog-photo-card .dog-photo{border-radius:0}
.dog-photo.placeholder{object-fit:contain;padding:1.4rem}
.dog-photo-editor{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.dog-photo-editor .dog-photo{width:160px;max-width:100%;flex:0 1 160px}
.photo-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}
.photo-controls:empty{display:none}
.photo-help{flex-basis:100%;font-size:.8rem;margin:0;line-height:1.4}
.booking,.pending-item{padding:.9rem 0;border-bottom:1px solid #e5eae4}
.booking:last-child,.pending-item:last-child{border-bottom:0}
.week-controls{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;margin:1rem 0}
.day{border:1px solid #d0dad0;border-radius:13px;background:#fffefa;color:#193a30;padding:.75rem .35rem;min-height:78px;text-align:center}
.day.selected{border:2px solid #17382f;background:#e7eedc}
.day strong{display:block;font-size:1.15rem}
.day small{color:#63786c}
.period{margin:1.5rem 0}
.walk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.walk{min-width:0;margin:0;padding:1rem}
.walk .heading{display:flex;gap:.5rem;justify-content:space-between;align-items:center}
.walk .booking{font-size:.92rem;min-width:0}
.walk .address{display:block;color:#60736a;overflow-wrap:anywhere}
.walk .dog-card{border:1px solid #c2d1c3;border-radius:14px;background:#fff;padding:.8rem;margin-top:.75rem;display:grid;gap:.5rem;box-shadow:0 2px 5px #193a3006}
.walk .dog-card:last-child{border-bottom:1px solid #c2d1c3}
.dog-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}
.dog-card-name{font-size:1rem;line-height:1.3;overflow-wrap:anywhere}
.drag-grip{color:#849782;font-size:1.25rem;line-height:1;flex-shrink:0}
.dog-card.can-drag{cursor:grab}
.dog-card.is-dragging{opacity:.5}
.walk.is-drop-target{outline:3px solid #85a76d;outline-offset:2px;background:#eef4e6}
.dog-move-control>span{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dog-move-control select{margin-top:0}
.dog-card .mini{width:fit-content;max-width:100%;font-size:.8rem;min-height:36px}
.planning-help{font-size:.9rem;margin:1rem 0 0}
.planning-move-confirmation button{margin-right:.5rem;margin-top:.5rem}
@media(max-width:720px){.walk .dog-card{padding:.6rem;border-radius:11px;gap:.45rem}.dog-card-name{font-size:.9rem}.dog-card .address{font-size:.76rem;line-height:1.4}.dog-card .mini{font-size:.74rem;min-height:40px}.planning-help{font-size:.8rem}}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.5rem}
.controls select{font-size:.9rem}
.date-control{max-width:220px}
.mini{padding:.35rem .55rem;min-height:38px}
@media(max-width:720px){.topbar{min-height:75px}.brand{min-height:62px;padding:.15rem .45rem}.brand-dog{width:45px;flex-basis:45px}.brand-dog img{width:400px;left:-182px;top:1px}.brand-name{font-size:1.85rem}.account{font-size:.76rem}.shell{padding-top:1rem}.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.day{padding:.5rem .05rem;min-height:68px;font-size:.76rem}.day strong{font-size:.95rem}.walk-grid{grid-template-columns:1fr 1fr;gap:.4rem}.walk{padding:.65rem}.walk .heading{display:block}.walk .booking{font-size:.81rem}.summary .panel{padding:.6rem}.number{font-size:1.4rem}.summary .muted{font-size:.72rem}.controls{grid-template-columns:1fr}}
@media(max-width:480px){.brand-name{font-size:1.55rem}.brand{gap:.1rem}.brand-dog{width:38px;flex-basis:38px}.topbar{gap:.35rem}.account span{display:none}}
@media(max-width:380px){.walk-grid{gap:.3rem}.walk{padding:.48rem}.day small{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

.panel,.stack,label,.heading{min-width:0}
.customer-access,.invitation-confirmation{overflow-wrap:anywhere}
.customer-access{display:grid;gap:.5rem;margin-top:.75rem}
.invitation-confirmation{padding:.75rem;border:1px solid #cbd9cc;border-radius:12px}
.invitation-confirmation button{margin:.25rem .4rem .25rem 0}
.import-mapping{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.import-table-scroll{max-width:100%;overflow:auto}
.import-preview{border-collapse:collapse;width:100%;min-width:850px;font-size:.9rem}
.import-preview th,.import-preview td{padding:.55rem;text-align:left;vertical-align:top;border-bottom:1px solid #cbd9cc;overflow-wrap:anywhere;max-width:220px}
.excel-import select{max-width:100%;min-width:0}
@media(max-width:600px){.import-mapping{grid-template-columns:1fr}.panel p{overflow-wrap:anywhere}.customer-access button{max-width:100%;white-space:normal}}
.walk strong,.heading strong,.booking strong,.account span{overflow-wrap:anywhere}
.walk select{min-width:0;max-width:100%;font-size:.8rem;padding:.55rem .25rem}
@media(max-width:480px){.week-controls{gap:.5rem;flex-wrap:wrap}.week-controls strong{font-size:.9rem}.shell{padding-left:.6rem;padding-right:.6rem}.login{margin:1.5rem auto}.login .panel{padding:1rem}.day small{display:block;overflow-wrap:anywhere;font-size:.66rem}.walk .booking{padding:.65rem 0}.summary .muted{overflow-wrap:anywhere}}
@media(max-width:480px){.walk .booking.dog-card{padding:.55rem}.dog-card .row{gap:.35rem}.dog-card .mini{padding:.35rem .45rem}}
@media(max-width:720px){.walk .heading{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.25rem .5rem}.walk .heading .muted{font-size:.8rem}}
@media(max-width:380px){.topbar{padding:.5rem .6rem;flex-wrap:wrap}.account{gap:.4rem;margin-left:auto}.topbar button{padding:.5rem .6rem}}

/* Restore the approved prototype's quiet hierarchy with the real app's controls. */
:root{background:#f0f2ed;color:#17382f}
.topbar{background:#f4ecdf;color:#17382f;border-bottom:1px solid #dce1d7;min-height:124px;padding:1rem max(1.25rem,calc((100vw - 1120px)/2));gap:1rem}
.brand{background:transparent;border-radius:0;padding:0;gap:.7rem;min-height:90px}
.brand-dog{width:74px;height:94px;flex-basis:74px}
.brand-dog img{width:660px;left:-299px;top:-3px}
.brand-name{font-size:3.7rem;line-height:.85;letter-spacing:-.025em;white-space:normal;color:#41868a}
.account{gap:.5rem}
.account>span{display:none}
.topbar .header-icon{position:relative;width:44px;height:44px;padding:11px;background:#fffefa;color:#17382f;border:1px solid #d6ded6;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.header-icon svg{width:22px;height:22px}
.notification-badge{position:absolute;top:1px;right:0;background:#c77851;color:white;border-radius:50%;min-width:18px;height:18px;padding:1px 4px;font-size:.7rem;line-height:16px}
.shell{padding:1.5rem 1.25rem 3rem}
h1,h2{font-weight:400}
h1{font-size:3rem}
.eyebrow{color:#728076;letter-spacing:.12em;font-size:.78rem;font-weight:750;text-transform:uppercase;margin-bottom:.45rem}
.primary,.secondary{border-radius:24px}
.primary{font-weight:600}
.secondary{background:#f1f3ee}
.bottom-nav{gap:.5rem;margin:0 0 1.5rem}
.bottom-nav button{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fffefa;border:1px solid #d8e0d9;color:#718277}
.bottom-nav button.active{background:#e8efdc;color:#17382f;border-color:#cedac5}
.bottom-nav svg{width:21px;height:21px;flex-shrink:0}
.week-controls{margin:.75rem 0 1.25rem;gap:.5rem}
.week-board{display:flex;background:#fffefa;border:1px solid #d9e0d8;border-radius:25px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;max-width:100%}
.week-day{flex:0 0 max(160px,calc(100% / 7));min-width:0;padding-bottom:1rem;border-right:1px solid #dfe4db;scroll-snap-align:start}
.week-day:last-child{border-right:0}
.week-day-heading{display:flex;align-items:center;flex-direction:column;gap:.5rem;border:0;border-bottom:1px solid #e3e7df;background:transparent;width:100%;padding:1.5rem .6rem;margin-bottom:.6rem;color:#17382f;min-height:144px}
.week-day-heading strong{font-family:Amatic,sans-serif;font-weight:400;font-size:2.15rem;text-transform:uppercase;line-height:1.1}
.view-day{font-size:.8rem;font-weight:600;color:#698173}
.week-walk{display:grid;grid-template-columns:1fr auto;align-content:start;gap:.45rem .2rem;text-align:left;padding:1rem .7rem;margin:.65rem .6rem;background:#f6f8f1;border:1px solid #dce3d5;border-radius:20px;width:calc(100% - 1.2rem);color:#17382f;min-height:113px;min-width:0}
.week-walk strong{font-size:.95rem;overflow-wrap:anywhere}
.week-walk>.muted{grid-row:2;font-size:.85rem;overflow-wrap:anywhere}
.week-walk-count{grid-column:2;grid-row:1 / 3;background:#e8efd6;border-radius:24px;padding:.45rem .6rem;max-width:65px;font-size:.76rem;font-weight:700;line-height:1.4}
.week-empty{font-size:.85rem;padding:1rem;text-align:center}
.day-detail-button{display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px dashed #cbd5c7;border-radius:20px;background:transparent;padding:.85rem .4rem;color:#6c7e70;width:calc(100% - 1.2rem);margin:1rem .6rem;min-height:48px;font-size:.82rem}
.day-detail-button svg{width:19px;height:19px;flex-shrink:0}
.team-settings{margin:1.5rem .25rem;color:#6a7c6d;font-size:.9rem}
.team-settings>section{margin-top:1rem}
.day-header{position:relative;background:#fffefa;border-radius:22px;padding:1.5rem;margin-bottom:1rem}
.day-header h1{text-transform:capitalize;margin-right:3rem}
.day-header .intro{margin-bottom:1rem;font-size:.95rem;max-width:600px}
.day-close,.dialog-close{display:grid;place-items:center;position:absolute;top:1.2rem;right:1.2rem;background:#fff;border:1px solid #d8e0d9;border-radius:50%;width:40px;height:40px;color:#5d7066;padding:9px}
.day-close svg,.dialog-close svg{width:22px;height:22px}
.add-walk-button{display:inline-flex;gap:.55rem;align-items:center;border:0;border-radius:99px;background:#e8f3b1;color:#536851;padding:.8rem 1rem;min-height:44px}
.add-walk-button svg{width:21px;height:21px}
.planning-reload{font-size:.78rem;margin-left:.1rem;background:transparent;border-color:#d4ddcf;padding:.4rem .7rem}
.period{margin:1.5rem 0}
.period-heading{display:flex;align-items:center;gap:.6rem;margin:0 0 .75rem}
.period-heading svg{width:34px;height:34px;padding:7px;background:#e7eedb;border-radius:50%;flex-shrink:0}
.period-heading h2{margin:0;font-size:2.25rem}
.period-heading>span{font-size:.9rem}
.walk-grid{gap:.75rem}
.walk{padding:.65rem;border-radius:25px;border-color:#d7e0d5;background:#fffefa;box-shadow:none}
.walk .heading{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.35rem;background:#17382f;color:#fffefa;border-radius:21px;padding:1rem .9rem;min-height:113px}
.walk-period{color:#dceaa4;letter-spacing:.08em;font-weight:700;text-transform:uppercase;font-size:.75rem;padding-right:3rem}
.walk .heading>strong{font-family:Amatic,sans-serif;font-size:2.35rem;font-weight:400;line-height:1;max-width:100%}
.walk .heading .walk-count{position:absolute;top:.7rem;right:.7rem;padding:.35rem .5rem;border-radius:20px;background:#ffffff1f;color:white;font-size:.72rem;max-width:70px}
.walk>p{padding:.8rem .4rem;font-size:.85rem}
.walk .booking.dog-card{padding:0;border:1px solid #dbe2d8;border-radius:25px;gap:0;margin-top:.6rem;background:#fff;box-shadow:none;overflow:hidden}
.walk .dog-card:last-child{border-bottom:1px solid #dbe2d8}
.dog-card-heading{display:flex;align-items:center;gap:.6rem;width:100%;border:0;background:transparent;padding:.6rem;color:#17382f;text-align:left;min-height:62px;font-weight:400}
.dog-card-heading:disabled{opacity:1;cursor:default}
.dog-card-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}
.dog-card-name{font-size:1rem;font-weight:700}
.dog-card .address{font-size:.78rem;line-height:1.35;color:#738277}
.dog-card-heading>svg{width:20px;height:20px;flex:0 0 20px;color:#5c8172}
.dog-avatar{width:42px!important;height:42px!important;aspect-ratio:1;flex:0 0 42px;border-radius:50%;object-fit:cover}
.dog-avatar.placeholder{padding:5px;background:#f0f3e8;object-fit:contain}
.walk>details{padding:.7rem .3rem .25rem;color:#6c7e70;font-size:.8rem}
.walk.is-drop-target{outline-color:#a8bf68;background:#f4f8e9}
.planning-dialog{position:fixed;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;margin:auto;border:1px solid #55735a;border-radius:28px;padding:2rem;background:#f8f7f0;color:#17382f;box-shadow:0 12px 60px #14392d38}
.planning-dialog[open]{display:grid;gap:1rem}
.planning-dialog::backdrop{background:#17251c80}
.planning-dialog h2{text-align:center;font-size:2.7rem;margin:.5rem 2rem 0;overflow-wrap:anywhere}
.planning-dialog .dialog-intro{text-align:center;color:#748174;line-height:1.5;font-size:.98rem;margin:0 0 .5rem}
.planning-dialog select{border-radius:99px;background:#eef1e8;padding:.85rem 1rem}
.planning-dialog>.primary,.planning-dialog>.secondary{width:100%;border-radius:99px;min-height:48px;font-size:1rem;margin:0}
.planning-dialog .dialog-close{top:.85rem;right:.85rem;border:0;background:transparent}
.planning-dialog .notice{margin:0;font-size:.85rem}
.dog-actions{border-top:1px solid #d8e0d2;padding-top:1rem;font-size:.85rem}
.dog-actions summary{cursor:pointer;color:#64775f}
.dog-actions>.row,.dog-actions>button,.dog-actions>div{margin-top:.8rem}
.requests-list{display:grid;gap:1rem;margin-top:1.3rem}
.request-card{padding:1.2rem;background:#fffefa;border:1px solid #dce2d8;border-radius:24px;box-shadow:none}
.request-card:last-child{border-bottom:1px solid #dce2d8}
.request-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;flex-wrap:wrap;margin-bottom:.65rem}
.request-heading>strong{font-size:1.1rem;overflow-wrap:anywhere;min-width:0}
.request-status{color:#697b6b;font-size:.82rem;font-weight:650;white-space:nowrap}
.request-card>p{font-size:.88rem;line-height:1.45;margin-bottom:.65rem}
.request-card>.notice{background:#eef3e7;font-size:.82rem;padding:.65rem .8rem}
.request-card .controls{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.request-card .controls>label{grid-column:1 / -1;order:1}
.request-card .controls>.secondary{order:2}
.request-card .controls>.primary{order:3}
.request-card .controls>button{border-radius:99px}
@media(max-width:720px){
 .topbar{min-height:120px;padding:.9rem .9rem;gap:.5rem;flex-wrap:nowrap}.brand{min-height:85px;gap:.4rem}.brand-dog{width:58px;height:83px;flex-basis:58px}.brand-dog img{width:550px;left:-250px;top:0}.brand-name{font-size:2.8rem}.account{gap:.25rem}.topbar .header-icon{width:36px;height:36px;padding:8px}.header-icon svg{width:19px;height:19px}
 .shell{padding:1.25rem .8rem calc(110px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;flex-wrap:nowrap;justify-content:space-around;gap:0;margin:0;background:#fffefa;border-top:1px solid #dbe1d5;padding:.6rem .25rem calc(.6rem + env(safe-area-inset-bottom));box-shadow:0 -4px 18px #2c412c06}.bottom-nav button,.bottom-nav button.active{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem;border:0;background:transparent;border-radius:0;padding:.3rem .1rem;font-size:.85rem;font-weight:400;min-height:58px}.bottom-nav button.active{color:#17382f}.bottom-nav svg{width:25px;height:25px}.week-day{flex-basis:calc(100% / 2)}.week-day-heading{min-height:144px;padding:1.35rem .5rem}.week-walk{grid-template-columns:1fr auto;padding:.9rem .65rem}.week-walk-count{font-size:.74rem;padding:.4rem .5rem}.week-board{border-radius:25px}.week-controls{flex-wrap:wrap}.week-controls strong{font-size:.86rem}.day-view .topbar{display:none}.day-view .shell{padding-top:0}.day-header{border-radius:0;margin:0 -.8rem 1rem;padding:1.25rem .9rem;border-bottom:1px solid #dce2d6}.day-header h1{font-size:2.65rem}.day-header .intro{max-width:90%;font-size:.9rem}.day-close{top:1rem;right:1rem}.period-heading h2{font-size:2rem}.period-heading>span{font-size:.78rem}.walk-grid{gap:.55rem}.walk{padding:.45rem;border-radius:23px}.walk .heading{padding:.85rem .65rem;min-height:106px;border-radius:20px}.walk .heading>strong{font-size:2.1rem}.walk .heading .walk-count{font-size:.63rem;padding:.3rem .4rem;top:.55rem;right:.45rem;max-width:55px}.walk-period{font-size:.66rem}.walk .booking.dog-card{padding:0;border-radius:24px;margin-top:.5rem}.dog-card-heading{padding:.5rem .35rem;gap:.3rem;min-height:64px}.dog-avatar{width:32px!important;height:32px!important;flex-basis:32px}.dog-card-name{font-size:.87rem}.dog-card .address{font-size:.72rem}.dog-card-heading>svg{width:16px;height:16px;flex-basis:16px}.planning-dialog{padding:1.5rem 1.25rem;border-radius:25px}.planning-dialog h2{font-size:2.4rem}.planning-dialog .dialog-intro{font-size:.95rem}.request-card{padding:1rem;border-radius:24px}.request-heading>strong{font-size:1rem}
}
@media(max-width:380px){.brand-name{font-size:2.25rem}.brand-dog{width:47px;height:77px;flex-basis:47px}.brand-dog img{width:495px;left:-225px}.topbar{padding:.7rem .6rem;min-height:108px}.account{gap:.2rem}.topbar .header-icon{width:34px;height:34px;padding:7px}.shell{padding-left:.6rem;padding-right:.6rem}.day-header{margin-left:-.6rem;margin-right:-.6rem}.walk-grid{gap:.4rem}.walk .heading{padding-left:.5rem}.walk .heading .walk-count{font-size:.58rem;max-width:49px}.dog-card-heading{gap:.25rem;padding:.45rem .3rem}.dog-avatar{width:27px!important;height:27px!important;flex-basis:27px}.dog-card-heading>svg{width:14px;height:14px;flex-basis:14px}.dog-card-name{font-size:.81rem}.dog-card .address{font-size:.66rem}.week-walk{padding:.7rem .45rem;gap:.3rem}.week-walk strong{font-size:.83rem}.week-walk-count{max-width:50px;font-size:.67rem;padding:.35rem .4rem}.week-walk>.muted{font-size:.77rem}}
.basis-banner{padding:1rem 1.1rem;margin:1rem 0;background:#edf2e3;border:1px solid #d6dfca;border-radius:20px;overflow-wrap:anywhere}
.basis-banner>strong{display:block}.basis-banner>button{margin:.3rem .4rem .3rem 0}.basis-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:.65rem;margin:1rem 0}.basis-roster-walk{background:#fffefa;border:1px solid #d7ded1;border-radius:15px;padding:.8rem}.basis-roster-walk p{margin:.4rem 0 0;font-size:.9rem;line-height:1.5}

/* Compact dog directory, using the same dog/photo/address rows as day planning. */
input[type=search]{display:block;width:100%;margin-top:.35rem;padding:.8rem 1rem;border:1px solid #b8c8bc;border-radius:99px;color:#193a30;background:#fffefa;min-height:48px}
.directory-count{font-size:.85rem;margin:.6rem 0 .8rem}
.customer-dog-grid{display:grid;align-items:start;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:.55rem}
.directory-dog{border:1px solid #dbe2d8;border-radius:24px;background:#fffefa;min-width:0;overflow:hidden}
.directory-dog .dog-card-heading{padding:.65rem .8rem;gap:.65rem;min-height:70px}
.directory-dog .dog-card-name,.directory-dog .address{overflow-wrap:anywhere}
.directory-dog .dog-avatar{width:40px!important;height:40px!important;flex-basis:40px}
.directory-dog .dog-card-heading:hover{background:#edf2e5}
.directory-dog .dog-card-heading:focus-visible{outline-offset:-4px;border-radius:24px}
.directory-inactive{font-size:.7rem;color:#6b7d72}
.directory-without-dog{margin:1.5rem 0}.directory-without-dog h2{font-size:1.9rem}.directory-without-dog button{display:block;max-width:100%;margin:.5rem 0;text-align:left;overflow-wrap:anywhere}
.customer-dossier{margin-top:1rem;overflow-wrap:anywhere}.customer-dossier .row{margin-bottom:1rem}
.directory-dog-summary{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}
.directory-dog-summary strong{font-size:1.2rem;overflow-wrap:anywhere;min-width:0}
[data-customer-heading]{margin-top:.8rem}
@media(max-width:580px){.customer-dog-grid{grid-template-columns:1fr}.directory-dog .dog-card-heading{min-height:66px;padding:.5rem .75rem}.directory-dog .dog-card-name{font-size:1rem}.directory-dog .address{font-size:.8rem}.customer-dossier{padding:1rem}}

.directory-dog .address{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.walk-period-button{display:block;font-size:.8rem;margin:.4rem .1rem 0;min-height:40px;text-align:left}
.walk-period-confirmation>p{font-size:.95rem;line-height:1.5;margin:0}.walk-period-confirmation h2{margin-bottom:.5rem}

.pickup-summary { display:flex; flex-direction:column; gap:.55rem; border-top:1px solid var(--line,#d5dfd7); margin-top:.75rem; padding-top:.9rem; font-size:.9rem; overflow-wrap:anywhere; }
.pickup-summary p { margin:0; }
.walk .booking.dog-card { --dog-label-size:1rem; --pickup-circle-size:38px; border:1.5px solid #b3c7b9; border-radius:18px; background:#fafbf7; }
.walk .booking.dog-card:last-child { border-bottom:1.5px solid #b3c7b9; }
.walk .dog-card-name { font-size:var(--dog-label-size); line-height:1.3; }
.pickup-dog-controls { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; width:100%; padding:0 .5rem .3rem; }
.pickup-position { display:grid; place-items:center; flex:0 0 var(--pickup-circle-size); width:var(--pickup-circle-size); height:var(--pickup-circle-size); border:1px solid #baccb0; border-radius:50%; background:#eaf0d8; font-size:var(--dog-label-size); font-weight:800; line-height:1; font-variant-numeric:tabular-nums; color:#17382f; }
.pickup-check { display:flex; flex:1; align-items:center; gap:.35rem; font-size:.85rem; cursor:pointer; min-height:40px; margin:0; }
.pickup-check input { width:20px; height:20px; margin:0; accent-color:#17382f; }
.pickup-order-button { min-width:44px; min-height:44px; padding:.35rem; }
.walk .booking.dog-card.pickup-next { border-color:#527563; box-shadow:0 0 0 1px #527563; }
.walk .booking.dog-card.pickup-done { background:#dcebd9; border-color:#71916e; box-shadow:none; }
.walk .booking.dog-card.pickup-done .pickup-position { background:#c6ddbd; border-color:#91b087; }
.dog-card-top { position:relative; min-width:0; }
.dog-card-top .dog-card-heading { display:grid; grid-template-columns:var(--pickup-circle-size) minmax(0,1fr); align-items:start; gap:.2rem .4rem; width:100%; min-width:0; padding:.5rem .5rem .1rem; }
.dog-card-top .dog-card-heading:focus-visible { outline-offset:-3px; border-radius:16px; }
.dog-card-top .dog-card-info { display:contents; }
.dog-card-top .pickup-position,.dog-card-top .dog-avatar { grid-column:1; grid-row:1; }
.dog-card-top .dog-card-name { grid-column:2; grid-row:1; min-height:var(--pickup-circle-size); padding:.5rem 36px 0 0; overflow-wrap:anywhere; }
.dog-card-top .address { grid-column:1 / -1; grid-row:2; overflow-wrap:anywhere; }
.dog-card-move { position:absolute; top:.3rem; right:.15rem; display:grid; place-items:center; width:38px; min-height:44px; margin:0; padding:0; border:0; border-radius:12px; background:transparent; color:#365e4c; font-size:1.8rem; font-weight:900; line-height:1; }
.dog-card-move svg { width:1.8rem; height:1.8rem; }
.dog-card-move:hover { background:#edf3e9; }
@media(max-width:480px) { .walk .booking.dog-card { --dog-label-size:.95rem; --pickup-circle-size:34px; } .dog-card-top .dog-card-heading { padding:.45rem .45rem .1rem; gap:.15rem .3rem; } .dog-card-top .dog-card-name { padding:.4rem 28px 0 0; } .dog-card-move { top:.15rem; right:.1rem; width:32px; font-size:1.7rem; } .dog-card-move svg { width:1.65rem; height:1.65rem; } }
@media(max-width:380px) { .walk .booking.dog-card { --dog-label-size:.9rem; --pickup-circle-size:32px; } .dog-card-top .dog-card-heading { column-gap:.25rem; padding-left:.35rem; } .dog-card-top .dog-card-name { padding-right:26px; } .dog-card-move { width:30px; font-size:1.6rem; } .dog-card-move svg { width:1.6rem; height:1.6rem; } }
.pickup-contact { margin:.5rem 0 1rem; overflow-wrap:anywhere; }
.pickup-contact dt { font-weight:700; margin-top:1rem; }
.pickup-contact dd { margin:.3rem 0; }
.pickup-contact a { color:#17382f; text-decoration:underline; }
.pickup-contact-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.pickup-contact-actions a { flex:1 1 160px; text-decoration:none; text-align:center; padding:.75rem 1rem; border-radius:1.2rem; }
@media(max-width:480px) { .walk-grid.has-two .pickup-dog-controls { gap:.2rem; padding:0 .45rem .25rem; } .pickup-check { font-size:.78rem; } .pickup-order-button { min-width:40px; padding:.25rem; } }
.practice-open { margin:.2rem 0 .75rem; }
.practice-banner { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem; border:1px solid #c6d49b; border-radius:16px; background:#f0f5d8; padding:.85rem; margin-bottom:1rem; }
.practice-banner strong { color:#294b36; }
.practice-banner p { flex:1 1 240px; margin:0; font-size:.85rem; line-height:1.45; }
.practice-banner button { font-size:.8rem; min-height:44px; }
.practice-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.25rem; margin:.5rem 0 .75rem; }
.practice-days button { min-width:0; min-height:44px; padding:.4rem .1rem; font-size:.78rem; }
.practice-days button.active { background:#17382f; border-color:#17382f; color:#fffefa; }
.practice-dialog label { display:block; margin:.7rem 0; }
.practice-dialog label>span { display:block; margin-bottom:.35rem; }
/* Compact planning cards: retain existing type/circle sizes and clear controls. */
.walk .heading { min-height:78px; padding:.55rem .6rem; gap:.25rem; }
.walk .booking.dog-card { margin-top:.3rem; border-radius:14px; }
.walk .dog-card-heading,.dog-card-top .dog-card-heading { min-height:44px; align-items:center; padding:.2rem .4rem 0; }
.dog-card-top .dog-card-name { display:flex; align-items:center; min-height:var(--pickup-circle-size); padding:0 32px 0 0; }
.dog-card-top .dog-card-heading { column-gap:.3rem; }
.dog-card-move { top:0; }
.pickup-dog-controls,.walk-grid.has-two .pickup-dog-controls { gap:0 .3rem; padding:0 .35rem .1rem; }
.pickup-check { flex:0 1 auto; min-height:36px; gap:.2rem; white-space:nowrap; }
.pickup-check input { flex:0 0 16px; width:16px; height:16px; padding:0; }
.pickup-order-button { min-height:36px; }
.pickup-summary { gap:.2rem; margin-top:.35rem; padding-top:.35rem; }
.pickup-summary button { min-height:36px; padding:.3rem .4rem; }
.walk .booking.dog-card.dropoff-done { background:#e1eaf1; border-color:#8ba2b4; box-shadow:none; }
.walk .booking.dog-card.dropoff-done .pickup-position { background:#cbdce9; border-color:#8ba2b4; }
.period-heading { flex-wrap:wrap; }
.period-totals { flex:1 1 100%; display:flex; flex-wrap:wrap; gap:.2rem 1rem; font-size:.85rem; margin:.15rem 0; }
.period-totals strong { color:#17382f; }
.period-totals span { color:#596d60; }
.pickup-can-drag { cursor:grab; -webkit-touch-callout:none; }
.pickup-can-drag .dog-card-heading { -webkit-user-select:none; user-select:none; }
.pickup-dragging { opacity:.45; }
.walk .booking.dog-card.pickup-drop-before { box-shadow:0 -4px 0 #527563; }
.walk .booking.dog-card.pickup-drop-after { box-shadow:0 4px 0 #527563; }
.walk.pickup-drop-walk { outline:3px solid #527563; outline-offset:2px; background:#edf2df; }
.pickup-drag-ghost { position:fixed; z-index:1000; pointer-events:none; transform:translate(-50%,-120%); background:#17382f; color:#fff; border:2px solid #dceaa4; border-radius:14px; padding:.6rem 1rem; max-width:240px; overflow-wrap:anywhere; font-weight:700; box-shadow:0 4px 16px #17382f55; }
/* Compact one-walk view keeps the same dog/name type sizes and both checkboxes. */
.walk .heading { min-height:65px; }
.walk-focus-button { width:100%; min-height:32px; padding:.2rem .35rem; margin:.2rem 0 0; }
.compact-check-legend { display:none; }
.day-header { padding:.8rem; }
.day-header .intro { margin:.35rem 0 .5rem; }
.day-header h1 { margin-top:.25rem; margin-bottom:.25rem; }
.walk-member-dialog label>span { display:block; margin-bottom:.35rem; }
.member-dog-list { max-height:35vh; overflow:auto; display:grid; gap:.35rem; margin:.6rem 0; }
.member-dog-choice { text-align:left; display:flex; flex-direction:column; gap:.1rem; }
.member-dog-choice[aria-pressed=true] { border:2px solid #17382f; background:#e8f3d9; }
.walk-add-dog { width:100%; margin-top:.4rem; }
.day-view:has(.walk-focused) .day-header,
.day-view:has(.walk-focused) .planning-reload,
.day-view:has(.walk-focused) .practice-banner,
.day-view:has(.walk-focused) .practice-days,
.day-view:has(.walk-focused) #app>.secondary,
.day-view:has(.walk-focused) .period:not(:has(.walk-focused)),
.day-view:has(.walk-focused) .walk:not(.walk-focused) { display:none; }
.day-view:has(.walk-focused) .period { margin:.25rem 0; }
.day-view:has(.walk-focused) .period-heading { margin-bottom:.3rem; gap:.35rem; }
.day-view:has(.walk-focused) .period-heading h2 { font-size:1.6rem; }
.day-view:has(.walk-focused) .period-heading>svg,
.day-view:has(.walk-focused) .period-heading>span { display:none; }
.day-view:has(.walk-focused) .period-totals { flex:1; font-size:.78rem; gap:.15rem .5rem; }
.day-view:has(.walk-focused) .walk-grid { grid-template-columns:minmax(0,1fr); }
.walk-focused { padding:.3rem; }
.walk-focused .heading { min-height:42px; padding:.3rem .5rem; flex-direction:row; align-items:center; justify-content:flex-start; gap:.6rem; border-radius:12px; }
.walk-focused .heading>strong { font-size:1.7rem; }
.walk-focused .walk-period { padding:0; }
.walk-focused .heading .walk-count { position:static; margin-left:auto; max-width:none; }
.walk-focused>.walk-period-control { display:none; }
.walk-focused .pickup-summary { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:.1rem .4rem; margin:.15rem 0; padding:.1rem 0; }
.walk-focused .pickup-summary p,.walk-focused .pickup-summary strong { margin:0; font-size:.78rem; }
.walk-focused .pickup-summary button { min-height:30px; flex:1; font-size:.78rem; }
.walk-focused .pickup-summary .pickup-progress { flex:1 1 100%; }
.walk-focused .pickup-summary strong { display:none; }
.walk-focused .compact-check-legend { display:flex; justify-content:flex-end; gap:0; font-size:.7rem; }
.walk-focused .compact-check-legend span { width:42px; text-align:center; }
.walk-focused .booking.dog-card { display:grid; grid-template-columns:minmax(0,1fr) 84px; min-height:44px; margin-top:3px; border-radius:12px; }
.walk-focused .dog-card-top { min-width:0; }
.walk-focused .dog-card-heading { min-height:44px; height:100%; padding:0 .3rem; }
.walk-focused .dog-card-name { padding-right:30px; }
.walk-focused .pickup-dog-controls { display:flex; flex-wrap:wrap; justify-content:flex-end; padding:0; gap:0; }
.walk-focused .pickup-check { flex:0 0 42px; min-height:44px; justify-content:center; }
.walk-focused .pickup-check>span { position:absolute; clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }
.walk-focused .pickup-check input { width:18px; height:18px; flex-basis:18px; }
.walk-focused .pickup-order-button { min-width:42px; min-height:32px; }
.walk-focused .pickup-summary { border-top:0; }
.walk-focused .compact-check-legend { line-height:1.1; }
.walk-focused .walk-focus-button { min-height:30px; margin:0; }
@media(max-width:380px) {
 .day-view:has(.walk-focused) .period-heading h2 { display:none; }
 .day-view:has(.walk-focused) .period-totals { margin:0; }
 .walk-focused .heading { min-height:36px; }
 .walk-focused .pickup-summary button { min-height:26px; }
}
.member-dog-list { grid-auto-rows:max-content; }
.walk-focused>.walk-period-button { display:none; }
.walk-focused .booking.dog-card { grid-template-columns:minmax(0,1fr) 90px; }
.walk-focused .pickup-check { flex-basis:54px; }
.walk-focused .dropoff-check { flex-basis:36px; }
.walk-focused .compact-check-legend span { width:54px; }
.walk-focused .compact-check-legend span+span { width:36px; }
.walk-focused .booking.dog-card { margin-top:2px; }
.walk-focused .dog-card-heading,.walk-focused .pickup-check { min-height:42px; }

.customer-calendar { margin-top:.75rem; }
.customer-calendar p { font-size:.9rem; line-height:1.5; margin:.65rem 0; }
.customer-calendar button { min-height:44px; max-width:100%; white-space:normal; }
.customer-calendar details { margin-top:.75rem; }
.customer-calendar summary { cursor:pointer; }
.customer-calendar a { text-decoration:underline; }
