:root{
  --blue:#2E74B5; --blue-dark:#1F4D78; --blue-deep:#14324f;
  --blue-light:#eaf1f8; --blue-mid:#4a8fd0;
  --th:#e7e7e7; --rule:#999; --note:#555; --meta:#666;
  --g100:#f8f8f8; --g200:#f0f0f0; --g300:#e0e0e0; --g400:#c0c0c0;
  --text:#1a1a1a; --white:#fff;
  --font:'Calibri','Carlito','Segoe UI',Arial,sans-serif;
  --mono:'Consolas','Menlo',monospace;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:var(--font);
  color:var(--text);
  background:var(--g100);
  line-height:1.55;
}

a{ color:var(--blue); }
a:hover{ color:var(--blue-dark); }

.topbar{
  background:var(--blue-deep);
  color:var(--white);
  padding:.6rem 1rem;
}
.topbar .brand{
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.85rem;
}
.topbar a{ color:var(--white); text-decoration:none; }
.topbar nav{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  margin-top:.35rem;
  font-size:.85rem;
}
.topbar nav a{ opacity:.85; }
.topbar nav a:hover{ opacity:1; text-decoration:underline; }

.searchbar{
  display:flex;
  gap:.4rem;
  margin-top:.5rem;
}
.searchbar input[type="search"]{
  flex:1;
  padding:.35rem .5rem;
  border:none;
  border-radius:3px;
  font-family:var(--font);
}
.searchbar button{
  background:var(--blue);
  color:var(--white);
  border:none;
  padding:.35rem .8rem;
  border-radius:3px;
  cursor:pointer;
}
.searchbar button:hover{ background:var(--blue-mid); }

.wrap{
  max-width:900px;
  margin:0 auto;
  padding:1.25rem 1rem 3rem;
}

.doc-header{
  margin-bottom:1.25rem;
}
.doc-header .agency{
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--meta);
}
.doc-header .officeline{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  font-size:.8rem;
  color:var(--meta);
}
.doc-header h1{
  color:var(--blue);
  border-bottom:2px solid var(--blue);
  padding-bottom:.4rem;
  margin:.4rem 0 .3rem;
  font-size:1.7rem;
}
.doc-header .meta{
  font-size:.8rem;
  color:var(--meta);
}

