.page-main { flex:1; padding:32px; max-width:1100px; margin:0 auto; width:100%; }

/* Tab bar */
.tab-bar { display:flex; gap:0; border-bottom:1px solid var(--border); margin-bottom:28px; }
.tab-btn {
  font-family:var(--font-title); font-size:10px; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  padding:10px 22px; border:none; background:transparent;
  color:var(--text-dim); cursor:pointer; border-bottom:2px solid transparent;
  transition:color .2s, border-color .2s;
}
.tab-btn.active { color:var(--accent); border-bottom-color:var(--accent); }
.tab-btn:hover:not(.active) { color:var(--text); }
.tab-btn.admin-tab .tab-lock { font-size:8px; margin-left:5px; opacity:.5; }
.tab-btn.admin-tab.unlocked { color:var(--warn); }
.tab-btn.admin-tab.unlocked .tab-lock { opacity:1; }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

/* Mission list */
.mission-list { display:grid; gap:14px; margin-top:8px; }
.mission-item { border:1px solid var(--border); background:var(--panel); padding:16px; display:flex; gap:16px; align-items:flex-start; }
.mission-item-focused { border-color: var(--accent); box-shadow: 0 0 0 1px rgba(0, 212, 255, .18), 0 0 22px rgba(0, 212, 255, .12); }
.mission-item-body { flex:1; min-width:0; }
.mission-title { font-family:var(--font-title); font-size:13px; color:var(--text-bright); margin-bottom:6px; }
.meta { font-family:var(--font-mono); font-size:10px; color:var(--text-dim); margin-bottom:8px; letter-spacing:.08em; }
.summary { color:var(--text-dim); font-size:12px; line-height:1.7; }
.mission-linked-section { margin-top:14px; border:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.02); }
.mission-linked-header { padding:10px 12px; border-bottom:1px solid rgba(255,255,255,.06); font-family:var(--font-mono); font-size:10px; color:var(--text-dim); letter-spacing:.08em; }
.mission-linked-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; padding:12px; }
.mission-linked-block { display:grid; gap:8px; }
.mission-linked-title { font-family:var(--font-title); font-size:11px; letter-spacing:.1em; color:var(--text-bright); text-transform:uppercase; }
.linked-person { border:1px solid rgba(255,255,255,.06); background:rgba(8, 12, 18, .72); padding:10px; text-decoration:none; display:block; }
.linked-person:hover,
.linked-person:focus-visible { border-color:var(--accent); box-shadow:0 0 0 1px rgba(0, 212, 255, .18); }
.linked-person-top { display:flex; gap:10px; justify-content:space-between; align-items:center; }
.linked-person-name { font-family:var(--font-title); font-size:12px; color:var(--text-bright); }
.linked-person-chip { border:1px solid var(--border-glow); color:var(--accent); font-family:var(--font-mono); font-size:10px; padding:3px 7px; }
.linked-person-meta { margin-top:6px; font-family:var(--font-mono); font-size:10px; color:var(--text-dim); line-height:1.6; letter-spacing:.04em; }
.linked-person-summary { margin-top:6px; color:var(--text-dim); font-size:12px; line-height:1.6; }
.mission-actions { display:flex; flex-direction:column; gap:8px; align-items:stretch; flex-shrink:0; }
.empty-box { border:1px solid var(--border); background:var(--panel); padding:14px 16px; color:var(--text-dim); font-family:var(--font-mono); font-size:11px; }

/* Editor locked */
.editor-locked { border:1px solid var(--border); background:var(--panel); padding:40px; text-align:center; color:var(--text-dim); }
.editor-locked-title { font-family:var(--font-title); font-size:16px; color:var(--text-bright); margin-bottom:10px; letter-spacing:.1em; }
.editor-locked-sub { font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; }

/* Editor controls */
.editor-controls { display:flex; gap:12px; align-items:center; margin-bottom:18px; flex-wrap:wrap; }
.editor-controls select {
  background:var(--bg); border:1px solid var(--border-glow); color:var(--text-bright);
  font-family:var(--font-mono); font-size:11px; padding:8px 12px; flex:1; min-width:180px;
}
.editor-controls select:focus { outline:none; border-color:var(--accent); }

/* Canvas toolbar */
.canvas-wrap { display:flex; gap:12px; align-items:flex-start; }
.canvas-toolbar { display:flex; flex-direction:column; gap:6px; flex-shrink:0; width:48px; }
.tool-btn {
  width:40px; height:40px; border:1px solid var(--border); background:var(--panel);
  color:var(--text-dim); cursor:pointer; display:flex; align-items:center;
  justify-content:center; font-size:14px; transition:all .15s;
  clip-path:polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%);
}
.tool-btn:hover { border-color:var(--accent); color:var(--accent); }
.tool-btn.active { border-color:var(--accent); color:var(--bg); background:var(--accent); }
.tool-sep { height:1px; background:var(--border); margin:4px 0; }

.color-swatch { width:22px; height:22px; border:2px solid transparent; cursor:pointer; border-radius:50%; transition:border-color .15s; flex-shrink:0; }
.color-swatch.active { border-color:var(--text-bright); }
.color-row { display:flex; flex-direction:column; gap:5px; align-items:center; }

.canvas-outer { flex:1; position:relative; overflow:hidden; border:1px solid var(--border); background:var(--bg); cursor:crosshair; }
.canvas-outer.tool-text { cursor:text; }
#annotationCanvas { display:block; width:100%; height:auto; touch-action:none; }
.canvas-hint { position:absolute; bottom:8px; right:12px; font-family:var(--font-mono); font-size:9px; color:var(--text-dim); pointer-events:none; letter-spacing:.05em; }

.size-slider { width:36px; height:80px; appearance:none; writing-mode:vertical-lr; direction:rtl; background:var(--border); border:none; outline:none; cursor:pointer; border-radius:2px; }
.size-slider::-webkit-slider-thumb { appearance:none; width:12px; height:12px; background:var(--accent); border-radius:0; }

.save-bar { display:flex; gap:10px; align-items:center; margin-top:14px; flex-wrap:wrap; }
.save-status { font-family:var(--font-mono); font-size:10px; color:var(--text-dim); letter-spacing:.05em; }
.save-status.ok { color:var(--success); }
.save-status.err { color:var(--danger); }

.annotation-view-wrap { margin-top:10px; border:1px solid var(--border); background:var(--bg2); overflow:hidden; }
.annotation-view-wrap canvas { display:block; max-width:100%; }

.map-img-preview { max-height:240px; object-fit:contain; display:block; border:1px solid var(--border); background:var(--bg2); width:100%; margin-bottom:12px; }

footer { border-top:1px solid var(--border); padding:14px 32px; max-width:1100px; margin:0 auto; width:100%; display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:9px; color:var(--text-dim); }

@media (max-width: 900px) {
  .mission-linked-grid { grid-template-columns:1fr; }
}
