.agenda-page { display:flex; flex-direction:column; gap:16px; padding:8px 8px 24px; color:#0f172a; font-family:inherit; }
.agenda-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.agenda-breadcrumb { font-size:12px; letter-spacing:.04em; color:#64748b; text-transform:uppercase; margin-bottom:4px; }
.agenda-header h1 { margin:0; font-size:28px; color:#002D94; }
.agenda-btn-primary { background:#002D94; color:#fff; border:0; border-radius:10px; padding:10px 16px; font-weight:600; cursor:pointer; }
.agenda-btn-ghost { background:#fff; color:#002D94; border:1px solid #cbd5e1; border-radius:10px; padding:10px 16px; cursor:pointer; }
.agenda-btn-danger { background:#fff; color:#b91c1c; border:1px solid #fecaca; border-radius:10px; padding:10px 16px; cursor:pointer; }
.agenda-body { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.agenda-main { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:16px; min-height:640px; }
.agenda-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:16px; }
.agenda-nav { display:flex; align-items:center; gap:10px; }
.agenda-period { font-weight:600; min-width:180px; text-align:center; }
.agenda-icon-btn { width:34px; height:34px; border-radius:8px; border:1px solid #dbeafe; background:#f8fafc; cursor:pointer; }
.agenda-check { display:flex; gap:8px; align-items:center; color:#334155; font-size:14px; }
.agenda-view-toggle { display:flex; background:#f1f5f9; border-radius:999px; padding:3px; }
.agenda-view-toggle button { border:0; background:transparent; padding:8px 14px; border-radius:999px; cursor:pointer; color:#334155; }
.agenda-view-toggle button.active { background:#002D94; color:#fff; }
.agenda-week-head, .agenda-week-grid { display:grid; grid-template-columns:56px repeat(6,minmax(0,1fr)); }
.agenda-day-head { text-align:center; padding:8px 4px; color:#64748b; font-size:12px; display:flex; flex-direction:column; gap:2px; }
.agenda-day-head.today strong { color:#002D94; }
.agenda-day-head strong { font-size:18px; color:#0f172a; }
.agenda-week-grid { border-top:1px solid #e2e8f0; }
.agenda-hours .agenda-hour-label { font-size:11px; color:#94a3b8; border-bottom:1px solid #f1f5f9; padding-top:2px; }
.agenda-day-col { position:relative; border-left:1px solid #e2e8f0; background:linear-gradient(#fff 0, #fff); }
.agenda-slot { border-bottom:1px solid #f1f5f9; }
.agenda-block { position:absolute; z-index:2; border:0; border-left:4px solid var(--c); background:color-mix(in srgb, var(--c) 16%, white); border-radius:8px; padding:6px 8px; text-align:left; overflow:hidden; cursor:pointer; box-shadow:0 1px 2px rgba(15,23,42,.08); }
.agenda-block.busy { border-left-style:dashed; background:#f1f5f9; color:#64748b; }
.agenda-block-time { display:block; font-size:11px; opacity:.85; }
.agenda-block-title { display:block; font-size:12px; font-weight:700; margin-top:2px; }
.agenda-block-meta { display:block; font-size:11px; opacity:.8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agenda-side { display:flex; flex-direction:column; gap:12px; }
.agenda-panel { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:14px; }
.agenda-panel-title { display:flex; justify-content:space-between; align-items:center; font-weight:700; margin-bottom:10px; color:#0f172a; }
.linkish { border:0; background:transparent; color:#002D94; cursor:pointer; font-size:12px; }
.agenda-colleague { display:grid; grid-template-columns:auto auto 1fr auto; gap:8px; align-items:center; padding:8px 0; border-bottom:1px solid #f1f5f9; font-size:13px; }
.agenda-colleague .dot, .agenda-upcoming .dot { width:10px; height:10px; border-radius:50%; display:inline-block; }
.agenda-colleague .count { color:#64748b; font-size:12px; }
.agenda-upcoming { width:100%; display:flex; gap:10px; align-items:flex-start; border:0; background:transparent; text-align:left; padding:10px 0; border-bottom:1px solid #f1f5f9; cursor:pointer; }
.agenda-upcoming strong { display:block; font-size:13px; }
.agenda-upcoming span { font-size:12px; color:#64748b; }
.agenda-loading, .agenda-empty { color:#64748b; padding:24px 8px; text-align:center; }
.agenda-empty.small { padding:8px; font-size:13px; }
.agenda-error { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; border-radius:10px; padding:10px 12px; margin:8px 0; }
.agenda-day-strip { display:flex; gap:8px; overflow:auto; margin-bottom:16px; }
.agenda-day-chip { min-width:64px; border:1px solid #dbeafe; background:#fff; border-radius:12px; padding:8px; cursor:pointer; display:flex; flex-direction:column; align-items:center; color:#002D94; }
.agenda-day-chip.active { background:#002D94; color:#fff; border-color:#002D94; }
.agenda-day-timeline { display:flex; flex-direction:column; gap:10px; }
.agenda-card { display:flex; width:100%; border:0; background:#fff; border-radius:14px; box-shadow:0 1px 4px rgba(15,23,42,.08); overflow:hidden; cursor:pointer; text-align:left; --c:#2563EB; }
.agenda-card.busy { opacity:.75; }
.agenda-card-bar { width:6px; background:var(--c); }
.agenda-card.busy .agenda-card-bar { background:repeating-linear-gradient(45deg,#94a3b8,#94a3b8 4px,#cbd5e1 4px,#cbd5e1 8px); }
.agenda-card-body { padding:12px 14px; flex:1; }
.agenda-card-top { display:flex; justify-content:space-between; gap:8px; font-size:12px; color:#64748b; margin-bottom:4px; }
.agenda-card .badge { border-radius:999px; padding:2px 8px; font-size:11px; }
.agenda-card .badge.pub { background:#dbeafe; color:#1d4ed8; }
.agenda-card .badge.priv { background:#e2e8f0; color:#475569; }
.agenda-card-meta { display:flex; gap:8px; align-items:center; margin-top:8px; font-size:13px; color:#334155; }
.agenda-card .avatar { width:28px; height:28px; border-radius:50%; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
.agenda-modal-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:2000; display:flex; align-items:center; justify-content:center; padding:16px; }
.agenda-modal { width:min(560px,100%); background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 20px 50px rgba(15,23,42,.25); }
.agenda-modal-head { background:#002D94; color:#fff; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; }
.agenda-modal-head .agenda-icon-btn { background:transparent; border-color:rgba(255,255,255,.35); color:#fff; }
.agenda-modal-body { padding:18px; display:flex; flex-direction:column; gap:14px; }
.agenda-modal-body label, .agenda-modal-body .label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:#334155; font-weight:600; }
.agenda-modal-body input[type=text], .agenda-modal-body input:not([type]), .agenda-modal-body input[type=date], .agenda-modal-body input[type=time] { border:1px solid #dbeafe; border-radius:10px; padding:10px 12px; font:inherit; }
.agenda-form-row { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:10px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.chip { border:1px solid #bfdbfe; background:#fff; color:#002D94; border-radius:999px; padding:6px 12px; cursor:pointer; }
.chip.on { background:#002D94; color:#fff; border-color:#002D94; }
.public-box { display:flex; justify-content:space-between; gap:12px; align-items:center; background:#eff6ff; border-radius:12px; padding:12px; }
.public-box span { display:block; font-size:12px; color:#64748b; font-weight:400; margin-top:2px; }
.switch { position:relative; width:46px; height:26px; display:inline-block; }
.switch input { opacity:0; width:0; height:0; }
.switch span { position:absolute; inset:0; background:#cbd5e1; border-radius:999px; cursor:pointer; transition:.2s; }
.switch span:before { content:""; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.2s; }
.switch input:checked + span { background:#002D94; }
.switch input:checked + span:before { transform:translateX(20px); }
.agenda-modal-foot { display:flex; gap:10px; align-items:center; padding:14px 18px 18px; }
.agenda-modal-foot .spacer { flex:1; }
@media (max-width: 1100px) {
	.agenda-body { grid-template-columns:1fr; }
	.agenda-form-row { grid-template-columns:1fr; }
}
