/* Colors/fonts taken from the office board (schedule.hamptonglassonline.com computed styles, Oct 20 2026) */
:root{--bg:#1a1a1d;--top:#000;--tray:#121316;--tray2:#1a1c20;--ink:#eee;--mut:#bbb;--blue:#1e5a9c;--teal:#0f766e;--purp:#6d28d9;--pill:#2563a8;
 --navbg:#1a1a1a;--navbd:#333;--navtx:#ccddee;--hot:#ff00d4;--eta:#0b3d91;--arr:#9fd0ff;--cf:#00a844;--cfb:#00c853;--nr:#e53935;--hold:#555;
 --done:#1f9d55;--part:#f9a825;--lock:#f59e0b;--upd:#7cfc9a;--red:#ee0000;--offc:#0a7d6e;--past:#0d2a4a;--pastbd:#2f6db3;--hh:0px;--cw:8.5em}
*{box-sizing:border-box}
html{font-size:clamp(15px,1.02vw,48px);background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;text-transform:uppercase;line-height:1.25}
header{position:sticky;top:0;left:0;z-index:40;background:var(--top);color:#fff;border-bottom:.12em solid #3a3a3a;box-shadow:0 .2em .6em rgba(0,0,0,.5)}
.row1{display:flex;align-items:center;gap:1.2em;padding:.45em 1em}
.logo{height:2.6em;background:#fff;border-radius:.3em;padding:.2em .5em}
.ttl .t1{font-family:"Arial Black",Arial,sans-serif;font-size:1.45em;color:#ddd;letter-spacing:.06em}
.ttl .t2{font-family:"Arial Black",Arial,sans-serif;font-size:1.05em;color:#fff;letter-spacing:.02em}
.wk{display:flex;gap:.5em;margin-left:auto}
button{font:inherit;text-transform:uppercase;cursor:pointer}
.wk button,.row2 button{background:var(--navbg);color:var(--navtx);border:.06em solid var(--navbd);border-radius:.5em;padding:.4em .9em;font-weight:900;font-size:1em;font-family:Arial,sans-serif}
.wk button:hover,.row2 button:hover{background:#2a2d33;color:#fff}
.wk button.on{background:var(--hot);border-color:var(--hot);color:#fff;box-shadow:0 0 .75em rgba(255,0,212,.45)}
.upd{text-align:right;font-size:.9em;font-weight:700;min-width:12em;color:var(--upd)}
.upd .stale{color:#ffcf66}
.row2{display:flex;flex-wrap:wrap;align-items:center;gap:.4em;padding:.35em 1em .5em;border-top:.06em solid #2a2a2a}
.row2 .lbl{font-size:.8em;color:#88aabb;font-weight:800;margin:0 .2em 0 .6em;letter-spacing:.06em}
.row2 .lbl:first-child{margin-left:0}
.row2 button{font-size:.9em;padding:.3em .75em}
.row2 button.today{background:var(--hot);border-color:var(--hot);color:#fff;box-shadow:0 0 .75em rgba(255,0,212,.45)}
.row2 button.cA,.row2 button.cB{background:var(--blue);border-color:var(--blue);color:#fff}
.row2 button.cC{background:var(--teal);border-color:var(--teal);color:#fff}
.row2 button.cX{background:var(--purp);border-color:var(--purp);color:#fff}
.row2 button.cT{background:var(--offc);border-color:var(--offc);color:#fff}
main{padding:0 0 3em}
.msg{padding:3em;font-size:1.6em;color:var(--mut);text-align:center}
.grid{display:grid;width:100%}
.dh{position:sticky;top:var(--hh);z-index:20;background:var(--navbg);color:var(--navtx);padding:.45em .7em;font-family:"Arial Black",Arial,sans-serif;font-size:1.25em;border:.06em solid var(--navbd);border-radius:.4em .4em 0 0;display:flex;align-items:baseline;gap:.5em;flex-wrap:wrap}
.dh .sub{font-family:Arial,sans-serif;font-size:.6em;font-weight:800;color:#88aabb;letter-spacing:.04em}
.dh.today{background:var(--hot);border-color:var(--hot);color:#fff;box-shadow:0 0 .75em rgba(255,0,212,.45)}
.dh.today .sub{color:#fff}
.dh .tt{background:var(--red);color:#fff;font-family:Arial,sans-serif;font-weight:900;font-size:.55em;border-radius:.4em;padding:.1em .45em;letter-spacing:.06em}
.dh.past{opacity:.85}
.corner{position:sticky;top:var(--hh);left:0;z-index:30;background:var(--top);color:#fff;font-family:"Arial Black",Arial,sans-serif;padding:.5em .7em;font-size:1em;display:flex;align-items:center;border-bottom:.06em solid var(--navbd)}
.cl{position:sticky;left:0;z-index:10;background:var(--tray);border-top:.12em solid #3a3a3a;padding:.6em .5em;display:flex;flex-direction:column;gap:.35em;align-items:flex-start}
.cl .cn{font-family:"Arial Black",Arial,sans-serif;font-size:1.25em;color:#fff;background:var(--blue);border-radius:.2em;padding:.25em .55em}
.cl.cC .cn{background:var(--teal)}.cl.cX .cn{background:var(--purp)}
.cl .cn small{display:block;font-family:Arial,sans-serif;font-weight:800;font-size:.5em;letter-spacing:.06em}
.cl .nm{display:flex;flex-wrap:wrap;gap:.25em}
.cl .nm span{background:var(--pill);color:#fff;font-family:"Arial Black",Arial,sans-serif;font-size:.8em;border-radius:.15em;padding:.15em .45em}
.cl.to .cn{background:var(--offc)}
.cell{border-top:.12em solid #3a3a3a;border-left:.06em solid #2a2a2a;padding:.45em;background:var(--tray2);min-height:4em;display:flex;flex-direction:column;gap:.5em}
.cell.today{background:#241a26;box-shadow:inset .2em 0 0 var(--hot),inset -.2em 0 0 var(--hot)}
.cell.past{background:#17181b}
.empty{color:#666;font-weight:800;font-size:.95em;padding:.2em;letter-spacing:.04em}
.off{background:#3a1416;border:.08em solid var(--nr);color:#ffb4b0;border-radius:.3em;padding:.35em .5em;font-weight:900;font-size:.95em}
.off .r{font-weight:700;color:#f1c9c6}
.tooff{background:var(--offc);border-color:var(--offc);color:#fff}
.tooff .r{color:#d8f3ef}
.crewoff{background:var(--nr);color:#fff;border-radius:.3em;padding:.35em .5em;font-weight:900}
.who{font-size:.85em;font-weight:900;color:#fff;background:var(--pill);border-radius:.2em;padding:.2em .45em;align-self:flex-start}
.info{font-size:.85em;font-weight:700;color:#ffe08a;background:#2c2510;border:.06em solid #5c4a12;border-radius:.3em;padding:.25em .45em}
.info.cmb{color:#e2d4ff;background:#24173f;border-color:var(--purp)}
/* JOB CARDS = office board schedule cards (rules copied from schedule.hamptonglassonline.com ix*.css, scaled to em for TV) */
.card{position:relative;background:#fff;color:#111;border-radius:.2em;box-shadow:0 .1em .25em rgba(0,0,0,.25);padding:.3em .4em 2.1em .5em;overflow:visible}
.card::after{content:"";display:block;clear:both}
.card.proj{background:#fff8e1;border:.06em solid #f0c14b}
.card.cf{border:.3em solid #00c853!important;box-shadow:0 0 0 .12em #fff,0 0 .85em .25em #00c853}
.card.ix-lock{box-shadow:inset 0 0 0 .25em #f59e0b,0 .1em .25em rgba(0,0,0,.25)}
.card.cf.ix-lock{box-shadow:inset 0 0 0 .25em #f59e0b,0 0 0 .12em #fff,0 0 .85em .25em #00c853}
.card.ix-custom{background:#fff0fa!important}
.card.ix-custom:not(.cf){box-shadow:inset .3em 0 0 #ff00d4,0 .12em .35em rgba(0,0,0,.25)}
.card.ix3-done{outline:.25em solid #1f9d55;outline-offset:-.12em}
.card.ix3-cant{outline:.25em solid #d32f2f;outline-offset:-.12em}
.card.ix3-part{outline:.25em solid #f9a825;outline-offset:-.12em}
.hrs-badge{position:absolute;top:.25em;left:.25em;z-index:3;background:#111;color:#f39200;font-size:.85em;font-weight:700;padding:0 .3em;border-radius:.15em;line-height:1.4}
.stickers{float:right;margin:0 0 .2em .4em;display:flex;align-items:center;gap:.2em;background:rgba(255,255,255,.92);padding:.12em .2em;border-radius:.2em}
.card.proj .stickers{background:rgba(255,248,225,.95)}
.sticker{width:2.4em;height:2.4em;object-fit:contain;display:block;flex-shrink:0}
.town-fallback{width:2.4em;height:2.4em;border-radius:50%;background:#555;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8em}
.card-body{padding-top:.1em}
.card-body>:first-child{margin-left:1.3em}
.hdr{font-family:"Arial Black",Arial,sans-serif;font-size:1.15em;color:#1e5a9c;line-height:1.15;overflow-wrap:normal;word-break:normal}
.card.proj .hdr{color:#92400e}
.sub{font-size:.9em;color:#333;font-weight:700}
.meta{font-size:.85em;color:#222;margin-top:.1em}
.meta .lbl{color:#666;font-weight:700}
.ochip{font-weight:800;padding:0 .3em;border-radius:.2em}
.addr{font-size:.9em;font-weight:700;margin-top:.1em}
.ixp-bases{font:900 1.1em/1.3 Arial,sans-serif;color:#0b3d91;margin-top:.15em;overflow-wrap:anywhere}
.tagrow{clear:both;display:flex;flex-wrap:wrap;gap:.25em;margin-top:.25em}
.cf-tag{display:inline-block;background:#00a844;color:#fff;font:900 1em Arial,sans-serif;padding:.12em .55em;border-radius:.2em;letter-spacing:.06em}
.ix-lock-tag{display:inline-block;background:#f59e0b;color:#111;font:900 .8em Arial,sans-serif;letter-spacing:.04em;padding:.2em .45em;border-radius:.2em}
.ix-ctag{display:inline-block;background:#ff00d4;color:#fff;font:900 .8em Arial,sans-serif;padding:.2em .5em;border-radius:.2em;letter-spacing:.04em}
.ix-nrtg{background:#e53935;color:#fff;font:900 .9em/1.2 Arial,sans-serif;padding:.2em .45em;border-radius:.3em;letter-spacing:.02em}
.flag{background:#b91c1c;color:#fff;font-size:.8em;font-weight:700;display:inline-block;padding:.1em .4em;border-radius:.15em}
.flag.archc{background:#0d47a1}
.flag.left{background:#757575}
.with-tag{background:#6d28d9;color:#fff;font:900 .85em Arial,sans-serif;padding:.2em .5em;border-radius:.2em;letter-spacing:.03em}
.ix3-tag{font:900 .8em Arial,sans-serif;padding:.2em .45em;border-radius:.2em;color:#fff}
.ix3-tag.d{background:#1f9d55}.ix3-tag.c{background:#d32f2f}.ix3-tag.p{background:#f9a825;color:#111}
.eta{position:absolute;right:.4em;bottom:.3em;z-index:4;background:#0b3d91;color:#fff;font:900 .9em/1.6 Arial,sans-serif;padding:0 .6em;border-radius:.7em;letter-spacing:.03em;box-shadow:0 .06em .2em rgba(0,0,0,.35)}
.eta .ix-arr{color:#9fd0ff;font-size:.8em;margin-right:.3em}
.flash{animation:fl 1.6s ease-out}
@keyframes fl{0%{box-shadow:inset 0 0 0 .3em var(--hot)}100%{box-shadow:inset 0 0 0 0 transparent}}

/* ===== TIME GRID (Oct 20 1 PM) — shared 6:00 AM–4:30 PM scale like the office board ===== */
:root{--tc:3.4em;--sc:5.6em;--ph:3.7rem;--dh:0px}
.tg{display:grid;width:100%;grid-auto-rows:auto}
.tg .r1{position:sticky;top:var(--hh);z-index:22}
.tg .r2{position:sticky;top:calc(var(--hh) + var(--dh));z-index:21}
.tg .corner{position:sticky;left:0;z-index:30;background:var(--top);font-size:.8em;justify-content:center;border:0}
.tg .corner.r1{z-index:31}
.tg .dh{border-radius:.35em .35em 0 0;margin:0 .12em;font-size:1.15em;padding:.35em .6em}
.ch{background:var(--tray);border-top:.2em solid var(--blue);border-left:.06em solid #2a2a2a;padding:.25em .3em;display:flex;flex-direction:column;gap:.18em;align-items:flex-start;min-width:0}
.ch.cC{border-top-color:var(--teal)}.ch.dstart{border-left:.25em solid #3a3a3a}
.ch.today{background:#241a26}
.ch .cn{font-family:"Arial Black",Arial,sans-serif;font-size:.8em;color:#fff;background:var(--blue);border-radius:.2em;padding:.1em .4em}
.ch.cC .cn{background:var(--teal)}
.ch .nm{display:flex;flex-wrap:wrap;gap:.15em}
.ch .nm span{background:var(--pill);color:#fff;font-family:"Arial Black",Arial,sans-serif;font-size:.6em;border-radius:.15em;padding:.1em .35em}
.hb{font:900 .7em Arial,sans-serif;color:#cfd8dc;background:#2a2d33;border-radius:.25em;padding:.12em .4em;letter-spacing:.03em}
.hb.full{background:#1f9d55;color:#fff}
.hb.off{background:var(--nr);color:#fff}
.hb.out{background:#3a1416;color:#ffb4b0;border:.06em solid var(--nr)}
.tcol{position:sticky;left:0;z-index:15;background:var(--top);height:calc(10.5 * var(--ph));border-right:.06em solid #333}
.tick{position:absolute;left:0;right:0;border-top:.06em solid #444;height:0}
.tick span{position:absolute;top:.1em;right:.35em;font:900 .72em Arial,sans-serif;color:#cdd;letter-spacing:.02em}
.tick.half span{color:#778;font-weight:700;font-size:.6em}
.ccol{position:relative;height:calc(10.5 * var(--ph));background:var(--tray2);border-left:.06em solid #2a2a2a;overflow:hidden}
.ccol.dstart{border-left:.25em solid #3a3a3a}
.ccol.today{background:#221a25}
.ccol.past{background:#17181b}
.ccol.hl,.ch.hl{box-shadow:inset 0 0 0 .2em var(--hot)}
.gl{position:absolute;left:0;right:0;border-top:.06em solid rgba(255,255,255,.1)}
.gl.half{border-top-style:dashed;border-top-color:rgba(255,255,255,.05)}
.offhrs,.offband{position:absolute;left:0;right:0;background:#1b1f25 repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 .5em,rgba(0,0,0,.18) .5em 1em);border-top:.06em solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;z-index:1}
.offhrs span,.offband span{font:900 .62em Arial,sans-serif;color:#8ea3b8;background:rgba(0,0,0,.45);border-radius:.2em;padding:.15em .4em;letter-spacing:.05em;text-align:center}
.offband{background:#3a1416 repeating-linear-gradient(135deg,rgba(229,57,53,.25) 0 .5em,rgba(0,0,0,.2) .5em 1em)}
.offband span{color:#fff;background:var(--nr);font-size:.8em;line-height:1.4}
.lunch{position:absolute;left:0;right:0;background:rgba(255,213,79,.18);border-top:.06em dashed #ffd54f;border-bottom:.06em dashed #ffd54f;z-index:1;display:flex;align-items:center;justify-content:center}
.lunch span{font:900 .55em Arial,sans-serif;color:#ffe08a;letter-spacing:.04em}
.open{position:absolute;left:.2em;right:.2em;border:.1em dashed #556;border-radius:.25em;display:flex;align-items:center;justify-content:center;z-index:2}
.open span{font:900 .58em Arial,sans-serif;color:#8a94a6;letter-spacing:.04em;text-align:center}
.norec{position:absolute;inset:40% .3em auto;text-align:center;font:900 .7em Arial,sans-serif;color:#667}
.slot{position:absolute;left:.15em;right:.15em;z-index:5;padding:.1em 0}
.slot>.card{height:100%;overflow:hidden;font-size:.62em;padding:.25em .35em .3em .4em}
.card .top{display:flex;align-items:center;gap:.3em;flex-wrap:wrap;margin-bottom:.15em}
.card .top .hrs-badge{position:static;font-size:.95em}
.card .top .eta{position:static;font-size:.95em;line-height:1.5;padding:0 .45em}
.slot .stickers{float:right;margin:0 0 .1em .2em}
.slot .sticker,.slot .town-fallback{width:2.1em;height:2.1em}
.slot .card-body>:first-child{margin-left:0}
.slot .hdr{font-size:1.1em}
.slot .ixp-bases{font-size:1em}
.slot .cf-tag{font-size:.85em;padding:.05em .4em}
.slot .tagrow{gap:.2em;margin-top:.15em}
.slot .tagrow>div{font-size:.8em}
.card.cf{border-width:.25em!important}
/* compact (≤1¼ h): time, customer, WO · men · hrs, key tags only */
.card.xs .stickers,.card.xs .sub,.card.xs .addr,.card.xs .ixp-bases,.card.xs .meta+.meta{display:none}
.card.xs .ix-arr{display:none}
.card.xs .hdr{font-size:1em;line-height:1.1}
.card.xs .tagrow>.ix-lock-tag,.card.xs .tagrow>.ix3-tag,.card.xs .tagrow>.flag{display:none}
/* small (≤2¼ h) */
.card.sm .sub,.card.sm .addr{display:none}
.card.sm .sticker,.card.sm .town-fallback{width:1.7em;height:1.7em}
