:root{--bg:#fbf6f4;--card:#fff;--text:#2b2224;--muted:#8a7b7e;--line:#efe4e1;--accent:#d9465f;--accent-soft:#fbe3e7;--regla:#d9465f;--prevista:#f2a7b5;--fertil:#cfeadc;--fertil-text:#2f7d5b;--ovulacio:#3d9b72;--spm:#b58ad6;--warn:#9a5b00;--warn-soft:#fff1d6;--ok:#2f7d5b;--danger:#b4233c;--shadow:0 1px 2px #3c1e230f, 0 4px 16px #3c1e230d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1c1718;--card:#262021;--text:#f3eaeb;--muted:#a8979a;--line:#3a3132;--accent:#ef6a80;--accent-soft:#4a2730;--regla:#e45a72;--prevista:#8c4553;--fertil:#23443a;--fertil-text:#8fd6b3;--ovulacio:#4fb586;--spm:#a77fd0;--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.7rem}h2{font-size:1.2rem}h3{align-items:center;gap:6px;margin-bottom:10px;font-size:.95rem;display:flex}p{margin:0 0 10px}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border-radius:12px;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) + 96px);flex-direction:column;gap:14px;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:20px;padding:16px}.btn{border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger)}.btn.big{width:100%;padding:15px 18px;font-size:1.02rem}.btn.link{color:var(--accent);background:0 0;border: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}.actions{flex-direction:column;gap:10px;display:flex}.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}.hero{align-items:center;gap:18px;display:flex}.hero.empty{display:block}.ring{border:8px solid var(--accent-soft);background:var(--card);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:112px;height:112px;display:flex}.phase-regla .ring{border-color:var(--regla)}.phase-fertil .ring{border-color:var(--fertil)}.phase-ovulacio .ring{border-color:var(--ovulacio)}.ring-day{letter-spacing:-.03em;font-size:2.3rem;font-weight:700;line-height:1}.ring-label{color:var(--muted);font-size:.75rem}.hero-text p{margin:8px 0 0}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-block}.pill.fertil,.pill.ovulacio{background:var(--fertil);color:var(--fertil-text)}.pill.folicular,.pill.lutea{background:var(--line);color:var(--muted)}.pill.spm{background:color-mix(in srgb, var(--spm) 22%, transparent);color:var(--spm)}.phase-spm .ring{border-color:color-mix(in srgb, var(--spm) 55%, transparent)}.upcoming{flex-direction:column;gap:10px;margin:0 0 10px;padding:0;list-style:none;display:flex}.upcoming li{align-items:center;gap:10px;display:flex}.upcoming small{color:var(--muted);margin-left:auto}.dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.dot.regla{background:var(--regla)}.dot.prevista{border:2px dashed var(--regla);background:0 0}.dot.fertil{background:var(--fertil);border:1px solid var(--fertil-text)}.dot.ovulacio{background:var(--ovulacio)}.dot.spm{background:color-mix(in srgb, var(--spm) 35%, transparent);border:1px solid var(--spm)}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--line);border-radius:999px;padding:3px 10px;font-size:.85rem}.tag.flow{background:var(--accent-soft);color:var(--accent)}.notes{white-space:pre-wrap}.month-head{justify-content:space-between;align-items:center;display:flex}.month-head h1{font-size:1.35rem}.month-head h1:first-letter{text-transform:uppercase}.grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.weekdays{color:var(--muted);margin-bottom:6px;font-size:.75rem}.day{aspect-ratio:1;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-weight:500;display:flex;position:relative}.day.regla{background:var(--regla);color:#fff;font-weight:700}.day.prevista{border:2px dashed var(--regla);color:var(--regla)}.day.fertil{background:var(--fertil);color:var(--fertil-text)}.day.ovulacio{background:var(--ovulacio);color:#fff;font-weight:700}.day.today{outline:2px solid var(--text);outline-offset:2px}.day.future:not(.prevista):not(.fertil):not(.ovulacio){color:var(--muted)}.logged{opacity:.8;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;bottom:3px}.logged.inline{background:var(--text);display:inline-block;position:static}.legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin:0;padding:0 4px;font-size:.85rem;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{flex-direction:column;gap:2px;padding:14px 12px;display:flex}.stat span{letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.stat small{color:var(--muted);font-size:.75rem;line-height:1.25}.periods{margin:0;padding:0;list-style:none}.periods li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.periods li:last-child{border-bottom:0}.periods li>div{flex-direction:column;display:flex}.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}.sheet-backdrop{z-index:20;background:#140a0c73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;max-height:88dvh;padding:18px 16px calc(env(safe-area-inset-bottom) + 18px);border-radius:24px 24px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.sheet header{justify-content:space-between;align-items:center;display:flex}.sheet header h2:first-letter{text-transform:uppercase}.sheet-block{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:10px;display:flex}.sheet-block h3{margin:10px 0 6px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:7px 13px;font-size:.9rem}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}textarea,input[type=date]{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;margin:4px 0 10px;padding:10px 12px}label{flex-direction:column;font-size:.92rem;font-weight:600;display:flex}.sheet .btn.big{margin-top:6px}.legal{padding-bottom:40px}.legal h2{margin-top:10px}.legal ul{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.alert{border:1px solid var(--line);background:var(--card);border-radius:16px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.alert p{margin:0}.alert svg{color:var(--muted);flex:none;margin-top:1px}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.alert.warn svg{color:var(--warn)}.notice{background:var(--bg);border-radius:12px;padding:10px 12px}.tiles{gap:8px;display:grid}.tiles.four{grid-template-columns:repeat(4,1fr)}.tiles.three{grid-template-columns:repeat(3,1fr)}.tile{border:1px solid var(--line);background:var(--bg);min-height:52px;color:var(--text);font:inherit;text-align:center;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 6px;font-size:.86rem;font-weight:500;line-height:1.2;display:flex}.tile.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tile.add{color:var(--accent);border-style:dashed;flex-direction:row}.tile .drops{color:var(--regla);gap:1px;display:flex}.tile.on .drops{color:#fff}.tile .emoji{font-size:1.25rem;line-height:1}.tile-form{grid-column:1/-1;gap:6px;display:flex}.tile-form input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--accent);border-radius:12px;flex:1;padding:10px 12px}.tile-form .btn{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(--accent)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);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}.tag.removable{align-items:center;gap:2px;padding-right:2px;display:inline-flex}.tag.removable .icon-btn{padding:4px}.tabs{z-index:10;background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(12px);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)}
