
.graphic-key-lock[data-v-6b6b80c9] {
  max-width: 500px;
  margin: 0 auto;
  border-radius: 12px;
  background: #1e1e1e !important;
}
.pattern-container[data-v-6b6b80c9] {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  background: #2d2d2d;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}
.points-grid[data-v-6b6b80c9] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 20px;
  padding: 20px;
  z-index: 1;
}
.grid-point[data-v-6b6b80c9] {
  background: rgba(255, 255, 255, 0.2);
  border: 3px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 16px;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  aspect-ratio: 1;
}
.grid-point[data-v-6b6b80c9]:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.1);
  border-color: rgba(255, 255, 255, 0.8);
}
.grid-point.selected[data-v-6b6b80c9] {
  background: #4caf50;
  border-color: #81c784;
  transform: scale(1.2);
  box-shadow: 0 0 20px rgba(76, 175, 80, 0.6);
}
.pattern-canvas[data-v-6b6b80c9] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  background: transparent;
}

/* Стиль для кнопки выхода */
.q-mt-xl[data-v-6b6b80c9] {
  margin-top: 2rem;
}
.full-width[data-v-6b6b80c9] {
  width: 100%;
}

/* Анимация */
.graphic-key-lock[data-v-6b6b80c9] {
  animation: slideIn-6b6b80c9 0.3s ease;
}
@keyframes slideIn-6b6b80c9 {
from {
    opacity: 0;
    transform: scale(0.9);
}
to {
    opacity: 1;
    transform: scale(1);
}
}

