.offline-status{position:fixed;bottom:12px;left:12px;z-index:30;display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:6px 8px 6px 12px;border:1px solid var(--border,#d6e1e8);border-radius:14px;background:var(--bg,#fff);color:var(--ink,#17324d);box-shadow:0 6px 28px #102c5014;font-size:12px;line-height:1.45}
.offline-status::before{content:'';width:8px;height:8px;border-radius:50%;flex:none;background:#4c7f9b}
.offline-status.sending::before{width:12px;height:12px;border:2px solid #dce6ee;border-top-color:#3c7299;background:transparent;animation:sync-spin .9s linear infinite}
.offline-status.disconnected::before{background:#b08b48}.offline-status.review-needed::before,.offline-status.unavailable::before{background:#b6553d}
.sync-status-message{min-width:0;overflow-wrap:anywhere}.offline-status button{flex:none;min-height:44px;padding:8px 10px;border:0;border-radius:9px;background:var(--panel,#eef3f6);color:inherit;font:inherit;font-weight:650;cursor:pointer}.offline-status button:focus-visible,.sync-review button:focus-visible{outline:3px solid #588caf;outline-offset:2px}
.offline-status[hidden]{display:none}body:has(.offline-status:not([hidden])){padding-bottom:88px}
.sync-review{box-sizing:border-box;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:24px;border:1px solid var(--border,#dae3eb);border-radius:22px;background:var(--bg,#fff);color:var(--ink,#17324d);box-shadow:0 20px 100px #102c5038;overflow:auto;overscroll-behavior:contain}
.sync-review::backdrop{background:#0b203d80;backdrop-filter:blur(4px)}.sync-review header{display:flex;justify-content:space-between;align-items:center;gap:16px}.sync-review header p{margin:0 0 5px;color:var(--muted,#687e90);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sync-review h2{margin:0;font-size:23px;letter-spacing:-.025em}.sync-review header button{width:44px;font-size:26px;background:transparent}
.sync-review button{min-height:44px;border:0;border-radius:10px;color:inherit;font:inherit;font-size:12px;font-weight:650;cursor:pointer}.sync-review header button{font-size:26px;flex:none}
.sync-review-description{font-size:13px;color:var(--muted,#687e90);line-height:1.65;margin:16px 0 22px}.sync-review-list{display:grid;gap:12px}.sync-review-item{padding:16px;border:1px solid var(--border,#dce5ed);border-radius:14px}.sync-review-item.needs-review{border-left:3px solid #b28a4f}.sync-review-item-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.sync-review-item-heading strong{font-size:14px}.sync-review-item-heading span{font-size:10px;font-weight:700;border-radius:20px;padding:4px 8px;background:#b28a4f15;color:var(--muted,#7f694b);white-space:nowrap}.sync-review-item small{display:block;margin-top:7px;color:var(--muted,#687e90);overflow-wrap:anywhere}.sync-review-item p{font-size:13px;line-height:1.6;margin:12px 0}.sync-review-item-actions{display:flex;gap:8px;flex-wrap:wrap}.sync-review-item-actions button{padding:8px 12px;background:var(--panel,#eef3f6)}.sync-review footer{display:flex;gap:10px;position:sticky;bottom:-24px;padding:20px 0 0;margin-top:8px;background:var(--bg,#fff)}.sync-review footer button{padding:12px 16px}.sync-review [data-sync-all]{flex:1;background:#173b5c;color:#fff}.sync-review footer [data-sync-close]{background:var(--panel,#eef3f6)}.sync-review button:disabled{opacity:.55;cursor:wait}.sync-review [hidden]{display:none!important}.sync-review-complete{text-align:center;padding:28px 12px}.sync-review-complete>span{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 16px;border-radius:50%;background:#28795d14;color:#28795d;font-size:24px}.sync-review-complete strong{display:block;font-size:18px}.sync-review-complete p{font-size:13px;line-height:1.7;color:var(--muted,#687e90)}
@keyframes sync-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.offline-status.sending::before{animation:none}}
@media(max-width:650px){.offline-status{bottom:max(10px,env(safe-area-inset-bottom));left:10px;right:10px;max-width:none;font-size:12px}.sync-status-message{flex:1}.sync-review{width:100%;max-height:88dvh;margin:auto 0 0;border-radius:22px 22px 0 0;padding:24px 18px max(18px,env(safe-area-inset-bottom))}.sync-review footer{bottom:calc(-1 * max(18px,env(safe-area-inset-bottom)));padding-bottom:8px}.sync-review-item-heading{flex-wrap:wrap}.sync-review-item-actions button{flex:1}}
@media print{.offline-status,.sync-review{display:none!important}body:has(.offline-status){padding-bottom:0}}
