:root{
  /* Light, Palantir-ish */
  --bg:#f6f8fb;
  --panel:#ffffff;
  --panel2:#f1f5ff;
  --text:#0b1220;
  --muted:#5b6475;
  --muted2:#7b8598;
  --border:rgba(11,18,32,.10);
  --shadow:0 10px 30px rgba(11,18,32,.10);
  --shadow2:0 6px 18px rgba(11,18,32,.10);
  --accent:#1f6fff;
  --accent2:#0f5ad9;
  --ok:#0fa968;
  --warn:#c27b00;
  --bad:#c2343a;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: radial-gradient(1200px 800px at 10% 0%, rgba(31,111,255,.08), transparent 55%),
              radial-gradient(900px 700px at 90% 10%, rgba(15,169,104,.06), transparent 60%),
              var(--bg);
  color:var(--text);
}

.wrap{
  max-width: 1440px; /* widescreen */
  margin:0 auto;
  padding:22px 18px 34px;
}

/* Top bar */
header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.75);
  backdrop-filter: blur(10px);
  border-radius:14px;
  box-shadow: var(--shadow2);
}

.brand{display:flex;align-items:center;gap:12px}
.logo{
  width:40px;height:40px;
  border-radius:10px;
  background: linear-gradient(135deg, rgba(31,111,255,.95), rgba(15,90,217,.95));
  box-shadow: 0 10px 20px rgba(31,111,255,.25);
  position:relative;
}
.logo:after{
  content:"A";
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:900;letter-spacing:.5px;
}
.brand h1{margin:0;font-size:16px;letter-spacing:.2px}
.sub{color:var(--muted);font-size:12.5px;margin-top:2px}

/* Flat top menu */
.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.flatnav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.flatnav a{
  text-decoration:none;
  color:var(--muted);
  font-weight:700;
  font-size:13px;
  padding:8px 4px;
  border-bottom:2px solid transparent;
}
.flatnav a:hover{color:var(--text)}
.flatnav a.active{
  color:var(--text);
  border-bottom-color: var(--accent);
}

.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,255,255,.65);
  font-size:12px;
}

/* Buttons (less rounded, flatter) */
.btn{
  border:1px solid var(--accent);
  background:var(--accent);
  color:#fff;
  padding:9px 12px;
  border-radius:10px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  box-shadow: 0 10px 20px rgba(31,111,255,.18);
}
.btn:hover{background:var(--accent2);border-color:var(--accent2)}
.btn.secondary{
  background:transparent;
  color:var(--text);
  border-color: var(--border);
  box-shadow:none;
}
.btn.secondary:hover{border-color:rgba(11,18,32,.20);background:rgba(255,255,255,.75)}
.btn.small{padding:8px 10px;border-radius:10px;font-size:12.5px}
.btn.secondary.small{padding:8px 10px;border-radius:10px;font-size:12.5px}

/* Cards */
.card{
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.8);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
}
.kicker{color:var(--muted2);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.title{margin:6px 0 0;font-size:22px;letter-spacing:.2px}
.lead{margin:10px 0 0;color:var(--muted);line-height:1.55}

.grid{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:14px;
  margin-top:14px;
}
@media (max-width: 980px){
  .grid{grid-template-columns:1fr}
}

.moduleGrid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
}
@media (max-width: 1060px){
  .moduleGrid{grid-template-columns: repeat(2,1fr)}
}
@media (max-width: 720px){
  .moduleGrid{grid-template-columns: 1fr}
}

.module{
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  padding:14px;
  box-shadow: var(--shadow2);
}
.module h3{margin:0 0 6px;font-size:14px}
.module p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.badge{
  display:inline-flex;align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid var(--border);
  color:var(--muted);
  background:rgba(255,255,255,.65);
}

.tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid var(--border);
  color:var(--muted);
  background:rgba(255,255,255,.75);
}
.tag.ok{border-color:rgba(15,169,104,.25);color:var(--ok)}
.tag.warn{border-color:rgba(194,123,0,.25);color:var(--warn)}
.tag.bad{border-color:rgba(194,52,58,.25);color:var(--bad)}

.note{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.75);
  color:var(--muted);
  line-height:1.5;
}

footer{margin-top:16px;color:var(--muted2);font-size:12.5px}

/* --- Gotham-like demo layout, but light --- */
.mock{border:1px solid var(--border); border-radius:16px; overflow:hidden; background:rgba(255,255,255,.9)}
.mock .top{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(245,248,255,.95));
}
.mock .top .left{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.chip{
  display:inline-flex;align-items:center;
  padding:7px 10px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.85);
  font-weight:800;
  font-size:12.5px;
  color:var(--text);
}
.status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}
.dot{width:8px;height:8px;border-radius:999px;background:var(--ok);box-shadow:0 0 0 4px rgba(15,169,104,.12)}

.mock .body{padding:0}

.gothamLayout{
  display:grid;
  grid-template-columns: 340px 1fr 360px;
  min-height: 720px;
}
@media (max-width: 1200px){
  .gothamLayout{grid-template-columns: 1fr; min-height: unset}
}

.sidePanel{
  border-right:1px solid var(--border);
  background:rgba(255,255,255,.92);
}
.sidePanel:last-child{border-right:none;border-left:1px solid var(--border)}
.sidePanel .hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}
.sidePanel .content{padding:12px 14px}

.mainPanel{background:rgba(255,255,255,.88)}
.mainToolbar{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}

.mainArea{display:grid;grid-template-rows: 1fr 230px; height: calc(720px - 49px)}
@media (max-width: 1200px){
  .mainArea{height:auto}
}

