:root{--primary:#1a73e8;--primary-dark:#1557b0;--primary-light:#e8f0fe;--success:#34a853;--warning:#fbbc04;--error:#ea4335;--text-primary:#1a1a1a;--text-secondary:#5f6368;--text-muted:#9aa0a6;--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f1f3f4;--border:#e0e0e0;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:50%}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5}.app{background:var(--bg-primary);max-width:480px;min-height:100vh;margin:0 auto;position:relative;overflow:hidden}.header{background:var(--bg-primary);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.header__logo{align-items:center;gap:10px;display:flex}.header__icon{background:var(--primary);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.header__icon svg{fill:#fff;width:20px;height:20px}.header__title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.header__status{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.header__status-dot{border-radius:var(--radius-full);background:var(--success);width:8px;height:8px}.header__status-dot--offline{background:var(--error)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-secondary);margin:20px;padding:40px 20px;transition:all .2s}.upload-zone:hover,.upload-zone--active{border-color:var(--primary);background:var(--primary-light)}.upload-zone__icon{background:var(--primary-light);border-radius:var(--radius-full);justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex}.upload-zone__icon svg{width:28px;height:28px;fill:var(--primary)}.upload-zone__title{color:var(--text-primary);margin-bottom:4px;font-size:1rem;font-weight:600}.upload-zone__subtitle{color:var(--text-secondary);font-size:.875rem}.section{padding:0 20px 20px}.section__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section__title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.875rem;font-weight:600}.section__badge{background:var(--primary-light);color:var(--primary);border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:600}.device-list{flex-direction:column;gap:8px;display:flex}.device-card{background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;padding:14px 16px;transition:all .15s;display:flex}.device-card:hover{background:var(--primary-light);border-color:var(--primary)}.device-card__avatar{border-radius:var(--radius-full);background:var(--primary);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.device-card__avatar-text{color:#fff;font-size:.875rem;font-weight:700}.device-card__info{flex:1;min-width:0}.device-card__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;overflow:hidden}.device-card__meta{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.device-card__signal{align-items:flex-end;gap:2px;display:flex}.device-card__signal-bar{background:var(--text-muted);border-radius:1px;width:3px}.device-card__signal-bar--active{background:var(--success)}.transfer-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin:0 20px 16px;padding:16px}.transfer-card__header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.transfer-card__title{color:var(--text-primary);font-size:.875rem;font-weight:600}.transfer-card__percent{color:var(--primary);font-size:.875rem;font-weight:700}.transfer-card__progress{background:var(--bg-tertiary);border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden}.transfer-card__progress-bar{background:var(--primary);border-radius:3px;height:100%;transition:width .3s}.transfer-card__meta{color:var(--text-muted);justify-content:space-between;font-size:.75rem;display:flex}.history-item{border-bottom:1px solid var(--bg-tertiary);align-items:center;gap:12px;padding:12px 0;display:flex}.history-item:last-child{border-bottom:none}.history-item__icon{border-radius:var(--radius-sm);background:var(--bg-tertiary);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.history-item__icon svg{width:18px;height:18px;fill:var(--text-secondary)}.history-item__icon--sent svg{fill:var(--primary)}.history-item__icon--received svg{fill:var(--success)}.history-item__info{flex:1;min-width:0}.history-item__name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.history-item__detail{color:var(--text-muted);font-size:.75rem}.history-item__status{border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:500}.history-item__status--completed{color:var(--success);background:#e6f4ea}.history-item__status--failed{color:var(--error);background:#fce8e6}.bottom-nav{background:var(--bg-primary);border-top:1px solid var(--border);width:100%;max-width:480px;padding:8px 0;padding-bottom:max(8px, env(safe-area-inset-bottom));z-index:100;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__item{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px;font-family:inherit;transition:color .15s;display:flex}.bottom-nav__item--active{color:var(--primary)}.bottom-nav__item svg{fill:currentColor;width:22px;height:22px}.bottom-nav__label{font-size:.6875rem;font-weight:500}.offline-banner{background:var(--error);color:#fff;text-align:center;padding:8px 20px;font-size:.8125rem;font-weight:500;display:none}.offline-banner--visible{display:block}.empty-state{text-align:center;color:var(--text-muted);padding:32px 20px}.empty-state__icon{margin-bottom:8px;font-size:2rem}.empty-state__text{font-size:.875rem}.pb-nav{padding-bottom:80px}
