.cycle-space{--cycle-tint:color-mix(in srgb,var(--accent) 9%,var(--surface));--cycle-line:color-mix(in srgb,var(--accent) 28%,var(--border));max-width:1200px;margin:auto}.cycle-space p,.cycle-dialog p{line-height:1.7}.cycle-space small,.cycle-dialog small{font-size:12px;line-height:1.6;color:var(--muted)}.cycle-space h2{font-size:28px;line-height:1.2}.cycle-space h3{font-size:20px;line-height:1.4;margin:8px 0 12px}.cycle-space button,.cycle-dialog button{min-height:44px}.cycle-card{padding:26px;background:var(--surface);border:1px solid var(--border);border-radius:23px;margin-bottom:20px;min-width:0}.cycle-card p{color:var(--muted);font-size:14px}.cycle-card button{font-size:13px}.cycle-shared{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.cycle-shared b{display:block;font-size:15px;margin-bottom:5px}.cycle-shared span{font-size:12px;color:var(--muted)}.cycle-tabs{display:flex;gap:6px;background:var(--surface-2);padding:6px;border:1px solid var(--border);border-radius:15px;margin-bottom:24px;overflow-x:auto}.cycle-tabs button{flex:1;min-width:max-content;border:0;background:transparent;white-space:nowrap;font-size:13px;color:var(--muted);padding:12px 17px}.cycle-tabs button[aria-current=page]{background:var(--surface);color:var(--accent);box-shadow:0 2px 8px #00000008;font-weight:700}.cycle-hero{display:grid;grid-template-columns:1fr 250px;gap:20px;background:linear-gradient(125deg,var(--surface),var(--cycle-tint));border-color:var(--cycle-line);padding:34px}.cycle-hero h2{font-size:42px;letter-spacing:-1.5px;margin:14px 0}.cycle-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.cycle-orbit{text-align:center;align-self:center;display:grid;justify-items:center}.cycle-flower{width:180px;height:180px;color:var(--accent);animation:cycle-breathe 7s ease-in-out infinite}.cycle-orbit strong{font-size:28px;margin-top:5px}.cycle-orbit span{font-size:12px;color:var(--muted);margin-top:8px}.cycle-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.cycle-grid .cycle-card{margin-bottom:0}.cycle-grid{margin-bottom:20px}.cycle-prediction{border-top:4px solid var(--accent)}.cycle-prediction h3{font-size:24px;margin-top:17px}.cycle-author{display:block;margin:12px 0}.cycle-lock{text-align:center;max-width:540px;margin:30px auto;padding:35px}.cycle-lock .cycle-flower{display:block;margin:auto;width:150px;height:150px}.cycle-lock h2{font-size:32px}.cycle-lock form{margin:26px auto;text-align:left;max-width:340px}.cycle-lock .primary{width:100%;margin-top:12px}.cycle-footnote{font-size:12px;line-height:1.8;color:var(--muted);padding:0 6px}.cycle-space a{color:var(--accent);text-underline-offset:3px}.cycle-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.cycle-calendar-head h2{font-size:24px;text-transform:capitalize}.cycle-calendar-head button{width:45px;font-size:26px}.cycle-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:22px 0}.cycle-calendar [hidden]{display:none}.cycle-calendar button{position:relative;aspect-ratio:1.35;min-width:0;padding:7px;font-size:18px;border-radius:15px;background:var(--surface-2);border:1px solid var(--border)}.cycle-weekday{text-align:center;font-size:12px;color:var(--muted);padding:10px 0}.cycle-calendar button.recorded{color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:var(--cycle-line);font-weight:800}.cycle-calendar button.estimated{border:2px dashed var(--accent);background:var(--cycle-tint);opacity:1;color:var(--text)}.cycle-calendar .is-today span{border-bottom:3px solid var(--accent);padding:0 3px 3px}.cycle-calendar button:disabled{cursor:default;opacity:.6}.diary-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--accent)}.cycle-calendar .diary-dot{position:absolute;bottom:8px;left:calc(50% - 3px)}.cycle-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted)}.cycle-legend span{display:flex;align-items:center;gap:6px}.cycle-legend .recorded,.cycle-legend .estimated{display:block;width:14px;height:14px;border-radius:4px;border:1px solid var(--accent);background:var(--cycle-tint)}.cycle-legend .estimated{border:2px dashed var(--accent);background:transparent}.cycle-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.cycle-stats .cycle-card{margin-bottom:0}.cycle-stats article{padding:20px;background:var(--cycle-tint,var(--soft));border-radius:17px;min-width:0}.cycle-stats strong{display:block;font-size:30px;color:var(--accent);margin-bottom:8px}.cycle-stats span{font-size:12px;color:var(--muted);line-height:1.5;display:block}.cycle-bars>div{display:grid;grid-template-columns:90px 1fr 55px;gap:10px;align-items:center;font-size:12px;margin:18px 0}.cycle-bars i{display:block;width:var(--bar);min-width:5px;height:13px;background:var(--accent);border-radius:8px;opacity:.75}.cycle-bars b{font-size:12px}.cycle-history{max-height:430px;overflow:auto}.cycle-history article{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--border);padding:16px 0}.cycle-history b{font-size:14px}.cycle-history p{margin:6px 0}.cycle-history button{flex-shrink:0}.cycle-symptom-summary{display:flex;gap:9px;flex-wrap:wrap}.cycle-symptom-summary span{border:1px solid var(--cycle-line);padding:10px;border-radius:11px;font-size:12px;background:var(--cycle-tint)}.cycle-symptom-summary b{margin-left:7px;color:var(--accent)}.cycle-dialog{width:min(740px,calc(100vw - 24px));max-height:90dvh;padding:28px;border-radius:24px;overflow:auto}.cycle-dialog .dialog-heading{align-items:center}.cycle-dialog h2{font-size:24px;line-height:1.3}.cycle-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.cycle-space label,.cycle-dialog label{font-size:13px;line-height:1.5;min-width:0;margin-bottom:16px}.cycle-space input,.cycle-space select,.cycle-space textarea,.cycle-dialog input,.cycle-dialog select,.cycle-dialog textarea{min-height:46px;min-width:0;font-size:16px}.cycle-dialog textarea,.cycle-space textarea{resize:vertical}.cycle-dialog fieldset{border:1px solid var(--border);border-radius:14px;padding:16px;margin:18px 0}.cycle-dialog legend{font-size:13px;padding:0 7px}.cycle-symptoms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cycle-check{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;line-height:1.5;margin:12px 0!important}.cycle-check input[type=checkbox]{appearance:auto!important;min-height:19px!important;min-width:19px!important;width:19px!important;height:19px!important;flex-shrink:0;accent-color:var(--accent);margin:0}.cycle-symptoms .cycle-check{padding:10px;border:1px solid var(--border);border-radius:12px;margin:0!important;font-size:12px;cursor:pointer}.cycle-symptoms .cycle-check:has(input:checked){background:var(--soft);border-color:var(--accent);color:var(--accent)}.cycle-details{padding:16px;border:1px solid var(--border);border-radius:14px}.cycle-space summary,.cycle-dialog summary{cursor:pointer;line-height:1.6;font-size:14px;padding:8px 0;font-weight:600}.cycle-space details{margin-top:18px}.cycle-error{color:var(--accent);font-weight:600;font-size:14px;line-height:1.5}.cycle-error:empty{display:none}.cycle-danger{border-top:1px solid var(--border);padding-top:15px}.cycle-maya li{font-size:14px;line-height:1.7;margin:12px 0;color:var(--muted)}.cycle-maya ol{padding-left:22px}.cycle-images{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:420px;overflow:auto;margin:16px 0}.cycle-images figure{margin:0;min-width:0}.cycle-images img{display:block;width:100%;height:auto}.cycle-images figcaption{font-size:11px;overflow-wrap:anywhere}.cycle-import-preview{max-height:260px;overflow:auto}.cycle-space button:focus-visible,.cycle-dialog button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.cycle-space input[type=file]{max-width:100%;padding:12px 0;font-size:13px}.cycle-space code{overflow-wrap:anywhere}.cycle-space .muted{font-size:12px}.cycle-space :disabled{cursor:default}.cycle-dialog input[type=file]{max-width:100%;font-size:13px}
@keyframes cycle-breathe{50%{transform:rotate(4deg) scale(1.03)}}
@media(max-width:800px){.cycle-hero{grid-template-columns:1fr 160px;padding:24px}.cycle-hero h2{font-size:34px}.cycle-orbit .cycle-flower{width:140px;height:140px}.cycle-grid{grid-template-columns:1fr}.cycle-card{padding:22px}.cycle-calendar button{aspect-ratio:1}.cycle-symptoms{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.cycle-hero{grid-template-columns:1fr;position:relative;padding:24px 20px}.cycle-hero h2{font-size:34px;max-width:220px}.cycle-orbit{display:flex;align-items:center;flex-wrap:wrap;gap:9px;justify-content:flex-start;text-align:left;border-top:1px solid var(--cycle-line);padding-top:16px}.cycle-orbit .cycle-flower{width:72px;height:72px}.cycle-orbit strong{font-size:24px}.cycle-orbit span{width:100%;margin:0}.cycle-card{padding:18px;border-radius:19px}.cycle-shared{align-items:flex-start}.cycle-shared span{display:block;max-width:190px;font-size:11px;line-height:1.5}.cycle-shared button{font-size:11px;padding:8px;min-width:80px}.cycle-tabs{margin-inline:-3px}.cycle-tabs button{padding:10px 14px;font-size:12px}.cycle-actions{gap:8px}.cycle-actions button{flex:1;min-width:110px}.cycle-lock{padding:22px;margin:10px 0}.cycle-lock h2{font-size:28px}.cycle-calendar{gap:4px}.cycle-calendar button{font-size:14px;border-radius:9px;min-height:38px;aspect-ratio:.85;padding:2px}.cycle-calendar .diary-dot{bottom:4px}.cycle-calendar-head h2{font-size:19px}.cycle-legend{gap:9px;font-size:10px}.cycle-stats{gap:7px}.cycle-stats article{padding:12px 9px}.cycle-stats strong{font-size:22px}.cycle-stats span{font-size:10px}.cycle-prediction h3{font-size:22px}.cycle-form-grid{gap:12px;grid-template-columns:1fr}.cycle-dialog{padding:20px 16px}.cycle-dialog h2{font-size:21px}.cycle-history article{gap:8px}.cycle-history b{font-size:12px}.cycle-bars>div{grid-template-columns:80px 1fr 50px}.cycle-images{grid-template-columns:1fr}.cycle-symptoms .cycle-check{font-size:11px;padding:8px}.cycle-footnote{font-size:11px}}
@media(prefers-reduced-motion:reduce){.cycle-flower{animation:none}}
.cycle-intimacy-hero{background:linear-gradient(125deg,var(--surface),var(--cycle-tint));position:relative}.cycle-intimacy-symbol{float:right;display:grid;place-items:center;width:70px;height:70px;background:var(--soft);border:1px solid var(--cycle-line);border-radius:24px;color:var(--accent)}.cycle-intimacy-symbol svg{width:38px;height:38px}.cycle-protection{display:inline-block;border:1px solid var(--cycle-line);padding:5px 9px;border-radius:8px;background:var(--cycle-tint);font-size:12px}.cycle-protection.without{border-style:dashed}.cycle-protection-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cycle-protection-options label{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:14px;padding:14px 12px;margin:0;cursor:pointer;font-size:12px}.cycle-protection-options label:has(input:checked){background:var(--soft);border-color:var(--accent);color:var(--accent)}.cycle-protection-options input[type=radio]{appearance:auto!important;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;accent-color:var(--accent);margin:0;flex-shrink:0}.cycle-dialog [hidden]{display:none!important}.cycle-impact{border-left:3px solid var(--accent);padding:12px 15px;background:var(--soft);border-radius:0 12px 12px 0;font-size:13px;line-height:1.7;margin:18px 0}.cycle-legacy{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);font-size:12px}.cycle-lock form>[data-c=password-visibility]{display:block;margin:12px auto 0;background:transparent;border:0;color:var(--accent)}.cycle-lock>[data-c=reload]{margin-bottom:14px}.cycle-lock>small{display:block}.profile-cycle-access{display:flex;justify-content:space-between;align-items:center;gap:18px;background:var(--soft);border:1px solid var(--border);border-radius:18px;padding:20px;margin:0 0 20px}.profile-cycle-access>div{display:flex;align-items:center;gap:13px}.profile-cycle-access b,.profile-cycle-access small{display:block}.profile-cycle-access b{font-size:16px}.profile-cycle-access small{font-size:12px;color:var(--muted);margin-top:6px}.profile-cycle-access .ui-icon{color:var(--accent);width:28px;height:28px;flex-shrink:0}.cycle-calendar-link{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border:1px solid var(--border);border-radius:15px;background:var(--soft);margin:15px 0 22px;font-size:13px}.cycle-calendar-link b,.cycle-calendar-link small{display:block}.cycle-calendar-link small{color:var(--muted);font-size:11px;line-height:1.7;margin-top:5px}.cycle-calendar-link button{min-height:40px;flex-shrink:0}.calendar-cycle-event{width:100%;display:flex;align-items:center;gap:5px;font-size:11px;padding:7px;margin-top:5px;border:1px solid var(--accent);background:var(--soft);color:var(--accent);border-radius:8px;text-align:left;min-height:34px}.calendar-cycle-event .ui-icon{width:15px;height:15px;flex-shrink:0}.calendar-cycle-event span{overflow-wrap:anywhere;min-width:0}.calendar-cycle-event.estimated{border-style:dashed}.calendar-cycle-event.intimate{background:var(--surface);border-color:var(--border);color:var(--muted)}
@media(max-width:800px){.mobile-nav.has-cycle{grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav.has-cycle button{font-size:10px}.profile-cycle-access{padding:16px;flex-wrap:wrap}.profile-cycle-access .primary{min-height:44px}.calendar-cycle-event{padding:5px 2px;justify-content:center;flex-direction:column;font-size:9px;line-height:1.3}.cycle-calendar-link{align-items:flex-start;gap:8px;padding:13px}.cycle-calendar-link button{font-size:11px;padding:7px}.cycle-protection-options{grid-template-columns:1fr}.cycle-protection-options label{padding:14px}.topbar-actions .primary[data-action=cycle-diary] span:after{content:'Registrar'}.cycle-intimacy-symbol{width:55px;height:55px;border-radius:18px}.cycle-intimacy-symbol svg{width:28px;height:28px}}
.cycle-analysis-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.cycle-evidence{padding:10px 13px;border-radius:30px;background:var(--cycle-tint);border:1px solid var(--cycle-line);font-size:11px;line-height:1.5;color:var(--accent);max-width:180px}.cycle-analysis .cycle-stats strong small{font-size:13px}.cycle-analysis-note{border-left:3px solid var(--accent);padding-left:14px}.cycle-model-list article{display:grid;grid-template-columns:1fr 210px;gap:18px;padding:18px 0;border-bottom:1px solid var(--border)}.cycle-model-list b{font-size:14px}.cycle-model-list p{font-size:12px;margin:6px 0}.cycle-model-list article>div:last-child{display:grid;gap:6px;align-content:start}.cycle-model-list span{font-size:12px;color:var(--muted)}.cycle-model-list strong{font-size:14px;color:var(--accent)}.cycle-folds{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.cycle-folds>div{display:grid;gap:8px;padding:15px;border-radius:14px;background:var(--surface-2)}.cycle-folds span{font-size:11px;color:var(--muted)}.cycle-folds b{font-size:16px}.cycle-observations{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.cycle-observations article{border:1px solid var(--cycle-line);border-radius:14px;padding:16px}.cycle-observations b{font-size:14px}.cycle-observations p{font-size:12px}.cycle-observations span{display:block;font-size:12px;line-height:1.9}.cycle-temperature{width:100%;height:auto;min-height:120px}.cycle-temperature text{font:12px system-ui;fill:var(--muted)}.cycle-prediction>button{display:block;margin-top:18px}@media(max-width:600px){.cycle-analysis-heading{display:block}.cycle-evidence{display:inline-block;margin:5px 0 15px}.cycle-model-list article{grid-template-columns:1fr;gap:8px}.cycle-model-list article>div:last-child{display:flex;flex-wrap:wrap;gap:8px 14px}.cycle-model-list article small{width:100%}.cycle-folds{grid-template-columns:1fr}.cycle-observations{grid-template-columns:1fr}.cycle-temperature text{font-size:14px}}

.cycle-sex-dot{position:absolute;top:3px;right:4px;color:var(--accent);line-height:0}.cycle-sex-dot .ui-icon{width:12px;height:12px}.cycle-legend .ui-icon{width:13px;height:13px}.cycle-day-encounters{display:grid;gap:10px;margin-top:20px}.cycle-day-encounters button{text-align:left;line-height:1.6;padding:14px}.cycle-symptoms .cycle-check{min-height:44px}
