.cal-box{border:1px solid #e5e7eb;border-radius:16px;padding:14px;margin:14px 0;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.cal-panel{background:#fbfbff}
.cal-warning{background:#fff7ed;border-color:#fed7aa}
.cal-row{margin:6px 0}
.cal-muted{color:#6b7280;font-size:13px}
.cal-ok{color:#0a7;font-weight:700}
.cal-pending{color:#b45309;font-weight:700}

.cal-btn{border:1px solid #d1d5db;background:#111827;color:#fff;border-radius:999px;padding:10px 14px;font-weight:700;cursor:pointer}
.cal-btn:disabled{opacity:.6;cursor:not-allowed}
.cal-link{font-weight:700}

.cal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.cal-card{border:1px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff}
.cal-card h3{margin:0 0 8px 0;font-size:18px}
.cal-badge{display:inline-block;font-size:12px;background:#f3f4f6;border:1px solid #e5e7eb;padding:4px 8px;border-radius:999px;margin:0 0 8px 0}

.cal-progress{height:10px;background:#f3f4f6;border-radius:999px;overflow:hidden;margin:10px 0}
.cal-progress-bar{height:100%;background:#111827}

.cal-outline-module{border:1px solid #e5e7eb;border-radius:16px;padding:12px;margin:10px 0;background:#fff}
.cal-outline-lessons{margin:0;padding-left:18px}
.cal-tag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;background:#f3f4f6;border:1px solid #e5e7eb;font-size:12px;margin-right:6px}
.cal-tag-ok{background:#ecfdf5;border-color:#a7f3d0}
.cal-tag-lock{background:#fef2f2;border-color:#fecaca}

.cal-tabs{margin-top:18px}
.cal-tab-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cal-tab-btn{border:1px solid #e5e7eb;background:#fff;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer}
.cal-tab-btn.is-active{background:#111827;color:#fff;border-color:#111827}
.cal-tab-panel{display:none}
.cal-tab-panel.is-active{display:block}
.cal-note{width:100%;border:1px solid #e5e7eb;border-radius:14px;padding:10px}
.cal-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}
.cal-msg{font-size:13px;color:#374151}

.cal-res{margin:8px 0 0 0;padding-left:18px}
.cal-embed iframe{width:100% !important;max-width:100%;border-radius:16px}

.cal-table{width:100%;border-collapse:collapse;margin-top:10px}
.cal-table th,.cal-table td{border-bottom:1px solid #e5e7eb;padding:8px;text-align:left;font-size:14px}

.cal-assign{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.cal-assign input,.cal-assign select{border:1px solid #e5e7eb;border-radius:999px;padding:10px 12px;min-width:220px}
.cal-assign select{min-width:260px}
