:root{--offline-primary: #E23744;--offline-primary-light: #FF5A5F;--offline-primary-dark: #CB202D;--offline-pending-main: #FF9F0A;--offline-pending-light: #FFB84D;--offline-pending-bg: #FFF8E1;--offline-pending-border: #FFE0B2;--offline-pending-text: #E65100;--offline-syncing-main: #007AFF;--offline-syncing-light: #4DA3FF;--offline-syncing-bg: #E3F2FD;--offline-syncing-border: #BBDEFB;--offline-syncing-text: #1565C0;--offline-confirmed-main: #34C759;--offline-confirmed-light: #5DD879;--offline-confirmed-bg: #E8F5E9;--offline-confirmed-border: #C8E6C9;--offline-confirmed-text: #2E7D32;--offline-error-main: #FF3B30;--offline-error-light: #FF6B6B;--offline-error-bg: #FFEBEE;--offline-error-border: #FFCDD2;--offline-error-text: #C62828;--offline-gray-main: #8E8E93;--offline-gray-light: #AEAEB2;--offline-gray-bg: #F2F2F7;--offline-gray-border: #D1D1D6;--offline-gray-text: #3C3C43;--offline-duration-fast: .15s;--offline-duration-normal: .3s;--offline-duration-slow: .5s;--offline-duration-sync: 1.5s;--offline-z-banner: 100;--offline-z-drawer: 200;--offline-z-toast: 300;--offline-z-modal: 400}@keyframes offline-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes offline-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes offline-slide-in-top{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes offline-slide-out-top{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes offline-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes offline-slide-out-bottom{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes offline-slide-in-right{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes offline-slide-out-right{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes offline-fade-in{0%{opacity:0}to{opacity:1}}@keyframes offline-fade-out{0%{opacity:1}to{opacity:0}}@keyframes offline-progress{0%{width:0%}to{width:100%}}@keyframes offline-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes offline-bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}60%{transform:translateY(-3px)}}@keyframes offline-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.offline-animate-pulse{animation:offline-pulse 2s ease-in-out infinite}.offline-animate-spin{animation:offline-spin 1s linear infinite}.offline-animate-slide-in-top{animation:offline-slide-in-top var(--offline-duration-normal) ease-out forwards}.offline-animate-slide-out-top{animation:offline-slide-out-top var(--offline-duration-normal) ease-in forwards}.offline-animate-slide-in-bottom{animation:offline-slide-in-bottom var(--offline-duration-normal) ease-out forwards}.offline-animate-slide-out-bottom{animation:offline-slide-out-bottom var(--offline-duration-normal) ease-in forwards}.offline-animate-slide-in-right{animation:offline-slide-in-right var(--offline-duration-normal) ease-out forwards}.offline-animate-slide-out-right{animation:offline-slide-out-right var(--offline-duration-normal) ease-in forwards}.offline-animate-fade-in{animation:offline-fade-in var(--offline-duration-fast) ease-out forwards}.offline-animate-fade-out{animation:offline-fade-out var(--offline-duration-fast) ease-in forwards}.offline-animate-bounce{animation:offline-bounce .5s ease-in-out}.offline-animate-shake{animation:offline-shake .5s ease-in-out}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:var(--offline-z-banner);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;font-weight:500;transition:all var(--offline-duration-normal) ease-out;max-width:448px;margin:0 auto}.offline-banner--offline{background-color:var(--offline-gray-bg);border-bottom:1px solid var(--offline-gray-border);color:var(--offline-gray-text)}.offline-banner--syncing{background-color:var(--offline-syncing-bg);border-bottom:1px solid var(--offline-syncing-border);color:var(--offline-syncing-text)}.offline-banner--pending{background-color:var(--offline-pending-bg);border-bottom:1px solid var(--offline-pending-border);color:var(--offline-pending-text)}.offline-banner--error{background-color:var(--offline-error-bg);border-bottom:1px solid var(--offline-error-border);color:var(--offline-error-text)}.offline-banner--success{background-color:var(--offline-confirmed-bg);border-bottom:1px solid var(--offline-confirmed-border);color:var(--offline-confirmed-text)}.offline-banner__content{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.offline-banner__icon{flex-shrink:0;width:20px;height:20px}.offline-banner__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offline-banner__action{flex-shrink:0;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all var(--offline-duration-fast) ease}.offline-banner__action--primary{background-color:var(--offline-primary);color:#fff}.offline-banner__action--primary:hover{background-color:var(--offline-primary-dark)}.offline-banner__action--secondary{background-color:transparent;color:inherit;border:1px solid currentColor}.offline-banner__action--secondary:hover{background-color:#0000000d}.sync-status{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;transition:all var(--offline-duration-normal) ease}.sync-status--idle{background-color:var(--offline-gray-bg);color:var(--offline-gray-text)}.sync-status--syncing{background-color:var(--offline-syncing-bg);color:var(--offline-syncing-text)}.sync-status--complete{background-color:var(--offline-confirmed-bg);color:var(--offline-confirmed-text)}.sync-status__progress{flex:1;height:4px;background-color:#0000001a;border-radius:2px;overflow:hidden}.sync-status__progress-bar{height:100%;background-color:var(--offline-syncing-main);border-radius:2px;transition:width var(--offline-duration-fast) ease}.order-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border:1px solid transparent;transition:all var(--offline-duration-fast) ease}.order-status-badge--pending_sync{background-color:var(--offline-pending-bg);border-color:var(--offline-pending-border);color:var(--offline-pending-text)}.order-status-badge--syncing{background-color:var(--offline-syncing-bg);border-color:var(--offline-syncing-border);color:var(--offline-syncing-text)}.order-status-badge--confirmed{background-color:var(--offline-confirmed-bg);border-color:var(--offline-confirmed-border);color:var(--offline-confirmed-text)}.order-status-badge--failed{background-color:var(--offline-error-bg);border-color:var(--offline-error-border);color:var(--offline-error-text)}.order-status-badge__icon{width:12px;height:12px}.pending-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:var(--offline-z-drawer);opacity:0;transition:opacity var(--offline-duration-normal) ease}.pending-drawer-overlay--visible{opacity:1}.pending-drawer{position:fixed;bottom:0;left:0;right:0;max-width:448px;margin:0 auto;background-color:#fff;border-radius:16px 16px 0 0;z-index:calc(var(--offline-z-drawer) + 1);max-height:80vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform var(--offline-duration-normal) ease}.pending-drawer--open{transform:translateY(0)}.pending-drawer__handle{width:36px;height:4px;background-color:var(--offline-gray-border);border-radius:2px;margin:12px auto 8px}.pending-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 16px;border-bottom:1px solid var(--offline-gray-border)}.pending-drawer__title{font-size:18px;font-weight:600;color:#1a1a1a}.pending-drawer__count{font-size:14px;color:var(--offline-gray-main)}.pending-drawer__close{padding:8px;border:none;background:transparent;cursor:pointer;color:var(--offline-gray-main);border-radius:8px;transition:background-color var(--offline-duration-fast) ease}.pending-drawer__close:hover{background-color:var(--offline-gray-bg)}.pending-drawer__content{flex:1;overflow-y:auto;padding:16px}.pending-drawer__empty{text-align:center;padding:48px 24px;color:var(--offline-gray-main)}.pending-drawer__empty-icon{width:64px;height:64px;margin:0 auto 16px;opacity:.5}.pending-drawer__footer{padding:16px;border-top:1px solid var(--offline-gray-border);display:flex;gap:12px}.pending-order-card{background-color:#fff;border:1px solid var(--offline-gray-border);border-radius:12px;padding:16px;margin-bottom:12px;transition:all var(--offline-duration-fast) ease}.pending-order-card:last-child{margin-bottom:0}.pending-order-card--failed{border-color:var(--offline-error-border);background-color:var(--offline-error-bg)}.pending-order-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.pending-order-card__id{font-size:12px;font-weight:600;color:var(--offline-gray-main)}.pending-order-card__items{font-size:14px;color:#1a1a1a;margin-bottom:8px}.pending-order-card__meta{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--offline-gray-main)}.pending-order-card__amount{font-weight:600;color:#1a1a1a}.pending-order-card__error{margin-top:12px;padding:8px 12px;background-color:#fff;border-radius:6px;font-size:12px;color:var(--offline-error-text);display:flex;align-items:center;gap:6px}.pending-order-card__actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--offline-gray-border)}.pending-order-card__action{flex:1;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all var(--offline-duration-fast) ease}.pending-order-card__action--retry{background-color:var(--offline-primary);color:#fff}.pending-order-card__action--retry:hover{background-color:var(--offline-primary-dark)}.pending-order-card__action--cancel{background-color:transparent;border:1px solid var(--offline-gray-border);color:var(--offline-gray-text)}.pending-order-card__action--cancel:hover{background-color:var(--offline-gray-bg)}.toast-container{position:fixed;bottom:100px;left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:380px;z-index:var(--offline-z-toast);display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background-color:#1a1a1a;border-radius:10px;padding:14px 16px;box-shadow:0 8px 30px #00000040;display:flex;align-items:center;gap:12px;pointer-events:auto;transition:all var(--offline-duration-normal) ease;border:none}.toast--success,.toast--error,.toast--warning,.toast--info{background-color:#1a1a1a}.toast__icon{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.toast__icon--success{color:#22c55e}.toast__icon--error{color:#ef4444}.toast__icon--warning{color:#f59e0b}.toast__icon--info{color:#e23744}.toast__content{flex:1;min-width:0}.toast__title{font-size:14px;font-weight:600;color:#fff;margin-bottom:0;line-height:1.3}.toast__message{font-size:12px;color:#a1a1aa;margin-top:2px;line-height:1.4}.toast__close{flex-shrink:0;padding:6px;border:none;background:transparent;cursor:pointer;color:#71717a;border-radius:6px;transition:all var(--offline-duration-fast) ease}.toast__close:hover{background-color:#ffffff1a;color:#fff}.toast__action{flex-shrink:0;padding:8px 14px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;background-color:#e23744;color:#fff;transition:all var(--offline-duration-fast) ease}.toast__action:hover{background-color:#cb202d;transform:scale(1.02)}.offline-error{padding:16px;border-radius:12px;background-color:var(--offline-error-bg);border:1px solid var(--offline-error-border)}.offline-error__header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.offline-error__icon{width:20px;height:20px;color:var(--offline-error-main)}.offline-error__title{font-size:14px;font-weight:600;color:var(--offline-error-text)}.offline-error__message{font-size:13px;color:var(--offline-error-text);margin-bottom:12px}.offline-error__actions{display:flex;gap:8px}.offline-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all var(--offline-duration-fast) ease}.offline-btn--primary{background-color:var(--offline-primary);color:#fff}.offline-btn--primary:hover{background-color:var(--offline-primary-dark)}.offline-btn--primary:disabled{background-color:var(--offline-gray-light);cursor:not-allowed}.offline-btn--secondary{background-color:transparent;color:var(--offline-primary);border:1px solid var(--offline-primary)}.offline-btn--secondary:hover{background-color:#e237440d}.offline-btn--ghost{background-color:transparent;color:var(--offline-gray-text)}.offline-btn--ghost:hover{background-color:var(--offline-gray-bg)}.offline-btn--sm{padding:6px 12px;font-size:12px}.offline-btn--lg{padding:14px 24px;font-size:16px}.offline-btn--full{width:100%}@media(max-width:480px){.offline-banner{padding:10px 12px;font-size:13px}.pending-drawer{max-height:85vh}.toast-container{left:12px;right:12px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.pending-drawer{padding-bottom:env(safe-area-inset-bottom)}}
