:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f5f1ea;--surface:#fffdf8;--surface-muted:#eee7dc;--ink:#1f2522;--ink-soft:#59635d;--line:#2b343024;--line-strong:#2b34303d;--accent:#0f6b64;--accent-soft:#0f6b641f;--clay:#b1794d;--blue:#2f5f9c;--danger:#b6483d;background:var(--page);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:linear-gradient(135deg, #fffdf8f5, #edf4f0c7), repeating-linear-gradient(90deg, #1f252207 0, #1f252207 1px, transparent 1px, transparent 88px), var(--page);min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}[hidden]{display:none!important}button,.import-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s}button:hover,.import-button:hover{background:#f7fbf8;border-color:#0f6b6461;transform:translateY(-1px);box-shadow:0 10px 24px #1f252214}button:active,.import-button:active{transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.48;transform:none}.app-header{z-index:18;grid-template-columns:minmax(250px,310px) minmax(0,1fr);align-items:center;gap:20px;min-height:86px;padding:18px 24px 12px;display:grid;position:relative}.app-shell{grid-template-rows:auto minmax(0,1fr);height:100vh;min-height:100vh;display:grid;overflow:hidden}.auth-gate{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-shell{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:28px;width:min(920px,100%);display:grid}.auth-hero{gap:14px;display:grid}.auth-logo{filter:drop-shadow(0 16px 28px #1f25221a);width:78px;height:78px}.auth-copy{max-width:520px;color:var(--ink-soft);margin:0;font-size:15px;line-height:1.8}.auth-panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8d1;border-radius:8px;gap:18px;padding:22px;display:grid;box-shadow:0 28px 80px #1f25221f}.brand-block{align-items:center;gap:14px;width:min(100%,310px);min-width:0;display:flex}.brand-link{color:inherit;border-radius:8px;outline:none;text-decoration:none}.brand-link:focus-visible{box-shadow:0 0 0 3px #0f6b6429}.brand-logo{filter:drop-shadow(0 12px 24px #1f252214);flex:none;width:44px;height:44px}.brand-block>div{min-width:0;max-width:250px}.brand-block .eyebrow{font-size:10px}.brand-block h1{white-space:nowrap;max-width:250px;font-size:18px;line-height:1.08}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800}h1,h2{letter-spacing:0;margin:0;font-weight:800}h1{font-size:26px;line-height:1.08}h2{font-size:21px;line-height:1}.project-toolbar{flex-wrap:nowrap;justify-content:end;align-items:start;gap:8px;display:flex}.param-field input,.param-field select,.texture-rotation select{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fffdf8e0;border-radius:7px;outline:none;padding:9px 10px}.param-field select,.texture-rotation select,.modal-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23606b65' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:36px}.param-field input:focus,.param-field select:focus,.texture-rotation select:focus{border-color:#0f6b649e;box-shadow:0 0 0 3px #0f6b641f}.project-toolbar button,.import-button{flex:none;place-items:center;min-height:37px;padding:0 12px;font-size:12px;font-weight:800;display:grid}.toolbar-actions{align-self:center;align-items:center;gap:8px;display:flex;position:relative}.toolbar-action,.toolbar-primary,.action-menu-trigger{min-width:74px;min-height:44px}.project-toolbar .action-menu-trigger{justify-content:center;align-items:center;display:inline-flex}.toolbar-primary{color:#fff;background:var(--accent);border-color:#0f6b6494;min-width:86px}.toolbar-primary:hover{color:#fff;background:#0c5b55;border-color:#0f6b64c2}.action-menu{flex:none;position:relative}.action-menu-trigger:after{content:"⌄";color:var(--ink-soft);margin-left:6px;font-size:11px;line-height:1}.action-menu.is-open .action-menu-trigger,.action-menu-trigger:hover{background:#f7fbf8;border-color:#0f6b6461;box-shadow:0 10px 24px #1f252214}.action-menu-panel{z-index:50;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8fa;border-radius:8px;gap:4px;width:248px;padding:7px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 22px 54px #1f252229}.action-menu-panel[hidden]{display:none}.action-menu-panel-small{width:218px}.action-menu-panel button,.action-menu-panel .import-button{text-align:left;width:100%;min-width:0;min-height:48px;box-shadow:none;background:0 0;border-color:#0000;justify-content:start;place-items:center start;gap:2px;padding:8px 10px}.action-menu-panel button:hover,.action-menu-panel .import-button:hover{background:#0f6b640e;border-color:#0f6b6433;transform:none}.action-menu-panel span{color:var(--ink);font-size:13px;font-weight:800}.action-menu-panel small{color:var(--ink-soft);font-size:11px;font-weight:600;line-height:1.35}.action-menu-panel hr{background:var(--line);border:0;width:100%;height:1px;margin:4px 0}.danger-action,.modal-confirm.is-danger{color:#fff;background:var(--danger);border-color:#b6483dc2}.danger-action:hover,.modal-confirm.is-danger:hover{background:#a84036;border-color:#b6483deb}.import-button{position:relative;overflow:hidden}.import-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.workspace{grid-template-columns:minmax(260px,.52fr) minmax(480px,1fr) minmax(540px,1.08fr);align-items:stretch;gap:18px;height:100%;min-height:0;padding:0 24px 24px;display:grid;overflow:hidden}.library-panel,.texture-panel{border:1px solid var(--line);background:#fffdf8d6;border-radius:8px;min-width:0;height:100%;min-height:0;max-height:none;overflow:auto;box-shadow:0 20px 52px #1f252211}.library-panel{flex-direction:column;gap:14px;padding:16px;display:flex}.texture-panel{flex-direction:column;gap:16px;padding:16px;display:flex;overflow:auto}.panel-heading{gap:6px;display:grid}.panel-heading-row{grid-template-columns:minmax(0,1fr) auto;align-items:start}.panel-heading-row .panel-note{grid-column:1/-1}.panel-heading .eyebrow{margin:0}.panel-note{color:var(--ink-soft);margin:0;font-size:12px}.book-list{gap:10px;display:grid}.library-create-button{color:#fff;background:var(--accent);border-color:#0f6b648c;min-height:34px;padding:0 12px;font-size:12px;font-weight:800}.library-create-button:hover{background:#0c5b55;border-color:#0f6b64c7}.library-tabs{border:1px solid var(--line);background:#eee7dc75;border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.library-tabs button{min-height:32px;color:var(--ink-soft);background:0 0;border-color:#0000;font-size:12px;font-weight:800}.library-tabs button:hover{box-shadow:none;border-color:#0000;transform:none}.library-tabs button.is-active{color:var(--accent);background:#fffdf8e0;box-shadow:0 8px 20px #1f25220f}.library-tabs span{color:inherit;font-variant-numeric:tabular-nums;margin-left:4px}.library-empty{color:var(--ink-soft);background:#fffdf87a;border:1px dashed #2b343033;border-radius:8px;gap:6px;padding:14px;display:grid}.library-empty strong{color:var(--ink);font-size:14px}.library-empty span{font-size:12px;line-height:1.55}.auth-card{border:1px solid var(--line);background:#ffffff8a;border-radius:8px;gap:10px;padding:12px;display:grid}.auth-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.auth-label{color:var(--ink-soft);text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800;display:block}#authStatus{max-width:100%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.auth-form{gap:8px;display:grid}.auth-form input{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:#fffdf8e0;border-radius:7px;outline:none;padding:8px 9px}.auth-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.auth-actions button,#logoutButton{min-height:34px;padding:0 10px;font-size:12px;font-weight:800}.book-item{border:1px solid var(--line);text-align:left;background:#fffdf8c7;border-radius:8px;gap:10px;width:100%;padding:10px;transition:border-color .16s,background .16s,box-shadow .16s;display:grid}.book-item.is-active{background:var(--accent-soft);border-color:#0f6b648c;box-shadow:inset 0 0 0 1px #0f6b6414}.book-select{text-align:left;background:0 0;border:0;gap:5px;width:100%;padding:0;display:grid}.book-select:hover{box-shadow:none;background:0 0;border-color:#0000;transform:none}.book-item-title{color:var(--ink);font-size:14px;font-weight:800}.book-title-input{width:100%;min-width:0;color:var(--ink);background:#fffdf8eb;border:1px solid #0f6b6447;border-radius:7px;outline:none;padding:8px 9px;font-size:14px;font-weight:800}.book-title-input:focus{border-color:#0f6b64a8;box-shadow:0 0 0 3px #0f6b641f}.book-item-meta{color:var(--ink-soft);font-size:12px;line-height:1.45}.book-item-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.book-item-actions-compact{grid-template-columns:1fr 1fr}.book-item-actions button{min-height:30px;padding:0 8px;font-size:12px;font-weight:800}.book-delete-button{color:var(--danger)}.book-delete-button:hover{color:#fff;background:var(--danger);border-color:#b6483dc2}.library-stats,.spec-list{gap:10px;margin:auto 0 0;padding:0;display:grid}.library-stats div,.spec-list div{border-top:1px solid var(--line);justify-content:space-between;gap:18px;padding-top:12px;display:flex}.library-stats dt,.spec-list dt{color:var(--ink-soft);text-transform:uppercase;font-size:12px}.library-stats dd,.spec-list dd{color:var(--ink);text-align:right;margin:0;font-size:13px}.book-stage{background:radial-gradient(circle at 25% 18%,#fffffff5,#fff0 32%),linear-gradient(150deg,#eef5f1,#f7efe2 58%,#e8d8c2);border:1px solid #2b343029;border-radius:8px;height:100%;min-height:0;position:relative;overflow:hidden;box-shadow:0 28px 80px #1f25221f}.book-stage:before{content:"";pointer-events:none;border:1px solid #1f252214;border-radius:8px;position:absolute;inset:22px}#bookCanvas{cursor:grab;touch-action:none;width:100%;height:100%;transition:opacity .18s;position:absolute;inset:0}#bookCanvas.is-grabbing{cursor:grabbing}.stage-toolbar{z-index:2;flex-wrap:wrap;align-items:center;gap:10px;max-width:calc(100% - 48px);display:flex;position:absolute;bottom:24px;left:24px}.stage-toolbar button{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8bd;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.stage-toolbar button.stage-text-button{white-space:nowrap;width:auto;min-width:86px;padding:0 14px;font-size:13px;font-weight:800}.stage-toolbar button.stage-text-button[aria-pressed=true]{color:#fff;background:#0f6b64db;border-color:#0f6b6494}#closeBook.stage-text-button{min-width:96px}.page-meter{z-index:2;border:1px solid var(--line);color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-variant-numeric:tabular-nums;background:#fffdf8bd;border-radius:8px;padding:13px 16px;position:absolute;bottom:24px;right:24px}.viewer-notice{z-index:2;border:1px solid var(--line);max-width:min(420px,100% - 48px);color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8c7;border-radius:8px;padding:12px 14px;font-size:13px;font-weight:800;position:absolute;top:24px;left:24px;box-shadow:0 18px 36px #1f25221a}.viewer-loading{z-index:4;color:var(--ink);background:radial-gradient(circle at 50% 42%, #fffdf8e0, #f5f1eaad 42%, #f5f1ea75), var(--viewer-bg,#fffdf8db);text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-content:center;place-items:center;gap:12px;display:grid;position:absolute;inset:0}.viewer-loading strong{font-size:18px;font-weight:800}.viewer-loading span{color:var(--ink-soft);font-size:13px;font-weight:700}.loading-mark{border:3px solid #0f6b6429;border-top-color:var(--accent);border-radius:999px;width:42px;height:42px;animation:.82s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}body.viewer-mode,body.modal-open{overflow:hidden}body.viewer-mode .auth-gate,body.viewer-mode .app-header,body.viewer-mode .library-panel,body.viewer-mode .texture-panel{display:none!important}body.viewer-mode .app-shell{min-height:100vh}body.viewer-mode .workspace{min-height:100vh;padding:0;display:block}body.viewer-mode .book-stage{background:var(--viewer-bg,#fffdf86b);min-height:100vh;box-shadow:none;border:0;border-radius:0}body.viewer-mode .stage-toolbar{left:50%;transform:translate(-50%)}body.viewer-mode .page-meter{right:24px}body.stage-loading-active #bookCanvas,body.viewer-mode.viewer-loading-active #bookCanvas{opacity:0}body.viewer-ui-hidden .stage-toolbar,body.viewer-ui-hidden .page-meter,body.viewer-ui-hidden .viewer-notice{display:none!important}body.viewer-no-flip #prevPage,body.viewer-no-flip #nextPage,body.viewer-no-flip #autoFlipToEnd,body.viewer-no-flip #closeBook{display:none}body.viewer-no-rotate #bookCanvas{cursor:default}.app-modal{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1f252247;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.app-toast{z-index:90;max-width:min(320px,100vw - 48px);color:var(--ink);opacity:0;pointer-events:none;background:#fffdf8fa;border:1px solid #0f6b643d;border-radius:8px;padding:12px 14px;font-size:13px;font-weight:800;line-height:1.45;transition:opacity .16s,transform .16s;position:fixed;top:24px;right:24px;transform:translateY(-8px);box-shadow:0 18px 44px #1f252229}.app-toast.is-visible{opacity:1;transform:translateY(0)}.modal-card{border:1px solid var(--line);background:#fffdf8f5;border-radius:8px;gap:12px;width:min(440px,100%);padding:20px;display:grid;box-shadow:0 30px 90px #1f252233}.wide-modal-card{width:min(760px,100%);max-height:min(760px,100vh - 44px);overflow:auto}.admin-modal-card{width:min(1040px,100%);max-height:min(820px,100vh - 44px);overflow:auto}.modal-kicker{color:var(--accent);margin:0;font-size:12px;font-weight:800}.modal-card h2{font-size:20px}.modal-card p{margin:0}.modal-description{color:var(--ink-soft);font-size:14px;line-height:1.65}.modal-field{color:var(--ink-soft);gap:7px;font-size:12px;font-weight:800;display:grid}.modal-field input,.modal-field select,.modal-field textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);resize:vertical;border-radius:7px;outline:none;padding:10px 11px}.modal-field select{background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23606b65' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:36px}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:#0f6b649e;box-shadow:0 0 0 3px #0f6b641f}.modal-field-compact select{max-width:260px}#modalMessage{color:var(--ink-soft);font-size:14px;line-height:1.7}.version-diff-summary,.version-list,.asset-list{gap:10px;display:grid}.diff-status,.version-item,.asset-item{border:1px solid var(--line);background:#ffffff94;border-radius:8px;padding:12px}.diff-status{gap:4px;display:grid}.diff-status.has-changes{background:#e9bd751f;border-color:#b4702e52}.diff-status strong,.version-item strong,.asset-item strong{color:var(--ink);font-size:14px}.diff-status span,.version-item span,.asset-item span,.version-item p{color:var(--ink-soft);font-size:12px;line-height:1.55}.version-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.asset-item{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.version-item.is-current{background:var(--accent-soft);border-color:#0f6b6461}.version-item>div:first-child,.asset-item>div:nth-child(2){gap:4px;min-width:0;display:grid}.version-item p{margin:0}.version-actions{justify-content:end;align-items:center;gap:8px;display:flex}.version-actions button,.asset-item button{min-height:32px;padding:0 12px;font-size:12px;font-weight:800}.version-badge{color:var(--accent);background:#ffffffb8;border:1px solid #0f6b6447;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800}.asset-thumb{background-color:#fffdf8db;background-image:linear-gradient(45deg,#2b34300f 25%,#0000 25% 75%,#2b34300f 75%),linear-gradient(45deg,#2b34300f 25%,#0000 25% 75%,#2b34300f 75%),none;background-position:0 0,7px 7px;background-repeat:repeat;background-size:cover;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #2b343024;border-radius:6px;width:58px;height:76px}.admin-notice{color:var(--accent);background:var(--accent-soft);border:1px solid #0f6b6438;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:800}.admin-notice.is-error{color:#9a3933;background:#b4443d14;border-color:#b4443d4d}.admin-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px;display:grid}.admin-section{border:1px solid var(--line);background:#ffffff80;border-radius:8px;gap:10px;min-width:0;padding:12px;display:grid}.admin-section-wide{grid-column:1/-1}.admin-section-head,.admin-item,.admin-audit-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.admin-section-head strong,.admin-item strong,.admin-audit-item strong{color:var(--ink);font-size:14px}.admin-section-head span,.admin-item span,.admin-item small,.admin-audit-item span{color:var(--ink-soft);margin-top:3px;font-size:12px;line-height:1.45;display:block}.admin-list{gap:8px;display:grid}.admin-item,.admin-audit-item{background:#fffdf8b8;border:1px solid #2b34301a;border-radius:8px;padding:10px}.admin-item-actions{justify-content:end;gap:8px;display:flex}.admin-select{border:1px solid var(--line);background:var(--surface);width:auto;min-width:86px;color:var(--ink);border-radius:7px;padding:8px 26px 8px 9px;font-size:12px;font-weight:800}.admin-audit-list{max-height:260px;padding-right:4px;overflow:auto}.modal-actions{justify-content:end;gap:10px;margin-top:8px;display:flex}.modal-actions button{min-height:38px;padding:0 16px;font-size:13px;font-weight:800}.upload-grid{grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:10px;display:grid}.page-grid{padding-right:4px}.asset-tools,.page-bulk-tools,.page-batch-tools{background:#fffdf89e;border:1px solid #2b343021;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.asset-tools>div:first-child,.page-bulk-tools>div{gap:4px;min-width:0;display:grid}.asset-tools strong,.page-bulk-tools strong{color:var(--ink);font-size:13px}.asset-tools span,.page-bulk-tools span{color:var(--ink-soft);font-size:12px;line-height:1.45}.asset-tools>div:last-child{flex:none;gap:8px;display:flex}.asset-tools button,.page-bulk-button{flex:none;min-height:34px;padding:0 12px;font-size:12px}.page-batch-tools label{color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.page-batch-tools select{border:1px solid var(--line);background:var(--surface);width:74px;height:32px;color:var(--ink);border-radius:7px;padding:0 8px}.page-batch-tools button{min-height:32px;padding:0 12px;font-size:12px;font-weight:800}.control-section{gap:12px;min-height:0;display:none}.control-section.is-active{flex-direction:column;flex:none;display:flex;overflow:visible}.editor-tabs{border:1px solid var(--line);background:#eee7dc8c;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid}.editor-tab{background:0 0;border-color:#0000;min-height:34px;font-size:13px;font-weight:800}.editor-tab:hover{box-shadow:none}.editor-tab.is-active{background:var(--surface);color:var(--accent);border-color:#0f6b6447;box-shadow:0 8px 18px #1f25220f}.section-title{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;padding-top:12px;display:flex}.section-title span{color:var(--ink);text-transform:uppercase;font-size:13px;font-weight:800}.section-title small{color:var(--ink-soft);font-size:12px}.param-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;display:grid}.param-field{border:1px solid var(--line);background:#ffffff94;border-radius:8px;gap:6px;padding:9px;display:grid}.param-field span,.color-field span,.texture-rotation span{color:var(--ink-soft);font-size:12px;font-weight:700}.param-field input[type=range]{accent-color:var(--accent);padding:0}.upload-card{border:1px solid var(--line);cursor:default;background:#ffffff8f;border-radius:8px;flex-direction:column;justify-content:space-between;min-height:132px;padding:12px;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.upload-card:after{display:none}.upload-card:hover,.upload-card.is-dragging{background:#fff;border-color:#0f6b646b;transform:translateY(-1px);box-shadow:0 14px 28px #1f252212}.color-field,.texture-rotation{z-index:2;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex;position:relative}.color-field input[type=color]{border:1px solid var(--line-strong);background:0 0;border-radius:6px;width:38px;height:28px;padding:0}.texture-rotation select{width:auto;min-width:74px;height:30px;padding:0 8px}.slot-header{gap:7px;min-width:0;display:grid}.slot-title{z-index:1;color:var(--ink);font-size:14px;font-weight:800;position:relative}.slot-file{z-index:1;width:100%;min-width:0;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;background:#f5f1eab8;border:1px solid #2b34301f;border-radius:6px;padding:5px 7px;font-size:12px;font-weight:700;position:relative;overflow:hidden}.slot-file.has-upload{color:var(--accent);background:#0f6b641a;border-color:#0f6b6447}.texture-preview{background-color:#f5f1ea9e;background-image:linear-gradient(135deg,#0f6b6414,#b4702e0f),none;background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #2b34301a;border-radius:7px;height:84px;margin-top:10px}.texture-preview:not(.has-image):after{content:"默认材质";height:100%;color:var(--ink-soft);place-items:center;font-size:12px;font-weight:800;display:grid}.material-control-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:10px;display:grid}.card-actions{z-index:2;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-top:10px;display:grid;position:relative}.page-card-actions{grid-template-columns:1fr repeat(3,auto)}.upload-button,.slot-reset{border:1px solid var(--line);min-height:34px;color:var(--ink);background:#fffdf8eb;border-radius:7px;font-size:12px;font-weight:800}.upload-button{cursor:pointer;place-items:center;display:grid;position:relative;overflow:hidden}.upload-button:hover,.slot-reset:hover{background:var(--accent-soft);border-color:#0f6b6473}.upload-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.slot-reset{padding:0 12px}.page-order-button{padding:0 8px}.panel-actions{z-index:5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffdf8b8,#fffdf8f5);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;display:grid;position:relative}.panel-actions button{min-height:44px}@media (width<=1320px){.app-shell{height:auto;display:block;overflow:visible}.app-header{grid-template-columns:1fr;align-items:start}.project-toolbar{flex-wrap:wrap;justify-content:start;align-items:start}.workspace{grid-template-columns:minmax(220px,.42fr) minmax(520px,1fr);height:auto;min-height:auto;overflow:visible}.texture-panel{grid-column:1/-1;height:auto;max-height:none}.library-panel{height:auto;max-height:none}.book-stage{height:auto;min-height:620px}}@media (width<=900px){.app-header,.workspace{padding-left:16px;padding-right:16px}.workspace{grid-template-columns:1fr}.toolbar-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:100%;display:grid}.action-menu,.toolbar-action,.toolbar-primary,.action-menu-trigger{width:100%}.action-menu-panel{left:0;right:auto}.project-toolbar button,.import-button{width:100%;min-width:0}.library-panel,.texture-panel{height:auto;max-height:none}.book-stage{order:-1;min-height:620px}.library-panel{order:0}.texture-panel{order:1}.admin-grid,.admin-item,.admin-audit-item,.admin-section-head{grid-template-columns:1fr}.admin-item-actions{justify-content:start}}@media (width<=640px){body{overflow:auto}h1{font-size:24px}h2{font-size:20px}.book-stage{min-height:480px}.book-stage:before{inset:14px}.stage-toolbar{gap:8px;max-width:none;bottom:16px;left:16px;right:16px}.stage-toolbar button{width:42px;height:42px}.stage-toolbar button.stage-text-button{min-width:82px;padding:0 12px}.page-meter{padding:12px 14px;bottom:16px;right:16px}.editor-tabs{z-index:4;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8eb;position:sticky;top:8px}.upload-grid,.param-grid,.panel-actions{grid-template-columns:1fr}.toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.action-menu-panel,.action-menu-panel-small{width:min(248px,88vw)}.stage-toolbar{gap:8px;max-width:calc(100% - 32px);bottom:16px;left:16px}.stage-toolbar button.stage-text-button{min-width:auto;padding:0 11px;font-size:12px}.page-meter{bottom:16px;right:16px}}
