/* CHUYU shared portal motion. Feedback follows actual DOM / request state. */
:root{--cy-motion-accent:#8de6d5;--cy-motion-ice:#bfdef0}
body>header,body>.layout,body>main,.app-shell{animation:cy-page-in .6s cubic-bezier(.2,.7,.2,1) both}
@keyframes cy-page-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page.active{animation:cy-pane-in .38s ease both}@keyframes cy-pane-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.cy-arrive{animation:cy-card-in .42s cubic-bezier(.2,.75,.25,1) both;animation-delay:var(--cy-delay,0ms)}@keyframes cy-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.card,.panel,.order,.cy-order-item,.proof-box,.reason-box{transition:border-color .22s,box-shadow .22s,background-color .22s}
.card:focus-within,.panel:focus-within,.order:focus-within,.proof-box:focus-within{border-color:#93dacb88;box-shadow:0 0 22px #8ce1d50c}
button,.action{transition:transform .16s,box-shadow .2s,background-color .2s;position:relative}
button:not(:disabled):hover,.action:hover{box-shadow:0 0 20px #7ce6d423}button:not(:disabled):active{transform:scale(.98)}
input,select,textarea{transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#9bded4;box-shadow:0 0 0 3px #89dec412;outline:none}
[aria-busy=true].cy-working{cursor:progress!important;box-shadow:0 0 18px #94dfd52b!important}.cy-working:after{content:'';display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-left:9px;vertical-align:-2px;animation:cy-spin .8s linear infinite}@keyframes cy-spin{to{transform:rotate(360deg)}}
.cy-feedback{transition:background-color .25s,border-color .25s}.cy-feedback[data-tone=success]{border-left:3px solid #80d9b6;background:#80d9b60b;padding:10px 13px}.cy-feedback[data-tone=error]{border-left:3px solid #e4a8a8;background:#d8828210;padding:10px 13px}.cy-feedback[data-tone=loading]{border-left:3px solid #a3cfef;padding-left:13px}.cy-feedback-pulse{animation:cy-feedback-in .36s ease both}@keyframes cy-feedback-in{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
.cy-deadline{margin:12px 0;padding:10px 12px;border:1px solid #91cde544;border-radius:9px;background:#91cde509;font-variant-numeric:tabular-nums;color:#c7e9fa}.cy-deadline[data-urgent=true]{border-color:#e2be7c88;color:#f2d7a8}.cy-deadline[data-expired=true]{border-color:#d6989888;color:#edc3c3}.cy-deadline span{display:block;font-size:11px;color:#9db4c5}.cy-deadline progress,.cy-upload-progress progress{display:block;width:100%;height:4px;margin-top:8px;accent-color:#8cddce}
.cy-upload-progress{padding:10px 0;color:#bfe1df;font-size:13px;line-height:1.8}.cy-file-preview{animation:cy-card-in .25s ease both}.cy-motion-toggle{position:fixed;z-index:70;right:18px;bottom:20px;border:1px solid #a4d0e344!important;background:#092033ee!important;color:#bdd6e5!important;border-radius:30px!important;padding:8px 13px!important;font-size:11px!important;min-height:34px!important;display:inline-flex!important;align-items:center;backdrop-filter:blur(12px)}
.cy-portal-intro{position:fixed;inset:0;z-index:65;display:grid;place-content:center;text-align:center;pointer-events:none;background:radial-gradient(ellipse,#14374ccc,#06101ff2 70%);animation:cy-portal-intro 1s ease both}.cy-portal-intro strong{font-size:clamp(30px,6vw,52px);font-weight:400;letter-spacing:.32em;text-indent:.32em;color:#d9edf8;text-shadow:0 0 28px #a2d8ee66}.cy-portal-intro span{font-size:11px;letter-spacing:.3em;color:#9ec1d7;margin-top:16px}@keyframes cy-portal-intro{0%{opacity:0}20%,50%{opacity:1}100%{opacity:0;visibility:hidden}}
#chuyu-welcome{pointer-events:none!important;animation:cy-welcome-safety 8s forwards}@keyframes cy-welcome-safety{0%,80%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(max-width:650px){.cy-motion-toggle{bottom:82px;right:12px}.cy-portal-intro strong{font-size:32px}}
html[data-cy-motion=off] *,html[data-cy-motion=off] *:before,html[data-cy-motion=off] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-cy-motion=off] .cy-portal-intro,html[data-cy-motion=off] #chuyu-welcome{display:none!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cy-portal-intro,#chuyu-welcome{display:none!important}}
