:root{--primary:#b72c5b;--primary-dark:#8d1e45;--secondary:#703b72;--ink:#2d2430;--muted:#756b77;--line:#eadde3;--surface:#fff;--bg:#fff8fa;--ok:#19724b;--bad:#b42318;--shadow:0 18px 50px rgba(77,32,54,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.container{width:min(1160px,calc(100% - 32px));margin:auto}.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.header-inner{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--secondary));display:grid;place-items:center;color:#fff;font:bold 22px Georgia}.brand b,.brand small{display:block}.brand b{font-size:20px}.brand small{color:var(--muted);font-size:11px}.member-chip{display:flex;gap:10px;align-items:center;background:#fdf0f4;border:1px solid #f4d5df;border-radius:30px;padding:7px 14px}.member-chip b{color:var(--primary);font-size:12px}.hero{padding:58px 0;background:radial-gradient(circle at 82% 20%,rgba(183,44,91,.12),transparent 24%),linear-gradient(135deg,#fff,#fff4f8)}.hero-grid{display:grid;grid-template-columns:1fr 310px;gap:60px;align-items:center}.eyebrow{margin:0 0 7px;color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.hero h1{font:700 clamp(35px,5vw,59px)/1.08 Georgia,serif;max-width:780px;margin:0 0 16px;color:#3b2130}.hero p{font-size:17px;color:var(--muted);max-width:700px}.quota-card,.panel,.report-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px}.quota-card{padding:25px}.quota-card span,.quota-card small{display:block;color:var(--muted)}.quota-card strong{display:block;color:var(--primary);font-size:54px;line-height:1.1}.quota-progress{display:block;width:100%;height:8px;margin-top:16px;border:0;border-radius:10px;overflow:hidden;background:#f3e8ed;appearance:none}.quota-progress::-webkit-progress-bar{background:#f3e8ed;border-radius:10px}.quota-progress::-webkit-progress-value{background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:10px}.quota-progress::-moz-progress-bar{background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:10px}.content-space{padding:42px 0 70px}.panel{padding:30px}.form-heading,.report-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.form-heading h2,.report-heading h2{font:700 31px/1.2 Georgia,serif;margin:0}.secure-note{color:var(--ok);font-weight:700;font-size:13px}.person-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:25px 0}fieldset{border:1px solid var(--line);border-radius:17px;padding:21px;margin:0}legend{color:var(--secondary);font-weight:800;padding:0 8px}label{display:block;font-weight:700;margin-bottom:14px}input,select{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid #d8c7cf;border-radius:10px;background:#fff;color:var(--ink);font:inherit}input:focus,select:focus{outline:3px solid rgba(183,44,91,.14);border-color:var(--primary)}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{display:inline-flex;border:0;border-radius:11px;padding:11px 18px;text-decoration:none;font-weight:800;cursor:pointer}.btn.primary{color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary))}.btn.large{font-size:16px;padding:14px 23px}.btn:disabled{opacity:.5;cursor:not-allowed}.alert{padding:13px 16px;border-radius:11px;margin:0 0 14px}.alert.error{background:#fff0ef;color:#8b1e17;border:1px solid #f4c7c3}.report-card{margin-top:35px;padding:30px}.report-actions{display:flex;justify-content:flex-end;margin:0 0 16px}.report-actions .btn{font-size:15px}.report-heading{border-bottom:1px solid var(--line);padding-bottom:22px}.report-heading p{margin:5px 0;color:var(--muted)}.score{text-align:right}.score strong,.score span{display:block}.score strong{font-size:43px;color:var(--primary)}.score span{font-weight:800}.birth-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.birth-summary>div{background:#fff8fa;border-radius:13px;padding:16px}.birth-summary strong,.birth-summary span{display:block}.birth-summary span{color:var(--muted);font-size:13px}.charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.chart-wrap{min-width:0}.chart-wrap h3{text-align:center;margin:0 0 12px;color:var(--secondary);font-size:17px}.sl-chart{position:relative;width:min(100%,460px);aspect-ratio:1/1;margin:0 auto;background:#fff;isolation:isolate}.sl-chart svg{position:absolute;inset:0;width:100%;height:100%;display:block;fill:none;stroke:#321d28;stroke-width:.65}.sl-chart svg *{vector-effect:non-scaling-stroke}.chart-centre,.house-label{position:absolute;z-index:2;transform:translate(-50%,-50%);text-align:center;pointer-events:none;font-family:"Noto Sans Sinhala","Iskoola Pota","Malithi Web","LKLUG",Arial,sans-serif}.chart-centre{left:50%;top:50%;width:28%;min-height:16%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.35;color:#321d28}.chart-centre span,.chart-centre strong{display:block}.chart-centre span{font-size:clamp(13px,1.5vw,19px);font-weight:800}.chart-centre strong{font-size:clamp(11px,1.2vw,15px);color:var(--primary);margin-top:3px}.house-label{line-height:1.2;padding:2px}.house-label span{display:block;font-size:clamp(12px,1.35vw,18px);font-weight:800;color:#21161d;white-space:normal;word-spacing:4px;overflow-wrap:normal}.house-1{left:50%;top:16%;width:25%}.house-2{left:18.5%;top:8.5%;width:23%}.house-3{left:8.5%;top:20%;width:20%}.house-4{left:16.5%;top:50%;width:23%}.house-5{left:8.5%;top:74.5%;width:20%}.house-6{left:22%;top:88%;width:22%}.house-7{left:50%;top:78%;width:25%}.house-8{left:73%;top:84.5%;width:22%}.house-9{left:84.5%;top:74.5%;width:22%}.house-10{left:83.5%;top:50%;width:23%}.house-11{left:73.5%;top:20%;width:22%}.house-12{left:84.5%;top:8.5%;width:20%}.table-wrap{overflow:auto;margin-top:30px}.result-table{width:100%;border-collapse:collapse}.result-table th,.result-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.result-table th{background:#fff3f7;color:var(--secondary)}.result-table small{display:block;color:var(--muted);max-width:430px}.verdict{white-space:nowrap;border-radius:20px;padding:4px 9px;font-weight:800;font-size:12px}.verdict.ok{color:#12603e;background:#e7f7ef}.verdict.mid{color:#875c00;background:#fff4cc}.verdict.bad{color:#9b2018;background:#ffe8e6}.disclaimer{color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:17px}footer{background:#2f202a;color:#e8dce2;padding:22px 0}footer .container{display:flex;justify-content:space-between}footer a{color:#fff}.center-page{min-height:100vh;display:grid;place-items:center;padding:24px}.access-panel{max-width:600px;text-align:center;padding:42px}.access-panel .brand-mark{margin:0 auto 18px}.access-panel h1{font:700 36px Georgia,serif}.access-panel p{color:var(--muted)}
@media(max-width:800px){.hero-grid,.person-grid,.charts,.birth-summary{grid-template-columns:1fr}.member-chip span{display:none}.hero{padding:38px 0}.hero-grid{gap:25px}.panel,.report-card{padding:20px}.two{grid-template-columns:1fr}.report-heading{display:block}.score{text-align:left}.header-inner{height:68px}.sl-chart{width:min(100%,520px)}.house-label span{font-size:clamp(13px,3.2vw,20px)}.chart-centre span{font-size:clamp(14px,3.5vw,21px)}}
.print-results{display:none}
@page{size:A4 portrait;margin:0}
@media print{
    html,body{
        background:#fff!important;
        color:#111!important;
        font-family:"Noto Sans Sinhala","Iskoola Pota","Segoe UI",Arial,sans-serif!important;
        font-size:14pt!important;
        line-height:1.5!important;
        -webkit-print-color-adjust:exact;
        print-color-adjust:exact;
    }
    .no-print,.site-header,.hero,.matching-form,footer{display:none!important}
    .content-space{padding:0!important}
    .container{width:100%!important;max-width:none!important}
    .report-card{
        box-shadow:none!important;
        border:0!important;
        border-radius:0!important;
        margin:0!important;
        padding:0!important;
        font-size:14pt!important;
        line-height:1.5!important;
    }
    .report-heading{
        display:flex!important;
        align-items:center!important;
        justify-content:space-between!important;
        gap:8mm!important;
        padding:0 0 4mm!important;
        border-bottom:1.5pt solid var(--primary)!important;
    }
    .report-heading h2{font-size:26pt!important;line-height:1.2!important}
    .report-heading p{font-size:12.5pt!important;line-height:1.45!important}
    .eyebrow{font-size:12pt!important;letter-spacing:.08em!important}
    .score{min-width:34mm!important}
    .score strong{font-size:34pt!important;line-height:1!important}
    .score span{font-size:13pt!important;line-height:1.3!important}
    .birth-summary{grid-template-columns:1fr 1fr!important;margin:4mm 0 5mm!important;gap:4mm!important}
    .birth-summary>div{
        padding:3.5mm 4mm!important;
        border:1pt solid #e2cbd5!important;
        border-radius:3mm!important;
        background:#fff7fa!important;
        break-inside:avoid!important;
        page-break-inside:avoid!important;
    }
    .birth-summary strong{font-size:15pt!important;line-height:1.3!important;margin-bottom:1mm!important}
    .birth-summary span{font-size:12.5pt!important;line-height:1.5!important}
    .charts{
        grid-template-columns:1fr 1fr!important;
        gap:7mm!important;
        break-inside:avoid!important;
        page-break-inside:avoid!important;
    }
    .chart-wrap{break-inside:avoid!important;page-break-inside:avoid!important}
    .chart-wrap h3{font-size:16pt!important;line-height:1.3!important;margin:0 0 2mm!important}
    .sl-chart{width:100%!important;max-width:90mm!important}
    .sl-chart svg{stroke-width:.8!important}
    .house-label span{font-size:13pt!important;line-height:1.22!important;font-weight:800!important}
    .chart-centre span{font-size:13.5pt!important;line-height:1.25!important}
    .chart-centre strong{font-size:11.5pt!important;line-height:1.3!important}
    .screen-results{display:none!important}
    .screen-disclaimer{display:none!important}
    .print-results{display:block!important}
    .print-cover,.print-result-page{
        display:block!important;
        width:100%!important;
        padding:11mm!important;
        overflow:hidden!important;
    }
    .print-cover{break-after:page!important;page-break-after:always!important}
    .print-result-page{break-before:page!important;page-break-before:always!important}
    .print-result-page h3{
        margin:0 0 4mm!important;
        color:#4f273f!important;
        font:700 21pt/1.25 Georgia,"Times New Roman",serif!important;
    }
    .print-result-grid{border-top:1pt solid #e6d8de!important;border-left:1pt solid #e6d8de!important}
    .print-result-row{display:grid!important;grid-template-columns:7% 32% 18% 18% 25%!important}
    .print-result-row>div{
        min-width:0!important;
        padding:3mm 2.5mm!important;
        border-right:1pt solid #e6d8de!important;
        border-bottom:1pt solid #e6d8de!important;
        font-size:12.5pt!important;
        line-height:1.45!important;
        overflow-wrap:anywhere!important;
    }
    .print-result-row>div:first-child{text-align:center!important}
    .print-result-grid-header>div{font-size:13pt!important;font-weight:800!important;background:#f8e7ee!important;color:#5d2743!important}
    .print-result-row:not(.print-result-grid-header):nth-child(odd)>div{background:#fffafb!important}
    .print-result-row strong{font-size:13pt!important;line-height:1.4!important}
    .print-result-row small{display:block!important;color:var(--muted)!important;font-size:11pt!important;line-height:1.45!important;margin-top:1mm!important}
    .result-table{
        width:100%!important;
        table-layout:fixed!important;
        border-collapse:separate!important;
        border-spacing:0!important;
        font-size:12.5pt!important;
        line-height:1.45!important;
    }
    .result-table thead{display:table-header-group!important;break-inside:avoid!important;page-break-inside:avoid!important}
    .result-table th,.result-table td{
        font-size:12.5pt!important;
        padding:3mm 2.5mm!important;
        border:1pt solid #e6d8de!important;
        vertical-align:top!important;
        overflow-wrap:anywhere!important;
    }
    .result-table th{font-size:13pt!important;background:#f8e7ee!important;color:#5d2743!important}
    .result-table th:nth-child(1),.result-table td:nth-child(1){width:7%!important;text-align:center!important}
    .result-table th:nth-child(2),.result-table td:nth-child(2){width:32%!important}
    .result-table th:nth-child(3),.result-table td:nth-child(3){width:18%!important}
    .result-table th:nth-child(4),.result-table td:nth-child(4){width:18%!important}
    .result-table th:nth-child(5),.result-table td:nth-child(5){width:25%!important}
    .result-table td strong{font-size:13pt!important;line-height:1.4!important}
    .result-table small{font-size:11pt!important;line-height:1.45!important;margin-top:1mm!important}
    .result-table tbody tr:nth-child(even){background:#fffafb!important}
    .result-table tr{break-inside:avoid!important;page-break-inside:avoid!important}
    .verdict{font-size:11.5pt!important;line-height:1.35!important;padding:1.2mm 2mm!important;white-space:normal!important}
    .disclaimer{
        font-size:11pt!important;
        line-height:1.5!important;
        margin-top:5mm!important;
        padding-top:3mm!important;
        break-inside:avoid!important;
        page-break-inside:avoid!important;
    }
}
.person-fieldset {
    min-width: 0;
    padding: 24px;
    border: 2px solid #dfe4ea;
    border-radius: 16px;
    background: #fff;
}

.person-fieldset legend {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    padding: 0 12px;
    color: #1e293b;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.gender-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
}

.gender-icon svg {
    width: 25px;
    height: 25px;
    fill: currentColor;
}

.male-details {
    border-color: #93c5fd;
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 35%);
}

.female-details {
    border-color: #f9a8d4;
    background: linear-gradient(180deg, #fdf2f8 0%, #ffffff 35%);
}

.male-details legend {
    color: #1d4ed8;
}

.female-details legend {
    color: #be185d;
}

.male-icon {
    color: #fff;
    background: #2563eb;
    box-shadow: 0 5px 14px rgba(37, 99, 235, 0.25);
}

.female-icon {
    color: #fff;
    background: #db2777;
    box-shadow: 0 5px 14px rgba(219, 39, 119, 0.25);
}

@media (max-width: 640px) {
    .person-fieldset {
        padding: 20px 16px;
    }

    .person-fieldset legend {
        font-size: 1.1rem;
    }

    .gender-icon {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }

    .gender-icon svg {
        width: 22px;
        height: 22px;
    }
}

/* Direct/unlogged guest horoscope matching */
.alert.success{background:#e7f7ef;color:#12603e;border:1px solid #bfe7d1}
.guest-charge-card .guest-charge-text{font-size:24px;line-height:1.25;margin:9px 0 10px;overflow-wrap:anywhere}
.guest-payment-panel{margin-bottom:22px}.guest-payment-panel h2,.guest-success-panel h2,.guest-otp-panel h2{font:700 31px/1.2 Georgia,serif;margin:0 0 14px}
.guest-payment-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:16px;margin:18px 0}.guest-payment-grid>div{background:#fff8fa;border:1px solid var(--line);border-radius:14px;padding:17px}.guest-payment-grid span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.guest-payment-grid strong{display:block;font-size:15px;line-height:1.6;overflow-wrap:anywhere}.guest-payment-grid.compact{grid-template-columns:1fr;margin:18px 0}.guest-process-note{margin:0;color:var(--muted)}
.guest-email-field{margin:24px 0 4px;max-width:680px}.guest-email-field small{display:block;color:var(--muted);font-weight:500;margin-top:6px}.guest-success-panel{margin-bottom:24px}.guest-otp-panel{max-width:760px;margin:auto}.otp-form{max-width:430px;margin-top:22px}.guest-lock-symbol{font-size:44px!important}.guest-unlocked-result{padding-top:34px}
@media(max-width:800px){.guest-payment-grid{grid-template-columns:1fr}.guest-charge-card .guest-charge-text{font-size:21px}.guest-payment-panel h2,.guest-success-panel h2,.guest-otp-panel h2{font-size:27px}}

/* Header logo */
.brand-mark{
    width:290px!important;
    height:80px!important;
    min-width:290px!important;
    min-height:80px!important;
    max-width:60px!important;
    max-height:30px!important;
    flex:0 0 60px!important;
    overflow:hidden!important;
    padding:0!important;
    position:relative!important;
    display:block!important;
    background:transparent!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    border-radius:0!important;
}

.brand-mark .brand-logo-img{
    display:block!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:280px!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:translate(-50%,-50%)!important;
    transform-origin:center center!important;
    float:none!important;
}

/* WhatsApp contact button */
.whatsapp-button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    background:#25D366!important;
    color:#fff!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    border-radius:8px!important;
    padding:10px 18px!important;
    margin-top:12px!important;
    text-decoration:none!important;
    font-weight:700!important;
    line-height:1.4!important;
    cursor:pointer!important;
    transition:background-color .2s ease,transform .2s ease!important;
}

.whatsapp-button:hover,
.whatsapp-button:focus{
    background:#1ebe5d!important;
    color:#fff!important;
    text-decoration:none!important;
    transform:translateY(-1px)!important;
}

.whatsapp-button:active{
    transform:translateY(0)!important;
}

@media(max-width:600px){
    .whatsapp-button{
        padding:9px 15px!important;
        font-size:14px!important;
    }
}

@media(max-width:380px){
    .whatsapp-button{
        padding:8px 12px!important;
        font-size:14px!important;
    }
}

