:root{
  --bg:#faf9f6;--fg:#1f1f1d;--muted:#6b6b64;--line:#ddd9d0;--accent:#3f5940;--tile-size:44px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--bg:#1b1b19;--fg:#f2f1ec;--muted:#a9a89f;--line:#3a3a35;--accent:#8fae86;}
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:0 16px 40px;}
h1{font-size:1.4rem;margin:20px 0 4px;color:var(--fg);}
.tagline{color:var(--muted);font-size:.95rem;margin:0 0 16px;}
[hidden]{display:none!important;}
.sample-note{font-size:.72rem;color:var(--muted);margin:4px 0;}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;}
@media(min-width:600px){.tiles{grid-template-columns:repeat(5,1fr);}}
.room-tile{border:2px solid var(--line);border-radius:8px;background:none;padding:10px;cursor:pointer;color:var(--fg);font-size:.9rem;min-height:70px;}
.room-tile:hover,.room-tile:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);}
.room-tile[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);}
.stage{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;}
.canvas-wrap{position:relative;max-width:640px;flex:1 1 400px;touch-action:none;}
canvas{width:100%;height:auto;border-radius:8px;border:1px solid var(--line);display:block;background:#eee;}
#slider-range{width:100%;margin-top:6px;}
.mode-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;}
.mode-row button{padding:8px 12px;border-radius:6px;border:1px solid var(--line);background:none;color:var(--fg);cursor:pointer;min-height:44px;}
.mode-row button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent);}
.tolerance-row{display:flex;align-items:center;gap:8px;font-size:.85rem;margin:8px 0;}
.tolerance-row input[type=range]{flex:1;}
.side{flex:1 1 280px;min-width:260px;}
.selected-colour{font-size:1.1rem;font-weight:600;margin:0;}
.selected-code{color:var(--muted);margin:0 0 8px;}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.filters button{border:1px solid var(--line);background:none;color:var(--fg);border-radius:14px;padding:4px 10px;font-size:.8rem;cursor:pointer;min-height:32px;}
.filters button[aria-pressed="true"]{background:var(--accent);color:#fff;}
#search{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);margin-bottom:8px;}
.swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--tile-size),1fr));gap:6px;max-height:280px;overflow-y:auto;padding:2px;}
.swatch{width:var(--tile-size);height:var(--tile-size);border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;}
.swatch:hover,.swatch:focus-visible{outline:2px solid var(--fg);}
.swatch[aria-pressed="true"]{border-color:var(--fg);}
.recent-row{display:flex;gap:6px;margin:8px 0;}
.door-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;}
.door-card{flex:0 0 auto;text-align:center;font-size:.75rem;width:70px;}
.door-swatch{width:70px;height:70px;border-radius:6px;border:1px solid var(--line);margin-bottom:4px;background-size:cover;background-position:center;}
.door-swatch img{width:100%;height:100%;object-fit:cover;border-radius:5px;}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.actions button{padding:10px 14px;border-radius:6px;border:1px solid var(--line);background:none;color:var(--fg);cursor:pointer;min-height:44px;}
.actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
footer{margin-top:24px;font-size:.8rem;color:var(--muted);line-height:1.5;}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important;}}
