/* Shared layout rules apply after the older desktop styles. */
[hidden]{display:none!important}html,body{width:100%;height:100%;overscroll-behavior:none}button,select,summary{touch-action:manipulation}dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}#world{display:block}#controls{flex-wrap:nowrap;justify-content:flex-start}footer{gap:12px;padding-bottom:env(safe-area-inset-bottom);height:calc(62px + env(safe-area-inset-bottom))}#controls{min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%;padding:3px 1px}#controls button{flex:0 0 auto;min-height:38px;white-space:nowrap}body.watching-nora #panel,body.watching-nora #rightDock,body.watching-nora #locations,body.watching-nora #touch{display:none!important}#touch{bottom:calc(112px + env(safe-area-inset-bottom));z-index:7}#stick{touch-action:none}#interact{min-width:56px;min-height:56px;font-size:13px}#notification{max-width:min(400px,calc(100vw - 24px));overflow-wrap:anywhere}
@media(pointer:coarse){button{min-height:44px}#actions button{min-height:44px;font-size:12px}#animalFilters button,.dog-chip{min-height:40px}#controls button{min-height:44px;font-size:12px;padding:8px 12px}#noraLive button{min-height:44px}#touch{display:flex}}
@media(max-width:1000px){footer #guide,footer #locationLabel{display:none}footer{justify-content:center;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}#controls{width:100%}#rightDock{width:215px}#panel{width:260px}}
@media(max-width:700px){header{height:68px;padding:0 12px}.brand{gap:7px}header .brand{font-size:18px}.brand small{font-size:7px;letter-spacing:1.6px}.mark{width:30px;height:35px}.score small{font-size:8px}.score strong{font-size:14px;margin-top:7px}.day{position:fixed;top:68px;right:10px;left:auto;font-size:10px;background:#294632c9;border-radius:5px;padding:5px 7px}footer{height:calc(64px + env(safe-area-inset-bottom));background:#1e342aee}#controls{gap:6px}#controls button{min-height:44px;font-size:11px;padding:8px 10px;max-width:none!important}#quality{display:block}#panel{top:78px;left:10px;width:min(280px,calc(100vw - 20px));max-height:calc(100dvh - 285px)}#panel.compact{width:200px}#panel.compact #animalFilters{display:none}#panel .panel-heading{padding:7px 12px;min-height:44px}.dog-detail{padding:10px 12px}.dog-photo img{height:110px}#actions{grid-template-columns:repeat(2,1fr)}#actions button{min-height:44px}#rightDock{top:auto;bottom:calc(215px + env(safe-area-inset-bottom));right:10px;width:170px;max-height:calc(100dvh - 340px)}#rightDock #mission,#rightDock #alerts{display:none}#rightDock #activity{padding:10px}#locations{bottom:calc(72px + env(safe-area-inset-bottom));width:calc(100vw - 20px);left:10px;transform:none;justify-content:space-around}#locations button{min-height:40px;padding:7px 4px}#touch{left:14px;right:14px;bottom:calc(122px + env(safe-area-inset-bottom))}#stick{width:88px;height:88px}#stick i{left:27px;top:27px}#noraLive{left:10px;top:80px;width:min(280px,calc(100vw - 20px));max-height:calc(100dvh - 170px);padding:10px 12px}#noraLive strong{font-size:13px;margin:5px 0}#noraLive .eyebrow{font-size:8px}#noraLive>span{font-size:10px}#noraLive button{font-size:11px;padding:8px}#helperDialog .nora-options{max-height:min(260px,calc(100dvh - 350px));min-height:100px;overflow-y:auto;overscroll-behavior:contain;padding-right:3px}#helperDialog select{font-size:16px}#intro{top:18%;left:8%;width:84%;max-height:calc(100dvh - 120px);overflow-y:auto}#intro h1{font-size:36px}#intro p{font-size:13px}#intro .disclaimer{display:none}#notification{top:116px;right:10px;left:auto;transform:none;max-width:calc(100vw - 20px);font-size:11px}}
@media(max-height:500px) and (orientation:landscape){header{height:50px}header .brand{font-size:17px}.brand small{display:none}.mark{height:30px}.day{top:12px;right:160px;background:transparent}.score strong{margin-top:3px}.score small{font-size:7px}#noraLive{top:56px;left:max(8px,env(safe-area-inset-left));width:235px;max-height:calc(100dvh - 130px);padding:8px 11px}#noraLive strong{font-size:12px}#noraLive button{padding:5px 7px;font-size:10px}#helperDialog .nora-options{max-height:calc(100dvh - 230px);min-height:80px}#panel{top:56px;max-height:calc(100dvh - 132px);width:230px}#panel.compact{width:180px}#rightDock{top:56px;bottom:auto;max-height:calc(100dvh - 150px);width:180px}#rightDock #mission,#rightDock #alerts{display:none}#locations{bottom:66px;left:50%;transform:translateX(-50%);width:300px}#touch{bottom:112px}#intro{top:16%;max-height:calc(100dvh - 65px)}#intro h1{font-size:28px;margin:9px 0}#intro p{margin:6px 0}#intro>small{margin-top:7px}footer{height:calc(58px + env(safe-area-inset-bottom))}#controls button{min-height:40px}}

@media(max-width:700px){#controls #helperOpen{order:-4}#controls #pause{order:-3}#controls #overview{order:-2}#controls #manage{order:-1}}
#hotelOverview{position:fixed;right:max(18px,env(safe-area-inset-right));top:90px;width:330px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 180px);z-index:15;overflow-y:auto;overscroll-behavior:contain;background:#f6f2e9f5;color:#294738;border-radius:14px;padding:15px 17px;box-shadow:0 8px 35px #142c2533;scrollbar-width:thin}.hotel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.hotel-heading h2{font:23px Georgia;margin:0}.hotel-heading button{min-height:40px;min-width:40px;background:transparent;color:#345a48;font-size:25px}.hotel-summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:14px}.hotel-summary strong{font:29px Georgia}.hotel-summary span{font-size:12px}.hotel-summary b{color:#a08035;letter-spacing:2px;font-size:17px}#hotelStats,#hotelStock{font-size:11px;line-height:1.5}#hotelOverview #hotelUrgent{width:100%;min-height:44px;background:#345a48;color:#fff;border-radius:7px;padding:10px;font-size:12px}#hotelGuests{display:grid;gap:9px;margin-top:13px}.hotel-guest{padding:11px;background:#e4e9df;border-radius:9px}.hotel-guest>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.hotel-guest small{font-size:11px}.hotel-meter{height:4px;margin:8px 0;background:#c8d2c2;border-radius:4px;overflow:hidden}.hotel-meter i{display:block;height:100%;background:#688c68}.hotel-guest-actions{display:flex;align-items:center;gap:6px}.hotel-guest-actions button{min-height:38px;padding:7px 9px;border-radius:5px;background:#f9f7ef;color:#294738;font-size:11px}.hotel-guest-actions span{font-size:11px}.hotel-overview-open #panel,.hotel-overview-open #rightDock{display:none!important}
.photo-mode header,.photo-mode footer,.photo-mode #intro,.photo-mode #panel,.photo-mode #rightDock,.photo-mode #locations,.photo-mode #touch,.photo-mode #noraLive,.photo-mode #hotelOverview{display:none!important}#photoTools{position:fixed;z-index:30;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 24px);background:#f7f3e9ed;color:#294738;border-radius:12px;padding:11px 14px;box-shadow:0 5px 25px #102b2433}#photoTools>span{display:block;text-align:center;font-size:11px;margin-bottom:8px}#photoTools>div{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}#photoTools button{min-height:44px;min-width:44px;background:#345a48;color:#fff;border-radius:6px;padding:9px 12px;font-size:12px}
@media(max-width:700px){#hotelOverview{top:80px;right:10px;max-height:calc(100dvh - 160px);padding:12px 14px;width:min(330px,calc(100vw - 20px))}.hotel-heading h2{font-size:21px}.hotel-guest-actions button{min-height:44px}#controls #helperOpen{order:-7}#controls #hotelOpen{order:-6}#controls #photoOpen{order:-1}#photoTools{width:calc(100vw - 24px);padding:9px}#photoTools button{font-size:11px;padding:8px}#photoTools>span{font-size:10px}}
@media(max-height:500px) and (orientation:landscape){#hotelOverview{top:56px;max-height:calc(100dvh - 126px);width:300px}#photoTools{bottom:10px}#photoTools>span{margin-bottom:4px}}

#photoDownload{display:inline-flex;align-items:center;min-height:44px;background:#345a48;color:#fff;padding:9px 12px;border-radius:6px;text-decoration:none;font-size:12px}#photoStatus{font-size:11px;text-align:center;margin:5px 0 0}#photoStatus:empty{display:none}#photoPreview{display:block;width:140px;max-height:80px;object-fit:contain;margin:8px auto 0;border-radius:5px}@media(max-height:500px){#photoPreview{display:none}}
