*{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:'Courier New',Courier,monospace;
  font-size:14px;
  line-height:1.65;
  color:#111;
  background:#f9f8ef;
  max-width:680px;
  margin:0 auto;
  padding:1.5rem 1.5rem 4rem;
}

.collective-header{
  display:flex;
  align-items:center;
  gap:.85rem;
  margin-bottom:.35rem;
}
.collective-logo{
  width:20px;
  height:20px;
  object-fit:cover;
  flex-shrink:0;
  border:1px solid #ccc;
  background:#f4f4ea;
  margin-right: 0.35em;
}
.collective-name{
  font-size:0.9rem;
  font-weight:bold;
  letter-spacing:.05em;
  color:#111;
}

.site-banner{
  display:flex;
  align-items:center;
  margin-bottom:.6rem;
  padding:0 0 .35rem;
  border-bottom:1px solid #e8e7c4;
  font-size:.75rem;
  color:#999;
  letter-spacing:.08em;
}
.site-banner strong{
  color:#555;
  font-size:.9rem;
  letter-spacing:.1em;
}

h1{
  font-size:1.1rem;
  font-weight:bold;
  margin-bottom:1.25rem;
  padding-bottom:.35rem;
  border-bottom:1px solid #deda93;
  letter-spacing:.02em;
}
h2{
  font-size:.85rem;
  font-weight:bold;
  margin:1.75rem 0 .6rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#555;
}

