:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#1f2733;background-color:#eef2f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top right,rgba(79,70,229,.05),transparent 55%),radial-gradient(circle at bottom left,rgba(14,165,233,.08),transparent 45%),#f5f7fb}#root{width:100%;margin:0;padding:32px 24px 48px}a{color:inherit}button,input,select,textarea{font:inherit}body,.app,.sidebar,.content,.control-section,.preview-panel,.sidebar-panel,.sidebar-nav,.nav-link{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:600;margin:0}.app{display:flex;min-height:100vh;position:relative}.sidebar{width:300px;background:#ffffffeb;border-right:1px solid rgba(148,163,184,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .28s ease,width .28s ease;position:relative;z-index:10}.sidebar.closed{transform:translate(-100%);width:0}.sidebar-inner{height:100%;padding:118px 20px 26px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}.sidebar.closed .sidebar-inner{opacity:0;pointer-events:none}.sidebar-header{display:flex;align-items:center;justify-content:space-between}.sidebar-title{font-size:.82rem;letter-spacing:.12em;text-transform:none;color:#475569;font-weight:600}.sidebar-close{position:static;margin-left:12px}.sidebar-floater{color:#374151}.sidebar-floater{position:fixed;top:72px;left:8px;z-index:30}.sidebar-close{position:absolute;top:20px;right:20px}.sidebar-close:before{content:"<"}.sidebar-floater:before{content:">"}.sidebar-close:hover,.sidebar-floater:hover{transform:none;box-shadow:none;border-color:#94a3b8a6;background:#f1f5f9f2;color:#1f2937}.sidebar-nav .nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.nav-link{width:100%;border:none;border-radius:14px;padding:12px 14px;font-size:.9rem;font-weight:600;text-align:left;background:transparent;color:#475569;cursor:pointer;text-transform:none;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.nav-link:hover{background:#2563eb14;color:#1d4ed8}.nav-link.active{background:linear-gradient(135deg,#2563eb29,#0ea5e92e);color:#1d4ed8;box-shadow:0 14px 28px #2563eb2e}.sidebar-floater:hover{transform:translate(2px)}.app.sidebar-open .sidebar-floater{display:none}.sidebar-panel{display:flex;flex-direction:column;gap:20px;padding-top:28px}.content{flex:1;padding:0 32px 44px;display:flex;flex-direction:column;gap:18px;min-width:0}.content-hero{display:flex;flex-direction:column;gap:12px;padding:8px 34px 18px 32px}.content-hero h1{margin:0;font-size:1.47rem;font-weight:700;color:#111827}.content-hero p{margin:0;color:#475569;font-size:.9rem;max-width:640px}.config-panel{max-width:360px;width:100%}.control-section{background:#fff;border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 36px #0f172a14}.section-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#161a22}.section-header p{margin:6px 0 0;color:#5b6576;font-size:.9rem}.color-picker{display:flex;align-items:center;gap:12px}.color-picker input[type=color]{width:52px;height:52px;padding:0;border:none;background:transparent;border-radius:12px;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a1f;cursor:pointer}.color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:0;border-radius:12px}.color-picker input[type=color]::-webkit-color-swatch{border:none;border-radius:12px}.channel-grid{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:.82rem;font-weight:600;color:#29303c}.field input{height:36px;border-radius:10px;border:1px solid rgba(15,23,42,.12);background:#f8fafc;padding:0 10px;font-size:.82rem;color:#111827;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.field input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e;background:#fff}.field-hint{margin:0;font-size:.85rem;color:#6b7280}.field-hint.warning{color:#ab1f3f;font-weight:500}.two-column{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:12px}.preview-panel{background:#fff;border-radius:20px;padding:28px 32px;display:flex;flex-direction:column;gap:20px;box-shadow:0 20px 44px #0f172a1f}.preview-header h2{margin:0;font-size:.91rem;font-weight:600;color:#111827}.preview-header p{margin:6px 0 0;color:#5b6576;font-size:.9rem}.preview-gradient{display:flex;flex-direction:column;gap:8px}.slider-row{display:flex;align-items:center;gap:12px}.slider-row input[type=range]{flex:1;accent-color:#2563eb}.slider-value{font-weight:600;font-size:1rem;color:#1f2937;min-width:32px;text-align:center}.swatch-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;padding:16px;border-radius:16px;background:linear-gradient(145deg,#2563eb14,#0ea5e91f)}.swatch-meta div{display:flex;flex-direction:column;gap:4px}.meta-label{font-size:.56rem;text-transform:none;letter-spacing:.02em;color:#475569}.meta-value{font-size:1.06rem;font-weight:600;color:#1e293b}.preview-gradient .meta-label{font-size:.9rem;letter-spacing:.02em;color:#475569;font-weight:600}.canvas-wrapper{width:100%;border-radius:16px;background-image:linear-gradient(45deg,#f1f5f9 25%,transparent 25%),linear-gradient(-45deg,#f1f5f9 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f1f5f9 75%),linear-gradient(-45deg,transparent 75%,#f1f5f9 75%);background-size:32px 32px;background-position:0 0,0 16px,16px -16px,-16px 0px;padding:18px}.canvas-wrapper canvas{width:100%;height:auto;display:block;cursor:pointer;font-family:Inter,Segoe UI,sans-serif;font-weight:500}.preview-hint{margin:0;font-size:.9rem;color:#5f6b7b}.actions-row{display:flex;flex-wrap:wrap;gap:12px}.action-button{border:none;border-radius:12px;padding:12px 18px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .2s ease;background:#ecf0f6;color:#1e293b;box-shadow:0 8px 16px #0f172a14}.action-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #0f172a1f}.action-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.action-button.primary{background:linear-gradient(135deg,#2563eb,#06b6d4);color:#f8fafc}.action-button.primary:hover{background:linear-gradient(135deg,#1d4ed8,#0891b2)}.action-button.ghost{background:#f8fafc;color:#1f2937;box-shadow:inset 0 0 0 1px #0f172a14}.action-button.ghost:hover{box-shadow:inset 0 0 0 1px #2563eb66;color:#1d4ed8}.status-banner{margin-top:12px;border-radius:12px;padding:12px 16px;font-size:.94rem;font-weight:500;display:flex;align-items:center;gap:10px}.status-banner.info{background:#2563eb14;color:#1d4ed8}.status-banner.success{background:#10b9811f;color:#047857}.status-banner.error{background:#dc26261f;color:#b91c1c}.toggle-field{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#4b5563}.toggle-field input[type=checkbox]{width:16px;height:16px}.sidebar-close,.sidebar-floater{border:1px solid rgba(148,163,184,.45);background:#f8fafcf2;color:#374151;cursor:pointer;font-size:1.1rem;font-weight:600;width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;appearance:none;outline:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.sidebar-close:focus,.sidebar-close:focus-visible,.sidebar-floater:focus,.sidebar-floater:focus-visible{outline:none;box-shadow:0 0 0 2px #3b82f633}.history-panel{margin-top:12px;display:flex;flex-direction:column;gap:12px}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{display:flex;align-items:center;gap:12px;background:#f8fafccc;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:10px 12px;cursor:pointer;transition:border-color .2s ease,background .2s ease;text-align:left}.history-item:hover,.history-item:focus{border-color:#2563eb66;background:#dbeafe8c;outline:none}.history-swatch{width:32px;height:32px;border-radius:8px;box-shadow:inset 0 0 0 1px #0f172a1f}.history-label{font-size:.85rem;font-weight:600;color:#1f2937}@media(max-width:1024px){.app{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid rgba(148,163,184,.2)}.sidebar.closed{transform:translateY(-100%)}.sidebar-floater{top:18px;left:calc(50% - 19px)}.content{padding:32px 24px 48px}.config-panel{max-width:100%}.two-column{grid-template-columns:1fr}}
