:root{
  --bg:#0b0f17;
  --panel:#121a27;
  --text:#e6edf3;
  --muted:#9fb0c0;
  --border:#243247;
  --accent:#3b82f6;
  --accent-2:#22d3ee;
  --accent-3:#f59e0b;
  --chart-grid: rgba(148,163,184,.12);
  --chart-card: rgba(12,18,30,.9);
  --chart-card-2: rgba(15,24,40,.9);
  --danger:#ef4444;
  --ok:#22c55e;
  --shadow: 0 10px 24px rgba(0,0,0,.35);
  --radius: 14px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: var(--sans);
  background: radial-gradient(1200px 600px at 20% 10%, #17233a 0%, var(--bg) 55%);
  color: var(--text);
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  border-bottom:1px solid var(--border);
  background: rgba(10,14,22,.75);
  backdrop-filter: blur(8px);
  position:sticky;
  top:0;
  z-index:5;
}

.brand__title{font-weight:700;letter-spacing:.3px}
.brand__subtitle{font-size:12px;color:var(--muted);margin-top:2px}
.status{
  font-size:12px;
  color:var(--muted);
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  background: rgba(18,26,39,.55);
}

.app{
  display:grid;
  grid-template-columns: 380px 1fr;
  gap:14px;
  padding:14px;
  min-height: calc(100vh - 58px);
}

.sidebar{
  background: rgba(18,26,39,.75);
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}

.sidebar__section{
  padding:12px;
  border-bottom:1px solid var(--border);
}
.sidebar__section:last-child{border-bottom:none}

.btnrow{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:10px;
}

.btn{
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
  padding:10px 12px;
  border-radius: 12px;
  cursor:pointer;
  font-weight:600;
  font-size:13px;
}
.btn:hover{border-color:#33507a}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{
  background: rgba(59,130,246,.18);
  border-color: rgba(59,130,246,.5);
}
.btn-primary:hover{border-color: rgba(59,130,246,.8)}
.btn-danger{
  background: rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.45);
}
.btn-danger:hover{border-color: rgba(239,68,68,.75)}
.btn-ghost{background: transparent}
.filebtn{display:inline-flex;align-items:center;justify-content:center}
.menu{position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu__list{
  position:absolute;
  right:0;
  top:46px;
  min-width:220px;
  background: rgba(12,18,30,.98);
  border:1px solid rgba(83,98,128,.6);
  border-radius: 12px;
  box-shadow: 0 18px 36px rgba(0,0,0,.45);
  padding:6px;
  z-index:10;
}
.menu__item{
  width:100%;
  text-align:left;
  border:1px solid transparent;
  background: transparent;
  color: var(--text);
  padding:10px 10px;
  border-radius: 10px;
  cursor:pointer;
  font-weight:600;
  font-size:12px;
}
.menu__item:hover{
  border-color: rgba(59,130,246,.6);
  background: rgba(59,130,246,.12);
}
.menu__item:disabled{
  opacity:.5;
  cursor:not-allowed;
  background: transparent;
  border-color: transparent;
}

.hint{font-size:12px;color: var(--muted);line-height:1.35}
code{
  font-family: var(--mono);
  font-size: 12px;
  background: rgba(0,0,0,.25);
  padding: 2px 6px;
  border-radius: 8px;
  border:1px solid rgba(255,255,255,.08);
}

.search{
  width:100%;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
  outline:none;
}
.search::placeholder{color: rgba(159,176,192,.7)}

.filters{
  display:flex;
  gap:8px;
  margin-top:10px;
}
.filters select{
  flex:1;
  padding:10px 10px;
  border-radius: 12px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
}

.stafflist{
  margin-top:10px;
  max-height: calc(100vh - 440px);
  overflow:auto;
  padding-right:6px;
}

.staffItem{
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  border-radius: 14px;
  padding:10px 10px;
  margin-bottom:8px;
  cursor:pointer;
}
.staffItem:hover{border-color:#33507a}
.staffItem.active{
  border-color: rgba(59,130,246,.75);
  background: rgba(59,130,246,.12);
}
.staffItem__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.staffItem__name{font-weight:700;font-size:14px}
.staffItem__emp{font-family: var(--mono);font-size:12px;color: var(--muted)}
.staffItem__meta{
  margin-top:4px;
  font-size:12px;
  color: var(--muted);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.content{
  background: rgba(18,26,39,.75);
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}

.content__header{
  padding:14px 16px;
  border-bottom:1px solid var(--border);
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-end;
}

.title{font-weight:800;font-size:18px}
.subtitle{font-size:12px;color:var(--muted);margin-top:4px}

.tabbar{display:flex;gap:8px}
.tab{
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  color: var(--text);
  padding:10px 12px;
  border-radius: 12px;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
}
.tab.disabled{
  opacity:.5;
  cursor:not-allowed;
}
.tab.active{
  border-color: rgba(59,130,246,.75);
  background: rgba(59,130,246,.12);
}

.panel{padding:16px}
.hidden{display:none}

.form .field{margin-bottom:12px}
.form label{display:block;font-size:12px;color: var(--muted);margin-bottom:6px}
.form input, .form textarea, .form select{
  width:100%;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
  outline:none;
}
.form textarea{resize:vertical}

.fieldhint{font-size:11px;color: rgba(159,176,192,.8);margin-top:6px}

.grid2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}

.actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
}
.msg{font-size:12px;color: var(--muted)}
.msg.ok{color: var(--ok)}
.msg.err{color: #fca5a5}

.assessmentHeader{
  display:grid;
  grid-template-columns: 1.6fr .9fr;
  gap:14px;
  align-items:start;
}
.assessmentSelect{
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  border-radius: 14px;
  padding:12px;
  margin-bottom:12px;
}
.assessmentSelect label{
  display:block;
  font-size:12px;
  color: var(--muted);
  margin-bottom:6px;
}
.assessmentSelect select{
  width:100%;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
}

.assessmentCard, .summaryCard, .chartCard{
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  border-radius: 16px;
  padding:14px;
}
.assessmentCard__title, .summaryCard__title, .chartTitle{
  font-weight:800;
  margin-bottom:12px;
}

.summaryGrid{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:10px;
  margin-bottom:8px;
}
.summaryItem{
  border:1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding:10px;
  background: rgba(0,0,0,.12);
}
.summaryItem .k{font-size:12px;color:var(--muted)}
.summaryItem .v{margin-top:6px;font-weight:800}

.assessmentList{
  margin-top:14px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  border-radius: 16px;
  padding:14px;
}
.listTitle{font-weight:800;margin-bottom:10px}

.assessmentRow{
  border:1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding:10px;
  background: rgba(0,0,0,.12);
  margin-bottom:8px;
}
.assessmentRow__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.assessmentRow__date{font-family: var(--mono);font-size:12px;color: var(--muted)}
.assessmentRow__score{font-weight:900}
.assessmentRow__meta{
  margin-top:6px;
  font-size:12px;
  color: var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.rowActions{display:flex;gap:8px}
.rowBtn{
  padding:8px 10px;
  border-radius: 12px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.7);
  color: var(--text);
  cursor:pointer;
  font-weight:700;
  font-size:12px;
}
.rowBtn:hover{border-color:#33507a}

.analyticsGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:16px;
}
.chartCard{
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(83,98,128,.5);
  background: linear-gradient(160deg, var(--chart-card), var(--chart-card-2));
  box-shadow: 0 18px 40px rgba(2,6,23,.45);
}
.chartCard::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(500px 200px at 10% -10%, rgba(59,130,246,.18), transparent 60%),
              radial-gradient(350px 160px at 90% 0%, rgba(34,211,238,.12), transparent 55%);
  pointer-events:none;
}
.chartTitle{
  letter-spacing:.2px;
  font-size:14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.chartTitle::after{
  content:"";
  height:2px;
  flex:1;
  background: linear-gradient(90deg, rgba(59,130,246,.7), rgba(34,211,238,.2));
  border-radius:999px;
  opacity:.7;
}
.chartCard canvas{
  width:100% !important;
  height:300px !important;
}
.chartCard--wide{
  grid-column: 1 / -1;
}
.chartTitle{margin-bottom:12px}

.summaryBlock__title{
  font-weight:800;
  margin-bottom:8px;
}
.summaryBlock__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:8px;
  margin-bottom:8px;
}
.summaryTile{
  border:1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding:8px 10px;
  background: rgba(0,0,0,.12);
}
.summaryTile__k{font-size:11px;color:var(--muted)}
.summaryTile__v{font-weight:800;margin-top:4px}

.dashboardHero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.dashboardTitle{
  font-weight:900;
  font-size:18px;
}
.dashboardGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:12px;
}
.dashboardList{
  margin-top:14px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
.dashboardSection{
  margin-top:14px;
}
.dashboardSection__title{
  font-weight:800;
  margin-bottom:8px;
}
.dashboardFold{
  margin-top:14px;
  border:1px solid var(--border);
  background: rgba(15,22,34,.55);
  border-radius: 16px;
}
.dashboardFold summary{
  cursor:pointer;
  font-weight:800;
  padding:12px 14px;
}
.dashboardFold[open] summary{
  border-bottom:1px solid var(--border);
}
.dashboardFold .analyticsGrid{
  padding:14px;
}
.dashboardFold .hint{
  padding:0 14px 14px;
}
.dashListItem{
  border:1px solid rgba(83,98,128,.45);
  background: rgba(12,18,30,.8);
  border-radius: 12px;
  padding:10px 12px;
  cursor:pointer;
}
.dashListItem:hover{border-color: rgba(59,130,246,.7)}
.dashListItem__name{font-weight:800;font-size:14px}
.dashListItem__meta{
  margin-top:4px;
  font-size:12px;
  color: var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.dashCard{
  border:1px solid rgba(83,98,128,.5);
  background: linear-gradient(160deg, var(--chart-card), var(--chart-card-2));
  border-radius: 16px;
  padding:14px;
  box-shadow: 0 18px 40px rgba(2,6,23,.35);
}
.dashCard__k{font-size:12px;color:var(--muted)}
.dashCard__v{margin-top:6px;font-weight:900;font-size:18px}
.dashCard__sub{margin-top:4px;font-size:12px;color:rgba(159,176,192,.85)}
.dashboardNote{margin-top:12px}

@media (max-width: 1080px){
  .app{grid-template-columns:1fr}
  .stafflist{max-height: 320px}
  .assessmentHeader{grid-template-columns:1fr}
  .analyticsGrid{grid-template-columns:1fr}
  .chartCard canvas{height:260px !important}
  .dashboardGrid{grid-template-columns:1fr}
  .dashboardList{grid-template-columns:1fr}
}
