.cal{z-index:30;background:var(--card);border:1px solid var(--line);border-radius:10px;outline:none;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;bottom:calc(100% + 18px);left:0;right:0;box-shadow:0 6px 24px #00000024}.cal[hidden]{display:none}.shell>.tools .cal button{white-space:nowrap;min-height:0;margin:0;font-family:inherit}.shell>.tools .cal .calcnow{border:1px solid var(--line);background:var(--card);height:28px;color:var(--ink);border-radius:6px;padding:0 10px;font-size:12px;font-weight:700}.shell>.tools .cal .calcnow:hover{background:var(--bg)}.calnav{justify-content:center;align-items:center;gap:10px;display:flex}.calnav strong{font-variant-numeric:tabular-nums;font-size:15px}.shell>.tools .calnav button{border:1px solid var(--line);background:var(--card);width:30px;height:28px;color:var(--ink);border-radius:6px;padding:0;font-size:16px;line-height:1}.shell>.tools .calnav button:hover{background:var(--bg)}.calgrid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calwd{text-align:center;color:var(--muted);padding:2px 0;font-size:11px}.calwd.sun{color:var(--danger)}.calwd.sat{color:#2f6fb0}.calempty{display:block}.shell>.tools .cal .calday{background:var(--card);height:38px;color:var(--ink);cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;display:flex}.shell>.tools .cal .calday:hover{background:var(--bg)}.calday b{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1}.calday i{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:8.5px;font-style:normal;line-height:1.1;overflow:hidden}.shell>.tools .cal .calday.sun b,.shell>.tools .cal .calday.sun i{color:var(--danger)}.shell>.tools .cal .calday.sat b{color:#2f6fb0}.shell>.tools .cal .calday.today{border-color:var(--accent)}.shell>.tools .cal .calday.on{background:var(--accent);border-color:var(--accent)}.shell>.tools .cal .calday.on b,.shell>.tools .cal .calday.on i{color:#fff}.caltime{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.caltime__d{color:var(--ink);font-size:13px;font-weight:700}.calslots{grid-template-columns:repeat(4,1fr);gap:4px;max-height:118px;display:grid;overflow:auto}.shell>.tools .cal .calslots button{border:1px solid var(--line);background:var(--card);height:28px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:6px;padding:0;font-size:12px}.shell>.tools .cal .calslots button:hover{background:var(--bg)}.shell>.tools .cal .calslots button.on{background:var(--accent);border-color:var(--accent);color:#fff}.calfoot{align-items:center;gap:6px;display:flex}.calfoot select{border:1px solid var(--line);background:var(--card);height:30px;color:var(--ink);border-radius:6px;padding:0 6px;font-family:inherit;font-size:12px}.shell>.tools .cal .calbook{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:6px;flex:1;height:30px;padding:0 8px;font-size:12px;font-weight:700}.shell>.tools .cal .calbook:disabled{opacity:.5;cursor:not-allowed}.calnote{color:var(--muted);font-size:10.5px;line-height:1.5}.callink{background:var(--bg);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:11.5px;display:flex}.callink__on{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.callink__off{color:var(--muted)}.shell>.tools .cal .callink__btn{border:1px solid var(--line);background:var(--card);height:24px;color:var(--ink);border-radius:5px;flex:none;padding:0 10px;font-size:11px;font-weight:700}.shell>.tools .cal .callink__btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.calmsg{color:var(--accent);font-size:11.5px;line-height:1.5}.shell>.tools .cal .calday.lv-free{background:#eaf5fb}.shell>.tools .cal .calday.lv-some{background:#fdf6e3}.shell>.tools .cal .calday.lv-half{background:#fbe6d8}.shell>.tools .cal .calday.lv-full{background:#f6d2cd}.shell>.tools .cal .calday.lv-free:hover{background:#dcedf7}.shell>.tools .cal .calday.lv-some:hover{background:#f8eece}.shell>.tools .cal .calday.lv-half:hover{background:#f6d9c5}.shell>.tools .cal .calday.lv-full:hover{background:#f0c0b8}.calday{position:relative}.calday em{color:#8a4a3c;font-variant-numeric:tabular-nums;font-size:8px;font-style:normal;line-height:1;position:absolute;top:1px;right:2px}.callegend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:10px;display:flex}.callegend .lg{border:1px solid #00000014;border-radius:3px;width:11px;height:11px;margin-left:6px}.callegend .lg:first-child{margin-left:0}.callegend .lg.free{background:#eaf5fb}.callegend .lg.some{background:#fdf6e3}.callegend .lg.half{background:#fbe6d8}.callegend .lg.full{background:#f6d2cd}.daybox{outline:none;flex-direction:column;gap:7px;display:flex}.dayhd{align-items:center;gap:8px;display:flex}.dayhd strong{color:var(--ink);font-size:13px;line-height:1.4}.shell>.tools .cal .daynav{border:1px solid var(--line);background:var(--card);height:24px;color:var(--ink);border-radius:5px;flex:none;padding:0 9px;font-size:11px;font-weight:700}.shell>.tools .cal .daynav:hover{background:var(--bg)}.dayall{color:var(--muted);background:var(--bg);border-radius:5px;padding:4px 7px;font-size:10.5px;line-height:1.5}.daygrid{border:1px solid var(--line);background:var(--card);border-radius:7px;gap:4px;max-height:212px;padding:6px 6px 6px 0;display:flex;overflow:auto}.dayruler{flex:none;width:34px;position:relative}.dayruler span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:9px;position:absolute;right:4px}.daylanes{border-left:1px solid var(--line);touch-action:none;cursor:crosshair;flex:1;position:relative}.dayhour{border-top:1px solid var(--line);display:block;position:absolute;left:0;right:0}.dayhour:nth-child(2n){background:#00000003}.dayev{color:#24435f;background:#dce9f6;border-left:2px solid #7aa7d1;border-radius:3px;padding:0 4px;font-size:9px;line-height:1.25;position:absolute;overflow:hidden}.dayev b{font-variant-numeric:tabular-nums;font-weight:600}.daysel{border:1.5px solid var(--accent);background:#2f6db738;border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute;left:0;right:0}.daysel__t{color:var(--accent);white-space:nowrap;background:#ffffffe0;border-radius:3px;padding:0 4px;font-size:9.5px;font-weight:700}.daysel__grip{cursor:ns-resize;height:10px;position:absolute;left:0;right:0}.daysel__grip.top{top:-5px}.daysel__grip.bottom{bottom:-5px}.dayform{flex-direction:column;gap:6px;display:flex}.dayrow{color:var(--muted);align-items:center;gap:6px;font-size:10.5px;display:flex}.dayrow label{align-items:center;gap:4px;display:flex}.dayrow input[type=time]{border:1px solid var(--line);background:var(--card);width:84px;height:26px;color:var(--ink);border-radius:5px;padding:0 4px;font-family:inherit;font-size:12px}.daylen{color:var(--ink);margin-left:auto;font-size:12px;font-weight:700}.dayquick{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.shell>.tools .cal .dayquick button{border:1px solid var(--line);background:var(--card);height:24px;color:var(--ink);border-radius:12px;padding:0;font-size:10.5px}.shell>.tools .cal .dayquick button:hover{background:var(--bg)}.shell>.tools .cal .dayquick button.on{background:var(--accent);border-color:var(--accent);color:#fff}.dayfield{color:var(--muted);flex-direction:column;gap:2px;font-size:10.5px;display:flex}.dayfield input{border:1px solid var(--line);background:var(--card);height:28px;color:var(--ink);border-radius:5px;padding:0 7px;font-family:inherit;font-size:12px}.daycheck{color:var(--ink);align-items:center;gap:5px;font-size:11px;display:flex}.dayerr{color:var(--danger);font-size:11px;line-height:1.5}.dayfoot{align-items:center;gap:6px;display:flex}.shell>.tools .cal .daycancel{border:1px solid var(--line);background:var(--card);height:32px;color:var(--ink);border-radius:7px;flex:none;padding:0 12px;font-size:12px}.shell>.tools .cal .daycancel:hover{background:var(--bg)}.shell>.tools .cal .daybox .calbook{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:7px;flex:1;height:32px;padding:0 8px;font-size:12px;font-weight:700}.shell>.tools .cal .daybox .calbook:disabled{opacity:.5;cursor:not-allowed}.cal{max-height:min(660px,100vh - 150px);overflow:auto}
