.storage-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:7px 30px;background:#e7edf0;color:#435b67;font-size:11px;line-height:1.4}
.storage-status #saveState{display:inline-flex;position:static;max-width:none;padding:3px 9px;opacity:1;pointer-events:auto;transform:none;font-size:inherit}
.storage-status span{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid #ccd8dd;border-radius:999px;background:#f8fafb}
.storage-status #cloudState{background:#eff6e5;border-color:#dbe8c7;color:#48652a}
#pitch [data-id]{outline:none;cursor:grab}
#pitch [data-id]:focus-visible{filter:drop-shadow(0 0 1px #172c39);stroke:#163d63;stroke-width:.35;outline:3px solid #68b5e6;outline-offset:2px}
.three-view-loading{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#102b27d9;color:#fff;text-align:center;backdrop-filter:blur(4px)}
#canvasWrap:has(#threeView canvas) #threeViewLoading{display:none}
.three-view-loading[hidden]{display:none}
.three-view-loading strong{max-width:32rem;font-size:clamp(15px,2vw,19px);font-weight:650;text-shadow:0 1px 3px #0005}
.three-view-spinner{width:34px;height:34px;border:3px solid #ffffff50;border-top-color:#c5f565;border-radius:50%;animation:three-view-spin .8s linear infinite}
.three-view-progress{position:relative;display:block;width:min(280px,70%);height:7px;overflow:hidden;border-radius:99px;background:#ffffff3b}
.three-view-progress::after{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:#c5f565;content:"";animation:three-view-progress 1.2s ease-in-out infinite alternate}
#threeView progress{width:110px;height:7px;accent-color:#c5f565}
@keyframes three-view-spin{to{transform:rotate(360deg)}}
@keyframes three-view-progress{from{transform:translateX(0)}to{transform:translateX(165%)}}
@media(prefers-reduced-motion:reduce){.three-view-spinner{animation:none;border-right-color:#c5f565}.three-view-progress::after{animation:none;width:62%}}
@media(max-width:850px){.storage-status{justify-content:flex-start;padding:6px 16px}}
@media(max-width:560px){.storage-status{gap:4px;padding:6px 8px;font-size:10px}.storage-status span{min-height:26px;padding:2px 7px}.tools button{min-height:44px;flex:1 0 28%;justify-content:center}.catalog-toolbar input,.catalog-toolbar select,.library-filters input,.library-filters select{min-height:44px}.catalog-toolbar>button,.library-filters>button{min-height:44px}.library-row>button{min-height:44px}.utilitybar .export-tools{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:5px}.utilitybar .export-tools button{min-height:44px;flex:none}.utilitybar .view-tools{flex-wrap:wrap}.catalog-more{min-height:44px;padding:10px 16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.storage-status{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:8px;overflow-x:auto;white-space:nowrap}.storage-status #saveState,.storage-status #cloudState{display:inline-flex;flex:0 0 auto;width:auto;border-radius:999px}
@media(max-width:560px){.storage-status{gap:5px;padding:6px 8px;font-size:9px}.storage-status span{padding:2px 6px}}
