@font-face {
  font-family: 'HamburgSymbols';
  src: url('fonts/HamburgSymbols.ttf') format('truetype'), url('HamburgSymbols.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
:root { --green:#014712; --gold:#BE9843; --blue:#154670; --orange:#EE8400; }
* { box-sizing: border-box; }
body { margin:0; font-family: Arial, sans-serif; background:#f7f7f5; color:#111; }
header { background:var(--green); color:white; padding:18px 24px; }
h1 { margin:0; font-size:24px; }
main { padding:18px; }
.hamb { font-family:'HamburgSymbols', serif; font-size:1.35em; line-height:1; vertical-align:-0.08em; }
.panel { background:#fff; border:2px solid var(--green); padding:14px; margin-bottom:18px; display:grid; gap:12px; }
.panel input[type="date"] { padding:8px; border:1px solid #aaa; }
.object-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:6px 12px; }
button { background:var(--green); color:#fff; border:0; padding:10px 14px; font-weight:bold; cursor:pointer; }
button + button { background:var(--gold); color:#111; }
.table-wrap { overflow:auto; background:#fff; border:1px solid #bbb; }
table { width:100%; border-collapse:collapse; min-width:1100px; }
th { background:var(--gold); color:#111; text-align:left; }
th, td { border:1px solid #aaa; padding:8px; vertical-align:top; }
tbody tr:nth-child(even) { background:#fbfbfb; }
.body-name { font-weight:bold; white-space:nowrap; }
small { color:#333; }
.error { background:#fff3f3; border:2px solid #9b0000; padding:12px; }
@media print {
  body { background:white; }
  header { background:white; color:var(--green); border-bottom:2px solid var(--green); }
  .panel { display:none; }
  main { padding:0; }
  .table-wrap { overflow:visible; border:0; }
  table { min-width:0; font-size:9pt; }
  th { background:#fff !important; color:#000; border-bottom:2px solid #000; }
}

/* v7 dashboard option panels */
.option-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:14px;
    margin-bottom:12px;
}
fieldset{
    border:2px solid #014712;
    padding:12px;
    margin:0;
    background:#fff;
}
legend{font-weight:bold;color:#014712;padding:0 6px;}
fieldset label{display:block;margin:8px 0;}
fieldset input[type="text"], fieldset input[type="date"], fieldset input[type="time"]{
    width:100%;box-sizing:border-box;padding:7px;border:2px solid #BE9843;background:#fff;
}
.lookup-row{display:flex;gap:8px;align-items:center;}
.lookup-row input{flex:1;}
.lookup-row button{padding:8px 12px;}
.asteroid-result-list{display:none;margin-top:8px;border:1px solid #014712;max-height:210px;overflow:auto;background:#fff;}
.asteroid-result-item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #ddd;background:#fff;color:#111;padding:8px 10px;font-weight:normal;cursor:pointer;}
.asteroid-result-item:hover{background:#BE9843;color:#fff;}
.asteroid-code{font-weight:bold;color:#014712;}
.asteroid-result-item:hover .asteroid-code{color:#fff;}
code{background:#f6f0dd;padding:1px 4px;border:1px solid #BE9843;}

.calendar-export-bar {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 12px 0;
}
.cycle-row { cursor: pointer; }
.cycle-row:hover td { background: #fff8e8; }
@media print {
    .calendar-export-bar { display: none !important; }
}

/* v11 calculation progress indicator */
.calc-progress-box {
  margin: 14px 0;
  padding: 12px;
  border: 2px solid #014712;
  background: #fff;
  max-width: 760px;
}
.calc-progress-title {
  color: #014712;
  font-weight: bold;
  font-size: 16px;
  margin-bottom: 6px;
}
.calc-progress-sub,
.calc-progress-note {
  font-size: 13px;
  color: #333;
  margin: 4px 0;
}
.calc-progress-track {
  height: 20px;
  border: 2px solid #014712;
  background: #fff;
  overflow: hidden;
  margin: 8px 0;
}
.calc-progress-bar {
  height: 100%;
  width: 42%;
  background: linear-gradient(90deg, #014712, #BE9843, #014712);
  animation: snmProgressSlide 1.15s linear infinite;
}
@keyframes snmProgressSlide {
  0% { transform: translateX(-105%); }
  100% { transform: translateX(245%); }
}
button:disabled {
  opacity: .75;
  cursor: wait;
}

/* v24 glyph labels */
.planet-label, .sign-label { white-space: nowrap; }
.planet-glyph { font-size: 1.2em; margin-right: 2px; }
.sign-glyph { font-size: 1.2em; margin-right: 2px; }
