:root{
  --ink:#ECE7DA;           /* main text — warm off-white */
  --paper:#221F1B;         /* card / table surface */
  --paper-dim:#151311;     /* page background — near black */
  --line:#3A352C;          /* borders on dark surfaces */
  --accent:#E2603F;        /* brightened warm red-orange for dark bg */
  --accent-soft:rgba(226,96,63,0.18);
  --muted:#ADA394;         /* secondary text */
  --header-bg:#0E0D0B;
  --header-text:#F4EFE4;
  --header-sub:#B9B2A2;

  --morning:#D9A63E;
  --morning-soft:rgba(217,166,62,0.14);
  --midday:#4FB4B0;
  --midday-soft:rgba(79,180,176,0.14);
  --evening:#BB8CD6;
  --evening-soft:rgba(187,140,214,0.14);
  --good:#6FCB7F;
  --good-soft:rgba(111,203,127,0.16);
  --warn:#D9A63E;
  --warn-soft:rgba(217,166,62,0.16);
  --notes:#7FA8D9;
  --notes-soft:rgba(127,168,217,0.14);
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family: 'Iowan Old Style','Georgia',serif;
  background:var(--paper-dim);
  color:var(--ink);
}
/* A thin accent stripe along the very top of the page — a small nod to the
   bold color-bar branding festival sites use, without overdoing it. */
body::before{
  content:'';
  display:block;
  height:4px;
  background:linear-gradient(90deg, var(--accent), var(--evening));
}
header{
  background:var(--header-bg);
  color:var(--header-text);
  padding:22px 28px 18px;
  position:sticky;
  top:0;
  z-index:20;
  box-shadow:0 2px 10px rgba(0,0,0,0.5);
  border-bottom:1px solid #2a2723;
}
header h1{
  margin:0 0 4px;
  font-size:1.4rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--header-text);
}
header .sub{
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size:0.85rem;
  color:var(--header-sub);
  max-width:900px;
  line-height:1.5;
}
.toolbar{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;align-items:center;}
button.tool{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.78rem;
  background:transparent;
  color:var(--header-text);
  border:1px solid #4a453c;
  padding:6px 12px;
  border-radius:20px;
  cursor:pointer;
  transition:background .15s;
}
button.tool:hover{background:rgba(255,255,255,0.08);}
button.tool.primary{background:var(--accent);border-color:var(--accent);color:#1a0f0a;font-weight:600;}
button.tool.primary:hover{background:#f07350;}
button.tool.small{font-size:0.72rem;padding:5px 10px;}
button.tool:disabled{opacity:0.4;cursor:not-allowed;}

.draft-status, .sync-status{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.75rem;
  color:var(--header-sub);
}
.draft-status.error, .sync-status.error{color:#e6a89c;}
.sync-status.ok{color:#9fd6a6;}

nav.tabs{
  display:flex;
  align-items:center;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:sticky;
  /* Pushed down by the header's actual measured height (set in JS as
     --header-height) so the two sticky elements stack instead of colliding. */
  top:var(--header-height, 120px);
  z-index:19;
}
.day-tabs-scroll{
  display:flex;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  flex:1;
  min-width:0;
}
.day-tab-btn{
  font-family:'Helvetica Neue', Arial, sans-serif;
  flex:0 0 auto;
  padding:11px 16px;
  background:none;
  border:none;
  border-bottom:3px solid transparent;
  cursor:pointer;
  font-size:0.76rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}
.day-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.day-tab-btn:hover{color:var(--ink);}

.tab-dropdown{position:relative;flex:0 0 auto;border-right:1px solid var(--line);}
.tab-dropdown-btn{
  font-family:'Helvetica Neue', Arial, sans-serif;
  padding:11px 16px;
  background:none;
  border:none;
  border-bottom:3px solid transparent;
  cursor:pointer;
  font-size:0.76rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  white-space:nowrap;
}
.tab-dropdown-btn:hover{color:var(--ink);}
.tab-dropdown-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600;}
.tab-dropdown-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  min-width:200px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:0 0 8px 8px;
  box-shadow:0 8px 20px rgba(0,0,0,0.5);
  flex-direction:column;
  z-index:25;
}
.tab-dropdown-menu.open{display:flex;}
.tab-dropdown-menu button{
  font-family:'Helvetica Neue', Arial, sans-serif;
  text-align:left;
  padding:10px 14px;
  background:none;
  border:none;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  font-size:0.82rem;
  cursor:pointer;
}
.tab-dropdown-menu button:last-child{border-bottom:none;}
.tab-dropdown-menu button:hover{background:var(--accent-soft);color:var(--accent);}
.tab-dropdown-menu button.menu-divider{border-top:1px solid var(--line);}

.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.6);
  z-index:50;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  max-width:560px;
  width:100%;
  max-height:80vh;
  overflow-y:auto;
  box-shadow:0 20px 50px rgba(0,0,0,0.6);
}
.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 20px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:var(--paper);
}
.modal-head h2{margin:0;font-size:1.1rem;color:var(--ink);font-family:'Helvetica Neue', Arial, sans-serif;}
.modal-close{background:none;border:none;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 4px;}
.modal-close:hover{color:var(--ink);}
.modal-body{padding:4px 20px 20px;font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.85rem;line-height:1.6;color:var(--ink);}
.modal-body h3{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--accent);margin:18px 0 6px;}
.modal-body h3:first-child{margin-top:0;}
.modal-body p{margin:0 0 8px;}
.modal-body ul{margin:0 0 8px;padding-left:18px;}
.modal-body li{margin-bottom:4px;}

