
/* AI Marketplace — page-synchronous skeleton system */
.page-skeleton{position:fixed;inset:0;z-index:2147483000;overflow:auto;background:var(--off,#f5f5f4);color:var(--ink,#111);padding:0;opacity:1;visibility:visible;transition:opacity .24s ease,visibility .24s ease}
.page-skeleton.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.skel-wrap{width:min(1180px,calc(100% - 32px));margin:0 auto}
.skel-shape{background:color-mix(in srgb,var(--ink,#111) 9%,transparent);border-radius:12px;animation:skelPulse 1.05s ease-in-out infinite}
.skel-line{height:12px;border-radius:999px}
.skel-line.sm{height:9px}.skel-line.lg{height:18px}
.skel-header{height:70px;border-bottom:1px solid color-mix(in srgb,var(--ink,#111) 8%,transparent);display:flex;align-items:center}
.skel-header-inner{width:min(1180px,calc(100% - 32px));margin:auto;display:flex;align-items:center;gap:18px}
.skel-logo{width:38px;height:38px;border-radius:12px}.skel-nav{margin-left:auto;display:flex;gap:10px}.skel-nav i{display:block;width:64px;height:10px;border-radius:999px}
.skel-hero{padding:58px 0 34px}.skel-kicker{width:90px;height:22px;border-radius:999px;margin-bottom:18px}.skel-title{width:min(560px,85%);height:54px;border-radius:14px;margin-bottom:15px}.skel-copy{width:min(680px,90%);height:12px;border-radius:999px;margin-bottom:9px}.skel-copy.short{width:45%}
.skel-toolbar{display:flex;gap:10px;margin:20px 0}.skel-input{height:46px;flex:1;border-radius:14px}.skel-btn{width:110px;height:46px;border-radius:14px}
.skel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-bottom:60px}
.skel-card{padding:18px;border:1px solid color-mix(in srgb,var(--ink,#111) 7%,transparent);border-radius:20px;background:color-mix(in srgb,var(--ink,#111) 2%,transparent)}
.skel-icon{width:44px;height:44px;border-radius:13px;margin-bottom:16px}.skel-card .skel-line{margin-bottom:10px}.skel-card .w1{width:72%}.skel-card .w2{width:92%}.skel-card .w3{width:55%}
.skel-community .skel-hero{padding-top:64px}.skel-tabs{height:48px;border-radius:18px;margin:10px 0 20px}.skel-post{height:150px;border-radius:20px;margin-bottom:14px}
.skel-op .skel-hero{padding-top:48px}.skel-filters{display:flex;gap:10px;margin:12px 0 22px}.skel-chip{height:34px;width:85px;border-radius:999px}.skel-op-card{height:185px;border-radius:20px}
.skel-prompts .skel-hero{padding-top:55px}.skel-prompt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skel-prompt-card{height:190px;border-radius:20px}
.skel-dashboard .skel-header{height:76px}.skel-dashboard-main{display:grid;grid-template-columns:260px 1fr;gap:22px;padding-top:26px}.skel-side{height:540px;border-radius:22px}.skel-dash-content .skel-title{height:38px;width:260px}.skel-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}.skel-stat{height:110px;border-radius:18px}.skel-wide{height:260px;border-radius:20px}
.skel-chat{background:var(--hero-bg,var(--surface,#11110f));padding:14px;height:100%;display:flex}.skel-chat-panel{width:min(900px,100%);height:100%;margin:auto;border:1px solid color-mix(in srgb,var(--ink,#fff) 9%,transparent);border-radius:20px;padding:16px;display:flex;flex-direction:column}.skel-chat-top{height:42px;width:180px;border-radius:12px}.skel-chat-messages{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:20px 4px}.skel-msg{height:58px;width:62%;border-radius:16px}.skel-msg.right{margin-left:auto;width:48%}.skel-chat-input{height:54px;border-radius:16px}
.skel-legal{padding-top:90px}.skel-paper{max-width:900px;margin:auto}.skel-paper .skel-title{width:400px;height:42px}.skel-paper-block{height:110px;border-radius:18px;margin:20px 0}
.skel-404{min-height:100%;display:grid;place-items:center;text-align:center}.skel-404-box{width:min(560px,90%)}.skel-404-title{width:190px;height:80px;margin:0 auto 18px;border-radius:18px}.skel-404-line{width:70%;height:12px;margin:0 auto 10px;border-radius:999px}
.skel-admin{background:#f5f5f4}.skel-admin .skel-admin-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.skel-admin-side{border-right:1px solid #ddd;padding:22px}.skel-admin-side .skel-line{margin-bottom:16px}.skel-admin-main{padding:28px}.skel-admin-top{height:44px;width:220px;margin-bottom:25px}.skel-admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.skel-admin-stat{height:105px;border-radius:16px}.skel-admin-table{height:360px;border-radius:18px;margin-top:20px}
@keyframes skelPulse{0%,100%{opacity:.48}50%{opacity:.82}}
@media(max-width:800px){
 .skel-grid,.skel-prompt-grid{grid-template-columns:1fr 1fr}.skel-dashboard-main,.skel-admin .skel-admin-shell{grid-template-columns:1fr}.skel-side,.skel-admin-side{display:none}.skel-stat-row{grid-template-columns:1fr 1fr}.skel-admin-stats{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
 .skel-grid,.skel-prompt-grid{grid-template-columns:1fr}.skel-nav{display:none}.skel-title{height:42px}.skel-stat-row{grid-template-columns:1fr}.skel-admin-main{padding:18px}.skel-toolbar{flex-direction:column}.skel-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.skel-shape{animation:none}.page-skeleton{transition:none}}

/* Textual loading states are intentionally replaced by silent skeleton shapes. */
.showcase-loading,.community-loading,.prompt-loading,#loading,.op-empty.skeleton-state,.table-loading td{font-size:0!important;color:transparent!important}
.showcase-loading::before,.community-loading::before,.prompt-loading::before,#loading::before,.op-empty.skeleton-state::before,.table-loading td::before{content:"";display:block;height:14px;width:100%;max-width:420px;border-radius:999px;background:color-mix(in srgb,var(--ink,#111) 9%,transparent);animation:skelPulse 1.05s ease-in-out infinite}
.community-loading::before,.showcase-loading::before{height:120px;max-width:none;border-radius:20px}
.prompt-loading::before{height:180px;max-width:none;border-radius:20px}
#loading::before{height:44px;max-width:280px}
.op-empty.skeleton-state::before{height:180px;max-width:none;border-radius:20px}
.table-loading td::before{height:14px;max-width:85%}

/* Chat skeleton mirrors the actual chat DOM/layout, including toolbar, limits,
   message area, suggestions and bottom composer. */
.skel-chat{background:var(--hero-bg,var(--surface,#11110f));padding:4px 10px 8px;display:block;overflow:hidden}
.skel-chat-shell{height:100%;width:min(980px,100%);margin:0 auto;display:flex;flex-direction:column;min-height:0}
.skel-chat-head{flex:0 0 auto;min-height:46px;padding:0 46px 4px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.skel-chat-brand{display:flex;align-items:center;gap:12px;min-width:0}
.skel-chat-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:15px}
.skel-chat-head-copy{display:grid;gap:4px;min-width:0}
.skel-provider{width:70px;height:7px;border-radius:999px}
.skel-chat-title{width:170px;height:17px;border-radius:7px}
.skel-private{width:130px;height:6px;border-radius:999px}
.skel-chat-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.skel-language{width:92px;height:30px;border-radius:999px}
.skel-clear{width:76px;height:30px;border-radius:10px}
.skel-home{width:38px;height:38px;border-radius:12px}
.skel-limit{flex:0 0 auto;height:26px;width:100%;margin:0 0 5px;border-radius:11px}
.skel-chat-panel{flex:1 1 auto;min-height:0;width:100%;border:1px solid color-mix(in srgb,var(--ink,#fff) 9%,transparent);border-radius:17px;padding:6px 8px 7px;display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--surface,#111) 92%,transparent)}
.skel-chat-messages{flex:1 1 auto;min-height:120px;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;overflow:hidden;padding:6px 3px 10px 0}
.skel-msg{height:58px;width:62%;border-radius:16px}.skel-msg.right{margin-left:auto;width:48%;height:48px}
.skel-chat-compose{flex:0 0 auto;min-height:0}
.skel-chat-suggestions{display:flex;gap:6px;overflow:hidden;padding:2px 0 5px}
.skel-suggestion{height:27px;width:92px;flex:0 0 auto;border-radius:999px}.skel-suggestion.wide{width:142px}
.skel-chat-input{height:48px;width:100%;border-radius:15px;display:flex;align-items:center;padding:0 7px}
@media(max-width:650px){
 .skel-chat{padding:8px}
 .skel-chat-head{padding-right:44px}
 .skel-chat-actions{gap:5px}
 .skel-language{width:72px}.skel-clear{width:62px}.skel-home{width:36px;height:36px}
 .skel-chat-title{width:145px}
 .skel-msg{width:78%}.skel-msg.right{width:62%}
}
@media(max-width:430px){.skel-language{display:none}.skel-chat-head{padding-right:42px}.skel-chat-title{width:125px}}
