/* /M3UFileMaker/styles.css */
:root{
  --bg:#0b0d12;
  --card:#121622;
  --card2:#0f1320;
  --text:#e7ebff;
  --muted:#a7b0d6;
  --line:#252c45;
  --chip:#1b2240;
  --chip2:#232b52;
  --good:#40c463;
  --warn:#f4c542;
  --bad:#f85149;
  --accent:#7aa2ff;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 18px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background: radial-gradient(1200px 800px at 10% 0%, rgba(122,162,255,.15), transparent 55%),
              radial-gradient(800px 600px at 80% 20%, rgba(64,196,99,.10), transparent 50%),
              var(--bg);
  color:var(--text);
  font-family:var(--sans);
}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding:24px}
.top12{margin-top:12px}
.row{display:flex;align-items:center;gap:10px}
.row.between{justify-content:space-between}
.row.center{justify-content:center}
.wrapgap{flex-wrap:wrap}
.grow{flex:1}
.stack{display:flex;flex-direction:column;gap:12px}
.grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}
@media (max-width: 980px){.grid2{grid-template-columns:1fr}}

.hero{padding-top:26px}
.hero-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
@media (max-width: 820px){.hero-head{flex-direction:column}}
.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted)}
h1{margin:6px 0 6px;font-size:40px;line-height:1.1}
h1 span{color:var(--accent)}
.sub{margin:0;color:var(--muted);max-width:70ch}

.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.chip{
  padding:10px 12px;border-radius:999px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);color:var(--text);cursor:pointer
}
.chip:hover{border-color:rgba(122,162,255,.5)}
.hero-metrics{
  margin-top:14px;display:grid;grid-template-columns:repeat(6, minmax(0,1fr));
  gap:10px
}
@media (max-width: 980px){.hero-metrics{grid-template-columns:repeat(3, minmax(0,1fr))}}
.metric{
  border:1px solid var(--line);background:rgba(255,255,255,.02);border-radius:14px;
  padding:10px 12px;display:flex;justify-content:space-between;align-items:baseline
}
.metric strong{font-size:18px}
.metric span{font-size:12px;color:var(--muted)}

.commandbar{
  margin-top:16px;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  padding:12px;box-shadow:var(--shadow)
}
.commandbar-search{display:flex;align-items:center;gap:10px}
.kbdhint{font-size:12px;color:var(--muted);border:1px dashed var(--line);padding:6px 10px;border-radius:999px}

.status-strip{
  margin-top:12px;display:flex;gap:10px;flex-wrap:wrap
}
.status-chip{
  display:flex;gap:8px;align-items:center;border:1px solid var(--line);
  background:rgba(255,255,255,.02);border-radius:999px;padding:8px 10px
}
.status-chip span{font-size:12px;color:var(--muted)}
.status-chip strong{font-size:12px}

.card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden
}
.tabs{
  display:flex;gap:6px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  padding:10px 10px 10px;
  background:rgba(0,0,0,.15)
}
.tab{
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  color:var(--text);
  padding:9px 12px;border-radius:999px;cursor:pointer;font-size:13px
}
.tab.active{background:var(--chip);border-color:rgba(122,162,255,.45)}
.panel{display:none;padding:16px}
.panel.active{display:block}

.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.panel-head h2{margin:0 0 6px;font-size:22px}
.subtle{margin:0;color:var(--muted)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.02)}
.pill strong{color:var(--text)}

.label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.input,.textarea,select.input{
  width:100%;
  background:rgba(255,255,255,.02);
  border:1px solid var(--line);
  color:var(--text);
  border-radius:14px;
  padding:10px 12px;
  outline:none
}
.textarea{min-height:120px;font-family:var(--mono);font-size:12px;line-height:1.45}
.input:focus,.textarea:focus{border-color:rgba(122,162,255,.55);box-shadow:0 0 0 4px rgba(122,162,255,.12)}
.btn{
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  color:var(--text);
  padding:10px 12px;border-radius:14px;cursor:pointer
}
.btn:hover{border-color:rgba(122,162,255,.5)}
.btn.primary{background:linear-gradient(180deg, rgba(122,162,255,.25), rgba(122,162,255,.12));border-color:rgba(122,162,255,.45)}
.filebtn{position:relative; overflow:hidden}
.filebtn input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.check{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--muted)}
.pill-check{border:1px solid var(--line);padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.02)}
.status{margin:10px 0 0;color:var(--muted);font-size:13px;min-height:18px}

