:root{--brand: #00a551;--brand-dark: #007d3d;--brand-light: #f0f9f4;--line: #e6eae8;--muted: #64748b;--cut: #dc2626;--cut-bg: #fde2e2;--urgent: #c2410c;--urgent-bg: #ffedd5}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f6f5;color:#0f172a;-webkit-font-smoothing:antialiased}input:focus,textarea:focus,select:focus{border-color:var(--brand)!important;outline:none}button{font-family:inherit}input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px}button:disabled{opacity:.55;cursor:not-allowed!important}*:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@keyframes cc-spin{to{transform:rotate(360deg)}}.cc-spin{animation:cc-spin .8s linear infinite}@keyframes cc-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.cc-toast{animation:cc-fade .18s ease-out}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.cc-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}.cc-grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}@media(max-width:900px){.cc-grid{grid-template-columns:minmax(0,1fr)}.cc-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.hide-mobile{display:none!important}}.cc-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.cc-tabs::-webkit-scrollbar{display:none}.cal-head,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-head div{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}.cal-day{position:relative;min-height:58px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px 7px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#0f172a;transition:border-color .12s,background .12s,box-shadow .12s}.cal-day:hover:not(.is-disabled){border-color:var(--brand);box-shadow:0 1px 4px #007d3d1f}.cal-day .num{font-weight:600;font-size:14px}.cal-day .tag{font-size:10.5px;font-weight:600;line-height:1.2}.cal-day.is-outside{opacity:.38}.cal-day.is-disabled{cursor:default;background:#f8faf9;color:#94a3b8}.cal-day.is-off{background:repeating-linear-gradient(135deg,#f8faf9,#f8faf9 6px,#f1f5f4 6px 12px);color:#94a3b8}.cal-day.is-today{border:2px solid var(--brand);padding:5px 6px}.cal-day.is-cut{background:var(--cut-bg);border-color:#fecaca;color:#991b1b;cursor:pointer}.cal-day.is-urgent{background:var(--urgent-bg);border-color:#fed7aa;color:#9a3412;cursor:pointer}.cal-day.is-sel{background:var(--brand-light);border-color:var(--brand)}.cal-day.is-edge{background:var(--brand);border-color:var(--brand);color:#fff}.cal-day.is-locked{cursor:pointer;background:#fff7ed;border-style:dashed;border-color:#fdba74}@media(max-width:520px){.cal-head,.cal-grid{gap:4px}.cal-day{min-height:48px;padding:4px 5px;border-radius:8px}.cal-day .tag{font-size:9.5px}}.cc-table{width:100%;border-collapse:collapse;font-size:13.5px}.cc-table th{text-align:left;padding:10px 12px;font-weight:600;color:#475569;background:#f8faf9;border-bottom:1px solid var(--line);white-space:nowrap}.cc-table td{padding:10px 12px;border-bottom:1px solid #eef2f0;vertical-align:top}.cc-table tr:last-child td{border-bottom:none}.cc-scroll{overflow-x:auto}.cc-pre{white-space:pre-wrap;word-break:break-word}.ts-table{border-collapse:separate;border-spacing:0;font-size:12.5px;width:max-content;min-width:100%}.ts-table th,.ts-table td{border-right:1px solid #e6eae8;border-bottom:1px solid #e6eae8;padding:5px 4px;text-align:center;white-space:nowrap;background:#fff}.ts-table th{background:#f1f5f9;font-weight:700;color:#334155;position:sticky;top:0;z-index:2;min-width:30px}.ts-table thead tr:nth-child(2) th{top:27px}.ts-table .ts-sticky{position:sticky;left:0;z-index:3;border-right:2px solid #d7dfdb;padding:5px 10px}.ts-table thead .ts-sticky{z-index:4}.ts-table .ts-sun{background:#fff59d}.ts-table .ts-hol{background:#ffcc80;color:#7c2d12;font-weight:700}.ts-table .ts-leave{color:#dc2626;font-weight:700}.ts-table tr.ts-group td{background:#e8f6ee;font-weight:700;color:#007d3d;text-align:left}.ts-table .ts-lock{background:#e2e8f0}