.badge{
  display:inline-block;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.2rem .55rem;
  border-radius:3px;
  color:var(--white);
  white-space:nowrap;
}
.mk-unrestricted{ background:#2e7d32; }
.mk-service{ background:#6b6b6b; }
.mk-restricted{ background:var(--blue); }
.mk-confidential{ background:var(--blue-dark); }
.mk-secret{ background:#b8860b; }
.mk-imperial{ background:#111; }

h1,h2,h3,h4{ color:var(--blue-dark); }
h2{ border-bottom:1px solid var(--g300); padding-bottom:.25rem; }

.content table{
  width:100%;
  border-collapse:collapse;
  margin:1rem 0;
  display:block;
  overflow-x:auto;
}
.content table thead{ background:var(--th); }
.content th,.content td{
  border:1px solid var(--g400);
  padding:.4rem .6rem;
  text-align:left;
  font-size:.9rem;
}
.content pre{
  background:var(--blue-deep);
  color:var(--g100);
  padding:.8rem;
  border-radius:4px;
  overflow-x:auto;
  font-family:var(--mono);
  font-size:.85rem;
}
.content code{ font-family:var(--mono); background:var(--g200); padding:.05rem .3rem; border-radius:3px; }
.content pre code{ background:none; padding:0; }
.content blockquote{
  border-left:3px solid var(--g400);
  margin:1rem 0;
  padding:.2rem 1rem;
  color:var(--note);
}

.md-note{
  font-style:italic;
  color:var(--note);
  border-top:1px solid var(--g300);
  padding-top:.5rem;
  margin:1rem 0;
  font-size:.9rem;
}
.md-callout{
  border:1px solid var(--blue);
  background:var(--blue-light);
  border-radius:4px;
  padding:.75rem 1rem;
  margin:1rem 0;
}
.md-warn{
  border:2px solid #b3261e;
  background:#fdecea;
  border-radius:4px;
  padding:.75rem 1rem;
  margin:1rem 0;
}

.md-checklist{ list-style:none; margin:1rem 0; padding:0; }
.md-checklist .checklist-item{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding:.25rem 0;
  cursor:pointer;
  user-select:none;
}
.md-checklist .box{
  width:16px; height:16px;
  border:2px solid var(--blue);
  border-radius:2px;
  flex:0 0 auto;
  position:relative;
}
.md-checklist .checklist-item.checked .box{ background:var(--blue); }
.md-checklist .checklist-item.checked .box::after{
  content:"";
  position:absolute; left:3px; top:-1px;
  width:5px; height:9px;
  border:solid var(--white);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.md-checklist .checklist-item.checked .label{ text-decoration:line-through; color:var(--meta); }

.inline-call{
  font-weight:700;
  letter-spacing:.03em;
  color:var(--blue-dark);
}
.key{
  display:inline-block;
  font-family:var(--mono);
  font-size:.8rem;
  border:1px solid var(--g400);
  border-bottom-width:2px;
  border-radius:3px;
  padding:.05rem .4rem;
  background:var(--g200);
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:.8rem;
  margin:1rem 0;
}
.card{
  border:1px solid var(--g300);
  background:var(--white);
  border-radius:4px;
  padding:.8rem .9rem;
}
.card a{ text-decoration:none; font-weight:600; }
.card .cat-meta{ font-size:.75rem; color:var(--meta); margin-top:.2rem; }

table.list-table{ width:100%; border-collapse:collapse; }
table.list-table th{ background:var(--th); border:1px solid var(--g400); padding:.4rem .6rem; text-align:left; font-size:.85rem; }
table.list-table td{ border:1px solid var(--g400); padding:.4rem .6rem; font-size:.9rem; }
.table-scroll{ overflow-x:auto; }

form.edit-form textarea{
  width:100%;
  min-height:420px;
  font-family:var(--mono);
  font-size:.9rem;
  padding:.6rem;
  border:1px solid var(--g400);
  border-radius:4px;
  resize:vertical;
}
form.edit-form input[type="text"], form.edit-form select{
  padding:.4rem .5rem;
  border:1px solid var(--g400);
  border-radius:3px;
  font-family:var(--font);
  font-size:.9rem;
}
.form-row{ margin-bottom:.8rem; }
.form-row label{ display:block; font-size:.8rem; font-weight:600; color:var(--blue-dark); margin-bottom:.25rem; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.split-edit{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start; }
.split-edit .preview{
  border:1px solid var(--g300);
  background:var(--white);
  padding:.8rem 1rem;
  border-radius:4px;
  min-height:420px;
  overflow-x:auto;
}
@media (max-width: 800px){
  .split-edit{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
}

.btn{
  display:inline-block;
  background:var(--blue);
  color:var(--white);
  border:none;
  padding:.5rem 1.1rem;
  border-radius:3px;
  cursor:pointer;
  font-size:.9rem;
  text-decoration:none;
}
.btn:hover{ background:var(--blue-mid); }
.btn.secondary{ background:var(--g300); color:var(--text); }
.btn.secondary:hover{ background:var(--g400); }
.btn.danger{ background:#b3261e; }

.notice{ padding:.6rem .9rem; border-radius:4px; margin-bottom:1rem; font-size:.9rem; }
.notice.error{ background:#fdecea; border:1px solid #b3261e; color:#7a1e17; }
.notice.ok{ background:#e8f5e9; border:1px solid #2e7d32; color:#1b5e20; }

.notfound{ text-align:center; padding:4rem 1rem; color:var(--meta); }
.notfound h1{ border:none; color:var(--meta); }

.footer-print{ display:none; }

@media print{
  .topbar, .searchbar, .edit-controls, nav, .no-print{ display:none !important; }
  body{ background:var(--white); }
  .wrap{ max-width:none; padding:0; }
  .footer-print{ display:block; margin-top:2rem; font-size:.7rem; color:var(--meta); border-top:1px solid var(--g400); padding-top:.5rem; }
}
