.lfc{position:fixed;inset:0;background:rgba(10,10,10,0.45);z-index:120;display:none;padding:40px;overflow:auto;cursor:pointer}
.lfc-in{cursor:default}
.lfc.open{display:block}
.lfc-back{position:fixed;left:18px;top:16px;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 8px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--t2);font-family:inherit;font-size:12.5px;font-weight:500;z-index:130;cursor:pointer}
.lfc-back:hover{background:var(--hov);color:var(--tx)}
.lfc-back svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.lfc-in{position:relative;max-width:1180px;margin:0 auto;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:22px 24px 26px}
.lfc-head{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:18px}
.lfc-t{font-size:22px;font-weight:600;letter-spacing:-0.015em;color:var(--tx)}
.lfc-nav{display:inline-flex;align-items:center;gap:6px}
.lfc-nav button{width:30px;height:30px;border:1px solid var(--bd);background:var(--card);border-radius:6px;color:var(--t2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.lfc-nav button:hover{border-color:var(--t3);color:var(--tx)}
.lfc-nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.lfc-lbl{min-width:132px;text-align:center;font-size:14px;font-weight:500;color:var(--tx);font-variant-numeric:tabular-nums}
.lfc-lg{margin-left:auto;display:flex;gap:16px;font-size:11.5px;color:var(--t3);flex-wrap:wrap}
.lfc-lg span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.lfc-lg i{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.lfc-cal{border:1px solid var(--bd);border-radius:10px;overflow:hidden}
.lfc-wd{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--bd)}
.lfc-wd span{padding:10px 12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--t3)}
.lfc-weeks{display:flex;flex-direction:column}
.lfc-week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--bd)}
.lfc-week:last-child{border-bottom:none}
.lfc-cell{min-height:104px;padding:9px 11px;border-right:1px solid var(--bd)}
.lfc-cell:last-child{border-right:none}
.lfc-cell .dn{font-size:13px;color:var(--tx);font-variant-numeric:tabular-nums;position:relative;z-index:3}
.lfc-cell.we .dn{color:var(--t3)}
.lfc-cell.out .dn{color:var(--bd)}
.lfc-band{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 12px;font-size:12px;font-weight:500;cursor:pointer;overflow:hidden;white-space:nowrap;z-index:2;transition:filter .12s}
.lfc-band:hover{filter:brightness(0.955)}
[data-theme="dark"] .lfc-band:hover{filter:brightness(1.2)}
.lfc-band .bt{text-overflow:ellipsis;overflow:hidden;padding-top:26px}
.lfc-band.capL{box-shadow:inset 3px 0 0 0 var(--eb)}
.lfc-band.capR{box-shadow:inset -3px 0 0 0 var(--eb)}
.lfc-band.capL.capR{box-shadow:inset 3px 0 0 0 var(--eb),inset -3px 0 0 0 var(--eb)}
.lfc-band.soft{opacity:.72}
.lfc-band.t-team{background:#DBEAFE;color:#1D4ED8;--eb:#2563EB}
.lfc-band.t-trip{background:#FEF3C7;color:#92400E;--eb:#F59E0B}
.lfc-band.t-off{background:#DCFCE7;color:#15683B;--eb:#16A34A}
.lfc-band.t-bd{background:#EDE9FE;color:#5B21B6;--eb:#7C3AED}
[data-theme="dark"] .lfc-band.t-team{background:rgba(37,99,235,0.16);color:#93B4FF}
[data-theme="dark"] .lfc-band.t-trip{background:rgba(245,158,11,0.14);color:#FBBF24}
[data-theme="dark"] .lfc-band.t-off{background:rgba(22,163,74,0.14);color:#5CE08D}
[data-theme="dark"] .lfc-band.t-bd{background:rgba(124,58,237,0.18);color:#C4B5FD}
.lfc-chips{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);pointer-events:none;z-index:4}
.lfc-chips .cc{padding:32px 7px 0;display:flex;flex-direction:column;gap:4px;min-width:0;overflow:hidden}
.lfc-chip{max-width:100%;pointer-events:auto;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:6px;font-size:11.5px;font-weight:500;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lfc-chip .ct{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lfc-chip svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}
.lfc-chip:hover{filter:brightness(0.95)}
[data-theme="dark"] .lfc-chip:hover{filter:brightness(1.2)}
.lfc-chip.t-team{background:#DBEAFE;color:#1D4ED8;box-shadow:inset 3px 0 0 0 #2563EB}
.lfc-chip.t-bd{background:#EDE9FE;color:#5B21B6;box-shadow:inset 3px 0 0 0 #7C3AED}
[data-theme="dark"] .lfc-chip.t-team{background:rgba(37,99,235,0.18);color:#93B4FF}
[data-theme="dark"] .lfc-chip.t-bd{background:rgba(124,58,237,0.2);color:#C4B5FD}
.lfc-pop{position:absolute;width:280px;background:var(--card);border:1px solid var(--bd);border-radius:10px;box-shadow:0 14px 36px rgba(0,0,0,0.16);padding:14px;display:none;flex-direction:column;gap:6px;z-index:20}
.lfc-pop.open{display:flex}
.lfc-pop .pt{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--t3)}
.lfc-pop .pt i{width:7px;height:7px;border-radius:50%}
.lfc-pop .pn{font-size:14px;font-weight:600;letter-spacing:-0.01em;color:var(--tx);text-wrap:pretty}
.lfc-pop .pd{font-size:12.5px;color:var(--t2)}
.lfc-pop a{margin-top:6px;font-size:12.5px;color:var(--t2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--bd)}
.lfc-pop a:hover{color:var(--tx)}
/* Home card */
.cal-card{position:relative;display:flex;flex-direction:column;gap:14px;cursor:pointer;text-align:left;font-family:inherit;border:1px solid var(--bd);background:var(--card);border-radius:8px;padding:20px;transition:border-color .12s}
.cal-card:hover{border-color:var(--t3)}
.cal-card .cc-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.cal-card .cc-t{font-size:16px;font-weight:600;letter-spacing:-0.01em;color:var(--tx)}
.cal-card .cc-m{font-size:12.5px;color:var(--t3);font-variant-numeric:tabular-nums}
.cal-card .cc-dot{position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--ac)}
.cc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cc-grid span{height:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--t2);font-variant-numeric:tabular-nums;border-radius:4px}
.cc-grid span.wd{color:var(--t3);font-size:10px;text-transform:uppercase;letter-spacing:0.04em;height:18px}
.cc-grid span.out{color:var(--bd)}
.cc-grid span i{width:4px;height:4px;border-radius:50%}
.cal-card .cc-next{font-size:12.5px;color:var(--t2);border-top:1px solid var(--bd2);padding-top:12px}
.lfc-band.t-done{background:#E0F2FE;color:#075985;--eb:#7DD3FC}
.lfc-chip.t-done{background:#E0F2FE;color:#075985;box-shadow:inset 3px 0 0 0 #7DD3FC}
[data-theme="dark"] .lfc-band.t-done,[data-theme="dark"] .lfc-chip.t-done{background:rgba(125,211,252,0.14);color:#7DD3FC;--eb:#38BDF8}
[data-theme="dark"] .lfc-chip.t-done{box-shadow:inset 3px 0 0 0 #38BDF8}
.lfc-more{pointer-events:auto;align-self:flex-start;padding:3px 7px;border-radius:6px;background:var(--hov);border:1px solid var(--bd);color:var(--t2);font-size:11px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.lfc-more:hover{color:var(--tx);border-color:var(--t3)}
.lfc-dp{position:absolute;width:250px;background:var(--card);border:1px solid var(--bd);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,0.16);padding:6px;display:none;flex-direction:column;gap:1px;z-index:24}
.lfc-dp.open{display:flex}
.lfc-dp .dph{padding:7px 9px 5px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--t3)}
.dpr{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;border:none;background:none;border-radius:7px;font-family:inherit;font-size:12.5px;color:var(--tx);text-align:left;cursor:pointer}
.dpr:hover{background:var(--hov)}
.dpr i{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.dpr .dpn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dpr .dpt{margin-left:auto;font-size:11.5px;color:var(--t3);font-variant-numeric:tabular-nums;flex-shrink:0}

.lfc-band.sel{z-index:7;opacity:1;outline:1.5px solid var(--eb);outline-offset:-1.5px;filter:brightness(0.945) saturate(1.28)}
[data-theme="dark"] .lfc-band.sel{filter:brightness(1.32) saturate(1.15)}
.lfc-chip.sel{z-index:9;outline:1.5px solid currentColor;outline-offset:-1px;filter:brightness(0.945) saturate(1.28)}
[data-theme="dark"] .lfc-chip.sel{filter:brightness(1.28)}
.lfc-chips .cc:has(.lfc-chip.sel){z-index:9;position:relative}
