:root {
  --tools: 48px;
}
.workspace {
  grid-template-columns: var(--tools) minmax(0, 1fr) var(--panel);
}
.workspace > .tool-group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-right: 1px solid var(--ink);
  background: var(--paper);
  z-index: 15;
}
.workspace > .tool-group .tool {
  width: 100%;
  min-width: 0;
  height: 48px;
  flex: 0 0 48px;
  padding: 5px 2px;
  border: 0;
  border-bottom: 1px solid #e7e7e7;
  gap: 2px;
}
.workspace > .tool-group .tool span:last-child {
  display: block !important;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.workspace > .tool-group .tool svg,
.workspace > .tool-group .tool .icon {
  width: 20px;
  height: 20px;
}
.workspace > .tool-group .shape-icon {
  width: 19px;
  height: 19px;
}
.file-menu {
  position: relative;
}
.file-menu > summary {
  display: none;
  list-style: none;
}
.file-menu > summary::-webkit-details-marker {
  display: none;
}
.file-menu-content,
.file-menu:not([open]) > .file-menu-content {
  display: flex;
  gap: 8px;
}
.file-menu-content .text-button {
  display: block;
}
.app-header {
  min-width: 0;
}
.style-controls {
  min-width: 0;
}
.file-actions {
  flex: 0 0 auto;
}
.tool-tooltip {
  width: 250px;
}
.canvas-area {
  grid-column: 2;
}
.layers-panel {
  grid-column: 3;
}
@media (max-width: 1180px) {
  .brand {
    width: 112px;
    padding: 0 14px;
  }
  .style-controls {
    gap: 9px;
    padding: 0 10px;
  }
  .style-controls label > span:last-child,
  .materials-button > span:last-child {
    display: none;
  }
  .materials-button {
    width: 36px;
    padding: 0;
    justify-content: center;
  }
  .file-actions {
    padding: 0 10px;
  }
  .file-menu-content {
    gap: 5px;
  }
  .file-menu-content button {
    padding: 0 10px;
  }
}
@media (max-width: 900px) {
  .file-menu > summary {
    display: grid;
    place-items: center;
    width: 72px;
    height: 36px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: #fff;
    cursor: pointer;
  }
  .file-menu-content,
  .file-menu:not([open]) > .file-menu-content {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: 190px;
    padding: 8px;
    background: var(--paper);
    border: 1px solid var(--ink);
    z-index: 80;
  }
  .file-menu[open] > .file-menu-content {
    display: grid;
  }
  .file-menu-content .text-button,
  .file-menu-content .primary-button {
    display: block !important;
    width: 100%;
    text-align: left;
  }
  .canvas-meta {
    padding: 0 12px;
  }
  .canvas-options {
    display: none;
  }
}
@media (max-width: 720px) {
  :root {
    --panel: 230px;
    --tools: 50px;
  }
  .brand {
    width: 94px;
    font-size: 17px;
    padding: 0 10px;
  }
  .style-controls {
    padding: 0 7px;
  }
  .style-controls label:first-child span {
    display: none;
  }
  .workspace > .tool-group .tool {
    height: 50px;
    flex-basis: 50px;
  }
  .canvas-size label {
    font-size: 0;
  }
  .canvas-size label select {
    font-size: 10px;
  }
  .canvas-size input {
    width: 48px;
  }
  .statusbar {
    grid-template-columns: auto 1fr auto;
  }
  .status-hint {
    display: none;
  }
}
.hardware-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 980px) {
  .hardware-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .hardware-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .hardware-grid {
    grid-template-columns: 1fr;
  }
}
