.customer-appointments{gap:22px;width:100%;display:grid}.appointments-loading,.appointments-empty,.appointments-error{color:#033663;border-radius:18px;width:100%;padding:20px;font-size:15px;line-height:1.55}.appointments-loading{background:#0336630a;align-items:center;gap:12px;display:flex}.appointments-loading p,.appointments-empty p,.appointments-error p{margin:0}.appointments-spinner{border:3px solid #28b9aa33;border-top-color:#28b9aa;border-radius:50%;flex:0 0 22px;width:22px;height:22px;animation:.8s linear infinite appointments-spin}@keyframes appointments-spin{to{transform:rotate(360deg)}}.appointments-empty{background:#ffffffb3;border:1px solid #03366314}.appointments-error{color:#cf4d27;background:#fb673014;border:1px solid #fb673033;gap:12px;display:grid}.appointments-error button{color:#fff;width:fit-content;min-height:42px;font:inherit;cursor:pointer;background:#033663;border:0;border-radius:12px;padding:0 16px;font-weight:800}.google-sync-card{background:linear-gradient(145deg,#fea0201f,#fffffff5);border:1px solid #fea0203d;border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 22px;padding:22px 24px;display:grid;box-shadow:0 14px 34px #03366314}.google-sync-content{align-items:flex-start;gap:14px;display:flex}.google-sync-icon{background:#fea02024;border-radius:14px;flex:0 0 46px;place-items:center;width:46px;height:46px;font-size:21px;display:grid}.google-sync-card strong{color:#033663;font-size:18px;line-height:1.3;display:block}.google-sync-card p{color:#033663a8;margin:6px 0 0;line-height:1.55}.google-sync-button{color:#fff;min-height:48px;font:inherit;cursor:pointer;background:linear-gradient(135deg,#fea020,#fb6730);border:0;border-radius:15px;padding:0 20px;font-size:14px;font-weight:850;transition:transform .2s,box-shadow .2s,opacity .2s;box-shadow:0 12px 26px #fb673033}.google-sync-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 32px #fb673047}.google-sync-button:disabled{cursor:not-allowed;opacity:.58}.google-sync-message{color:#033663;background:#28b9aa1a;border-radius:14px;grid-column:1/-1;margin:0;padding:14px 16px;font-weight:750;line-height:1.5}.agenda-list{gap:20px;display:grid}.agenda-item{background:#fffffff2;border:1px solid #0336631a;border-radius:26px;padding:26px;box-shadow:0 16px 40px #03366314}.appointment-card-header{justify-content:space-between;align-items:flex-start;gap:22px;display:flex}.appointment-title-block{min-width:0}.appointment-title{color:#033663;font-size:clamp(20px,2vw,25px);font-weight:900;line-height:1.25;display:block}.appointment-type-label{color:#033663a8;margin:8px 0 0;font-size:15px;font-weight:700;line-height:1.4}.appointment-badges{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.appointment-status-badge,.google-status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:36px;padding:0 14px;font-size:12px;font-weight:850;line-height:1;display:inline-flex}.appointment-status-badge{color:#033663;background:#03366312}.appointment-status-badge.confirmed{color:#087f76;background:#28b9aa1c}.appointment-status-badge.pending{color:#a86400;background:#fea02024}.appointment-status-badge.cancelled{color:#cf4d27;background:#fb67301a}.google-status-badge.linked{color:#3f7d48;background:#54955c1f}.google-status-badge.not-linked{color:#a86400;background:#fea02024}.appointment-details{border-top:1px solid #03366312;gap:11px;margin-top:24px;padding-top:22px;display:grid}.appointment-details p{color:#033663c7;align-items:flex-start;gap:11px;margin:0;font-size:15px;line-height:1.55;display:flex}.appointment-detail-icon{text-align:center;flex:0 0 23px;width:23px;line-height:1.55}.appointment-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;display:flex}.appointment-action{appearance:none;min-height:52px;font:inherit;cursor:pointer;border-radius:17px;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:850;line-height:1;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s,color .2s,opacity .2s;display:inline-flex}.appointment-action>span{font-size:18px;line-height:1}.appointment-action.calendar{color:#033663;background:#fffffffa;border:1px solid #03366329;box-shadow:0 10px 24px #0336630f}.appointment-action.calendar:hover{background:#03366309;border-color:#0336634d;box-shadow:0 14px 30px #0336631a}.appointment-action.meet{color:#fff;background:linear-gradient(135deg,#2ebdb0,#1f9f94);border:1px solid #28b9aa;box-shadow:0 12px 28px #28b9aa3d}.appointment-action.meet:hover{background:linear-gradient(135deg,#25b1a5,#168f86);border-color:#1f9f94;box-shadow:0 16px 34px #28b9aa4d}.appointment-action.cancel{color:#c94b2a;min-height:50px;box-shadow:none;background:#fb673011;border:1px solid #fb67303d;padding-inline:20px;font-size:14px;font-weight:800}.appointment-action.cancel>span{border:1.5px solid;border-radius:50%;place-items:center;width:21px;height:21px;font-size:12px;font-weight:900;display:grid}.appointment-action.cancel:hover:not(:disabled){color:#b84020;background:#fb67301c;border-color:#fb673070;box-shadow:0 10px 22px #fb67301a}.appointment-action.cancel:active:not(:disabled){box-shadow:none;background:#fb673026;transform:translateY(0)}.appointment-action:hover:not(:disabled){transform:translateY(-2px)}.appointment-action:focus-visible,.google-sync-button:focus-visible,.appointments-error button:focus-visible{outline-offset:3px;outline:3px solid #28b9aa47}.appointment-action.cancel:focus-visible{outline-color:#fb673047}.appointment-action:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.dashboard-card-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.pass-empty-message{color:#0336639e;margin:16px 0 0;font-size:14px;font-weight:700}@media (max-width:760px){.google-sync-card{grid-template-columns:1fr}.google-sync-button{width:100%}.appointment-card-header{flex-direction:column}.appointment-badges{justify-content:flex-start}}@media (max-width:640px){.agenda-item{border-radius:22px;padding:21px}.appointment-actions{flex-direction:column;align-items:stretch}.appointment-action{width:100%}.appointment-action.cancel{min-height:48px}.dashboard-card-actions{flex-direction:column}.dashboard-card-actions .primary-action{width:100%}}@media (max-width:420px){.google-sync-card{padding:18px}.google-sync-content{flex-direction:column}.appointment-title{font-size:20px}.appointment-status-badge,.google-status-badge{min-height:34px;padding:0 11px}}
