:root{
    --bg:#0f172a; /* slate-900 */
    --panel:#111827; /* gray-900 */
    --card:#111827;
    --muted:#94a3b8; /* slate-400 */
    --text:#e5e7eb; /* gray-200 */
    --brand:#8b5cf6; /* violet-500 */
    --brand-2:#22d3ee; /* cyan-400 */
    --danger:#ef4444; /* red-500 */
    --ok:#22c55e; /* green-500 */
    --warn:#f59e0b; /* amber-500 */
  }
  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Helvetica Neue",Arial; 
    background: radial-gradient(1200px 800px at 100% -10%, rgba(139,92,246,.18), transparent),
                radial-gradient(1000px 700px at -10% 100%, rgba(34,211,238,.18), transparent),
                var(--bg);
    color:var(--text);
  }
  header{max-width:1100px;margin:24px auto 12px;padding:0 16px}
  .app{max-width:1100px;margin:0 auto;padding:16px;display:grid;gap:16px;grid-template-columns:1.1fr .9fr}
  @media (max-width: 930px){.app{grid-template-columns:1fr}}
  .card{background:rgba(17,24,39,.7);backdrop-filter: blur(6px);border:1px solid rgba(148,163,184,.15);border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
  h1{font-size:clamp(22px,3vw,34px);margin:0 0 6px}
  .subtitle{color:var(--muted);margin:0}
  h2{font-size:18px;margin:4px 0 12px}
  label{display:block;font-size:14px;color:var(--muted);margin-bottom:6px}
  input, select, button, textarea{
    width:100%;padding:12px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.25);background:#0b1220;color:var(--text);
  }
  input[type="date"]{padding-right:8px}
  .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
  .actions{display:flex;gap:10px;align-items:center;margin-top:10px}
  .btn{cursor:pointer;font-weight:600;border:none}
  .primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));}
  .ghost{background:transparent;border:1px dashed rgba(148,163,184,.35)}
  .pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:12px;border:1px solid rgba(148,163,184,.25);color:var(--muted)}
  .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  @media (max-width: 600px){.grid{grid-template-columns:1fr}}
  .metric{display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:14px;background:#0b1220;border:1px solid rgba(148,163,184,.2)}
  .metric strong{font-size:16px}
  .badge{padding:4px 8px;border-radius:999px;font-size:12px;font-weight:600}
  .b-ok{background:rgba(34,197,94,.15);color:#86efac;border:1px solid rgba(34,197,94,.35)}
  .b-warn{background:rgba(245,158,11,.15);color:#fde68a;border:1px solid rgba(245,158,11,.35)}
  .b-danger{background:rgba(239,68,68,.15);color:#fecaca;border:1px solid rgba(239,68,68,.35)}
  .section-title{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px}
  .calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
  .day,.dow{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:12px;border:1px solid rgba(148,163,184,.18)}
  .dow{background:rgba(148,163,184,.1);color:var(--muted);font-weight:600}
  .day{background:#0b1220;color:var(--text)}
  .day.menstruation{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4)}
  .day.fertile{background:rgba(34,211,238,.12);border-color:rgba(34,211,238,.45)}
  .day.ovulation{background:rgba(139,92,246,.18);border-color:rgba(139,92,246,.5);font-weight:700}
  .legend{display:flex;gap:10px;flex-wrap:wrap}
  .legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
  .dot{width:12px;height:12px;border-radius:4px;display:inline-block;border:1px solid rgba(255,255,255,.3)}
  .dot.m{background:rgba(239,68,68,.3)}
  .dot.f{background:rgba(34,211,238,.3)}
  .dot.o{background:rgba(139,92,246,.4)}
  .symptoms{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  .symptoms label{display:flex;align-items:center;gap:8px;background:#0b1220;border:1px solid rgba(148,163,184,.2);padding:10px;border-radius:12px;color:var(--text)}
  .tiny{font-size:12px;color:var(--muted)}
  footer{max-width:1100px;margin:8px auto 24px;padding:0 16px;color:var(--muted);font-size:12px}
  