:root{font-family:'Trebuchet MS',Arial,sans-serif;color:#274d40;background:#203c36}*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden;display:grid;place-items:center;background:#203c36}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}button:focus-visible{outline:3px solid #e29e40;outline-offset:2px}.game-window{width:min(calc(100vw - 16px),calc((100dvh - 16px)*750/530),1100px);aspect-ratio:750/530;position:relative;overflow:hidden;container-type:inline-size;background:#9ec1af url('assets/art/clinic-layout.png') center/100% 100%;box-shadow:0 8px 48px #0e272755;border:2px solid #143b31;border-radius:4px;user-select:none;touch-action:none}.game-window:fullscreen{width:min(100vw,calc(100dvh*750/530));height:auto;max-width:none;border:0}.game-scene{position:absolute;inset:0}.sprite{display:block;background-image:url('assets/art/pets.png');background-size:400% 200%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1}.pet-vet{background-position:0 0}.pet-dog{background-position:33.333% 0}.pet-cat{background-position:66.666% 0}.pet-rabbit{background-position:100% 0}.pet-pig{background-position:0 100%}.prop{background-image:url('assets/art/stage-props.png');background-size:300% 300%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1}.prop-kennel-0{background-position:0 0}.prop-kennel-1{background-position:50% 0}.prop-kennel-2{background-position:100% 0}.prop-kennel-3{background-position:0 50%}.prop-kennel-4{background-position:50% 50%}.prop-kennel-5{background-position:100% 50%}.prop-waiting{background-position:0 100%}.prop-diagnosis{background-position:50% 100%}.prop-clock{background-position:100% 100%}.clock{position:absolute;left:1.3%;top:1%;width:12%;display:flex;justify-content:center;align-items:center}.clock #clock-time{position:absolute;left:51.3%;top:62%;transform:translateX(-50%);z-index:2;font:bold 1.55cqw 'Courier New',monospace;color:#315343}.clock-hand{position:absolute;left:51.3%;top:46.5%;width:55%;height:55%;background-image:url('assets/art/clock-hands.png');background-size:200% 100%;background-repeat:no-repeat;image-rendering:pixelated;transform:translate(-50%,-63.36%) rotate(var(--hand-angle,0deg));transform-origin:50% 63.36%;pointer-events:none;z-index:1}.minute-hand{background-position:0 0}.hour-hand{background-position:100% 0}.clock-close{position:absolute;inset:0;pointer-events:none;z-index:3}.clock-close-sprite{position:absolute;left:10.3%;top:5.5%;width:82%;height:82%;background-image:url('assets/art/clock-close.png');background-size:200% 100%;background-repeat:no-repeat;image-rendering:pixelated;transform-origin:50% 50%}.clock-close-disk{background-position:0 0;transform:scale(var(--disk-scale,0))}.clock-close-label{background-position:100% 0;transform:scale(var(--label-scale,0))}.control{position:absolute;z-index:30;border:2px solid #f4edc7;background:#fff9de;color:#345944;padding:.5cqw 1cqw;box-shadow:2px 2px 0 #254e4544;border-radius:5px}.control:hover{background:#ddeaab}.pause-control{left:2.2%;top:17%;font:bold 1.7cqw 'Courier New',monospace}.sound-control{right:1.6%;top:1.8%;font-size:3.2cqw;width:5.5%;height:8%;padding:0}.fullscreen-control{right:1.6%;top:11%;font-size:2.6cqw;width:5.5%;height:7%;padding:0}.money-counter{position:absolute;left:16%;top:3%;background:#fff9e3dd;padding:.8cqw 1.2cqw;border-radius:5px;text-align:center}.money-counter span{font:bold 1.1cqw 'Courier New',monospace;display:block;letter-spacing:.2cqw;color:#688164}.money-counter strong{font:bold 2.5cqw 'Courier New',monospace}.hospital-sign{position:absolute;left:32%;top:4%;font:bold 2.5cqw 'Trebuchet MS',sans-serif;text-align:center;letter-spacing:.06cqw;text-shadow:1px 2px #fff5d8}.hospital-sign small{display:block;font:normal 3.5cqw Georgia,serif;letter-spacing:-.1cqw;margin-top:.4cqw}.doctor{position:absolute;left:70%;top:18%;width:14%;pointer-events:none}.waiting-spaces,.diagnosis-spaces,.medical-spaces{position:absolute;inset:0;pointer-events:none}.floor-space,.kennel{position:absolute;padding:0;border:0;background-color:transparent;pointer-events:auto;touch-action:none}.floor-space{width:12%;height:17%;top:33%;display:flex;justify-content:center;align-items:center}.floor-space.waiting{left:calc(7% + var(--index)*13%)}.floor-space.diagnosis{left:calc(62% + var(--index)*12%)}.floor-space .mat{position:absolute;inset:0;z-index:0;pointer-events:none}.floor-space.locked .mat{opacity:.2}.floor-space.locked .buy-text{font:bold 1.35cqw 'Courier New',monospace;z-index:2;background:#fffae2dd;padding:.4cqw;border-radius:2px;line-height:1.6;text-align:center}.floor-space.selected .mat{filter:drop-shadow(0 0 3px #fff3a3)}.floor-space.drop-target,.kennel.drop-target{filter:drop-shadow(0 0 4px #fff3a3)}.patient{position:absolute;left:14%;top:-20%;width:72%;z-index:4;touch-action:none;cursor:grab;image-rendering:pixelated}.patient.selected{filter:drop-shadow(0 0 3px #fff4a3)}.patient.treating{transform:translateY(var(--care-offset,0px));cursor:default}.patient-state{background-image:url('assets/art/patient-states.png');background-size:400% 400%;background-position:calc(var(--state)*100%/3) calc(var(--species)*100%/3)}.hearts{position:absolute;bottom:-2%;left:-12%;width:124%;text-align:center;font-size:1.35cqw;color:#e18477;letter-spacing:.2cqw;text-shadow:0 1px #fff7e4;white-space:nowrap;pointer-events:none}.condition{position:absolute;right:-22%;top:-3%;width:45%;aspect-ratio:1;background-color:#fffbe7;border:1px solid #d8c696;border-radius:3px;background-repeat:no-repeat;image-rendering:pixelated;pointer-events:none}.equipment{background-image:url('assets/art/tools.png');background-size:300% 200%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1}.equipment-spray{background-image:url('assets/art/extra-tools.png');background-size:200% 100%;background-position:0 0}.equipment-pump{background-image:url('assets/art/extra-tools.png');background-size:200% 100%;background-position:100% 0}.equipment-thermometer{background-position:50% 0}.equipment-syringe{background-position:0 100%}.equipment-first-aid{background-position:50% 100%}.equipment-tin{background-position:100% 100%}.kennel{width:21%;height:24%;left:calc(4% + var(--column)*32%);top:calc(49% + var(--row)*23%);overflow:visible}.kennel .pod{position:absolute;inset:0;pointer-events:none}.kennel .patient{left:21%;top:23%;width:48%}.medicine-button{position:absolute;right:-3%;bottom:12%;width:27%;height:37%;border:2px solid #edddb6;border-radius:4px;background-color:#fffbe8;padding:0;box-shadow:1px 2px #315e4644;z-index:6}.medicine-button:hover{background-color:#ddebaf}.medicine-button:disabled{cursor:default;opacity:.65}.kennel.selected .pod{filter:drop-shadow(0 0 3px #fff5c7)}.work-progress{position:absolute;bottom:2%;left:19%;width:52%;height:4%;background:#edf1d8;border:1px solid #b7c9a1;border-radius:2px;overflow:hidden}.work-progress i{height:100%;display:block;background:#609f71}.kennel-label{position:absolute;left:10%;bottom:-2%;font:bold 1.1cqw 'Courier New',monospace;width:75%;text-align:center;color:#244b3c;background:#fffbe7c9;border-radius:2px;pointer-events:none}.game-status{position:absolute;left:1.5%;right:1.5%;bottom:.8%;display:flex;align-items:center;gap:2cqw;background:#fff9e6df;padding:.6cqw 1cqw;font:bold 1.1cqw 'Courier New',monospace;min-height:3.3%;border-radius:3px}.game-status b{font-weight:normal}.game-status #selected-value{margin-left:auto;font-family:'Trebuchet MS',sans-serif;font-weight:normal;font-size:1.15cqw;text-align:right}.menu-layer{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#8aaa7845}.menu-layer[hidden]{display:none}.menu-panel{width:58%;padding:3cqw 3.5cqw;text-align:center;background:#fff9df;border:6px solid #d1a46b;outline:2px solid #715543;box-shadow:4px 6px #1f4e3c55;color:#295542}.menu-panel h1,.menu-panel h2{font:normal 4cqw/1.15 Georgia,serif;margin:0 0 2cqw;color:#497648;text-shadow:1px 1px #fff}.menu-panel h2{font-size:3.5cqw}.menu-panel .small-heading{font:bold 1.4cqw 'Courier New',monospace;letter-spacing:.2cqw;margin-bottom:1cqw}.menu-panel p{font-size:1.75cqw;line-height:1.6;margin:0 0 1.7cqw}.menu-panel .original-instructions{text-align:left;font-size:1.7cqw;line-height:1.65}.menu-panel .menu-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5cqw;text-align:left;font:bold 1.6cqw 'Courier New',monospace;margin:2cqw 0 3cqw}.menu-stats b{text-align:right;font-weight:normal}.menu-button{border:2px solid #789752;background:#dfeaab;color:#31583b;padding:1.1cqw 2.2cqw;font:bold 2.2cqw 'Courier New',monospace;box-shadow:2px 3px #4b683744;margin:0 .6cqw}.menu-button:hover{background:#f5e39e}.menu-button.secondary{background:#fff8d8;font-size:1.5cqw;margin-top:1.8cqw}.title-panel{width:60%;padding:2cqw 3cqw}.title-doctor{width:20%;margin:0 auto 1cqw}.title-pets{display:flex;justify-content:center;gap:1cqw;margin:1.4cqw auto 2cqw}.title-pets .sprite{width:17%}.message{position:absolute;left:18%;right:18%;bottom:4%;z-index:40;background:#264f40ed;border:1px solid #c7d49e;border-radius:4px;color:#fff9de;text-align:center;padding:.8cqw;font-size:1.5cqw;pointer-events:none;opacity:0;transition:opacity .15s}.message.show{opacity:1}.drag-ghost{position:absolute;z-index:50;pointer-events:none;width:10%;transform:translate(-50%,-50%)}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:550px){.game-window{width:min(calc(100vw - 8px),calc((100dvh - 8px)*750/530));border-width:1px}.menu-panel{border-width:3px}.control{border-width:1px}.medicine-button{border-width:1px}}
.menu-panel{position:relative}.table-purchase{position:absolute;left:2cqw;bottom:2cqw;width:8cqw;background:#fff7d4;border:2px solid #a6b572;border-radius:3px;padding:.4cqw;font-size:1.3cqw;line-height:1.4}.table-purchase .prop{display:block;width:100%}.table-purchase small{display:block;font:bold 1.3cqw 'Courier New',monospace}.table-purchase:disabled{opacity:.35;cursor:default}
.ui-icon{background-image:url('assets/art/ui-icons.png');background-size:300% 200%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1}.ui-0{background-position:0 0}.ui-1{background-position:50% 0}.ui-2{background-position:100% 0}.ui-3{background-position:0 100%}.ui-4{background-position:50% 100%}.ui-5{background-position:100% 100%}.hearts{display:flex;justify-content:center;gap:.1cqw}.hearts .ui-icon{width:1.65cqw;height:1.65cqw;display:block}.patient.lost-effect{filter:grayscale(.8);transform:rotate(-8deg)}.control.ui-icon{background-size:300% 200%;padding:0}
/* Keep extra status text available to screen readers, outside the visible original HUD. */
.game-status{width:1px;height:1px;min-height:0;left:0;bottom:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.message.show{opacity:0}
/* Raster care sprites follow workRemaining in game.js; no independent timer. */
.treatment-animation{position:absolute;inset:0;z-index:5;pointer-events:none}
.treatment-animation *{pointer-events:none}
.treatment-tool{position:absolute;left:var(--tool-x);top:var(--tool-y);width:25%;transform:rotate(var(--tool-rotation)) scaleX(var(--tool-flip));transform-origin:50% 50%;image-rendering:pixelated}
.treatment-effect{position:absolute;left:var(--effect-x);top:var(--effect-y);width:var(--effect-width);aspect-ratio:1;background-image:url('assets/art/treatment-effects.png');background-size:400% 600%;background-position:calc(var(--effect-frame)*100%/3) calc(var(--effect-row)*100%/5);background-repeat:no-repeat;image-rendering:pixelated;opacity:var(--effect-opacity)}
@media(prefers-reduced-motion:reduce){.patient.treating{transform:none}}
