/* Authentication and shared-workspace controls. No customer brand outside schedule headers. */
[hidden] { display:none !important; }
.auth-panel { min-height:100vh; display:grid; place-items:center; padding:32px 20px; background:linear-gradient(140deg,#edf4ef,#f7f8f5 65%); }
.auth-card { width:min(100%,480px); padding:40px; border:1px solid #dce7de; background:#fff; border-radius:20px; box-shadow:0 18px 60px #153c2710; }
.auth-card h1 { color:#203b44; font-size:32px; line-height:1.15; margin:14px 0; }
.auth-intro { color:#60716b; line-height:1.6; margin-bottom:20px; }
.auth-message { min-height:1.4em; color:#745431; line-height:1.5; font-size:14px; }
#auth-form { display:grid; gap:16px; margin-top:18px; }
.auth-footnote { font-size:12px; color:#62716a; line-height:1.7; border-top:1px solid #e4ebe5; padding-top:20px; margin-top:24px; }
.auth-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
#verify-actions p { font-size:14px; line-height:1.6; color:#52655c; }
.sync-progress { position:fixed; top:12px; left:50%; transform:translateX(-50%); z-index:9999; background:#203b44; color:#fff; font-size:13px; padding:12px 20px; border-radius:10px; box-shadow:0 4px 25px #0002; max-width:calc(100% - 24px); }
.attribution { color:#667b72; font-size:11px; line-height:1.7; margin:8px 0 0; max-width:85ch; overflow-wrap:anywhere; }
.cloud-notice { border:1px solid #d3e2d7; background:#edf6ef; border-radius:12px; padding:16px 20px; margin-bottom:20px; font-size:13px; line-height:1.6; }
.cloud-notice p { margin:4px 0 12px; }
.cloud-notice>div { display:flex; flex-wrap:wrap; gap:8px; }
.error-notice { border-color:#e6b7a8; background:#fff2ec; }
.schedule-brand { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 24px; margin-bottom:10px; border-bottom:1px solid #e2e9e4; background:white; }
.schedule-brand img { width:180px; height:auto; max-width:45%; }
.schedule-brand>div { display:grid; gap:4px; text-align:right; color:#55665e; font-size:11px; line-height:1.5; }
.schedule-brand strong { font-size:13px; color:#203b44; }
#signed-in-identity { overflow:hidden; min-width:0; }
#signed-in-name { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#signed-in-email { display:block; max-width:180px; overflow:hidden; text-overflow:ellipsis; font-size:10px; }
.wide-modal { width:min(760px,calc(100vw - 32px)); }
.history-entry { padding:16px 0; border-bottom:1px solid #e2e8e3; }
.history-entry>strong { color:#213e35; font-size:14px; overflow-wrap:anywhere; }
.history-entry>p { font-size:12px; color:#5c7266; line-height:1.6; margin:6px 0; }
.history-entry details { font-size:12px; }
.history-entry summary { cursor:pointer; }
.history-entry pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:11px; max-height:260px; overflow:auto; background:#f5f7f5; padding:12px; }
.member-entry { display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #e2e8e3; padding:15px 0; }
.member-entry>div { min-width:0; }
.member-entry strong,.member-entry span { display:block; overflow-wrap:anywhere; font-size:13px; }
.member-entry span { color:#687970; font-size:11px; margin-top:4px; }
.member-admin-label { white-space:nowrap; }
.member-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
#members-dialog h3 { margin:22px 0 12px; font-size:17px; }
#members-dialog .field-hint { line-height:1.7; }
#members-dialog hr { margin:24px 0 0; border:0; border-top:1px solid #e2e8e3; }
#members-dialog form { margin-top:18px; }
.topbar-actions { flex-wrap:wrap; justify-content:flex-end; }
@media(max-width:900px){ .main-topbar { flex-wrap:wrap; height:auto; min-height:68px; gap:10px; padding-top:12px; padding-bottom:12px; }.topbar-actions { justify-content:flex-start; } }
@media(max-width:560px){ .auth-card { padding:28px 22px; }.auth-card h1 { font-size:27px; }.cloud-notice { padding:14px; }.schedule-brand { gap:14px; padding:16px 12px; }.schedule-brand img { width:142px; }.schedule-brand>div { font-size:10px; }.schedule-brand strong { font-size:12px; }.member-entry { align-items:flex-start; flex-direction:column; }.topbar-actions { gap:5px; }.topbar-actions>.button { font-size:11px; padding:7px 9px; }.attribution { font-size:10px; } }
