*{box-sizing:border-box}:root{--bg: #faf9f6;--ink: #211f1a;--muted: #857f72;--hair: #e5e2d9;--card: #ffffff;--accent: #37352a;font-family:ui-sans-serif,system-ui,sans-serif;color-scheme:light}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px}.app{display:grid;grid-template:"header header" auto "aside main" 1fr / 200px 1fr;min-height:100vh}header{grid-area:header;display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--hair)}header h1{font-size:15px;margin:0;font-weight:650}.spacer{flex:1}.status{color:var(--muted);font-size:12px}.badge{font:700 10px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--hair);padding:4px 8px;border-radius:99px}.badge.live{color:#2a7657;border-color:#2a765744}button{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--hair);padding:6px 12px;border-radius:6px;cursor:pointer}button:hover{border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}aside{grid-area:aside;border-right:1px solid var(--hair);padding:12px;display:flex;flex-direction:column;gap:4px}.theme-item{display:flex;align-items:center;gap:8px;background:none;border:none;text-align:left;padding:7px 10px;border-radius:6px}.theme-item:hover{background:var(--card)}.theme-item.active{background:var(--card);box-shadow:inset 0 0 0 1px var(--hair);font-weight:600}.theme-item.add{color:var(--muted)}.dot{width:12px;height:12px;border-radius:99px;flex:none}main{grid-area:main;padding:20px;display:flex;flex-direction:column;gap:20px}.strip{display:grid;grid-template-columns:repeat(11,1fr);gap:6px}.swatch{height:96px;border-radius:6px;cursor:copy;box-shadow:inset 0 0 0 1px #80786426;display:flex;flex-direction:column;justify-content:flex-end;padding:6px;gap:1px}.swatch span{font:10px/1.3 ui-monospace,Menlo,monospace;background:var(--bg);border-radius:3px;padding:1px 4px;width:fit-content;opacity:0;transition:opacity .12s}.swatch:hover span{opacity:.95}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.panels section{background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:14px 16px}.panels h2{margin:0 0 10px;font:700 10px/1 ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.slider{display:grid;grid-template-columns:90px 1fr 64px;gap:8px;align-items:center;padding:3px 0}.slider-label{color:var(--muted);font-size:12px}.slider input[type=range]{width:100%;accent-color:var(--accent)}.slider-num{font:11px/1 ui-monospace,Menlo,monospace;border:1px solid var(--hair);border-radius:4px;padding:4px 5px;width:100%;background:var(--bg);color:var(--ink)}.side-label{font:700 10px/1 ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 10px 4px}.preview-pick{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.preview-pick select{font:inherit;padding:4px 6px;border:1px solid var(--hair);border-radius:6px;background:var(--card)}.matrix-section{display:flex;flex-direction:column;gap:12px}.matrix-section h2{margin:0;font-size:14px;font-weight:650}.matrix-section .hint{color:var(--muted);font-weight:400;font-size:12px}.matrix-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--hair);border-radius:10px;padding:8px}.matrix{border-collapse:collapse;width:100%}.matrix th,.matrix td{padding:5px 8px;text-align:left;white-space:nowrap}.matrix thead th{font:700 10px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--hair)}.matrix thead th.default-mode:after{content:" •";color:var(--accent)}.matrix tbody th{font-weight:500;font-size:12px;color:var(--ink)}.matrix tbody th code{color:var(--muted);font-size:10px}.matrix tbody tr+tr td,.matrix tbody tr+tr th{border-top:1px solid var(--hair)}.cell{display:flex;align-items:center;gap:5px}.cell select,.cell input{font:11px/1.2 ui-monospace,Menlo,monospace;border:1px solid var(--hair);border-radius:4px;padding:4px 5px;background:var(--bg);color:var(--ink);max-width:150px}.cell input[type=number]{width:64px}.cell input.hex{width:76px}.mini-swatch{width:16px;height:16px;border-radius:4px;flex:none;box-shadow:inset 0 0 0 1px #80786440}.cell-toggle{padding:2px 6px;font:11px/1 ui-monospace,Menlo,monospace;color:var(--muted);border-radius:4px}.computed .matrix td.computed-val{font:11px/1.2 ui-monospace,Menlo,monospace;color:var(--muted)}
