*{box-sizing:border-box}
:root{color-scheme:light;--ink:#17283b;--muted:#516275;--accent:#09685f;--line:#d7e0e7;--bg:#eef3f6}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,sans-serif}
header{background:#12273a;color:white;padding:1rem max(1rem,calc((100% - 1150px)/2));display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
header a{color:white}.brand{font-size:1.2rem;text-decoration:none;white-space:nowrap}.brand b{color:#82ded0}.brand span{font-size:.65rem;margin-left:.5rem;letter-spacing:.15em;color:#cae3eb}
nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}nav form{margin:0}header .ghost{color:white;border-color:#849baa}
main{max-width:1182px;margin:auto;padding:2.3rem 1rem 4rem}.login{max-width:490px;padding-top:clamp(2rem,9vw,7rem)}
.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:clamp(1rem,3vw,1.8rem);margin-bottom:1rem}
.heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.heading p{margin:.2rem 0}
.eyebrow{font-size:.73rem;font-weight:750;letter-spacing:.14em;color:var(--accent)}
h1,h2{line-height:1.15;margin:.4rem 0 .65rem;overflow-wrap:anywhere}h1{font-size:clamp(1.85rem,4vw,2.6rem)}h2{font-size:1.2rem}p{color:var(--muted)}
label{display:grid;gap:.3rem;margin-bottom:1rem;font-weight:650;font-size:.9rem;min-width:0}
input,textarea,select{font:inherit;color:var(--ink);width:100%;min-width:0;border:1px solid #aab9c5;background:#fff;border-radius:6px;padding:.55rem .65rem}
textarea{resize:vertical}a{color:#075f57;text-underline-offset:3px}
button,.button{display:inline-block;background:var(--accent);color:white;border:1px solid transparent;border-radius:6px;padding:.6rem .9rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap}
.ghost{background:transparent;color:var(--accent);border-color:#aac1c6}
:focus-visible{outline:3px solid #2b82d3;outline-offset:3px}
.tabs{gap:.5rem;margin-bottom:1rem}.tabs a{padding:.5rem .85rem;border-radius:6px;background:#fff;border:1px solid var(--line);font-weight:700;text-decoration:none}.tabs a[aria-current]{background:var(--accent);color:white}.tabs span{margin-left:.3rem;font-size:.8rem}
.filters{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.filters label{margin:0;flex:1 1 180px}
.table{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:.65rem;border-bottom:1px solid var(--line)}th{font-size:.8rem;background:#eef3f6}td:first-child{font-weight:700}
.fields,.accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:0 1rem}.fields label:has(textarea){grid-column:1/-1}
.narrow{max-width:570px}.accounts details{margin-bottom:1rem}.accounts details form{margin-top:.7rem}
.notice,.error{border:1px solid #b0d8cc;padding:.75rem;border-radius:6px;background:#e5f5ef;color:#104c3c}.error{background:#fff1ed;border-color:#efbbad;color:#8a2915}.empty{padding:1rem 0}.pagination{display:flex;gap:1rem;margin-top:1rem;font-size:.9rem}
@media(max-width:540px){header nav{gap:.65rem}main{padding-top:1.5rem}.tabs a{font-size:.85rem}}
.signin-page{background:#07070a;color:#fff;min-height:100vh}
.signin-page .login{max-width:1080px;padding:clamp(2rem,10vh,7rem) 1rem 3rem}
.signin-layout{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid #41404c;border-radius:18px;overflow:hidden}
.signin-brand{display:grid;place-items:center;background:#000;padding:1.25rem}
.signin-brand img{display:block;width:min(100%,410px);height:auto}
.signin-layout .panel{background:#15151c;border:0;border-radius:0;margin:0;padding:clamp(1.5rem,5vw,3.5rem);align-content:center}
.signin-layout h1{letter-spacing:-.045em;font-size:clamp(2.25rem,5vw,3.8rem)}
.signin-layout p{color:#c5c4cf}
.signin-layout .eyebrow,.signin-layout a{color:#9fdfec}
.signin-layout input{background:#09090e;color:white;border-color:#676575;min-height:45px}
.signin-layout button{width:100%;background:linear-gradient(100deg,#c4a6e0,#83d8ea 50%,#f3c9be);color:#15101c;border:0;min-height:45px}
.signin-fields{border:0;padding:0;margin:0;min-width:0}
.signin-fields :disabled{opacity:.65;cursor:not-allowed}
@media(max-width:680px){.signin-layout{grid-template-columns:1fr}.signin-brand img{width:180px}.signin-brand{padding:0}}

.crm-page {
  color-scheme: dark;
  --ink: #f5f4f9;
  --muted: #c5c4cf;
  --accent: #9fdfec;
  --line: #41404c;
  --bg: #07070a;
}
.crm-page header {
  background: #000;
  border-bottom: 1px solid var(--line);
  padding-block: .35rem;
}
.crm-page .brand { display: flex; align-items: center; gap: .6rem; }
.crm-page .brand img { display: block; }
.crm-page .brand span { margin: 0; color: var(--muted); }
.crm-page header nav > a {
  color: var(--ink);
  font-size: .8rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}
.crm-page header nav > a:hover { text-decoration: underline; }
.crm-page h1 { letter-spacing: -.04em; }
.crm-page .panel { background: #15151c; }
.crm-page input,
.crm-page textarea,
.crm-page select { background: #09090e; border-color: #676575; }
.crm-page a { color: var(--accent); }
.crm-page th { background: #20202b; color: var(--ink); }
.crm-page .tabs a { background: #15151c; }
.crm-page button:not(.ghost),
.crm-page .button,
.crm-page .tabs a[aria-current] {
  background: linear-gradient(100deg, #c4a6e0, #83d8ea 50%, #f3c9be);
  color: #15101c;
}
.crm-page .ghost { color: var(--ink); border-color: #676575; }
.crm-page :focus-visible { outline-color: var(--accent); }

.crm-page .fields {
  align-items: start;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.crm-page .fields input,
.crm-page .fields select {
  display: block;
  min-height: 2.75rem;
  max-width: 100%;
}
.crm-page .fields input::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: left;
}
.crm-page .contact-details { margin: 0; }
.contact-details > div { min-width: 0; margin-bottom: 1rem; }
.contact-details dt { margin-bottom: .3rem; font-weight: 650; font-size: .9rem; }
.contact-details dd {
  margin: 0;
  min-height: 2.75rem;
  padding: .55rem .65rem;
  border: 1px solid #676575;
  border-radius: 6px;
  background: #09090e;
  font-size: .9rem;
  font-weight: 650;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.contact-details .contact-notes { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .crm-page .fields { grid-template-columns: minmax(0, 1fr); }
}

.request-list { display: grid; gap: .85rem; }
.request-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #0e0e15;
}
.request-card h3 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.request-card p { margin: .25rem 0 0; overflow-wrap: anywhere; }
.request-actions { display: grid; gap: .75rem; }
.request-actions form,
.request-buttons,
.contact-request-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
}
.request-kind { min-width: 6rem; font-size: .85rem; font-weight: 650; }
.request-buttons button { font-size: .85rem; }
.contact-request-actions:not(:empty) { margin-bottom: 1rem; }
.contact-request-actions p { margin: 0; }

.contact-section + .contact-section {
  border-top: 1px solid var(--line);
  padding-top: 1.25rem;
  margin-top: .35rem;
}
.contact-section h2 { margin: 0 0 .85rem; }
