/* FolienFox Web2Print Editor - product 28 - dynamic28.css - modal clean */



.dp_editor_width_mm input,
.dp_editor_height_mm input{
  width: 100% !important;
}



#ff-web2print-editor, #ff-web2print-editor * { box-sizing: border-box; }
    #ff-web2print-launcher { margin: 10px 0 14px; }
.ff-open-editor-btn { width: 100%; min-height: 52px; border: 0; border-radius: 12px; background: #3B82F6; color: #fff; font-size: 16px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 20px rgba(59,130,246,.28); }
.ff-open-editor-btn:hover { background:#2563EB; }
.ff-web2print-launcher-note { margin-top: 8px; font-size: 12px; line-height: 1.4; color: #555; }
.ff-web2print-modal { position: fixed; inset: 0; z-index: 99999; display: none; }
.ff-web2print-modal.show { display: block; }
.ff-web2print-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); }
.ff-web2print-modal-dialog { position: absolute; inset: 24px; display: flex; min-width: 980px; }
#ff-web2print-editor { font-family: Arial, sans-serif; background:#101014; color:#f2f2f2; width: 100%; height: 100%; min-height: 720px; overflow:hidden; display:flex; flex-direction:column; border-radius:12px; border:1px solid #33333d; box-shadow: 0 30px 90px rgba(0,0,0,.65); }
.ff-editor-close { order: 999; margin-left: 4px; width: 40px; height: 40px; border-radius: 10px; border:1px solid #DC2626; background:#EF4444; color:#fff; font-size:24px; line-height:1; font-weight:900; cursor:pointer; flex: 0 0 auto; }
.ff-editor-close:hover { background:#DC2626; }
body.ff-web2print-open { overflow: hidden !important; }
@media (max-width: 1100px) { .ff-web2print-modal-dialog { inset: 8px; min-width: 0; } #left-panel,#right-panel { width: 230px; } }

    #topbar { height:60px; background:#1B1B22; border-bottom:2px solid #33333D; display:flex; align-items:center; gap:10px; padding:0 14px; flex-shrink:0; overflow-x:auto; }
    .logo { font-weight:800; font-size:18px; color:#60A5FA; margin-right:16px; white-space:nowrap; }
    button, select, input { font-family:inherit; }
    .tool-btn { height:40px; min-width:auto; width:auto; padding:0 16px; background:#3B82F6; color:#FFFFFF; border:1px solid #2563EB; border-radius:10px; font-size:13px; font-weight:600; cursor:pointer; transition:all .2s ease; white-space:nowrap; }
    .tool-btn:hover { background:#2563EB; transform:translateY(-1px); box-shadow:0 4px 12px rgba(59,130,246,.35); }
    .tool-btn:active { transform:translateY(0); }
    .export-btn { height:40px; min-width:auto; width:auto; padding:0 16px; background:#10B981; color:#FFFFFF; border:1px solid #059669; border-radius:10px; font-size:13px; font-weight:700; cursor:pointer; transition:all .2s ease; white-space:nowrap; }
    .export-btn:hover { background:#059669; transform:translateY(-1px); box-shadow:0 4px 12px rgba(16,185,129,.35); }
    .spacer { flex:1; min-width:20px; }
    #main { flex:1; display:flex; min-height:0; }
    #left-panel,#right-panel { width:250px; background:#18181f; border-color:#33333d; overflow-y:auto; flex-shrink:0; }
    #left-panel { border-right:1px solid #33333d; }
    #right-panel { border-left:1px solid #33333d; }
    .panel-section { padding:14px; border-bottom:1px solid #33333d; }
    .panel-title { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:#B7C4FF; margin-bottom:10px; }
    .layer-item { padding:8px 10px; border-radius:8px; background:#2A2A35; color:#D8D8E0; margin-bottom:6px; cursor:pointer; font-size:13px; display:grid; grid-template-columns:1fr auto; gap:6px; align-items:center; }
    .layer-item.active { background:#3B82F6; color:white; }
    .layer-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .layer-actions { display:flex; gap:3px; }
    .layer-action { width:24px; height:24px; border:1px solid #343440; border-radius:5px; background:#18181f; color:#d8d8e0; cursor:pointer; font-size:12px; padding:0; }
    .layer-action:hover { background:#31313b; }
    .layer-muted { opacity:.45; }

    .clipart-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .clipart-btn { min-height:54px; border:1px solid #343440; border-radius:10px; background:#24242c; color:#e8e8e8; cursor:pointer; font-size:12px; font-weight:600; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; transition:all .18s ease; }
    .clipart-btn:hover { background:#3B82F6; border-color:#2563EB; color:#fff; transform:translateY(-1px); box-shadow:0 4px 12px rgba(59,130,246,.22); }
    .clipart-icon-preview { width:22px; height:22px; display:block; }
    .clipart-note { font-size:11px; line-height:1.4; color:#9ca3af; margin-top:8px; }
    #canvas-area { flex:1; background:#111116; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
    #canvas-stage { position:relative; transform-origin:center center; }
    #canvas-wrap { background:white; box-shadow:0 30px 80px rgba(0,0,0,.55); position:relative; }
    .format-badge { position:absolute; top:-34px; left:0; right:0; text-align:center; font-size:12px; color:#bfc0d0; pointer-events:none; }
    .guide-overlay { position:absolute; inset:0; pointer-events:none; z-index:5; }
    .guide-line { position:absolute; border:2px dashed rgba(255,0,120,.8); }
    .safe-line { position:absolute; border:2px dashed rgba(0,150,255,.8); }
    .grid-overlay { position:absolute; inset:0; pointer-events:none; z-index:4; opacity:.3; background-image:linear-gradient(to right,rgba(0,0,0,.35) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.35) 1px,transparent 1px); display:none; }
    .guide-label { font-size:11px; color:#cfd0dd; margin-top:6px; line-height:1.4; }
    .dpi-box,.check-list,.hint { font-size:12px; line-height:1.45; padding:9px; border-radius:8px; border:1px solid #33333d; background:#20202a; color:#cfd0dd; margin-top:8px; }
    .dpi-good,.check-ok { border-color:rgba(20,200,120,.7); color:#7df0b2; }
    .dpi-warn,.check-warn { border-color:rgba(255,180,0,.8); color:#ffd56b; }
    .dpi-bad,.check-bad { border-color:rgba(255,80,120,.8); color:#ff7895; }
    .field-row { margin-bottom:10px; }
    .field-row label { display:block; font-size:12px; color:#aaaabb; margin-bottom:5px; }
    .field-row input,.field-row select { width:100%; height:34px; border-radius:7px; border:1px solid #343440; background:#24242c; color:#f2f2f2; padding:0 8px; outline:none; }
    .small-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .danger-btn { width:100%; height:40px; background:#EF4444; color:white; border:1px solid #DC2626; border-radius:10px; font-weight:700; cursor:pointer; transition:all .2s ease; }
    .danger-btn:hover { background:#DC2626; }
    #zoom-box { position:absolute; left:50%; bottom:18px; transform:translateX(-50%); background:#1b1b22; border:1px solid #33333d; border-radius:999px; padding:6px 10px; display:flex; gap:6px; align-items:center; font-size:13px; color:#ccc; box-shadow:0 8px 24px rgba(0,0,0,.35); }
    #zoom-box button { height:30px; min-width:34px; border:1px solid #343440; border-radius:999px; background:#24242c; color:#fff; font-size:13px; font-weight:700; cursor:pointer; padding:0 10px; transition:all .2s ease; }
    #zoom-box button:hover { background:#3B82F6; border-color:#2563EB; box-shadow:0 4px 12px rgba(59,130,246,.28); }
    #zoomLabel { min-width:54px; text-align:center; font-weight:700; color:#fff; font-variant-numeric:tabular-nums; }
    #toast { position:fixed; right:18px; bottom:18px; background:#252532; border:1px solid #3a3a46; border-radius:10px; padding:12px 16px; opacity:0; transform:translateY(10px); pointer-events:none; transition:.25s; font-size:13px; z-index:50; }
    #toast.show { opacity:1; transform:translateY(0); }

    .arrange-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
    .arrange-btn { height:34px; border:1px solid #2563EB; border-radius:8px; background:#1D4ED8; color:#fff; font-size:12px; font-weight:700; cursor:pointer; transition:all .2s ease; }
    .arrange-btn:hover { background:#2563EB; transform:translateY(-1px); box-shadow:0 4px 10px rgba(59,130,246,.28); }


#dpStatus,
#dpExportStatus {
  display: none !important;
}

.editor-message-bar {
  position: relative;
  z-index: 20;
  margin: 0 auto 10px auto;
  padding: 10px 16px;
  max-width: 900px;

  background: #111;
  color: #fff;

  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;

  text-align: center;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);

  opacity: 1;
  transition: opacity .25s ease, transform .25s ease;
}

.editor-message-bar.is-info {
  background: #00AEEF;
}

.editor-message-bar.is-warn {
  background: #f59e0b;
}

.editor-message-bar.is-error {
  background: #dc2626;
}

.editor-message-bar.is-success {
  background: #16a34a;
}


.text-style-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}

.text-style-grid .tool-btn {
  width: 100%;
  font-weight: 700;
}



.ff-tabs {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
}

.ff-tab {
  width: 100%;
  text-align: left;

  border: 1px solid #ddd;
  background: #f7f7f7;

  padding: 10px 12px;

  border-radius: 8px;
  cursor: pointer;

  font-size: 13px;
  font-weight: 600;

  transition: all .2s ease;
}

.ff-tab.active {
  background: #111;
  color: #fff;
  border-color: #111;
}

.ff-tab-content {
  display: none;
}

.ff-tab-content.active {
  display: block;
}

#left-panel .field-row {
  margin-bottom: 12px;
}

#left-panel .field-row label {
  display: block;
  margin-bottom: 5px;
  font-size: 12px;
}

#left-panel input,
#left-panel select {
  width: 100%;
  box-sizing: border-box;
}

.text-align-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.text-align-grid .tool-btn {
  width: 100%;
  padding: 8px 4px;
}

    #productionSheetModal {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,.72);
      z-index: 100;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    #productionSheetModal.show { display: flex; }

    .production-sheet {
      width: 794px;
      max-height: 90vh;
      overflow: auto;
      background: #fff;
      color: #111;
      border-radius: 12px;
      box-shadow: 0 30px 90px rgba(0,0,0,.65);
      padding: 32px;
      font-family: Arial, sans-serif;
    }

    .sheet-header {
      display: flex;
      justify-content: space-between;
      gap: 24px;
      border-bottom: 3px solid #111;
      padding-bottom: 14px;
      margin-bottom: 20px;
    }

    .sheet-title { font-size: 26px; font-weight: 800; }
    .sheet-sub { font-size: 12px; color: #555; margin-top: 5px; }
    .sheet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
    .sheet-box { border: 1px solid #ddd; border-radius: 8px; padding: 14px; }
    .sheet-box h3 { font-size: 14px; margin-bottom: 10px; text-transform: uppercase; letter-spacing: .6px; }
    .sheet-row { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid #eee; padding: 6px 0; font-size: 13px; }
    .sheet-row:last-child { border-bottom: 0; }
    .sheet-preview { width: 100%; border: 1px solid #ddd; border-radius: 8px; background: #f7f7f7; padding: 10px; text-align: center; margin-bottom: 18px; }
    .sheet-preview img { max-width: 100%; max-height: 260px; object-fit: contain; }
    .sheet-actions { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 14px; }
    .sheet-actions button { height: 34px; border-radius: 7px; border: 1px solid #222; background: #111; color: #fff; padding: 0 12px; cursor: pointer; }
    .sheet-actions button.secondary { background: #fff; color: #111; }
    .sheet-note { font-size: 11px; color: #666; line-height: 1.5; margin-top: 16px; border-top: 1px solid #ddd; padding-top: 12px; }

    @media print {
      body * { visibility: hidden; }
      #productionSheetModal, #productionSheetModal * { visibility: visible; }
      #productionSheetModal { position: absolute !important; left: 0; top: 0; display: block !important; background: #fff; padding: 0; }
      .production-sheet { width: 100%; max-height: none; box-shadow: none; border-radius: 0; }
      .sheet-actions { display: none; }
    }