.list-shell{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:rgba(0,0,0,.12)}
.list-header{display:grid;grid-template-columns:1.4fr .8fr .6fr .6fr 1.6fr;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.virtual-list{
  height:420px;overflow:auto;position:relative
}
.vrow{
  position:absolute;left:0;right:0;
  display:grid;grid-template-columns:1.4fr .8fr .6fr .6fr 1.6fr;gap:12px;
  padding:10px 12px;border-bottom:1px solid rgba(37,44,69,.6);
  cursor:pointer;background:rgba(255,255,255,.0)
}
.vrow:hover{background:rgba(122,162,255,.08)}
.cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.cell-url{font-family:var(--mono);font-size:12px;color:var(--muted)}
.badge{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--line);border-radius:999px;padding:4px 8px;
  font-size:12px;color:var(--muted);background:rgba(255,255,255,.02)
}
.badge.good{border-color:rgba(64,196,99,.5);color:var(--good)}
.badge.warn{border-color:rgba(244,197,66,.5);color:var(--warn)}
.badge.bad{border-color:rgba(248,81,73,.5);color:var(--bad)}
.badge.fav{border-color:rgba(122,162,255,.6);color:var(--accent)}
.codebox{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(0,0,0,.2);
  padding:12px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--text);
  white-space:pre-wrap;
  line-height:1.45
}
.hint{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:12px;background:rgba(255,255,255,.015)
}
.compact-grid{display:flex;flex-wrap:wrap;gap:8px}
.mini{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.02)}
.section-title{font-size:13px;color:var(--muted)}
.pre{margin:0;font-family:var(--mono);font-size:12px;color:var(--muted);white-space:pre-wrap}

.empty-state{padding:26px;text-align:center}
.empty-emoji{font-size:34px}
.empty-state p{color:var(--muted)}

.modal[hidden]{display:none}
.modal{
  position:fixed;inset:0;background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;padding:16px
}
.modal-card{
  width:min(820px, 96vw);
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(18,22,34,.95), rgba(12,15,24,.95));
  border-radius:var(--radius);box-shadow:var(--shadow);
  padding:14px
}
.command-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto;padding-right:4px}
.cmd-item{
  border:1px solid var(--line);border-radius:14px;padding:10px 12px;
  background:rgba(255,255,255,.02);cursor:pointer
}
.cmd-item:hover{border-color:rgba(122,162,255,.5)}
.cmd-item .k{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cmd-item .t{font-size:13px}
.toast-region{
  position:fixed;right:14px;bottom:14px;z-index:50;
  display:flex;flex-direction:column;gap:10px
}
.toast{
  width:min(420px, 92vw);
  border:1px solid var(--line);border-radius:16px;
  background:rgba(18,22,34,.95);
  box-shadow:var(--shadow);
  padding:10px 12px
}
.toast strong{display:block;font-size:13px}
.toast span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.dropzone{
  pointer-events:none;
  position:fixed;inset:0;background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;z-index:60
}
.dropzone:not([hidden]){pointer-events:auto}
.drop-card{
  border:1px dashed rgba(122,162,255,.7);
  border-radius:26px;background:rgba(18,22,34,.92);
  padding:26px 24px;text-align:center;max-width:520px
}
.drop-emoji{font-size:44px}
.tv-mode body{}
body.tv-mode{font-size:18px}
body.tv-mode .wrap{max-width:1320px}
body.tv-mode .virtual-list{height:520px}


/* Hard-disable legacy dropZone if present in cached HTML */
#dropZone{display:none !important}