main{max-width:900px;margin:0 auto;padding:24px 20px 80px;}
.day-panel{display:none;}
.day-panel.active{display:block;}

.empty-state{
  font-family:'Helvetica Neue', Arial, sans-serif;
  color:var(--muted);
  text-align:center;
  padding:80px 20px;
  font-size:1rem;
}

.day-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:12px;
  border-bottom:2px solid var(--ink);
  padding-bottom:10px;
  margin-bottom:16px;
}
.day-head h2{margin:0;font-size:1.4rem;outline:none;color:var(--ink);}
.day-head-right{display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.field-row{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.85rem;
  color:var(--muted);
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.field-row label{font-weight:600;color:var(--ink);}
.editable-inline{border-bottom:1px dashed var(--line);padding:2px 4px;min-width:160px;outline:none;color:var(--ink);}
.editable-inline:focus{background:var(--accent-soft);border-bottom-color:var(--accent);}
[contenteditable="true"]{cursor:text;border-radius:3px;}
[contenteditable="true"]:hover{background:rgba(226,96,63,0.10);box-shadow:0 0 0 1px rgba(226,96,63,0.25);}
[contenteditable="true"]:focus{background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent);}

input[type="date"], input[type="time"]{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.82rem;
  border:1px solid var(--line);
  border-radius:5px;
  padding:4px 6px;
  background:var(--paper);
  color:var(--ink);
  color-scheme:dark;
}
input[type="date"]:hover, input[type="time"]:hover{border-color:var(--accent);}
input[type="date"]:focus, input[type="time"]:focus{outline:none;border-color:var(--accent);background:var(--accent-soft);}
.weekday{font-weight:600;color:var(--accent);min-width:80px;display:inline-block;}
.date-hint{font-size:0.7rem;color:var(--muted);font-style:italic;max-width:220px;text-align:right;}

.sensitive-note{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.78rem;
  color:var(--warn);
  background:var(--warn-soft);
  border:1px solid var(--warn);
  border-radius:6px;
  padding:8px 12px;
  margin-bottom:16px;
}

section.block{margin-bottom:26px;}
section.block > h3{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--accent);
  margin:0 0 10px;
  border-bottom:1px solid var(--line);
  padding-bottom:6px;
}
.empty-hint{font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.8rem;color:var(--muted);font-style:italic;padding:6px 0;}

.shift-block{border-radius:10px;padding:14px 16px 10px;margin-bottom:16px;border-left-width:5px;border-left-style:solid;background:var(--paper);}
.shift-block > h3{
  display:inline-block;
  padding:5px 12px;
  border-radius:6px;
  border-bottom:none;
  color:#1a0f0a;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.78rem;
  font-weight:600;
}
.shift-morning{border-left-color:var(--morning);}
.shift-morning > h3{background:var(--morning);}
.shift-midday{border-left-color:var(--midday);}
.shift-midday > h3{background:var(--midday);}
.shift-evening{border-left-color:var(--evening);}
.shift-evening > h3{background:var(--evening);}
.shift-block ul{margin:0;padding-left:0;list-style:none;}
.shift-block .add-row{margin-top:6px;}

/* Same card-with-colored-pill-heading treatment as the shift blocks above,
   generalized so every section (not just the Reference tab) gets it. */
