/* Western UI: Input Card, Compact Filters, Legends, Tables, Charts */
/* Source: migrated from page inline styles (Dec 5, 2025) */



.profile-summary{position:relative;margin:8px 0 12px;padding:26px 28px 28px;border:1.5px solid transparent;border-radius:24px;background:linear-gradient(140deg,#ffffff 0%,#fdfcff 28%,#f8f4ff 52%,#f1edff 78%,#eef0ff 100%);box-shadow:0 8px 28px -6px rgba(65,55,150,.28),0 4px 12px -3px rgba(50,40,130,.22),0 1px 4px rgba(30,20,100,.15),inset 0 1px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(100,80,200,.08);overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1);} 
.profile-summary:before{content:"";position:absolute;inset:-1.5px;border-radius:24px;padding:1.5px;background:linear-gradient(135deg,#8c7eff 0%,#6d9fff 35%,#4ebdff 70%,#8c7eff 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.6;pointer-events:none;animation:shimmer 8s linear infinite;} 
.profile-summary:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 18%,rgba(140,105,255,.22) 0%,transparent 52%),radial-gradient(circle at 18% 88%,rgba(75,145,255,.24) 0%,transparent 58%),radial-gradient(ellipse at 50% 0%,rgba(100,90,240,.14) 0%,transparent 45%);pointer-events:none;mix-blend-mode:soft-light;} 
@keyframes shimmer{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}} 
.profile-summary:hover{box-shadow:0 12px 38px -8px rgba(65,55,150,.35),0 6px 16px -4px rgba(50,40,130,.28),0 2px 6px rgba(30,20,100,.2),inset 0 1px 0 rgba(255,255,255,.8),inset 0 -1px 0 rgba(100,80,200,.12);transform:translateY(-1px);} 
.ps-top{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:14px;} 
.ps-name{font-size:1.55rem;font-weight:900;letter-spacing:.6px;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.15;display:flex;align-items:center;gap:10px;} 
.ps-name:before{content:"🪐";font-size:1.3rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));} 
.ps-gender{font-size:.75rem;font-weight:700;padding:6px 12px;border-radius:22px;background:linear-gradient(120deg,#e2e9ff,#d9d2ff);color:#27367a;display:inline-flex;align-items:center;gap:6px;border:1px solid #c6cff5;box-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.08em;text-transform:uppercase;} 
.ps-gender[data-gender="Female"]{background:linear-gradient(120deg,#ffe3f5,#f5d5ff);color:#7a1f62;border-color:#f1bfe4;} 
.ps-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:4px} 
.ps-info .ps-loc{grid-column:span 2} 
@media (max-width:980px){.ps-info{grid-template-columns:repeat(2,minmax(0,1fr));}} 
@media (max-width:520px){ .ps-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px} .ps-info .ps-loc{grid-column:span 2} } 
.ps-item{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(165deg,#ffffff,#f5f7ff 60%,#f1edff);border:1px solid #d9def3;box-shadow:0 3px 10px -4px rgba(50,40,120,.22),0 1px 2px rgba(0,0,0,.06);transition:transform .2s ease, box-shadow .25s ease, border-color .2s ease;} 
.ps-item:before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(140deg,#85a1ff,#ac95ff,#6dd6ff);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35;pointer-events:none} 
.ps-item:hover{transform:translateY(-1px);box-shadow:0 6px 16px -6px rgba(50,40,120,.28),0 2px 6px rgba(0,0,0,.08);border-color:#cbd4ff} 
.ps-icon{flex:0 0 auto;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6d59ff,#31c4ff);color:#fff;font-size:16px;box-shadow:0 2px 8px rgba(60,40,120,.28)} 
.ps-text{min-width:0;display:flex;flex-direction:column;gap:2px} 
.ps-label{font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#4630a0;opacity:.9} 
.ps-value{font-size:.85rem;font-weight:650;color:#25306a;letter-spacing:.01em;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 
.ps-edit-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:linear-gradient(90deg,#5a44e6,#3d78ff);color:#fff;font-size:.63rem;font-weight:700;letter-spacing:.08em;padding:9px 14px;border:none;border-radius:24px;cursor:pointer;box-shadow:0 3px 10px -3px rgba(40,50,140,.55),0 1px 3px rgba(0,0,0,.18);position:relative;overflow:hidden;} 
.ps-edit-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#ffffff33,#ffffff05 40%,#ffffff33);mix-blend-mode:overlay;} 
.ps-edit-btn span{display:inline-block;} 
.ps-edit-btn:hover{transform:translateY(-2px);} 
.ps-edit-btn:active{transform:translateY(0);} 
.ps-edit-btn svg{width:14px;height:14px;fill:currentColor;} 
.ps-loc{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} 
@media (max-width:620px){ .profile-summary{padding:16px 16px 18px;margin:2px 0 22px;} .ps-name{font-size:1.25rem;} .ps-item{padding:10px 12px} .ps-label{font-size:.64rem} .ps-value{font-size:.82rem} .ps-edit-btn{font-size:.58rem;padding:8px 12px;} } 
@media (max-width:420px){ .ps-top{gap:10px;} .ps-name{flex:1 1 100%;} .ps-item{padding:9px 10px} .ps-edit-btn{order:3;margin-left:0;} }

.aspects-panel .aspect-intro{font-size:.9rem;line-height:1.5;color:#2b2f55;margin:6px 2px 16px;letter-spacing:.015em;font-weight:500;}
.aspects-panel .aspect-title{font-size:1.25rem!important;letter-spacing:.04em!important;text-transform:none!important;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-flex;align-items:center;gap:10px;font-weight:900;padding-bottom:4px;}
.aspects-panel .aspect-title:after{content:"";display:inline-block;height:7px;width:160px;background:linear-gradient(90deg,#6d59ff,#31c4ff);border-radius:8px;filter:blur(.4px);margin-left:6px;opacity:.7;}
.aspect-list{display:grid;grid-template-columns:1fr;gap:14px 16px;margin:6px 0 6px;padding:0;list-style:none;}
@media (min-width:680px){ .aspect-list{grid-template-columns:repeat(2,minmax(0,1fr));} }
.aspect-item{height:100%;}
.aspect-item{position:relative;padding:12px 14px 10px 18px;border:1px solid #d9def3;border-radius:16px;background:linear-gradient(145deg,#ffffff,#f5f7ff 55%,#f3edff);box-shadow:0 3px 10px -4px rgba(50,40,120,.22),0 1px 2px rgba(0,0,0,.06);overflow:hidden;--ac:#6d59ff;}
.aspect-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--ac),#7bbdff);border-top-left-radius:16px;border-bottom-left-radius:16px;filter:saturate(120%);}
.aspect-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.9rem;font-weight:600;color:#252f66;}
.aspect-line .a-glyph{font-size:1rem;min-width:1.1rem;text-align:center;color:var(--ac);}
.pred-title{font-size:1.25rem;letter-spacing:.04em;font-weight:900;color:#2a2f6b;}
.pred-section{margin:8px 0 0;padding:6px 0 0}
.pred-section-title{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:850;color:#26306b;margin:4px 0 10px}
.pred-section-title:after{content:"";height:6px;width:120px;background:linear-gradient(90deg,#6d59ff,#31c4ff);border-radius:8px;filter:blur(.3px);opacity:.7}
.pred-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:780px){.pred-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
.pred-item{position:relative;padding:14px 16px;border:1px solid #d9def3;border-radius:14px;background:linear-gradient(145deg,#ffffff,#f4f6ff 55%,#f2edff);box-shadow:0 3px 10px -6px rgba(50,40,120,.22),0 1px 2px rgba(0,0,0,.06)}
.pred-item:before{content:"";position:absolute;inset:0;border-radius:14px;padding:1px;background:linear-gradient(140deg,#85a1ff,#ac95ff,#6dd6ff);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.28;pointer-events:none}
.pred-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#1e2a6a;font-weight:800}
.pred-head .pred-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6d59ff,#31c4ff);color:#fff;font-size:14px}
.pred-text{color:#273166;line-height:1.5;font-weight:560}
.pred-cta{display:flex;justify-content:center;margin-top:8px}
.pred-cta-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 18px;border:none;border-radius:28px;background:linear-gradient(90deg,#6d59ff,#31c4ff);color:#fff;font-weight:850;letter-spacing:.04em;box-shadow:0 6px 18px rgba(60,40,140,.25);cursor:pointer}
.pred-cta-btn .emoji{filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.pred-cta-btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(60,40,140,.3)}

.pred-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:stretch;justify-content:center;background:rgba(10,14,30,.6);backdrop-filter:blur(6px)}
.pred-modal.visible{display:flex}
.pred-modal .pred-sheet{width:100%;max-width:940px;margin:auto;background:linear-gradient(160deg,#ffffff,#f6f8ff 55%,#f3efff);border:1px solid #dbe1ff;border-radius:16px;box-shadow:0 12px 36px rgba(25,35,100,.35);display:flex;flex-direction:column;max-height:92vh}
.pred-modal header{position:sticky;top:0;background:linear-gradient(90deg,#262f99,#214fcc 42%,#147ed9 72%,#0aa2e2);color:#fff;padding:10px 14px;border-bottom:1px solid #0001;box-shadow:0 6px 14px rgba(20,30,90,.22);border-top-left-radius:16px;border-top-right-radius:16px}
.pred-modal .hdr{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pred-modal .hdr .ttl{font-weight:900;letter-spacing:.04em}
.pred-modal .hdr .actions{display:flex;gap:8px}
.pred-modal .btn{background:linear-gradient(90deg,#5a44e6,#3d78ff);color:#fff;border:none;border-radius:16px;font-weight:750;letter-spacing:.03em;padding:8px 12px;cursor:pointer;box-shadow:0 3px 8px rgba(50,60,140,.28)}
.pred-modal .btn.secondary{background:#ffffff22;border:1px solid #ffffff55}
.pred-modal .body{overflow:auto;padding:14px}
.pred-modal .pred-section{margin:14px 0 0}
.pred-modal .pred-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:820px){.pred-modal .pred-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
.pred-modal .pred-item{position:relative;padding:0;border:1px solid #d9def3;border-radius:14px;background:linear-gradient(145deg,#ffffff,#f4f6ff 55%,#f2edff);box-shadow:0 3px 10px -6px rgba(50,40,120,.22),0 1px 2px rgba(0,0,0,.06)}
.pred-modal details.pred{padding:12px 14px}
.pred-modal details.pred>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}
.pred-modal details.pred>summary::-webkit-details-marker{display:none}
.pred-modal .pred-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6d59ff,#31c4ff);color:#fff;font-size:14px}
.pred-modal .pred-text{color:#273166;line-height:1.55;font-weight:560;margin-top:8px}
.aspect-line .a-p1,.aspect-line .a-p2{font-weight:650;color:#222f75;}
.aspect-line .a-aspect-name{background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800;letter-spacing:.5px;text-transform:capitalize;}
.aspect-orb{margin-top:4px;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a2fb4;background:rgba(110,70,220,.09);padding:4px 9px;border-radius:30px;display:inline-flex;align-items:center;gap:4px;}
.aspect-orb span{font-weight:700;}
.aspect-item[data-type="square"]{--ac:#ff6a4d;}
.aspect-item[data-type="opposition"]{--ac:#ff3d7d;}
.aspect-item[data-type="trine"]{--ac:#27b36a;}
.aspect-item[data-type="sextile"]{--ac:#1d94e3;}
.aspect-item[data-type="conjunction"]{--ac:#9458ff;}
.aspect-item[data-type="quincunx"]{--ac:#c7a212;}
.aspect-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(48,32,140,.35),0 3px 6px -2px rgba(40,28,110,.25);}
@media (max-width:640px){ .aspect-line{font-size:.82rem;} .aspect-item{padding:10px 12px 9px 16px;} }

.aspect-tabs{margin-top:6px;}
.aspect-tab-headers{display:flex;flex-wrap:nowrap;gap:10px;margin:0 0 10px;position:relative;padding:4px 4px 12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.aspect-tab-headers::-webkit-scrollbar{display:none;}
.aspect-tab-headers:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#d7dcf1,#cbd2ef,#d7dcf1);}
.aspect-tab-headers button{flex:0 0 auto;border:1px solid #ccd5f2;background:linear-gradient(145deg,#ffffff,#f4f7ff 60%,#f1edff);color:#29316d;font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:9px 16px 9px 16px;border-radius:26px;cursor:pointer;position:relative;box-shadow:0 2px 5px rgba(40,30,110,.15),0 1px 0 rgba(255,255,255,.8) inset;transition:.28s;background-size:200% 120%;background-position:0% 50%;}
.aspect-tab-headers button:hover:not(.active){background-position:100% 50%;}
.aspect-tab-headers button.active{background:linear-gradient(92deg,#5a3fe2,#336ce4 60%,#1cc2ff);color:#fff;border-color:#4b3ec4;box-shadow:0 6px 16px -5px rgba(60,40,140,.55),0 2px 4px -1px rgba(20,20,70,.45);}
.aspect-tab-headers button:focus-visible{outline:2px solid #5d39ff;outline-offset:2px;}
.aspect-tab-underline{position:absolute;bottom:0;height:3px;background:linear-gradient(90deg,#6d59ff,#31c4ff);border-radius:3px;transition:.4s cubic-bezier(.6,.2,.25,1);box-shadow:0 0 0 1px #ffffffaa,0 2px 6px -1px rgba(40,30,110,.45);}
.aspect-tab-panels{position:relative;padding-top:4px;}
@media (max-width:640px){ .aspect-tab-headers{gap:8px;padding:4px 2px 10px;} }
@supports (backdrop-filter:blur(4px)){ .aspect-tab-headers{backdrop-filter:blur(6px) saturate(130%);} }
.aspect-tab-panels:before{content:"";position:absolute;left:0;right:0;top:0;height:10px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));border-top-left-radius:14px;border-top-right-radius:14px;}
.aspect-tab-panel{display:none;animation:fadeIn .35s ease;}
.aspect-tab-panel.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.aspect-count-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;background:#efe9ff;color:#4a34a4;font-size:.55rem;font-weight:800;padding:3px 7px;border-radius:14px;letter-spacing:.05em;border:1px solid #d9cef7;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.aspect-tab-headers button.active .aspect-count-badge{background:linear-gradient(120deg,#ffffff,#e8f5ff);color:#2c2f70;border-color:#b7c9f2;}
.aspect-empty{opacity:.6;list-style:none;padding:6px 2px;font-size:.7rem;}
.house-cusp-list{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:12px;}
.house-cusp-item{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:11px 14px 11px 16px;border:1px solid #d9def3;border-radius:18px;background:linear-gradient(140deg,#ffffff,#f5f7ff 55%,#f3edff);box-shadow:0 3px 10px -4px rgba(50,40,120,.18),0 1px 2px rgba(0,0,0,.05);}
.house-cusp-item:hover{box-shadow:0 10px 24px -12px rgba(48,32,140,.35);}
.house-num{font-size:.6rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#4b2fb4;background:#efe9ff;padding:5px 10px 5px 11px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;position:relative;}
.house-num:before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,#6d59ff,#31c4ff);box-shadow:0 0 0 3px #efe9ff;}
.house-sign-badge{font-size:.75rem;font-weight:700;letter-spacing:.04em;color:#253060;background:#e7f1ff;padding:6px 12px;border-radius:18px;display:inline-flex;align-items:center;gap:6px;border:1px solid #c8d8f5;}
.house-sign-glyph{font-size:1rem;line-height:1;color:#5a3bd6;filter:drop-shadow(0 1px 2px rgba(50,40,120,.25));}
.house-cusp-degree{font-size:.78rem;font-weight:800;letter-spacing:.02em;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;}
.house-primary{display:inline-flex;align-items:center;gap:10px;flex:0 1 auto;}
.house-meta-wrap{display:flex;flex-direction:column;gap:2px;min-width:160px;}
@media (max-width:640px){ .house-cusp-item{gap:10px;padding:10px 14px;} .house-cusp-degree{font-size:.82rem;} }

.aspect-legend{--legend-gap:10px;display:flex;flex-wrap:wrap;align-items:center;gap:var(--legend-gap);margin:8px 0 4px;padding:12px 16px;border:1px solid #d8dde8;border-radius:18px;background:linear-gradient(135deg,#ffffffee 0%,#f6f8fbf0 55%,#eef1f8f0 100%);backdrop-filter:blur(4px) saturate(140%);-webkit-backdrop-filter:blur(4px) saturate(140%);box-shadow:0 2px 4px -2px rgba(30,40,70,.25),0 1px 2px rgba(40,50,90,.12),0 0 0 1px #ffffff inset;font-size:.62rem;font-weight:700;letter-spacing:.08em;color:#2a3168;position:relative;overflow:hidden;}
.aspect-legend:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(120,90,255,.10),transparent 62%),linear-gradient(120deg,rgba(120,140,255,.06),rgba(255,255,255,0) 70%),radial-gradient(circle at 12% 88%,rgba(40,150,255,.10),transparent 60%);pointer-events:none;mix-blend-mode:normal;}
.aspect-legend-title{font-size:.65rem;font-weight:800;margin-right:4px;display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;color:#4b2fb4;letter-spacing:.11em;}
.aspect-legend label{--clr:#5a44e6;--clr-soft:rgba(90,68,230,.12);--txt:#1d2658;display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;background:#ffffff;border:1px solid var(--clr-soft);padding:6px 12px;border-radius:18px;font-size:.62rem;position:relative;line-height:1;transition:.25s ease;box-shadow:0 1px 2px rgba(20,20,40,.08);} 
.aspect-legend label:before{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,var(--clr-soft),transparent 65%);opacity:.4;pointer-events:none;transition:.35s;mix-blend-mode:normal;} 
.aspect-legend label input{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--clr);border-radius:5px;display:inline-grid;place-content:center;background:#fff;cursor:pointer;position:relative;transition:.25s;box-shadow:0 0 0 1px #ffffff inset,0 1px 2px rgba(10,10,30,.15);} 
.aspect-legend label input:focus-visible{outline:2px solid var(--clr);outline-offset:2px;} 
.aspect-legend label input:checked{background:var(--clr);border-color:var(--clr);box-shadow:0 0 0 1px #ffffff55 inset,0 2px 4px -1px var(--clr);} 
.aspect-legend label input:checked:after{content:"";width:8px;height:8px;box-sizing:border-box;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px);} 
.aspect-legend .swatch{width:14px;height:14px;border-radius:4px;background:var(--clr);box-shadow:0 0 0 1px #ffffffaa inset,0 1px 2px rgba(0,0,0,.25);position:relative;} 
.aspect-legend label.active{background:linear-gradient(120deg,#ffffff 0%,var(--clr-soft) 95%);border-color:var(--clr-soft);box-shadow:0 2px 5px -2px rgba(0,0,0,.18),0 0 0 1px #ffffff inset;} 
.aspect-legend label.active:before{opacity:.55;} 
.aspect-legend label.inactive{opacity:.45;filter:saturate(.55);} 
.aspect-legend label:not(.inactive):hover{box-shadow:0 3px 10px -3px rgba(0,0,0,.25),0 0 0 1px var(--clr) inset;transform:translateY(-1px);} 
.aspect-legend label:not(.inactive):active{transform:translateY(0);box-shadow:0 1px 4px -2px rgba(0,0,0,.3),0 0 0 1px var(--clr) inset;} 
.aspect-legend .legend-spacer{flex:0 0 100%;height:0;margin:0;padding:0;} 
.legend-actions{display:inline-flex;gap:6px;margin-left:auto;flex-wrap:wrap;align-items:center;} 
.legend-actions button{--btn-bg1:#5d46ff;--btn-bg2:#3c2fa8;--btn-border:#4a3bcf;--btn-shadow:rgba(75,60,195,.55);background:linear-gradient(135deg,var(--btn-bg1),var(--btn-bg2));border:1px solid var(--btn-border);padding:5px 10px;font-size:.55rem;line-height:1;letter-spacing:.07em;font-weight:700;border-radius:18px;cursor:pointer;color:#fff;box-shadow:0 2px 6px -2px var(--btn-shadow),0 0 0 1px #ffffff22 inset;transition:.28s cubic-bezier(.6,.2,.3,1);text-transform:uppercase;} 
.legend-actions button.legend-btn-planet{--btn-bg1:#1692c9;--btn-bg2:#0d5e9a;--btn-border:#0d5e9a;--btn-shadow:rgba(15,90,150,.55);} 
.legend-actions button.legend-btn-aspect{--btn-bg1:#7a3df2;--btn-bg2:#4b1fae;--btn-border:#5d2bc9;--btn-shadow:rgba(85,45,190,.55);} 
.legend-actions button:hover{filter:brightness(1.08);box-shadow:0 4px 14px -4px var(--btn-shadow),0 0 0 1px var(--btn-border) inset;transform:translateY(-2px);} 
.legend-actions button:active{transform:translateY(0);filter:brightness(.95);} 
.planet-legend .solo-hint{font-size:.5rem;opacity:.65;font-weight:600;letter-spacing:.08em;margin-left:4px;} 
@media (max-width:640px){ .aspect-legend{gap:8px;padding:8px 10px;} .aspect-legend label{padding:4px 7px;}  }
.planet-legend{margin-top:6px;background:linear-gradient(135deg,#ffffffee 0%,#f4f9ff 60%,#eef6fb 100%);border-color:#d3e2f2;}
.filter-panel-wrapper{margin:2px 0 2px;}
.filter-toggle-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;background:linear-gradient(180deg,#fbfdff 0%,#f6f2ff 100%);font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px solid rgba(90,68,230,0.16);box-shadow:0 6px 18px -8px rgba(60,40,140,.18),0 2px 6px -4px rgba(30,40,90,.08);transition:all .22s ease}
.filter-toggle-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(60,40,140,.18),0 4px 12px -6px rgba(30,40,90,.12)}
.filter-toggle-btn:active{transform:translateY(0);}
.filter-toggle-btn .icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.filter-toggle-btn > span:not(.icon){background:linear-gradient(90deg,#2f6ddf,#6228d7);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.filter-toggle-btn svg{width:18px;height:18px;stroke:#5a37d9;fill:none}
.filter-toggle-btn .chevron{width:12px;height:12px;stroke:#5a37d9;stroke-width:2;transition:transform .3s ease}
.filter-toggle-btn.open .chevron{transform:rotate(180deg)}
.static-aspect-legend{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:linear-gradient(135deg,#ffffff,#fbfdff);border:1px solid #eef3ff;font-size:.78rem;color:#2b2f55}
.static-aspect-legend .leg-item{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:10px;background:transparent;color:inherit;font-weight:700}
.static-aspect-legend .leg-swatch{width:12px;height:12px;border-radius:3px;display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.12);border:1px solid rgba(0,0,0,0.06)}
.static-aspect-legend .leg-label{font-size:0.78rem;color:#2a3168;margin-left:8px;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:920px){ .static-aspect-legend .leg-label{display:none;} }
@media (max-width:720px){ .static-aspect-legend{display:flex!important;flex-wrap:wrap;order:-1;flex-basis:100%;gap:8px;padding:8px;border-radius:10px;margin-bottom:10px} .filter-legend-row{align-items:center} .filter-legend-row > #filterToggleBtn{order:1} .static-aspect-legend .leg-item{padding:6px 8px;flex:0 1 calc(33.333% - 10px);min-width:90px;display:flex;flex-direction:row;align-items:center;gap:8px} .static-aspect-legend .leg-swatch{display:inline-block} .static-aspect-legend .leg-label{display:inline-block;white-space:normal;margin-left:0;text-align:left} }
.filter-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .4s ease,opacity .3s ease;display:block;}
.filter-panel.expanded{opacity:1;}
.filter-panel-inner{display:flex;flex-direction:column;gap:10px;}
@media (max-width:740px){ .filter-toggle-btn{font-size:.58rem;padding:8px 12px;} }
.wheel-wrapper{position:relative;}
.wheel-wrapper #mainSvgHost{position:relative;z-index:1;width:100%;height:100%;}
#aspectOverlaySvg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;}
#aspectOverlaySvg line[data-aspect-type]{transition:opacity .25s ease;}
#aspectOverlaySvg line[data-hidden="true"]{opacity:0;}

/* Rich theme enhancements (minimal, additive) */
/* Opt-in: can be overridden by page if needed */
body{color:#1f2552;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
.container{background:linear-gradient(150deg,#ffffff 0%,#f7f9ff 48%,#f4f0ff 100%);}
.card-body{background:linear-gradient(135deg,#eef2ff 0%,#f2f6ff 50%,#ece9ff 100%);} 
label{color:#1d2f84;letter-spacing:.4px;}
input[type=text],select{background:#ffffff!important;color:#1e2752;font-weight:600;box-shadow:0 1px 2px rgba(30,55,140,.15) inset,0 1px 3px rgba(20,30,60,.08);} 
input[type=text]:focus,select:focus{box-shadow:0 0 0 3px #dde6ff,0 2px 6px -2px rgba(40,70,160,.35);} 
.header{background:linear-gradient(90deg,#262f99,#214fcc 42%,#147ed9 72%,#0aa2e2);} 
.main-title{-webkit-text-stroke:1px transparent;filter:drop-shadow(0 3px 8px rgba(50,40,120,.22));}
.panel h3{color:#452fb6;letter-spacing:.12em;}
table.master-table thead th{background:linear-gradient(100deg,#4739c0,#6034c8 50%,#2e5ec7);} 
.master-table tbody tr:hover{background:linear-gradient(90deg,#ece8ff,#e5f1ff);} 
.ps-name{filter:drop-shadow(0 4px 10px rgba(60,40,140,.25));}
.btn{background:linear-gradient(90deg,#0924b5,#5f00c9);} .btn:hover{background:linear-gradient(90deg,#0b2cc6,#6f09d9);} 
.toggle-group{background:linear-gradient(120deg,#ffffff,#eef2ff);} .toggle-btn.active{background:linear-gradient(90deg,#4262ff,#7a35e2);} 
.profile-summary{background:linear-gradient(140deg,#ffffff 0%,#fdfcff 28%,#f8f4ff 52%,#f1edff 78%,#eef0ff 100%);} 
.ps-chip strong{color:#3b2597;} .ps-chip{background:linear-gradient(145deg,#ffffff,#f3f6ff 55%,#f3edff);} 
.cel-glyph{background:radial-gradient(circle at 38% 30%,#ffffff 5%,#e5ddff 92%);} 
/* Extracted from natal-chart-french.html */
:root { --indian-font-stack: "Segoe UI", system-ui, Roboto, sans-serif; --primary:#4169e1; --gradient-head:linear-gradient(90deg,#6228d7,#4169e1); }
/* Narrow global reset so embedded server SVG text keeps its own font styling */
/* Global reset WITHOUT font-family to avoid inheriting into server SVG text */
* { margin:0; padding:0; box-sizing:border-box; }
/* Apply site font only to standard HTML text containers (exclude svg) */
body, header, nav, h1, h2, h3, h4, h5, h6, p, li, button, input, select, textarea, details, summary, blockquote, table, th, td, .panel, .card, .note { font-family:var(--indian-font-stack); }
/* Ensure any inline SVG we inject keeps its own internal styling (prevent class name collisions) */
.chart-responsive-square svg, .chart-responsive-square svg * { font-family:initial; }
html, body, button, input, select, textarea, table, th, td, .panel, .card, .master-table-wrap { font-family:var(--indian-font-stack); }
/* If any SVG inside chart should explicitly keep server fonts (with attributes), we avoid forcing font-family on svg/text */
body { background:linear-gradient(120deg,#e0f3ff,#efe3ff,#e0f3ff); background-attachment:fixed; }
.header { background:linear-gradient(to right,#283593,#1565c0); padding:12px 20px; display:flex; align-items:center; justify-content:space-between; color:#fff; flex-wrap:wrap; }
.logo { font-size:26px; width:250px; font-weight:700; background:linear-gradient(to right,#FF9A9E,#FAD0C4,#FECF7D,#B9FBC0,#C2E0FF,#AEEEEE); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; text-decoration:none; }
.nav { display:flex; gap:30px; font-size:16px; }
.nav a { color:#fff; text-decoration:none; padding:8px 16px; font-weight:500; border-radius:6px; transition:.3s; }
.nav a:hover { background:rgba(255,255,255,.18); }
.hamburger { display:none; cursor:pointer; flex-direction:column; gap:5px; width:25px; height:18px; }
.hamburger div { width:100%; height:3px; background:#fff; border-radius:4px; }
.mobile-nav { position:fixed; top:0; right:-70%; width:70%; height:100%; background:linear-gradient(135deg,#132f66,#465fb5); padding:24px 20px; display:flex; flex-direction:column; gap:16px; transition:right .35s ease; z-index:1000; }
.mobile-nav a { color:#fff; background:rgba(255,255,255,.12); padding:12px 16px; border-radius:10px; text-decoration:none; font-size:17px; font-weight:500; }
.mobile-nav a:hover { background:rgba(255,255,255,.22); transform:translateX(5px); }
.mobile-nav.active { right:0; }
.close-btn { position:absolute; top:16px; right:20px; font-size:30px; color:#f8bbd0; cursor:pointer; font-weight:bold; }
@media (max-width:768px){ .nav{display:none;} .hamburger{display:flex;} }
/* Language selector styling (compact, header-friendly) */
.lang-dropdown{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:linear-gradient(90deg,#3b5edb,#2f88e6);border:1px solid rgba(255,255,255,.12);color:#fff;font-weight:800;cursor:pointer}
.lang-btn .lang-caret{opacity:.9;margin-left:6px;font-size:.9em}
.lang-list{position:absolute;right:0;top:calc(100% + 8px);min-width:160px;background:#fff;border-radius:10px;padding:6px 6px;box-shadow:0 10px 30px rgba(20,30,80,.18);list-style:none;display:none;margin:0;z-index:1200}
.lang-list[aria-hidden="false"]{display:block}
.lang-list li{padding:8px 10px;border-radius:8px;cursor:pointer;font-weight:700;color:#23315a;display:flex;align-items:center;gap:8px}
.lang-list li:hover,.lang-list li[aria-selected="true"]{background:linear-gradient(90deg,#eef4ff,#f6f9ff);}
.lang-flag{font-size:1.05em}
/* Mobile: keep header compact and show compact language button */
@media (max-width:620px){
  .header{flex-wrap:nowrap;padding:8px 12px;gap:8px;}
  .logo{font-size:18px;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lang-dropdown{display:flex;align-items:center;z-index:1400}
  .lang-btn{padding:6px 8px;border-radius:8px;font-size:0.92rem;min-width:40px}
  .lang-btn .lang-label{display:none}
  .lang-btn .lang-flag{font-size:1.15em}
  .lang-list{right:8px;left:auto;min-width:140px;top:calc(100% + 6px)}
  .hamburger{margin-left:auto;display:flex}
}
.container { max-width:940px; margin:20px auto 40px; background:#fff; border-radius:18px; padding:18px 18px 38px; box-shadow:0 6px 18px #1e3a8a22; }
/* Side ad slots: visible only on large screens where page has side gutters */
.side-ad{display:none}
@media (min-width:1200px){
  .side-ad{display:block; position:fixed; top:140px; width:160px; z-index:1050}
  /* place side ads into the gutters assuming .container max-width:940px */
  .side-ad.left{ left: calc((100% - 940px)/2 - 180px); }
  .side-ad.right{ right: calc((100% - 940px)/2 - 180px); }
}
/* Upgrade to 300px when viewport is wide enough to fit without overlap */
@media (min-width:1500px){
  .side-ad{ width:300px; }
  .side-ad.left{ left: calc((100% - 940px)/2 - 320px); }
  .side-ad.right{ right: calc((100% - 940px)/2 - 320px); }
}
.main-title { font-family:'Playfair Display',serif; font-size:2.5em; text-align:center; font-weight:900; letter-spacing:1.1px; margin:10px 0 20px; background:linear-gradient(90deg,#6f2bd9 10%,#3d7bff 55%,#07b8ff 90%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation:grad 7s ease-in-out infinite; }
@keyframes grad { 0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;} }
.intro { font-size:1.06em; text-align:left; line-height:1.55; color:#3a2b75; margin:0 auto 14px; max-width:760px; }
.highlight-box { margin:26px 0 18px; padding:18px 16px; background:#e4efff; border-radius:14px; box-shadow:0 2px 8px #1e3a8a11; }
.highlight-box.alt { background:#f5e9ff; }
.highlight-box h2 { font-size:1.05em; color:#6d1fb5; margin-bottom:8px; }
.highlight-box ul, .highlight-box ol { line-height:1.65; color:#30215d; font-size:.99em; padding-left:18px; }
.card { width:100%; max-width:720px; margin:28px auto 0; background:#fff; border-radius:18px; border:1px solid #8fa6f133; box-shadow:0 6px 14px rgba(0,0,0,.12); overflow:visible; }
.card-head { background:var(--gradient-head); color:#fff; padding:15px 20px; font-weight:700; font-size:20px; border-top-left-radius:18px; border-top-right-radius:18px; }
.card-body { padding:24px 24px 6px; background:#eef2ff; }
label { display:block; font-size:16px; margin:0 0 6px; color:#14248a; font-weight:600; }
input[type=text], select { width:100%; padding:10px 12px; border:1px solid #bcd; border-radius:8px; font-size:15px; border:none; }
.row3 { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px; align-items:center; }
.row3 .field { flex:1 1 30%; min-width:90px; }
.toggle-group { display:inline-flex; border:1px solid #bcd; border-radius:8px; overflow:hidden; }
.toggle-btn { padding:8px 16px; font-size:.85rem; cursor:pointer; border:none; background:#fff; font-weight:600; }
.toggle-btn.active { background:var(--primary); color:#fff; }
.switch { position:relative; width:48px; height:24px; display:inline-block; }
.switch input { opacity:0; width:0; height:0; }
.slider { position:absolute; inset:0; background:#9cc5ff; border-radius:24px; transition:.3s; }
.slider:before { content:""; position:absolute; width:20px; height:20px; left:3px; top:2px; background:#fff; border-radius:50%; transition:.3s; }
input:checked + .slider { background:#7b1fa2; }
input:checked + .slider:before { transform:translateX(24px); }
.btn { display:inline-block; width:230px; padding:12px 0; margin:26px auto 12px; background:linear-gradient(90deg,#081fb9,#6a00c9); color:#fff; font-weight:600; border:none; border-radius:38px; cursor:pointer; font-size:15px; letter-spacing:.5px; transition:.25s; position:relative; }
.btn:hover { transform:translateY(-2px) scale(1.02); }
.btn[disabled]{opacity:.55;cursor:progress;}
.autocomplete-list { position:absolute; top:100%; left:0; right:0; max-height:320px; overflow-y:auto; border:1px solid #ccd; background:#fff; border-radius:10px; box-shadow:0 4px 12px rgba(0,0,0,.12); z-index:10; }
.autocomplete-item { padding:10px 12px; cursor:pointer; font-size:15px; color:#222; }
.autocomplete-item:hover { background:#eef4ff; color:#0033cc; }
details { background:#f1f6ff; padding:10px 14px; margin:10px 0; border-radius:10px; }
details summary { cursor:pointer; font-weight:600; color:#23347e; }
blockquote { background:#fff; border-left:4px solid #6d1fb5; padding:12px 14px; border-radius:6px; margin:0; }
.note { font-size:.95em; color:#6932b8; text-align:center; margin:20px 0 8px; }
/* Beautiful, responsive styling for the input card only */
#inputCard{ --ic-primary:#6a3be6; --ic-accent:#2f8df0; --ic-border:#dbe1fb; --ic-label:#1d2a6b; }
#inputCard.card{ border:1px solid var(--ic-border); box-shadow:0 10px 28px -14px rgba(36,24,120,.35), 0 4px 14px -8px rgba(36,24,120,.18); background:linear-gradient(180deg,#ffffff 0%,#fbfcff 40%,#ffffff 100%); }
#inputCard .card-head{ background:linear-gradient(100deg,#6a3be6 0%,#2f8df0 100%); text-shadow:0 1px 0 rgba(255,255,255,.18); letter-spacing:.02em; }
#inputCard .card-body{ background:linear-gradient(160deg,#eef2ff 0%,#f3f0ff 100%); padding:22px 22px 8px; border-bottom-left-radius:18px; border-bottom-right-radius:18px; }
#inputCard label{ color:var(--ic-label); font-weight:800; letter-spacing:.02em; }
#inputCard input[type=text],
#inputCard select{ border:1px solid #d6dff7; border-radius:12px; background:#fff; box-shadow:0 1px 0 #fff inset, 0 1px 2px rgba(30,50,100,.05); transition:border .15s ease, box-shadow .15s ease, transform .02s; }
#inputCard input[type=text]:focus,
#inputCard select:focus{ outline:none; border-color:#7b90ff; box-shadow:0 0 0 3px rgba(102,140,255,.18), 0 1px 0 #fff inset; }
#inputCard .row3{ display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); align-items:center; }
#inputCard #comboBlock .row3,
#inputCard #manualBlock .row3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
#inputCard .row3 .field{ min-width:0; }
#inputCard #genderRow{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#inputCard #genderRow label{ margin:0; }
#inputCard #genderRow .field{ flex:0 0 auto; min-width:0; background:transparent !important; padding:0; }
#inputCard #genderRow .toggle-group{ margin-left:0; }
#inputCard .toggle-group{ border:1px solid #d6dff7; border-radius:12px; background:#ffffff; box-shadow:0 1px 2px rgba(0,0,0,.06); overflow:hidden; }
#inputCard .toggle-btn{ padding:10px 16px; background:transparent; color:#24316b; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; border-radius:10px; }
#inputCard .toggle-btn.active{ background:linear-gradient(90deg,#6a3be6,#2f8df0); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); }
#inputCard .toggle-btn .btn-ico{ font-size:1.05em; line-height:1; }
#inputCard .btn{ width:clamp(220px,50%,320px); padding:13px 18px; border-radius:999px; background:linear-gradient(90deg,#5e2bd9,#2f8df0); font-size:16px; font-weight:800; letter-spacing:.03em; border:1px solid rgba(255,255,255,.25); box-shadow:0 14px 28px -14px rgba(48,32,140,.6), 0 6px 16px -10px rgba(48,32,140,.35); }
#inputCard .btn:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -16px rgba(48,32,140,.66), 0 8px 18px -10px rgba(48,32,140,.38); }
#inputCard .btn:focus-visible{ outline:3px solid #8aa2ff; outline-offset:2px; }
@media(max-width:380px){ #inputCard .toggle-btn{ padding:9px 12px; gap:6px; } #inputCard .toggle-btn .btn-ico{ display:none; } }
@media(max-width:620px){ #inputCard .btn{ width:100%; max-width:none; } }
/* Results (updated full-width chart) */
.results-wrapper{display:flex;flex-direction:column;gap:2px;margin-top:10px;}
.data-panels{display:grid;gap:26px;}
@media(min-width:680px){.data-panels{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}}
.panel{background:#fff;border:1px solid #e1e8fb;border-radius:16px;padding:12px 14px 18px;box-shadow:0 2px 8px rgba(0,0,0,.06);} 
.panel h3{margin:0 0 8px;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#4b2fb4;}
/* Panel header layout (kept in sync with today-natal-chart) */
.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel-title-group{display:flex;flex-direction:column;gap:4px}
#planetaryPositionsPanel{font-size:1.18rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(90deg,#6a3be6,#2f8df0);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0;text-shadow:0 1px 0 rgba(255,255,255,.12)}
.panel-subtitle{font-size:.78rem;font-weight:800;color:#565b86;opacity:.95}
table{width:100%;border-collapse:collapse;font-size:.78rem;}
th,td{padding:5px 7px;text-align:left;}
th{background:#eef2ff;font-weight:600;font-size:.63rem;letter-spacing:.05em;color:#2d3e86;}
tbody tr:nth-child(even){background:#f7f9ff;}
tbody tr:hover{background:#e9f1ff;}
/* Master celestial table styling */
.master-table-wrap{overflow-x:auto;margin-top:6px;border-radius:16px;background:linear-gradient(160deg,#ede9ff 0%,#f2f6ff 40%,#efe9ff 100%);padding:12px 16px 18px;border:1px solid #d2d8ee;box-shadow:0 6px 18px -4px rgba(40,28,110,.25),0 2px 6px -1px rgba(40,28,110,.22);} 
table.master-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem;font-variant-numeric:tabular-nums;} 
.master-table thead th{position:sticky;top:0;z-index:2;background:linear-gradient(100deg,#4a3cc4,#6136c9 48%,#2f60c9);padding:12px 14px;font-weight:700;font-size:.66rem;letter-spacing:.14em;color:#fff;text-transform:uppercase;border-bottom:2px solid #c2b7f8;box-shadow:0 2px 4px rgba(0,0,0,.15);} 
.master-table thead th:first-child{border-top-left-radius:8px;}
.master-table thead th:last-child{border-top-right-radius:8px;}
.master-table tbody tr{--row-accent:transparent;transition:background .25s,transform .25s;}
.master-table tbody tr:nth-child(odd){background:linear-gradient(90deg,#ffffff,#faf8ff);} 
.master-table tbody tr:nth-child(even){background:linear-gradient(90deg,#fdfbff,#ffffff);}  
.master-table tbody tr:hover{background:linear-gradient(90deg,#f0ecff,#e9f4ff);transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(48,32,140,.45);}  
.master-table tbody td{padding:11px 14px;vertical-align:middle;white-space:nowrap;font-weight:500;border-bottom:1px solid #e0e4f4;font-size:.82rem;} 
.master-table tbody tr:last-child td{border-bottom:none;}
.master-table tbody td:first-child{font-weight:600;color:#2a3372;} 
/* Legend checkbox & label color sync: use --clr on the container label */
label.legend-item { display:inline-flex; align-items:center; gap:8px; padding:6px 8px; border-radius:8px; margin-right:8px; cursor:pointer; }
label.legend-item input[type="checkbox"]{ width:18px; height:18px; margin:0 6px 0 0; accent-color:var(--clr); }
/* Remove inline swatches: visual color is communicated via checkbox accent and colored label text */
label.legend-item .swatch{ display:none; }
label.legend-item .legend-label-text{ color:var(--clr); font-weight:700; font-size:.9rem; }
/* Hide any .swatch fallbacks used elsewhere */
.aspect-legend .swatch, .planet-legend .swatch { display:none !important; }

/* Compact filter styles: smaller text and tighter spacing in the expanded filter panel */
#filterPanel .aspect-legend, #filterPanel .planet-legend { font-size:0.86rem; gap:8px; align-items:center; }
#filterPanel .aspect-legend label.legend-item, #filterPanel .planet-legend label.legend-item { padding:6px 8px; margin:4px 6px; gap:6px; }
#filterPanel .aspect-legend .legend-label-text, #filterPanel .planet-legend .legend-label-text { font-size:0.88rem; font-weight:700; }
.cel-glyph{font-size:1.25rem;display:inline-flex;width:1.7rem;aspect-ratio:1/1;align-items:center;justify-content:center;margin-right:7px;background:radial-gradient(circle at 38% 30%,#ffffff 5%,#dacffb 90%);border:1px solid #b8b2e6;border-radius:12px;box-shadow:0 2px 5px rgba(60,40,140,.25);} 
.house-badge{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef2ff,#e9e3ff);padding:4px 10px;border-radius:16px;font-size:.66rem;font-weight:800;letter-spacing:.05em;color:#1e2f73;border:1px solid #cdd5f2;box-shadow:0 1px 2px rgba(0,0,0,.08);} 
.sign-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:16px;font-size:.66rem;font-weight:700;letter-spacing:.05em;border:1px solid #d9cef7;box-shadow:0 1px 2px rgba(0,0,0,.09);background:#f3edff;color:#4c2aa2;} 
.sign-badge[data-sign-color]{background:var(--sb-bg);color:var(--sb-fg);border-color:var(--sb-border);} 
.deg-badge{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-weight:600;color:#2d2f6b;display:inline-flex;align-items:baseline;gap:6px;} 
.deg-badge .deg-val{font-size:.95em;font-weight:700;color:#1f2660;}
.deg-badge .min-val{font-size:.95em;font-weight:700;color:#452c86;}
.lord-badge{background:linear-gradient(135deg,#fff4d4,#ffe6a3);color:#5a3d00;padding:5px 10px;border-radius:14px;font-size:.62rem;font-weight:700;border:1px solid #f5d28a;letter-spacing:.06em;box-shadow:0 1px 2px rgba(0,0,0,.1);} 
/* Retrograde indicator */
.retro-flag{margin-left:4px;font-weight:800;color:#c53030;font-size:.95em;letter-spacing:.02em;vertical-align:super;line-height:1;}
/* Planet-specific lord color accents for stronger distinction */
.lord-badge.lord-Sun{background:linear-gradient(135deg,#ffe59a,#ffc13d);color:#5a3700;border-color:#f5b52f;}
.lord-badge.lord-Moon{background:linear-gradient(135deg,#dde9ff,#b9d4ff);color:#163d7a;border-color:#a9c8f5;}
.lord-badge.lord-Mercury{background:linear-gradient(135deg,#e7ffe5,#bdf5ba);color:#205c24;border-color:#a2e99d;}
.lord-badge.lord-Venus{background:linear-gradient(135deg,#ffe4f3,#ffcbe9);color:#6d1a52;border-color:#f5b3d9;}
.lord-badge.lord-Mars{background:linear-gradient(135deg,#ffd8d2,#ffb1a4);color:#6e1200;border-color:#f79c8d;}
.lord-badge.lord-Jupiter{background:linear-gradient(135deg,#e6f5ff,#b8e5ff);color:#064d6b;border-color:#a5daf5;}
.lord-badge.lord-Saturn{background:linear-gradient(135deg,#efeef5,#d5d3e0);color:#2d2a40;border-color:#c6c4d2;}
/* Canonical planet colors (follow base_planet_colors mapping) */
.clr-Sun{--planet-clr:#E59B00} 
.clr-Moon{--planet-clr:#6F8FCF} 
.clr-Mercury{--planet-clr:#1F7A5C} 
.clr-Venus{--planet-clr:#2E8B57} 
.clr-Mars{--planet-clr:#B22222}
.clr-Jupiter{--planet-clr:#3A2E9E} 
.clr-Saturn{--planet-clr:#2F2F2F} 
.clr-Uranus{--planet-clr:#1C7FA6} 
.clr-Neptune{--planet-clr:#1E6F6F} 
.clr-Pluto{--planet-clr:#4B0082}
.clr-Ascendant{--planet-clr:#5A37D9} 
.clr-True-North-Node{--planet-clr:#1F6E3B} 
.clr-True-South-Node{--planet-clr:#8B1A1A} 
.clr-Lilith{--planet-clr:#111111} 
.clr-Chiron{--planet-clr:#DAA520}
.clr-Midheaven{--planet-clr:#1E4D9B}
/* apply color to glyph background and text color for name spans when class present */
.clr-Sun .cel-glyph,.clr-Moon .cel-glyph,.clr-Mercury .cel-glyph,.clr-Venus .cel-glyph,.clr-Mars .cel-glyph,.clr-Jupiter .cel-glyph,.clr-Saturn .cel-glyph,.clr-Uranus .cel-glyph,.clr-Neptune .cel-glyph,.clr-Pluto .cel-glyph,.clr-Ascendant .cel-glyph,.clr-True-North-Node .cel-glyph,.clr-True-South-Node .cel-glyph,.clr-Lilith .cel-glyph,.clr-Chiron .cel-glyph{background:var(--planet-clr);color:#fff}
.planet-name.clr-Sun,.a-p1.clr-Sun,.a-p2.clr-Sun,.planet-name.clr-Moon,.a-p1.clr-Moon,.a-p2.clr-Moon,.planet-name.clr-Mercury,.a-p1.clr-Mercury,.a-p2.clr-Mercury,.planet-name.clr-Venus,.a-p1.clr-Venus,.a-p2.clr-Venus,.planet-name.clr-Mars,.a-p1.clr-Mars,.a-p2.clr-Mars,.planet-name.clr-Jupiter,.a-p1.clr-Jupiter,.a-p2.clr-Jupiter,.planet-name.clr-Saturn,.a-p1.clr-Saturn,.a-p2.clr-Saturn,.planet-name.clr-Uranus,.a-p1.clr-Uranus,.a-p2.clr-Uranus,.planet-name.clr-Neptune,.a-p1.clr-Neptune,.a-p2.clr-Neptune,.planet-name.clr-Pluto,.a-p1.clr-Pluto,.a-p2.clr-Pluto,.planet-name.clr-Ascendant,.a-p1.clr-Ascendant,.a-p2.clr-Ascendant,.planet-name.clr-True-North-Node,.a-p1.clr-True-North-Node,.a-p2.clr-True-North-Node,.planet-name.clr-True-South-Node,.a-p1.clr-True-South-Node,.a-p2.clr-True-South-Node,.planet-name.clr-Lilith,.a-p1.clr-Lilith,.a-p2.clr-Lilith,.planet-name.clr-Chiron,.a-p1.clr-Chiron,.a-p2.clr-Chiron{color:var(--planet-clr)}
/* Apply planet color to lord badges when clr-<Name> class is present on the badge */
.lord-badge[class*="clr-"]{background:var(--planet-clr);color:#fff;border-color:rgba(0,0,0,0.08)}
/* Column width strategy (desktop default) using clamp(min, preferred %, max) */
.master-table col.col-planet{width:clamp(250px,50%,430px);} /* MUCH wider planet column */
.master-table col.col-sign{width:clamp(56px,8%,95px);}  /* narrower sign */
.master-table col.col-deg{width:clamp(70px,10%,110px);} /* narrower degree */
.master-table col.col-house{width:clamp(30px,4%,40px);} /* very tight house */
.master-table col.col-full{width:clamp(95px,13%,150px);} /* slightly reduced full° */
.master-table col.col-lord{width:clamp(80px,12%,120px);} /* slightly reduced lord */
/* Sign color palette */
.sign-badge.sign-Aries{--sb-bg:#ffe8e1;--sb-fg:#b13705;--sb-border:#f9c2ae;}
.sign-badge.sign-Taurus{--sb-bg:#ebfae9;--sb-fg:#2f6612;--sb-border:#c2edb5;}
.sign-badge.sign-Gemini{--sb-bg:#e6f6ff;--sb-fg:#0f597c;--sb-border:#b6e5fb;}
.sign-badge.sign-Cancer{--sb-bg:#e9efff;--sb-fg:#1f3b84;--sb-border:#bdccfa;}
.sign-badge.sign-Leo{--sb-bg:#fff1d9;--sb-fg:#7f4d00;--sb-border:#ffd79c;}
.sign-badge.sign-Virgo{--sb-bg:#f1fff0;--sb-fg:#316531;--sb-border:#cceec9;}
.sign-badge.sign-Libra{--sb-bg:#f8e9ff;--sb-fg:#6f1990;--sb-border:#e7bcfb;}
.sign-badge.sign-Scorpio{--sb-bg:#fbe5ed;--sb-fg:#6d0f2d;--sb-border:#ecb3c6;}
.sign-badge.sign-Sagittarius{--sb-bg:#e9fff7;--sb-fg:#176246;--sb-border:#b7f0dd;}
.sign-badge.sign-Capricorn{--sb-bg:#ecf2f6;--sb-fg:#233d4a;--sb-border:#c0d0d8;}
.sign-badge.sign-Aquarius{--sb-bg:#e2f5ff;--sb-fg:#0d5476;--sb-border:#b1e3f6;}
.sign-badge.sign-Pisces{--sb-bg:#e3f2ff;--sb-fg:#1a4e71;--sb-border:#b5dcf4;} 
/* === Column width override (House a bit larger again) === */
/* Desktop distribution: Planet 20%, Sign 15%, Degree 15%, House 9%, Full° 19%, Lord 22% (total 100%) */
.master-table col.col-planet{width:20%!important;}
.master-table col.col-sign{width:15%!important;}
.master-table col.col-deg{width:15%!important;}
.master-table col.col-house{width:9%!important;}
.master-table col.col-full{width:19%!important;}
.master-table col.col-lord{width:22%!important;}
/* Ensure narrow columns can shrink without forcing table expansion */
.master-table td.col-sign,.master-table th.col-sign,
.master-table td.col-deg,.master-table th.col-deg,
.master-table td.col-house,.master-table th.col-house,
.master-table td.col-full,.master-table th.col-full,
.master-table td.col-lord,.master-table th.col-lord{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:1px;}
/* Let planet column wrap if needed */
.master-table td.col-planet{white-space:nowrap;}
@media (max-width:680px){
  /* Mobile distribution: Planet 22%, Sign 16%, Degree 16%, House 9%, Full° 17%, Lord 20% (total 100%) */
  .master-table col.col-planet{width:22%!important;}
  .master-table col.col-sign{width:16%!important;}
  .master-table col.col-deg{width:16%!important;}
  .master-table col.col-house{width:9%!important;}
  .master-table col.col-full{width:17%!important;}
  .master-table col.col-lord{width:20%!important;}
}
/* Mobile optimization: tighter layout, edge-to-edge usage */
@media (max-width:680px){
  .master-table-wrap{padding:10px 6px 14px;margin-left:-8px;margin-right:-8px;width:calc(100% + 16px);overflow-x:auto;}
  table.master-table{min-width:560px;font-size:.8rem;}
  .master-table thead th{font-size:.58rem;padding:8px 6px;letter-spacing:.11em;}
  .master-table tbody td{padding:8px 6px;font-size:.78rem;}
  /* Adjust clamp ranges smaller for mobile */
.master-table col.col-planet{width:clamp(220px,54%,300px);} 
.master-table col.col-sign{width:clamp(52px,8%,80px);}  
.master-table col.col-deg{width:clamp(62px,10%,90px);} 
  .master-table col.col-house{width:clamp(28px,6%,40px);} 
.master-table col.col-full{width:clamp(90px,14%,130px);} 
  .master-table col.col-lord{width:clamp(78px,12%,110px);} 
  .master-table td.col-sign,.master-table td.col-deg,.master-table td.col-house,.master-table td.col-full{padding-left:4px;padding-right:4px;text-align:center;}
  .master-table td.col-house .house-badge{display:inline-block;min-width:34px;text-align:center;padding:4px 6px;}
  .cel-glyph{font-size:1.15rem;width:1.4rem;margin-right:5px;}
  .house-badge,.sign-badge,.lord-badge{font-size:.58rem;padding:5px 7px;}
  .deg-badge{font-size:.62rem;}
}
@media (max-width:420px){
  .master-table-wrap{margin-left:-12px;margin-right:-12px;width:calc(100% + 24px);}
  table.master-table{min-width:600px;font-size:.78rem;}
  .master-table thead th{font-size:.54rem;padding:8px 6px;}
  .master-table tbody td{padding:8px 6px;font-size:.75rem;}
  .house-badge,.sign-badge,.lord-badge{font-size:.54rem;padding:4px 7px;}
  .deg-badge{font-size:.6rem;}
  .master-table th.col-full,.master-table td.col-full{display:none;} /* hide absolute degree col to save width */
}
/* Extreme narrow: abbreviate headers further if needed */
@media (max-width:360px){
  .master-table thead th{font-size:.5rem;}
  .master-table tbody td{font-size:.72rem;}
  .cel-glyph{font-size:1.05rem;width:1.3rem;}
  .house-badge,.sign-badge,.lord-badge{font-size:.5rem;}
}
@media(max-width:720px){table.master-table{font-size:.74rem;} .master-table thead th{font-size:.56rem;padding:8px 8px;} .master-table tbody td{padding:7px 8px;} .cel-glyph{font-size:1.05rem;width:1.3rem;margin-right:4px;}}
@media(max-width:720px){table.master-table{font-size:.72rem;} .master-table thead th{font-size:.55rem;padding:6px 8px;} .master-table tbody td{padding:6px 8px;} }
/* Raw JSON panel removed */
.fade-hide{opacity:0;transform:translateY(-8px);transition:.5s ease;pointer-events:none;}
.loading{display:inline-flex;gap:6px;align-items:center;font-size:.7rem;font-weight:600;color:#203378;margin-top:6px;}
.dot{width:6px;height:6px;background:#203378;border-radius:50%;animation:b 1.1s infinite ease-in-out;} .dot:nth-child(2){animation-delay:.18s;} .dot:nth-child(3){animation-delay:.36s;} @keyframes b{0%,80%,100%{transform:scale(0);}40%{transform:scale(1);} }
/* Mobile & responsive enhancements */
.chart-canvas{position:relative;width:100%;max-width:100%;overflow:hidden;}
.chart-canvas svg{width:100%!important;height:auto!important;max-width:100%;display:block;filter:drop-shadow(0 4px 10px rgba(30,46,90,.25));background:radial-gradient(circle at 50% 50%, #ffffff 0%, #f4f6ff 70%, #eef2ff 100%);border-radius:18px;padding:4px;}
.chart-box{backdrop-filter:blur(12px) saturate(135%);background:linear-gradient(145deg,#ffffffdd,#f4f8ffdd);border:1px solid #d0daf5;}
.panel{backdrop-filter:blur(10px) saturate(140%);background:linear-gradient(140deg,#ffffffee,#f5f7ffdd);}
.panel table{table-layout:fixed;word-wrap:break-word;}
.panel tbody td:first-child{font-weight:600;color:#28397a;}
.chart-full{width:100%;position:relative;margin:0 auto;display:flex;justify-content:center;align-items:center;padding:0;}
.chart-responsive-square{width:min(82vmin,760px);aspect-ratio:1/1;max-width:100%;}
/* Smaller on wider desktops */
@media (min-width:1100px){.chart-responsive-square{width:600px;}}
@media (min-width:1400px){.chart-responsive-square{width:620px;}}
@media (min-width:1600px){.chart-responsive-square{width:640px;}}
.chart-responsive-square svg{width:100%!important;height:100%!important;}
@media (min-width:1400px){.chart-responsive-square{width:700px;}}  /* place to change for desktop */
@media (max-width:820px){.chart-responsive-square{width:min(96vmin,100%);}}
@media (max-width:640px){.chart-responsive-square{width:100%;}}
/* Enlarged Aspect Grid host (second SVG) */
#aspectSvgHost{width:min(90vmin,780px);aspect-ratio:1/1;max-width:100%;}
@media (min-width:1100px){#aspectSvgHost{width:640px;}}
@media (min-width:1400px){#aspectSvgHost{width:700px;}}
@media (min-width:1600px){#aspectSvgHost{width:740px;}}
@media (max-width:820px){#aspectSvgHost{width:min(96vmin,100%);}}
@media (max-width:640px){#aspectSvgHost{width:100%!important;}}
@media (max-width:640px){
  .container{margin:12px auto 34px;padding:14px 14px 34px;}
  .main-title{font-size:1.9em;}
  .intro{font-size:.95em;}
  .card-body{padding:20px 18px 2px;}
  .btn{width:100%;}
  table{font-size:.72rem;}
  th{font-size:.58rem;}
  .panel h3{font-size:.72rem;}
}
@media (max-width:480px){
  .main-title{font-size:1.6em;}
  .nav a{padding:6px 10px;}
}
/* Removed toolbar/zoom controls as per request */
/* Horizontal scroll safety for tables */
.panel table{width:100%;}
.table-scroll{overflow:auto;max-height:320px;}
.table-scroll::-webkit-scrollbar{height:6px;width:6px;} .table-scroll::-webkit-scrollbar-track{background:#eef2ff;border-radius:4px;} .table-scroll::-webkit-scrollbar-thumb{background:#c2cff5;border-radius:4px;}
/* Profile summary header (user input meta) */
.profile-summary{position:relative;margin:4px 0 7px;padding:18px 20px 20px;border:1px solid #d4d9f3;border-radius:20px;background:linear-gradient(135deg,#ffffffee,#f6f2ffef 45%,#ecf3ffef);box-shadow:0 4px 14px -4px rgba(60,40,120,.25),0 2px 4px rgba(40,30,110,.18);overflow:hidden;}
.profile-summary:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(140,110,250,.14),transparent 60%),radial-gradient(circle at 15% 85%,rgba(70,150,255,.15),transparent 65%);pointer-events:none;}
.profile-summary:after{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#6d59ff,#4d8dff,#31c4ff);border-top-left-radius:20px;border-top-right-radius:20px;}
.ps-top{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:14px;}
.ps-name{font-size:1.55rem;font-weight:900;letter-spacing:.6px;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.15;display:flex;align-items:center;gap:10px;}
.ps-name:before{content:"🪐";font-size:1.3rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));}
.ps-gender{font-size:.75rem;font-weight:700;padding:6px 12px;border-radius:22px;background:linear-gradient(120deg,#e2e9ff,#d9d2ff);color:#27367a;display:inline-flex;align-items:center;gap:6px;border:1px solid #c6cff5;box-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.08em;text-transform:uppercase;}
.ps-gender[data-gender="Female"]{background:linear-gradient(120deg,#ffe3f5,#f5d5ff);color:#7a1f62;border-color:#f1bfe4;}
.ps-grid{display:flex;flex-wrap:wrap;gap:12px;}
.ps-chip{position:relative;flex:0 1 auto;display:inline-flex;align-items:center;gap:7px;background:linear-gradient(145deg,#ffffff,#f4f7ff 55%,#f1edff);padding:10px 15px 10px 16px;border-radius:18px;font-size:.68rem;font-weight:600;letter-spacing:.05em;color:#2a346d;border:1px solid #d9def3;box-shadow:0 3px 6px -2px rgba(50,40,120,.25),0 1px 2px rgba(0,0,0,.08);backdrop-filter:blur(3px);}
.ps-chip:before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;background:linear-gradient(140deg,#85a1ff,#ac95ff,#6dd6ff);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.4;}
.ps-chip strong{font-weight:800;color:#4630a0;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;}
.ps-chip[data-icon] strong:before{content:attr(data-icon);display:inline-block;margin-right:4px;font-weight:400;font-size:.8rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));}
.ps-edit-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:linear-gradient(90deg,#5a44e6,#3d78ff);color:#fff;font-size:.63rem;font-weight:700;letter-spacing:.08em;padding:9px 14px;border:none;border-radius:24px;cursor:pointer;box-shadow:0 3px 10px -3px rgba(40,50,140,.55),0 1px 3px rgba(0,0,0,.18);position:relative;overflow:hidden;}
.ps-edit-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#ffffff33,#ffffff05 40%,#ffffff33);mix-blend-mode:overlay;}
.ps-edit-btn span{display:inline-block;}
.ps-edit-btn:hover{transform:translateY(-2px);}
.ps-edit-btn:active{transform:translateY(0);}
.ps-edit-btn svg{width:14px;height:14px;fill:currentColor;}
.ps-loc{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:620px){
  .profile-summary{padding:16px 16px 18px;margin:2px 0 22px;}
  .ps-name{font-size:1.25rem;}
  .ps-chip{font-size:.6rem;padding:8px 11px;}
  .ps-chip strong{font-size:.64rem;}
  .ps-edit-btn{font-size:.58rem;padding:8px 12px;}
}
@media (max-width:420px){
  .ps-top{gap:10px;}
  .ps-name{flex:1 1 100%;}
  .ps-chip{padding:7px 9px;}
  .ps-edit-btn{order:3;margin-left:0;}
}
/* === Aspects list (replacing table) === */
.aspects-panel .aspect-intro{font-size:.9rem;line-height:1.5;color:#2b2f55;margin:6px 2px 16px;letter-spacing:.015em;font-weight:500;}
.aspects-panel .aspect-title{font-size:1.25rem!important;letter-spacing:.04em!important;text-transform:none!important;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-flex;align-items:center;gap:10px;font-weight:900;padding-bottom:4px;}
.aspects-panel .aspect-title:after{content:"";display:inline-block;height:7px;width:160px;background:linear-gradient(90deg,#6d59ff,#31c4ff);border-radius:8px;filter:blur(.4px);margin-left:6px;opacity:.7;}
.aspect-list{display:grid;grid-template-columns:1fr;gap:14px 16px;margin:6px 0 6px;padding:0;list-style:none;}
@media (min-width:680px){ .aspect-list{grid-template-columns:repeat(2,minmax(0,1fr));} }
.aspect-item{height:100%;}
.aspect-item{position:relative;padding:12px 14px 10px 18px;border:1px solid #d9def3;border-radius:16px;background:linear-gradient(145deg,#ffffff,#f5f7ff 55%,#f3edff);box-shadow:0 3px 10px -4px rgba(50,40,120,.22),0 1px 2px rgba(0,0,0,.06);overflow:hidden;--ac:#6d59ff;}
.aspect-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--ac),#7bbdff);border-top-left-radius:16px;border-bottom-left-radius:16px;filter:saturate(120%);} 
.aspect-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.9rem;font-weight:600;color:#252f66;}
.aspect-line .a-glyph{font-size:1rem;min-width:1.1rem;text-align:center;color:var(--ac);} 
.aspect-line .a-p1,.aspect-line .a-p2{font-weight:650;color:#222f75;}
.aspect-line .a-aspect-name{background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800;letter-spacing:.5px;text-transform:capitalize;}
.aspect-orb{margin-top:4px;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4a2fb4;background:rgba(110,70,220,.09);padding:4px 9px;border-radius:30px;display:inline-flex;align-items:center;gap:4px;}
.aspect-orb span{font-weight:700;}
.aspect-item[data-type="square"]{--ac:#ff6a4d;}
.aspect-item[data-type="opposition"]{--ac:#ff3d7d;}
.aspect-item[data-type="trine"]{--ac:#27b36a;}
.aspect-item[data-type="sextile"]{--ac:#1d94e3;}
.aspect-item[data-type="conjunction"]{--ac:#9458ff;}
.aspect-item[data-type="quincunx"]{--ac:#c7a212;}
.aspect-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(48,32,140,.35),0 3px 6px -2px rgba(40,28,110,.25);} 
@media (max-width:640px){ .aspect-line{font-size:.82rem;} .aspect-item{padding:10px 12px 9px 16px;} }
/* Aspect Tabs Enhancement */
.aspect-tabs{margin-top:6px;}
.aspect-tab-headers{display:flex;flex-wrap:nowrap;gap:10px;margin:0 0 10px;position:relative;padding:4px 4px 12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.aspect-tab-headers::-webkit-scrollbar{display:none;}
.aspect-tab-headers:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#d7dcf1,#cbd2ef,#d7dcf1);} 
.aspect-tab-headers button{flex:0 0 auto;border:1px solid #ccd5f2;background:linear-gradient(145deg,#ffffff,#f4f7ff 60%,#f1edff);color:#29316d;font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:9px 16px 9px 16px;border-radius:26px;cursor:pointer;position:relative;box-shadow:0 2px 5px rgba(40,30,110,.15),0 1px 0 rgba(255,255,255,.8) inset;transition:.28s;background-size:200% 120%;background-position:0% 50%;}
.aspect-tab-headers button:hover:not(.active){background-position:100% 50%;}
.aspect-tab-headers button.active{background:linear-gradient(92deg,#5a3fe2,#336ce4 60%,#1cc2ff);color:#fff;border-color:#4b3ec4;box-shadow:0 6px 16px -5px rgba(60,40,140,.55),0 2px 4px -1px rgba(20,20,70,.45);} 
.aspect-tab-headers button:focus-visible{outline:2px solid #5d39ff;outline-offset:2px;}
.aspect-tab-underline{position:absolute;bottom:0;height:3px;background:linear-gradient(90deg,#6d59ff,#31c4ff);border-radius:3px;transition:.4s cubic-bezier(.6,.2,.25,1);box-shadow:0 0 0 1px #ffffffaa,0 2px 6px -1px rgba(40,30,110,.45);} 
.aspect-tab-panels{position:relative;padding-top:4px;}
@media (max-width:640px){ .aspect-tab-headers{gap:8px;padding:4px 2px 10px;} }
@supports (backdrop-filter:blur(4px)){ .aspect-tab-headers{backdrop-filter:blur(6px) saturate(130%);} }
.aspect-tab-panels:before{content:"";position:absolute;left:0;right:0;top:0;height:10px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));border-top-left-radius:14px;border-top-right-radius:14px;}
.aspect-tab-panel{display:none;animation:fadeIn .35s ease;}
.aspect-tab-panel.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.aspect-count-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;background:#efe9ff;color:#4a34a4;font-size:.55rem;font-weight:800;padding:3px 7px;border-radius:14px;letter-spacing:.05em;border:1px solid #d9cef7;box-shadow:0 1px 2px rgba(0,0,0,.08);} 
.aspect-tab-headers button.active .aspect-count-badge{background:linear-gradient(120deg,#ffffff,#e8f5ff);color:#2c2f70;border-color:#b7c9f2;}
.aspect-empty{opacity:.6;list-style:none;padding:6px 2px;font-size:.7rem;}
/* Houses tab custom styling */
.house-cusp-list{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:12px;}
.house-cusp-item{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:11px 14px 11px 16px;border:1px solid #d9def3;border-radius:18px;background:linear-gradient(140deg,#ffffff,#f5f7ff 55%,#f3edff);box-shadow:0 3px 10px -4px rgba(50,40,120,.18),0 1px 2px rgba(0,0,0,.05);} 
.house-cusp-item:hover{box-shadow:0 10px 24px -12px rgba(48,32,140,.35);} 
.house-num{font-size:.6rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#4b2fb4;background:#efe9ff;padding:5px 10px 5px 11px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;position:relative;} 
.house-num:before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(120deg,#6d59ff,#31c4ff);box-shadow:0 0 0 3px #efe9ff;}
.house-sign-badge{font-size:.75rem;font-weight:700;letter-spacing:.04em;color:#253060;background:#e7f1ff;padding:6px 12px;border-radius:18px;display:inline-flex;align-items:center;gap:6px;border:1px solid #c8d8f5;}
.house-sign-glyph{font-size:1rem;line-height:1;color:#5a3bd6;filter:drop-shadow(0 1px 2px rgba(50,40,120,.25));}
.house-cusp-degree{font-size:.78rem;font-weight:800;letter-spacing:.02em;background:linear-gradient(90deg,#5c2edb,#2f6ddf,#1bc8ff);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap;}
.house-primary{display:inline-flex;align-items:center;gap:10px;flex:0 1 auto;}
.house-meta-wrap{display:flex;flex-direction:column;gap:2px;min-width:160px;}
@media (max-width:640px){ .house-cusp-item{gap:10px;padding:10px 14px;} .house-cusp-degree{font-size:.82rem;} }
/* Aspect legend (interactive filters) */
.aspect-legend{--legend-gap:10px;display:flex;flex-wrap:wrap;align-items:center;gap:var(--legend-gap);margin:8px 0 4px;padding:12px 16px;border:1px solid #d8dde8;border-radius:18px;background:
  linear-gradient(135deg,#ffffffee 0%,#f6f8fbf0 55%,#eef1f8f0 100%);
  backdrop-filter:blur(4px) saturate(140%);
  -webkit-backdrop-filter:blur(4px) saturate(140%);
  box-shadow:0 2px 4px -2px rgba(30,40,70,.25),0 1px 2px rgba(40,50,90,.12),0 0 0 1px #ffffff inset;
  font-size:.62rem;font-weight:700;letter-spacing:.08em;color:#2a3168;position:relative;overflow:hidden;
}
.aspect-legend:before{content:"";position:absolute;inset:0;background:
   radial-gradient(circle at 78% 18%,rgba(120,90,255,.10),transparent 62%),
   linear-gradient(120deg,rgba(120,140,255,.06),rgba(255,255,255,0) 70%),
   radial-gradient(circle at 12% 88%,rgba(40,150,255,.10),transparent 60%);
   pointer-events:none;mix-blend-mode:normal;}
.aspect-legend-title{font-size:.65rem;font-weight:800;margin-right:4px;display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;color:#4b2fb4;letter-spacing:.11em;}
/* Professional refined legend styling */
.aspect-legend label{--clr:#5a44e6;--clr-soft:rgba(90,68,230,.12);--txt:#1d2658;display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;background:#ffffff;border:1px solid var(--clr-soft);padding:6px 12px;border-radius:18px;font-size:.62rem;position:relative;line-height:1;transition:.25s ease;box-shadow:0 1px 2px rgba(20,20,40,.08);}
.aspect-legend label:before{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,var(--clr-soft),transparent 65%);opacity:.4;pointer-events:none;transition:.35s;mix-blend-mode:normal;}
.aspect-legend label input{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--clr);border-radius:5px;display:inline-grid;place-content:center;background:#fff;cursor:pointer;position:relative;transition:.25s;box-shadow:0 0 0 1px #ffffff inset,0 1px 2px rgba(10,10,30,.15);} 
.aspect-legend label input:focus-visible{outline:2px solid var(--clr);outline-offset:2px;}
.aspect-legend label input:checked{background:var(--clr);border-color:var(--clr);box-shadow:0 0 0 1px #ffffff55 inset,0 2px 4px -1px var(--clr);} 
.aspect-legend label input:checked:after{content:"";width:8px;height:8px;box-sizing:border-box;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) translateY(-1px);}
.aspect-legend .swatch{width:14px;height:14px;border-radius:4px;background:var(--clr);box-shadow:0 0 0 1px #ffffffaa inset,0 1px 2px rgba(0,0,0,.25);position:relative;}
.aspect-legend label.active{background:linear-gradient(120deg,#ffffff 0%,var(--clr-soft) 95%);border-color:var(--clr-soft);box-shadow:0 2px 5px -2px rgba(0,0,0,.18),0 0 0 1px #ffffff inset;}
.aspect-legend label.active:before{opacity:.55;}
.aspect-legend label.inactive{opacity:.45;filter:saturate(.55);}
.aspect-legend label:not(.inactive):hover{box-shadow:0 3px 10px -3px rgba(0,0,0,.25),0 0 0 1px var(--clr) inset;transform:translateY(-1px);} 
.aspect-legend label:not(.inactive):active{transform:translateY(0);box-shadow:0 1px 4px -2px rgba(0,0,0,.3),0 0 0 1px var(--clr) inset;}
.aspect-legend .legend-spacer{flex:0 0 100%;height:0;margin:0;padding:0;}
.legend-actions{display:inline-flex;gap:6px;margin-left:auto;flex-wrap:wrap;align-items:center;}
.legend-actions button{--btn-bg1:#5d46ff;--btn-bg2:#3c2fa8;--btn-border:#4a3bcf;--btn-shadow:rgba(75,60,195,.55);background:linear-gradient(135deg,var(--btn-bg1),var(--btn-bg2));border:1px solid var(--btn-border);padding:5px 10px;font-size:.55rem;line-height:1;letter-spacing:.07em;font-weight:700;border-radius:18px;cursor:pointer;color:#fff;box-shadow:0 2px 6px -2px var(--btn-shadow),0 0 0 1px #ffffff22 inset;transition:.28s cubic-bezier(.6,.2,.3,1);text-transform:uppercase;}
.legend-actions button.legend-btn-planet{--btn-bg1:#1692c9;--btn-bg2:#0d5e9a;--btn-border:#0d5e9a;--btn-shadow:rgba(15,90,150,.55);}
.legend-actions button.legend-btn-aspect{--btn-bg1:#7a3df2;--btn-bg2:#4b1fae;--btn-border:#5d2bc9;--btn-shadow:rgba(85,45,190,.55);}
.legend-actions button:hover{filter:brightness(1.08);box-shadow:0 4px 14px -4px var(--btn-shadow),0 0 0 1px var(--btn-border) inset;transform:translateY(-2px);}
.legend-actions button:active{transform:translateY(0);filter:brightness(.95);}
.planet-legend .solo-hint{font-size:.5rem;opacity:.65;font-weight:600;letter-spacing:.08em;margin-left:4px;}
@media (max-width:640px){ .aspect-legend{gap:8px;padding:8px 10px;} .aspect-legend label{padding:4px 7px;}  }
/* Planet legend reuses aspect legend styling */
.planet-legend{margin-top:6px;}
/* Slightly distinct tone for planet legend container */
.planet-legend{background:linear-gradient(135deg,#ffffffee 0%,#f4f9ff 60%,#eef6fb 100%);border-color:#d3e2f2;}
/* Collapsible Filter Panel (reverted simpler styling) */
.filter-panel-wrapper{margin:2px 0 2px;}
.filter-toggle-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:12px;background:linear-gradient(180deg,#fbfdff 0%,#f6f2ff 100%);font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px solid rgba(90,68,230,0.16);box-shadow:0 6px 18px -8px rgba(60,40,140,.18),0 2px 6px -4px rgba(30,40,90,.08);transition:all .22s ease}
.filter-toggle-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(60,40,140,.18),0 4px 12px -6px rgba(30,40,90,.12)}
.filter-toggle-btn:active{transform:translateY(0);}
.filter-toggle-btn .icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
/* Gradient text (dark blue / purple mix) for label while keeping icon accessible */
.filter-toggle-btn > span:not(.icon){background:linear-gradient(90deg,#2f6ddf,#6228d7);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.filter-toggle-btn svg{width:18px;height:18px;stroke:#5a37d9;fill:none}
.filter-toggle-btn .chevron{width:12px;height:12px;stroke:#5a37d9;stroke-width:2;transition:transform .3s ease}
.filter-toggle-btn.open .chevron{transform:rotate(180deg)}
/* Static aspect legend placed beside the Filters button */
.static-aspect-legend{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:linear-gradient(135deg,#ffffff,#fbfdff);border:1px solid #eef3ff;font-size:.78rem;color:#2b2f55}
.static-aspect-legend .leg-item{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:10px;background:transparent;color:inherit;font-weight:700}
/* Show static legend swatches next to filter button */
.static-aspect-legend .leg-swatch{width:12px;height:12px;border-radius:3px;display:inline-block;box-shadow:0 1px 2px rgba(0,0,0,.12);border:1px solid rgba(0,0,0,0.06)}
/* Legend: show swatch + label only (no glyph) */
.static-aspect-legend .leg-label{font-size:0.78rem;color:#2a3168;margin-left:8px;white-space:nowrap}
/* Screen-reader only helper */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Hide long labels on medium screens, but keep legend visible on mobile
   Mobile layout: legend shown first, filter button after (using order) */
@media (max-width:920px){ .static-aspect-legend .leg-label{display:none;} }
@media (max-width:720px){
  /* Prefer 3 items per row on mobile; items will wrap if space is constrained */
  .static-aspect-legend{display:flex!important;flex-wrap:wrap;order:-1;flex-basis:100%;gap:8px;padding:8px;border-radius:10px;margin-bottom:10px}
  .filter-legend-row{align-items:center}
  .filter-legend-row > #filterToggleBtn{order:1}
  .static-aspect-legend .leg-item{padding:6px 8px;flex:0 1 calc(33.333% - 10px);min-width:90px;display:flex;flex-direction:row;align-items:center;gap:8px}
  .static-aspect-legend .leg-swatch{display:inline-block}
  .static-aspect-legend .leg-label{display:inline-block;white-space:normal;margin-left:0;text-align:left}
}
.filter-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .4s ease,opacity .3s ease;display:block;}
.filter-panel.expanded{opacity:1;}
.filter-panel-inner{display:flex;flex-direction:column;gap:10px;}
@media (max-width:740px){ .filter-toggle-btn{font-size:.58rem;padding:8px 12px;} }
/* Overlay for custom drawn aspect lines (with planet filtering) */
.wheel-wrapper{position:relative;}
.wheel-wrapper #mainSvgHost{position:relative;z-index:1;width:100%;height:100%;}
#aspectOverlaySvg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;}
#aspectOverlaySvg line[data-aspect-type]{transition:opacity .25s ease;}
#aspectOverlaySvg line[data-hidden="true"]{opacity:0;}

/* ---- Site Footer (Astro Footer) ---- */
.astro-footer{background:#eaf6ff;color:#08306b;padding:16px 14px;font-size:14px;margin-top:28px;border-top:1px solid rgba(12,39,76,0.06);} 
.astro-footer-inner{max-width:940px;margin:0 auto;display:flex;flex-direction:column;gap:8px;align-items:center}
.astro-footer-text{margin:0;line-height:1.45;max-width:900px;color:#13355a}
.astro-footer-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;font-size:13px}
.astro-footer-links a{color:#0b5ed7;text-decoration:none;padding:4px 6px;border-radius:4px}
.astro-footer-links a:hover{text-decoration:underline;background:rgba(11,94,215,0.04)}
.astro-footer-copy{color:#0b3a63;font-size:13px;margin-top:4px}
@media(max-width:640px){ .astro-footer{padding:14px 10px;font-size:13px} .astro-footer-inner{gap:6px} }
/* Rich theme enhancements */
body{color:#1f2552;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;}
.container{background:linear-gradient(150deg,#ffffff 0%,#f7f9ff 48%,#f4f0ff 100%);} 
.card-body{background:linear-gradient(135deg,#eef2ff 0%,#f2f6ff 50%,#ece9ff 100%);} 
label{color:#1d2f84;letter-spacing:.4px;}
input[type=text],select{background:#ffffff!important;color:#1e2752;font-weight:600;box-shadow:0 1px 2px rgba(30,55,140,.15) inset,0 1px 3px rgba(20,30,60,.08);}
input[type=text]:focus,select:focus{box-shadow:0 0 0 3px #dde6ff,0 2px 6px -2px rgba(40,70,160,.35);}
.header{background:linear-gradient(90deg,#262f99,#214fcc 42%,#147ed9 72%,#0aa2e2);} 
.main-title{-webkit-text-stroke:1px transparent;filter:drop-shadow(0 3px 8px rgba(50,40,120,.22));}
.panel h3{color:#452fb6;letter-spacing:.12em;}
table.master-table thead th{background:linear-gradient(100deg,#4739c0,#6034c8 50%,#2e5ec7);} 
.master-table tbody tr:hover{background:linear-gradient(90deg,#ece8ff,#e5f1ff);}
.ps-name{filter:drop-shadow(0 4px 10px rgba(60,40,140,.25));}
.btn{background:linear-gradient(90deg,#0924b5,#5f00c9);} .btn:hover{background:linear-gradient(90deg,#0b2cc6,#6f09d9);} 
.toggle-group{background:linear-gradient(120deg,#ffffff,#eef2ff);} .toggle-btn.active{background:linear-gradient(90deg,#4262ff,#7a35e2);} 
.profile-summary{background:linear-gradient(135deg,#ffffff,#f5f2ff   50%,#eef6ff);} 
.ps-chip strong{color:#3b2597;} .ps-chip{background:linear-gradient(145deg,#ffffff,#f3f6ff 55%,#f3edff);} 
/* Slight glyph enhancement */
.cel-glyph{background:radial-gradient(circle at 38% 30%,#ffffff 5%,#e5ddff 92%);} 

/* ===== Unified Theme Overrides (consolidate and enhance) ===== */
/* Tokens: keep existing values but expose common primitives */
:root{
  --surface: #ffffff;
  --surface-alt: #f7f9ff;
  --surface-glow: #f4f0ff;
  --border-soft: #e1e8fb;
  --shadow-soft: 0 6px 18px rgba(30,58,138,.12);
  --radius-lg: 18px;
}

/* Unify page surface across pages (.container and <main>) */
.container, main{
  max-width: 940px;
  background: linear-gradient(150deg,var(--surface) 0%,var(--surface-alt) 48%,var(--surface-glow) 100%);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

/* Improved sticky header with subtle blur and elevation */
.header{
  position: sticky;
  top: 0;
  z-index: 1200;
  backdrop-filter: saturate(130%) blur(8px);
  -webkit-backdrop-filter: saturate(130%) blur(8px);
  background: linear-gradient(90deg,#262f99ee,#214fccee 42%,#147ed9ee 72%,#0aa2e2ee);
  box-shadow: 0 8px 18px -12px rgba(20,30,80,.35);
}
.header{transition:transform .24s ease, opacity .24s ease;}
.header--hidden{transform:translateY(-100%);opacity:.02;}
.header--visible{transform:translateY(0);opacity:1;}
.logo{
  letter-spacing: .2px;
  text-decoration: none;
}
.nav a{
  border: 1px solid transparent;
}
.nav a:hover{
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.14);
}
.nav a[aria-current="page"], .nav a.active{
  background: rgba(255,255,255,.24);
  border-color: rgba(255,255,255,.22);
}
.mobile-nav{
  box-shadow: -14px 0 30px rgba(20,30,80,.25);
}
.mobile-nav{position:fixed;top:0;right:-80%;width:80%;height:100%;z-index:2000;border-left:1px solid rgba(255,255,255,.12);backdrop-filter:saturate(130%) blur(10px);-webkit-backdrop-filter:saturate(130%) blur(10px);padding:56px 18px 20px;}
.mobile-nav.active{right:0;} 
.close-btn{position:absolute;top:14px;right:16px;font-size:28px;color:#ffd6e8;cursor:pointer;font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.25);line-height:1;}
.close-btn:hover{transform:scale(1.06);} 
.mobile-nav::after{content:"";position:absolute;top:0;left:-100vw;height:100%;width:100vw;background:rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s ease;} 
.mobile-nav.active::after{opacity:1;pointer-events:auto;} 

/* Beautiful right drawer item design */
.mobile-nav a{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  margin:4px 0;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 2px 6px rgba(0,0,0,.12) inset, 0 4px 12px -6px rgba(0,0,0,.25);
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.mobile-nav a:hover{background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(255,255,255,.12));transform:translateX(4px);} 
.mobile-nav a::after{
  content:"›";
  margin-left:auto;
  opacity:.85;
}
.mobile-nav .group-divider{margin:12px 0;border-top:1px dashed rgba(255,255,255,.18);} 


/* Panels: normalize subtle glassy look */
.panel{
  backdrop-filter: blur(8px) saturate(135%);
  -webkit-backdrop-filter: blur(8px) saturate(135%);
  background: linear-gradient(140deg,#ffffffee,#f5f7ffdd);
  border: 1px solid #e1e8fb;
}
.panel h3{
  letter-spacing: .12em;
  color: #452fb6;
}

/* Tables: single, consistent header style */
table.master-table{font-size:.84rem;}
table.master-table thead th{
  background: linear-gradient(100deg,#4739c0,#6034c8 50%,#2e5ec7);
  padding: 10px 12px;
  font-size: .62rem;
  letter-spacing: .12em;
}
table.master-table tbody td{
  padding: 10px 12px;
  font-size: .8rem;
}

/* Important: keep Full° column visible even on small screens */
@media (max-width: 420px){
  .master-table th.col-full,.master-table td.col-full{display: table-cell !important;}
}

/* Refined h1 gradient used across pages */
h1{
  filter: drop-shadow(0 3px 8px rgba(50,40,120,.18));
}

/* ===== Today (Current Positions) — Additional Styles appended ===== */
/* Extra CSS variables used by today pages */
:root{
  --grad-a:#1c3ea6; --grad-b:#6a28d9; --panel-bg:#ffffff; --panel-border:#d9e1f5; --ink:#1d2744; --accent:#562fd9;
  font-variant-numeric:tabular-nums;
}

/* Light airy multi-layer background (used when .cosmic-bg exists) */
.cosmic-bg{position:fixed;inset:0;z-index:-3;overflow:hidden;pointer-events:none;background:
  radial-gradient(circle at 16% 28%,rgba(150,120,255,.28),transparent 62%),
  radial-gradient(circle at 84% 68%,rgba(90,200,255,.25),transparent 66%),
  radial-gradient(circle at 54% 78%,rgba(255,200,150,.22),transparent 72%),
  linear-gradient(115deg,#f2f7ff,#f8f2ff 55%,#f3fbff);
  filter:saturate(108%) brightness(104%);
  animation:pastelShift 38s linear infinite;
}
@keyframes pastelShift{0%{filter:hue-rotate(0deg) saturate(108%) brightness(104%);}50%{filter:hue-rotate(18deg) saturate(112%) brightness(103%);}100%{filter:hue-rotate(0deg) saturate(108%) brightness(104%);}}
.cosmic-bg:before{content:"";position:absolute;inset:-18%;background:
  radial-gradient(circle at 32% 38%,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 55%),
  radial-gradient(circle at 72% 60%,rgba(255,255,255,.45) 0%,rgba(255,255,255,0) 60%);
  filter:blur(42px);opacity:.65;animation:floatGlow 28s ease-in-out infinite alternate;mix-blend-mode:normal;}
@keyframes floatGlow{0%{transform:translate3d(0,0,0) scale(1);}50%{transform:translate3d(26px,-20px,0) scale(1.06);}100%{transform:translate3d(-16px,24px,0) scale(1.02);}}
.cosmic-bg:after{content:"";position:absolute;inset:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAQAAACBObUaAAAAPElEQVRIiWNgYGD4z0AFwDiqKMZQKyBmYFIMn2E0GqYBGE0Gk2E0Gk0Qy2A0TQaTYTQaDQkGg0JBoNAACg1BhA1dDsUAAAAAElFTkSuQmCC) repeat;opacity:.06;mix-blend-mode:overlay;animation:grain 9s steps(8) infinite;}
@keyframes grain{0%,100%{transform:translate(0,0);}25%{transform:translate(-2%,1%);}50%{transform:translate(2%,-1%);}75%{transform:translate(-1%,2%);}}
#starfield{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1;}

/* Today page container (uses <main>) */
main{max-width:940px;margin:26px auto 70px;padding:16px 18px 26px;border-radius:18px;background:linear-gradient(150deg,#ffffff 0%,#f7f9ff 48%,#f4f0ff 100%);border:1px solid #e1e8fb;box-shadow:0 6px 18px rgba(30,58,138,.12);} 
@media (max-width:640px){ main{margin:12px auto 50px;padding:12px 12px 20px;border-radius:14px;} }

/* Today heading + intro */
h1{font-size:2.05rem;line-height:1.12;background:linear-gradient(90deg,#6f2bd9 10%,#3d7bff 55%,#07b8ff 90%);background-size:180% 180%;animation:headGrad 7s ease-in-out infinite;-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:900;letter-spacing:.5px;margin-bottom:10px;text-align:center;}
@keyframes headGrad{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.lead{font-size:1.02rem;margin:4px 0 14px;color:#2d3563;font-weight:500;max-width:840px;}
.meta-bar{display:flex;flex-wrap:wrap;gap:10px;font-size:.62rem;font-weight:700;letter-spacing:.09em;color:#4c33b4;margin-bottom:18px;}
.meta-chip{background:#f5f1ff;border:1px solid #e2dafb;padding:6px 10px;border-radius:14px;display:inline-flex;align-items:center;gap:6px;}
.live-dot{width:8px;height:8px;border-radius:50%;background:#ff2457;box-shadow:0 0 0 4px rgba(255,36,87,.25);animation:pulse 1.8s infinite;}
@keyframes pulse{0%{transform:scale(.9);opacity:.85;}70%{transform:scale(1);opacity:1;}100%{transform:scale(.9);opacity:.85;}}

/* Subtle highlight for geolocation CTA */
#geoUseBtn{background:linear-gradient(95deg,#5a29d9,#236ede,#19b9ff);color:#fff;border-color:#4b36c9;font-weight:800;cursor:pointer;box-shadow:0 6px 16px -6px rgba(40,40,120,.45);} 
#geoUseBtn:hover{transform:translateY(-1px);} 

/* Results wrapper spacing — today pages only (scoped under main) */
main .results-wrapper{gap:38px;}

/* Small table tweaks for today page */
.col-deg{text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Roboto Mono,monospace}
.col-full{text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Roboto Mono,monospace}
.planet-cell{display:inline-flex;align-items:center;gap:10px}
.planet-name{font-weight:800}
.a-p1,.a-p2{font-weight:800}

/* Sign badge sub-elements used in today page tables */
.sign-badge .sign-glyph{font-size:1rem;line-height:1;display:inline-flex;min-width:1.15rem;justify-content:center}
.sign-badge .sign-text{font-weight:800;margin-left:4px}

/* Degree chip look */
.deg-badge{background:#fff;border:1px solid #d9e3f7;padding:2px 6px;border-radius:12px;}
.deg-badge .deg-val{font-size:.9em;font-weight:700;color:#1f2660;}
.deg-badge .min-val{font-size:.9em;font-weight:700;color:#452c86;}

/* Inline houses row (used in some aspect tabs) */
.house-cusp-inline{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-start;padding:6px 4px;}
.house-inline-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:12px;background:linear-gradient(135deg,#ffffff,#f6f8ff);border:1px solid #e0e8f8;font-weight:700;font-size:.74rem;color:#243257;box-shadow:0 2px 8px rgba(40,40,120,.06);} 
.house-inline-item .house-num{font-size:.7rem;font-weight:800;color:#16224a;min-width:72px;}
.house-inline-item .house-cusp-degree{font-size:.66rem;padding:4px 8px;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#eef4ff);border:1px solid #e6eefc;color:#26335f;font-weight:800;}
@media (max-width:680px){ .house-cusp-inline{justify-content:space-between;} .house-inline-item{flex:1 1 calc(50% - 12px);} }

/* CTA under the lead */
.cta-wrap{display:flex;justify-content:center;align-items:center;margin:10px 0 16px;}
.cta-button{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(95deg,#5a29d9,#236ede,#19b9ff);color:#fff;font-weight:800;letter-spacing:.05em;padding:10px 16px;border-radius:14px;border:1px solid #4b36c9;text-decoration:none;box-shadow:0 6px 16px -6px rgba(40,40,120,.38);transition:transform .15s ease, box-shadow .15s ease;}
.cta-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(40,40,120,.55);} 
.cta-button:focus-visible{outline:2px solid #1bc8ff;outline-offset:2px;border-color:#1bc8ff;}

/* Loader overlay (used while fetching today data) */
.result-wrap{position:relative;min-height:260px;}
.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(255,255,255,.65);backdrop-filter:blur(3px);border-radius:18px;z-index:5;}
.loading-overlay[hidden]{display:none !important;}
.spinner{width:46px;height:46px;border-radius:50%;border:3px solid #dfe6fb;border-top-color:#5a29d9;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.loading-text{font-size:.74rem;font-weight:800;letter-spacing:.1em;color:#3c3391;text-transform:uppercase;}

/* Mobile table adjustments for city picker controls */
#mbCitySelect{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;}
#mbCitySelect input,#mbCitySelect select{flex:0 0 auto;min-width:auto;width:auto;}
@media (max-width:768px){
  #mbCitySelect{display:flex;flex-wrap:wrap;}
  #mbCitySelect input,#mbCitySelect select{flex:1 1 48%;min-width:0;}
}
@media (max-width:480px){
  #mbCitySelect input,#mbCitySelect select{flex:1 1 100%;width:100%;}
}

/* Language dropdown tweaks for mobile on today page */
@media (max-width:768px){
  .header{gap:10px}
  #hamburger{order:3}
  .lang-dropdown{order:2;margin-left:auto}
  .lang-btn{padding:6px 10px}
  .lang-dropdown .lang-list{position:fixed;right:12px;top:64px;max-height:60vh;overflow:auto}
}

