:root{
  --bg: #0b1020;
  --panel: rgba(255,255,255,.06);
  --panel2: rgba(255,255,255,.08);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.68);
  --border: rgba(255,255,255,.14);
  --accent: #7c5cff;
  --accent2: #22c55e;
  --danger: #ef4444;
  --warn: #f59e0b;
  --info: #38bdf8;
  --shadow: 0 12px 30px rgba(0,0,0,.35);
  --control-radius: 12px;
  --control-height: 44px;
  --control-py: 10px;
  --control-px: 12px;
}

html[data-theme="light"]{
  --bg: #f5f7ff;
  --panel: rgba(255,255,255,.72);
  --panel2: rgba(255,255,255,.82);
  --text: rgba(16,24,40,.92);
  --muted: rgba(16,24,40,.62);
  --border: rgba(16,24,40,.14);
  --shadow: 0 12px 30px rgba(16,24,40,.12);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Sora", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background: radial-gradient(1200px 800px at 10% -10%, rgba(124,92,255,.35), transparent 55%),
              radial-gradient(900px 700px at 110% 10%, rgba(56,189,248,.25), transparent 55%),
              radial-gradient(1000px 700px at 50% 120%, rgba(34,197,94,.18), transparent 60%),
              var(--bg);
  background-repeat: no-repeat;
  background-attachment: fixed;
}
html[data-theme="light"] body{
  background: radial-gradient(1200px 800px at 10% -10%, rgba(124,92,255,.16), transparent 60%),
              radial-gradient(900px 700px at 110% 10%, rgba(56,189,248,.12), transparent 60%),
              radial-gradient(1000px 700px at 50% 120%, rgba(34,197,94,.10), transparent 65%),
              var(--bg);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:24px}
.topbar{
  position:sticky;top:0;z-index:20;
  backdrop-filter: blur(12px);
  background: linear-gradient(to bottom, rgba(11,16,32,.92), rgba(11,16,32,.72));
  border-bottom:1px solid var(--border);
}
html[data-theme="light"] .topbar{
  background: linear-gradient(to bottom, rgba(11,16,32,.92), rgba(11,16,32,.72));
  color: rgba(255,255,255,.92);
}
.topbar a{color:inherit}
html[data-theme="light"] .topbar .nav a{color: rgba(255,255,255,.72)}
html[data-theme="light"] .topbar .nav a.active{color: rgba(255,255,255,.92)}
html[data-theme="light"] .topbar .nav a:hover{color: rgba(255,255,255,.92)}
.topbar-inner{max-width:1100px;margin:0 auto;padding:14px 24px;display:flex;gap:16px;align-items:center;justify-content:space-between}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none}
.brand-logo{
  height: 28px;
  width: auto;
  max-width: 190px;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.35));
}
html[data-theme="light"] .brand-logo{filter: drop-shadow(0 10px 18px rgba(16,24,40,.20))}
.brand-title{font-weight:700;letter-spacing:.2px}
.nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.nav a{padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--muted);border:1px solid transparent}
.nav a.active{color:var(--text);border-color:var(--border);background:rgba(255,255,255,.05)}
.nav a:hover{color:var(--text);border-color:var(--border)}

.grid{display:grid;gap:14px}
.grid.two{grid-template-columns:1fr}
@media (min-width: 900px){.grid.two{grid-template-columns:1fr 1fr}}

.card{
  background: linear-gradient(to bottom, var(--panel), rgba(255,255,255,.03));
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow: var(--shadow);
  padding:16px;
}
.card h1,.card h2{margin:0 0 10px 0}
.subtle{color:var(--muted)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.spacer{flex:1}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 12px;border-radius:12px;border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:var(--text);text-decoration:none;cursor:pointer;
  font-size:14px;line-height:1;
}
.btn:disabled,
.btn[aria-disabled="true"]{
  opacity:.55;
  cursor:not-allowed;
}
.btn:hover{background:rgba(255,255,255,.10)}
.btn.primary{background:rgba(124,92,255,.22);border-color:rgba(124,92,255,.45)}
.btn.primary:hover{background:rgba(124,92,255,.32)}
.btn.danger{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.42)}
.btn.small{padding:8px 10px;border-radius:10px;font-size:14px}
.btn.link{border-color:transparent;background:transparent;color:var(--muted);padding:8px 6px}
.btn.link:hover{color:var(--text);background:transparent}
.btn.equal{min-width:120px;min-height:44px;justify-content:center;padding:10px 14px}

