:root{--bg: #111827;--surface: #1f2937;--surface-hi: #374151;--text: #f9fafb;--text-dim: #9ca3af;--accent: #60a5fa;--warn: #fbbf24;--danger: #f87171;--ok: #34d399;--radius: 12px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app{max-width:640px;margin:0 auto;padding:1rem 1rem 4rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1.25rem}.app-header h1{font-size:1.25rem;margin:0;letter-spacing:.05em}.sync-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface);color:var(--text-dim);border:none;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;cursor:pointer}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim)}.sync-idle .sync-dot{background:var(--ok)}.sync-syncing .sync-dot{background:var(--accent);animation:pulse 1s ease-in-out infinite}.sync-offline .sync-dot,.sync-error .sync-dot{background:var(--warn)}@keyframes pulse{50%{opacity:.3}}@media(prefers-reduced-motion:reduce){.sync-syncing .sync-dot{animation:none}}.quick-add h2,.timeline h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 .6rem}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.quick-button{display:flex;flex-direction:column;align-items:center;gap:.35rem;background:var(--surface);color:var(--text);border:none;border-radius:var(--radius);min-height:88px;padding:.75rem .4rem;font-size:.75rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.quick-button:active{background:var(--surface-hi);transform:scale(.97)}.quick-icon{font-size:1.6rem}.quick-feedback{min-height:1.2rem;margin:.5rem 0 1.5rem;font-size:.8rem;color:var(--ok);text-align:center}.timeline ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.timeline-item{display:flex;align-items:center;gap:.75rem;background:var(--surface);border-radius:var(--radius);padding:.75rem}.timeline-icon{font-size:1.3rem}.timeline-body{flex:1;min-width:0}.timeline-head{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem}.timeline-head time{color:var(--text-dim);font-variant-numeric:tabular-nums}.timeline-summary{font-size:.85rem;color:var(--text-dim)}.timeline-notes{font-size:.8rem;color:var(--text-dim);font-style:italic;margin-top:.25rem}.pending-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);flex-shrink:0}.icon-button{background:none;border:none;color:var(--text-dim);font-size:1rem;padding:.5rem;cursor:pointer}.empty{color:var(--text-dim);text-align:center;padding:2rem 1rem;font-size:.9rem}.login{max-width:360px;margin:0 auto;padding:4rem 1.5rem}.login h1{margin:0;font-size:1.5rem;letter-spacing:.05em}.login-sub{color:var(--text-dim);margin:.25rem 0 2rem;font-size:.9rem}.login form{display:flex;flex-direction:column;gap:.4rem}.login label{font-size:.8rem;color:var(--text-dim);margin-top:.75rem}.login input{background:var(--surface);border:1px solid var(--surface-hi);border-radius:8px;color:var(--text);padding:.75rem;font-size:16px}.login button{margin-top:1.5rem;background:var(--accent);color:#0b1220;border:none;border-radius:8px;padding:.85rem;font-size:1rem;font-weight:600;cursor:pointer}.login button:disabled{opacity:.6}.login-note{margin-top:2rem;font-size:.75rem;color:var(--text-dim);line-height:1.5}.error{color:var(--danger);font-size:.85rem;margin:.75rem 0 0}.tabs{display:flex;gap:.4rem;margin-bottom:1rem}.tabs button{flex:1;background:var(--surface);color:var(--text-dim);border:none;border-radius:8px;padding:.6rem;font-size:.85rem;cursor:pointer}.tabs button.on{background:var(--surface-hi);color:var(--text);font-weight:600}.detail-button{width:100%;background:none;border:1px dashed var(--surface-hi);color:var(--text-dim);border-radius:var(--radius);padding:.7rem;font-size:.85rem;cursor:pointer;margin-bottom:1.25rem}.filter-row{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:.75rem;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.chip{flex-shrink:0;background:var(--surface);color:var(--text-dim);border:none;border-radius:999px;padding:.35rem .75rem;font-size:.75rem;cursor:pointer}.chip.on{background:var(--accent);color:#0b1220;font-weight:600}.timeline-group{margin-bottom:1.25rem}.group-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;background:var(--bg);margin:0 0 .5rem;padding:.4rem 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.group-count{background:var(--surface);border-radius:999px;padding:.1rem .45rem;font-size:.7rem}.timeline-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;background:none;border:none;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.timeline-body:disabled{cursor:default}.wake-button{flex-shrink:0;background:var(--accent);color:#0b1220;border:none;border-radius:999px;padding:.3rem .6rem;font-size:.7rem;font-weight:600;cursor:pointer}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{width:100%;max-width:640px;max-height:90vh;overflow-y:auto;background:var(--bg);border-radius:16px 16px 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.3rem}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.sheet-head h2{margin:0;font-size:1rem}.sheet label{font-size:.75rem;color:var(--text-dim);margin-top:.6rem}.sheet input,.sheet select,.sheet textarea{background:var(--surface);border:1px solid var(--surface-hi);border-radius:8px;color:var(--text);padding:.6rem;font-size:16px;font-family:inherit;width:100%}.time-row{display:flex;gap:.4rem;align-items:stretch}.time-row input{flex:1;min-width:0}.now-button{flex-shrink:0;background:var(--surface-hi);color:var(--text);border:none;border-radius:8px;padding:0 .85rem;font-size:.8rem;font-weight:600;cursor:pointer}.now-button.ghost{background:none;color:var(--text-dim);padding:0 .6rem}.field-hint{font-size:.7rem;color:var(--text-dim);margin:.25rem 0 0}.sheet .primary{margin-top:1.25rem;background:var(--accent);color:#0b1220;border:none;border-radius:8px;padding:.85rem;font-size:1rem;font-weight:600;cursor:pointer}.stats-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.stats-head h2{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.seg{display:flex;gap:.25rem}.seg button{background:var(--surface);color:var(--text-dim);border:none;border-radius:6px;padding:.3rem .6rem;font-size:.75rem;cursor:pointer}.seg button.on{background:var(--surface-hi);color:var(--text)}.hero{display:flex;flex-direction:column;align-items:center;padding:1.25rem 0 1rem}.hero-value{font-size:2.5rem;font-weight:600;line-height:1}.hero-label{font-size:.75rem;color:var(--text-dim);margin-top:.35rem}.sub-head{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:1.25rem 0 .5rem}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:.5rem}.tile{background:var(--surface);border-radius:var(--radius);padding:.7rem .3rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:0}.tile-value{font-size:1.25rem;font-weight:600}.tile-label{font-size:.65rem;color:var(--text-dim);text-align:center;overflow-wrap:anywhere;line-height:1.2}.card{background:var(--surface);border-radius:var(--radius);padding:.85rem;margin-top:1rem}.card h3{margin:0 0 .6rem;font-size:.85rem;font-weight:600}.chart-wrap{position:relative}.chart{width:100%;height:auto;display:block;overflow:visible}.chart-tip{position:absolute;transform:translate(-50%,-110%);background:var(--bg);border:1px solid var(--surface-hi);border-radius:8px;padding:.4rem .6rem;font-size:.7rem;display:flex;flex-direction:column;gap:.1rem;pointer-events:none;white-space:nowrap;z-index:2}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 .6rem;padding:0;font-size:.7rem;color:var(--text-dim)}.legend li{display:flex;align-items:center;gap:.3rem}.legend-swatch{width:10px;height:10px;border-radius:3px}.link-button{background:none;border:none;color:var(--accent);font-size:.75rem;padding:.75rem 0;cursor:pointer}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.75rem;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:.4rem .5rem;text-align:right;border-bottom:1px solid var(--surface-hi)}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table th{color:var(--text-dim);font-weight:500}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--surface);font-size:.75rem;color:var(--text-dim)}.footer-actions{display:flex;gap:.5rem}.app-footer button{background:var(--surface);color:var(--text-dim);border:none;border-radius:6px;padding:.4rem .7rem;font-size:.75rem;cursor:pointer}
