:root{--bg:#0f0f13;--bg-card:#17171f;--bg-input:#1c1c26;--border:#2a2a38;--border-glow:#7c5cfc55;--accent:#7c5cfc;--accent-2:#5b8dff;--accent-grad:linear-gradient(135deg, #7c5cfc, #5b8dff);--danger:#ff5c7a;--success:#3ecf8e;--warn:#f5a623;--synced:#3f5c4f;--text:#e8e8f0;--text-muted:#88a;--text-faint:#55556a;--radius-sm:8px;--radius:14px;--radius-lg:20px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition:.18s ease}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{background:var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font-size:16px}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100dvh;line-height:1.5}#app{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;padding:0 16px 80px;display:flex}.header{background:var(--bg);z-index:10;transition:border-color var(--transition);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:20px 0 12px;display:flex;position:sticky;top:0}.header.scrolled{border-bottom-color:var(--border)}.header-title{align-items:center;gap:10px;display:flex}.header-logo{object-fit:cover;background:#fff;border-radius:10px;flex-shrink:0;width:34px;height:34px;display:block}.header h1{letter-spacing:-.01em;background:var(--accent-grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:700}.status-bar{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;font-weight:500;display:flex}.status-dot{background:var(--success);width:7px;height:7px;transition:background var(--transition);border-radius:50%;flex-shrink:0}.status-dot.offline{background:var(--danger);animation:2s infinite pulse-danger}@keyframes pulse-danger{0%,to{opacity:1}50%{opacity:.4}}.queue-badge{background:var(--accent);color:#fff;opacity:0;min-width:18px;height:18px;transition:opacity var(--transition), transform var(--transition);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.65rem;font-weight:700;display:inline-flex;transform:scale(.7)}.queue-badge.visible{opacity:1;transform:scale(1)}.log-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition), box-shadow var(--transition);margin-top:20px;padding:18px}.log-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--border-glow)}.log-card-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:.7rem;font-weight:600}.log-textarea{width:100%;min-height:90px;color:var(--text);font-family:var(--font);resize:none;caret-color:var(--accent);background:0 0;border:none;outline:none;font-size:1rem;font-weight:400;line-height:1.6}.log-textarea::placeholder{color:var(--text-faint)}.image-input{display:none}.image-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.paste-hint{color:var(--text-faint);font-size:.72rem}.image-preview{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-input);margin-top:12px;overflow:hidden}.image-preview[hidden]{display:none}.image-preview img{object-fit:cover;width:100%;max-height:260px;display:block}.image-preview-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;padding:10px;font-size:.72rem;display:flex}.log-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.char-count{color:var(--text-faint);font-size:.72rem}.success-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:10px;padding:14px 16px;animation:.25s forwards fadeSlideIn}.success-summary[hidden]{display:none}.success-kicker{color:var(--success);letter-spacing:.14em;text-transform:uppercase;margin-bottom:2px;font-size:.68rem;font-weight:800}.success-meta{color:var(--text-faint);margin-top:0;font-size:.72rem}.goal-progress-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.goal-row-header{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:12px;font-size:.86rem;font-weight:700;display:flex}.goal-row-header strong{color:var(--text);text-align:right;font-size:.86rem;font-weight:800}.goal-bar{background:var(--border);border-radius:999px;height:10px;margin-top:8px;overflow:hidden}.goal-bar-fill{background:linear-gradient(90deg, var(--success), #25c26e);border-radius:inherit;height:100%;transition:width .35s}.goal-bar-fill.over{background:linear-gradient(90deg, var(--warn), var(--danger))}.summary-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;margin-top:14px;overflow:hidden}.summary-table{border-collapse:collapse;width:100%;font-size:.86rem}.summary-table th,.summary-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 14px}.summary-table th{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:800}.summary-table td{color:var(--text);font-weight:650}.summary-table th:last-child,.summary-table td:last-child,.summary-table th:nth-child(3),.summary-table td:nth-child(3){text-align:right}.summary-table tr:last-child td{border-bottom:none}.summary-total-row td{background:#7c5cfc12;font-weight:850}.recent-summary{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:8px;overflow:hidden}.recent-summary summary{cursor:pointer;color:#a6a6bc;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:.74rem;font-weight:700;display:flex}.recent-summary summary span{color:#a6a6bc}.recent-summary summary strong{color:var(--text-faint);text-align:right;font-size:.72rem}.recent-summary .success-kicker,.recent-summary .success-meta{display:none}.recent-summary .goal-progress-list,.recent-summary .summary-table-wrap{margin:10px}.btn{font-family:var(--font);border-radius:var(--radius-sm);cursor:pointer;transition:opacity var(--transition), transform var(--transition), background var(--transition);-webkit-user-select:none;user-select:none;border:none;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{color:#fff;background:linear-gradient(135deg,#9a7bff,#6f9bff);border-radius:10px;padding:10px 20px;font-size:.9rem}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);background:0 0;padding:8px 12px}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.btn-sync{color:var(--text-faint);background:#7c5cfc0d;border:1px solid #7c5cfc22;border-radius:20px;padding:6px 12px;font-size:.78rem}.btn-sync:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sync.syncing .sync-icon{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.section-header{justify-content:space-between;align-items:center;margin-top:28px;margin-bottom:12px;display:flex}.section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.log-list{flex-direction:column;gap:8px;display:flex}.log-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:12px;padding:14px 16px;animation:.25s forwards fadeSlideIn;display:flex}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.log-item-icon{flex-shrink:0;margin-top:1px;font-size:1.3rem;line-height:1}.log-item-body{flex:1;min-width:0}.log-item-text{color:var(--text-muted);word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;display:-webkit-box;overflow:hidden}.log-item-image{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;max-height:180px;margin-top:8px;display:block}.log-item-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;display:flex}.log-item-time{color:var(--text-faint);font-size:.7rem}.status-pill{letter-spacing:.04em;text-transform:uppercase;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:.65rem;font-weight:600;display:inline-flex}.status-pill.queued{color:var(--warn);background:#f5a62322}.status-pill.syncing{color:var(--accent-2);background:#5b8dff22}.status-pill.synced{color:var(--synced);background:#3ecf8e0d}.status-pill.failed{color:var(--danger);background:#ff5c7a22}.empty-state{text-align:center;color:var(--text-faint);padding:40px 20px;font-size:.85rem}.empty-state-icon{opacity:.5;margin-bottom:12px;font-size:2.5rem}.toast-container{bottom:calc(24px + env(safe-area-inset-bottom));z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(90vw,340px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);-webkit-backdrop-filter:blur(12px);pointer-events:auto;text-align:center;width:100%;padding:12px 18px;font-size:.82rem;font-weight:500;animation:.25s forwards toastIn;box-shadow:0 8px 32px #0008}.toast.success{border-color:var(--success);color:var(--success)}.toast.error{border-color:var(--danger);color:var(--danger)}.toast.info{border-color:var(--accent);color:var(--accent)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast.out{animation:.2s forwards toastOut}@keyframes toastOut{to{opacity:0;transform:translateY(8px)scale(.95)}}.sync-toolbar{align-items:center;gap:10px;display:flex}.sync-label{color:var(--text-faint);font-size:.72rem}@media (pointer:fine){::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}}@media (width>=600px){#app{padding:0 24px 60px}.header{padding:28px 0 16px}}
