@tailwind base; @tailwind components; @tailwind utilities; :root { --radius-sm: 10px; --radius-md: 14px; --radius-lg: 20px; font-family: "Google Sans", "SF Pro Display", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #eef3fb; } * { box-sizing: border-box; } html, body, #root { min-width: 320px; min-height: 100vh; margin: 0; } body { overflow-x: hidden; background: #eef3fb; color: #202124; font-family: "Google Sans", "SF Pro Display", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-weight: 400; -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision; } button, input, select, textarea { font: inherit; } button { cursor: pointer; touch-action: manipulation; } button:disabled { cursor: not-allowed; opacity: 0.62; } button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--primary, #2563c7) 36%, transparent); outline-offset: 3px; } ::selection { background: color-mix(in srgb, var(--primary-container, #dbe9ff) 80%, transparent); } ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: #eef3fb; } ::-webkit-scrollbar-thumb { background: #c5d0df; border: 3px solid #eef3fb; border-radius: 999px; } .app-shell { min-height: 100vh; color: var(--text, #202124); background: radial-gradient(circle at 78% 12%, color-mix(in srgb, var(--primary-container, #dbe9ff) 42%, transparent), transparent 32rem), var(--bg, #eef3fb); color-scheme: light; } .app-shell[data-mode="dark"] { color-scheme: dark; } .app-layout { display: grid; width: 100%; max-width: 1680px; gap: 16px; margin: 0 auto; padding: max(12px, env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) calc(92px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); } .app-content, .app-main { min-width: 0; } .app-content { display: flex; flex-direction: column; gap: 0; } .app-view { margin-top: 16px; } .app-main { max-width: 1050px; margin: 10px auto 0; } .material-drawer { position: sticky; top: 12px; display: none; height: calc(100vh - 24px); flex-direction: column; gap: 22px; padding: 24px 10px; background: transparent; border: 0; } .drawer-brand, .top-title-cluster, .account-card { display: flex; align-items: center; gap: 14px; min-width: 0; } .can-emblem, .top-app-icon { display: grid; width: 48px; height: 48px; flex: 0 0 auto; place-items: center; color: var(--primary, #2563c7); background: color-mix(in srgb, var(--primary-container, #dbe9ff) 82%, #ffffff); border-radius: 18px; } .drawer-primary-action, .primary-button, .secondary-button, .danger-button, .excel-button, .list-button, .icon-button, .mobile-nav-item, .suggestion-chip, .account-pill { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 999px; padding: 0 18px; font-size: 14px; font-weight: 500; line-height: 1; letter-spacing: 0; transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease; } .drawer-primary-action { min-height: 58px; width: 100%; font-size: 17px; } .primary-button, .drawer-primary-action { color: var(--on-primary, #ffffff); background: var(--primary, #2563c7); box-shadow: 0 10px 24px color-mix(in srgb, var(--primary, #2563c7) 22%, transparent); } .primary-button:hover, .drawer-primary-action:hover { background: color-mix(in srgb, var(--primary, #2563c7) 90%, #000000); } .secondary-button, .excel-button, .list-button, .icon-button, .suggestion-chip, .account-pill { color: #202124; background: #ffffff; border-color: #cfd8e6; box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08); } .secondary-button:hover, .excel-button:hover, .list-button:hover, .icon-button:hover, .suggestion-chip:hover, .account-pill:hover { background: #f7faff; box-shadow: 0 2px 6px rgba(60, 64, 67, 0.12); } .danger-button { color: #9f1c16; background: #fff3f1; border-color: #ffc9c2; } .drawer-nav, .drawer-footer { display: grid; gap: 10px; } .drawer-footer { margin-top: auto; } .nav-item { display: flex; min-height: 56px; width: 100%; align-items: center; gap: 12px; padding: 6px 12px 6px 6px; color: #3c4043; background: transparent; border: 0; border-radius: 999px; font-size: 15px; font-weight: 500; text-align: left; } .nav-item:hover { background: rgba(32, 33, 36, 0.04); } .nav-item-active { color: #174ea6; background: color-mix(in srgb, var(--primary-container, #dbe9ff) 92%, #ffffff); } .nav-icon-dot { display: grid; width: 44px; height: 44px; flex: 0 0 auto; place-items: center; color: #174ea6; background: #d2e3fc; border-radius: 999px; } .nav-icon-dot-1 { color: #0d652d; background: #ceead6; } .nav-icon-dot-2 { color: #0b57d0; background: #c2e7ff; } .nav-icon-dot-3 { color: #8430ce; background: #e9d2fd; } .nav-item-active .nav-icon-dot { color: #ffffff; background: var(--primary, #2563c7); } .drawer-info-card, .glass-panel, .auth-panel, .app-card, .modal-panel { background: rgba(255, 255, 255, 0.94); border: 1px solid #d8e1ee; border-radius: 22px; box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 10px 30px rgba(60, 64, 67, 0.06); } .drawer-info-card { padding: 16px; } .account-pill { width: 100%; min-height: 52px; overflow: hidden; text-overflow: ellipsis; } .mobile-nav-bar { position: fixed; right: 12px; bottom: max(12px, env(safe-area-inset-bottom, 0px)); left: 12px; z-index: 40; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 6px; background: rgba(255, 255, 255, 0.96); border: 1px solid #d8e1ee; border-radius: 24px; box-shadow: 0 12px 34px rgba(60, 64, 67, 0.16); backdrop-filter: blur(12px); } .mobile-nav-item { display: flex; min-height: 54px; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 0; border-radius: 16px; color: #5f6670; background: transparent; box-shadow: none; font-size: 11px; font-weight: 500; transition: background 0.15s ease, color 0.15s ease; } .mobile-nav-item:hover { background: #f1f5fb; } .mobile-nav-item-active { color: var(--primary, #2563c7); background: var(--primary-container, #dbe9ff); } .top-app-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 2px 12px; background: transparent; border: 0; } .top-app-bar-main, .top-action-row { display: flex; align-items: center; gap: 10px; min-width: 0; } .top-app-bar-main { flex: 1 1 auto; } .top-action-row { flex: 0 0 auto; margin-top: 0; } .top-action-button { min-height: 44px; } .top-action-label { white-space: nowrap; } .top-kicker { color: #5f6670; font-size: 13px; } .top-title { margin-top: 2px; color: #202124; font-size: clamp(22px, 3vw, 31px); font-weight: 500; line-height: 1.12; letter-spacing: 0; } .home-hero { display: grid; justify-items: center; gap: 12px; padding: 12px 8px 18px; text-align: center; } .hero-action-row { display: grid; width: min(680px, 100%); gap: 10px; } .hero-scan-button { width: 100%; min-height: 52px; justify-content: flex-start; padding: 0 24px; font-size: 17px; border-radius: 999px; } .hero-icon-row { display: none; flex-wrap: wrap; justify-content: center; gap: 26px; margin-bottom: 4px; } .hero-icon-row span { display: grid; width: 54px; height: 54px; place-items: center; color: #ffffff; background: var(--primary, #2563c7); border-radius: 18px; box-shadow: 0 10px 22px color-mix(in srgb, var(--primary, #2563c7) 18%, transparent); } .hero-icon-row span:nth-child(2) { background: #0f9d58; } .hero-icon-row span:nth-child(3) { background: #fbbc04; color: #392600; } .hero-icon-row span:nth-child(4) { background: #a142f4; } .hero-avatar, .account-avatar { display: grid; place-items: center; color: #ffffff; background: #6f9f42; border-radius: 999px; } .hero-avatar { width: 96px; height: 96px; border: 4px solid #ffffff; font-size: 42px; font-weight: 500; box-shadow: 0 12px 32px rgba(60, 64, 67, 0.16); } .account-avatar { width: 54px; height: 54px; flex: 0 0 auto; font-size: 22px; font-weight: 500; } .hero-kicker { color: var(--primary, #2563c7); font-size: 13px; font-weight: 500; } .hero-name { color: #202124; font-size: clamp(36px, 5vw, 56px); font-weight: 500; line-height: 1.04; letter-spacing: 0; } .hero-copy { max-width: 620px; color: #5f6670; font-size: 16px; line-height: 1.55; } .hero-search-button { display: flex; width: min(680px, 100%); min-height: 64px; align-items: center; justify-content: flex-start; gap: 14px; padding: 0 24px; color: #3c4043; background: #ffffff; border: 0; border-radius: 999px; box-shadow: 0 3px 10px rgba(60, 64, 67, 0.12), 0 1px 2px rgba(60, 64, 67, 0.08); font-size: 18px; font-weight: 400; } .hero-search-button svg { color: #202124; } .hero-stat-row { display: grid; width: min(760px, 100%); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .overview-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .overview-charts-grid { grid-template-columns: minmax(0, 1fr); } .overview-insights-grid { grid-template-columns: minmax(0, 1fr); } .chart-shell { width: 100%; } .chart-shell--area { height: 220px; } .chart-shell--pie { height: 240px; } .today-panel-metrics { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); } .today-action-row .primary-button, .today-action-row .secondary-button { flex: 1 1 140px; } .status-card { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 10px 14px; border: 1px solid #d8e1ee; border-radius: 18px; background: #ffffff; color: #202124; } .summary-panel, .can-panel { background: #ffffff; } .today-panel { border: 1px solid #d8e1ee; border-radius: 26px; box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 12px 28px rgba(60, 64, 67, 0.07); } .section-kicker { color: var(--primary, #2563c7); font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; } .section-meta, .today-limit-summary { color: #5f6670; font-size: 14px; } .today-stat-value { color: #202124; font-size: clamp(3.5rem, 8vw, 5rem); font-weight: 500; line-height: 1; letter-spacing: 0; } .today-stat-label { color: #5f6670; font-size: 18px; } .metric-tile { padding: 16px; } .metric-tile-label, .app-card-subtitle, .insight-card-label { color: #5f6670; font-size: 14px; font-weight: 500; } .metric-tile-value, .app-card-title, .insight-card-value, .empty-state-title { color: #202124; font-weight: 500; } .metric-tile-value { margin-top: 10px; font-size: 1.875rem; line-height: 1.1; } .metric-tile-detail, .insight-card-detail, .empty-state-copy { color: #5f6670; font-size: 14px; line-height: 1.5; } .metric-tile-icon { display: flex; width: 40px; height: 40px; flex: 0 0 auto; align-items: center; justify-content: center; background: color-mix(in srgb, var(--primary-container, #dbe9ff) 82%, #ffffff); border: 1px solid #d8e1ee; border-radius: 14px; } .mini-metric-card { padding: 12px 14px; } .mini-metric-label { color: #5f6670; font-size: 12px; font-weight: 500; } .mini-metric-value { margin-top: 6px; color: #202124; font-size: 1.25rem; font-weight: 500; } .quick-add-button { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; color: #202124; text-align: left; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease; } .quick-add-button:hover { background: #f7faff; border-color: color-mix(in srgb, var(--primary, #2563c7) 24%, #d8e1ee); box-shadow: 0 2px 8px rgba(60, 64, 67, 0.08); } .quick-add-icon { display: flex; width: 40px; height: 40px; align-items: center; justify-content: center; color: var(--primary, #2563c7); background: color-mix(in srgb, var(--primary-container, #dbe9ff) 82%, #ffffff); border-radius: 14px; } .quick-add-meta { color: #5f6670; font-size: 14px; } .empty-state { display: flex; min-height: 240px; flex-direction: column; align-items: center; justify-content: center; padding: 24px; text-align: center; background: #ffffff; border: 1px dashed #cfd8e6; border-radius: 18px; } .empty-state-icon { display: flex; width: 48px; height: 48px; align-items: center; justify-content: center; margin-bottom: 12px; color: var(--primary, #2563c7); background: color-mix(in srgb, var(--primary-container, #dbe9ff) 82%, #ffffff); border-radius: 14px; } .empty-state-title { font-size: 1.25rem; } .limit-alert { padding: 16px 20px; background: #fff8e8; border: 1px solid #f9e3b0; border-radius: 22px; } .limit-alert-title { color: #7a4e00; font-weight: 500; } .limit-alert-copy { color: #5f6670; font-size: 14px; line-height: 1.55; } .source-badge { display: inline-flex; align-items: center; padding: 4px 8px; color: #174ea6; font-size: 12px; font-weight: 500; background: color-mix(in srgb, var(--primary-container, #dbe9ff) 92%, #ffffff); border-radius: 999px; } .entry-chip { display: inline-flex; align-items: center; padding: 4px 8px; color: #5f6670; font-size: 12px; font-weight: 500; background: #edf2fa; border-radius: 999px; } .entry-title, .mini-entry-title { color: #202124; font-size: 1.125rem; font-weight: 500; } .entry-meta, .mini-entry-meta { color: #5f6670; font-size: 14px; } .entry-summary { color: #3c4043; font-size: 14px; } .mini-entry-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 12px 14px; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; } .mini-entry-price { color: #202124; font-size: 14px; font-weight: 500; } .auth-panel-shell { width: 100%; max-width: 24rem; } .auth-panel-card { padding: 24px; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 22px; box-shadow: 0 1px 2px rgba(60, 64, 67, 0.08), 0 12px 28px rgba(60, 64, 67, 0.08); } .auth-mode-toggle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; background: #edf2fa; border: 1px solid #d8e1ee; border-radius: 999px; } .auth-mode-toggle button { min-height: 36px; border: 0; border-radius: 999px; color: #5f6670; background: transparent; font-size: 14px; font-weight: 500; } .auth-mode-toggle button.auth-mode-active { color: #202124; background: #ffffff; box-shadow: 0 1px 2px rgba(60, 64, 67, 0.12); } .forecast-stat { padding: 16px; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; } .forecast-stat-label { display: block; color: #5f6670; font-size: 10px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; } .forecast-stat-value { margin-top: 4px; color: #202124; font-size: 1.5rem; font-weight: 500; } .forecast-stat-note { display: block; margin-top: 4px; color: #5f6670; font-size: 10px; font-weight: 500; } .forecast-stat--positive .forecast-stat-value { color: #0d652d; } .forecast-stat--positive .forecast-stat-label, .forecast-stat--positive .forecast-stat-note { color: #0d652d; } .forecast-chart-wrap { padding: 8px; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; } .wellness-pill, .limit-row, .mini-entry, .entry-row, .metric-soft, .quick-add-item { background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; } .wellness-pill, .metric-soft { padding: 14px; } .wellness-pill span, .limit-row-head span { color: #5f6670; font-size: 12px; } .wellness-pill strong, .limit-row-head strong { display: block; margin-top: 5px; color: #202124; font-size: 17px; font-weight: 500; } .limit-row { padding: 14px; } .limit-row-head { display: flex; justify-content: space-between; gap: 12px; } .limit-progress { height: 9px; margin-top: 12px; overflow: hidden; background: #e8edf5; border-radius: 999px; } .limit-progress-fill { height: 100%; background: var(--primary, #2563c7); } .limit-row--warn .limit-progress-fill { background: #b06000; } .limit-row--over .limit-progress-fill { background: #b3261e; } .limit-row-value { margin-top: 8px; color: #5f6670; font-size: 13px; } .field-label { display: grid; gap: 8px; color: #5f6670; font-size: 13px; font-weight: 500; } .field-control, .field-input { width: 100%; min-height: 46px; padding: 10px 13px; color: #202124; background: #ffffff; border: 1px solid #cfd8e6; border-radius: 14px; } .field-control::placeholder, .field-input::placeholder { color: #80868b; } .field-help-text, .field-error-text { margin-top: 6px; font-size: 13px; line-height: 1.4; } .field-help-text { color: var(--muted, #5f6670); } .field-error-text { color: var(--error, #ba1a1a); } .entry-row { display: grid; gap: 12px; padding: 16px; } .mini-entry { padding: 12px 14px; } .modal-panel { width: min(920px, 100%); max-height: min(92dvh, 980px); overflow: auto; padding: 18px; -webkit-overflow-scrolling: touch; } .modal-backdrop { align-items: flex-end; padding: 0; padding-bottom: env(safe-area-inset-bottom, 0px); } .modal-backdrop .modal-panel { width: 100%; max-height: min(92dvh, 980px); border-radius: 22px 22px 0 0; } .logbook-layout { grid-template-columns: minmax(0, 1fr); } .quick-add-grid { grid-template-columns: minmax(0, 1fr); } .settings-section, .theme-preview-strip, .theme-picker-grid { display: grid; gap: 12px; } .theme-preview-strip, .theme-picker-grid { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); } .theme-tile { display: flex; min-height: 52px; align-items: center; gap: 11px; padding: 11px 13px; color: #202124; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 18px; } .theme-tile-active { border-color: var(--primary, #2563c7); box-shadow: inset 0 0 0 1px var(--primary, #2563c7); } .theme-tile-swatch, .theme-indicator-swatch { display: inline-block; width: 20px; height: 20px; flex: 0 0 auto; border: 1px solid rgba(60, 64, 67, 0.2); border-radius: 50%; } .theme-indicator { display: inline-flex; min-height: 38px; align-items: center; gap: 8px; padding: 0 12px; color: #202124; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 999px; } .badge { display: inline-flex; min-height: 26px; align-items: center; gap: 6px; padding: 0 10px; color: var(--muted, #5f6670); background: var(--surface-container-high, #f1f4f9); border: 1px solid var(--outline-variant, #dce5f1); border-radius: 999px; font-size: 12px; font-weight: 500; line-height: 1; } .badge-accent { color: var(--on-primary-container, #10243f); background: var(--primary-container, #dbe9ff); border-color: color-mix(in srgb, var(--primary, #2563c7) 24%, transparent); } .badge-success { color: var(--on-success-container, #03210f); background: var(--success-container, #ceead6); border-color: color-mix(in srgb, var(--success, #0d652d) 24%, transparent); } .badge-warning { color: var(--on-warning-container, #291800); background: var(--warning-container, #ffddb0); border-color: color-mix(in srgb, var(--warning, #8d5700) 24%, transparent); } .badge-danger { color: var(--on-error-container, #410002); background: var(--error-container, #ffdad6); border-color: color-mix(in srgb, var(--error, #ba1a1a) 24%, transparent); } .segmented-control { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 4px; background: #edf2fa; border: 1px solid #d8e1ee; border-radius: 999px; } .segmented-control button { min-height: 34px; border: 0; border-radius: 999px; color: #5f6670; background: transparent; font-size: 12px; font-weight: 500; } .segmented-control .segmented-control-active { color: #ffffff; background: var(--primary, #2563c7); } .chart-tooltip { padding: 10px 12px; background: #ffffff; border: 1px solid #d8e1ee; border-radius: 16px; box-shadow: 0 12px 28px rgba(60, 64, 67, 0.14); } .backdrop-wash, .backdrop-grid, .backdrop-rail { display: none; } .deploy-legal { display: flex; justify-content: center; gap: 12px; padding: 20px; color: #5f6670; font-size: 13px; } .deploy-legal a { color: inherit; text-decoration: underline; } .app-shell .font-black, .app-shell .font-bold { font-weight: 600 !important; } .app-shell .font-semibold { font-weight: 500 !important; } .app-shell .tracking-tight { letter-spacing: 0 !important; } .app-shell .text-white, .app-shell .text-cyan-50, .app-shell .text-cyan-100, .app-shell .text-cyan-200, .app-shell .text-pink-100, .app-shell .text-emerald-400, .app-shell .text-teal-300, .app-shell [class*="text-cyan-"], .app-shell [class*="text-teal-"] { color: #202124 !important; } .app-shell .text-slate-100, .app-shell .text-slate-200, .app-shell .text-slate-300 { color: #3c4043 !important; } .app-shell .text-slate-400, .app-shell .text-slate-500, .app-shell .text-slate-600 { color: #5f6670 !important; } .app-shell .bg-white\/\[0\.01\], .app-shell .bg-white\/\[0\.02\], .app-shell .bg-white\/\[0\.04\], .app-shell .bg-white\/\[0\.05\], .app-shell .bg-white\/\[0\.06\], .app-shell .bg-white\/\[0\.10\], .app-shell .bg-black\/20, .app-shell .bg-emerald-500\/5, .app-shell .bg-gradient-to-tr { background: #ffffff !important; } .app-shell .border-white\/5, .app-shell .border-white\/10, .app-shell .border-cyan-200\/20, .app-shell .border-cyan-200\/30, .app-shell .border-pink-200\/30, .app-shell .border-emerald-500\/10, .app-shell .border-emerald-500\/20 { border-color: #d8e1ee !important; } @media (min-width: 480px) { .app-layout { padding-left: 16px; padding-right: 16px; } .home-hero { padding: 16px 12px 22px; gap: 14px; } .hero-action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hero-search-button, .hero-scan-button { min-height: 56px; } } @media (min-width: 640px) { .hero-stat-row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } .today-panel-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } .today-action-row { display: flex; flex-wrap: wrap; } .chart-shell--area { height: 260px; } .chart-shell--pie { height: 280px; } .overview-insights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .modal-panel { padding: 22px; } .modal-backdrop { align-items: center; padding: 16px; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); } .modal-backdrop .modal-panel { width: min(920px, 100%); border-radius: 22px; } .quick-add-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 768px) and (max-width: 1023px) { .app-layout { padding: max(14px, env(safe-area-inset-top, 0px)) 20px calc(96px + env(safe-area-inset-bottom, 0px)); } } @media (min-width: 768px) { .home-hero { padding: clamp(20px, 3vw, 40px) 16px 24px; } .overview-metrics-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .overview-charts-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); align-items: start; } .overview-insights-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .chart-shell--area { height: 280px; } .today-stat-value { font-size: clamp(3rem, 6vw, 5rem); } .logbook-layout { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); align-items: start; } } @media (min-width: 1024px) { .app-layout { grid-template-columns: minmax(268px, 300px) minmax(0, 1fr); gap: 32px; align-items: start; padding: 24px 28px 28px; } .material-drawer { display: flex; } .mobile-nav-bar { display: none; } .app-view { margin-top: 8px; } .hero-icon-row { display: flex; } .top-app-bar--overview { display: flex; } } @media (max-width: 1023px) { .top-app-bar--overview { display: none; } } @media (max-width: 760px) { .top-app-bar { flex-direction: column; align-items: stretch; gap: 10px; } .top-action-row { width: 100%; } .top-action-row .top-action-button { flex: 1 1 0; min-width: 0; padding: 0 14px; } .top-title { font-size: clamp(20px, 5.5vw, 28px); } .top-app-icon { width: 42px; height: 42px; border-radius: 14px; } .hero-icon-row { gap: 10px; } .hero-icon-row span { width: 40px; height: 40px; border-radius: 14px; } .hero-avatar { width: 72px; height: 72px; font-size: 32px; } .hero-name { font-size: clamp(28px, 8vw, 40px); } .hero-copy { font-size: 15px; line-height: 1.5; padding: 0 4px; } .hero-search-button { min-height: 52px; font-size: 16px; padding: 0 18px; } .today-panel { padding: 16px; } .today-panel-metrics { grid-template-columns: 1fr; } .today-action-row { display: grid; grid-template-columns: 1fr; } .today-action-row .entry-chip { justify-content: center; text-align: center; } .wellness-pill { padding: 12px; } .wellness-pill strong { font-size: 15px; } .mobile-nav-item { min-height: 48px; font-size: 10px; } .segmented-control { width: 100%; max-width: none; } .segmented-control button { min-height: 36px; font-size: 11px; padding: 0 4px; } } .legal-footnote { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem 0.75rem; padding-top: 0.25rem; font-size: 11px; color: var(--subtle, #64748b); } .legal-footnote-site { font-weight: 600; letter-spacing: 0.02em; } .legal-footnote-links { display: inline-flex; align-items: center; gap: 0.65rem; } .legal-tooltip-wrap { position: relative; display: inline-flex; } .legal-tooltip-trigger { border: 0; background: transparent; padding: 0; font: inherit; font-size: 11px; font-weight: 600; color: var(--primary, #2563c7); text-decoration: underline; text-underline-offset: 2px; cursor: help; } .legal-tooltip-trigger:hover, .legal-tooltip-trigger:focus-visible { color: var(--primary-strong, #174ea6); } .legal-tooltip { position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 40; width: min(280px, 72vw); transform: translateX(-50%); padding: 0.65rem 0.75rem; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.35); background: rgba(15, 23, 42, 0.96); color: #e2e8f0; font-size: 11px; line-height: 1.45; text-align: left; box-shadow: 0 12px 28px rgba(2, 6, 23, 0.35); pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.15s ease, visibility 0.15s ease; } .legal-tooltip-wrap:hover .legal-tooltip, .legal-tooltip-wrap:focus-within .legal-tooltip { opacity: 1; visibility: visible; } @media (max-width: 380px) { .hero-icon-row { display: none; } .top-action-label { display: none; } .top-action-row .top-action-button { min-width: 44px; padding: 0 12px; } .mobile-nav-bar { left: 8px; right: 8px; bottom: 8px; padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)); } }