/* Calendar tab (Oct 27) + sync alert banner */
.cal{--fs:#0309F6;--sc:#D200D6;padding-bottom:8px}
.cal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cal-newbtn{white-space:nowrap;min-height:44px}
.cal-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.cal-views,.cal-nav{display:inline-flex;border:1px solid #d5d9e0;border-radius:12px;overflow:hidden;background:#fff}
.cal-views button,.cal-nav button{border:0;background:none;padding:10px 14px;font:inherit;font-weight:600;min-height:44px;min-width:44px;color:#1b2330;cursor:pointer}
.cal-views button+button,.cal-nav button+button{border-left:1px solid #e3e6eb}
.cal-views button[aria-pressed="true"]{background:#1b2330;color:#fff}
.cal-nav button[data-cn="-1"],.cal-nav button[data-cn="1"]{font-size:1.3em;line-height:1}
.cal-label{font-weight:700;font-size:1.05rem;margin:6px 2px 8px}
.cal-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.cal-filters .chips{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.cal-dchip i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--dc);margin-right:6px;vertical-align:-1px}
.cal-techf{min-height:40px;border:1px solid #d5d9e0;border-radius:10px;padding:0 10px;font:inherit;background:#fff;max-width:100%}
.cal-err{color:#b00020;font-weight:600;margin:6px 0}
.cal-day{background:#fff;border:1px solid #e3e6eb;border-radius:10px;padding:5px 7px 6px;margin-bottom:6px}
.cal-day.today{border-color:#1b2330;box-shadow:0 0 0 1px #1b2330 inset}
.cal-dh{display:flex;justify-content:space-between;align-items:center;margin:0 0 2px;font-size:.9rem}
.cal-dh button[data-cday]{border:0;background:none;font:inherit;font-weight:700;padding:3px 0;color:#1b2330;cursor:pointer;text-align:left}
.cal-dh .w{text-transform:capitalize}.cal-dh .n{color:#5b6472;font-weight:600}
.cal-today{background:#1b2330;color:#fff;border-radius:999px;padding:2px 8px;font-size:.75rem;margin-left:4px}
.cal-add{border:1px solid #d5d9e0;background:#f6f7f9;border-radius:8px;width:34px;height:30px;font-size:1.1rem;line-height:1;font-weight:700;cursor:pointer}
.cal-none{color:#8a8f98;margin:0 0 2px;font-size:12px}
.cal-ev{display:block;width:100%;box-sizing:border-box;text-align:left;border:0;border-left:4px solid var(--dc);border-radius:5px;background:#f6f7fb;background:color-mix(in srgb,var(--dc) 8%,#fff);padding:3px 6px;margin:3px 0 0;font:inherit;font-size:12px;line-height:1.3;color:#1b2330;cursor:pointer;min-height:0}
.cal-ev:hover{background:color-mix(in srgb,var(--dc) 16%,#fff)}
.cal-ev:active{background:#e8ebf1}
.ce-n{display:flex;align-items:baseline;gap:4px;font-weight:600;white-space:nowrap;min-width:0}
.ce-tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ce-t{font-weight:700;color:var(--dc);flex:none}
.ce-a{display:block;font-size:11px;color:#5b6472;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ce-m{display:block;font-size:11px;color:#5b6472;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ce-m>span+span::before{content:" · "}
.ce-billed{flex:none;font-style:normal;font-size:10px;font-weight:700;color:#06343a;background:#bff0f2;border-radius:999px;padding:0 5px;line-height:15px}
.cal-ev.google{background:#fff;background:color-mix(in srgb,var(--dc) 5%,#fff)}
.cal-day.big .cal-ev{padding:6px 8px;font-size:13px}
.cal-day.big .ce-n{white-space:normal}.cal-day.big .ce-tx{overflow:visible}
.cal-week .ce-a{display:none}
.cal-month{background:#fff;border:1px solid #e3e6eb;border-radius:14px;overflow:hidden}
.cal-mh,.cal-mg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-mh span{text-align:center;font-size:.75rem;font-weight:700;color:#5b6472;padding:6px 0;border-bottom:1px solid #e3e6eb}
.cal-cell{min-height:64px;border-right:1px solid #eef0f3;border-bottom:1px solid #eef0f3;padding:3px;cursor:pointer;overflow:hidden;position:relative}
.cal-cell:nth-child(7n){border-right:0}
.cal-cell.out{background:#fafbfc;color:#a3a9b3}
.cal-cell.today .cn{background:#1b2330;color:#fff;border-radius:999px;padding:0 6px}
.cal-cell .cn{font-size:.8rem;font-weight:700}
.cal-chip{display:none;width:100%;text-align:left;border:0;border-left:3px solid var(--dc);background:#f4f5f8;border-radius:4px;font-size:.7rem;padding:1px 3px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:#1b2330}
.cal-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.cal-dots i{width:8px;height:8px;border-radius:50%;background:var(--dc)}
.cal-more{display:none;font-size:.7rem;color:#5b6472}
.cal-foot{margin-top:10px}
@media (min-width:760px){
  .cal-chip,.cal-more{display:block}.cal-dots{display:none}.cal-cell{min-height:96px}
  .cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
  .cal-week .cal-day{margin:0;padding:4px 5px 5px;min-height:160px}
  .cal-week .cal-dh{font-size:.85rem}
  .cal-week .cal-add{width:26px;height:24px;font-size:1rem}
}
.cal-modal{position:fixed;inset:0;background:rgba(15,20,30,.45);z-index:1200;display:flex;align-items:flex-end;justify-content:center}
.cal-sheet{background:#fff;width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
@media (min-width:760px){.cal-modal{align-items:center}.cal-sheet{border-radius:18px}}
body.cal-lock{overflow:hidden}
.cs-h{margin:0 0 10px;border-left:6px solid var(--dc,#1b2330);padding-left:10px}
.cs-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0 0 10px}
.cs-dl dt{color:#5b6472;font-size:.85rem}.cs-dl dd{margin:0}
.cs-notes{white-space:pre-wrap}
.cs-div{background:var(--dc);color:#fff;border-radius:999px;padding:1px 10px;font-size:.85rem}
.cs-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.cs-btns .btn{min-height:44px}
.btn.danger{background:#fff;color:#b00020;border:1px solid #f0b8c0}
.cal-form label{display:block;font-weight:600;font-size:.9rem;margin:0 0 10px}
.cal-form input,.cal-form select,.cal-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px;min-height:44px;border:1px solid #d5d9e0;border-radius:10px;padding:8px 10px;font:inherit;background:#fff}
.cf-row{display:flex;gap:10px}.cf-row label{flex:1}
.cf-move{display:flex;gap:6px;margin:-4px 0 10px;flex-wrap:wrap}
.cf-move button{border:1px solid #d5d9e0;background:#f6f7f9;border-radius:999px;padding:6px 12px;font:inherit;font-size:.85rem;min-height:36px;cursor:pointer}
.cf-div{display:flex;gap:8px;margin:0 0 10px}
.cf-div button{flex:1;border:2px solid var(--dc);background:#fff;color:var(--dc);border-radius:12px;padding:8px;font:inherit;font-weight:700;min-height:52px;cursor:pointer}
.cf-div button small{display:block;font-weight:500;font-size:.75rem}
.cf-div button[aria-pressed="true"]{background:var(--dc);color:#fff}
/* sync alerts */
#syncAlerts{position:fixed;top:0;left:0;right:0;z-index:1300;display:flex;flex-direction:column;gap:6px;padding:calc(6px + env(safe-area-inset-top)) 8px 0;pointer-events:none}
.sa{pointer-events:auto;background:#c4001d;color:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.25);max-width:720px;margin:0 auto;width:100%;box-sizing:border-box;animation:saIn .25s ease-out}
.sa.stale{background:#b34700}
@keyframes saIn{from{transform:translateY(-20px);opacity:0}to{transform:none;opacity:1}}
.sa-t{font-weight:800;font-size:1rem}
.sa-m{font-size:.85rem;opacity:.95;margin-top:2px;word-break:break-word}
.sa-b{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}
.sa-b button{border:0;border-radius:10px;padding:8px 14px;font:inherit;font-weight:700;min-height:40px;cursor:pointer}
.sa-fix{background:#fff;color:#c4001d}
.sa-dis{background:rgba(255,255,255,.18);color:#fff}
.sa-req{font-weight:700;background:rgba(255,255,255,.18);border-radius:10px;padding:8px 12px}

/* compact phone header (v2) */
.cal-top{align-items:center}.cal-top h2{margin:0}.cal-top p{display:none}
.cal-newbtn{padding:8px 14px}
.cal-bar{flex-wrap:nowrap;margin:8px 0 2px}
.cal-views button,.cal-nav button{padding:8px 11px;min-height:42px;min-width:40px}
.cal-nav button[data-cn="0"]{padding:8px 9px}
.cal-label{margin:6px 2px 6px}
.cal-filters .chip{min-height:38px}
.cal-techf{flex:1;min-width:120px}
@media (min-width:760px){.cal-top p{display:block}}

/* compact cards (v3): a little more tap room on phones */
@media (max-width:759px){.cal-ev{padding:4px 7px;margin-top:4px}}

/* 2 weeks view (Nathan 5:11 PM Oct 27): two rows of 7 days */
.cal-2wk .cal-day{min-height:120px}