section.task-card{
  border-radius:10px;
  padding:14px 16px 16px;
  margin-bottom:18px;
  border-left-width:5px;
  border-left-style:solid;
  background:var(--paper);
}
section.task-card > h3{
  display:inline-block;
  padding:5px 12px;
  border-radius:6px;
  border-bottom:none;
  color:#1a0f0a;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.78rem;
  font-weight:600;
  margin:0 0 12px;
}
.task-card .add-row{margin-top:6px;}
.task-schedule{border-left-color:var(--accent);}
.task-schedule > h3{background:var(--accent);}
.task-hours{border-left-color:var(--morning);}
.task-hours > h3{background:var(--morning);}
.task-film{border-left-color:var(--midday);}
.task-film > h3{background:var(--midday);}
.task-notes{border-left-color:var(--notes);}
.task-notes > h3{background:var(--notes);}
.task-supply{border-left-color:var(--good);}
.task-supply > h3{background:var(--good);}
.task-suggestions{border-left-color:var(--evening);}
.task-suggestions > h3{background:var(--evening);}
.task-contacts{border-left-color:var(--accent);}
.task-contacts > h3{background:var(--accent);}
.task-access{border-left-color:var(--warn);}
.task-access > h3{background:var(--warn);}
.task-card table.schedule{margin-top:2px;}
.task-card ul.notes-list li, .task-card ul.supply-list li{border-bottom-color:rgba(255,255,255,0.08);}

table.schedule{width:100%;border-collapse:collapse;}
table.schedule td{padding:8px 6px;vertical-align:top;border-bottom:1px solid var(--line);font-size:0.95rem;color:var(--ink);}
td.timecell{width:210px;white-space:nowrap;padding-top:6px;color:var(--muted);}
td.timecell .tr-inner{display:flex;align-items:center;gap:5px;}
td.timecell .dash{color:var(--muted);font-family:'Helvetica Neue', Arial, sans-serif;}
table.schedule td.item[contenteditable="true"]{outline:none;}
table.schedule td.del{width:30px;text-align:right;padding-top:8px;}
table.contacts-table td.name{width:32%;}
table.contacts-table td.role{width:34%;}
table.contacts-table td.phone{width:24%;font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.88rem;}
table.contacts-table .col-head{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--muted);
  font-weight:600;
  border-bottom:2px solid var(--line);
}

.row-del, .li-del{
  background:none;border:none;color:var(--muted);font-size:1rem;line-height:1;
  cursor:pointer;padding:2px 6px;border-radius:4px;
}
.row-del:hover, .li-del:hover{color:var(--accent);background:var(--accent-soft);}

ul.notes-list, ul.supply-list{margin:0;padding-left:0;list-style:none;}
ul.notes-list li, ul.supply-list li, .shift-block li{
  padding:6px 0;border-bottom:1px dotted var(--line);
  display:flex;align-items:flex-start;gap:8px;font-size:0.95rem;color:var(--ink);
}
ul.notes-list li::before{content:"—";color:var(--muted);flex:0 0 auto;}
ul.supply-list li::before{content:"☐";color:var(--muted);flex:0 0 auto;}
.shift-block li::before{content:"✓";color:inherit;opacity:0.6;flex:0 0 auto;}
li .li-text{flex:1 1 auto;outline:none;min-height:1.2em;}
li .li-del{flex:0 0 auto;}

.add-row{
  font-family:'Helvetica Neue', Arial, sans-serif;
  font-size:0.75rem;color:var(--accent);background:none;
  border:1px dashed var(--accent);border-radius:6px;
  padding:4px 10px;margin-top:8px;cursor:pointer;
}
.add-row:hover{background:var(--accent-soft);}

.suggestion-item{background:#2b2410;border:1px solid #55491f;border-radius:6px;padding:10px 12px;margin-bottom:10px;font-size:0.9rem;color:var(--ink);}
.suggestion-item:last-child{margin-bottom:0;}
.suggestion-item .meta{
  font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.68rem;color:var(--muted);
  display:flex;justify-content:space-between;margin-bottom:4px;
}
.suggestion-item .meta input{
  font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.68rem;border:none;
  background:transparent;color:var(--muted);width:130px;
}
.suggestion-body[contenteditable="true"]{outline:none;}
.suggestion-item .del{cursor:pointer;color:var(--accent);font-size:0.68rem;background:none;border:none;}

footer{text-align:center;font-family:'Helvetica Neue', Arial, sans-serif;font-size:0.72rem;color:var(--muted);padding:20px;}

@media print{
  body::before, header, nav.tabs, .toolbar, .add-row, .row-del, .li-del, footer{display:none;}
  .day-panel{display:block !important; page-break-after:always;}
  body{background:white;color:black;}
}
@media (max-width:600px){
  main{padding:16px 12px 60px;}
  td.timecell{width:170px;}
}
