:root{
    --bg: #0b1220;
    --card: #0f1724;
    --muted: #a6b0c3;
    --primary: #ff8a00;
    --accent: #ffd6a3;
    --glass: rgba(255,255,255,0.03);
    --shadow: 0 8px 30px rgba(2,6,23,0.7);
    --radius: 12px;
    --mono: 'Fira Code', monospace;
    --ui: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
    --transition: 220ms cubic-bezier(.2,.9,.3,1);
}

*{box-sizing: border-box}
html,body{height:100%;margin:0;font-family:var(--ui);background:linear-gradient(180deg,#07101a 0%, var(--bg) 60%);color:var(--muted);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}

.wrap{max-width:1100px;margin:32px auto;padding:28px;}

header.app{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:20px;}
.brand{display:flex;gap:14px;align-items:center;}
.logo {width:56px;height:56px;background:linear-gradient(135deg,#ffb86b,#ff7a00);border-radius:12px;display:grid;place-items:center;box-shadow: 0 6px 18px rgba(255,138,0,0.12), var(--shadow);}
.logo svg{ width:36px; height:36px; transform:translateY(-2px); }
h1{ font-size:1.45rem; margin:0; color:white; font-weight:700 }
.subtitle{ font-size:0.85rem; color:var(--accent); margin-top:2px }

.actions{display:flex;gap:10px;align-items:center;}
.theme-toggle{background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--muted);padding:8px 12px;border-radius:10px;cursor:pointer;transition:all var(--transition);}
.theme-toggle:hover{ transform:translateY(-3px); }

main{display:grid;grid-template-columns: 1fr 420px;gap:20px;align-items:start;}

.card{background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius: var(--radius);padding:18px;box-shadow: var(--shadow);border: 1px solid rgba(255,255,255,0.03);}

.input-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;}
textarea#lua-input{width:100%;min-height:360px;resize:vertical;border-radius:10px;padding:14px;font-family:var(--mono);font-size:0.95rem;line-height:1.45;color:#e6eef7;background: linear-gradient(180deg, rgba(10,16,24,0.6), rgba(10,16,24,0.45));border: 1px solid rgba(255,255,255,0.03);box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);}

.controls-row{display:flex;gap:10px;margin-top:12px;align-items:center;flex-wrap:wrap;}
.primary-btn{background:linear-gradient(180deg,var(--primary),#ff6f00);color:#0b0b0b;border:none;padding:10px 16px;border-radius:10px;font-weight:700;cursor:pointer;box-shadow: 0 8px 30px rgba(255,138,0,0.12);transition: transform var(--transition), box-shadow var(--transition);}
.primary-btn:active{ transform: translateY(1px) }
.primary-btn:disabled{ opacity:0.6; cursor:not-allowed }

.file-upload{display:inline-flex;gap:8px;align-items:center;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,0.02);border:1px dashed rgba(255,255,255,0.02);cursor:pointer;color:var(--muted);font-size:0.9rem;}

.sidebar{display:flex;flex-direction:column;gap:16px;}
.output{min-height:360px;display:flex;flex-direction:column;gap:10px;}
textarea#lua-output{width:100%;min-height:280px;resize:none;border-radius:10px;padding:12px;font-family:var(--mono);background:linear-gradient(180deg, rgba(3,6,10,0.6), rgba(3,6,10,0.45));color:#e8f3ff;border:1px solid rgba(255,255,255,0.03);}
.out-actions{ display:flex; gap:8px; margin-top:auto; }
.btn{border-radius:10px;padding:9px 12px;border:none;cursor:pointer;font-weight:700;color:#0b0b0b;}
.btn.secondary{background:linear-gradient(180deg,#4b6bd6,#3551c9);color:white;}
.btn.ghost{background:transparent;color:var(--muted);border:1px solid rgba(255,255,255,0.03);}
footer{margin-top:18px;color:rgba(255,255,255,0.35);font-size:0.9rem;text-align:center;}
@media (max-width:980px){main{ grid-template-columns: 1fr; } .sidebar{ order: 2 }}
body.light{--bg: #f6fbff;--card: #ffffff;--muted: #263238;--primary: #ff6f00;--accent: #6b9eff;background: linear-gradient(180deg,#f8fbff 0%, #f2f6fb 60%);color: #24343f;}
body.light textarea#lua-input,body.light textarea#lua-output{color:#122028;background:linear-gradient(180deg, #ffffff, #fbfbfd);border:1px solid rgba(10,20,30,0.04);}
