.cal-loading{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);justify-content:center;align-items:center;min-height:480px;display:flex}.cal-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.cal-month{align-items:baseline;gap:var(--sp-3);display:flex}.cal-month-y{font-family:var(--mono);letter-spacing:.14em;color:var(--accent-ink);font-size:14px}.cal-month-m{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:clamp(26px,4vw,38px);font-weight:700;line-height:1}.cal-nav{align-items:center;gap:var(--sp-2);display:flex}.cal-nav-btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);width:34px;height:34px;color:var(--text);cursor:pointer;transition:filter var(--dur-fast) var(--ease);font-size:16px;line-height:1}.cal-nav-btn:hover{filter:brightness(.96)}.cal-nav-lbl{font-family:var(--display);text-align:center;min-width:130px;font-size:15px;font-weight:600}.cal-today-btn{font-family:var(--mono);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:filter var(--dur-fast) var(--ease);padding:8px 12px;font-size:12px}.cal-today-btn:hover{filter:brightness(.96)}.cal-ctl{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-top:var(--sp-5);flex-wrap:wrap;display:flex}.cal-filters{gap:var(--sp-2);flex-wrap:wrap;display:flex}.cal-fbtn{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border-radius:999px;padding:7px 12px;font-size:11px}.cal-fbtn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.cal-fstack{gap:var(--sp-3);flex-direction:column;display:flex}.cal-legend{font-family:var(--mono);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px 16px;font-size:11px;display:flex}.cal-lg{align-items:center;gap:6px;display:inline-flex}.cal-lg--note b{color:var(--text);font-weight:600}.cal-lg--note{padding-right:var(--sp-3);border-right:1px solid var(--line)}.cal-sw{border-radius:3px;flex:none;width:10px;height:10px}.cal-scroll{margin-top:var(--sp-5);-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-grid{min-width:860px}.cal-rotate{display:none}@media (max-width:720px) and (orientation:portrait){.cal-rotate{margin-top:var(--sp-5);border:var(--hairline) solid var(--line-light);border-radius:var(--radius);background:color-mix(in srgb, var(--dgreen) 8%, var(--card));color:var(--on-light);align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.cal-rotate__icon{color:var(--dgreen);flex:none;font-size:18px}}.cal-dow{grid-template-columns:repeat(7,1fr);display:grid}.cal-dow div{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:0 0 10px 8px;font-size:10px}.cal-week{border:1px solid var(--line);background:var(--surface);border-top:0;position:relative}.cal-week:first-of-type{border-top:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}.cal-week:last-of-type{border-radius:0 0 var(--radius) var(--radius)}.cal-wnums{grid-template-columns:repeat(7,1fr);display:grid}.cal-n{font-family:var(--mono);color:var(--text-muted);text-align:right;border:0;border-right:1px solid var(--line);background:0 0;padding:7px 8px;font-size:12px}.cal-n:last-child{border-right:0}button.cal-n{cursor:pointer}button.cal-n:hover{color:var(--text)}.cal-n--out{color:color-mix(in srgb, var(--text-muted) 55%, transparent);background:color-mix(in srgb, var(--ground) 60%, var(--surface))}.cal-n--wend{background:color-mix(in srgb, var(--ground) 38%, var(--surface))}.cal-n--today{color:var(--card);background:var(--dgreen);font-weight:500}.cal-lanes{background:repeating-linear-gradient(to right, transparent, transparent calc(100% / 7 - 1px), var(--line) calc(100% / 7 - 1px), var(--line) calc(100% / 7));padding:4px 0;position:relative}.cal-bar{height:24px;font-family:var(--body);color:#fff;text-align:left;white-space:nowrap;cursor:pointer;transition:filter var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);border:0;border-radius:6px;align-items:center;gap:6px;padding:0 9px;font-size:11.5px;display:flex;position:absolute;overflow:hidden;box-shadow:0 1px #00000014}.cal-bar:hover{filter:brightness(1.06);transform:translateY(-1px)}.cal-bar b{text-overflow:ellipsis;font-weight:500;overflow:hidden}.cal-bar-tag{font-family:var(--mono);letter-spacing:.08em;color:#fffffff2;background:#00000047;border-radius:4px;flex:none;margin-left:auto;padding:2px 5px;font-size:8.5px;font-style:normal;font-weight:600;line-height:1}.cal-bar-tag--BL{background:#1f3a5f}.cal-bar-tag--IP{background:var(--ink)}.cal-bar-tag--R{background:var(--gold);color:#3a2e08}.cal-lg--note .cal-bar-tag{margin:0 2px 0 8px}.cal-lg--note .cal-bar-tag:first-child{margin-left:0}.cal-bar i{font-style:normal;font-family:var(--mono);color:#ffffffbf;font-size:10px}.cal-bar:focus-visible,.cal-fbtn:focus-visible,.cal-nav-btn:focus-visible,.cal-today-btn:focus-visible,button.cal-n:focus-visible,.cal-dayitem:focus-visible{outline:2px solid color-mix(in srgb, var(--go) 60%, var(--dgreen));outline-offset:1px}.cal-empty{margin-top:var(--sp-4);display:block}.cal-ov{z-index:60;padding:var(--sp-5);background:color-mix(in srgb, var(--ink) 55%, transparent);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cal-modal{width:100%;max-width:420px;max-height:calc(100dvh - 2 * var(--sp-5));background:var(--card);color:var(--on-light);border:1px solid var(--line-light);border-radius:var(--radius-xl);padding:var(--sp-6);overflow-y:auto}.cal-modal:focus{outline:none}.cal-modal-title{margin-top:var(--sp-2)}.cal-mrows{margin-top:var(--sp-4)}.cal-mrow{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--line-light);padding:10px 0;font-size:13px;display:flex}.cal-mkey{font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--on-light-muted);font-size:11px}.cal-mbtns{gap:var(--sp-3);margin-top:var(--sp-5);display:flex}.cal-modal-note{margin-top:var(--sp-3);text-transform:none;letter-spacing:.02em;display:block}.cal-daylist{margin-top:var(--sp-4);gap:var(--sp-2);display:grid}.cal-dayitem{text-align:left;background:var(--paper);border:1px solid var(--line-light);border-radius:var(--radius);cursor:pointer;width:100%;font-family:var(--body);color:var(--on-light);transition:border-color var(--dur-fast) var(--ease);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.cal-dayitem:hover{border-color:var(--line-light-2)}.cal-dayitem-body{gap:2px;min-width:0;display:grid}.cal-dayitem b{font-size:13.5px;font-weight:500}.cal-dayitem-meta{font-family:var(--mono);color:var(--on-light-muted);font-size:11px}.cal-dot{border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.cal-dot--open{background:var(--go)}.cal-dot--filling{background:var(--caution)}.cal-dot--full{background:var(--nogo)}@media (prefers-reduced-motion:reduce){.cal-bar,.cal-nav-btn,.cal-today-btn,.cal-fbtn,.cal-dayitem{transition:none}.cal-bar:hover{transform:none}}.calp-dark .cal{--surface:var(--card);--text:var(--on-light);--text-muted:var(--on-light-muted);--line:var(--line-light);--line-strong:var(--line-light-2);--accent-ink:var(--dgreen);background:var(--card);color:var(--on-light);box-shadow:0 0 0 1px color-mix(in srgb, var(--gold) 55%, transparent), 0 0 34px color-mix(in srgb, var(--gold) 22%, transparent), 0 24px 70px #00000080;border-radius:18px;padding:clamp(16px,2.4vw,28px)}.calp-dark .cal-bar:hover{filter:brightness(1.08);box-shadow:0 1px 0 #00000014, 0 0 16px color-mix(in srgb, var(--go) 55%, transparent);transform:translateY(-1px)}.calp-dark .cal-fbtn{transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.calp-dark .cal-fbtn:hover{border-color:color-mix(in srgb, var(--gold) 70%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--gold) 40%, transparent)}.calp-dark .cal-fbtn[aria-pressed=true]{background:var(--dgreen);border-color:var(--dgreen);color:#fff;box-shadow:0 0 14px color-mix(in srgb, var(--go) 35%, transparent)}.calp-dark .cal-dow{background:var(--dgreen);border-radius:8px;margin-bottom:8px}.calp-dark .cal-dow div{color:#fff;letter-spacing:.14em;padding:9px 0 9px 8px;font-size:11px;font-weight:600}
