:root{--bg:#fff;--card:#fff;--text:#1f1d22;--text-2:#4a4650;--muted:#8f8a96;--line:#efedf1;--chip:#f2f1f4;--chip-on:#5b5ce2;--accent:#e2637e;--regla:#e57b90;--regla-soft:#fde7ec;--regla-strong:#c94966;--prevista:#fdeef1;--prevista-text:#d55f78;--fertil:#d6f0fb;--fertil-text:#1f78a0;--ovulacio:#38b2e0;--spm:#b58ad6;--today:#5d5b63;--today-text:#fff;--warn:#9a5b00;--warn-soft:#fff4dc;--ok:#2f7d5b;--danger:#c0304d;--shadow:0 2px 14px #2814320f;--tabs-h:62px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#141215;--card:#1e1b20;--text:#f3eff5;--text-2:#cfc9d4;--muted:#9a93a0;--line:#2c282f;--chip:#2a262d;--chip-on:#6d6ef0;--accent:#ec7891;--regla:#cf6479;--regla-soft:#3d2229;--regla-strong:#ff9fb2;--prevista:#33202a;--prevista-text:#f08ea2;--fertil:#173848;--fertil-text:#8fd3f2;--ovulacio:#3aa9d6;--spm:#a77fd0;--today:#ece8ef;--today-text:#141215;--warn:#ffc56b;--warn-soft:#3d2e14;--ok:#8fd6b3;--danger:#ff8095;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font:16px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0;line-height:1.2}h1{letter-spacing:-.02em;font-size:1.75rem}h2{font-size:1.2rem}h3{align-items:center;gap:6px;margin-bottom:12px;font-size:1.05rem;font-weight:600;display:flex}p{margin:0 0 10px}a{color:var(--accent)}button{-webkit-tap-highlight-color:transparent}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 9%, transparent);border-radius:14px;padding:10px 12px}.ok{color:var(--ok)}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 20px) 16px calc(env(safe-area-inset-bottom) + var(--tabs-h) + 30px);flex-direction:column;gap:16px;margin:0 auto;display:flex}.greeting{padding:4px 4px 2px}.greeting p{margin:0 0 2px}.greeting p:first-letter{text-transform:uppercase}.card{background:var(--card);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:22px;padding:18px}.btn{background:var(--chip);color:var(--text);font:inherit;cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:600;text-decoration:none;transition:transform .1s,opacity .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:#fff}.btn.danger{color:var(--danger)}.btn.small{border-radius:999px;padding:6px 12px;font-size:.85rem}.btn.big{border-radius:18px;width:100%;padding:16px 18px;font-size:1.02rem}.btn.link{color:var(--accent);background:0 0;align-self:center}.icon-btn{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:12px;padding:8px;display:inline-flex}.row{gap:8px;display:flex}.wrap{flex-wrap:wrap}.chips{flex-wrap:wrap;gap:8px;margin:0;display:flex}.chip{background:var(--chip);color:var(--text-2);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:5px;padding:8px 14px;font-size:.92rem;font-weight:500;line-height:1.2;transition:background .15s,color .15s;display:inline-flex}span.chip{cursor:default;padding:6px 12px;font-size:.88rem}.chip.on{background:var(--chip-on);color:#fff}.chip.period{background:var(--regla);color:#fff;font-weight:600}.chip.danger{color:var(--danger)}.chip:disabled{opacity:.5}.chip.removable{padding-right:4px}.chip.removable button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;padding:3px;display:inline-flex}.chip.removable button:hover{color:var(--danger)}.login{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;max-width:420px;min-height:100dvh;margin:0 auto;padding:24px 16px;display:flex}.login-logo{width:84px;height:84px;margin-bottom:6px}.login h1{font-size:2rem}.login .btn.big{margin-top:12px}.dev-login{flex-direction:column;gap:8px;width:100%;margin-top:18px;display:flex}.calendar{margin-top:calc(-1 * (env(safe-area-inset-top) + 20px));overflow-anchor:none;padding-bottom:84px}.older{margin:16px auto 0;font-size:.92rem;display:flex}.cal-head{z-index:5;padding:calc(env(safe-area-inset-top) + 14px) 16px 0;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);margin:0 -16px;position:sticky;top:0}.cal-status{align-items:center;gap:10px;min-height:28px;margin:0 4px 12px;font-size:1.05rem;display:flex}.cycle-day{background:var(--today);color:var(--today-text);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:600}.today-chip{right:16px;top:calc(env(safe-area-inset-top) + 14px);background:var(--chip);color:var(--text);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:5px 12px;font-size:.85rem;font-weight:600;position:absolute}.week{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.weekdays{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-bottom:8px;font-size:.72rem;font-weight:600}.month{scroll-margin-top:calc(env(safe-area-inset-top) + 92px)}.month h2{color:var(--muted);padding:22px 6px 8px;font-size:1.05rem;font-weight:600}.month h2:first-letter{text-transform:uppercase}.month h2 small{font-weight:500}.month-grid{row-gap:4px}.day{height:46px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.day .num{z-index:1;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-weight:500;display:flex;position:relative}.day[class*=band-]:before{content:"";background:var(--band);position:absolute;inset:5px 0}.day.first:before{border-radius:18px 0 0 18px;left:5px}.day.last:before{border-radius:0 18px 18px 0;right:5px}.day.first.last:before{border-radius:18px}.day.band-regla{--band:var(--regla);color:#fff}.day.band-regla .num{font-weight:700}.day.band-prevista{--band:var(--prevista);color:var(--prevista-text)}.day.band-prevista .num{font-weight:600}.day.band-fertil{--band:var(--fertil);color:var(--fertil-text)}.day.ovulacio .num{background:var(--ovulacio);color:#fff;font-weight:700}.day.today .num{background:var(--today);color:var(--today-text);font-weight:700}.day.future:not([class*=band-]){color:var(--text-2)}.day:focus-visible{outline:2px solid var(--chip-on);outline-offset:-2px;border-radius:12px}.logged{z-index:1;background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:calc(50% - 2.5px)}.band-regla .logged{background:#fff}.logged.inline{display:inline-block;position:static}.legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin:0;padding:20px 4px 0;font-size:.85rem;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.dot.regla{background:var(--regla)}.dot.prevista{background:var(--prevista);border:1.5px solid var(--prevista-text)}.dot.fertil{background:var(--fertil);border:1.5px solid var(--ovulacio)}.dot.ovulacio{background:var(--ovulacio)}.quick{z-index:9;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + var(--tabs-h));background:linear-gradient(to bottom, transparent, var(--bg) 40%);padding:18px 16px 10px;position:fixed}.quick>*{max-width:528px;margin-left:auto;margin-right:auto}.quick .error{margin-bottom:8px}.quick-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quick .btn.big{white-space:nowrap;padding:15px 12px;box-shadow:0 6px 18px #2814321f}.btn.period{background:var(--regla);color:#fff}.btn.symptoms{background:var(--chip-on);color:#fff}.likely{flex-direction:column;gap:10px;margin:4px 0 0;padding:0;list-style:none;display:flex}.likely li{grid-template-columns:minmax(0,1fr) 90px 54px;align-items:center;gap:10px;display:grid}.likely small{color:var(--muted);text-align:right}.meter{background:var(--chip);border-radius:999px;height:8px;overflow:hidden}.meter i{border-radius:inherit;background:var(--chip-on);height:100%;display:block}.kpis{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.kpis div{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.kpis strong{letter-spacing:-.02em;font-size:1.45rem}.kpis small{color:var(--muted);font-size:.75rem;line-height:1.25}.bars{align-items:flex-end;gap:8px;height:128px;margin-bottom:12px;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex}.bar i{background:var(--chip-on);border-radius:8px;width:100%;max-width:28px;display:block}.bar small{color:var(--text-2);font-size:.75rem;font-weight:600}.bar span{color:var(--muted);font-size:.7rem}.bar.odd i{background:var(--line)}.trend{align-items:center;gap:6px;font-weight:500;display:flex}.bars{position:relative}.bars.regla i{background:var(--regla)}.bars .avg{border-top:1.5px dashed var(--muted);opacity:.6;pointer-events:none;position:absolute;left:0;right:0}.ranked li{grid-template-columns:minmax(0,1fr) 80px 56px}.ranked li>span:first-child{flex-direction:column;display:flex}.ranked .when{color:var(--muted);text-align:left;font-size:.75rem}.facts{grid-template-columns:auto 1fr;gap:6px 12px;margin:0 0 14px;font-size:.92rem;display:grid}.facts dt{color:var(--muted)}.facts dd{word-break:break-word;margin:0}.add-row{gap:8px;margin:14px 0 10px;display:flex}.add-row input{min-width:0;font:inherit;color:var(--text);background:var(--chip);border:0;border-radius:14px;flex:1;padding:11px 14px}.add-row input:focus{outline:2px solid var(--chip-on)}.event-styles{flex-direction:column;margin:4px 0 14px;padding:0;list-style:none;display:flex}.event-styles li{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:14px 0;display:flex}.event-styles li:last-child{border-bottom:0}.event-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.event-head .switch{align-items:center;font-weight:600}.event-styles li.off .switch span{color:var(--muted)}.event-preview{color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:60%;padding:3px 8px;font-size:.82rem;font-weight:500;overflow:hidden}.event-styles input{font:inherit;color:var(--text);background:var(--chip);border:0;border-radius:12px;padding:10px 12px}.event-styles input:focus{outline:2px solid var(--chip-on)}.swatches{grid-template-columns:repeat(11,minmax(0,26px));justify-content:space-between;padding:4px 3px;display:grid}.swatches button{aspect-ratio:1;background:var(--c);cursor:pointer;border:0;border-radius:50%;width:100%;padding:0}.swatches button.on{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--c)}.swatches button:focus-visible{outline:2px solid var(--chip-on);outline-offset:3px}.sheet-backdrop{z-index:20;background:#140a1966;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border-radius:26px 26px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:92dvh;padding:10px 18px 0;animation:.25s cubic-bezier(.2,.8,.2,1) rise;display:flex;overflow-y:auto}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:.6;transform:translateY(40px)}}.sheet header{border-bottom:1px solid var(--line);grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:4px;padding-bottom:10px;display:grid}.sheet header h2{text-align:center;font-size:1.1rem;font-weight:600}.sheet header h2:first-letter{text-transform:uppercase}.sheet>.error,.sheet>.muted{margin-top:12px}.sheet-block{grid-template-columns:44px minmax(0,1fr);gap:14px;padding:16px 0 6px;display:grid}.sheet-block h3{margin:10px 0;font-size:1.08rem;font-weight:500}.sheet-block p{margin-bottom:8px}.block-icon{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;display:flex}.block-icon.regla{background:var(--regla-soft)}.block-icon.flux{background:var(--fertil)}.block-icon.simptomes{background:color-mix(in srgb, var(--spm) 18%, transparent)}.block-icon.anim{background:var(--warn-soft)}.block-icon.nota{background:var(--chip)}.sheet textarea{border:0;border-bottom:1px solid var(--line);resize:vertical;background:0 0;border-radius:0;margin:0;padding:4px 0 8px}.sheet textarea:focus{border-bottom-color:var(--chip-on);outline:0}.sheet-save{background:var(--card);padding:12px 0 calc(env(safe-area-inset-bottom) + 14px);position:sticky;bottom:0}textarea{width:100%;font:inherit;color:var(--text);background:var(--chip);border:0;border-radius:14px;margin:4px 0 12px;padding:11px 14px}label{flex-direction:column;font-size:.92rem;font-weight:600;display:flex}.legal{padding-bottom:40px}.legal h2{margin-top:10px}.legal ul{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.notice{background:var(--chip);border-radius:14px;padding:10px 12px}.device{align-items:center;margin-bottom:6px}.device .ok{align-items:center;gap:6px;margin-right:auto;font-weight:600;display:inline-flex}.prefs{margin:10px 0 0;padding:0;list-style:none}.prefs li{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 0;display:flex}.switch{cursor:pointer;flex-direction:row;align-items:flex-start;gap:12px;font-size:1rem;font-weight:400;display:flex}.switch span{flex-direction:column;display:flex}.switch input{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:44px;height:26px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked{background:var(--chip-on)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:2px solid var(--chip-on);outline-offset:2px}select{font:inherit;color:var(--text);background:var(--chip);border:0;border-radius:12px;padding:9px 12px}.prefs select{align-self:flex-start;margin-left:56px}.hour{border-top:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;font-size:1rem;font-weight:400}.tabs{z-index:10;background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{max-width:140px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:.72rem;font-weight:600;text-decoration:none;display:flex}.tabs a.active{color:var(--accent)}
