*{box-sizing:border-box}
html,body{margin:0;background:#0b0b0b;color:#eee;font-family:Arial,Helvetica,sans-serif}
button{font-family:inherit;cursor:pointer}
.btn{border:0;border-radius:6px;padding:7px 11px;font-weight:800;font-size:12px;letter-spacing:.3px;color:#fff;text-transform:uppercase;white-space:nowrap}
.btn-pink{background:#ff00d4}.btn-teal{background:#00838f}.btn-dark{background:#2a2a2a;border:1px solid #444}.btn-blue{background:#1769c4}
.btn-green{background:#00a844}.btn-red{background:#c62828}.btn-gray{background:#555}
.chip{display:inline-block;border-radius:12px;padding:4px 10px;font-size:11px;font-weight:800;white-space:nowrap}
.chip-green{background:#00c853;color:#002b10}.chip-amber{background:#f59e0b;color:#1a1200}.chip-red{background:#c62828;color:#fff}
.chip-dark{background:#1f2a1f;color:#7ee29a;border:1px solid #2e5c39}
#bar{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:6px 12px;background:#000;border-bottom:1px solid #222;flex-wrap:wrap}
.bar-l{margin-right:auto;font-weight:900;font-size:12px;color:#aaa;letter-spacing:1px}
.bar-counts{white-space:nowrap;font-size:12px;font-weight:800;color:#ddd}
.bar-counts b{color:#fff}
#head{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#111;overflow-x:auto}
.brand{font-weight:900;font-size:12px;letter-spacing:.5px;line-height:1.15;color:#fff;flex:none}
.views{display:flex;gap:4px;flex:none}
.vbtn{background:#1a1a1a;color:#ddd;border:1px solid #444;border-radius:6px;padding:9px 12px;font-weight:900;font-size:12px}
.vbtn.on{background:#1e5a9c;border-color:#55ACEE;color:#fff}
.tiles{display:flex;gap:6px;flex:none}
.tile{background:#1a1a1a;border:1px solid #3a3a3a;border-radius:6px;color:#ddd;width:52px;padding:4px 0;text-align:center;line-height:1.05}
.tile .dw{font-size:9px;font-weight:800;color:#aaa;display:block}
.tile .dn{font-size:18px;font-weight:900;display:block}
.tile .dc{font-size:9px;font-weight:900;color:#ffd54f;display:block;min-height:10px}
.tile.today{outline:2px solid #ff00d4;outline-offset:-2px}
.tile.sel{background:#ff00d4;border-color:#ff00d4;color:#fff}
.tile.sel .dw,.tile.sel .dc{color:#fff}
.tile.past{background:#5a3b00;border-color:#f59e0b;color:#fff}
#titlebar{display:flex;align-items:center;gap:12px;padding:6px 12px 8px;background:#111;border-bottom:2px solid #222;flex-wrap:wrap}
.co{font-family:'Arial Black',Arial,sans-serif;font-weight:900;font-size:17px;letter-spacing:.5px;color:#fff}
.todaypill{background:#e0002a;color:#fff;font-weight:900;font-size:11px;border-radius:5px;padding:3px 8px}
.daytitle{font-family:'Arial Black',Arial,sans-serif;font-size:20px;font-weight:900;color:#fff}
.nav{display:flex;gap:4px}
.legend{margin-left:auto;display:flex;gap:6px}
.lg{font-size:11px;font-weight:900;border-radius:4px;padding:3px 8px;color:#fff}
.lg-b{background:#55ACEE}.lg-p{background:#F4900C}.lg-u{background:#555}
#main{display:flex;align-items:flex-start}
#board{flex:1;min-width:0;padding:10px}
#pool{width:370px;flex:none;background:#151515;border-left:2px solid #ff00d4;height:calc(100vh - 0px);position:sticky;top:0;overflow-y:auto;padding:8px}
.pool-h{display:flex;align-items:center;gap:8px;font-weight:900;font-size:14px;color:#ff7ae6;margin-bottom:6px}
.pool-h #pool-hide{margin-left:auto;display:none}
.cnt{background:#ff00d4;color:#fff;border-radius:10px;padding:1px 8px;font-size:12px}
.pool-q{width:100%;background:#000;border:1px solid #444;color:#fff;border-radius:6px;padding:8px;font-size:13px;margin-bottom:8px;text-transform:uppercase}
.psec{margin:10px 0 4px;font-size:12px;font-weight:900;color:#fff;border-radius:5px;padding:6px 8px;display:flex;justify-content:space-between;cursor:pointer;user-select:none}
.psec.overdue{background:#c62828}.psec.nodate{background:#6a1b9a}.psec.all{background:#1e5a9c}.psec.tbq{background:#2e7d32}.psec.old{background:#333}
.psec .n{background:rgba(0,0,0,.35);border-radius:9px;padding:0 7px}
.pempty{font-size:11px;color:#888;padding:4px 8px;font-weight:700}
.fab{display:none}
/* columns */
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.col-h{text-align:center;margin-bottom:6px}
.col-h .pill{display:inline-block;color:#fff;font-weight:900;font-size:16px;border-radius:5px;padding:5px 22px;letter-spacing:.5px}
.col-h .sub{font-size:11px;color:#aaa;font-weight:800;margin-top:4px}
.col-h .bar{height:5px;border-radius:3px;margin-top:6px}
.c-BRIAN .pill,.c-BRIAN .bar{background:#55ACEE}.c-PAT .pill,.c-PAT .bar{background:#F4900C}.c-NONE .pill,.c-NONE .bar{background:#555}
.colbody{background:#1a1a1a;border:2px solid #2a2a2a;border-radius:6px}
.slot{display:flex;border-top:1px solid #2c2c2c;min-height:46px}
.slot:first-child{border-top:0}
.slot .tl{width:58px;flex:none;font-size:11px;font-weight:800;color:#888;padding:6px 4px;text-align:right;border-right:1px solid #2c2c2c}
.slot .tl b{font-size:13px;color:#ccc}
.slot .sc{flex:1;padding:4px;min-width:0;display:flex;flex-direction:column;gap:5px}
.slot.any{background:#20202b;min-height:58px}
.slot.any .tl{font-size:9px;line-height:1.2;color:#b9b9ff}
.slot.drop{background:#3d1036 !important;outline:2px dashed #ff00d4;outline-offset:-2px}
/* cards */
.card{background:#fff;color:#111;border-radius:5px;border:3px solid #999;border-left-width:8px;padding:6px 7px;font-size:12px;cursor:pointer;position:relative;line-height:1.25}
.card.m-BRIAN{border-color:#55ACEE}.card.m-PAT{border-color:#F4900C}.card.m-NONE{border-color:#777}
.card.tbq{border-color:#2e7d32;opacity:.92}
.card.hl{box-shadow:0 0 0 4px #ff00d4,0 0 22px #ff00d4;animation:hl 1s ease-in-out 4}
@keyframes hl{50%{box-shadow:0 0 0 7px #ff00d4,0 0 34px #ff00d4}}
.card .top{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:2px}
.rno{background:#111;color:#fff;font-weight:900;font-size:11px;border-radius:3px;padding:1px 5px}
.tpill{background:#e8eaf6;color:#1a237e;font-weight:900;font-size:10px;border-radius:3px;padding:1px 5px}
.tpill.timed{background:#1769c4;color:#fff}
.twn{background:#0b2a4a;color:#fff;font-weight:900;font-size:10px;border-radius:3px;padding:1px 5px}
.mchip{font-weight:900;font-size:10px;border-radius:3px;padding:1px 5px;color:#fff}
.mchip.BRIAN{background:#55ACEE}.mchip.PAT{background:#F4900C}.mchip.NONE{background:#777}
.name{color:#1769c4;font-weight:900;font-size:14px;text-transform:uppercase}
.sub2{font-size:11px;font-weight:700;color:#333;text-transform:uppercase}
.addr{font-size:11px;font-weight:900;text-transform:uppercase}
.prod{display:inline-block;background:#fff3e0;color:#7a3e00;border:1px solid #f4b26b;font-size:10px;font-weight:900;border-radius:3px;padding:0 4px;margin:2px 3px 0 0}
.note{font-size:11px;color:#222;white-space:pre-wrap;margin-top:3px;text-transform:uppercase}
.onote{margin-top:4px;background:#fff59d;border:1px solid #e0c200;border-radius:3px;padding:3px 5px;font-size:11px;font-weight:800;white-space:pre-wrap;text-transform:uppercase}
.flag{display:inline-block;margin-top:3px;font-size:10px;font-weight:900;border-radius:3px;padding:1px 5px;color:#fff;background:#c62828}
.flag.amber{background:#f59e0b;color:#1a1200}.flag.site{background:#6a1b9a}.flag.green{background:#2e7d32}
.phone{font-size:11px;font-weight:900;color:#0b5e2a}
.card[draggable=true]{cursor:grab}
/* week */
.week{display:grid;gap:6px}
.wk-h{font-weight:900;font-size:12px;text-align:center;background:#1a1a1a;border:1px solid #333;border-radius:5px;padding:6px 2px;color:#ddd;cursor:pointer}
.wk-h.today{border-color:#ff00d4;color:#fff}
.wk-h.past{opacity:.6}
.wk-rl{display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;border-radius:5px;font-size:13px;writing-mode:vertical-rl;transform:rotate(180deg)}
.wk-rl.BRIAN{background:#55ACEE}.wk-rl.PAT{background:#F4900C}.wk-rl.NONE{background:#555}
.wk-c{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:5px;min-height:90px;padding:4px;display:flex;flex-direction:column;gap:4px}
.wk-c.drop{background:#3d1036;outline:2px dashed #ff00d4}
.card.mini{font-size:11px;padding:4px 5px}
.card.mini .name{font-size:12px}
/* modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9000;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:20px 10px}
.modal[hidden]{display:none}
.modal-box{background:#fff;color:#111;border-radius:8px;max-width:760px;width:100%;padding:16px 18px;position:relative}
.mclose{position:sticky;top:0;float:right;background:#111;color:#fff;border:0;border-radius:6px;font-weight:900;font-size:13px;padding:10px 14px;min-width:112px;min-height:44px;z-index:2}
.dh{font-size:20px;font-weight:900;color:#1769c4;text-transform:uppercase;margin:0 0 6px}
.dgrid{display:grid;grid-template-columns:150px 1fr;gap:6px 10px;font-size:13px;margin:10px 0}
.dgrid .k{font-weight:900;color:#555;font-size:11px;padding-top:2px}
.dgrid .v{font-weight:700;text-transform:uppercase;white-space:pre-wrap;word-break:break-word}
.dgrid .v a{color:#1769c4}
.ptab{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}
.ptab td,.ptab th{border:1px solid #ddd;padding:4px 6px;text-align:left;vertical-align:top;text-transform:uppercase}
.ptab th{background:#f3f3f3;font-size:11px}
.box{border:2px solid #ddd;border-radius:6px;padding:10px;margin-top:12px}
.box h4{margin:0 0 8px;font-size:13px;font-weight:900}
.box.move{border-color:#ff00d4}.box.onote-ed{border-color:#e0c200;background:#fffde7}
.frow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.frow select,.frow input{font-size:15px;padding:8px;border:1px solid #999;border-radius:5px}
.mbtn{font-size:13px;font-weight:900;padding:10px 14px;border-radius:6px}
textarea{width:100%;min-height:80px;font-size:14px;padding:8px;border:1px solid #999;border-radius:5px;font-family:inherit;text-transform:uppercase}
.ro{font-size:11px;font-weight:900;color:#6a1b9a;margin-top:6px}
/* town view */
.town{position:fixed;inset:0;background:#0b0b0b;z-index:8000;display:flex;flex-direction:column;padding:10px}
.town[hidden]{display:none}
.town-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.town-h .t{font-family:'Arial Black',Arial,sans-serif;font-size:18px;color:#fff}
.town-h .sp{margin-left:auto;display:flex;gap:6px}
.tcols{flex:1;display:grid;gap:6px;min-height:0}
.tcol{background:#151515;border:1px solid #333;border-radius:6px;display:flex;flex-direction:column;min-width:0;min-height:0}
.tcol-h{background:#0b2a4a;color:#fff;font-weight:900;font-size:12px;text-align:center;padding:7px 3px;border-radius:5px 5px 0 0}
.tcol-h .n{display:inline-block;background:#ff00d4;border-radius:9px;padding:0 6px;margin-left:4px}
.tcol-b{padding:4px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
.trow{background:#fff;color:#111;border-radius:4px;border-left:6px solid #777;padding:5px;font-size:11px;cursor:pointer;line-height:1.25}
.trow.m-BRIAN{border-left-color:#55ACEE}.trow.m-PAT{border-left-color:#F4900C}
.trow .where{font-size:10px;font-weight:900;color:#6a1b9a;margin-top:2px}
.trow .find{font-size:9px;font-weight:900;color:#888;margin-top:2px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111;border:2px solid #ff00d4;color:#fff;font-weight:900;padding:10px 16px;border-radius:8px;z-index:9900;font-size:13px}
.toast[hidden]{display:none}
.empty-day{grid-column:1/-1;text-align:center;color:#888;font-weight:900;font-size:13px;padding:6px}
/* phones */
@media (max-width:820px){
  #bar{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}
  .bar-l,#btn-pool{display:none}
  .legend{display:none}
  #pool{position:fixed;inset:0;width:auto;height:auto;z-index:8500;border-left:0;display:none;padding:10px 10px 90px}
  body.pool-open #pool{display:block}
  .pool-h #pool-hide{display:inline-block;font-size:14px;padding:10px 14px}
  .fab{display:block;position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:8400;background:#ff00d4;color:#fff;border:3px solid #fff;border-radius:30px;font-weight:900;font-size:17px;padding:14px 22px;box-shadow:0 4px 18px rgba(0,0,0,.6)}
  body.pool-open .fab{display:none}
  .cols{grid-template-columns:1fr}
  .daytitle{font-size:16px}.co{font-size:14px}
  .dgrid{grid-template-columns:1fr}
  .dgrid .k{padding-top:6px}
  .tcols{display:flex !important;flex-direction:column;overflow-y:auto}
  .tcol{flex:none}
  #board{padding:8px 8px 90px}
  .week{overflow-x:auto}
}
@media print{#bar,#pool,.fab,.nav,.views{display:none!important}}

.noneday{display:none}
@media (max-width:820px){
  .slot.empty{display:none}
  .colbody.none .noneday{display:block;color:#888;font-weight:900;font-size:12px;padding:12px;text-align:center}
  .col{margin-bottom:6px}
}
