:root{
  --navy:#071d49;
  --blue:#0b5ed7;
  --cyan:#25bde2;
  --cyan-light:#7ee7ff;
  --ink:#10233e;
  --muted:#667b91;
  --bg:#f4f8fc;
  --panel:#ffffff;
  --line:#dce8f3;
  --success:#147d56;
  --danger:#b42318;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--blue);text-decoration:none}
.site-header{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:8px 4vw;position:sticky;top:0;z-index:10}
.brand img{height:62px;max-width:420px;object-fit:contain;object-position:left center}
.site-header nav{display:flex;align-items:center;gap:20px;font-weight:650}
.container{width:min(1180px,92vw);margin:34px auto;min-height:calc(100vh - 180px)}
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding:58px 0}
.hero h1{font-size:52px;line-height:1.05;color:var(--navy);margin:0 0 18px}
.hero p{font-size:20px;line-height:1.65;color:var(--muted)}
.hero-card,.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(7,29,73,.06);padding:28px}
.gradient-card{background:linear-gradient(135deg,var(--navy),var(--blue) 58%,var(--cyan));color:#fff}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.btn{display:inline-block;border:0;border-radius:9px;padding:12px 18px;background:linear-gradient(90deg,var(--blue),var(--cyan));color:#fff!important;font-weight:750;cursor:pointer}
.btn.secondary{background:#fff;color:var(--blue)!important;border:1px solid #b8d4ee}
.btn.small{padding:9px 14px}
form{max-width:720px}
.form-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 10px 30px rgba(7,29,73,.05)}
label{display:block;font-weight:700;margin:15px 0 7px}
input,textarea,select{width:100%;border:1px solid #bfd0df;border-radius:8px;padding:12px 13px;font:inherit;background:#fff}
input:focus,textarea:focus,select:focus{outline:2px solid rgba(37,189,226,.25);border-color:var(--cyan)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.flash{padding:13px 16px;border-radius:8px;margin-bottom:18px}
.flash.success{background:#eaf8f2;color:var(--success)}
.flash.error{background:#fff0ee;color:var(--danger)}
.org-pill{padding:7px 10px;background:#edf7fc;border:1px solid #ccebf7;border-radius:999px;color:var(--navy);font-size:13px}
.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.page-head h1{margin:0;color:var(--navy)}
.project-list{display:grid;gap:14px}
.project-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
.muted{color:var(--muted)}
.site-footer{border-top:1px solid var(--line);background:#fff;padding:22px 4vw;display:flex;justify-content:space-between;color:var(--muted);font-size:13px}
@media(max-width:800px){
  .hero,.grid,.row{grid-template-columns:1fr}
  .hero h1{font-size:40px}
  .site-header{height:auto;align-items:flex-start;gap:15px;flex-direction:column}
  .site-header nav{flex-wrap:wrap}
  .brand img{max-width:90vw;height:50px}
}

/* ===== COD SEARCH / STRUCTURE PAGES ===== */
.cod-search-card{max-width:none}
.advanced-search{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
.advanced-search summary{cursor:pointer;color:var(--blue);font-weight:750;margin-bottom:10px}
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.check{display:flex;align-items:center;gap:8px;font-weight:600;margin:0}
.check input{width:auto}
.search-actions{display:flex;gap:10px;margin-top:20px}
.results-head{display:flex;justify-content:space-between;align-items:end;margin:28px 0 14px}
.results-head h2{margin:0;color:var(--navy)}
.cod-results{display:grid;gap:14px}
.cod-result-card{
  display:flex;
  justify-content:space-between;
  gap:22px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px;
  box-shadow:0 5px 20px rgba(7,29,73,.035)
}
.cod-result-card h3{margin:5px 0;color:var(--navy)}
.cod-id{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue)
}
.formula,.structure-formula{font-size:18px;font-weight:750;color:#24415f}
.metadata-line{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:10px;
  color:#536a80;
  font-size:14px
}
.cod-result-actions{display:flex;gap:8px;flex:0 0 auto}
.small-text{font-size:13px;margin-top:8px}
.page-head-actions{display:flex;gap:9px;align-items:center}
.structure-layout{display:grid;grid-template-columns:1.6fr .8fr;gap:20px;margin-bottom:20px}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden
}
.detail-grid>div{background:#fff;padding:15px}
.detail-grid span,.detail-list span{
  display:block;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:5px
}
.detail-grid strong{font-size:15px;color:var(--navy)}
.detail-list{display:grid;gap:14px}
.detail-list>div{border-bottom:1px solid var(--line);padding-bottom:12px}
.publication-card{margin-bottom:20px}
.viewer-placeholder{
  min-height:250px;
  display:grid;
  place-items:center;
  text-align:center;
  background:linear-gradient(180deg,#fff,#f7fbfe)
}
.viewer-icon{font-size:64px;color:var(--cyan);line-height:1}
.project-structure-link{color:inherit}
.project-structure-link:hover{border-color:#a9d8ee;box-shadow:0 8px 24px rgba(7,29,73,.08)}
.cod-result-arrow{font-size:28px;color:var(--cyan)}

@media(max-width:800px){
  .check-grid,.detail-grid,.structure-layout{grid-template-columns:1fr}
  .cod-result-card{align-items:flex-start;flex-direction:column}
  .cod-result-actions{width:100%;flex-wrap:wrap}
  .page-head{align-items:flex-start;gap:15px;flex-direction:column}
}

/* ===== INTERACTIVE 3D CRYSTAL VIEWER ===== */
.crystal-viewer-card{
  padding:0;
  overflow:hidden;
  margin-bottom:20px
}
.viewer-toolbar{
  min-height:62px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  padding:11px 16px;
  border-bottom:1px solid var(--line);
  background:#fff
}
.viewer-toolbar-group{
  display:flex;
  align-items:center;
  gap:8px
}
.viewer-toolbar-group label{
  margin:0;
  font-size:13px;
  color:var(--muted)
}
.viewer-toolbar select{
  width:auto;
  min-width:145px;
  padding:8px 32px 8px 10px
}
.viewer-toggle{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0;
  font-size:13px;
  color:var(--ink);
  cursor:pointer
}
.viewer-toggle input{
  width:auto;
  margin:0
}
.viewer-tool-btn{
  border:1px solid #b9d5e8;
  background:#fff;
  color:var(--blue);
  border-radius:8px;
  padding:8px 11px;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer
}
.viewer-tool-btn:hover{
  background:#f0f8fc;
  border-color:var(--cyan)
}
.viewer-stage-wrap{
  height:520px;
  min-height:420px;
  position:relative;
  background:#f8fbfe
}
.crystal-viewer-stage{
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.viewer-loading,
.viewer-error{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:12px;
  text-align:center;
  color:var(--muted);
  background:#f8fbfe
}
.viewer-loading[hidden],
.viewer-error[hidden]{
  display:none
}
.viewer-error strong{
  color:var(--danger);
  font-size:18px
}
.viewer-spinner{
  width:36px;
  height:36px;
  border:4px solid #d9e9f3;
  border-top-color:var(--cyan);
  border-radius:50%;
  animation:mc-spin .8s linear infinite
}
@keyframes mc-spin{to{transform:rotate(360deg)}}
.viewer-help{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 16px;
  border-top:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:12px
}
.viewer-help span{
  color:#7790a7
}
@media(max-width:800px){
  .viewer-stage-wrap{height:420px;min-height:360px}
  .viewer-toolbar{align-items:flex-start}
  .viewer-help{flex-direction:column;gap:4px}
}
