/* Beachside Platform — shared theme (light) */
:root{--bg:#f3f5f9;--panel:#ffffff;--panel2:#eef1f7;--line:#dce1ec;--txt:#1b2436;--mut:#5f6b82;--accent:#ef6c00;--chart:#3f6f9f;--new:#2f6fed;--contact:#b9790c;--won:#1f9d57;--lost:#d6455f;--work:#b9790c;--done:#1f9d57;--hi:#d6455f;--med:#b9790c;--lo:#8a93a6}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt)}
a{color:var(--new)}
.hidden{display:none!important}

/* top app bar */
.appbar{display:flex;align-items:center;gap:10px;padding:8px 18px;background:var(--nav-bg,#27567a);border-bottom:3px solid var(--nav-stripe,#5f91b2);flex-wrap:wrap;box-shadow:0 2px 6px rgba(20,30,50,.12)}
.appbar .brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:14px;margin-right:6px;color:var(--nav-text,#fff)}.appbar .brand .blogo{height:30px;width:auto;display:block}.appbar .brand .o{color:#e3d4ad;font-weight:600}
.modnav{display:flex;gap:3px;flex-wrap:wrap;flex:1}
.modnav a{color:var(--nav-text-dim,#c4d6e6);text-decoration:none;font-size:13px;font-weight:700;padding:6px 11px;border-radius:8px}
.modnav a.on{background:var(--nav-overlay,rgba(255,255,255,.18));color:var(--nav-text,#fff)}.modnav a:hover{color:var(--nav-text,#fff)}
.navbadge{display:inline-block;min-width:16px;text-align:center;background:#d6455f;color:#fff;font-size:10px;font-weight:800;border-radius:20px;padding:0 5px;line-height:16px;margin-left:4px;vertical-align:middle}
.navgroup{position:relative}
.navgroup>button{font-family:inherit;background:none;border:0;color:var(--nav-text-dim,#c4d6e6);font-size:13px;font-weight:700;padding:6px 11px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:5px}
.navgroup>button:hover{color:var(--nav-text,#fff)}
.navgroup.active>button{background:var(--nav-overlay,rgba(255,255,255,.18));color:var(--nav-text,#fff)}
.navgroup>button .ca{font-size:8px;opacity:.55}
.navmenu{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(20,30,50,.16);padding:6px;min-width:185px;display:none;z-index:60}
.navgroup:hover .navmenu,.navgroup.open .navmenu{display:block}
.navmenu::before{content:"";position:absolute;left:0;right:0;top:-7px;height:7px}
.navmenu a{display:block;color:var(--mut);text-decoration:none;font-size:13px;font-weight:600;padding:8px 11px;border-radius:7px;white-space:nowrap}
.navmenu a:hover{background:var(--panel2);color:var(--txt)}
.navmenu a.on{background:var(--panel2);color:var(--accent)}
.whoami{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--nav-text-dim,#cdd8ea)}
.whoami b{color:var(--nav-text,#fff)}
.rolepill{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:2px 7px;border-radius:20px;background:#ece8fb;color:#6b4ed6}
.rolepill.admin{background:#fdf0d8;color:#9a6a12}.rolepill.manager{background:#d8f3f6;color:#0d7d8c}
.signout{background:var(--nav-overlay,rgba(255,255,255,.10));border:1px solid var(--nav-overlay-strong,rgba(255,255,255,.28));color:var(--nav-text-dim,#cdd8ea);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer}
.signout:hover{color:var(--nav-text,#fff);border-color:#f5934a}

header{padding:16px 20px;border-bottom:1px solid var(--line);background:#ffffff}
.h-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.logo{font-weight:800;font-size:18px;letter-spacing:.3px}.logo .o{color:var(--accent)}
.sub{color:var(--mut);font-size:12px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:110px}
.stat .n{font-size:20px;font-weight:700}.stat .l{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
.stat.recovered .n,.stat.done .n{color:var(--won)}.stat.table .n,.stat.open .n{color:var(--accent)}.stat.lost .n,.stat.hi .n{color:var(--lost)}

.controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.seg{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{background:none;border:0;color:var(--mut);padding:8px 12px;font-size:13px;cursor:pointer;font-weight:600}
.seg button.on{background:var(--panel2);color:var(--txt)}.seg button .c{font-size:11px;color:var(--mut);margin-left:4px}
input.search,select.search{background:var(--panel);border:1px solid var(--line);color:var(--txt);border-radius:9px;padding:8px 12px;font-size:13px;min-width:180px}
.chkwrap{display:flex;align-items:center;gap:6px;color:var(--mut);font-size:13px}
.btn-ghost{background:var(--panel);border:1px solid var(--line);color:var(--mut);border-radius:9px;padding:8px 12px;font-size:13px;cursor:pointer}
.add{background:var(--accent);border:0;color:#fff;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:800;cursor:pointer}

.board{display:grid;gap:14px;padding:18px 20px;align-items:start;overflow-x:auto}
.board.myday{display:block;overflow:visible}
.board.dash{display:block;overflow:visible}
.col{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-height:60px}
.col h2{font-size:13px;margin:0;padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.col h2 .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}
.col h2 .ct{color:var(--mut);font-weight:600}
.col.new .dot{background:var(--new)}.col.contacted .dot,.col.reached .dot{background:var(--contact)}.col.won .dot,.col.rebooked .dot{background:var(--won)}.col.lost .dot{background:var(--lost)}.col.attempted .dot{background:#c98b3b}.col.partial .dot{background:#3fb0a0}
.col .body{padding:10px;display:flex;flex-direction:column;gap:9px;max-height:72vh;overflow:auto}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;cursor:pointer;transition:.12s;border-left:3px solid var(--line);box-shadow:0 1px 2px rgba(20,30,50,.04)}
.card:hover{border-color:#c2cbdc;transform:translateY(-1px);background:#f7f9fc}
.card.c-charlie{border-left-color:#7c5cff}.card.c-waldo{border-left-color:#1fb6c9}.card.c-unassigned{border-left-color:#9aa6bd}
.card.sev-high{border-left-color:var(--hi)}.card.sev-med{border-left-color:var(--med)}.card.sev-low{border-left-color:var(--lo)}
.card .cust{font-weight:700;font-size:14px}.card .veh{color:var(--mut);font-size:12px;margin-top:1px}
.card .desc{font-size:12px;color:#455067;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .row{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:6px;flex-wrap:wrap}
.amt{font-weight:800;color:var(--accent);font-size:14px}
.chip{font-size:10px;padding:2px 7px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;background:#e7ebf3;color:#5f6b82}
.chip.charlie{background:#ece8fb;color:#6b4ed6}.chip.waldo{background:#d8f3f6;color:#0d7d8c}
.badge{font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}
.badge.high{background:#fde0e5;color:#c0334a}.badge.med{background:#fdf0d6;color:#9a6a12}.badge.low{background:#e7ebf3;color:#5f6b82}
.badge.won{background:#d6f3e3;color:#137a42}.badge.lost{background:#fde0e5;color:#c0334a}
.badge.comeback{background:#d8f3f6;color:#0d7d8c}.badge.complaint{background:#ece8fb;color:#6b4ed6}.badge.waiting{background:#efe6fb;color:#7a4ec9}
.meta{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--mut)}
.due{font-weight:700}.due.over{color:var(--lost)}.due.soon{color:var(--contact)}
.empty{color:var(--mut);font-size:12px;text-align:center;padding:16px}
.pstep{font-size:11px;color:var(--mut);margin-top:8px;font-weight:600}
.pbar{height:5px;background:#e7ebf3;border-radius:4px;margin-top:5px;overflow:hidden}.pbar i{display:block;height:100%;background:var(--work)}

/* My Day task rows */
.mydaywrap{max-width:820px;margin:0 auto}
.tgrp{margin-bottom:18px}
.tgh{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);margin:0 0 8px;display:flex;gap:8px;align-items:center}
.tgh span{background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:1px 8px;font-size:11px}
.task{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:11px 13px;margin-bottom:8px;cursor:pointer;text-decoration:none;color:inherit}
.task:hover{background:#f1f4fa}
.task.sev-high{border-left-color:var(--hi)}.task.sev-med{border-left-color:var(--med)}.task.sev-low{border-left-color:var(--lo)}
.tmod{font-size:9px;text-transform:uppercase;letter-spacing:.4px;color:var(--mut);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:3px 6px;white-space:nowrap}
.tmain{flex:1;min-width:0}.tcust{font-weight:700;font-size:14px}.tveh{color:var(--mut);font-size:12px}
.tright{text-align:right}.tdue{font-size:11px;color:var(--mut);font-weight:700}.tdue.over{color:var(--lost)}
.allclear{text-align:center;color:var(--mut);padding:40px 20px;font-size:15px}

/* modal */
.ov{position:fixed;inset:0;background:rgba(23,33,54,.4);display:none;align-items:flex-start;justify-content:center;padding:30px 14px;z-index:50;overflow:auto}
.ov.on{display:flex}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;max-width:580px;width:100%;overflow:hidden;box-shadow:0 12px 40px rgba(20,30,50,.18)}
.m-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}
.m-head .x{background:none;border:0;color:var(--mut);font-size:22px;cursor:pointer;line-height:1}
.m-body{padding:16px 18px;max-height:66vh;overflow:auto}
.kv{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--mut);margin-bottom:10px}.kv a{color:var(--new);text-decoration:none}
.sec-t{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);margin:14px 0 7px}
.fld{margin-bottom:10px}
.fld label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--mut);margin-bottom:4px}
.fld input,.fld select,.fld textarea{width:100%;background:#ffffff;border:1px solid var(--line);color:var(--txt);border-radius:9px;padding:9px;font-size:13px;font-family:inherit}
.fld textarea{min-height:60px;resize:vertical}
.two{display:flex;gap:10px}.two>div{flex:1}
input[type=date]{color-scheme:light}
.grp{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grp.two button{flex:1;min-width:140px}
.b{border:1px solid var(--line);background:var(--panel2);color:var(--txt);padding:10px;border-radius:9px;cursor:pointer;font-size:13px;font-weight:600}
.b:hover{border-color:var(--accent)}.b.sm{padding:8px 10px;font-size:12px}
.b.win{border-color:#7cc9a3;background:#e3f6ec;color:#137a42}.b.win:hover{border-color:var(--won)}
.b.dec{border-color:#e6a6b3;background:#fde7eb;color:#c0334a}.b.dec:hover{border-color:var(--lost)}
.note{width:100%;background:#ffffff;border:1px solid var(--line);color:var(--txt);border-radius:9px;padding:8px;font-size:13px;margin-top:10px;font-family:inherit}
.log{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.log .e{font-size:12px;color:var(--mut);border-left:2px solid var(--line);padding:2px 0 2px 9px}.log .e b{color:var(--txt)}
.steps{display:flex;gap:6px;flex-wrap:wrap}
.step{flex:1;min-width:140px;border:1px solid var(--line);background:var(--panel2);color:var(--mut);border-radius:8px;padding:8px 9px;font-size:11px;cursor:pointer;text-align:left;font-weight:600}
.step .num{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:var(--line);color:var(--txt);font-size:10px;margin-right:5px}
.step.done{color:#137a42;border-color:#7cc9a3;background:#e3f6ec}.step.done .num{background:var(--done);color:#fff}

/* data tables */
.dashwrap{max-width:980px;margin:0 auto}
.dt{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13px}
.dt th,.dt td{padding:9px 12px;text-align:right;border-top:1px solid var(--line)}
.dt th:first-child,.dt td:first-child{text-align:left}
.dt thead th{background:var(--panel2);color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.4px;border-top:0;cursor:default}
.dt td.g{color:var(--won);font-weight:700}.dt td.r{color:var(--lost)}.dt td.o{color:var(--accent)}
.dt tr.tot td{font-weight:800;border-top:2px solid var(--line)}
.dt tr.clk{cursor:pointer}.dt tr.clk:hover td{background:#f1f4fa}
.dh{font-size:13px;color:var(--mut);margin:18px 0 8px}

.foot{padding:10px 20px;color:var(--mut);font-size:11px;text-align:center;border-top:1px solid var(--line)}
.loading{text-align:center;color:var(--mut);padding:50px 20px;font-size:14px}

/* shared record-modal extras (used by bs-modals.js everywhere) */
.scbox{background:#f1f4fa;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin:8px 0;font-size:13px}
.salesctx{margin:2px 0 6px;padding-left:18px}.salesctx li{font-size:13px;margin:2px 0}
.lnk{background:none;border:0;color:var(--new);font-size:12px;font-weight:700;cursor:pointer;text-decoration:underline;padding:0 0 0 10px}
.jobhead{display:flex;justify-content:space-between;align-items:center;margin:14px 0 4px}.jobhead .sec-t{margin:0}
.jobs{border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-top:6px}
.jobs .j{display:flex;align-items:center;gap:10px;padding:9px 11px;font-size:13px;border-top:1px solid var(--line)}
.jobs .j:first-child{border-top:0}.jobs .j.res{opacity:.65}
.jobs .j input{width:16px;height:16px;accent-color:var(--accent);flex:none}
.jobs .j .t{flex:1}.jobs .j .cat{color:var(--mut);font-size:11px}
.jobs .j .p{color:var(--accent);font-weight:700;white-space:nowrap}.jobs .j.res .p{color:var(--mut)}
.prib{font-size:10px;font-weight:800;padding:2px 6px;border-radius:5px;white-space:nowrap}.prib.p1{background:#fde0e5;color:#c0334a}.prib.p2{background:#fdf0d6;color:#9a6a12}.prib.p3{background:#e7ebf3;color:#5f6b82}
.skv{display:grid;grid-template-columns:160px 1fr;gap:3px 12px;font-size:13px;margin-bottom:4px}.skv .k{color:var(--mut)}

@media(max-width:900px){.board{grid-template-columns:1fr!important}}

/* My Day dashboard tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;padding:6px 20px 28px;max-width:1120px;margin:0 auto}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(20,30,50,.04)}
.tile.alert{border-color:#e6a6b3}
.tile h3{margin:0;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.tile h3 .cnt{font-size:22px;font-weight:800}
.tile h3 .cnt.lost{color:var(--lost)}.tile h3 .cnt.won{color:var(--won)}.tile h3 .cnt.accent{color:var(--accent)}
.tile .tsub{font-size:12px;color:var(--mut);margin:3px 0 10px}
.tile .mini{display:flex;flex-direction:column;gap:6px;flex:1}
.tile .mrow{display:flex;justify-content:space-between;gap:8px;font-size:12px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 9px;cursor:pointer}
.tile .mrow:hover{border-color:var(--accent)}
.tile .mrow .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .mrow .dd{color:var(--mut);white-space:nowrap}.tile .mrow .dd.over{color:var(--lost)}
.tile .clear{font-size:12px;color:var(--mut);padding:8px 2px}
.tile .tfoot{margin-top:10px}
.tile .tfoot a{font-size:12px;font-weight:700;text-decoration:none;color:var(--accent)}
.tile.gauge{align-items:center;text-align:center}
.tile.gauge .gline{font-size:12px;color:var(--mut);margin-top:2px}
