/* APPOINTMENTS · desk (.dap-*). Scoped under .dk like every desk sheet. Kind colours arrive as --kc/--kt/--kd off IB_APPTS.KINDS. */
.dk .dap-band{flex:0 0 auto;display:grid;grid-template-columns:200px 290px minmax(0,1fr);background:var(--dk-surf);border-bottom:1px solid var(--dk-line2)}
.dk .dap-band .c{padding:12px 20px 13px;border-right:1px solid var(--dk-line);min-width:0}
.dk .dap-band .c:last-child{border-right:0}
.dk .dap-band .big{font-family:var(--f-cond);font-weight:900;font-size:30px;line-height:1;margin-top:7px;letter-spacing:.02em}
.dk .dap-band .big span{font-size:15px;color:var(--dk-mut);letter-spacing:.04em;text-transform:uppercase}
.dk .dap-band .sub{font-size:11.5px;color:var(--dk-mut);margin-top:5px}
.dk .dap-band .nxb{display:grid;grid-template-columns:1fr auto;gap:3px 10px;width:100%;text-align:left;border:0;padding:0;margin-top:7px}
.dk .dap-band .nxb b{font-size:15px;font-weight:800}
.dk .dap-band .nxb .k{grid-column:1;display:flex;align-items:center;gap:7px;font-family:var(--f-mono);font-size:11px;color:var(--dk-mut)}
.dk .dap-band .nxb .cd{grid-row:1/3;grid-column:2;align-self:center;white-space:nowrap;font-family:var(--f-mono);font-weight:700;font-size:15px;color:var(--ib-electric-d);background:var(--ib-electric-t);border-radius:4px;padding:6px 9px}
.dk .dap-band .nxb .tg{grid-column:1/3;display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.dk .dap-band .nxb:hover b{color:var(--ib-electric-d)}
.dk .dap-owed{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 16px;margin-top:5px}
.dk .dap-owed button{display:grid;grid-template-columns:8px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:baseline;gap:0 8px;text-align:left;border:0;border-bottom:1px solid var(--dk-line);padding:5px 2px 6px;font-size:11.5px;line-height:1.35;min-width:0}
.dk .dap-owed button span{grid-column:2/4;grid-row:2}
.dk .dap-owed button em{grid-column:3;grid-row:1}
.dk .dap-owed button:hover{background:var(--dk-sunk)}
.dk .dap-owed .dk-dot{transform:translateY(-1px)}
.dk .dap-owed b{font-weight:800;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk .dap-owed span{color:var(--dk-mut);text-wrap:pretty}
.dk .dap-owed em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ib-electric-d)}

.dk .dap-work{flex:1 1 auto;min-height:0;display:flex}
.dk .dap-cal{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}
@media (max-height:700px){.dk .dap-legend{display:none}.dk .dap-cal{overflow-y:auto}.dk .dap-gridwrap{flex:0 0 auto;overflow:visible}}
.dk .dap-wk{padding-bottom:10px}
.dk .dap-days{display:grid;grid-template-columns:40px repeat(7,minmax(0,1fr));gap:6px}
.dk .dap-days .dkc-day{padding:8px 9px 8px}
.dk .dap-days .dkc-day.tdy{padding-top:6px}
.dk .dap-days .dkc-day .n{margin-top:3px}
.dk .dap-dots{display:flex;align-items:center;gap:3px;margin-top:5px;min-height:8px}
.dk .dap-dots i{width:7px;height:7px;border-radius:50%}
.dk .dap-dots i.x{opacity:.3}
.dk .dap-dots em{font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rust-deep);margin-left:auto;white-space:nowrap}
.dk .dkc-day.on .dap-dots em{color:#FF9B92}
.dk .dap-kf{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--dk-line2);background:var(--dk-surf);border-radius:999px;padding:5px 11px;font-size:11px;font-weight:700;color:var(--dk-sub)}
.dk .dap-kf i{width:8px;height:8px;border-radius:50%;background:var(--dk-line2)}
.dk .dap-kf.on{border-color:var(--kc);background:var(--kt);color:var(--kd)}
.dk .dap-kf.on i{background:var(--kc)}

