:root{--balele-bg:#0f0f1a;--balele-panel:rgba(255,255,255,.94);--balele-card:rgba(255,255,255,.08);--balele-gold:#ffd700;--balele-text:#f4f4f7;--balele-muted:#a6a6b5;--balele-dark:#151525;--balele-radius:20px;--balele-header-h:64px;--balele-shadow:0 20px 60px rgba(0,0,0,.35)}
*{box-sizing:border-box}body.balele-body{margin:0;background:radial-gradient(circle at top left,#24244a 0,#0f0f1a 42%,#090912 100%);color:var(--balele-text);font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}.balele-site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:var(--balele-header-h);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(9,9,18,.72);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}.balele-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:.08em}.balele-brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#ffd700,#ff9d00);color:#111}.balele-header-nav{display:flex;align-items:center;gap:16px}.balele-header-nav a{color:#fff;text-decoration:none;font-size:14px;opacity:.85}.balele-header-nav a:hover{opacity:1;color:var(--balele-gold)}.balele-home-page{height:100vh;padding-top:var(--balele-header-h);overflow:hidden}.balele-wall-section{position:relative;height:calc(100vh - var(--balele-header-h));overflow:hidden}.balele-home-intro{position:absolute;z-index:10;top:24px;left:24px;max-width:360px;padding:22px 24px;border-radius:24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);box-shadow:var(--balele-shadow);backdrop-filter:blur(18px);pointer-events:none}.balele-home-intro .eyebrow{margin:0 0 8px;color:var(--balele-gold);font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.balele-home-intro h1{margin:0;font-size:34px;line-height:1.05}.balele-home-intro p:last-child{margin:10px 0 0;color:var(--balele-muted);line-height:1.5}.balele-wall-viewport{position:absolute;inset:0;cursor:grab;touch-action:none;overflow:hidden}.balele-wall-viewport.is-dragging{cursor:grabbing}.balele-wall-canvas{position:absolute;top:0;left:0;width:1px;height:1px;transform-origin:0 0;will-change:transform}.balele-wall-status{position:absolute;left:-120px;top:-20px;width:240px;text-align:center;color:var(--balele-muted);font-weight:700}.balele-pin{position:absolute;width:110px;height:110px;border-radius:22px;padding:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);box-shadow:0 16px 40px rgba(0,0,0,.32);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;animation:baleleFloat var(--float-duration,5s) ease-in-out infinite;animation-delay:var(--float-delay,0s)}.balele-pin:hover{transform:translateY(-6px) scale(1.04);box-shadow:0 22px 56px rgba(255,215,0,.18)}.balele-pin img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 8px 12px rgba(0,0,0,.32))}@keyframes baleleFloat{0%,100%{translate:0 0}50%{translate:0 -6px}}.balele-toolball{position:fixed;z-index:30;right:24px;bottom:24px;display:flex;align-items:center;gap:8px;padding:10px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px);box-shadow:var(--balele-shadow)}.balele-toolball button,.balele-toolball input{border:0;border-radius:999px;font:inherit}.balele-toolball button{padding:10px 14px;background:rgba(255,255,255,.12);color:#fff;font-weight:800;cursor:pointer}.balele-toolball button:hover{background:var(--balele-gold);color:#111}.balele-toolball input{width:160px;padding:10px 14px;background:#fff;color:#111;outline:0}.balele-pin-modal[hidden]{display:none}.balele-pin-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}.balele-pin-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(8px)}.balele-pin-modal-panel{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,420px) minmax(280px,440px);gap:24px;width:min(920px,96vw);max-height:86vh;overflow:auto;border-radius:28px;background:var(--balele-panel);color:var(--balele-dark);box-shadow:var(--balele-shadow);padding:24px}.balele-pin-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;border-radius:50%;background:#111;color:#fff;font-size:24px;line-height:1;cursor:pointer}.balele-pin-modal-media{border-radius:24px;background:linear-gradient(135deg,#f8f8ff,#ececf6);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;min-height:320px}.balele-pin-modal-media>img{max-width:100%;max-height:340px;object-fit:contain}.balele-modal-gallery{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.balele-modal-gallery img{width:52px;height:52px;object-fit:cover;border-radius:12px;border:2px solid rgba(0,0,0,.08)}.balele-pin-modal-content h2{margin:0 42px 10px 0;font-size:30px;line-height:1.1}.balele-modal-description{color:#555;line-height:1.55}.balele-modal-taxonomy{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.balele-tag{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f0edf9;color:#342250;text-decoration:none;font-size:13px;font-weight:800}.balele-modal-owner{display:flex;align-items:center;gap:10px;padding:12px;border-radius:16px;background:#f7f7fb;margin:14px 0}.balele-modal-owner img{width:42px;height:42px;border-radius:50%}.balele-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.balele-modal-actions button{border:0;border-radius:999px;padding:11px 16px;font-weight:900;cursor:pointer;background:#111;color:#fff}.balele-modal-actions button.is-active{background:var(--balele-gold);color:#111}.balele-modal-stats{margin-top:14px;color:#666;font-weight:800}.balele-basic-page{padding:100px 24px;color:#fff}@media (max-width:760px){body.balele-body{overflow:hidden}.balele-site-header{padding:0 14px}.balele-header-nav{gap:10px}.balele-header-nav a{font-size:12px}.balele-home-intro{display:none}.balele-toolball{left:12px;right:12px;bottom:14px;overflow:auto}.balele-toolball input{width:130px}.balele-pin{width:86px;height:86px;border-radius:18px}.balele-pin-modal{padding:10px}.balele-pin-modal-panel{grid-template-columns:1fr;width:96vw;max-height:88vh;padding:16px}.balele-pin-modal-media{min-height:240px}.balele-pin-modal-content h2{font-size:24px}}

/* Phase 4 Step 1: Pin Modal complete closed loop */
.balele-pin-modal-panel{grid-template-columns:minmax(280px,430px) minmax(320px,460px);align-items:stretch;overflow:hidden}.balele-modal-main-image-wrap{display:grid;place-items:center;width:100%;min-height:280px}.balele-modal-gallery{width:100%;justify-content:center;max-height:122px;overflow:auto}.balele-modal-gallery-thumb{width:56px;height:56px;padding:0;border:2px solid rgba(0,0,0,.08);border-radius:14px;background:#fff;cursor:pointer;overflow:hidden;opacity:.72}.balele-modal-gallery-thumb.is-active{opacity:1;border-color:#111}.balele-modal-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.balele-pin-modal-content{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:16px;min-height:0}.balele-modal-scroll-main{min-height:0;overflow:auto;padding-right:4px}.balele-modal-owner-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:18px;background:#f7f7fb;margin:14px 0}.balele-modal-owner{display:flex;align-items:center;gap:10px;padding:0;margin:0;background:transparent}.balele-modal-owner img{width:46px;height:46px;border-radius:50%;object-fit:cover}.balele-modal-owner-meta{display:flex;flex-direction:column;gap:2px}.balele-modal-owner-meta span{font-size:12px;color:#666;font-weight:800}.balele-modal-follow-btn{border:0;border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer;background:#111;color:#fff;white-space:nowrap}.balele-modal-follow-btn.is-active{background:var(--balele-gold);color:#111}.balele-modal-comments{border-radius:20px;background:#f7f7fb;padding:12px;min-height:178px}.balele-modal-comments-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.balele-modal-comments-head span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#111;color:#fff;font-size:12px;font-weight:900}.balele-modal-comments-list{max-height:112px;overflow:auto;padding-right:4px}.balele-modal-comments-empty{margin:10px 0;color:#777;font-size:13px}.balele-modal-comment{display:grid;grid-template-columns:32px 1fr;gap:8px;margin:0 0 10px}.balele-modal-comment img{width:32px;height:32px;border-radius:50%;object-fit:cover}.balele-modal-comment strong{display:block;font-size:13px}.balele-modal-comment p{margin:2px 0 0;color:#555;font-size:13px;line-height:1.45}.balele-modal-comment-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.balele-modal-comment-form textarea{width:100%;resize:none;border:1px solid rgba(0,0,0,.1);border-radius:14px;padding:9px 10px;font:inherit;outline:0}.balele-modal-comment-form textarea:focus{border-color:#111}.balele-modal-comment-form button{border:0;border-radius:14px;padding:0 14px;background:#111;color:#fff;font-weight:900;cursor:pointer}.balele-modal-comment-note{min-height:18px;margin:6px 0 0;color:#666;font-size:12px;font-weight:800}.balele-modal-actions button.is-active{background:var(--balele-gold);color:#111}.balele-modal-stats{font-size:13px}@media (max-width:760px){.balele-pin-modal-panel{grid-template-columns:1fr;overflow:auto}.balele-pin-modal-content{display:block}.balele-modal-scroll-main{overflow:visible}.balele-modal-main-image-wrap{min-height:220px}.balele-modal-comments{margin-top:14px}.balele-modal-comments-list{max-height:128px}.balele-modal-comment-form{grid-template-columns:1fr}.balele-modal-comment-form button{padding:10px 14px}.balele-modal-owner-card{align-items:flex-start}.balele-modal-follow-btn{padding:9px 12px}}

/* BALELE Phase 4 Step 1 hotfix */
.balele-pin-modal{z-index:1000;}
.balele-pin-modal-panel{display:grid !important;grid-template-columns:minmax(320px,52%) minmax(300px,1fr) !important;gap:24px !important;width:min(1120px,94vw) !important;max-height:88vh !important;overflow:hidden !important;padding:28px !important;border-radius:32px !important;}
.balele-pin-modal-media{position:relative;z-index:1;min-width:0;min-height:0;height:calc(88vh - 56px);max-height:760px;justify-content:flex-start !important;overflow:hidden;}
.balele-modal-main-image-wrap{width:100%;flex:1 1 auto;min-height:0 !important;display:grid;place-items:center;overflow:hidden;}
#balele-modal-image{display:block;width:auto !important;height:auto !important;max-width:100% !important;max-height:100% !important;object-fit:contain !important;}
.balele-pin-modal-content{position:relative;z-index:2;min-width:0;min-height:0;display:grid !important;grid-template-rows:minmax(0,1fr) auto !important;gap:16px !important;overflow:hidden;}
.balele-modal-scroll-main{min-height:0;overflow:auto;padding:4px 6px 0 0;}
.balele-pin-modal-content h2{margin:0 48px 14px 0 !important;font-size:34px !important;line-height:1.08 !important;}
.balele-modal-owner-card{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;}
.balele-modal-follow-btn.is-disabled,.balele-modal-follow-btn:disabled{opacity:.48;cursor:not-allowed;background:#777 !important;color:#fff !important;}
.balele-modal-actions button,.balele-modal-comment-form button,.balele-modal-follow-btn{appearance:none;-webkit-appearance:none;}
.balele-modal-comments{min-height:188px;max-height:245px;overflow:hidden;}
.balele-modal-comments-list{max-height:118px;overflow:auto;}
.balele-modal-comment-form textarea{min-height:42px;max-height:86px;}
@media (max-width:760px){.balele-pin-modal-panel{grid-template-columns:1fr !important;width:96vw !important;max-height:90vh !important;overflow:auto !important;padding:16px !important;}.balele-pin-modal-media{height:auto;max-height:none;min-height:240px;}.balele-modal-main-image-wrap{min-height:220px !important;max-height:42vh;}.balele-pin-modal-content{display:block !important;overflow:visible;}.balele-modal-scroll-main{overflow:visible;}.balele-pin-modal-content h2{font-size:24px !important;margin-right:44px !important;}.balele-modal-comments{max-height:none;}}

/* BALELE v3 Phase 4 Step 1 Final: Modal architecture lock */
.balele-modal-final .balele-modal-section{margin:14px 0;padding:14px;border-radius:20px;background:#f7f7fb;border:1px solid rgba(0,0,0,.05)}
.balele-modal-final .balele-modal-section h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#777}
.balele-modal-final .balele-modal-description{margin:0 0 12px;color:#555;line-height:1.55}
.balele-modal-taxonomy-list{display:grid;gap:8px;margin:0!important}
.balele-tax-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start;font-size:14px;line-height:1.45}
.balele-tax-row strong{color:#222;font-weight:900}
.balele-tax-values{min-width:0;color:#666;font-weight:800}
.balele-tax-values a{color:#35205e;text-decoration:none;border-bottom:1px solid rgba(53,32,94,.18)}
.balele-tax-values a:hover{color:#111;border-bottom-color:#111}
.balele-tax-values em{color:#aaa;font-style:normal}
.balele-modal-owner-section .balele-modal-owner-card{align-items:center;margin:0;padding:0;background:transparent;border-radius:0}
.balele-modal-owner-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.balele-modal-message-btn,.balele-modal-buy-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 14px;font-weight:900;text-decoration:none;white-space:nowrap}
.balele-modal-message-btn{background:#fff;color:#111;border:1px solid rgba(0,0,0,.1)}
.balele-modal-buy-btn{background:var(--balele-gold);color:#111;margin-bottom:10px}
.balele-modal-buy-btn[hidden],.balele-modal-message-btn[hidden]{display:none!important}
.balele-modal-actions{margin-top:0!important}
.balele-modal-actions button{min-width:96px}
.user-decorator{display:flex;align-items:center;gap:12px;min-width:0}
.user-decorator-avatar-wrap{position:relative;flex:0 0 auto;width:54px;height:54px;border-radius:50%;padding:3px;background:#d7d7df;box-shadow:0 8px 18px rgba(0,0,0,.12)}
.user-decorator-avatar-wrap img{width:100%!important;height:100%!important;border-radius:50%;object-fit:cover;display:block;background:#fff}
.user-decorator-level-corner{position:absolute;right:-4px;bottom:-3px;display:inline-grid;place-items:center;min-width:28px;height:18px;padding:0 5px;border-radius:999px;background:#111;color:#fff;font-size:10px;font-weight:1000;box-shadow:0 4px 10px rgba(0,0,0,.25)}
.user-decorator-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.user-decorator-name-row{display:flex;align-items:center;gap:7px;min-width:0}
.user-decorator-nickname{font-size:15px;color:#222;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-decorator-subline{font-size:12px;color:#666;font-weight:800}
.user-decorator-badge{width:11px;height:11px;transform:rotate(45deg);border-radius:2px;background:#9aa0aa;box-shadow:0 0 0 2px rgba(255,255,255,.9),0 2px 5px rgba(0,0,0,.2)}
.user-decorator.level-1 .user-decorator-avatar-wrap{background:#cfd2d8}
.user-decorator.level-2 .user-decorator-avatar-wrap{background:#7fb7ff}
.user-decorator.level-3 .user-decorator-avatar-wrap{background:#9c7bff}
.user-decorator.level-4 .user-decorator-avatar-wrap{background:#ff8fcb}
.user-decorator.level-5 .user-decorator-avatar-wrap{background:linear-gradient(135deg,#ffe680,#ffb300)}
.user-decorator.level-2 .user-decorator-nickname{color:#2875c7}
.user-decorator.level-3 .user-decorator-nickname{color:#6747d8}
.user-decorator.level-4 .user-decorator-nickname{color:#c24182}
.user-decorator.level-5 .user-decorator-nickname{color:#b8860b}
.user-decorator.level-2 .user-decorator-badge{background:#4aa3ff}
.user-decorator.level-3 .user-decorator-badge{background:#7c5cff}
.user-decorator.level-4 .user-decorator-badge{background:#ff5fa2}
.user-decorator.level-5 .user-decorator-badge{background:#ffbf00}
@media (max-width:760px){.balele-tax-row{grid-template-columns:86px 1fr}.balele-modal-owner-section .balele-modal-owner-card{display:grid;grid-template-columns:1fr;gap:12px}.balele-modal-owner-actions{justify-content:flex-start}.balele-modal-actions button{min-width:auto;flex:1}.user-decorator-nickname{max-width:190px}}
.balele-modal-buy-btn.is-reserved{opacity:.72;cursor:not-allowed}

.balele-modal-market-entitlement{margin:0 0 10px;padding:9px 11px;border-radius:14px;background:#fff8dd;border:1px solid rgba(160,119,0,.18);color:#6f5200;font-size:12px;font-weight:850;line-height:1.35}.balele-modal-market-entitlement[hidden]{display:none!important}


/* Phase 8 Step 6C: Modal cart success CTA fallback */
.balele-market-cart-success{display:grid;gap:8px}.balele-market-cart-success strong{display:block;color:#064e3b;font-size:13px;font-weight:950}.balele-market-cart-success-actions{display:flex;flex-wrap:wrap;gap:8px}.balele-market-cart-success-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:7px 12px;border-radius:999px;background:rgba(17,24,39,.08);color:#111827!important;border:1px solid rgba(17,24,39,.12);font-size:12px;font-weight:950;text-decoration:none!important}.balele-market-cart-success-btn.is-primary{background:#111827;color:#fff!important;border-color:#111827}.balele-modal-buy-btn.is-added,.balele-badge-mobile-add-cart-btn.is-added{box-shadow:0 12px 30px rgba(52,211,153,.22)}

/* Phase 8 Step 10D1B: Add to Cart success fallback for legacy modal classes */
#balele-modal-buy.is-view-cart,
#balele-modal-buy.balele-view-cart-cta,
#balele-modal-mobile-add-cart.is-view-cart,
#balele-modal-mobile-add-cart.balele-view-cart-cta {
  background: linear-gradient(135deg,#f97316,#fb923c,#f59e0b) !important;
  color: #fff !important;
  box-shadow: 0 18px 38px rgba(249,115,22,.32) !important;
  opacity: 1 !important;
}
