:root{--bg:#0f1419;--surface:#1a2332;--border:#2d3a4f;--text:#e8edf4;--muted:#8b9cb3;--primary:#3b82f6;--success:#22c55e;--warn:#f59e0b;--danger:#ef4444;--radius:10px}
[data-theme="light"]{--bg:#f4f7fb;--surface:#fff;--border:#d8e0ea;--text:#1a2332;--muted:#5a6b7d}
*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:1rem}
.brand{display:flex;gap:.75rem;align-items:center}.brand-icon{font-size:1.5rem}
.brand small,.muted{color:var(--muted);display:block}
.nav-link{display:block;padding:.6rem .8rem;border-radius:var(--radius);color:var(--text);margin-bottom:.25rem}
.nav-link:hover,.nav-link.primary{background:rgba(59,130,246,.15)}.sidebar-footer{margin-top:auto;font-size:.9rem}
.content{padding:1.5rem;max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}
.grid{display:grid;gap:1rem}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.two-col{grid-template-columns:1fr 1fr}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{flex-direction:row;flex-wrap:wrap}.two-col{grid-template-columns:1fr}}
.btn,.btn.primary{display:inline-block;padding:.55rem 1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.warn{background:var(--warn);color:#111}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;background:#334155}
.badge.active,.badge.approved,.badge.ok{background:rgba(34,197,94,.2);color:var(--success)}
.badge.failed{background:rgba(239,68,68,.2);color:var(--danger)}
.badge.warn{background:rgba(245,158,11,.2);color:var(--warn)}
.badge.waiting_for_client,.badge.waiting_for_approval{background:rgba(245,158,11,.2);color:var(--warn)}
.badge.emergency_stopped,.badge.cancelled{background:rgba(239,68,68,.2);color:var(--danger)}
table{width:100%;border-collapse:collapse}th,td{padding:.6rem;text-align:left;border-bottom:1px solid var(--border)}
.code-display{font-size:2rem;letter-spacing:.3rem;font-weight:700;margin:1rem 0;font-family:Consolas,monospace}
.auth-layout{
  position:relative;
  min-height:100vh;
  display:grid;
  place-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#060a12;
}
.auth-layout::before{
  content:"";
  position:absolute;
  inset:-4%;
  z-index:0;
  background:
    url("/static/img/login-bg-crystal-blue.png") center / cover no-repeat;
  animation:auth-bg-drift 28s ease-in-out infinite alternate;
  transform:scale(1.08);
}
.auth-layout::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(120deg, transparent 0%, rgba(34,211,238,.12) 42%, transparent 58%),
    linear-gradient(0deg, rgba(6,10,18,.72) 0%, rgba(6,10,18,.28) 45%, rgba(6,10,18,.55) 100%),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 46px,
      rgba(59,130,246,.045) 47px,
      transparent 48px
    );
  background-size:220% 220%, 100% 100%, 100% 100%;
  animation:auth-data-scan 7s linear infinite;
  mix-blend-mode:screen;
}
.auth-layout > *{position:relative;z-index:1}
.auth-card{
  width:min(420px,92vw);
  background:rgba(26,35,50,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:2rem;
  border-radius:var(--radius);
  border:1px solid rgba(96,165,250,.35);
  box-shadow:0 18px 50px rgba(0,0,0,.45), 0 0 0 1px rgba(34,211,238,.08) inset;
}
@keyframes auth-bg-drift{
  from{transform:scale(1.08) translate3d(-1.2%, -0.6%, 0)}
  to{transform:scale(1.12) translate3d(1.4%, 0.8%, 0)}
}
@keyframes auth-data-scan{
  0%{background-position:0% 50%, 0 0, 0 0; opacity:.85}
  50%{background-position:100% 50%, 0 0, 0 0; opacity:1}
  100%{background-position:200% 50%, 0 0, 0 0; opacity:.85}
}
@media (prefers-reduced-motion: reduce){
  .auth-layout::before,.auth-layout::after{animation:none}
}
.auth-card label{display:block;margin-bottom:.75rem}
.password-field{position:relative;display:block}
.password-field input{padding-right:4.75rem;width:100%}
.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);padding:.35rem .65rem;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-size:.8rem;line-height:1}
.password-toggle:hover,.password-toggle[aria-pressed="true"]{color:var(--text)}
input,textarea,select{width:100%;padding:.55rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-grid .full{grid-column:1/-1}
.alert{padding:.75rem;border-radius:var(--radius);margin-bottom:1rem}.alert.error{background:rgba(239,68,68,.15);color:var(--danger)}
.alert.info{background:rgba(59,130,246,.15);color:var(--text);border:1px solid rgba(59,130,246,.35)}
.empty{color:var(--muted)}.audit-feed{list-style:none;padding:0;margin:0}.audit-feed li,.audit-feed .feed-item,.audit-feed.live>div{padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.9rem}
.audit-feed time{color:var(--muted);font-size:.8rem;margin-right:.5rem}
.feed-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.feed-header h2{margin:0}
.live-feed-wrap.collapsed{max-height:14.5rem;overflow:hidden;position:relative}
.live-feed-wrap.collapsed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.5rem;background:linear-gradient(transparent,var(--card, var(--bg, #111)))}
.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text)}
.badge.outcome-success{background:#1f6f3a}.badge.outcome-failed{background:#8b1e1e}.badge.outcome-partial{background:#8a6d1d}
.session-clock{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:1.35rem}
.end-session-modal{border:1px solid var(--border);border-radius:8px;padding:1.25rem;max-width:28rem;background:var(--card,#161616);color:var(--text,#eee)}
.end-session-modal::backdrop{background:rgba(0,0,0,.55)}
.end-session-modal h3{margin:0 0 .5rem}
.outcome-fieldset{border:1px solid var(--border);border-radius:6px;padding:.75rem;margin:1rem 0;display:grid;gap:.5rem}
.outcome-fieldset label{display:flex;gap:.5rem;align-items:center;cursor:pointer}
.note-label{display:block;margin:.5rem 0 .25rem;font-size:.9rem;color:var(--muted)}
.end-session-modal textarea{width:100%;box-sizing:border-box;background:var(--bg,#111);color:var(--text,#eee);border:1px solid var(--border);border-radius:6px;padding:.5rem;resize:vertical}
.end-session-modal .btn-row{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}

.toast{position:fixed;bottom:1rem;right:1rem;background:var(--surface);border:1px solid var(--border);padding:.75rem 1rem;border-radius:var(--radius)}
.toast.hidden{display:none}.detail-list{display:grid;grid-template-columns:140px 1fr;gap:.4rem .8rem} .detail-list dt{color:var(--muted)}

/* Dev Master searchable tables */
.admin-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:1rem;padding:0}
.admin-panel>summary{list-style:none;cursor:pointer;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;user-select:none}
.admin-panel>summary::-webkit-details-marker{display:none}
.admin-panel>summary h2{margin:0;font-size:1.1rem}
.admin-panel>summary .panel-hint{color:var(--muted);font-size:.85rem;white-space:nowrap}
.admin-panel>summary::after{content:"▸";color:var(--muted);font-size:1rem}
.admin-panel[open]>summary::after{content:"▾"}
.admin-panel .panel-body{padding:0 1rem 1rem}
.admin-panel .panel-body>.muted{margin-top:0}
.data-table-wrap{margin-top:.75rem}
.data-table-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.65rem}
.data-table-search{flex:1 1 14rem;min-width:10rem;min-height:2.25rem;padding:.45rem .7rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}
.data-table-size{color:var(--muted);font-size:.9rem;display:flex;align-items:center;gap:.35rem}
.data-table-pagesize{min-height:2.25rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}
.data-table-meta{font-size:.85rem}
.data-table-scroll{overflow:auto;max-height:28rem;border:1px solid var(--border);border-radius:var(--radius)}
.data-table-scroll table{margin:0}
.data-table-scroll th{position:sticky;top:0;background:var(--surface);z-index:1}
.data-table-scroll th.sortable{cursor:pointer;user-select:none}
.data-table-scroll th.sortable:hover{color:var(--primary)}
.data-table-scroll th.sorted-asc,.data-table-scroll th.sorted-desc{color:var(--primary)}
.data-table-scroll .sort-mark{color:var(--muted);font-size:.75rem}
.data-table-pager{display:flex;align-items:center;gap:.6rem;margin-top:.65rem;flex-wrap:wrap}
@media (max-width:720px){.data-table-toolbar{flex-direction:column;align-items:stretch}}

.support-guide h1{font-size:1.45rem;margin:0 0 .75rem}
.support-guide h2{font-size:1.15rem;margin:1.4rem 0 .55rem}
.support-guide h3{font-size:1rem;margin:1rem 0 .4rem}
.support-guide ul,.support-guide ol{margin:.35rem 0 .85rem 1.2rem}
.support-guide blockquote{margin:.75rem 0;padding:.65rem .85rem;border-left:3px solid var(--primary);background:var(--bg);color:var(--muted)}
.support-guide .support-table{width:100%;border-collapse:collapse;font-size:.92rem}
.support-guide .support-table th,.support-guide .support-table td{border:1px solid var(--border);padding:.45rem .55rem;vertical-align:top}
.support-guide .support-table th{background:var(--bg)}
.support-guide code{font-size:.9em}
