.m-state{display:flex;min-height:260px;align-items:center;justify-content:center;flex-direction:column;padding:34px 24px;border:1px solid #e5e5e5;border-radius:18px;background:#fff;color:#777;text-align:center;box-shadow:none;}
.m-state strong{margin-top:0;color:#111;font-size:17px;line-height:1.4;}
.m-state>span:not(.m-state-icon):not(.m-state-spinner){max-width:290px;margin-top:7px;font-size:13px;line-height:1.65;}
.m-state-icon{display:grid;width:60px;height:60px;place-items:center;border-radius:19px;background:#eef8f5;color:#0f766e;font-size:22px;font-weight:850;}
.m-state-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.m-state-icon+strong,.m-state-spinner+strong{margin-top:14px;}
.m-state-action{display:inline-flex;min-height:42px;align-items:center;justify-content:center;margin-top:20px;padding:0 18px;border:0;border-radius:13px;background:#0f766e;color:#fff;font:inherit;font-size:13px;font-weight:750;text-decoration:none;cursor:pointer;}
.m-state-action:focus-visible{outline:3px solid rgba(15,118,110,.25);outline-offset:3px;}
.m-state-spinner{width:38px;height:38px;border:3px solid #d9e9e6;border-top-color:#0f766e;border-radius:50%;animation:m-spin .8s linear infinite;}
.m-state-error .m-state-icon{background:#fff1f1;color:#c24141;}
.m-desktop-notice{margin-top:16px;padding:17px 18px;border:1px solid #e4e8f0;border-radius:18px;background:#f7f8fc;color:#657087;}
.m-desktop-notice strong{color:#29344b;font-size:14px;}
.m-desktop-notice p{margin:7px 0 0;font-size:12px;line-height:1.65;}
.m-toast-region{position:fixed;top:calc(var(--m-safe-top) + var(--m-topbar-height) + 10px);right:16px;left:16px;z-index:120;display:flex;max-width:488px;flex-direction:column;gap:8px;margin:0 auto;pointer-events:none;}
.m-toast{align-self:center;max-width:100%;padding:11px 15px;border-radius:13px;background:rgba(16,42,42,.94);color:#fff;font-size:13px;line-height:1.45;box-shadow:0 12px 30px rgba(15,42,42,.2);animation:m-toast-in .2s ease-out;}
.m-toast.is-error{background:rgba(153,41,41,.95);}
@keyframes m-spin{to{transform:rotate(360deg);}}
@keyframes m-toast-in{from{opacity:0;transform:translateY(-7px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.m-state-spinner,.m-toast{animation:none;}}

[aria-busy="true"].js-like-btn,[aria-busy="true"].js-favorite-btn,[aria-busy="true"].m-detail-favorite{opacity:.55;cursor:progress}

.m-discovery-banner{min-width:0;overflow:hidden;border-radius:12px;background:#f1f1f1}
.m-banner-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.m-banner-track::-webkit-scrollbar{display:none}
.m-banner-slide{flex:0 0 100%;min-width:0;aspect-ratio:3/1;scroll-snap-align:start;scroll-snap-stop:always}
.m-banner-slide a{display:block;width:100%;height:100%}
.m-banner-slide img{display:block;width:100%;height:100%;object-fit:cover}
.m-banner-dots{display:flex;justify-content:center;flex-wrap:wrap;background:#f8f8f8}
.m-banner-dots button{display:grid;width:28px;height:24px;place-items:center;padding:0;border:0;background:transparent;cursor:pointer}
.m-banner-dots button::after{width:5px;height:5px;border-radius:99px;background:#bdbdbd;content:''}
.m-banner-dots button[aria-pressed=true]::after{width:16px;background:#111}
.m-banner-track:focus-visible,.m-banner-slide a:focus-visible,.m-banner-dots button:focus-visible{outline:2px solid #111;outline-offset:-2px}
