:root{
  --bg:#0b1020;
  --panel:#111733;
  --panel-2:#151c3d;
  --text:#e6ecff;
  --muted:#aeb9df;
  --accent:#5b8cff;
  --success:#0d8a5f;
  --error:#8b2530;
  --loading:#334155;
  --border:#22305f;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  background:linear-gradient(180deg,#070b16,#0b1020 40%,#0b1020);
  color:var(--text);
}
.page-shell{
  max-width:1320px;
  margin:0 auto;
  padding:24px;
}
.hero{margin-bottom:24px;}
.eyebrow{
  margin:0 0 8px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  font-size:12px;
}
.hero h1{margin:0 0 10px; font-size:38px;}
.hero-copy{margin:0; color:var(--muted); max-width:760px;}
.layout-grid{
  display:grid;
  grid-template-columns:minmax(320px, 440px) 1fr;
  gap:24px;
  align-items:start;
}
.panel{
  background:rgba(17,23,51,.96);
  border:1px solid var(--border);
  border-radius:16px;
  padding:20px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
}
.field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.field-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--muted);
  font-size:14px;
  position:relative;
}
.field-grid label span{color:var(--text); font-weight:600;}
.field-span-2{grid-column:1 / -1;}
input,select,button{font:inherit;}
input,select{
  width:100%;
  background:#0d1430;
  color:var(--text);
  border:1px solid #2a3566;
  border-radius:10px;
  padding:10px 12px;
}
input::placeholder{color:#8ea0d5}
.button-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
button{
  border:0;
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
  background:var(--accent);
  color:white;
  font-weight:700;
}
button.secondary{background:#334155}
button#use-location{background:#6f46d9}
.small-note{margin:14px 0 0; color:var(--muted); font-size:13px;}
.location-field-wrap{position:relative;}
.location-suggestions{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  margin-top:6px;
  background:#0b1020;
  border:1px solid #24325f;
  border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.4);
  overflow:hidden;
  z-index:9999;
}
.location-suggestion{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  padding:12px 14px;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.05);
  border-radius:0;
  text-align:left;
  color:var(--text);
  transition:background .2s ease;
}
.location-suggestion:last-child{border-bottom:0;}
.location-suggestion:hover,
.location-suggestion.active{background:rgba(255,255,255,.08);}
.location-suggestion.empty{
  cursor:default;
  color:var(--muted);
}
.location-suggestion-primary{
  font-size:14px;
  font-weight:700;
  color:#fff;
}
.location-suggestion-secondary{
  font-size:12px;
  font-weight:400;
  color:#9ca3af;
}
.field-help{margin-top:6px; color:var(--muted); font-size:12px; line-height:1.4;}
.results-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.tier-badge{
  background:#1d2753;
  border:1px solid #32448b;
  color:#dce6ff;
  padding:6px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
}
.status{
  margin:16px 0;
  padding:12px 14px;
  border-radius:12px;
  background:#10172f;
  border:1px solid #25335e;
}
.status.success{background:rgba(13,138,95,.15); border-color:rgba(13,138,95,.45)}
.status.error{background:rgba(139,37,48,.16); border-color:rgba(139,37,48,.45)}
.status.loading{background:rgba(51,65,85,.35); border-color:rgba(116,134,158,.5)}
.agenda-card{
  background:var(--panel-2);
  border:1px solid #24325f;
  border-radius:14px;
  padding:16px;
  margin-bottom:14px;
}
.agenda-card h3{margin:0 0 12px;}
.results-actions{
  display:flex;
  gap:10px;
  margin-bottom:14px;
}
.agenda-summary-card{padding-bottom:12px;}
.summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
.compact-grid .summary-item{min-height:auto}
.summary-item{
  background:#10172f;
  border:1px solid #24325f;
  border-radius:12px;
  padding:12px;
  min-height:74px;
}
.summary-label{
  display:block;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:6px;
}
.summary-value{
  display:block;
  color:var(--text);
  font-weight:700;
  line-height:1.35;
}
.summary-meta,
.tile-footer,
.planet-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.summary-meta{margin-top:12px;}
.meta-pill,
.planet-pill{
  background:#10172f;
  border:1px solid #2a3566;
  border-radius:999px;
  padding:7px 10px;
  font-size:13px;
  color:#dce6ff;
}
.planet-pill{display:flex; gap:8px; align-items:center;}
.section-header{margin:6px 0 10px;}
.section-header h3{margin:0;}
.target-grid,
.schedule-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
}
.target-tile{
  margin-bottom:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.tile-header h3{margin:0; font-size:21px;}
.tile-subtitle{color:var(--muted); font-size:14px; margin-top:4px;}
.tile-details{
  display:grid;
  gap:10px;
}
.tile-row{
  background:#10172f;
  border:1px solid #24325f;
  border-radius:12px;
  padding:10px 12px;
}
.tile-label{
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:6px;
}
.tile-value{line-height:1.45; color:#eef3ff;}
.schedule-block-card{
  background:#10172f;
  border:1px solid #24325f;
  border-radius:14px;
  padding:14px;
}
.schedule-block-card h4{margin:0 0 10px;}
.schedule-block-card ul{margin:0; padding-left:18px;}
.schedule-block-card li{margin-bottom:8px;}
.bonus-tile{opacity:.92;}
.only-checklist-print{display:none;}
.full-print-only{display:none;}
.checklist-print-wrap{display:none;}

@media (max-width: 980px){
  .layout-grid{grid-template-columns:1fr;}
}
@media print{
  @page{margin:0.45in;}
  body{background:white !important;color:black !important;font-size:11px}
  .page-shell{max-width:none;padding:0}
  .layout-grid{display:block}
  .panel,.agenda-card,.summary-item,.tile-row,.schedule-block-card{box-shadow:none;border:1px solid #ccc;background:white !important;color:black !important}
  .input-panel,.hero,.small-note,.tier-badge,#status,.results-header{display:none !important}
  .results-panel{width:100%;border:0;padding:0;background:white !important;box-shadow:none}
  .results-actions{display:none !important}
  .meta-pill,.planet-pill{background:white !important;color:black !important;border:1px solid #bbb}
  .agenda-card,.target-tile,.summary-item,.tile-row,.schedule-block-card,.checklist-group{page-break-inside:avoid}
  .target-grid,.schedule-grid{display:block}
  .target-tile,.schedule-block-card,.agenda-card{margin-bottom:12px}

  body.print-full-mode .no-full-print{display:none !important}
  body.print-full-mode .full-print-only{display:block !important}
  body.print-full-mode .agenda-summary-card{
    padding:0 0 8px !important;
    margin:0 0 8px !important;
    border:0 !important;
    border-radius:0 !important;
    background:white !important;
    box-shadow:none !important;
    border-bottom:2px solid #000 !important;
  }
  body.print-full-mode .agenda-summary-card h3{
    margin:0 0 6px !important;
    font-size:16px !important;
  }
  body.print-full-mode .summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px 10px;
  }
  body.print-full-mode .summary-item{
    padding:0 !important;
    min-height:auto !important;
    border:0 !important;
    border-radius:0 !important;
    background:white !important;
  }
  body.print-full-mode .summary-label{
    font-size:9px !important;
    margin-bottom:1px !important;
    color:#444 !important;
  }
  body.print-full-mode .summary-value{
    font-size:11px !important;
    line-height:1.15 !important;
    color:#000 !important;
  }
  body.print-full-mode .full-print-section{
    display:block !important;
    margin:0 0 12px !important;
    page-break-inside:auto;
  }
  body.print-full-mode .full-print-title{
    margin:0 0 6px;
    padding-bottom:4px;
    border-bottom:1px solid #000;
    font-size:15px;
  }
  body.print-full-mode .full-print-empty{
    margin:0 0 6px;
    font-size:10px;
  }
  body.print-full-mode .full-print-group{margin:0 0 10px;}
  body.print-full-mode .checklist-group-title{
    font-weight:700;
    font-size:12px;
    margin:0 0 4px;
  }
  body.print-full-mode .full-print-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }
  body.print-full-mode .full-print-table th,
  body.print-full-mode .full-print-table td{
    border:1px solid #777;
    padding:4px 5px;
    vertical-align:top;
    text-align:left;
    background:white !important;
    font-size:10px;
    line-height:1.18;
  }
  body.print-full-mode .full-print-table th{
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.03em;
  }
  body.print-full-mode .full-print-table .col-object{width:25%;}
  body.print-full-mode .full-print-table .col-type{width:10%;}
  body.print-full-mode .full-print-table .col-best{width:8%;}
  body.print-full-mode .full-print-table .col-location{width:18%;}
  body.print-full-mode .full-print-table .col-difficulty{width:10%;}
  body.print-full-mode .full-print-table .col-equipment{width:14%;}
  body.print-full-mode .full-print-table .col-why{width:8%;}
  body.print-full-mode .full-print-table .col-tip{width:7%;}

  body.print-checklist-mode .no-checklist-print{display:none !important}
  body.print-checklist-mode .only-checklist-print{display:block !important}
  body.print-checklist-mode .checklist-print-wrap{display:block !important}

  body.print-checklist-mode .agenda-summary-card{
    padding:0 0 8px !important;
    margin:0 0 8px !important;
    border:0 !important;
    border-radius:0 !important;
    background:white !important;
    box-shadow:none !important;
    border-bottom:2px solid #000 !important;
  }
  body.print-checklist-mode .agenda-summary-card h3{
    margin:0 0 6px !important;
    font-size:16px !important;
  }
  body.print-checklist-mode .summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px 10px;
  }
  body.print-checklist-mode .summary-item{
    padding:0 !important;
    min-height:auto !important;
    border:0 !important;
    border-radius:0 !important;
    background:white !important;
  }
  body.print-checklist-mode .summary-label{
    font-size:9px !important;
    margin-bottom:1px !important;
    color:#444 !important;
  }
  body.print-checklist-mode .summary-value{
    font-size:11px !important;
    line-height:1.15 !important;
    color:#000 !important;
  }

  body.print-checklist-mode .checklist-print-title{
    margin:0 0 6px;
    padding-bottom:4px;
    border-bottom:1px solid #000;
    font-size:15px;
  }
  body.print-checklist-mode .checklist-group{
    margin:0 0 10px;
  }
  body.print-checklist-mode .checklist-group-title{
    font-weight:700;
    font-size:12px;
    margin:0 0 4px;
  }
  body.print-checklist-mode .checklist-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }
  body.print-checklist-mode .checklist-table th,
  body.print-checklist-mode .checklist-table td{
    border:1px solid #777;
    padding:4px 5px;
    vertical-align:top;
    text-align:left;
    background:white !important;
  }
  body.print-checklist-mode .checklist-table th{
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.03em;
  }
  body.print-checklist-mode .checklist-table td{
    font-size:10px;
    line-height:1.15;
  }
  body.print-checklist-mode .checklist-table .col-viewed,
  body.print-checklist-mode .check-col{
    width:7%;
    text-align:center;
  }
  body.print-checklist-mode .checklist-table .col-object{width:24%;}
  body.print-checklist-mode .checklist-table .col-type{width:12%;}
  body.print-checklist-mode .checklist-table .col-location{width:25%;}
  body.print-checklist-mode .checklist-table .col-equipment{width:14%;}
  body.print-checklist-mode .checklist-table .col-notes{width:18%;}
  body.print-checklist-mode .print-check-box{
    display:inline-block;
    width:10px;
    height:10px;
    border:1px solid #000;
    vertical-align:middle;
    margin-top:2px;
  }
  body.print-checklist-mode .checklist-object-name{
    font-weight:700;
  }
  body.print-checklist-mode .checklist-object-time{
    margin-top:2px;
    font-size:9px;
    color:#333 !important;
  }
  body.print-checklist-mode .notes-space{
    height:12px;
  }
}

.location-field-wrap{position:relative;}
.field-help{
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
.location-suggestions{
  position:absolute;
  top:calc(100% - 6px);
  left:0;
  right:0;
  z-index:25;
  background:#0d1430;
  border:1px solid #2a3566;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 16px 36px rgba(0,0,0,.35);
}
.location-suggestion{
  width:100%;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text);
  padding:12px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:4px;
  font-weight:400;
}
.location-suggestion strong{font-size:14px;}
.location-suggestion span{font-size:12px;color:var(--muted);text-transform:capitalize;}
.location-suggestion:hover,
.location-suggestion.active{background:#16204a;}
.location-suggestion.empty{cursor:default;opacity:.85;}
@media print{
  .location-suggestions,.field-help{display:none !important;}
}
