:root{--ink:#14211b;--primary:#1b7e65;--accent:#bd8228;--muted:#5b6b63;--surface:#fbf8f2;--mint:#e3faee;--peach:#f9d4da;--peachBold:#e87f93;--babyBlue:#e4effb;--themeExercise:#d8eafb;--themeFamily:#faedc0;--themeSocial:#e2d2f6;--themeHealth:#f3d4ae;--themeExerciseBold:#4a90d9;--themeFamilyBold:#d79a1e;--themeSocialBold:#8552e0;--themeHealthBold:#c9691e;--phaseFollicular:#d3eae0;--phaseOvulation:#91c4a7;--phaseLuteal:#45906f;--phaseMenstrual:#1b7e65;--phaseFollicularShade:#e9f4ef;--phaseOvulationShade:#c7e3d6;--phaseLutealShade:#9bcfb8;--phaseLutealFill20:#f6f9f8}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1,h2,h3{margin:0 0 8px;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}.screen{max-width:480px;min-height:100vh;margin:0 auto;padding:24px 20px 48px}.card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 4px #14211b14}p.muted{color:var(--muted);font-size:14px}button{font:inherit}button.primary{background:var(--primary);color:#fff;border:2px solid var(--ink);cursor:pointer;width:100%;box-shadow:3px 3px 0 var(--ink);border-radius:10px;padding:14px 22px;font-size:16px;font-weight:600;transition:transform .1s,box-shadow .1s}button.primary:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.primary.flat{box-shadow:none;border:none}button.primary.flat:active{box-shadow:none;transform:none}button.primary.compact{width:auto;padding:9px 18px;font-size:14px;display:inline-block}button.secondary{color:var(--ink);border:2px solid var(--ink);cursor:pointer;width:100%;box-shadow:3px 3px 0 var(--ink);background:0 0;border-radius:10px;padding:12px 20px;transition:transform .1s,box-shadow .1s}button.secondary:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}button.accent{background:var(--accent);color:#fff;cursor:pointer;width:100%;box-shadow:3px 3px 0 var(--ink);border:none;border-radius:10px;padding:14px 22px;font-size:16px;font-weight:600;transition:transform .1s,box-shadow .1s}button.accent:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.close-btn{width:32px;height:32px;color:var(--muted);cursor:pointer;background:#f0ece3;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.log-period-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}a.link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}input[type=date],input[type=text],input[type=time],input[type=number],textarea{border:1px solid var(--muted);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:12px;font-family:inherit;font-size:16px}textarea{resize:vertical;min-height:140px}.error-text{color:#9b2c2c;font-size:14px}.events-list{flex-direction:column;gap:8px;display:flex}.event-row{background:var(--surface);border:1px solid #e4dcc9;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.event-row-info{text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;align-items:baseline;gap:10px;margin:0;padding:0;display:flex}.event-delete-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:4px;display:flex}.event-delete-btn:hover{color:#9b2c2c}.event-row-exercise{background:var(--themeExercise);border-color:#0000}.event-row-family{background:var(--themeFamily);border-color:#0000}.event-row-social{background:var(--themeSocial);border-color:#0000}.event-row-health{background:var(--themeHealth);border-color:#0000}.event-row-uncategorised{background:var(--peach);border-color:#0000}.category-picker{gap:10px;margin-top:12px;display:flex}.category-swatch{width:44px;height:44px;color:var(--ink);cursor:pointer;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;display:flex}.category-swatch svg{width:18px;height:18px}.category-swatch.selected{border-color:var(--ink)}.event-time{color:var(--primary);white-space:nowrap;font-size:13px;font-weight:600}.event-title{color:var(--ink);font-size:15px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px;display:grid}.calendar-weekday{text-align:center;color:var(--muted);font-size:11px;font-weight:600}.day-cell{aspect-ratio:.55;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;min-width:0;padding-top:6px;display:flex;position:relative}.day-cell.empty{visibility:hidden;cursor:default}.day-number{width:32px;height:32px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex;position:relative}.day-number.phase-menstrual{background:var(--phaseMenstrual);color:#fff}.day-number.phase-follicular,.day-number.phase-ovulation{color:var(--ink);background:0 0}.day-number.phase-luteal{background:var(--phaseLutealFill20);color:var(--ink)}.day-number-text{z-index:2;position:relative}.phase-ring{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.phase-ring-follicular{stroke:var(--phaseFollicular);stroke-width:1.8px;stroke-dasharray:.1 9.5}.phase-ring-ovulation{stroke:var(--phaseOvulation);stroke-width:2px;stroke-dasharray:.1 8.5}.phase-ring-luteal{stroke:var(--phaseLuteal)}.day-number.today.phase-follicular,.day-number.today.phase-ovulation,.day-number.today.phase-luteal{color:var(--ink);background:0 0}.day-number.today.phase-follicular:before,.day-number.today.phase-ovulation:before,.day-number.today.phase-luteal:before{content:"";z-index:0;border-radius:50%;position:absolute;inset:5px}.day-number.today.phase-follicular:before{background:var(--phaseFollicularShade)}.day-number.today.phase-ovulation:before{background:var(--phaseOvulationShade)}.day-number.today.phase-luteal:before{background:var(--phaseLutealShade)}.day-number.phase-plain{background:#f4f0e7}.day-number.period-marked{background:var(--phaseMenstrual);color:#fff}.day-number.period-open{border:1.5px solid var(--muted);color:var(--ink);background:#fff}.event-lines{flex-direction:column;align-items:stretch;gap:3px;width:100%;display:flex}.event-line{height:9px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;text-align:left;border-radius:3px;min-width:0;max-width:100%;padding:0 4px;font-size:7px;font-weight:700;line-height:9px;overflow:hidden}.event-line-exercise{background:var(--themeExercise)}.event-line-family{background:var(--themeFamily)}.event-line-social{background:var(--themeSocial)}.event-line-health{background:var(--themeHealth)}.event-line-uncategorised{background:var(--peach)}.legend{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:14px;font-size:12px;display:flex}.legend-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.theme-icons{justify-content:center;gap:18px;margin-top:16px;display:flex}.theme-icon{width:68px;height:68px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.theme-icon svg{width:26px;height:26px}.theme-exercise{background:var(--themeExercise)}.theme-family{background:var(--themeFamily)}.theme-social{background:var(--themeSocial)}.theme-health{background:var(--themeHealth)}.theme-tooltip{background:var(--surface);width:250px;color:var(--ink);text-align:left;opacity:0;visibility:hidden;pointer-events:none;z-index:5;border:none;border-radius:18px;padding:16px 18px;font-size:15px;line-height:1.5;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)translateY(6px)scale(.9);box-shadow:0 10px 28px #14211b38}.theme-tooltip strong{text-transform:uppercase;letter-spacing:.04em;color:#fff;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.theme-tooltip p{margin:10px 0 0}.theme-tooltip:after{content:"";border:8px solid #0000;border-top-color:var(--surface);position:absolute;top:100%;left:50%;transform:translate(-50%)}.theme-exercise .theme-tooltip strong{background:var(--themeExerciseBold)}.theme-family .theme-tooltip strong{background:var(--themeFamilyBold)}.theme-social .theme-tooltip strong{background:var(--themeSocialBold)}.theme-health .theme-tooltip strong{background:var(--themeHealthBold)}.theme-icon:hover .theme-tooltip,.theme-icon:focus-visible .theme-tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)scale(1)}.suggestion-card{background:var(--surface);border:1px solid #e4dcc9;border-radius:12px;margin-top:20px;padding:16px}.suggestion-theme{background:var(--accent);color:#fff;border-radius:999px;margin-bottom:8px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.trial-banner{text-align:center;margin-top:16px}
