.chart-container{position:relative;width:100%;height:100%;min-height:620px;border-radius:18px;overflow:hidden;border:1px solid #cbb7ff;box-shadow:0 10px 30px #0000000f}.chart-background{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:.3;filter:saturate(1.05);z-index:0}.chart-svg{position:relative;z-index:1;display:block}.aspect-positive{stroke:#f3a6c8;opacity:.85}.aspect-negative{stroke:#9fd3ff;opacity:.85}.aspect-neutral{stroke:#cbb7ffbf;opacity:.55}.zodiac-label{font-size:10px;fill:#7b6c9d;letter-spacing:.6px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto}.planet-degree{font-size:10px;fill:#6e5c8c;opacity:.95;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto}:root{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.45;color:#2b1b3b;--lav: #c8b6ff;--pink: #ff9ac2;--blue: #a2d2ff;--ink: #2b1b3b;--card: rgba(255, 255, 255, .55);--card-strong: rgba(255, 255, 255, .7);--stroke: rgba(255, 255, 255, .6);--shadow: 0 12px 35px rgba(34, 12, 60, .1);--shadow-strong: 0 20px 45px rgba(120, 80, 200, .22);--blur: blur(14px)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background-image:url(/cosmic-sweetness.png),radial-gradient(1200px 700px at 12% 10%,rgba(255,154,194,.12),transparent 60%),radial-gradient(1100px 700px at 88% 15%,rgba(162,210,255,.12),transparent 60%),radial-gradient(1000px 700px at 45% 92%,rgba(200,182,255,.2),transparent 60%),linear-gradient(180deg,#fff6fba6,#f7fbffb3 55%,#fbf7ffb3);background-repeat:no-repeat;background-size:cover;background-position:center;background-attachment:fixed;background-blend-mode:normal,screen,screen,screen,normal}.page{max-width:1240px;margin:0 auto;padding:26px}.header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}h1{margin:0;font-size:44px;font-family:Playfair Display,Georgia,serif;font-weight:800;letter-spacing:.8px;color:#2b1b3b;text-shadow:0 4px 12px rgba(160,120,255,.35)}.sub{margin:8px 0 0;color:#2b1b3bc7}.card{background:linear-gradient(180deg,#ffdceb38,#ffffff1f);border:1px solid rgba(255,180,205,.3);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.card h2{margin:0 0 10px;font-size:18px;color:var(--ink)}.card h3{margin:16px 0 10px;font-size:16px}.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#2b1b3bdb;margin-bottom:12px}input{padding:11px 12px;border:1px solid rgba(200,182,255,.55);border-radius:12px;font-size:14px;background:#fffc;outline:none}input:focus{border-color:#ff9ac2d9;box-shadow:0 0 0 4px #ff9ac22e}.row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.actions{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}button{padding:12px 18px;border-radius:999px;background:linear-gradient(135deg,#ff9ac2fa,#bfa8fffa);border:none;color:#2b1b3b;font-weight:800;box-shadow:0 10px 22px #ff9ac238;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 14px 30px #b478ff59}button.secondary{background:#ffffffb3;color:var(--ink);border:1px solid rgba(200,182,255,.45);box-shadow:none}button:disabled{opacity:.6;cursor:not-allowed}.error{color:#b00020}.muted{color:#2b1b3ba6}.grid2{display:grid;grid-template-columns:1.05fr 1.15fr;gap:18px;margin-top:18px}.chartBox{margin-top:14px;display:flex;justify-content:center;align-items:center;min-height:600px;padding:18px;border-radius:26px;background:#fff0fa73;border:2px solid rgba(200,170,255,.45);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 0 0 4px #ffdcf059,0 20px 40px #aa78ff47}.pill{display:inline-block;padding:10px 12px;border-radius:999px;background:#fff9;border:1px solid rgba(200,182,255,.45);color:#2b1b3beb;font-size:13px;margin-bottom:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.output{white-space:pre-wrap;background:#ffffffa6;color:#2b1b3beb;padding:18px;border-radius:20px;border:1px solid rgba(180,140,255,.4);font-size:14px;line-height:1.7;max-height:620px;overflow:auto;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 0 20px #ffffff8c,0 10px 25px #8c64dc33}details summary{cursor:pointer;color:#2b1b3be0;font-weight:750;margin-top:10px}.api label{display:flex;flex-direction:column;gap:6px;font-size:13px}.api input{width:320px}.footer{margin-top:18px;color:#2b1b3bbf}@media(max-width:900px){.grid2,.row{grid-template-columns:1fr}.api input{width:100%}.chartBox{min-height:540px}}