.graphStage{position:relative; border-bottom:1px solid var(--border); overflow:hidden}
.graphHint{
  position:absolute;left:12px;top:12px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.85);
  color:var(--muted);
  font-size:12px;
}

.timelineStage{
  display:grid;
  grid-template-columns: 1fr 320px;
  gap:12px;
  padding:12px;
}
@media (max-width: 980px){
  .timelineStage{grid-template-columns:1fr}
}

.timelineList{
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.85);
  overflow:auto;
  max-height: 210px;
}
.tlItem{
  display:flex;justify-content:space-between;gap:10px;
  padding:10px 12px;
  border-bottom:1px solid rgba(11,18,32,.06);
  color:var(--muted);
}
.tlItem b{color:var(--text)}
.tlItem small{color:var(--muted2)}

.histBox{
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.85);
  padding:10px 12px;
}
.histHdr{display:flex;justify-content:space-between;align-items:center;gap:10px}
.histSvg{width:100%;height:90px;display:block}

.timeControls{
  margin-top:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.85);
  padding:10px 12px;
}

.field{margin-top:12px}
.field label{display:block;font-weight:800;font-size:12px;color:var(--muted2);margin-bottom:6px}
.field input[type="search"], .field input[type="text"], .field input[type="number"]{
  width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);
  background:#fff;color:var(--text);
}
.rangeRow{display:flex;gap:10px;align-items:center}
.rangeRow input[type="range"]{flex:1}
.rangeRow small{min-width:48px;text-align:right;color:var(--muted)}

.checks{display:flex;flex-direction:column;gap:8px}
.checks .row{display:flex;align-items:center;justify-content:space-between;gap:10px}

/* Graph SVG */
.graphSvg{width:100%;height:100%;display:block}
.gLink{stroke:rgba(11,18,32,.20);stroke-width:1.4}
.gLink.active{stroke:rgba(31,111,255,.85);stroke-width:2.1}
.gLink.dim{opacity:.15}
.gLinkLabel{fill:rgba(11,18,32,.55);font-size:10px;font-family:var(--mono)}

.gNode{cursor:pointer}
.gNode circle{stroke:rgba(255,255,255,.95);stroke-width:2.5;filter: drop-shadow(0 12px 18px rgba(11,18,32,.12));}
.gNode text{fill:#fff;font-weight:900;font-size:11px;font-family:var(--mono)}
.gNode text.sub{fill:rgba(11,18,32,.55);font-weight:800;font-size:10px;font-family:var(--mono);paint-order:stroke;stroke:rgba(255,255,255,.9);stroke-width:2px}
.gNode.active circle{stroke:rgba(31,111,255,.95);stroke-width:4}
.gNode.dim{opacity:.25}

/* Drone map */
.droneMap{position:relative; height: 520px; border:1px solid var(--border); border-radius:16px; overflow:hidden; background:
  radial-gradient(600px 400px at 30% 30%, rgba(31,111,255,.08), transparent 55%),
  radial-gradient(600px 400px at 70% 70%, rgba(15,169,104,.06), transparent 55%),
  #ffffff;
}
.gridlines{
  position:absolute;inset:0;
  background-image: linear-gradient(rgba(11,18,32,.06) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(11,18,32,.06) 1px, transparent 1px);
  background-size: 40px 40px;
  opacity:.55;
}
.maplabel{position:absolute;left:10px;bottom:10px;color:rgba(11,18,32,.55);font-size:12px}

.markerBtn{position:absolute;transform:translate(-50%,-50%);border:none;background:transparent;cursor:pointer}
.markerDot{width:12px;height:12px;border-radius:999px;background:rgba(31,111,255,.85);box-shadow:0 0 0 6px rgba(31,111,255,.15)}
.markerDot.warn{background:rgba(194,123,0,.95);box-shadow:0 0 0 6px rgba(194,123,0,.16)}
.markerDot.bad{background:rgba(194,52,58,.95);box-shadow:0 0 0 6px rgba(194,52,58,.16)}
.markerDot.active{outline:3px solid rgba(11,18,32,.12)}

.nodeSquare{width:12px;height:12px;border-radius:4px;background:rgba(11,18,32,.70);box-shadow:0 0 0 6px rgba(11,18,32,.10)}
.nodeSquare.ok{background:rgba(15,169,104,.95)}
.nodeSquare.warn{background:rgba(194,123,0,.95)}
.nodeSquare.bad{background:rgba(194,52,58,.95)}

.opMarker{position:absolute;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:999px;background:rgba(15,169,104,.95);box-shadow:0 0 0 8px rgba(15,169,104,.15)}
.opMarker.hidden{display:none}

.connectorSvg{position:absolute;inset:0;pointer-events:none}
.connectorSvg line{stroke:rgba(15,169,104,.55);stroke-width:2;stroke-dasharray:4 5}

/* Table */
table{width:100%;border-collapse:collapse;margin-top:10px}
th,td{padding:10px 10px;border-bottom:1px solid rgba(11,18,32,.08);text-align:left;font-size:12.5px;color:var(--muted)}
th{font-size:12px;color:var(--muted2);text-transform:uppercase;letter-spacing:.08em}
td b{color:var(--text)}

/* Technical log */
.logBox{border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.85);overflow:hidden}
.logHdr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(11,18,32,.08)}
.logHdr b{font-size:12.5px}
.logStream{max-height:240px;overflow:auto;padding:10px 12px;font-family:var(--mono);font-size:11.5px;color:rgba(11,18,32,.78);line-height:1.5}
.logLine{padding:4px 0;border-bottom:1px dashed rgba(11,18,32,.06)}
.logLine:last-child{border-bottom:none}