.watermark-container[data-v-d2a06a9e] {
  position: relative;
  background-color: #f5f5f5;
  min-height: 100px;
  min-width: 100px;
  overflow: hidden;
}
.fallback-image[data-v-d2a06a9e] {
  width: 100%;
  height: 100%;
  object-fit: var(--v5951afb2);
}
canvas[data-v-d2a06a9e] {
  display: block;
  transition: opacity 0.3s ease;
}
.pdf-placeholder[data-v-d2a06a9e] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: #f0f0f0;
  color: #666;
  font-family: 'Courier New', monospace;
}
.pdf-icon[data-v-d2a06a9e] {
  font-size: 48px;
  margin-bottom: 10px;
}
.pdf-label[data-v-d2a06a9e] {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Для отладки - показывает границы компонента */
.watermark-container[data-v-d2a06a9e]:hover {
  outline: 2px solid #00d9ff;
  outline-offset: -2px;
}

.preview-box[data-v-8640dcec] {
  border-radius: 4px;
  overflow: hidden;
}
.preview-watermark[data-v-8640dcec] {
  -webkit-user-select: none;
          user-select: none;
  pointer-events: none;
}
.vjs-tree-brackets{cursor:pointer}.vjs-tree-brackets:hover{color:#1890ff}.vjs-check-controller{position:absolute;left:0}.vjs-check-controller.is-checked .vjs-check-controller-inner{background-color:#1890ff;border-color:#0076e4}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-checkbox:after{transform:rotate(45deg) scaleY(1)}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-radio:after{transform:translate(-50%,-50%) scale(1)}.vjs-check-controller .vjs-check-controller-inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:2px;vertical-align:middle;box-sizing:border-box;width:16px;height:16px;background-color:#fff;z-index:1;cursor:pointer;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-check-controller .vjs-check-controller-inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-check-controller .vjs-check-controller-inner.is-radio{border-radius:100%}.vjs-check-controller .vjs-check-controller-inner.is-radio:after{border-radius:100%;height:4px;background-color:#fff;left:50%;top:50%}.vjs-check-controller .vjs-check-controller-original{opacity:0;outline:none;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.vjs-carets{position:absolute;right:0;cursor:pointer}.vjs-carets svg{transition:transform .3s}.vjs-carets:hover{color:#1890ff}.vjs-carets-close{transform:rotate(-90deg)}.vjs-tree-node{display:flex;position:relative;line-height:20px}.vjs-tree-node.has-carets{padding-left:15px}.vjs-tree-node.has-carets.has-selector,.vjs-tree-node.has-selector{padding-left:30px}.vjs-tree-node.is-highlight,.vjs-tree-node:hover{background-color:#e6f7ff;border-radius:4px}.vjs-tree-node.is-highlight .vjs-tree-node-actions,.vjs-tree-node:hover .vjs-tree-node-actions{display:block}.vjs-tree-node .vjs-indent{display:flex;position:relative}.vjs-tree-node .vjs-indent-unit.has-line{border-left:1px dashed #bfcbd9}.vjs-tree-node .vjs-tree-node-actions{display:none;position:absolute;right:0;top:0;padding:0 4px;background-color:#e6f7ff;border-radius:4px}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item{cursor:pointer}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item:hover{color:#1890ff}.vjs-tree-node.dark.is-highlight,.vjs-tree-node.dark .vjs-tree-node-actions,.vjs-tree-node.dark:hover{background-color:#2e4558}.vjs-node-index{position:absolute;right:100%;margin-right:4px;-webkit-user-select:none;user-select:none}.vjs-colon{white-space:pre}.vjs-comment{color:#bfcbd9}.vjs-key{white-space:nowrap}.vjs-value{word-break:break-word}.vjs-tree-node.dynamic-height .vjs-value{white-space:pre-wrap}.vjs-value-null,.vjs-value-undefined{color:#d55fde}.vjs-value-boolean,.vjs-value-number{color:#1d8ce0}.vjs-value-string{color:#13ce66}.vjs-tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono,monospace;font-size:14px;text-align:left}.vjs-tree.is-virtual{overflow:auto}.vjs-tree.is-virtual .vjs-tree-node{white-space:nowrap}
.admin-page[data-v-ceea593d] {
  background: #121212;
  min-height: 100vh;
}
.admin-modal[data-v-ceea593d] {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
.admin-modal .q-card__section[data-v-ceea593d] {
  padding: 16px;
}
.q-field[data-v-ceea593d] {
  margin-bottom: 8px;
}
.q-card__actions[data-v-ceea593d] {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding: 16px;
}

/* Стили для графического ключа */
.pattern-container[data-v-ceea593d] {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
}
.pattern-canvas[data-v-ceea593d] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  cursor: crosshair;
}
.points-grid[data-v-ceea593d] {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.grid-point[data-v-ceea593d] {
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  pointer-events: none;
}
.grid-point.selected[data-v-ceea593d] {
  background: #4caf50;
  box-shadow: 0 0 15px rgba(76, 175, 80, 0.5);
  transform: translate(-50%, -50%) scale(1.3);
}

/* Стили для vue-json-pretty */
.json-pretty-view[data-v-ceea593d] {
  background: transparent;
  font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
  font-size: 13px;
  line-height: 1.5;
  max-height: 400px;
  overflow-y: auto;
}

/* Переопределение стилей для темной темы */
[data-v-ceea593d] .vjs-tree {
  color: #d4d4d4;
}
[data-v-ceea593d] .vjs-tree__node {
  color: #d4d4d4;
}
[data-v-ceea593d] .vjs-tree__key {
  color: #9cdcfe;
}
[data-v-ceea593d] .vjs-tree__value-string {
  color: #ce9178;
}
[data-v-ceea593d] .vjs-tree__value-number {
  color: #b5cea8;
}
[data-v-ceea593d] .vjs-tree__value-boolean {
  color: #569cd6;
}
[data-v-ceea593d] .vjs-tree__value-null {
  color: #569cd6;
}
[data-v-ceea593d] .vjs-tree__bracket {
  color: #d4d4d4;
}
[data-v-ceea593d] .vjs-tree__bracket-key {
  color: #9cdcfe;
}
[data-v-ceea593d] .vjs-tree__bracket-value {
  color: #d4d4d4;
}
[data-v-ceea593d] .vjs-tree__indent {
  border-left-color: #404040;
}
