:root{--tb-bg:#fff;--tb-border:#e9eef3;--tb-shadow:0 6px 18px #1018280f;--tb-text:#0f172a;--tb-muted:#64748b;--btn-primary:#1f6feb;--btn-primary-hover:#1a61d0;--btn-danger:#ef4444;--btn-ghost-border:#d7e0ea;--quality-dot:#10b981}.topbar{grid-gap:16px;background:var(--tb-bg);border-bottom:1px solid #e9eef3;border-bottom:1px solid var(--tb-border);box-shadow:0 6px 18px #1018280f;box-shadow:var(--tb-shadow);color:#0f172a;color:var(--tb-text);gap:16px}.topbar__brand{align-items:center;display:flex;gap:10px;min-width:0}.topbar__logo{background:linear-gradient(135deg,#1f6feb,#22c55e);border-radius:8px;flex:0 0 28px;height:28px;width:28px}.topbar__brandName{font-weight:700;letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar__center{align-items:center;display:flex;gap:12px;justify-content:center}.topbar__qualityBadge{align-items:center;background:#f8fafc;border:1px solid #e9eef3;border:1px solid var(--tb-border);border-radius:999px;display:inline-flex;font-size:14px;gap:8px;padding:6px 10px}.topbar__qualityBadge .dot{background:#10b981;background:var(--quality-dot);border-radius:999px;box-shadow:0 0 0 2px #10b98126;height:8px;width:8px}.topbar__qualityBadge .label strong{font-weight:700}.topbar__actions{align-items:center;gap:10px;min-width:0}.topbar__user{align-items:center;display:inline-flex;gap:10px}.topbar__avatar{background:#fff;border:1px solid #e9eef3;border:1px solid var(--tb-border);border-radius:999px;box-shadow:0 2px 6px #1018280f;height:32px;object-fit:cover;width:32px}.btn{appearance:none;background:#fff;border:1px solid #e9eef3;border:1px solid var(--tb-border);border-radius:10px;box-shadow:0 2px 6px #10182814;color:#0f172a;color:var(--tb-text);font-size:14px;font-weight:600;outline:none;transition:transform .04s ease,background .15s ease,opacity .15s ease}.btn:hover{background:#f8fafc}.btn:active{transform:translateY(1px)}.btn.primary{background:#1f6feb;background:var(--btn-primary);border-color:#1f6feb;border-color:var(--btn-primary)}.btn.primary:hover{background:#1a61d0;background:var(--btn-primary-hover)}.btn.ghost{border:1px solid #d7e0ea;border:1px solid var(--btn-ghost-border);box-shadow:none;color:#0f172a;color:var(--tb-text)}.btn.ghost:hover{background:#f8fafc}.btn.danger{background:#ef4444;background:var(--btn-danger);border-color:#ef4444;border-color:var(--btn-danger);color:#fff}.btn.danger.outline{background:#0000;border:1px solid #ef444499;color:#ef4444;color:var(--btn-danger)}.btn.danger.outline:hover{background:#ef44440f}@media (max-width:1024px){.topbar{grid-template-columns:1fr auto auto}.topbar__center{display:none}}@media (max-width:560px){.topbar__brandName{display:none}.btn{padding:8px 10px}}.confirmOverlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1200}.confirmBox{background:#2b2f3a;border-radius:12px;box-shadow:0 16px 46px #00000059;color:#fff;padding:16px 18px;width:min(420px,90vw)}.confirmActions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.sidebar{overflow-y:auto;padding:8px;width:300px}.sb-section{background:#fff;border:1px solid #eee;border-radius:10px;margin-bottom:10px}.sb-section-header{align-items:center;background:#fafafa;border:none;border-radius:10px 10px 0 0;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;padding:8px 10px;width:100%}.sb-section-body{padding:8px}.sb-card--simple{align-items:center;background:#fff;border:1px solid #eee;border-radius:8px;display:flex;gap:10px;margin-bottom:6px;padding:6px 8px;transition:box-shadow .15s ease,border-color .15s ease}.sb-card--simple:hover{border-color:#ddd;box-shadow:0 2px 6px #0000000d}.sb-card-fig{align-items:center;border-radius:6px;display:flex;flex:0 0 auto;justify-content:center}.sb-thumb-fallback{background:#f3f6fb;border:1px dashed #ccc;border-radius:6px;height:40px;width:60px}.sb-card-meta{flex:1 1;min-width:0}.sb-card-title{color:#0f172a;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-card-label{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;color:#0f172a;display:inline-block;font-size:11px;margin-top:2px;padding:2px 6px}.sb-card-sub{color:#64748b;font-size:12px;margin-top:2px}.canvas-surface{background:#fff;border:1px solid #ccc;overflow:hidden;position:relative}.module{box-sizing:border-box;pointer-events:auto;position:absolute}.module.selected{outline-offset:0}.canvas-surface svg line{stroke:#d0d0d0}.canvas-surface svg rect{fill:#6e7074}.canvas-surface .module,.canvas-surface [data-module]{background:#fff;outline:2px solid #000000d9}.canvas-editor__header{cursor:move;-webkit-user-select:none;user-select:none}*{box-sizing:border-box}#root,body,html{height:100%}body{color:#111;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0}.topbar{grid-gap:12px;align-items:center;background:#fff;border-bottom:1px solid #ececec;display:grid;gap:12px;grid-template-columns:1fr auto 1fr;padding:10px 16px;position:sticky;top:0;z-index:50}.topbar__brand{font-size:20px;font-weight:700;text-align:left}.topbar__nav{display:flex;gap:8px;justify-content:center}.topbar__actions{display:flex;gap:8px;justify-content:flex-end}.btn{border:1px solid #0000;border-radius:8px;cursor:pointer;padding:8px 12px}.btn.ghost{background:#0000;border-color:#ddd}.btn.ghost:hover{border-color:#bbb}.btn.primary{background:#111;color:#fff}.btn.primary:hover{background:#000}.app{display:flex;flex-direction:column;min-height:100%}.app__main{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:320px 1fr 360px;padding:16px}.app__left{min-width:280px;overflow:hidden}.app__left .sidebar{height:calc(100vh - 80px)}.app__center{align-items:flex-start;display:flex;justify-content:center}.workspace{max-width:1100px;padding:16px 12px;width:100%}.rightpanel,.workspace{background:#fff;border:1px solid #e8e8e8;border-radius:10px;box-shadow:0 2px 10px #0000000a}.rightpanel{align-self:start;display:flex;flex-direction:column;height:calc(100vh - 80px);padding:16px;position:sticky;top:64px}.rightpanel__title{font-size:18px;font-weight:700;margin:0 0 10px}.rightpanel__body{flex:1 1;overflow:auto}.muted{color:#666}@media (max-width:1200px){.app__main{grid-template-columns:300px 1fr 320px}}@media (max-width:992px){.app__main{grid-template-columns:280px 1fr}.app__right{display:none}}@media (max-width:720px){.topbar{grid-template-columns:1fr auto}.topbar__brand{font-size:16px}.topbar__nav{display:none}.app__main{grid-template-columns:1fr}.app__left{display:none}}.workspace__toolbar{display:flex;gap:16px;justify-content:center;margin-bottom:12px}.field{align-items:center;display:inline-flex;gap:8px}.field label{font-weight:600}.field input,.field select{border:1px solid #ddd;border-radius:8px;min-width:120px;padding:6px 8px}.walltabs{display:flex;gap:8px;justify-content:center;margin-bottom:10px}.walltabs__tab{background:#f7f7f7;border:1px solid #ddd;border-radius:999px;cursor:pointer;padding:6px 10px}.walltabs__tab.is-active{background:#111;border-color:#111;color:#fff}.wall-dimensions{gap:20px;margin-top:12px}.wall-dimensions,.workspace__canvas{display:flex;justify-content:center}.canvas-surface{margin:0 auto}.chip{background:#f7f7f7;border:1px solid #ddd;border-radius:999px;cursor:pointer;padding:6px 10px}.qp__overlay{align-items:center;background:#00000061;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:100}.qp__dialog{background:#fff;border-radius:14px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;gap:14px;max-height:92vh;padding:18px;width:min(980px,96vw)}.qp__header{align-items:center;display:flex;gap:8px}.qp__title{font-size:22px;font-weight:800;margin:0}.qp__cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.qp__card{background:#fafafa;border:1px solid #e5e5e5;border-radius:12px;cursor:pointer;padding:16px;text-align:left}.qp__card.is-active{background:#fff;border-color:#111;box-shadow:0 2px 10px #0000000f}.qp__card-name{font-size:18px;font-weight:800;margin-bottom:4px}.qp__card-hl{color:#555;font-size:14px}.qp__actions{align-items:center;display:flex;gap:10px}.qp__table{border:1px solid #eee;border-radius:10px;overflow:auto}.qp__table table{background:#fff;border-collapse:collapse;width:100%}.qp__table td,.qp__table th{border-bottom:1px solid #f0f0f0;padding:10px;vertical-align:top}.qp__table thead th{background:#fff;position:sticky;top:0;z-index:1}.sticky-col{background:#fff;left:0;min-width:180px;position:sticky;z-index:2}.section-row td{background:#f9f9f9;font-weight:800}.header-row td{background:#fcfcfc}.admin-modal{background:#00000073;display:grid;inset:0;padding:16px;place-items:center;position:fixed;z-index:999}.admin-modal__card{background:#fff;border-radius:14px;box-shadow:0 20px 60px #00000059;display:grid;grid-template-rows:auto 1fr;max-height:92vh;overflow:hidden;width:min(1200px,96vw)}.admin-modal__header{align-items:center;background:#fff;border-bottom:1px solid #eee;display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.admin-modal__header h2{margin:0}.admin-modal__header .hint{font-size:12px;margin-left:8px;opacity:.7}.header-actions{align-items:center;display:flex;gap:10px}.header-actions input{border:1px solid #ddd;border-radius:8px;min-width:240px;padding:8px 10px}.admin-modal__body{background:#fafafa;overflow:auto;padding:14px}.acc{grid-gap:10px;display:grid;gap:10px}.acc__section{background:#fff;border:1px solid #eee;border-radius:12px;overflow:hidden}.acc__hdr{all:unset;align-items:center;background:#f7f7f8;color:#111;cursor:pointer;display:flex;gap:10px;padding:12px 14px;-webkit-user-select:none;user-select:none;width:100%}.acc__hdr:hover{background:#f1f1f3}.acc__title{font-weight:700}.acc__spacer{flex:1 1}.acc__count{background:#eee;border-radius:999px;font-size:12px;padding:2px 8px}.acc__chev{font-weight:700;margin-left:6px;opacity:.7;transform:rotate(90deg);transition:transform .18s ease}.acc__section.is-open .acc__chev{transform:rotate(270deg)}.acc__panel{gap:10px}.acc__panel,.admin-item{background:#fff;padding:10px}.admin-item{grid-gap:12px;align-items:flex-start;border:1px solid #eee;border-radius:10px;display:grid;gap:12px;grid-template-columns:1.2fr .9fr 2fr}.admin-item__left{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:90px 1fr}.thumb{background:#f4f4f4;border:1px solid #eaeaea;border-radius:8px;display:grid;height:70px;overflow:hidden;place-items:center;width:90px}.thumb img{height:100%;object-fit:contain;width:100%}.thumb__ph{color:#888;font-size:11px}.meta .type{color:#777;font-size:12px;margin-bottom:6px}.meta .title{grid-gap:4px;display:grid;gap:4px}.meta .title input{border:1px solid #ddd;border-radius:6px;padding:6px 8px}.chk{align-items:center;color:#333;display:inline-flex;font-size:13px;gap:6px}.admin-item__prices .prices-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto;margin-bottom:6px}.admin-item__prices span{color:#444;font-size:13px}.admin-item__sizes .sizes-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.size-row{grid-gap:8px;align-items:center;border-bottom:1px dashed #eee;display:grid;gap:8px;grid-template-columns:repeat(3,100px) 120px auto;padding:6px 0}.size-row.is-std{background:#fafcff}.sizes-empty{color:#777;font-size:12px;padding:8px}.admin-modal .btn.danger{background:#ef4444;border-color:#ef4444;color:#fff}.admin-modal .btn.danger:hover{background:#d73737}.pm-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.pm-modal{background:#fff;border-radius:14px;box-shadow:0 16px 46px #00000040;display:flex;flex-direction:column;max-height:82vh;overflow:hidden;width:min(980px,94vw)}.pm-header{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;font-weight:700;gap:12px;justify-content:space-between;padding:16px 20px}.pm-body{overflow:auto;padding:16px 20px 18px}.pm-toolbar{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:1fr auto;margin-bottom:14px}.pm-new{align-items:center;display:flex;gap:8px}.pm-new .input{width:260px}.pm-list{grid-gap:10px;display:grid;gap:10px}.pm-row{align-items:center;background:#fff;border:1px solid #eee;border-radius:10px;display:flex;gap:14px;justify-content:space-between;padding:12px 14px}.pm-meta{min-width:0}.pm-title{font-weight:700}.pm-sub{color:#666;font-size:12px}.pm-actions{display:flex;flex-wrap:wrap;gap:8px}.pm-actions .btn{min-width:84px}.input{border:1px solid #dcdcdc;border-radius:8px;min-height:36px;padding:8px 10px}.pm-confirm{align-items:center;background:#00000040;display:flex;inset:0;justify-content:center;position:fixed;z-index:1100}.pm-confirm__box{background:#2b2f3a;border-radius:12px;box-shadow:0 16px 46px #00000059;color:#fff;padding:16px 18px;width:min(380px,90vw)}.pm-confirm__text{margin-bottom:12px}.pm-confirm__actions{display:flex;gap:8px;justify-content:flex-end}@media (max-width:560px){.pm-toolbar{grid-template-columns:1fr}.pm-new{align-items:stretch;flex-direction:column}.pm-new .input{width:100%}}.modal-mask{align-items:center;animation:fadeIn .14s ease-out;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;display:flex;inset:0;justify-content:center;position:fixed;z-index:1600}.modal-card{animation:popIn .18s ease-out;background:#111214;border:1px solid #24262c;border-radius:14px;box-shadow:0 18px 60px #0000008c;color:#e9ecf1;padding:14px;width:min(520px,92vw)}.modal-header{align-items:center;border-bottom:1px solid #1e2127;display:flex;gap:10px;margin:-2px -2px 12px;padding:2px 2px 8px}.modal-header .icon{font-size:20px}.modal-title{font-weight:700}.modal-body{grid-gap:10px;display:grid;gap:10px}.field label{color:#aab3c2;display:block;font-size:13px;margin-bottom:6px}.redeem-input{background:#0f1216;border:1px solid #28303a;border-radius:10px;color:#e9ecf1;font-size:15px;outline:none;padding:10px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.redeem-input::placeholder{color:#6a7381}.redeem-input:focus{border-color:#3a8bff;box-shadow:0 0 0 3px #3a8bff2e}.helper{color:#8a94a5;font-size:12px}.error-text{color:#ff8a8a;font-size:13px;margin-top:2px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.btn .spinner{animation:spin .8s linear infinite;border:2px solid #3b3f47;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:6px;vertical-align:-3px;width:16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.app-footer{background:#fafafa;border-top:1px solid #e5e7eb;color:#334155}.app-footer__inner{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto;max-width:1280px;padding:12px 16px}.app-footer__brand{font-weight:600;letter-spacing:.2px}.app-footer__dot{margin:0 8px;opacity:.4}.app-footer__tag{background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#475569;font-size:12px;padding:2px 8px}.app-footer__right{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.app-footer__credit strong{font-weight:700}.app-footer__sep{opacity:.4}.app-footer__year{opacity:.7}@media (prefers-color-scheme:dark){.app-footer{background:#0f172a;border-top-color:#2b2f36;color:#cbd5e1}.app-footer__tag{background:#111827;border-color:#263042;color:#cbd5e1}}.shopOverlay{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:1800}.shopModal{background:#111;border-radius:14px;box-shadow:0 20px 60px #00000080;color:#fff;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto;padding:20px;width:min(1000px,94vw)}.shopHeader{align-items:center;display:flex;gap:8px}.shopHeader strong{font-size:22px;font-weight:800}.shopHeader .btn{margin-left:auto}.shopIntro{color:#ddd;font-size:14px;margin:0}.shopGrid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:6px}.shopCard{background:#0b0b0b;border:1px solid #262626;border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:16px;transition:border-color .15s ease,transform .15s ease}.shopCard:hover{border-color:#3a3a3a;transform:translateY(-1px)}.shopCard__title{font-size:18px;font-weight:800;margin:0}.shopCard__cost{font-size:16px;font-weight:600;margin:0}.shopCard__desc{color:#bbb;font-size:14px;line-height:1.35;margin:0}.shopCard__actions{align-items:center;display:flex;gap:10px;margin-top:auto}.shopFootnote{color:#999;font-size:12px}
/*# sourceMappingURL=main.1d4240cf.css.map*/