label{display:block;font-size:13px;color:var(--muted);margin:10px 0 6px}
input,select,textarea{
  width:100%;
  padding:var(--control-py) var(--control-px);
  border-radius:var(--control-radius);
  border:1px solid var(--border);
  background-color:rgba(0,0,0,.22);
  color:var(--text);
  outline:none;
  font-size:14px;
}
html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] textarea{
  background-color: rgba(255,255,255,.85);
}
.input-prominent{
  font-size: 16px;
  font-weight: 650;
  background-color: rgba(124,92,255,.10);
  border-color: rgba(124,92,255,.35);
}
html[data-theme="light"] .input-prominent{
  background-color: rgba(124,92,255,.10);
}
input:not([type="file"]), select{
  min-height: var(--control-height);
}
select:not([multiple]){
  height: var(--control-height);
  padding-top: 0;
  padding-bottom: 0;
  padding-right: 44px;
  line-height: calc(var(--control-height) - 2px);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: rgba(0,0,0,.22);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='rgba(255,255,255,0.65)' d='M5.6 7.6a1 1 0 0 1 1.4 0L10 10.6l3-3a1 1 0 1 1 1.4 1.4l-3.7 3.7a1 1 0 0 1-1.4 0L5.6 9a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 18px 18px;
  cursor: pointer;
}
select:not([multiple])::-ms-expand{display:none}
html[data-theme="light"] select:not([multiple]){
  background: rgba(255,255,255,.85)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='rgba(16,24,40,0.85)' d='M5.6 7.6a1 1 0 0 1 1.4 0L10 10.6l3-3a1 1 0 1 1 1.4 1.4l-3.7 3.7a1 1 0 0 1-1.4 0L5.6 9a1 1 0 0 1 0-1.4Z'/%3E%3C/svg%3E")
    no-repeat right 12px center / 18px 18px;
}
input[type="file"]{
  padding: 8px 10px;
}
textarea{min-height:180px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(124,92,255,.7);box-shadow:0 0 0 4px rgba(124,92,255,.18)}
.help{font-size:13px;color:var(--muted);margin-top:6px}

.flash{margin:0 0 14px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:rgba(255,255,255,.06)}
.flash.error{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.12)}
.flash.success{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.12)}
.flash.info{border-color:rgba(56,189,248,.45);background:rgba(56,189,248,.12)}

.list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.item{
  display:flex;gap:12px;align-items:center;
  padding:12px 12px;border-radius:16px;border:1px solid var(--border);
  background:linear-gradient(to bottom, var(--panel), rgba(255,255,255,.03));
  border-left-width: 6px;
  border-left-style: solid;
  border-left-color: rgba(255,255,255,.10);
}
.item .meta{min-width:220px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:12px}
.pill strong{color:var(--text);font-weight:700}
.status-dot{width:11px;height:11px;border-radius:999px;box-shadow:0 0 0 3px rgba(255,255,255,.06)}
.status-1{--status-accent: var(--info)}
.status-2{--status-accent: var(--warn)}
.status-3{--status-accent: var(--accent2)}
.status-4{--status-accent: rgba(148,163,184,.90)}
.status-5{--status-accent: rgba(59,130,246,.95)}
.status-1 .status-dot,
.status-2 .status-dot,
.status-3 .status-dot,
.status-4 .status-dot,
.status-5 .status-dot{
  background: var(--status-accent);
  box-shadow: 0 0 0 3px rgba(255,255,255,.06), 0 0 18px rgba(0,0,0,.25);
}
.status-1.item,
.status-2.item,
.status-3.item,
.status-4.item,
.status-5.item{
  border-left-color: color-mix(in srgb, var(--status-accent) 70%, rgba(255,255,255,.10));
  box-shadow: 0 12px 30px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.04) inset;
}
.status-1 .pill,
.status-2 .pill,
.status-3 .pill,
.status-4 .pill,
.status-5 .pill{
  border-color: color-mix(in srgb, var(--status-accent) 35%, var(--border));
  background: color-mix(in srgb, var(--status-accent) 12%, rgba(255,255,255,.03));
}

.handle{
  width:34px;height:34px;border-radius:12px;border:1px solid var(--border);
  background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;color:var(--muted);
  cursor:grab;user-select:none;
}
.handle:active{cursor:grabbing}

.kv{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width: 720px){.kv{grid-template-columns:1fr 1fr}}
.field-full{grid-column:1/-1}
.footer{color:var(--muted);font-size:13px;padding:18px 24px;text-align:center}

.split{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width: 1000px){.split{grid-template-columns: 420px 1fr}}

.files{display:grid;gap:8px}
.file{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.04)}
.file a{color:var(--text);text-decoration:none}
.file a:hover{text-decoration:underline}