.dk .dap-gridwrap{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 18px 14px;background:var(--dk-bg)}
.dk .dap-grid{display:grid;grid-template-columns:40px repeat(7,minmax(0,1fr));gap:6px;height:704px;position:relative}
.dk .dap-grid.day{grid-template-columns:40px minmax(0,1fr)}
.dk .dap-grid .gut,.dk .dap-grid .col{position:relative}
.dk .dap-grid .col{background:var(--dk-surf);border:1px solid var(--dk-line);border-radius:5px}
.dk .dap-grid .col.tdy{border-color:var(--ib-electric-b);box-shadow:inset 0 3px 0 var(--ib-electric)}
.dk .dap-grid .col.wkend{background:repeating-linear-gradient(135deg,var(--dk-surf) 0 8px,var(--dk-bg) 8px 9px)}
.dk .dap-grid .hr{position:absolute;left:0;right:0;border-top:1px solid var(--dk-line);height:0}
.dk .dap-grid .hr:first-child{border-top:0}
.dk .dap-grid .col .hr span{display:none}
.dk .dap-grid .gut .hr{border:0}
.dk .dap-grid .gut .hr span{position:absolute;right:4px;top:-6px;font-family:var(--f-mono);font-size:9.5px;color:var(--dk-sub)}
.dk .dap-grid .gut .hr:first-child span{top:1px}
.dk .dap-nowl{position:absolute;left:-1px;right:-1px;height:0;border-top:2px solid var(--rust);z-index:3;pointer-events:none}
.dk .dap-nowl i{position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--rust)}

