:root{--bg:#fff;--text:#333;--border:#eee;--sans:system-ui, -apple-system, sans-serif}html,body,#root{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}body{background-color:var(--bg);color:var(--text);font-family:var(--sans)}#root{flex-direction:column;display:flex}*{box-sizing:border-box}.app-container{background-color:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.header{z-index:500;background:#fff;border-bottom:1px solid #f0f0f0;flex:none;justify-content:space-between;align-items:center;padding:1rem;display:flex;position:relative}.header-title-container{align-items:baseline;gap:1rem;display:flex}.header h1{letter-spacing:-.025em;color:#1a1a1a;margin:0;font-size:1.25rem;font-weight:600}.header-subtitle{color:#999;letter-spacing:.02em;font-size:.75rem;font-weight:400}.share-button{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.share-button:hover{color:#000;background:#fafafa;border-color:#d0d0d0}.share-button:active{transform:scale(.98)}.export-button{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.export-button:hover{color:#000;background:#fafafa;border-color:#d0d0d0}.export-button:active{transform:scale(.98)}.export-container{position:relative}.export-menu{z-index:1000;background:#fff;border:1px solid #e0e0e0;border-radius:8px;width:200px;margin-top:.5rem;animation:.15s ease-out fadeIn;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 10px 25px #0000001a}.export-menu-section{flex-direction:column;gap:.25rem;padding:.5rem;display:flex}.export-menu-section+.export-menu-section{border-top:1px solid #f0f0f0}.export-menu-title{color:#999;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.export-menu-button{text-align:left;color:#333;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.5rem;font-size:.875rem;transition:background .2s}.export-menu-button:hover{color:#000;background:#fafafa}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.clear-all-button{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s}.clear-all-button:hover{color:#000;background:#fafafa;border-color:#d0d0d0}.clear-all-button:active{transform:scale(.98)}.header-controls{gap:.5rem;display:flex}.content{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.input-section{z-index:400;background:#fafafa;border-bottom:1px solid #f0f0f0;flex:none;padding:1rem;position:relative}.main-layout{z-index:1;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.side-history-toggle{cursor:pointer;color:#999;z-index:1000;background:#fff;border:1px solid #eee;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex;position:absolute;top:.5rem;right:1rem;box-shadow:0 2px 8px #0000000d}.side-history-toggle:hover{color:#000;background:#f0f0f0}.side-history-toggle.active{color:#000;border-color:#d0d0d0}.history-panel{z-index:600;background:#fff;border-left:1px solid #f0f0f0;flex-direction:column;flex-shrink:0;width:300px;animation:.3s ease-out slideIn;display:flex;position:relative}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.history-header{border-bottom:1px solid #f0f0f0;align-items:center;height:48px;padding:.5rem 1rem;display:flex}.history-header h2{color:#333;margin:0;font-size:.9rem;font-weight:600}.history-header-actions{align-items:center;margin-left:auto;margin-right:2.5rem;display:flex}.clear-history-button{color:#ff4d4f;cursor:pointer;background:0 0;border:1px solid #ff4d4f;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;transition:all .2s}.clear-history-button:hover{background:#fff1f0}.history-list{flex:1;padding:.5rem;overflow-y:auto}.history-item{border-bottom:1px solid #f5f5f5;border-radius:8px;align-items:center;gap:1rem;padding:.75rem;transition:background .2s;display:flex}.history-item:hover{background:#fafafa}.history-color-preview{cursor:cell;border:1px solid #0000000d;border-radius:4px;flex-shrink:0;width:48px;height:32px;transition:transform .1s}.history-color-preview:hover{transform:scale(1.05)}.history-item-controls{flex:1;justify-content:space-between;align-items:center;min-width:0;display:flex}.history-color-code{color:#333;cursor:pointer;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:600;overflow:hidden}.history-color-code:hover{color:#000;text-decoration:underline}.delete-history-item{color:#ccc;cursor:pointer;opacity:0;background:0 0;border:none;padding:0 .5rem;font-size:1.25rem;line-height:1;transition:all .2s}.history-item:hover .delete-history-item,.history-item:focus-within .delete-history-item{opacity:1}.delete-history-item:hover{color:#ff4d4f}.history-empty{text-align:center;color:#999;padding:3rem 1rem;font-size:.875rem}.history-undo-toast{color:#fff;z-index:700;background:#1a1a1a;justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.875rem;animation:.3s ease-out slideUp;display:flex;position:absolute;bottom:0;left:0;right:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.history-undo-toast button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:4px;padding:.25rem .75rem;font-size:.75rem;transition:all .2s}.history-undo-toast button:hover{background:#ffffff1a;border-color:#fff}.palette-undo-toast{color:#fff;z-index:800;background:#1a1a1a;border-radius:12px;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;font-size:.875rem;animation:.3s ease-out slideInRight;display:flex;position:absolute;bottom:2rem;right:2rem;box-shadow:0 4px 20px #00000026}@keyframes slideInRight{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.palette-undo-toast button{color:#000;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:.35rem 1rem;font-size:.75rem;font-weight:600;transition:all .2s}.palette-undo-toast button:hover{background:#eee}.color-input{background:#fff;border:1px solid #e0e0e0;border-radius:8px;width:100%;height:44px;padding:0 1rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.95rem;transition:all .2s}.color-input:focus{border-color:#000;outline:none;box-shadow:0 0 0 2px #0000000d}.grid-container{flex-direction:column;flex:auto;min-height:0;padding:.5rem 2rem 2rem;display:flex;position:relative;overflow-y:auto}.app-footer{text-align:center;color:#999;background:#fff;border-top:1px solid #f0f0f0;flex:none;padding:.75rem;font-size:.75rem}.app-footer a{color:#666;text-decoration:none;transition:color .2s}.app-footer a:hover{color:#000;text-decoration:underline}.footer-divider{color:#eee;margin:0 .5rem}.groups-container{flex-direction:column;gap:2rem;padding-bottom:2rem;display:flex}.color-group{background:#fff;border:1px solid #f0f0f0;border-radius:8px;flex-direction:column;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.color-group:focus-within{border-color:#d0d0d0;box-shadow:0 4px 12px #00000008}.group-header{background:#fafafa;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.group-header-left{align-items:center;display:flex}.group-header-right{align-items:center;gap:1rem;display:flex}.copy-group-button{color:#666;cursor:pointer;background:0 0;border:1px solid #e0e0e0;border-radius:4px;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;transition:all .2s;display:flex}.copy-group-button:hover{color:#000;background:#fff;border-color:#d0d0d0}.group-color-input{background:#fff;border:1px solid #e0e0e0;border-radius:6px;width:400px;max-width:100%;height:32px;padding:0 .75rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem;transition:all .2s}.group-color-input:focus{border-color:#000;outline:none;box-shadow:0 0 0 2px #0000000d}.group-name-input{font-family:var(--sans);color:#333;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:300px;padding:.25rem .5rem;font-size:1rem;font-weight:600;transition:all .2s}.group-name-input:hover{background:#fff;border-color:#e0e0e0}.group-name-input:focus{background:#fff;border-color:#000;box-shadow:0 0 0 2px #0000000d}.delete-group-button{color:#ccc;cursor:pointer;background:0 0;border:none;padding:0 .5rem;font-size:1.5rem;line-height:1;transition:color .2s}.delete-group-button:hover{color:#ff4d4f}.color-grid{flex-wrap:wrap;gap:0;min-height:160px;transition:background .2s;display:flex}.add-inline-color-button{color:#ccc;cursor:pointer;background:0 0;border:2px dashed #f0f0f0;border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;min-height:455px;font-size:2rem;transition:all .2s;display:flex}.add-inline-color-button:hover{color:#999;background:#fafafa;border-color:#e0e0e0}.add-color-strip-container{flex-direction:column;min-width:160px;min-height:455px;padding:.5rem;display:flex}.add-group-button{color:#999;cursor:pointer;background:0 0;border:2px dashed #e0e0e0;border-radius:8px;width:100%;margin-top:1rem;padding:1rem;font-size:1rem;font-weight:500;transition:all .2s}.add-group-button:hover{color:#666;background:#fafafa;border-color:#d0d0d0}.color-strip-container{flex-direction:column;min-width:160px;min-height:455px;display:flex;position:relative}.drag-handle{opacity:0;cursor:grab;z-index:10;justify-content:center;align-items:center;padding:.5rem;transition:opacity .2s;display:flex;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.drag-handle:active{cursor:grabbing}.color-strip-container:hover .drag-handle{opacity:.5}.color-strip-container:hover .drag-handle:hover{opacity:1}.color-preview{flex:1;justify-content:center;align-items:flex-end;width:100%;padding-bottom:2rem;display:flex;position:relative}.color-preview-interactable{cursor:cell}.delete-button{cursor:pointer;z-index:10;opacity:.3;background:0 0;border:none;padding:0;font-size:24px;line-height:1;transition:opacity .2s;position:absolute;top:1rem;left:1rem}.delete-button:hover{opacity:1}.color-picker-hidden{position:absolute}.color-text-container{z-index:10;cursor:pointer;padding:.5rem 1rem;transition:transform .1s}.color-text-container:active{transform:scale(.95)}.color-text{text-transform:uppercase;letter-spacing:.05em;text-shadow:0 1px 2px #0000001a;font-family:JetBrains Mono,ui-monospace,monospace;font-size:20px;font-weight:700}.color-text:focus{color:#000;outline:none}
