.sv-app [hidden], .sv-modal[hidden]{display:none!important}
:root{
 --sv-cream:#fffaf0;--sv-cream2:#f6eddc;--sv-maroon:#7a1421;--sv-maroon2:#5a0c16;
 --sv-green:#126b31;--sv-green2:#084c21;--sv-gold:#c99b2f;--sv-gold2:#e4bf68;
 --sv-ink:#30231d;--sv-muted:#6a5e54;--sv-line:#eadfcd;--sv-white:#fff;
 --sv-shadow:0 12px 30px rgba(68,45,19,.10);--sv-radius:18px
}
.sv-app{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--sv-ink);background:linear-gradient(180deg,#fffdf8,#fffaf0);min-height:70vh}
.sv-app *{box-sizing:border-box}.sv-app a{text-decoration:none}.sv-topbar{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:12px 24px;background:#fffdf8;border-bottom:1px solid var(--sv-line);position:relative;z-index:5}
.sv-brand{display:flex;align-items:center;gap:14px;color:inherit}.sv-brand img{width:88px;height:64px;object-fit:contain}.sv-brand>div{border-left:1px solid #d8c9ad;padding-left:14px}.sv-brand-title{font-family:Georgia,serif;font-size:30px;font-weight:800;color:var(--sv-maroon)}.sv-brand-sub{font-size:12px;color:var(--sv-green);font-weight:800;margin-top:4px}
.sv-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sv-nav a{color:var(--sv-ink);padding:10px 12px;border-radius:10px;font-weight:800;font-size:14px}.sv-nav a.active{background:#edf6df;color:var(--sv-green)}.sv-nav a.outline{border:1px solid var(--sv-green);color:var(--sv-green)}
.sv-hero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;padding:27px 36px;color:#fff;border-bottom:4px solid var(--sv-gold);background:radial-gradient(circle at 78% 50%,rgba(228,191,104,.23),transparent 24%),linear-gradient(110deg,var(--sv-maroon2),var(--sv-maroon) 49%,#2a542d)}
.sv-hero h1,.sv-pro-hero h1{font-family:Georgia,serif;color:#ffe8a8;margin:0 0 8px;font-size:44px}.sv-hero p{margin:0;font-size:16px;max-width:900px;color:#fff9ec}.sv-consult-pill{display:flex;gap:10px;align-items:center;max-width:380px;background:linear-gradient(180deg,#fff5c7,#efd077);color:#3a2518;border:1px solid #dfbc55;border-radius:18px;padding:14px 17px;box-shadow:var(--sv-shadow)}
.sv-page{max-width:1580px;margin:0 auto;padding:18px 20px 34px}.sv-card{background:rgba(255,255,255,.93);border:1px solid var(--sv-line);border-radius:var(--sv-radius);box-shadow:var(--sv-shadow)}.sv-birth-card{padding:18px 20px;margin-bottom:16px}.sv-section-heading{font-family:Georgia,serif;color:var(--sv-green);font-size:24px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:9px}.sv-section-heading .step{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--sv-gold);color:#fff;font-family:Inter,sans-serif;font-size:15px}
.sv-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.35fr auto;gap:13px;align-items:end}.sv-app label{display:block}.sv-app label span{display:block;font-size:13px;font-weight:800;margin-bottom:6px}.sv-app input,.sv-app textarea,.sv-app select{width:100%;border:1px solid #cfd8e0;background:#fff;border-radius:10px;padding:10px 12px;min-height:44px;font:inherit;color:#251f1b}.sv-app input:focus,.sv-app textarea:focus{outline:none;border-color:var(--sv-green);box-shadow:0 0 0 3px rgba(18,107,49,.10)}
.sv-primary{display:inline-block;border:0;border-radius:10px;background:linear-gradient(180deg,var(--sv-green),var(--sv-green2));color:#fff!important;padding:12px 17px;font-weight:900;text-align:center;cursor:pointer}.sv-secondary-button{display:inline-block;border:1px solid var(--sv-green);border-radius:10px;color:var(--sv-green)!important;background:#fff;padding:10px 14px;font-weight:900;text-align:center}
.sv-location-field{position:relative}.sv-location-results{position:absolute;top:73px;left:0;right:0;max-height:290px;overflow:auto;background:#fff;border:1px solid #d7cec0;border-radius:10px;box-shadow:var(--sv-shadow);z-index:20}.sv-location-option{padding:10px 12px;border-bottom:1px solid #eee7db;cursor:pointer}.sv-location-option:hover{background:#f8f3e7}.sv-location-option strong{display:block}.sv-location-option small{color:var(--sv-muted)}.sv-selected-location{margin-top:12px;padding:9px 12px;border-radius:9px;background:#f1f8e8;color:#315337;font-size:13px}
.sv-notice{border-radius:12px;padding:13px 15px;margin-bottom:16px}.sv-notice.warning{background:#fff4cf;border:1px solid #ebce69;color:#614717}.sv-results{overflow:hidden}.sv-results-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px 11px}.sv-results-head h2{font-family:Georgia,serif;margin:0;font-size:27px}.sv-result-birth{color:var(--sv-muted);margin-top:7px}.sv-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#5e554d}
.sv-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 14px;border-bottom:1px solid var(--sv-line)}.sv-tabs button{border:1px solid #e4d9c4;background:#fffaf0;border-radius:10px;padding:10px 13px;font-weight:900;color:#3c332c;cursor:pointer}.sv-tabs button.active{background:linear-gradient(180deg,var(--sv-green),var(--sv-green2));border-color:var(--sv-green);color:#fff}
.sv-tab-panel{display:none;padding:14px}.sv-tab-panel.active{display:block}.sv-overview-grid{display:grid;grid-template-columns:1fr 1fr 1fr 300px;gap:14px}.sv-chart-card,.sv-save-card,.sv-info-card,.sv-booking-card,.sv-detail-panel{border:1px solid #eadcc5;border-radius:14px;background:#fffdf8;overflow:hidden}.sv-chart-card h3{margin:0;background:linear-gradient(180deg,var(--sv-green),var(--sv-green2));color:#fff;text-align:center;padding:9px;font-size:16px}.sv-chart-canvas{min-height:260px;display:grid;place-items:center;color:#857567;background:linear-gradient(135deg,#fffdf8,#fff8e8)}
.sv-save-card{padding:18px;background:linear-gradient(180deg,#f4ffe4,#fff8df)}.sv-save-card h3,.sv-info-card h3,.sv-booking-card h3,.sv-detail-panel h3{font-family:Georgia,serif}.sv-save-card h3{font-size:27px;margin:0 0 8px}.sv-save-card p{line-height:1.45}.sv-save-card ul{padding-left:20px;line-height:1.8}.sv-save-card .sv-secondary-button{display:block;margin-top:8px}
.sv-lower-grid{display:grid;grid-template-columns:1fr 1fr 1fr 300px;gap:14px;margin-top:14px}.sv-info-card h3{margin:0;padding:10px 13px;color:var(--sv-green);background:#fffaf0;border-bottom:1px solid var(--sv-line);font-size:18px}.sv-info-card>div{padding:13px;min-height:150px}.sv-booking-card{padding:17px;background:radial-gradient(circle at 100% 100%,rgba(201,155,47,.18),transparent 36%),linear-gradient(180deg,#fff8dc,#fff2c9)}.sv-booking-card h3{color:var(--sv-maroon);font-size:22px;margin:8px 0}.sv-booking-photo{width:100%;max-height:145px;object-fit:cover;border-radius:11px}.sv-free-strip{display:grid;grid-template-columns:1.25fr repeat(5,1fr);gap:10px;margin-top:14px;padding:12px 15px;border:1px solid #e8dcc4;border-radius:14px;background:linear-gradient(180deg,#fffdf3,#fff7dc)}.sv-free-strip>*{padding:8px 10px;border-left:1px solid #e6d9c0}.sv-free-strip strong{color:var(--sv-green);font-family:Georgia,serif;font-size:17px;border-left:0}
.sv-detail-panel{padding:20px}.sv-detail-panel h3{color:var(--sv-maroon);font-size:24px;margin:0 0 10px}.sv-modal{position:fixed;inset:0;background:rgba(27,20,15,.58);z-index:99999;display:none;place-items:center;padding:18px}.sv-modal-card{width:min(480px,100%);background:#fff;border-radius:18px;padding:24px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.28)}.sv-modal-close{position:absolute;right:13px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer}.sv-modal-card label{margin:12px 0}.sv-form-status{margin-top:12px;font-weight:700}.sv-form-status.error{color:#a52424}.sv-form-status.success{color:var(--sv-green)}
.sv-login-card{max-width:620px;margin:60px auto;padding:26px}.sv-login-card h2{font-family:Georgia,serif;color:var(--sv-maroon);font-size:30px}.sv-login-card label{margin:14px 0}.sv-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.sv-dashboard-head h2{font-family:Georgia,serif;margin:0}.sv-chart-list-card{padding:20px;margin-top:16px}.sv-chart-list{display:grid;gap:10px}.sv-chart-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--sv-line);border-radius:12px}.sv-chart-row small{color:var(--sv-muted)}
.sv-pro-hero{padding:38px 30px;background:linear-gradient(110deg,var(--sv-maroon2),var(--sv-maroon) 58%,#2e522d);color:#fff;text-align:center}.sv-pro-hero h1{font-size:42px}.sv-pro-hero p{max-width:900px;margin:0 auto;color:#fff5e8;font-size:17px}.sv-pro-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:16px}.sv-pro-features,.sv-apply-card{padding:22px}.sv-pro-features h2,.sv-apply-card h2{font-family:Georgia,serif;color:var(--sv-maroon)}.sv-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sv-feature-grid>div{padding:15px;border:1px solid var(--sv-line);border-radius:12px;background:#fffaf1}.sv-feature-grid strong{display:block;color:var(--sv-green);margin-bottom:6px}.sv-feature-grid span{font-size:13px;color:var(--sv-muted);line-height:1.45}.sv-apply-card label{margin:12px 0}.sv-muted{color:var(--sv-muted)}
@media(max-width:1180px){.sv-overview-grid,.sv-lower-grid{grid-template-columns:1fr 1fr}.sv-form-grid{grid-template-columns:1fr 1fr}.sv-free-strip{grid-template-columns:1fr 1fr 1fr}.sv-pro-grid{grid-template-columns:1fr}}
@media(max-width:760px){.sv-topbar{padding:10px 13px}.sv-brand img{width:66px;height:54px}.sv-brand-title{font-size:23px}.sv-nav{display:none}.sv-hero{grid-template-columns:1fr;padding:22px 16px}.sv-hero h1{font-size:34px}.sv-consult-pill{max-width:none}.sv-page{padding:12px}.sv-form-grid,.sv-overview-grid,.sv-lower-grid,.sv-free-strip,.sv-feature-grid{grid-template-columns:1fr}.sv-results-head,.sv-dashboard-head{flex-direction:column;align-items:flex-start}.sv-free-strip>*{border-left:0;border-top:1px solid #e6d9c0}.sv-free-strip strong{border-top:0}.sv-chart-row{grid-template-columns:1fr}}

.sv-demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 18px}.sv-demo-grid img{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid var(--sv-line)}

.sv-save-action{width:100%;font-size:18px;letter-spacing:.02em;padding:14px 18px;box-shadow:0 8px 18px rgba(18,107,49,.22)}
.sv-modal-close{z-index:3;width:38px;height:38px;display:grid;place-items:center;border-radius:50%}
.sv-modal-close:hover{background:#f3eee6}
body.sv-astro-shell{margin:0;background:#fffaf0}
body.sv-astro-shell .sv-app{min-height:100vh}

/* v0.1.2: modal is closed by default and opens only after SAVE YOUR CHART. */
#sv-auth-modal{display:none!important}
#sv-auth-modal.is-open{display:grid!important}
#sv-auth-modal[aria-hidden="true"]{display:none!important}
/* v0.2.0 calculated chart rendering */
.sv-north-chart{width:100%;height:auto;display:block;min-height:260px;background:#fffdf7}
.sv-table-wrap{overflow:auto;border:1px solid var(--sv-line);border-radius:12px;background:#fff}
.sv-data-table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px}
.sv-data-table th{background:#f8f0df;color:#5a0c16;text-align:left;padding:10px 11px;border-bottom:1px solid var(--sv-line);white-space:nowrap}
.sv-data-table td{padding:9px 11px;border-bottom:1px solid #eee5d7;white-space:nowrap}
.sv-data-table tbody tr:nth-child(even){background:#fffaf3}
.sv-mini-table{width:100%;border-collapse:collapse;font-size:13px}
.sv-mini-table th,.sv-mini-table td{padding:8px 9px;border-bottom:1px solid #eee5d7;text-align:left;vertical-align:top}
.sv-mini-table th{width:40%;color:#5b3d2b;background:#fffaf2}
.sv-current-dasha{margin:10px 0 0;padding:9px 10px;border-radius:9px;background:#fff0a8;color:#3f301c;font-weight:900}
.sv-inline-summary{padding:12px 14px;margin-bottom:12px;border-radius:10px;background:#f3f8e8;color:#244d2e}
.sv-pending{padding:16px;border:1px solid #e6cc75;border-radius:12px;background:#fff7d7;color:#624817}
.sv-json{white-space:pre-wrap;overflow:auto;max-height:520px;background:#fffaf2;border:1px solid var(--sv-line);border-radius:10px;padding:14px;font-size:12px}

/* v0.2.1 chart-layout correction */
.sv-overview-grid{align-items:start}
.sv-chart-card{align-self:start;height:auto}
.sv-chart-canvas{min-height:0!important;display:block!important}
.sv-north-chart{min-height:0!important;width:100%;height:auto;aspect-ratio:4/3}
.sv-save-card{align-self:start;padding:14px 16px;font-size:13px}
.sv-save-card h3{font-size:22px;margin:0 0 6px}
.sv-save-card p{margin:0 0 8px;line-height:1.35}
.sv-save-card ul{margin:6px 0 10px;padding-left:18px;line-height:1.45}
.sv-save-card li{margin:0 0 4px}
.sv-save-action{font-size:15px;padding:11px 14px}
