:root{
  --paper:#F5EFE1;
  --panel-top:#fbfaf7;
  --panel-bottom:#efece2;
  --panel-border:#cfc7ad;
  --panel-border-soft:#c9c1a6;
  --ink:#23262B;
  --ink-soft:#5B5749;
  --ink-faint:#8a8574;
  --rouge:#A32638;
  --line:#D9CDA9;
  --zoneA:#FF2020;
  --zoneB:#22DD44;
  --zoneC:#1E7CFF;
  --weekend:#DCE8F5;
  --holiday:#DD463C;
  --holiday-text:#ffffff;
  --btn-bg:#ffffff;
  --btn-bg-off:#f1ece0;
  --btn-border:#bbb190;
  --shadow:0 12px 28px rgba(35,30,15,0.16);
  --shadow-inset:inset 0 1px 0 #fff;
  --tag-bg:#eee4c8;

  --font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display:Georgia, "Times New Roman", serif;
  --font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#1B1C1E;
    --panel-top:#2B2C2E;
    --panel-bottom:#202123;
    --panel-border:#46463F;
    --panel-border-soft:#3D3D37;
    --ink:#ECE9E1;
    --ink-soft:#A9A497;
    --ink-faint:#79766B;
    --rouge:#E4776A;
    --line:#3A3A34;
    --zoneA:#FF4444;
    --zoneB:#39EE5C;
    --zoneC:#4A93FF;
    --weekend:#26313F;
    --holiday:#B03A30;
    --holiday-text:#FDECEA;
    --btn-bg:#2A2B2D;
    --btn-bg-off:#232426;
    --btn-border:#4A4A43;
    --shadow:0 12px 28px rgba(0,0,0,0.45);
    --shadow-inset:inset 0 1px 0 rgba(255,255,255,0.04);
    --tag-bg:#33322A;
  }
}

*{box-sizing:border-box;}
body{
  margin:0;background:var(--paper);
  color:var(--ink);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased;
}
a{color:var(--ink-soft);}
.page{max-width:1600px;margin:0 auto;padding:0 20px 64px;}

/* Controls above the calendar panel */
.controls{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:40px 2px 16px;}
.vac-toggle{
  font-family:var(--font-body);font-size:0.88rem;font-weight:600;
  padding:8px 16px;border:1px solid var(--btn-border);border-radius:16px;
  background:var(--btn-bg);cursor:pointer;color:var(--ink);
}
.vac-toggle:hover{border-color:var(--rouge);color:var(--rouge);}
.vac-toggle.is-off{background:var(--btn-bg-off);color:var(--ink-soft);}

/* Calendar panel, styled like a little desktop widget */
.panel{
  background:linear-gradient(var(--panel-top),var(--panel-bottom));
  border:1px solid var(--panel-border);border-radius:14px;
  box-shadow:var(--shadow), var(--shadow-inset);
  padding:14px 16px 12px;overflow-x:auto;
}
.panel__title{
  text-align:center;font-family:var(--font-display);font-weight:700;font-size:1.15rem;
  padding:4px 0 12px;border-bottom:1px solid var(--panel-border-soft);margin-bottom:4px;
}
.cal6{display:grid;grid-template-columns:repeat(6, minmax(250px,1fr));min-width:1520px;gap:0;}
.mcol{padding:0 13px;border-right:1px solid var(--line);}
.mcol:last-child{border-right:none;}
.mcol__head{text-align:center;font-size:0.92rem;font-weight:700;letter-spacing:0.06em;color:var(--ink);padding:8px 0 7px;border-bottom:2px solid var(--panel-border-soft);margin-bottom:3px;}
.drow{
  display:grid;grid-template-columns:24px 18px 1fr 17px 24px;align-items:center;column-gap:7px;
  font-size:0.96rem;padding:3.5px 2px;border-radius:2px;
}
.drow.is-weekend{background:var(--weekend);}
.drow .num{font-family:var(--font-mono);font-weight:600;text-align:right;}
.drow .dow{text-align:center;font-size:0.78rem;color:var(--ink-faint);}
.drow .dow.is-sun{color:var(--holiday);font-weight:700;}
.drow .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.drow .wk{font-family:var(--font-mono);font-size:0.78rem;color:var(--ink-faint);text-align:right;}
.drow.is-season .name{color:var(--rouge);font-style:italic;}
.drow.is-holiday{background:var(--holiday);}
.drow.is-holiday .num{color:var(--holiday-text);}
.drow.is-holiday .dow{display:none;}
.drow.is-holiday .name{color:var(--holiday-text);font-weight:700;text-transform:uppercase;letter-spacing:0.02em;grid-column:3/6;}
.drow.is-holiday .wk{display:none;}
.drow.is-holiday .zbar{display:none;}
.drow.is-today{box-shadow:inset 0 0 0 1.6px var(--ink);}
.zbar{align-self:stretch;display:flex;flex-direction:row;gap:1px;justify-content:flex-start;}
.zbar i{flex:none;width:5px;height:100%;border-radius:0.5px;background:transparent;}
.zbar i.zb-A{background:var(--zoneA);}
.zbar i.zb-B{background:var(--zoneB);}
.zbar i.zb-C{background:var(--zoneC);}

.panel__nav{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:12px;margin-top:8px;border-top:1px solid var(--panel-border-soft);}
.panel__nav button{
  font-family:var(--font-body);font-size:0.8rem;font-weight:600;padding:6px 14px;
  border:1px solid var(--btn-border);border-radius:16px;background:var(--btn-bg);cursor:pointer;color:var(--ink);
}
.panel__nav button:hover{border-color:var(--rouge);color:var(--rouge);}
.panel__nav .range{font-size:0.82rem;color:var(--ink-soft);min-width:150px;text-align:center;}

.zones-key{margin:18px 2px 0;font-size:0.9rem;color:var(--ink-soft);}
.zones-key p{display:flex;align-items:baseline;gap:9px;margin:8px 0;line-height:1.5;}
.zones-key strong{color:var(--ink);}
.zones-key .key-dot{width:10px;height:10px;border-radius:50%;flex:none;position:relative;top:1px;}

footer{margin-top:56px;padding-top:18px;border-top:3px double var(--ink);font-size:0.76rem;color:var(--ink-soft);line-height:1.7;}
footer a{color:var(--ink-soft);}

@media (max-width:640px){
  .controls{flex-direction:column;align-items:flex-start;gap:10px;}
}
