/* Full-screen layout */

/* Color palette for PCB layers */
:root {
  --layer-0: #C83434;
  --layer-1: #7FC87F;
  --layer-2: #ce7d2c;
  --layer-3: #4fcbcb;
  --layer-4: #db628b;
  --layer-5: #a7a5c6;
  --layer-6: #28ccd9;
  --layer-7: #e8b2a7;
  --layer-8: #f2eda1;
  --layer-9: #8dcb81;
  --layer-10: #ed7c33;
  --layer-11: #5bc3eb;
  --outline: #d0d2cd;
  --silkscreen: #f2eda1;
}

html,
body {
  margin: 0;
  height: 100%;
  overflow: hidden;
  font-family: sans-serif;
}

/* Fixed control panel */
#controls {
  position: fixed;
  top: 10px;
  left: 10px;
  background: rgba(40, 40, 40, 0.9);
  padding: 12px;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  z-index: 1000;
  color: white;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

#controls span {
  color: white;
  margin-right: 8px;
}

#controls button {
  margin: 4px 2px;
  padding: 6px 12px;
  border: 1px solid #555;
  border-radius: 4px;
  background: #333;
  color: white;
  cursor: pointer;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background-color 0.2s ease;
}

#controls button:hover {
  background: #444;
}

#controls button.active {
  background: #555;
  border-color: #777;
}

#controls button::before {
  content: '';
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--layer-color, #888);
  flex-shrink: 0;
}

/* Canvas fills the viewport */
#pcb {
  display: block;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #001023;
  cursor: grab;
  touch-action: none;
}

#pcb.grabbing {
  cursor: grabbing;
}

/* Search box inside the control panel */
#controls input[type='search'],
#controls input[type='text'].search {
  width: 100%;
  box-sizing: border-box;
  margin: 6px 0 2px;
  padding: 5px 8px;
  border: 1px solid #555;
  border-radius: 4px;
  background: #222;
  color: white;
  font-size: 0.85rem;
}

/* Hover / selection info panel */
#info {
  position: fixed;
  bottom: 12px;
  left: 12px;
  max-width: 320px;
  background: rgba(20, 20, 20, 0.92);
  color: #eee;
  padding: 10px 12px;
  border-radius: 6px;
  border: 1px solid #555;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  z-index: 1000;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 0.82rem;
  line-height: 1.4;
  pointer-events: none;
}

#info[hidden] {
  display: none;
}

#info .info-title {
  font-weight: 600;
  margin-bottom: 4px;
}

#info .info-row {
  display: flex;
  gap: 8px;
}

#info .info-key {
  color: #9aa;
  min-width: 84px;
}

#info .info-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  vertical-align: middle;
  margin-right: 4px;
}

/* Component / Net browser (right-hand panel) */
#browser {
  position: fixed;
  top: 10px;
  right: 10px;
  width: 300px;
  max-height: calc(100vh - 20px);
  display: flex;
  flex-direction: column;
  background: rgba(40, 40, 40, 0.92);
  padding: 10px;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  z-index: 1000;
  color: white;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 0.82rem;
}

#browser[hidden] {
  display: none;
}

.browser-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  cursor: pointer;
  user-select: none;
}

.browser-title {
  font-weight: 600;
}

.browser-toggle {
  border: 1px solid #555;
  border-radius: 4px;
  background: #333;
  color: #ccc;
  cursor: pointer;
  font-size: 0.8rem;
  line-height: 1;
  padding: 2px 8px;
}

.browser-toggle:hover {
  background: #444;
}

#browser.collapsed {
  width: auto;
}

#browser.collapsed .browser-header {
  margin-bottom: 0;
}

#browser.collapsed .browser-body {
  display: none;
}

.browser-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1;
}

.browser-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

.browser-tabs button {
  flex: 1;
  padding: 6px 8px;
  border: 1px solid #555;
  border-radius: 4px;
  background: #333;
  color: #ccc;
  cursor: pointer;
  font-size: 0.8rem;
}

.browser-tabs button.active {
  background: #555;
  border-color: #777;
  color: #fff;
}

#browser input[type='search'] {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 6px;
  padding: 5px 8px;
  border: 1px solid #555;
  border-radius: 4px;
  background: #222;
  color: white;
  font-size: 0.82rem;
}

.browser-list {
  overflow-y: auto;
  flex: 1;
}

.browser-item {
  padding: 5px 6px;
  border-radius: 4px;
  cursor: pointer;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.browser-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

.browser-item .bi-name {
  font-weight: 600;
}

.browser-item .bi-sub {
  color: #9aa;
  margin-left: 6px;
  font-weight: 400;
}

.browser-item summary {
  cursor: pointer;
  list-style: revert;
}

.browser-item summary::-webkit-details-marker {
  color: #9aa;
}

.bi-pins {
  margin: 3px 0 4px 12px;
}

.bi-pin {
  display: flex;
  gap: 8px;
  padding: 1px 0;
  cursor: pointer;
}

.bi-pin:hover {
  color: #ffe14d;
}

.bi-pin .info-key {
  color: #9aa;
  min-width: 48px;
}

