:root{color-scheme:light;font-family:Hiragino Sans,Noto Sans JP,Yu Gothic,sans-serif;background:radial-gradient(circle at top left,rgba(255,255,255,.95),transparent 34%),linear-gradient(180deg,#f7f8fb,#f1f4f8 46%,#edf1f5);color:#1f2937}*{box-sizing:border-box}body{margin:0;min-width:1240px;min-height:100vh;background:radial-gradient(circle at top left,rgba(255,255,255,.95),transparent 34%),linear-gradient(180deg,#f7f8fb,#f1f4f8 46%,#edf1f5)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:372px minmax(820px,1fr);gap:24px;min-height:100vh;padding:28px}.panel{border:1px solid var(--panel-stroke);border-radius:30px;background:linear-gradient(180deg,var(--panel),var(--panel-alt));box-shadow:0 18px 40px #94a3b81f,0 2px 8px #0f172a0a,inset 0 1px #ffffffbf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.control-panel{display:flex;flex-direction:column;gap:20px;padding:24px;font-size:14px;align-self:start}.hero-header{display:grid;gap:8px}.eyebrow{margin:0;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.title{margin:0;font-size:32px;line-height:1;letter-spacing:-.03em;color:var(--text-color)}.hero-meta{margin:0;color:var(--text-muted);font-size:13px;line-height:1.6}.helper-note{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5}.field-grid{display:grid;gap:16px}.field{display:grid;gap:8px}.field label,.field legend{color:var(--text-muted);font-size:12px;font-weight:600}.card{padding:16px;border:1px solid rgba(255,255,255,.75);border-radius:22px;background:#ffffffb8;box-shadow:inset 0 1px #ffffffd9,0 10px 24px #94a3b814}.swatch-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.swatch-button{display:grid;gap:10px;min-width:0;justify-items:start;padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:#fffffff2;color:var(--text-color);text-align:left;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.swatch-button:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:0 10px 18px #94a3b81f}.swatch-button.is-active{border-color:var(--accent);background:linear-gradient(180deg,rgba(255,255,255,.98),var(--accent-soft));box-shadow:0 12px 24px #94a3b824}.swatch{display:flex;gap:6px;justify-content:flex-start}.swatch span{width:28px;height:12px;border-radius:999px;border:1px solid rgba(15,23,42,.08)}.swatch-button strong{display:block;min-width:0;font-size:12px;line-height:1.2;white-space:nowrap}.range-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.range-row output{min-width:68px;color:var(--accent);text-align:right;font-weight:600}input[type=range]{width:100%;accent-color:var(--accent)}textarea,select,input[type=color]{width:100%;border:1px solid rgba(148,163,184,.24);border-radius:16px;background:#fffffff5;color:var(--text-color);box-shadow:inset 0 1px 2px #0f172a08}textarea{min-height:340px;padding:16px;resize:vertical;line-height:1.6;font-size:13px}select,input[type=color]{padding:12px 14px;font-size:13px}textarea:focus,select:focus,input[type=range]:focus,button:focus{outline:none}textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-soft) 70%,white 30%),inset 0 1px 2px #0f172a08}.static-value{padding:12px 14px;border:1px solid rgba(148,163,184,.24);border-radius:16px;background:#fffffff5;color:var(--text-color)}.color-row{display:grid;grid-template-columns:1fr 120px;gap:12px;align-items:end}.button-row{display:grid;gap:10px}.primary-button,.secondary-button{border:0;width:100%;border-radius:18px;padding:15px 18px}.primary-button{background:var(--accent);color:var(--button-text);font-weight:700;font-size:13px;box-shadow:0 14px 24px #94a3b829}.secondary-button{background:#fffc;color:var(--text-color);font-size:13px}.preview-panel{display:grid;grid-template-rows:auto 1fr;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 26px 20px;border-bottom:1px solid rgba(148,163,184,.18)}.preview-eyebrow{margin-bottom:6px}.preview-title{margin:0;font-size:22px;color:var(--text-color)}.preview-meta{margin:6px 0 0;color:var(--text-muted);font-size:13px}.status-chip{padding:8px 12px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#fffc;color:var(--accent);font-size:13px;font-weight:600;white-space:nowrap}.preview-scroll{overflow:auto;padding:28px;background:linear-gradient(180deg,#f8fafcc7,#f1f5f9e0)}.preview-canvas{min-height:calc(100vh - 172px);border-radius:28px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg,#fff9,#f8fafcf0),repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0,rgba(255,255,255,.14) 1px,transparent 1px,transparent 24px);display:grid;align-content:start;justify-content:start}.diagram-frame{border:1px solid rgba(226,232,240,.95);border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 18px 40px #94a3b829,0 2px 6px #0f172a0d}.diagram-surface{overflow:auto;width:100%;height:100%;padding:28px}.diagram-surface svg{display:block;width:100%;height:auto}.empty-state,.error-state{width:min(720px,100%);margin:64px auto;padding:28px;border-radius:20px;background:#ffffffeb;color:#1f2937;line-height:1.6;border:1px solid rgba(226,232,240,.85)}.error-state{border-left:6px solid #d14343}.error-actions{display:grid;gap:12px;margin-top:16px}.error-hint{margin:0;color:#6b7280;font-size:12px}.preview-note{margin:12px 0 0;color:var(--text-muted);font-size:12px}
