:root {
    --bg: #0c0c0f;
    --panel: #121217;
    --panel-2: #16161d;
    --text: #e8e8ef;
    --muted: #a0a0b3;
    --brand: #7c5cff;
    --accent: #2a2a39;
    --border: #262636;
    --good: #00c580;
    --bad: #ff5c7c;
    --shadow: 0 10px 30px rgba(0,0,0,.45);
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
    margin: 0;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";
    background: radial-gradient(1200px 800px at 10% -10%, #15151d, var(--bg)) fixed;
    color: var(--text);
}

a { color: var(--text); text-decoration: none; opacity: .9; }
a:hover { opacity: 1; }
label { color: var(--muted); font-size: 12px; letter-spacing: .2px; }
input, button, select { font: inherit; }

/* Header */
header {
    position: sticky;
    top: 0;
    z-index: 10;
    backdrop-filter: blur(8px);
    background: linear-gradient(180deg, rgba(18,18,23,.85), rgba(18,18,23,.6) 60%, rgba(18,18,23,0));
    border-bottom: 1px solid var(--border);
}
.nav {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
}
.brand {
    display: flex; align-items: center; gap: 10px;
    font-weight: 700; letter-spacing: .3px;
}
.brand .dot { width: 10px; height: 10px; border-radius: 999px; background: var(--brand); box-shadow: 0 0 20px var(--brand); }
.nav a { padding: 8px 12px; border-radius: 10px; }
.nav a:hover { background: var(--accent); }

/* Layout */
.layout {
    max-width: 1200px;
    margin: 10px auto 40px;
    display: grid;
    grid-template-columns: 1.2fr .9fr;
    gap: 18px;
    padding: 0 20px;
}

.panel {
    background: linear-gradient(180deg, var(--panel), var(--panel-2));
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.panel-header {
    padding: 12px 14px;
    display: flex; align-items: center; justify-content: space-between;
    border-bottom: 1px solid var(--border);
    background: rgba(124,92,255,0.06);
}
.panel-title { font-weight: 600; letter-spacing: .3px; }
.panel-body { padding: 16px; }

/* Left (Preview) */
.preview-wrap { position: relative; height: 520px; display: grid; place-items: center; background: radial-gradient(600px 400px at 30% 10%, #181823, #0f0f15); }
#previewCanvas { max-width: 100%; max-height: 100%; border-radius: 12px; border: 1px dashed var(--border); background: #0a0a10; }
.statusbar { position: absolute; bottom: 10px; left: 10px; display: flex; gap: 10px; font-size: 12px; color: var(--muted); background: rgba(0,0,0,.35); padding: 8px 10px; border-radius: 10px; border: 1px solid var(--border); }

/* Right (Controls) */
.control { display: grid; gap: 6px; margin-bottom: 14px; }
.row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.btn {
    appearance: none;
    border: 1px solid var(--border);
    background: linear-gradient(180deg, #1c1c26, #12121a);
    color: var(--text);
    padding: 10px 14px;
    border-radius: 12px;
    cursor: pointer;
    transition: transform .06s ease, box-shadow .2s ease;
    box-shadow: 0 3px 10px rgba(0,0,0,.25);
}
.btn:hover { box-shadow: 0 6px 16px rgba(0,0,0,.35); }
.btn:active { transform: translateY(1px); }
.btn.primary { border-color: rgba(124,92,255,.7); background: linear-gradient(180deg, #2a2446, #201c35); }
.btn.success { border-color: rgba(0,197,128,.5); background: linear-gradient(180deg, #15362b, #0f2720); }
.btn.danger { border-color: rgba(255,92,124,.5); background: linear-gradient(180deg, #3a1a24, #2a1219); }

.file { display: inline-grid; grid-auto-flow: column; gap: 10px; align-items: center; }
input[type="file"]::file-selector-button { 
    margin-right: 12px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border);
    background: #191925; color: var(--text); cursor: pointer;
}

input[type="range"] { width: 220px; }
.value-chip { background: #191925; padding: 6px 10px; border-radius: 10px; border: 1px solid var(--border); font-size: 12px; color: var(--muted); }

.grid-split { display: grid; grid-template-columns: 1fr; gap: 12px; }
.selector {
    border: 1px dashed var(--border);
    border-radius: 12px;
    background: #0b0b11;
    overflow: hidden;
}
.selector-header { padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 13px; color: var(--muted); background: #12121a; }
.selector-body { position: relative; width: 100%; height: 260px; display: grid; place-items: center; }
#selectCanvas { max-width: 100%; max-height: 100%; background: #0a0a10; }
.hint { font-size: 12px; color: var(--muted); }
.kbd { display:inline-block; padding: 2px 6px; border: 1px solid var(--border); border-bottom-width: 2px; border-radius: 6px; font-size: 11px; background: #191925; color: var(--text); }

.seg { height: 1px; background: var(--border); margin: 14px 0; }