:root{color:#0f172a;background:radial-gradient(circle at 4% -8%,#3b82f629,#0000 30%),radial-gradient(circle at 100% 0,#fbbf2433,#0000 36%),linear-gradient(#f8fbff 0%,#eef4ff 100%);font-family:IBM Plex Sans JP,Noto Sans JP,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#0f172a;min-height:100vh}.editor-page{--left-palette-width:330px;grid-template-columns:var(--left-palette-width) minmax(0, 1fr) 280px;gap:18px;min-height:100vh;padding:16px;display:grid;position:relative}.editor-page.is-right-palette-closed{grid-template-columns:var(--left-palette-width) minmax(0, 1fr)}.palette,.workspace{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #94a3b857;border-radius:20px;box-shadow:0 16px 34px #0f172a1f}.palette{min-width:50px;width:var(--left-palette-width);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.left-palette-resizer{cursor:col-resize;z-index:5;background:0 0;border-radius:8px;width:12px;position:absolute;top:16px;bottom:16px;transform:translate(-50%)}.left-palette-resizer:after{content:"";background:#94a3b8bf;border-radius:4px;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.left-palette-resizer:hover,.left-palette-resizer.is-active{background:#3b82f614}.left-palette-resizer:hover:after,.left-palette-resizer.is-active:after{background:#2563ebf2}.palette__header{background:linear-gradient(120deg,#7dd3fc73,#bfdbfe73);border-bottom:1px solid #94a3b84d;min-height:8px;padding:8px}.palette__list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-auto-rows:min-content;align-content:start;gap:8px;padding:12px;display:grid;overflow:auto}.palette__item{text-align:left;min-height:0;color:inherit;cursor:pointer;background:#fff;border:1px solid #94a3b86b;border-radius:14px;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:9px 10px;transition:transform .16s,background-color .16s;display:grid}.palette__item:hover{background:#eff6ff;transform:translateY(-1px)}.palette__item:active{cursor:grabbing}.palette__item.is-touch-selected{background:#dbeafe;border-color:#2563ebdb;box-shadow:inset 0 0 0 1px #3b82f659}.palette__item.is-disabled{color:#0f172ac2;cursor:not-allowed;background:#94a3b83d;border-color:#64748b8c;position:relative;overflow:hidden}.palette__item.is-disabled:hover{background:#94a3b83d;transform:none}.palette__item.is-disabled:after{content:"";pointer-events:none;background:repeating-linear-gradient(-35deg,#d9770600 0 12px,#d977069e 12px 16px);position:absolute;inset:0}.palette__item.is-disabled .palette__icon{background:#94a3b875}.palette__item strong{font-size:.92rem;display:block}.palette__icon{color:#1e293b;background:#e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.palette__labels{align-content:start;gap:2px;margin-top:2px;display:grid}.palette__item small{color:#475569c7;font-size:.72rem}.palette__item.is-disabled small{color:#334155e0}.workspace{grid-template-rows:auto auto minmax(0,1fr);padding:12px;display:grid}.inspector{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border:1px solid #94a3b857;border-radius:20px;align-content:start;gap:14px;padding:14px;display:grid;box-shadow:0 16px 34px #0f172a1f}.inspector__section{border:1px solid #94a3b857;border-radius:12px;gap:8px;padding:10px;display:grid}.inspector__section h3{margin:0;font-size:.92rem}.inspector__preset-grid{gap:6px;display:grid}.inspector__preset-grid button,.inspector__field input[type=number]{color:#0f172a;background:#fff;border:1px solid #94a3b87a;border-radius:10px}.inspector__preset-grid button{text-align:left;cursor:pointer;padding:7px 8px}.inspector__preset-grid button.is-active{background:#dbeafe;border-color:#2563ebd1}.inspector__field{color:#1e293be6;gap:5px;font-size:.8rem;display:grid}.inspector__field input[type=number]{padding:6px 8px}.inspector__field small{color:#475569d9}.inspector__summary{gap:2px;display:grid}.inspector__summary strong{font-size:.9rem}.inspector__summary small,.inspector__hint{color:#475569e0;font-size:.78rem}.inspector__hint{margin:0;line-height:1.5}.inspector__toggle{color:#0f172af2;align-items:center;gap:8px;font-size:.84rem;display:flex}.inspector__toggle input{width:16px;height:16px}.inspector__tabs{background:#0f172a08;border-bottom:1px solid #0f172a1f;display:flex}.inspector__tab{cursor:pointer;color:#0f172a73;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px 4px;font-size:.8rem;transition:color .15s,border-color .15s;display:flex;position:relative}.inspector__tab:hover{color:#0f172abf}.inspector__tab.is-active{color:#0f172af2;border-bottom-color:#2563eb}.inspector__tab.has-error{color:#dc2626}.inspector__tab.has-error.is-active{border-bottom-color:#dc2626}.inspector__tab-badge{color:#fff;background:#dc2626;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex}.inspector__tab-panel{flex-direction:column;gap:8px;padding:12px;display:flex}.inspector__validation-pass{color:#15803d;margin:0;padding:6px 2px;font-size:.88rem;font-weight:600}.inspector__validation-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.inspector__validation-item{cursor:pointer;background:#00000008;border:1px solid #0000;border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;font-size:.82rem;line-height:1.4;display:flex}.inspector__validation-item:hover,.inspector__validation-item:focus{background:#00000012;outline:none}.inspector__validation-item.is-error{background:#fff1f2;border-color:#fca5a5}.inspector__validation-item.is-warning{background:#fffbeb;border-color:#fcd34d}.inspector__validation-code{color:#6b7280;letter-spacing:.05em;font-size:.76rem;font-weight:700}.inspector__validation-msg{color:#0f172ae6}.toolbar__check-btn{align-items:center;gap:4px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.toolbar__left,.toolbar__right{flex-wrap:wrap;gap:8px;display:flex}.toolbar button{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #94a3b87a;border-radius:12px;padding:8px 12px}.toolbar button.is-active{background:#dbeafe;border-color:#2563ebd1}.toolbar button:disabled{opacity:.45;cursor:not-allowed}.toolbar__palette-toggle{margin-left:auto}.validation-banner{color:#991b1b;background:#fef2f2;border:1px solid #ef44445c;border-radius:12px;margin:10px 0 0;padding:10px 12px;font-size:.88rem}.stage-wrap{background:#fff;border:1px solid #94a3b859;border-radius:14px;grid-template-rows:auto minmax(0,1fr);min-height:0;margin-top:10px;transition:box-shadow .14s,border-color .14s;display:grid;overflow:hidden}.stage-status{color:#1e293bd9;background:#f1f5f9a6;border-bottom:1px solid #94a3b857;padding:8px 10px;font-size:.78rem}.stage-canvas-wrap{cursor:default;-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:contain;max-width:100%;height:100%;position:relative;overflow:hidden}.stage-canvas-wrap.is-pan-mode{cursor:grab}.stage-canvas-wrap.is-panning{cursor:grabbing}.stage-canvas-wrap.is-touch-selecting{cursor:crosshair}.stage-wrap.is-drop-target{border-color:#2563eb;box-shadow:inset 0 0 0 2px #2563eb33}.stage-wrap canvas{touch-action:none;width:100%;height:auto;display:block}.context-menu{background:#fff;border:1px solid #94a3b87a;border-radius:12px;grid-template-columns:1fr;gap:0;min-width:120px;display:grid;box-shadow:0 8px 20px #0f172a29}.context-menu__item{color:#0f172a;cursor:pointer;text-align:left;background:0 0;border:none;padding:10px 14px;font-size:.92rem;transition:background-color .14s}.context-menu__item:first-child{border-radius:12px 12px 0 0}.context-menu__item:last-child{border-radius:0 0 12px 12px}.context-menu__item:hover{background:#f1f5f9}.context-menu__item:active{background:#e2e8f0}@media (width<=1100px){.editor-page{flex-direction:column;display:flex}.editor-page.is-right-palette-closed{grid-template-columns:1fr}.palette{width:100%;min-width:0;max-height:42vh}.workspace,.inspector{width:100%}.left-palette-resizer{display:none}}
