:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-bg: #f5f5f4;--color-surface: #ffffff;--color-border: #e5e5e3;--color-text: #1c1917;--color-text-muted: #78716c;--color-error-bg: #fef2f2;--color-error-text: #b91c1c;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .05)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer;border:none;font-size:1rem}input,select{font-family:inherit;font-size:1rem}.app{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.app-logo{font-size:1.2rem;font-weight:700;color:var(--color-text);text-decoration:none}.app-nav{display:flex;gap:8px}.app-nav a{padding:10px 18px;border-radius:8px;text-decoration:none;color:var(--color-text-muted);font-weight:500;min-height:44px;display:flex;align-items:center}.app-nav a:hover{background:var(--color-bg);color:var(--color-text)}.app-main{flex:1;padding:20px;max-width:1200px;margin:0 auto;width:100%}h1{font-size:1.4rem;margin-bottom:8px}.page-description{color:var(--color-text-muted);margin-bottom:16px}.loading{padding:40px;text-align:center;color:var(--color-text-muted)}.error-box{background:var(--color-error-bg);color:var(--color-error-text);padding:12px 16px;border-radius:8px;margin:12px 0}.empty-state{padding:40px;text-align:center;color:var(--color-text-muted);background:var(--color-surface);border-radius:var(--radius)}.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.scene-card{background:var(--color-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:var(--color-text);transition:transform .15s;border:none;text-align:left;padding:0}.scene-card:active{transform:scale(.98)}.scene-card img{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;background:#eee}.scene-card-name{display:block;padding:14px 16px;font-weight:600}.scene-card-wrap{position:relative}.scene-card-wrap .scene-card-delete{position:absolute;top:8px;right:8px;padding:6px 10px;font-size:.85rem;min-height:0;border-radius:6px}.sales-page{display:flex;flex-direction:column;gap:16px}.sales-toolbar{display:flex;align-items:center;justify-content:space-between}.guide-toggle{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:.95rem;min-height:44px}.guide-toggle input{width:20px;height:20px}.scene-canvas{position:relative;width:100%;max-width:calc((100vh - 380px)*1.5);margin-left:auto;margin-right:auto;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#eee;touch-action:manipulation}.scene-canvas-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none}.scene-furniture-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-select:none}.slot-layer{position:absolute;background:transparent;border:2px dashed transparent;border-radius:8px;padding:0;transition:border-color .15s}.slot-layer.empty{border-color:#2563eb66;background:#2563eb0f}.slot-layer.selected{border-color:var(--color-primary)}.slot-layer.selected.empty{background:#2563eb1a}.slot-layer.empty:hover{border-color:#2563eb99}.slot-empty-label{color:var(--color-primary);font-size:.9rem;font-weight:600}.style-prompt{background:var(--color-surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.style-prompt-form{display:flex;gap:8px}.style-prompt-input{flex:1;position:relative;display:flex;align-items:center}.style-prompt-input input{flex:1;padding:12px 44px 12px 16px;border:1px solid var(--color-border);border-radius:8px;min-height:48px;width:100%}.style-prompt-input input:focus{outline:2px solid var(--color-primary);border-color:transparent}.style-prompt-form .style-prompt-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:auto;height:auto;min-height:0;padding:4px;background:transparent;color:var(--color-primary);border:none;border-radius:0;font-size:1rem;font-weight:400;line-height:1;cursor:pointer;white-space:normal;opacity:.7}.style-prompt-form .style-prompt-clear:hover{opacity:1;background:transparent}.style-prompt-form button{padding:12px 24px;background:var(--color-primary);color:#fff;border-radius:8px;font-weight:600;min-height:48px;white-space:nowrap}.style-prompt-form button:disabled{opacity:.5;cursor:default}.style-prompt-form button:not(:disabled):active{background:var(--color-primary-dark)}.used-furniture-list{display:flex;flex-direction:column;gap:8px}.used-furniture-title{margin:0;font-size:.95rem;color:var(--color-text-muted)}.used-furniture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.used-furniture-card{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--color-text);text-decoration:none;transition:transform .15s}.used-furniture-card:hover{transform:translateY(-2px)}.used-furniture-card .furniture-thumb-crop,.used-furniture-card .furniture-thumb-img{width:100%;aspect-ratio:4 / 3}.used-furniture-name{font-size:.8rem;text-align:center;line-height:1.3}.used-furniture-card-disabled{opacity:.55;cursor:default}.used-furniture-card-disabled:hover{transform:none}.picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end}.picker-sheet{background:var(--color-surface);width:100%;max-height:70dvh;border-radius:20px 20px 0 0;padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.picker-close{width:44px;height:44px;border-radius:50%;background:var(--color-bg);font-size:1.1rem}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.picker-item{background:var(--color-bg);border:2px solid transparent;border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.picker-item.selected{border-color:var(--color-primary);background:#2563eb0f}.picker-item-none{width:100%;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:1.2rem}.picker-item-tags{font-size:.8rem;color:var(--color-text-muted)}.admin-page{display:flex;flex-direction:column;gap:16px}.admin-tabs{display:flex;gap:8px;border-bottom:1px solid var(--color-border);padding-bottom:12px}.admin-tabs button{padding:12px 24px;border-radius:8px;background:transparent;color:var(--color-text-muted);font-weight:600;min-height:48px}.admin-tabs button.active{background:var(--color-primary);color:#fff}.admin-layout{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}@media(max-width:800px){.admin-layout{grid-template-columns:1fr}}.admin-form{background:var(--color-surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.admin-form label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:.95rem}.admin-form input,.admin-form select{padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;min-height:44px}.admin-form button[type=submit]{padding:12px;background:var(--color-primary);color:#fff;border-radius:8px;font-weight:600;min-height:48px}.admin-form button[type=submit]:disabled{opacity:.5}.tag-fieldset{border:1px solid var(--color-border);border-radius:8px;padding:12px}.tag-fieldset legend{padding:0 8px;font-size:.95rem;font-weight:500;display:inline-flex;align-items:center;gap:10px}.tag-count{font-size:.85rem;color:var(--color-text-muted);font-weight:400}.tag-count-max{color:var(--color-primary);font-weight:600}.tag-checkboxes{display:flex;flex-wrap:wrap;gap:12px}.tag-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:6px!important;font-weight:400!important}.tag-checkbox.disabled{opacity:.4;cursor:not-allowed}.tag-checkbox input{width:20px;height:20px;min-height:auto!important}.tag-add-row{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border)}.tag-add-row input{flex:1;min-height:40px;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem}.tag-add-row button{padding:0 16px;min-height:40px;background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary);border-radius:6px;font-size:.9rem;font-weight:500}.tag-add-row button:disabled{opacity:.4;cursor:not-allowed}.tag-duplicate-hint{margin-top:8px;padding:6px 10px;background:#dc26260f;border-left:3px solid var(--color-error-text);border-radius:6px;color:var(--color-error-text);font-size:.85rem}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.furniture-filter{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:.9rem;color:var(--color-text-muted)}.furniture-filter select{min-height:36px;padding:4px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);font-size:.9rem}.empty-state{padding:24px;text-align:center;color:var(--color-text-muted);font-size:.9rem;background:var(--color-surface);border-radius:8px;border:1px dashed var(--color-border)}.furniture-list{display:flex;flex-direction:column;gap:8px}.furniture-list-item{display:flex;align-items:center;gap:16px;background:var(--color-surface);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow)}.furniture-thumb-img{object-fit:contain;background:var(--color-bg);border-radius:8px}.furniture-thumb-crop{position:relative;overflow:hidden;background:var(--color-bg);border-radius:8px;flex-shrink:0}.furniture-thumb-crop img{position:absolute;max-width:none;background:transparent;border-radius:0;object-fit:initial}.furniture-list-item .furniture-thumb-crop,.furniture-list-item .furniture-thumb-img{width:80px;height:60px}.picker-item .furniture-thumb-crop,.picker-item .furniture-thumb-img{width:100%;aspect-ratio:4 / 3}.furniture-list-info{flex:1;display:flex;flex-direction:column;gap:2px}.furniture-list-info span{font-size:.9rem;color:var(--color-text-muted)}.furniture-list-tags{color:var(--color-primary)!important}.furniture-list-url{font-size:.85rem;color:var(--color-primary);text-decoration:underline;align-self:flex-start}.furniture-list-url-empty{font-size:.85rem;font-style:italic;opacity:.7}.delete-button{padding:10px 16px;background:var(--color-error-bg);color:var(--color-error-text);border-radius:8px;min-height:44px}.edit-button{padding:10px 16px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;min-height:44px}.save-button{padding:10px 16px;background:var(--color-primary);color:#fff;border-radius:8px;min-height:44px;font-weight:600}.save-button:disabled{opacity:.5;cursor:not-allowed}.furniture-list-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.furniture-list-item.editing{align-items:flex-start;background:#2563eb0a;border:1px solid var(--color-primary)}.furniture-list-item.editing .furniture-list-info{gap:10px}.edit-field{display:flex!important;flex-direction:column!important;gap:4px;font-size:.85rem;color:var(--color-text-muted)}.edit-field input{min-height:36px;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:.95rem;color:var(--color-text)}.edit-readonly{font-size:.85rem!important;color:var(--color-text-muted)!important}button.secondary{padding:10px 16px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;min-height:44px;align-self:flex-start}.slot-editor{display:flex;flex-direction:column;gap:12px;margin-top:16px}.slot-editor-canvas{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#eee;touch-action:none;cursor:crosshair}.slot-editor-canvas>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none;pointer-events:none}.slot-rect{position:absolute;border:2px solid var(--color-primary);background:#2563eb1f;border-radius:4px;display:flex;align-items:center;justify-content:center}.slot-rect span{color:var(--color-primary);font-weight:600;font-size:.9rem;background:#ffffffd9;padding:2px 8px;border-radius:4px}.slot-rect.draft{border-style:dashed;border-color:#f59e0b;background:#f59e0b26}.slot-rect-delete{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border-radius:50%;background:var(--color-error-text);color:#fff;font-size:.85rem;display:flex;align-items:center;justify-content:center}.slot-confirm-panel{background:var(--color-surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.slot-confirm-panel label{display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:.95rem}.slot-confirm-panel select,.slot-confirm-panel input{padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;min-height:44px;min-width:180px}.slot-confirm-actions{display:flex;gap:8px}.slot-confirm-actions button:first-child{padding:12px 24px;background:var(--color-primary);color:#fff;border-radius:8px;font-weight:600;min-height:48px}.variation-tabs{display:flex;flex-direction:column;gap:8px}.variation-tabs-row{display:flex;gap:8px;flex-wrap:wrap}.variation-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;min-height:48px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-weight:500;transition:border-color .15s,background .15s}.variation-tab.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.variation-tab-num{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:#00000014;font-size:.85rem;font-weight:700}.variation-tab.active .variation-tab-num{background:#ffffff40}.variation-tab-name{font-size:.95rem}.variation-description{color:var(--color-text-muted);font-size:.9rem;padding:0 4px}.applied-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--color-bg);border-radius:8px;font-size:.85rem}.applied-tags-label{color:var(--color-text-muted)}.applied-tag-chip{display:inline-block;padding:2px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-primary);font-weight:500}.style-prompt-status{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#2563eb14;border-left:3px solid var(--color-primary);border-radius:8px;color:var(--color-text);font-size:.9rem}.spinner{width:18px;height:18px;border:2px solid rgba(37,99,235,.25);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}
