:root{color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{flex-direction:column;align-items:center;gap:16px;margin:0;padding:24px;display:flex}h1{margin:0;font-size:1.25rem}h2{text-transform:uppercase;letter-spacing:.05em;color:#888;margin:0 0 8px;font-size:.75rem}#layout{align-items:flex-start;gap:24px;display:flex}#sidebar{flex-direction:column;flex-shrink:0;gap:12px;width:220px;transition:width .15s;display:flex}#sidebar.collapsed{width:auto}#sidebar-content{flex-direction:column;gap:20px;width:220px;display:flex}#sidebar.collapsed #sidebar-content{display:none}#sidebar section{flex-direction:column;display:flex}#sidebar-toggle{cursor:pointer;background:#f4f4f4;border:1px solid #ddd;border-radius:4px;width:28px;height:28px;padding:0;line-height:1}#main{flex-direction:column;gap:12px;display:flex}#canvases{align-items:flex-start;gap:16px;display:flex}.canvas-panel{flex-direction:column;gap:6px;display:flex}.panel-label{text-transform:uppercase;letter-spacing:.05em;color:#888;font-size:.75rem}.canvas-wrap{background:#fff;border:1px solid #ddd}svg{display:block}svg path{transition:stroke 80ms,fill 80ms}#canvas-solution path{cursor:grab}#canvas-solution path.selected{cursor:grabbing}#status{color:#555;min-height:1.2em;font-family:SF Mono,Menlo,monospace;font-size:.85rem}#help{color:#888;font-size:.8rem}button,select{font:inherit;padding:4px 10px}.button-list{flex-direction:column;gap:4px;display:flex}.button-list button{text-align:left;cursor:pointer;background:#f4f4f4;border:1px solid #0000;border-radius:4px}#shape-search{box-sizing:border-box;border:1px solid #ddd;border-radius:4px;outline:none;width:100%;margin-bottom:6px;padding:5px 8px;font-size:.85rem}#shape-search:focus{border-color:#aaa}#category-pills{scrollbar-width:none;gap:4px;margin-bottom:8px;display:flex;overflow-x:auto}#category-pills::-webkit-scrollbar{display:none}.cat-pill{cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd;border-radius:999px;flex-shrink:0;padding:3px 9px;font-size:.72rem;line-height:1.4}.cat-pill:hover{border-color:#aaa}.cat-pill.active{color:#fff;background:#1a1a1a;border-color:#1a1a1a}#shape-list{flex-direction:column;gap:4px;max-height:380px;display:flex;overflow-y:auto}.shape-featured{border-bottom:1px solid #eee;margin-bottom:10px;padding-bottom:10px}.shape-featured .featured-square{text-align:left;color:#fff;cursor:pointer;background:#1a1a1a;border:1px solid #1a1a1a;border-radius:4px;width:100%;font-weight:600}.shape-featured .featured-square:hover{background:#000}.featured-note{color:#aaa;margin:3px 2px 0;font-size:.68rem}.shape-category{text-transform:uppercase;letter-spacing:.05em;color:#aaa;margin:8px 0 2px;font-size:.7rem}.shape-category:first-child{margin-top:0}.shape-empty{color:#bbb;padding:6px 2px;font-size:.82rem}.button-list button.active{color:#fff;background:#1a1a1a}.shape-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.shape-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shape-stars{letter-spacing:-.5px;color:#c8963e;flex-shrink:0;font-size:.62rem}.color-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:.85rem;display:flex}.color-row input[type=color]{cursor:pointer;border:1px solid #ddd;border-radius:4px;width:32px;height:24px;padding:0}.color-row.hidden{display:none}.toggle-group{border:1px solid #ddd;border-radius:4px;margin-bottom:8px;display:flex;overflow:hidden}.toggle-group button{cursor:pointer;background:#fff;border:none;flex:1;padding:6px 0}.toggle-group button.active{color:#fff;background:#1a1a1a}#source-link{min-height:1.2em;font-size:.78rem}#source-link a{color:#888;text-decoration:none}#source-link a:hover{color:#444;text-decoration:underline}#download-btn,#pdf-btn,#pdf-all-btn{box-sizing:border-box;cursor:pointer;background:#f4f4f4;border:1px solid #ddd;border-radius:4px;width:100%;margin-bottom:6px;display:block}#pdf-btn:disabled,#pdf-all-btn:disabled{opacity:.6;cursor:default}.pdf-option{color:#666;cursor:pointer;align-items:center;gap:6px;font-size:.78rem;display:flex}.slider-row{align-items:center;gap:8px;font-size:.85rem;display:flex}.slider-row label{flex-shrink:0}.slider-row input[type=range]{flex:1;padding:0}.slider-row span{text-align:right;color:#888;width:36px;font-family:SF Mono,Menlo,monospace;font-size:.75rem}
