:root{
  --bg:#F3EDE0; --surface:#FAF6EC; --surface2:#EFE8D8;
  --border:#DAD1BD; --border2:#C9BEA6;
  --text:#22332C; --text2:#22332C; --dim:#4F5E57; --dimmer:#4F5E57;
  --amber:#22332C; --amber-dim:#EFE8D8;
  --green:#2E6E46; --green-dim:#E5F2EA;
  --red:#B3261E; --red-dim:#FBE9E6;
  --blue:#2F6DB5; --purple:#7A4E8A;
  --mono:'Jost','Century Gothic','Futura','Trebuchet MS',sans-serif; --sans:'IBM Plex Sans','Segoe UI','Helvetica Neue',Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;overflow-x:hidden;overflow-y:auto;}

/* HEADER */
.hdr{
  background:#E5F2EA;border-bottom:3px solid #3E8E5A;
  padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex-shrink:0;
}
.hdr-title{font-family:var(--mono);font-size:clamp(15px,4vw,20px);font-weight:700;color:#22332C;letter-spacing:.5px;}
.hdr-title span{color:#2E6E46;font-weight:400;}
.hdr-stats{display:flex;gap:14px;margin-left:auto;}
.hst{font-family:var(--mono);font-size:14px;color:#8A6200;font-weight:600;}
.hst b{color:#22332C;}

/* TOOLBAR */
.toolbar{
  background:var(--surface);border-bottom:2px solid var(--border2);
  padding:6px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;
}
.flt{
  background:var(--surface2);border:1px solid var(--border2);border-radius:3px;
  padding:6px 12px;font-family:var(--mono);font-size:14px;font-weight:700;
  color:var(--dim);cursor:pointer;transition:all .1s;
}
.flt.on{background:#E5F2EA;color:#22332C;border-color:#3E8E5A;}
.flt:hover:not(.on){background:var(--border2);}
.sep{width:1px;height:20px;background:var(--border2);margin:0 4px;}
#srch{
  background:var(--bg);border:1px solid var(--border2);border-radius:3px;
  padding:6px 12px;font-family:var(--mono);font-size:14px;color:var(--text);
  width:180px;outline:none;
}
#srch:focus{border-color:var(--amber);}

/* LAYOUT */
.layout{display:flex;height:calc(100vh - 82px);overflow:hidden;}

/* CHART AREA */
.chart-wrap{flex:1;overflow:auto;min-width:0;position:relative;}

/* STICKY HEADER ROW */
.axis-row{
  display:flex;position:sticky;top:0;z-index:20;
  background:#8CC4A0;border-bottom:3px solid #3E8E5A;
  height:28px;flex-shrink:0;
}
.axis-label{
  width:var(--label);flex-shrink:0;
  font-family:var(--mono);font-size:13px;font-weight:900;
  color:#22332C;letter-spacing:.8px;text-transform:uppercase;
  padding:0 10px;display:flex;align-items:center;
  border-right:2px solid rgba(255,255,255,0.25);
}
.axis-track{flex:1;position:relative;}

/* TICK MARKS */
.tick-line{position:absolute;top:0;bottom:0;width:1px;background:rgba(200,180,140,.3);}
.decade-tick{background:rgba(200,180,140,.6);}
.tick-label{
  position:absolute;top:4px;
  font-family:var(--mono);font-size:11px;color:#2E6E46;font-weight:700;
  transform:translateX(-50%);
  pointer-events:none;white-space:nowrap;
}
.decade-label{color:#8A6200;font-size:12px;font-weight:900;}

/* ROWS */
.row{
  display:flex;height:var(--row);
  border-bottom:1px solid var(--border);
  cursor:pointer;
  transition:background .06s;
}
.row:hover{background:var(--surface2);}
.row.selected{background:#FAF6EC;}
.row.row-closed{opacity:.75;}
.row-label{
  width:var(--label);flex-shrink:0;
  font-size:15px;font-weight:700;padding:0 8px 0 10px;
  display:flex;align-items:center;
  border-right:1px solid var(--border2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:#22332C;
}
.row-label.is-closed{color:var(--dimmer);text-decoration:line-through;font-weight:400;}
.row-track{flex:1;position:relative;}

/* GRID LINES */
.grid-line{position:absolute;top:0;bottom:0;width:1px;background:rgba(200,160,80,.12);}

/* GANTT BAR */
.bar{
  position:absolute;top:4px;bottom:4px;border-radius:2px;
  min-width:4px;transition:opacity .1s;
}
.bar-open {background:linear-gradient(90deg,#8CC4A0,#8CC4A0);border:1px solid #3E8E5A;}
.bar-closed{background:linear-gradient(90deg,#E3A39D,#E3A39D);border:1px solid #B3261E;opacity:.8;}
.bar-unkn  {background:linear-gradient(90deg,#E5C57A,#E5C57A);border:1px solid #C9BEA6;opacity:.7;}
.bar:hover{opacity:.85;}

/* DETAIL PANEL */
.detail-panel{
  width:var(--panel);flex-shrink:0;
  background:var(--bg);
  border-left:2px solid var(--border2);
  overflow-y:auto;
  transition:width .2s;
  display:none;
}
.detail-panel.open{display:block;}
.dp-head{
  background:#E5F2EA;padding:14px 16px;
  border-bottom:2px solid #3E8E5A;
  position:sticky;top:0;z-index:10;
}
.dp-name{font-size:18px;font-weight:700;color:#22332C;line-height:1.3;}
.dp-sub{font-size:14px;color:#2E6E46;font-family:var(--mono);margin-top:3px;}
.dp-close{
  position:absolute;top:10px;right:10px;
  background:none;border:none;color:#2E6E46;font-size:20px;cursor:pointer;
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:3px;
}
.dp-close:hover{background:rgba(255,255,255,.15);color:#22332C;}
.dp-body{padding:12px;}

/* DETAIL SECTIONS */
.ds{
  background:var(--surface);border:1px solid var(--border);border-radius:4px;
  margin-bottom:10px;overflow:hidden;
}
.ds-title{
  background:var(--surface2);
  font-family:var(--mono);font-size:12px;font-weight:900;
  letter-spacing:1.2px;text-transform:uppercase;
  color:#22332C;padding:7px 10px;
  border-bottom:1px solid var(--border);
}
.ds-grid{display:flex;flex-wrap:wrap;padding:6px;}
.ds-grid3{display:flex;flex-wrap:wrap;padding:6px;}
.ds-item{
  flex:1;min-width:60px;padding:4px 6px;text-align:center;
}
.ds-val{
  font-family:var(--mono);font-size:16px;font-weight:800;
  color:#22332C;display:block;
}
.ds-lbl{font-size:12px;color:#22332C;margin-top:1px;font-weight:600;}
.v-green{color:#2E6E46;}
.v-red{color:#B3261E;}
.v-amber{color:var(--amber);}
.v-blue{color:var(--blue);}
.v-purple{color:var(--purple);}

/* ZAGAT BARS */
.zbar{display:flex;align-items:center;gap:8px;padding:4px 10px;}
.zbar-lbl{font-size:14px;font-weight:700;color:var(--dim);width:52px;flex-shrink:0;}
.zbar-track{flex:1;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;}
.zbar-fill{height:100%;background:linear-gradient(90deg,#E5C57A,#E5C57A);border-radius:4px;}
.zbar-num{font-family:var(--mono);font-size:14px;font-weight:800;color:var(--amber);width:20px;text-align:right;}

/* NOTES */
.dp-sec{
  font-family:var(--mono);font-size:15px;font-weight:900;letter-spacing:1px;
  text-transform:uppercase;color:var(--dimmer);padding:8px 10px 2px;
}
.dp-notes{
  font-size:15px;font-weight:500;color:#22332C;line-height:1.6;
  padding:6px 12px 10px;
}
.dp-link{
  display:block;font-size:15px;font-weight:600;color:var(--blue);
  padding:6px 10px;word-break:break-all;text-decoration:none;
}
.dp-link:hover{text-decoration:underline;}

/* ACTION BUTTONS */
.act-row{display:flex;flex-wrap:wrap;gap:6px;padding:10px;}
.act-btn{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--mono);font-size:15px;font-weight:700;
  padding:9px 16px;border-radius:4px;text-decoration:none;
  transition:opacity .1s;cursor:pointer;
}
.act-btn:hover{opacity:.85;}
.act-call{background:#E5F2EA;color:#22332C;}
.act-map{background:#E6EFF9;color:#22332C;}
.act-order{background:#FBF0D4;color:#22332C;}
.act-resy{background:#F1E8F4;color:#22332C;}

/* CONTACT / HOURS */
.ds-contact-row{
  font-family:var(--mono);font-size:14px;font-weight:700;
  color:#22332C;padding:6px 12px;border-bottom:1px solid var(--border);
}
.ds-contact-row a{color:var(--blue);text-decoration:none;}
.ds-contact-row a:hover{text-decoration:underline;}
.ds-hours{padding:4px 0;}
.ds-hour-row{
  font-family:var(--mono);font-size:14px;font-weight:600;color:#22332C;
  padding:4px 12px;border-bottom:1px solid var(--border);
}

/* EXT LINKS */
.ext-row{display:flex;flex-wrap:wrap;gap:6px;padding:8px;}
.ext-link{
  font-family:var(--mono);font-size:14px;font-weight:700;
  padding:6px 12px;border:1px solid var(--border2);border-radius:3px;
  color:#22332C;text-decoration:none;background:var(--surface2);
}
.ext-link:hover{background:var(--border2);color:var(--text);}

/* OUR STAR RATING */
.our-rating{
  background:#E5F2EA;border-radius:4px;
  padding:12px 14px;margin-bottom:10px;
  display:flex;align-items:center;gap:12px;
}
.our-stars{font-size:20px;letter-spacing:2px;color:#8A6200;}
.our-label{font-family:var(--mono);font-size:10px;font-weight:900;color:#2E6E46;text-transform:uppercase;letter-spacing:1px;}
.our-score{font-family:var(--mono);font-size:24px;font-weight:900;color:#8A6200;line-height:1;}
.our-verdict{font-size:15px;font-weight:600;color:#22332C;margin-top:2px;}

/* CRITIC BLURBS */
.blurbs-section{margin-bottom:10px;}
.blurbs-title{
  font-family:var(--mono);font-size:15px;font-weight:900;
  letter-spacing:1.2px;text-transform:uppercase;
  color:var(--dimmer);border-bottom:2px solid var(--border2);
  padding-bottom:4px;margin-bottom:6px;
}
.blurb-item{
  background:#FAF6EC;
  border:1px solid #DAD1BD;
  border-left:4px solid #D49A1A;
  border-radius:3px;
  padding:7px 10px;
  margin-bottom:6px;
}
.blurb-text{
  font-size:15px;font-weight:500;
  color:#22332C;line-height:1.6;
  font-style:italic;
}
.blurb-source{
  font-family:var(--mono);font-size:12px;
  color:#22332C;font-weight:800;
  margin-top:4px;
}

/* USER REVIEWS */
.user-review-section{margin-bottom:10px;}
.user-review-header{
  background:#E6EFF9;border-radius:4px 4px 0 0;
  padding:8px 12px;
  font-family:var(--mono);font-size:15px;font-weight:900;
  letter-spacing:1px;text-transform:uppercase;color:#22332C;
}
.user-review-form{
  background:#FAF6EC;border:1px solid #2F6DB5;border-top:none;
  border-radius:0 0 4px 4px;padding:10px;
}
.ur-input{
  width:100%;font-family:var(--sans);font-size:15px;font-weight:500;color:var(--text);
  background:#FAF6EC;border:1px solid #2F6DB5;border-radius:3px;
  padding:6px 8px;margin-bottom:6px;resize:vertical;
}
.ur-stars-row{display:flex;gap:4px;margin-bottom:6px;align-items:center;}
.ur-star-btn{font-size:18px;cursor:pointer;color:#22332C;background:none;border:none;padding:0;}
.ur-star-btn.lit{color:#8A6200;}
.ur-submit{
  background:#E6EFF9;color:#22332C;border:none;border-radius:3px;
  font-family:var(--mono);font-size:14px;font-weight:700;
  padding:6px 14px;cursor:pointer;
}
.ur-submit:hover{background:#E6EFF9;}
.ur-saved{
  font-family:var(--mono);font-size:14px;font-weight:700;
  color:#2E6E46;margin-top:4px;display:none;
}
.ur-existing{margin-top:8px;}
.ur-entry{
  background:#FAF6EC;border:1px solid #2F6DB5;border-radius:3px;
  padding:6px 8px;margin-bottom:4px;font-size:15px;
}
.ur-entry-stars{color:#8A6200;font-size:15px;}
.ur-entry-text{color:var(--text);font-weight:500;margin-top:2px;font-style:italic;}
.ur-entry-meta{font-family:var(--mono);font-size:15px;color:var(--dimmer);margin-top:2px;}

/* TOOLTIP */
.tip{
  position:fixed;background:#E5F2EA;color:#22332C;
  font-family:var(--mono);font-size:14px;font-weight:700;
  padding:6px 12px;border-radius:3px;pointer-events:none;
  opacity:0;transition:opacity .1s;z-index:100;white-space:nowrap;
}

/* MOBILE */
@media(max-width:700px){
  :root{--label:170px;--panel:100vw;--row:46px;}
  html,body{height:auto !important;overflow:auto !important;}
  .layout{flex-direction:column;height:auto !important;min-height:0;overflow:visible;}
  .chart-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;flex:none;width:100%;}
  .axis-row{position:relative;min-width:max-content;}
  .row{min-width:max-content;}
  .detail-panel.open{position:fixed;inset:0;z-index:50;width:100vw;height:100vh;overflow-y:auto;}
  .hdr{flex-wrap:wrap;padding:10px 12px;}
  .hdr-stats{display:none;}
  .hdr-title{font-size:clamp(14px,4.5vw,18px) !important;}
  .toolbar{flex-wrap:wrap;gap:6px;padding:8px 10px;}
  .flt{font-size:14px !important;padding:8px 12px !important;min-height:40px;}
  #srch{font-size:15px !important;padding:8px 12px !important;width:100%;margin-top:4px;}
  .row-label{font-size:15px !important;font-weight:700 !important;min-width:170px;}
  .dp-name{font-size:19px !important;}
  .dp-sub{font-size:15px !important;}
  .ds-val{font-size:17px !important;}
  .ds-lbl{font-size:13px !important;}
  .dp-notes{font-size:15px !important;line-height:1.65 !important;}
  .blurb-text{font-size:15px !important;}
  .ds-contact-row{font-size:15px !important;}
  .ds-hour-row{font-size:14px !important;}
  .act-btn{font-size:15px !important;padding:10px 16px !important;}
  .ext-link{font-size:14px !important;padding:7px 12px !important;}
}
