 .cloud-status-bar{display:flex;gap:8px;align-items:center;font-size:12px}
.cloud-status-bar[hidden]{display:none}.cloud-status-dot{width:8px;height:8px;border-radius:50%;background:#999}.cloud-status-dot.ok{background:#2e9d63}.cloud-status-dot.warn{background:#d69a27}.cloud-status-dot.offline{background:#9a5b47}.cloud-status-bar button{white-space:nowrap}.pwa-install-btn[hidden]{display:none}.cloud-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cloud-auth-grid .full{grid-column:1/-1}.cloud-access-list{display:grid;gap:8px}.cloud-access-row{display:grid;grid-template-columns:1fr 120px auto;gap:8px;align-items:center}.cloud-sync-pill{display:inline-flex;align-items:center;gap:6px}.cloud-readonly-banner{padding:8px 12px;border-radius:10px;background:#fff6e7;border:1px solid #e3bd7b;margin:8px 0}.offline-capability-card ul{margin:.5rem 0 0;padding-left:1.2rem}.offline-capability-card li{margin:.3rem 0}@media(max-width:700px){.cloud-auth-grid{grid-template-columns:1fr}.cloud-access-row{grid-template-columns:1fr}.cloud-access-row .btn{width:100%}}
.cloud-auth-surface-note{margin:0;padding:10px 12px;border:1px solid var(--border,#ddd);border-radius:10px;background:var(--soft,#f5f5f3);color:var(--muted,#666);font-size:11px;line-height:1.55}.cloud-auth-grid [hidden]{display:none!important}
html.auth-required #app,
html.auth-required #workspaceTabsBar,
html.auth-required #askMetisFloatButton{visibility:hidden}
html.auth-required #cloudAuthModal{visibility:visible}

/* v7.3.9: restore an existing Firebase session without flashing the login dialog. */
html.auth-session-pending #cloudAuthModal{visibility:hidden!important;opacity:0!important;pointer-events:none!important}

/* v7.5.14 per-device cloud sync status */
.device-sync-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.device-sync-card{display:grid;gap:10px;min-width:0;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.device-sync-card.is-current{border-color:color-mix(in srgb,var(--accent) 48%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}.device-sync-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.device-sync-card-head>div{display:grid;gap:3px;min-width:0}.device-sync-card-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-sync-card-head small{color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.device-sync-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px}.device-sync-card .kv.compact{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:0;border:0;font-size:10px}.device-sync-card .kv.compact label{color:var(--muted)}.device-sync-card .kv.compact span{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-sync-actions{display:flex;align-items:center;justify-content:flex-end;min-height:30px}.device-sync-actions em{color:var(--accent);font-size:9px;font-style:normal;font-weight:700}.device-sync-actions .danger{color:#b42318;border-color:color-mix(in srgb,#b42318 36%,var(--border))}.device-sync-footnote{margin-top:10px!important}@media(max-width:980px){.device-sync-grid{grid-template-columns:1fr}}@media(max-width:560px){.device-sync-details{grid-template-columns:1fr}.device-sync-card-head{align-items:flex-start}.device-sync-card-head .badge{flex:none}}
.device-platform-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin-top:12px}.device-platform-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:76px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);text-align:left;cursor:pointer}.device-platform-card:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:var(--soft)}.device-platform-card>span:nth-child(2){display:grid;gap:2px;min-width:0}.device-platform-card small{display:block;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-platform-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accentSoft);color:var(--accent);font-size:18px;font-weight:800}.device-platform-modal-backdrop{position:fixed;inset:0;z-index:1600;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}.device-platform-modal{display:flex;flex-direction:column;width:min(940px,100%);max-height:min(84dvh,820px);overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 24px 80px rgba(15,23,42,.28)}.device-platform-modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.device-platform-modal>header div{display:grid;gap:2px}.device-platform-modal>header small{color:var(--muted)}.device-platform-modal>header h3{margin:0}.device-platform-modal>header button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:9px;background:var(--soft);color:var(--text);font-size:22px;cursor:pointer}.device-platform-modal-body{overflow:auto;padding:14px}.device-session-history{display:grid;gap:4px;max-height:150px;overflow:auto;padding:8px;border-radius:9px;background:var(--soft)}.device-session-history>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:9px;color:var(--muted)}.device-session-history b{color:var(--text)}@media(max-width:560px){.device-platform-modal-backdrop{padding:0;align-items:stretch}.device-platform-modal{width:100%;max-height:none;height:100dvh;border:0;border-radius:0}.device-platform-modal-body{padding:10px}.device-session-history>div{grid-template-columns:1fr}}
.remote-job-settings{display:grid;gap:14px}.remote-pair-code{padding:14px;border:1px dashed var(--border);border-radius:12px;background:var(--panel2);font-size:28px;font-weight:800;letter-spacing:.32em;text-align:center}.remote-pairing-list{display:grid;gap:10px}.remote-pairing-card{display:grid;gap:10px;padding:13px;border:1px solid var(--border);border-radius:13px;background:var(--panel)}.remote-pairing-card .form-head small{display:block;margin-top:3px;color:var(--muted)}.remote-permission-title{font-size:11px;font-weight:800;color:var(--muted)}.remote-permission-list{display:flex;flex-wrap:wrap;gap:7px}.remote-permission-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:var(--panel2);font-size:12px}.remote-permission-chip input{margin:0}.remote-local-approval{display:grid;gap:8px;padding:12px;border:1px solid color-mix(in srgb,#dc2626 36%,var(--border));border-radius:12px;background:color-mix(in srgb,#dc2626 5%,var(--panel))}.remote-local-approval>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.remote-job-composer{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) minmax(180px,1fr) minmax(150px,.7fr) auto;gap:8px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel2)}.remote-job-composer>.remote-permission-title,.remote-job-list{grid-column:1/-1}.remote-job-list{display:grid;gap:5px}.remote-job-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--border)}.remote-job-list span,.remote-job-list small{display:block}.remote-job-list small{margin-top:2px;color:var(--muted)}.remote-audit-list{display:grid;max-height:280px;overflow:auto;border-top:1px solid var(--border)}.remote-audit-list>div{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(120px,1fr) auto;gap:10px;padding:8px 2px;border-bottom:1px solid var(--border);font-size:12px}.remote-audit-list span,.remote-audit-list small{color:var(--muted)}@media(max-width:980px){.remote-job-composer{grid-template-columns:1fr 1fr}.remote-job-composer>.remote-permission-title,.remote-job-list{grid-column:1/-1}}@media(max-width:720px){.remote-pair-code{font-size:22px;letter-spacing:.2em}.remote-audit-list>div{grid-template-columns:1fr}.remote-permission-chip{min-height:34px}.remote-local-approval>div{align-items:stretch;flex-direction:column}.remote-job-composer{grid-template-columns:1fr}.remote-job-composer>.remote-permission-title,.remote-job-list{grid-column:1}}

/* Local-first sync health card: visual state only; it does not start extra cloud reads. */
.local-sync-health{display:grid;gap:12px;margin:12px 0 16px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--panel2)}.local-sync-health.ok{border-color:color-mix(in srgb,#159455 28%,var(--border))}.local-sync-health.warn{border-color:color-mix(in srgb,#c47700 38%,var(--border))}.local-sync-health-head,.local-sync-health-head>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.local-sync-health-head>div{justify-content:flex-start}.local-sync-health-head>div>div{display:grid;gap:2px}.local-sync-health-head small{color:var(--muted)}.local-sync-health-dot{width:10px;height:10px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}.local-sync-health.ok .local-sync-health-dot{background:#159455;box-shadow:0 0 0 4px color-mix(in srgb,#159455 12%,transparent)}.local-sync-health.warn .local-sync-health-dot{background:#c47700;box-shadow:0 0 0 4px color-mix(in srgb,#c47700 12%,transparent)}.local-sync-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.local-sync-health-grid>span{display:grid;gap:3px;min-width:0;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.local-sync-health-grid small{color:var(--muted);font-size:9px}.local-sync-health-grid b{overflow:hidden;color:var(--text);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.local-sync-health-grid>span:nth-last-child(-n+2){grid-column:span 2}.local-sync-health-retry{margin:0;color:#9a5f00;font-size:10px}.local-sync-health>.help{margin:0!important}@media(max-width:720px){.local-sync-health-head{align-items:flex-start}.local-sync-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-sync-health-grid>span:nth-last-child(-n+2){grid-column:span 1}}
