.office-wrap { max-width: 1100px; margin: 0 auto; padding: 12px 14px 48px; }
.map-office { min-height: min(64vh, 560px); }
.office-desk {
  width: min(220px, 36vw);
  min-height: 0;
  background: transparent !important;
  border-color: transparent !important;
  color: #e8c200 !important;
}
.office-desk__art {
  display: block; width: 100%; height: 78px; margin: 4px auto 0;
  background: transparent;
  border: 2px dashed #e8c20055;
  border-radius: 4px;
  box-shadow: 0 0 16px #e8c20022;
  position: relative;
  transition: all .2s ease;
}
.office-desk:hover .office-desk__art,
.office-desk:focus-visible .office-desk__art {
  border-style: solid;
  border-color: #e8c200;
  box-shadow: 0 0 24px #e8c20088, inset 0 0 16px #e8c20033;
}
.office-desk--master .office-desk__art { border-color: #e8c20088; }
.protocol-modal {
  display: none; position: fixed; inset: 0; z-index: 70;
  background: rgba(0,0,0,.92); align-items: center; justify-content: center; padding: 16px;
}
.protocol-modal.is-open { display: flex; }
.protocol-panel {
  position: relative; width: min(720px, 96vw); max-height: 88vh; overflow: auto;
  background: #101410; border: 2px solid #00ff66;
  box-shadow: 0 0 30px #00ff66, inset 0 0 40px #00ff6611;
  padding: 28px 22px 22px;
}
.protocol-panel--master { border-color: #e8c200; box-shadow: 0 0 30px #e8c20066, inset 0 0 40px #e8c20011; }
.protocol-panel h2 { margin: 0 0 6px; letter-spacing: 2px; }
.protocol-close {
  position: absolute; top: 8px; right: 12px; background: transparent;
  border: 0; color: #00ff66; font-size: 2rem; cursor: pointer;
}
.protocol-form { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.protocol-form label { font-size: .78rem; letter-spacing: 1px; }
.protocol-form input, .protocol-form select, .protocol-form textarea {
  background: #000; color: #00ff66; border: 1px solid #00ff66; padding: 8px; font: inherit;
}
.protocol-form button {
  background: transparent; color: #00ff66; border: 2px solid #00ff66;
  padding: 10px; font-weight: 700; cursor: pointer;
}
.protocol-form button:hover { background: #00ff66; color: #000; }
.protocol-locked {
  border: 1px solid #ff3344; padding: 18px; max-width: 520px; margin: 24px auto;
}

/* Role-specific command center panel themes */
.protocol-panel--librarian { border-color: #38bdf8; box-shadow: 0 0 30px #38bdf844, inset 0 0 40px #38bdf811; }
.protocol-panel--librarian h2 { color: #38bdf8; }
.protocol-panel--legal { border-color: #c084fc; box-shadow: 0 0 30px #c084fc44, inset 0 0 40px #c084fc11; }
.protocol-panel--legal h2 { color: #c084fc; }
.protocol-panel--accounting { border-color: #fbbf24; box-shadow: 0 0 30px #fbbf2444, inset 0 0 40px #fbbf2411; }
.protocol-panel--accounting h2 { color: #fbbf24; }
.protocol-panel--operations { border-color: #f43f5e; box-shadow: 0 0 30px #f43f5e44, inset 0 0 40px #f43f5e11; }
.protocol-panel--operations h2 { color: #f43f5e; }

/* Desk art variations */
.office-desk--librarian .office-desk__art { border-color: #38bdf8; box-shadow: inset 0 10px 0 #38bdf822, 0 0 12px #38bdf844; }
.office-desk--legal .office-desk__art { border-color: #c084fc; box-shadow: inset 0 10px 0 #c084fc22, 0 0 12px #c084fc44; }
.office-desk--accounting .office-desk__art { border-color: #fbbf24; box-shadow: inset 0 10px 0 #fbbf2422, 0 0 12px #fbbf2444; }
.office-desk--operations .office-desk__art { border-color: #f43f5e; box-shadow: inset 0 10px 0 #f43f5e22, 0 0 12px #f43f5e44; }

/* Metrics & Task Action Grid */
.office-metric-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  margin: 14px 0 18px;
}
.office-metric-card {
  background: #06110a;
  border: 1px solid #00ff6644;
  padding: 10px;
  border-radius: 3px;
}
.office-metric-card span { display: block; font-size: 0.72rem; letter-spacing: 1px; opacity: 0.8; }
.office-metric-card strong { display: block; font-size: 1.15rem; color: #00ff66; margin-top: 4px; }

.office-tasks-wrap {
  margin: 16px 0;
  border-top: 1px dashed #00ff6633;
  padding-top: 14px;
}
.office-tasks-wrap h3 {
  margin: 0 0 10px;
  font-size: 0.95rem;
  letter-spacing: 1.5px;
}
.office-actions-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}
.office-action-btn {
  background: #08160c;
  color: #00ff66;
  border: 1px solid #00ff6666;
  padding: 8px 12px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: all .2s ease;
}
.office-action-btn:hover {
  background: #00ff66;
  color: #000;
  box-shadow: 0 0 12px #00ff66;
}