.dk .dap-card{position:absolute;left:3px;right:3px;z-index:2;display:flex;flex-direction:column;gap:1px;text-align:left;border:0;border-left:3px solid var(--kc);background:var(--kt);color:var(--kd);border-radius:3px;padding:3px 6px;overflow:hidden;transition:box-shadow .12s}
.dk .dap-card:hover{box-shadow:0 0 0 1px var(--kc)}
.dk .dap-card.on{box-shadow:0 0 0 2px var(--ib-iron);z-index:4}
/* [8.15 · v8.34] a session booked over a clash: a red edge until it is moved */
.dk .dap-card.cx{box-shadow:inset 0 0 0 2px var(--rust);border-left-color:var(--rust)}.dk .dap-card.cx.on{box-shadow:inset 0 0 0 2px var(--rust),0 0 0 2px var(--ib-iron)}
.dk .dap-card .l1{display:flex;align-items:baseline;gap:5px;min-width:0;white-space:nowrap}
.dk .dap-card .l1 em{font-style:normal;font-family:var(--f-mono);font-size:9.5px;font-weight:700;opacity:.85;flex:0 0 auto}
.dk .dap-card .l1 b{font-size:11.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;color:var(--dk-fg)}
.dk .dap-card .l2{font-size:10px;font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk .dap-card .l3{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.dk .dap-card .ow{width:8px;height:8px;border-radius:50%;background:var(--rust);flex:0 0 auto;margin-left:auto;align-self:center}
.dk .dap-card .ok{margin-left:auto;font-weight:900;color:var(--turf-deep);font-size:11px}
.dk .dap-card.s-showed,.dk .dap-card.s-noshow{opacity:.78}
.dk .dap-card.s-owed{box-shadow:inset 0 0 0 1px var(--rust)}
.dk .dap-card.s-cancelled,.dk .dap-card.s-moved{background:var(--dk-bg);border-left-color:var(--dk-line2);color:var(--dk-sub);box-shadow:inset 0 0 0 1px var(--dk-line2);border-left-style:dashed}
.dk .dap-card.s-cancelled .l1 b,.dk .dap-card.s-moved .l1 b{color:var(--dk-sub);text-decoration:line-through}
.dk .dap-card.od{background-image:repeating-linear-gradient(135deg,transparent 0 6px,rgba(44,122,136,.16) 6px 8px)}
.dk .dap-card.wide{left:8px;right:auto;width:min(560px,calc(100% - 16px));padding:6px 11px;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.dk .dap-card.wide .l1 b{font-size:13px}
.dk .dap-card.wide .l1 em{font-size:10.5px}
.dk .dap-card.wide .l2{font-size:11px}
.dk .dap-card.wide .l3{flex-basis:100%;margin-top:2px}
.dk .dap-free{position:absolute;left:8px;width:min(560px,calc(100% - 16px));z-index:1;display:flex;align-items:center;justify-content:space-between;border:1px dashed var(--dk-line2);background:transparent;border-radius:3px;padding:0 10px;font-family:var(--f-mono);font-size:10px;color:var(--dk-sub);margin-top:1px}
.dk .dap-free em{font-style:normal;font-family:var(--f-body);font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ib-electric-d);opacity:0}
.dk .dap-free:hover{border-color:var(--ib-electric);background:var(--ib-electric-t);color:var(--ib-electric-d)}
.dk .dap-free:hover em{opacity:1}
.dk .dap-emptyday{position:absolute;left:50%;top:120px;transform:translateX(-50%);width:420px;max-width:90%;text-align:center;background:var(--dk-surf);border:1px solid var(--dk-line);border-radius:6px;padding:26px 24px;display:grid;gap:8px;justify-items:center;z-index:2}
.dk .dap-emptyday b{font-family:var(--f-cond);font-weight:900;font-size:19px;letter-spacing:.04em;text-transform:uppercase;color:var(--dk-mut)}
.dk .dap-emptyday span{font-size:12px;color:var(--dk-mut);text-wrap:pretty}
.dk .dap-legend{flex:0 0 auto;display:flex;align-items:center;gap:16px;padding:8px 18px;border-top:1px solid var(--dk-line);background:var(--dk-surf);font-size:10.5px;color:var(--dk-sub)}
.dk .dap-legend span{display:inline-flex;align-items:center;gap:6px}
.dk .dap-legend .sp{flex:1 1 auto}
.dk .dap-legend .sw{width:16px;height:10px;border-radius:2px;display:inline-block}
.dk .dap-legend .sw.od{background:repeating-linear-gradient(135deg,var(--dk-sunk) 0 3px,var(--dk-line2) 3px 4px)}
.dk .dap-legend .sw.gone{border:1px dashed var(--dk-line2);background:var(--dk-bg)}
.dk .dap-legend .sw.ow{border:1px solid var(--rust);background:var(--rust-t)}
.dk .dap-down{flex:0 0 auto;display:flex;align-items:center;gap:12px;background:var(--rust-t);border-bottom:1px solid var(--rust);color:var(--rust-deep);padding:10px 18px;font-size:12px}
.dk .dap-down .ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.dk .dap-down span{flex:1 1 auto}

/* ---- the panel ---- */
.dk .dap-panel{flex:0 0 420px;width:420px;border-left:1px solid var(--dk-line2);background:var(--dk-bg);display:flex;flex-direction:column;min-height:0}
.dk .dap-ph{flex:0 0 auto;background:var(--dk-surf);border-bottom:1px solid var(--dk-line);padding:14px 20px 15px}
.dk .dap-ph .tg{display:flex;align-items:center;gap:7px;margin-bottom:10px;min-height:28px}
.dk .dap-ph .x{margin-left:auto;width:28px;height:28px;border:1px solid var(--dk-line2);border-radius:4px;display:grid;place-items:center;color:var(--dk-mut)}
.dk .dap-ph .x svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.dk .dap-ph .x:hover{border-color:var(--ib-electric);color:var(--ib-electric-d)}
.dk .dap-ph h2{font-family:var(--f-cond);font-weight:900;font-size:25px;line-height:1;letter-spacing:.03em;text-transform:uppercase;margin:0 0 5px}
.dk .gone{text-decoration:line-through;color:var(--dk-sub)}
.dk .dap-when{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 9px;margin-top:11px;padding-top:11px;border-top:1px solid var(--dk-line)}
.dk .dap-when b{font-family:var(--f-mono);font-size:14.5px;font-weight:700}
.dk .dap-when span{font-size:11.5px;color:var(--dk-mut)}
.dk .dap-when em{font-style:normal;margin-left:auto;font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--ib-electric-d);background:var(--ib-electric-t);border-radius:3px;padding:2px 7px}
.dk .dap-pb{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 20px 24px;display:grid;gap:12px;align-content:start}
.dk .dap-pf{flex:0 0 auto;background:var(--dk-surf);border-top:1px solid var(--dk-line);padding:12px 20px 14px;display:grid;gap:9px}
.dk .dap-pf .dk-btn{justify-content:center;padding:11px 15px}
.dk .dap-fine{font-size:11px;color:var(--dk-mut)}
.dk .dap-kind{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 9px 3px 7px;background:var(--kt);color:var(--kd);font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.dk .dap-kind i{width:7px;height:7px;border-radius:50%;background:var(--kc)}
.dk .dap-band .dap-kind{font-family:var(--f-body)}
.dk .dap-od{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dk-mut);border:1px solid var(--dk-line2);border-radius:999px;padding:2px 8px;background:repeating-linear-gradient(135deg,var(--dk-surf) 0 4px,var(--dk-sunk) 4px 6px)}
.dk .dap-alert{display:grid;gap:3px;border-radius:5px;padding:10px 12px;font-size:12px;line-height:1.45;border:1px solid var(--dk-line);background:var(--dk-surf);text-wrap:pretty}
.dk .dap-alert b{font-weight:800}
.dk .dap-alert .r{display:flex;gap:8px;margin-top:6px}
.dk .dap-alert.red{background:var(--rust-t);border-color:var(--rust);color:var(--rust-deep)}
.dk .dap-alert.amber{background:var(--forge-t);border-color:var(--forge);color:#6B4E0A}
.dk .dap-alert.blue{background:var(--ib-electric-t);border-color:var(--ib-electric-b);color:var(--ib-electric-d)}
.dk .dap-alert.grey{background:var(--dk-sunk);color:var(--dk-mut)}
.dk .dap-alert.hatch{background:repeating-linear-gradient(135deg,var(--dk-surf) 0 7px,var(--dk-sunk) 7px 9px);color:var(--dk-fg)}
.dk .dap-alert s,.dk .dap-mvline s,.dk .dap-pick s{text-decoration-thickness:2px}
.dk .lk{border:0;padding:0;font-size:inherit;font-weight:700;color:var(--ib-electric-d)}
.dk .lk:hover{text-decoration:underline}
.dk .dap-acts{display:grid;gap:10px;background:var(--dk-surf);border:1px solid var(--dk-line);border-radius:6px;padding:12px}
.dk .dap-row2{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dk .dap-row2 .sp{flex:1 1 auto}
.dk .dap-row2 .ic,.dk .dap-row2 svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.9}
.dk .dap-pf .dk-btn svg,.dk .dk-topmeta .dk-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2}
.dk .dap-outs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dk .dap-out{display:flex;gap:9px;align-items:flex-start;text-align:left;border:1px solid var(--dk-line2);border-radius:5px;padding:10px 11px;background:var(--dk-surf)}
.dk .dap-out svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;flex:0 0 auto;margin-top:1px}
.dk .dap-out b{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.dk .dap-out em{display:block;font-style:normal;font-size:11px;color:var(--dk-mut);margin-top:2px;text-wrap:pretty}
.dk .dap-out.go{background:var(--ib-electric);border-color:var(--ib-electric);color:#fff}
.dk .dap-out.go em{color:#D6E6FA}
.dk .dap-out:hover{border-color:var(--ib-electric)}
.dk .dap-out.go:hover{background:var(--ib-electric-h)}
.dk .dap-logged{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--dk-mut)}
.dk .dap-logged .lk{margin-left:auto}
.dk .dap-sure{display:grid;gap:8px;font-size:12px}
.dk .dap-sure span{color:var(--dk-mut)}
.dk .dap-sure .r{display:flex;gap:8px}
.dk .dap-sec{background:var(--dk-surf);border:1px solid var(--dk-line);border-radius:6px;padding:12px 14px 14px;display:grid;gap:9px}
.dk .dap-sec h4{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--dk-sub);margin:0}
.dk .dap-sec h4 em{font-style:normal;font-family:var(--f-mono);font-size:10px;color:#fff;background:var(--ib-iron);border-radius:3px;padding:1px 5px;letter-spacing:0}
.dk .dap-course .hd{display:flex;align-items:baseline;gap:8px;font-size:12.5px}
.dk .dap-course .hd span{margin-left:auto;font-size:11.5px;font-weight:700}
.dk .dap-mods{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:7px 0 6px}
.dk .dap-mods i{height:8px;border-radius:2px;background:var(--dk-sunk);box-shadow:inset 0 0 0 1px var(--dk-line)}
.dk .dap-mods i.on{background:var(--forge);box-shadow:none}
.dk .dap-course .ln{font-size:11.5px;color:var(--dk-mut);text-wrap:pretty}
.dk .dap-ready{display:flex;gap:5px;flex-wrap:wrap}
.dk .dap-trail{display:grid}
.dk .dap-trail .tr{display:grid;grid-template-columns:10px 98px 44px minmax(0,1fr);align-items:baseline;gap:4px 8px;padding:6px 0;border-bottom:1px solid var(--dk-line);font-size:11.5px}
.dk .dap-trail .tr:last-child{border-bottom:0}
.dk .dap-trail .tr i{width:8px;height:8px;border-radius:50%;background:var(--dk-line2)}
.dk .dap-trail .tr.sent i{background:var(--turf)}
.dk .dap-trail .tr.due i{background:var(--surf,#fff);box-shadow:inset 0 0 0 2px var(--ib-electric)}
.dk .dap-trail .tr b{font-weight:700}
.dk .dap-trail .tr .s{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dk-sub)}
.dk .dap-trail .tr.sent .s{color:var(--turf-deep)}
.dk .dap-trail .tr.due .s{color:var(--ib-electric-d)}
.dk .dap-trail .tr .w{font-family:var(--f-mono);font-size:10.5px;color:var(--dk-mut)}
.dk .dap-trail .tr.skipped .w{font-family:var(--f-body);font-size:11px}
.dk .dap-trail .q{grid-column:2/5;font-size:11px;color:var(--dk-mut);background:var(--dk-sunk);border-radius:8px 8px 8px 2px;padding:6px 9px;margin-top:3px;text-wrap:pretty}
.dk .dap-kv{display:flex;gap:10px;font-size:12px;padding:2px 0}
.dk .dap-kv span{flex:0 0 76px;color:var(--dk-sub)}
.dk .dap-kv b{font-weight:600}
.dk .dap-pick{display:grid;margin-top:2px}
.dk .dap-pick button{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;text-align:left;border:0;border-bottom:1px solid var(--dk-line);padding:9px 4px}
.dk .dap-pick button:hover{background:var(--dk-sunk)}
.dk .dap-pick b{font-size:13px;font-weight:700}
.dk .dap-pick .ow{flex-basis:100%;font-size:11px;color:var(--forge-deep)}
.dk .dap-kopts{display:grid;gap:6px}
.dk .dap-kopt{display:grid;gap:2px;text-align:left;border:1px solid var(--dk-line2);border-left:4px solid var(--kc);border-radius:4px;padding:8px 11px;background:var(--dk-surf)}
.dk .dap-kopt b{font-size:12.5px;font-weight:800}
.dk .dap-kopt span{font-size:11px;color:var(--dk-mut)}
.dk .dap-kopt.on{background:var(--kt);border-color:var(--kc);box-shadow:inset 0 0 0 1px var(--kc)}
.dk .dap-kopt:disabled{opacity:.55;border-left-color:var(--dk-line2);cursor:not-allowed;background:var(--dk-bg)}
.dk .dap-slotbox{display:grid;gap:10px}
.dk .dap-dayrow{display:grid;grid-template-columns:22px repeat(7,minmax(0,1fr)) 22px;gap:4px;align-items:stretch}
.dk .dap-dayrow .nv{border:1px solid var(--dk-line2);border-radius:4px;color:var(--dk-mut);font-size:13px;padding:0}
.dk .dap-dayrow .nv:disabled{opacity:.35;cursor:default}
.dk .dap-dc{display:grid;justify-items:center;gap:0;border:1px solid var(--dk-line);border-radius:4px;padding:5px 0 4px;background:var(--dk-surf);min-width:0}
.dk .dap-dc em{font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dk-sub)}
.dk .dap-dc b{font-family:var(--f-cond);font-weight:900;font-size:17px;line-height:1.1}
.dk .dap-dc span{font-size:8.5px;font-weight:700;color:var(--turf-deep);white-space:nowrap}
.dk .dap-dc.nil{background:var(--dk-bg)}
.dk .dap-dc.nil span{color:var(--dk-sub)}
.dk .dap-dc.on{background:var(--ib-iron);border-color:var(--ib-iron);color:#fff}
.dk .dap-dc.on em,.dk .dap-dc.on span{color:var(--ib-silver)}
.dk .dap-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.dk .dap-sl{border:1px solid var(--dk-line2);border-radius:4px;padding:7px 0;font-family:var(--f-mono);font-size:11.5px;font-weight:700;background:var(--dk-surf);display:grid;justify-items:center}
.dk .dap-sl em{font-style:normal;font-family:var(--f-body);font-size:8.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.dk .dap-sl:hover{border-color:var(--ib-electric);color:var(--ib-electric-d)}
.dk .dap-sl.on{background:var(--ib-electric);border-color:var(--ib-electric);color:#fff}
.dk .dap-sl.taken{background:var(--dk-bg);color:var(--dk-sub);text-decoration:line-through;border-style:dashed;cursor:not-allowed}
.dk .dap-sl.taken em{text-decoration:none}
.dk .dap-none{font-size:11.5px;color:var(--dk-mut);text-wrap:pretty}
.dk .dap-any{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dk .dap-any .dap-alert{grid-column:1/3}
.dk .dap-tog{display:flex;align-items:center;gap:9px;border:0;padding:2px 0;text-align:left;font-size:12px;font-weight:600}
.dk .dap-tog i{flex:0 0 auto;width:30px;height:17px;border-radius:999px;background:var(--dk-line2);position:relative;transition:background .12s}
.dk .dap-tog i:after{content:"";position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:left .12s}
.dk .dap-tog.on i{background:var(--ib-electric)}
.dk .dap-tog.on i:after{left:15px}
.dk .dap-bubble{font-size:12px;background:var(--ib-electric);color:#fff;border-radius:12px 12px 3px 12px;padding:9px 12px;margin-left:34px;text-wrap:pretty}
.dk .dap-coach{display:flex;align-items:center;gap:10px}
.dk .dap-mvline{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-family:var(--f-mono);font-size:13.5px;margin-top:10px;padding-top:10px;border-top:1px solid var(--dk-line)}
.dk .dap-mvline s{color:var(--dk-sub)}
.dk .dap-mvline svg{width:15px;height:15px;stroke:var(--dk-sub);fill:none;stroke-width:2}
.dk .dap-mvline b{color:var(--ib-electric-d)}
.dk .dap-mvline em{font-family:var(--f-body);font-style:normal;font-size:12px;color:var(--dk-sub)}
.dk .dap-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ib-iron);color:#fff;border-radius:6px;padding:11px 16px;font-size:12.5px;font-weight:600;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:620px}

/* [8.4] PT */
.dk .dap-panel.wide{flex-basis:540px;width:540px}
.dk .dap-ntb{justify-self:start}
.dk .dap-ptsc{display:flex;align-items:baseline;gap:9px;background:#E4F4EC;border-radius:5px;padding:9px 12px;font-size:12px;color:#137A4A}
.dk .dap-ptsc b{font-family:var(--f-mono);font-size:17px;color:#12161A}
.dk .dap-ptsc em{font-style:normal;margin-left:auto;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.dk .dap-pf .dk-btn:disabled{opacity:.45;cursor:default}
.dk .dap-bare{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;position:relative;height:100%}
.dk .dkc-wkhd .dk-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.2}
/* [8.7] rostered classes = blocked time */
.dk .dap-cls{position:absolute;left:3px;right:3px;z-index:1;border:1px solid #9AA6B2;border-radius:4px;padding:3px 6px;text-align:left;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:1px;color:#3A424C;background:repeating-linear-gradient(135deg,#E6EAEE 0 5px,#D6DCE2 5px 7px)}
.dk .dap-cls:hover{border-color:#5B6672}
.dk .dap-cls .l1{display:flex;gap:5px;align-items:baseline;font-size:10.5px;white-space:nowrap;overflow:hidden}
.dk .dap-cls .l1 em{font-style:normal;font-family:var(--f-mono);font-size:9.5px;font-weight:700}
.dk .dap-cls .l1 b{font-weight:800;overflow:hidden;text-overflow:ellipsis}
.dk .dap-cls .l2{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5B6672}
.dk .dap-cls.wide{left:6px;right:auto;width:46%}
.dk .dap-legend .sw.cls{background:repeating-linear-gradient(135deg,#E6EAEE 0 3px,#C3CCD6 3px 5px);border:1px solid #9AA6B2}
.dk .dap-sl.taken em{font-style:normal}
/* [8.9] every coach: coach dots, gaps, side by side, a column a coach */
.dk .dap-cw{flex:0 0 auto;width:14px;height:14px;border-radius:50%;color:#fff;font-style:normal;font-family:var(--f-body);font-size:8.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;align-self:center}
.dk .dap-card .l1,.dk .dap-cls .l1{min-width:0}
.dk .dap-cls.gap{background:#FBEAE8;border:1.5px solid #C4392E;color:#96261D}
.dk .dap-cls.gap .l2{color:#96261D}
.dk .dap-more{position:absolute;left:calc(50% + 2px);width:calc(50% - 4px);z-index:3;border:1px dashed #9AA6B2;background:#fff;border-radius:4px;font-family:var(--f-mono);font-weight:700;font-size:12px;color:#12161A;cursor:pointer;display:flex;align-items:flex-start;justify-content:center;padding-top:4px}
.dk .dap-more:hover{border-style:solid;border-color:#12161A}
.dk .dap-lanehs{position:sticky;top:-10px;z-index:6;display:grid;gap:6px;margin:-10px 0 6px;padding:10px 0 6px;background:var(--dk-bg)}
.dk .dap-laneh{display:flex;align-items:center;gap:6px;padding:6px 9px;background:#fff;border:1px solid var(--dk-line);border-radius:5px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#12161A}
.dk .dap-laneh i{width:8px;height:8px;border-radius:50%}
.dk .dap-grid .col.gapl{background:#FFF8F7}
.dk .dap-cdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}
.dk .dap-legend .sw.gap{background:#FBEAE8;border:1.5px solid #C4392E}
.dk .dap-laneh.gapl{background:#FFF8F7;border-color:#E8B4AE;color:#96261D}
/* [8.15 · v8.34] repeat a PT booking */
.dk .dap-rep{display:grid;gap:10px;margin-top:8px}.dk .dap-rep .dk-lab{min-width:72px}
.dk .dap-repl{display:grid;border:1px solid var(--dk-line);border-radius:8px;overflow:hidden;background:var(--dk-surf)}
.dk .dap-repl>div{display:flex;align-items:center;gap:10px;min-height:32px;padding:0 12px;border-top:1px solid var(--dk-line);font-size:12.5px}.dk .dap-repl>div:first-child{border-top:0}
.dk .dap-repl i{font-style:normal;font-family:var(--f-mono);font-size:11px;color:var(--dk-sub);width:16px}.dk .dap-repl span{font-family:var(--f-mono);color:var(--dk-mut)}.dk .dap-repl .dk-tag{margin-left:auto}
/* a date booked over a clash: booked, in red */
.dk .dap-repl>div.ov{background:var(--rust-t)}.dk .dap-repl>div.ov b,.dk .dap-repl>div.ov>span:not(.dk-tag){color:var(--rust-deep)}
