.icsp { --icsp-green:#164734; --icsp-pale:#f1f7f3; --icsp-border:#d3e1d8; color:#202e27; font-family:inherit; line-height:1.65; width:100%; box-sizing:border-box; }
.icsp *, .icsp *::before, .icsp *::after { box-sizing:border-box; }
.icsp [hidden] { display:none !important; }
.icsp-manager { max-width:1100px; margin:24px auto; padding:24px; border:1px solid var(--icsp-border); border-radius:12px; background:white; }
.icsp h2,.icsp h3 { color:var(--icsp-green); line-height:1.3; }
.icsp label { display:block; font-weight:600; margin:14px 0; }
.icsp input:not([type=hidden]),.icsp textarea,.icsp select { display:block; width:100%; max-width:100%; min-width:0; margin-top:6px; padding:10px 12px; border:1px solid #91a99b; border-radius:5px; background:#fff; color:#17261e; font:inherit; }
.icsp input[type=number] { max-width:160px; }
.icsp input:focus-visible,.icsp textarea:focus-visible,.icsp select:focus-visible,.icsp button:focus-visible,.icsp summary:focus-visible,.icsp a:focus-visible { outline:3px solid #448465; outline-offset:3px; }
.icsp .icsp-add,.icsp .icsp-remove,.icsp-actions button,.icsp-export button { font:inherit; font-weight:600; padding:10px 16px; border:1px solid var(--icsp-green); border-radius:5px; background:white; color:var(--icsp-green); cursor:pointer; white-space:normal; }
.icsp .icsp-add:hover,.icsp-actions button:hover,.icsp-export button:hover { background:var(--icsp-pale); }
.icsp .icsp-add:disabled,.icsp-actions button:disabled,.icsp-export button:disabled { cursor:not-allowed; opacity:.5; }
.icsp button.icsp-publish { background:var(--icsp-green); color:white; }
.icsp-organizer { border:1px solid var(--icsp-border); padding:16px; margin:18px 0; border-radius:8px; background:var(--icsp-pale); min-width:0; }
.icsp-organizer legend { padding:0 8px; font-weight:700; }
.icsp-organizer button.icsp-remove { font-size:.85em; padding:6px 10px; color:#8b2828; border-color:#bd9999; }
.icsp-actions,.icsp-export { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:22px 0; }
.icsp-export { padding:18px; border:1px solid var(--icsp-border); border-radius:8px; }
.icsp-export label { flex:1 1 200px; }
.icsp a { color:var(--icsp-green); text-decoration:underline; overflow-wrap:anywhere; }
.icsp-notice { padding:14px; background:#e8f5eb; border-left:4px solid #28743e; margin:20px 0; }
.icsp-error { padding:14px; background:#fff0ee; border-left:4px solid #ac302a; margin:20px 0; }
.icsp-private { font-size:.92em; color:#526158; }
.icsp-table-wrap { overflow-x:auto; }
.icsp-table { width:100%; border-collapse:collapse; text-align:left; }
.icsp-table th,.icsp-table td { padding:10px; border-bottom:1px solid var(--icsp-border); vertical-align:top; }
.icsp-table th { background:var(--icsp-pale); }
.icsp-search-label { max-width:600px; }
.icsp-count { color:#526158; font-size:.92em; }
.icsp-item { margin:12px 0; border:1px solid var(--icsp-border); border-radius:8px; overflow:hidden; background:#fff; }
.icsp-item summary { display:flex; align-items:center; gap:14px; list-style:none; cursor:pointer; padding:18px; color:var(--icsp-green); background:var(--icsp-pale); font-weight:650; line-height:1.45; }
.icsp-item summary::-webkit-details-marker { display:none; }
.icsp-number { flex:0 0 auto; min-width:36px; padding:5px 8px; border-radius:4px; background:var(--icsp-green); color:#fff; text-align:center; font-variant-numeric:tabular-nums; }
.icsp-title { flex:1; min-width:0; overflow-wrap:anywhere; }
.icsp-toggle { flex:0 0 auto; font-size:24px; }
.icsp-item[open] .icsp-toggle { transform:rotate(45deg); }
.icsp-details { padding:22px; overflow-wrap:anywhere; }
.icsp-names { padding-left:20px; margin:12px 0; }
.icsp-names li { margin:8px 0; }
.icsp-names sup { margin:0 6px 0 2px; }
.icsp-affiliations { padding-left:24px; font-size:.95em; color:#46574c; }
.icsp-description { overflow-wrap:anywhere; }
.icsp-description img { max-width:100%; height:auto; }
.icsp-description table { display:block; max-width:100%; overflow-x:auto; }
.icsp-kicker { color:var(--icsp-green); font-weight:700; }
.icsp-setup { padding:18px; border:1px solid #bbb; background:#fff; margin:20px 0; }
@media(max-width:600px) {
  .icsp-manager { padding:14px; border-radius:6px; }
  .icsp-item summary { padding:14px 12px; gap:9px; font-size:16px; }
  .icsp-details { padding:16px 12px; }
  .icsp-actions { align-items:stretch; flex-direction:column; }
  .icsp-actions button,.icsp-export button { width:100%; }
  .icsp-names a { display:block; }
}