p{margin-bottom:.75rem}
p:last-child{margin-bottom:0}
small{font-size:.82em;color:#777;font-weight:normal}
hr{border:none;border-top:1px solid #ccc;margin:1.5rem 0}

a{color:#00c;text-decoration:underline}
a:visited{color:#551a8b}
a:hover{color:#00a}

label{
  display:block;
  font-weight:bold;
  font-size:.85rem;
  margin-bottom:.2rem;
  color:#333;
}
input[type=text],
input[type=password],
input[type=email],
textarea{
  display:block;
  width:100%;
  padding:.35rem .45rem;
  margin-bottom:1rem;
  border:1px solid #999;
  background:#fff;
  font-family:inherit;
  font-size:13px;
  color:#111;
}
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
textarea:focus{
  outline:2px solid #333;
  outline-offset:0;
  border-color:#333;
}

.field-hint{
  display:block;
  font-size:.78rem;
  color:#777;
  margin-top:-.75rem;
  margin-bottom:1rem;
}
textarea{min-height:90px;resize:vertical}
button,
input[type=submit]{
  font-family:inherit;
  font-size:13px;
  cursor:pointer;
  padding:.25rem .8rem;
  color:#111;
  background:#d4d0c8;
  border:2px solid;
  border-color:#fff #888 #888 #fff;
}
button:hover,
input[type=submit]:hover{background:#c8c4bc}
button:active,
input[type=submit]:active{border-color:#888 #fff #fff #888}

.nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
  padding:.2rem 0 .4rem;
  border-bottom:1px dotted #bbb;
  font-size:.85rem;
  gap:.1rem;
}
.nav a{
  color:#00c;
  text-decoration:none;
  padding:.1rem .35rem;
}
.nav a:first-child{padding-left:0}
.nav a:hover{text-decoration:underline}
.nav form{display:inline-flex;align-items:center}
.nav button{
  background:none;
  border:none;
  color:#777;
  padding:.1rem .35rem;
  font-family:inherit;
  font-size:.85rem;
  cursor:pointer;
}
.nav button:hover{color:#111;background:none}
.nav button:active{border:none}
.nav > * + *::before{
  content:'|';
  color:#ccc;
  margin-right:.2rem;
  pointer-events:none;
}

table{
  width:100%;
  border-collapse:collapse;
  margin-bottom:1.25rem;
  font-size:.85rem;
}
th,td{
  text-align:left;
  padding:.3rem .5rem;
  border:1px solid #ccc;
}
th{background:#edeccc;font-weight:bold}
tr:nth-child(even) td{background:#f4f4ea}
.note{
  color:#777;
  max-width:160px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.actions form{display:inline;margin-right:.2rem}

.err{
  margin-bottom:1rem;
  padding:.3rem .5rem;
  border-left:3px solid #c00;
  color:#c00;
  font-size:.85rem;
  background:#fff8f8;
}
.ok{
  margin-bottom:1rem;
  padding:.3rem .5rem;
  border-left:3px solid #080;
  color:#060;
  font-size:.85rem;
  background:#f4fff4;
}
.muted{color:#777;font-size:.85rem;margin-bottom:1rem}

code{
  font-family:inherit;
  background:#e8e8d8;
  border:1px solid #ccc;
  padding:.05rem .3rem;
  font-size:.9em;
}

details.user-card{
  margin-bottom:.6rem;
  border:1px solid #bbb;
}
details.user-card > summary{
  padding:.4rem .55rem;
  cursor:pointer;
  background:#e8e8d8;
  font-weight:bold;
  font-size:.85rem;
  list-style:none;
  user-select:none;
}
details.user-card > summary::-webkit-details-marker{display:none}
details.user-card > summary::before{content:'▸  ';color:#999;font-size:.75rem}
details.user-card[open] > summary::before{content:'▾  '}
details.user-card > .card-body{
  padding:.65rem;
  border-top:1px solid #ccc;
}
details.user-card table{margin-top:.65rem;margin-bottom:0}

td details > summary{
  cursor:pointer;
  font-size:.8rem;
  color:#00c;
  list-style:none;
  user-select:none;
}
td details > summary::-webkit-details-marker{display:none}
td details[open] > summary{color:#333}
td details form{
  margin-top:.35rem;
  padding:.35rem;
  background:#f4f4ea;
  border:1px solid #ccc;
}
td details form input[type=password]{
  font-size:12px;
  margin-bottom:.35rem;
}

.dim{color:#777;font-size:.8rem}

.footer-art{
  display:block;
  width:100%;
  max-width:400px;
  height:auto;
  object-fit:cover;
  margin:2.5rem auto 0;
  border:2px solid #deda93;
  background:#f4f4ea;
}

.landing-quote{
  margin:1.5rem 0 1.5rem;
  padding:.55rem 1rem;
  border-left:3px solid #deda93;
  color:#555;
  font-style:italic;
}
.landing-quote cite{
  display:block;
  margin-top:.4rem;
  font-style:normal;
  font-size:.82rem;
  color:#999;
}

.bio-section{margin:.4rem 0 .7rem}
.bio-box{
  background:#fff;
  border:1px solid #999;
  padding:.35rem .45rem;
  font-size:13px;
  font-family:inherit;
  color:#111;
  white-space:pre-wrap;
  word-break:break-word;
  margin-bottom:.4rem;
}
.landing-blurb{
  margin:1.25rem 0;
  color:#333;
  line-height:1.8;
}
.landing-auth{
  text-align:center;
  margin:2.25rem 0 1.5rem;
  letter-spacing:.06em;
}
.landing-auth a{
  color:#111;
  text-decoration:none;
  padding:.25rem .5rem;
  border:1px solid #999;
}
.landing-auth a:hover{
  background:#deda93;
  border-color:#bbb;
}

.svc-card{
  margin-bottom:1.25rem;
  padding:.6rem .75rem;
  border:1px solid #ddd;
  border-left:3px solid #deda93;
  background:#fafae8;
}
.svc-card h3{
  font-size:.9rem;
  font-weight:bold;
  letter-spacing:.04em;
  margin-bottom:.45rem;
  text-transform:uppercase;
}
.svc-desc{
  font-size:.85rem;
  color:#555;
  margin-bottom:.65rem;
  line-height:1.7;
}
.svc-desc p{margin-bottom:.3rem}
.svc-desc p:last-child{margin-bottom:0}
.svc-desc a{color:#00c}

.summary-note{font-weight:normal;color:#999;font-size:.78rem;margin-left:.6em}

.note-edit{margin-bottom:0}
.note-edit>summary{
  cursor:pointer;
  display:inline-block;
  list-style:none;
  user-select:none;
  font-family:inherit;
  font-size:13px;
  padding:.05rem .4rem;
  background:#d4d0c8;
  border:2px solid;
  border-color:#fff #888 #888 #fff;
  color:#111;
}
.note-edit>summary::-webkit-details-marker{display:none}
.note-edit>summary:hover{background:#c8c4bc}
.note-edit[open]>summary{border-color:#888 #fff #fff #888}
.note-edit>form{margin-top:.5rem}
