.grad-tool-wrapper{display:flex;flex-direction:column;gap:20px;max-width:840px;margin:24px auto;padding:0}.grad-preview{width:100%;height:160px;border-radius:12px;border:1px solid var(--swp-border);transition:background .1s ease}.grad-controls-row{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}.grad-type-group{display:flex;gap:8px;flex-shrink:0;border:none;margin:0;padding:0;min-inline-size:auto}.grad-type-btn{min-width:80px;min-height:44px;padding:0 16px;border-radius:var(--r-sm);font-size:14px;font-weight:700;font-family:var(--font-mono);cursor:pointer;border:1px solid var(--swp-border);background:var(--swp-paper-2);color:var(--swp-ink);transition:background-color .15s ease,border-color .15s ease,color .15s ease}.grad-type-btn--active{background:var(--color-primary);border-color:transparent;color:var(--color-primary-content)}.grad-type-btn:not(.grad-type-btn--active):hover{background:var(--swp-border)}.grad-angle-section{display:flex;flex-direction:column;gap:12px}.grad-angle-slider-row{display:flex;flex-direction:column;gap:4px}.grad-angle-header{display:flex;justify-content:space-between;align-items:baseline}.grad-angle-label{font-size:12px;font-weight:700;color:var(--swp-ink-2)}.grad-angle-value{font-size:13px;font-weight:700;font-family:var(--font-mono);color:var(--swp-ink);min-width:44px;text-align:right}.grad-angle-slider{width:100%;height:20px;accent-color:var(--color-primary);cursor:pointer}.grad-dir-btns{display:flex;flex-wrap:wrap;gap:6px;border:none;margin:0;padding:0;min-inline-size:auto}.grad-dir-btn{min-width:48px;height:52px;border-radius:var(--r-sm);border:1px solid var(--swp-border);background:var(--swp-paper-2);color:var(--swp-ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 8px;transition:background-color .15s ease,border-color .15s ease;flex:1 0 auto;font-family:var(--font-sans)}.grad-dir-btn--active{background:var(--color-primary);border-color:transparent;color:var(--color-primary-content)}.grad-dir-btn:not(.grad-dir-btn--active):hover{background:var(--swp-border)}.grad-dir-arrow{font-size:16px;line-height:1}.grad-dir-deg{font-size:10px;font-weight:700;font-family:var(--font-mono);color:inherit;opacity:.7}.grad-main-row{display:grid;grid-template-columns:1fr 240px;gap:24px;align-items:start}.grad-stops-section{display:flex;flex-direction:column;gap:8px}.grad-stop{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;background:var(--swp-surface);border:1px solid var(--swp-border);border-radius:var(--r-sm)}.grad-stop__color-wrap{display:flex;align-items:center;gap:8px;flex-shrink:0}.grad-stop__picker{width:36px;height:36px;border-radius:var(--r-sm);border:2px solid var(--swp-border);cursor:pointer;padding:2px;background:none;-webkit-appearance:none;appearance:none;overflow:hidden}.grad-stop__picker::-webkit-color-swatch-wrapper{padding:0}.grad-stop__picker::-webkit-color-swatch{border:none;border-radius:calc(var(--r-sm) - 2px)}.grad-stop__picker::-moz-color-swatch{border:none}.grad-stop__hex{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--swp-ink);min-width:56px}.grad-stop__pos-wrap{display:flex;align-items:center;gap:6px;flex:1}.grad-stop__pos-label{font-size:12px;font-weight:700;color:var(--swp-ink-2);flex-shrink:0}.grad-stop__pos-slider{flex:1;height:20px;accent-color:var(--color-primary);cursor:pointer}.grad-stop__pos-value{font-size:13px;font-weight:700;font-family:var(--font-mono);color:var(--swp-ink);min-width:40px;text-align:right;flex-shrink:0}.grad-stop__delete{min-width:44px;min-height:44px;border-radius:var(--r-sm);font-size:12px;font-weight:700;font-family:var(--font-sans);color:var(--swp-ink-3);background:transparent;border:1px solid var(--swp-border);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s ease,border-color .15s ease}.grad-stop__delete:hover{color:var(--color-error);border-color:var(--color-error)}.grad-add-btn{width:100%;min-height:48px;border-radius:var(--r-md);background:transparent;border:2px dashed var(--swp-border);color:var(--swp-ink-2);font-size:14px;font-weight:700;font-family:var(--font-sans);cursor:pointer;transition:border-color .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center;gap:6px}.grad-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.grad-presets{display:flex;flex-direction:column;gap:8px}.grad-presets-title{font-size:12px;font-weight:700;color:var(--swp-ink-2);margin-bottom:4px;margin-top:0}.grad-preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.grad-preset-btn{height:56px;border-radius:var(--r-sm);border:2px solid transparent;cursor:pointer;display:flex;align-items:flex-end;justify-content:flex-start;padding:6px 8px;transition:border-color .15s ease,transform .1s ease;overflow:hidden}.grad-preset-btn:hover{transform:scale(1.03);border-color:#fff9}.grad-preset-btn:last-child{grid-column:1 / -1}.grad-preset-name{font-size:12px;font-weight:700;font-family:var(--font-sans);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);line-height:1}.grad-snippet{display:flex;flex-direction:column;gap:12px}.grad-snippet__code{position:relative;background:#1e1e1e;border-radius:var(--r-md);overflow:hidden}.grad-snippet__code:before{content:"CSS";position:absolute;top:.4rem;left:.75rem;font-size:.7rem;font-weight:700;color:#5eead4;letter-spacing:.05em;pointer-events:none;z-index:1;font-family:var(--font-mono)}.grad-snippet__pre{margin:0;padding:2rem 1.2rem 1.2rem;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.8;color:#d4d4d4;background:transparent}.grad-snippet__pre code{font-family:inherit;font-size:inherit;color:inherit}.grad-snippet__actions{display:flex;gap:8px;flex-wrap:wrap}.grad-snippet__copy,.grad-snippet__reset{min-height:44px;padding:8px 20px;border-radius:var(--r-pill);font-size:14px;font-weight:700;font-family:var(--font-sans);cursor:pointer;display:flex;align-items:center;gap:6px;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.grad-snippet__copy{background:var(--color-primary);color:var(--color-primary-content);border:none}.grad-snippet__copy:hover{opacity:.9}.grad-snippet__copy--done{background:var(--color-success)}.grad-snippet__reset{background:transparent;color:var(--swp-ink-2);border:1px solid var(--swp-border)}.grad-snippet__reset:hover{background:var(--swp-paper-2);border-color:var(--swp-ink-3)}.grad-page-header{padding:24px 16px 0;max-width:840px;margin:0 auto}@media(min-width:768px){.grad-page-header{padding:32px 24px 0}}.grad-page-subtitle{font-size:14px;color:var(--swp-ink-2);margin-top:8px;margin-bottom:0}.grad-how-to{max-width:840px;margin:0 auto;padding:0 16px}@media(min-width:768px){.grad-how-to{padding:0 24px}}.grad-steps{counter-reset:grad-step;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.grad-steps li{counter-increment:grad-step;display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--swp-ink);line-height:1.7}.grad-steps li:before{content:counter(grad-step);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:var(--color-primary-content);font-size:13px;font-weight:800;margin-top:2px}.grad-section{max-width:840px;margin:0 auto;padding:0 16px}@media(min-width:768px){.grad-section{padding:0 24px}}.grad-section-title{font-size:20px;font-weight:800;color:var(--swp-ink);border-left:4px solid var(--color-primary);padding-left:12px;margin-bottom:16px;margin-top:0}.grad-related-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}.grad-related-tools{display:flex;flex-direction:column;gap:12px}.grad-related-link{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--swp-surface);border:1px solid var(--swp-border);border-radius:var(--r-md);color:var(--color-primary);text-decoration:none;font-size:15px;font-weight:700;transition:background-color .15s ease,border-color .15s ease}.grad-related-link:hover{background:var(--swp-paper-2);border-color:var(--color-primary)}@media(max-width:767px){.grad-controls-row,.grad-main-row{display:flex;flex-direction:column;gap:16px}}@media(max-width:479px){.grad-stop__hex{display:none}.grad-dir-btn{flex:1 0 calc(25% - 6px)}.grad-preview{height:120px}}@media(prefers-reduced-motion:reduce){.grad-preview,.grad-type-btn,.grad-dir-btn,.grad-stop__delete,.grad-add-btn,.grad-snippet__copy,.grad-snippet__reset,.grad-preset-btn{transition:none}.grad-preset-btn:hover{transform:none}}
