:root{ --ink:#111; --muted:#6b7280; --brand:#7A2323; --bg:#fafafa; }
*{ box-sizing:border-box; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Apple Color Emoji","Segoe UI Emoji"; }
body{ margin:0; background:#fff; color:var(--ink); }
.page{ max-width:1100px; margin:24px auto; padding:0 16px; }
.hdr .title{ font-weight:800; font-size:22px; }
.hdr .sub{ color:var(--muted); font-size:13px; margin-top:4px; }
.card{ border:1px solid #eee; border-radius:10px; padding:14px; margin:18px 0; box-shadow:0 1px 8px rgba(0,0,0,0.03); }
.card-title{ font-weight:700; margin-bottom:10px; }
.grid{ display:grid; grid-template-columns: 190px 190px 230px 1fr; gap:10px; align-items:end; }
.row{ display:flex; align-items:center; }
.gap{ gap:10px; }
label{ font-size:12px; color:var(--muted); display:flex; flex-direction:column; gap:6px; }
input, select{ border:1px solid #ddd; border-radius:8px; padding:8px; font-size:14px; }
.btn{ border:1px solid #ddd; border-radius:8px; padding:8px 12px; background:#fff; cursor:pointer; }
.btn.primary{ background:var(--brand); color:#fff; border-color:var(--brand); }
.btn.success{ background:#166534; color:#fff; border-color:#166534; }
.btn.link{ background:transparent; border:none; color:var(--brand); text-decoration:underline; padding-left:0; }
.btn.link:hover{ opacity:0.85; }
.muted{ color:var(--muted); font-size:12px; }
.pre{ background:#f8f8f8; border:1px solid #eee; padding:8px; border-radius:8px; overflow:auto; }
.modal-wrap{ position:fixed; inset:0; background:rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; z-index:9999; }
.modal{ width:min(1100px,96vw); max-height:86vh; overflow:hidden; background:#fff; border:2px solid var(--brand); border-radius:10px; box-shadow:0 10px 28px rgba(0,0,0,.35); display:flex; flex-direction:column; }
.modal-h{ display:flex; justify-content:space-between; align-items:center; gap:6px; border-bottom:1px solid #eee; padding:10px 14px; }
.modal-b{ padding:10px 14px; overflow:auto; flex:1; }
.modal-f{ padding:10px 14px; border-top:1px solid #eee; display:flex; justify-content:flex-end; gap:8px; }
table{ width:100%; border-collapse:collapse; font-size:13px; }
th,td{ padding:6px; border-bottom:1px solid #f0f0f0; text-align:left; }
thead th{ position:sticky; top:0; background:#f8f8f8; z-index:1; }
.ntis-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}
.ntis-table th,
.ntis-table td {
  padding: 4px 6px;
  border-bottom: 1px solid #ddd;
}
.ntis-table th {
  text-align: left;
  font-weight: 600;
  background-clip: padding-box;
  transform: translateZ(0);
}
.collapsible-header {
  display: flex;
  align-items: center;
}
.collapsible-header:hover {
  background-color: #f5f5f5;
  border-radius: 4px;
}
.collapsible-header.collapsed span {
  transform: rotate(-90deg);
  display: inline-block;
}
.collapsible-content {
  transition: max-height 0.3s ease-out, opacity 0.2s ease-out;
  overflow: hidden;
}
.collapsible-content.collapsed {
  display: none;
}


