.so-app{--so-navy:#17324d;--so-saffron:#bd641d;--so-cream:#fffaf1;--so-border:#ded8cd;background:#fff;border:1px solid var(--so-border);border-radius:14px;box-shadow:0 10px 35px rgba(23,50,77,.09);color:#252525;font-family:system-ui,-apple-system,sans-serif;max-width:1100px;margin:24px auto;overflow:hidden}.so-app *{box-sizing:border-box}.so-header{align-items:center;background:linear-gradient(120deg,var(--so-navy),#285979);color:#fff;display:flex;justify-content:space-between;padding:22px 28px}.so-header h2{color:#fff;font-size:28px;margin:2px 0}.so-kicker{font-size:12px;letter-spacing:.13em;text-transform:uppercase}.so-mode{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:99px;padding:7px 13px}.so-app main,.so-gate{padding:26px}.so-gate{max-width:520px;margin:20px auto}.so-app label{display:block;font-weight:650}.so-app input,.so-app textarea,.so-app select{background:#fff;border:1px solid #aaa;border-radius:7px;font:inherit;margin-top:6px;padding:10px;width:100%}.so-app button{background:#fff;border:1px solid var(--so-navy);border-radius:7px;color:var(--so-navy);cursor:pointer;font-size:15px;font-weight:700;padding:10px 16px}.so-app button:hover{filter:brightness(.96)}.so-primary,.so-gate>button{background:var(--so-saffron)!important;border-color:var(--so-saffron)!important;color:#fff!important}.so-event-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.so-event-card{text-align:left}.so-event-card strong,.so-event-card span{display:block}.so-event-card span{font-size:13px;font-weight:400;margin-top:5px}.so-event-title{text-align:center}.so-link{border:0!important;float:left;padding-left:0!important}.so-tabs{border-bottom:1px solid var(--so-border);display:flex;gap:4px;margin:18px 0 24px;overflow-x:auto}.so-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;white-space:nowrap}.so-tabs button.is-active{border-color:var(--so-saffron);color:var(--so-saffron)}.so-panel{display:none}.so-panel.is-active{display:block}.so-form-grid{display:grid;gap:15px;grid-template-columns:repeat(2,1fr)}.so-span-2{grid-column:1/-1}.so-inline-button{font-size:12px!important;margin-top:5px;padding:5px 9px!important}.so-app fieldset{border:1px solid var(--so-border);border-radius:10px;margin:20px 0;padding:18px}.so-app legend{font-size:18px;font-weight:750;padding:0 7px}.so-seva-group h4{background:var(--so-cream);border-radius:7px;margin:14px 0 7px;padding:8px}.so-seva{border-bottom:1px solid #eee;padding:11px 5px}.so-seva:last-child{border-bottom:0}.so-seva-main{align-items:center;display:grid;gap:12px;grid-template-columns:auto 1fr auto}.so-app label.so-seva-main{display:grid}.so-seva-main input[type=checkbox]{height:20px;margin:0;width:20px}.so-seva-price{font-weight:750}.so-seva-detail{margin:9px 0 0 32px}.so-requirement{background:#fff4df;border-left:4px solid var(--so-saffron);margin:8px 0 0 32px;padding:9px}.so-payment-options{display:flex;flex-wrap:wrap;gap:12px}.so-payment-options label{align-items:center;border:1px solid var(--so-border);border-radius:8px;display:flex;gap:7px;padding:10px 13px}.so-payment-options input{margin:0;width:auto}.so-note{background:#eef6fb;border-left:4px solid #2271b1;margin:12px 0;padding:12px}.so-total{font-size:20px;margin:18px 0}.so-status{font-weight:650}.so-status.is-error{color:#b42318}.so-status.is-success{color:#08783e}.so-toolbar{align-items:end;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.so-table-wrap{overflow-x:auto}.so-table{border-collapse:collapse;width:100%}.so-table td,.so-table th{border:1px solid var(--so-border);padding:8px;text-align:left}.so-ticket-card{border:1px solid var(--so-border);border-radius:9px;margin:12px 0;padding:15px}.so-card{border:1px solid #aaa;border-radius:7px;margin-top:12px;padding:12px;min-height:48px}.so-print-host{display:none}@media(max-width:650px){.so-header{padding:17px}.so-app main{padding:16px}.so-form-grid{grid-template-columns:1fr}.so-span-2{grid-column:auto}.so-tabs button{font-size:13px;padding:9px}.so-mode{font-size:12px}.so-seva-main{grid-template-columns:auto 1fr}.so-seva-price{grid-column:2}}@media print{body *{visibility:hidden}.so-print-host,.so-print-host *{visibility:visible}.so-print-host{display:block!important;left:0;position:absolute;top:0;width:100%}.so-print-ticket{border-bottom:1px dashed #000;font-family:Arial,sans-serif;margin:0 auto 18px;max-width:80mm;padding:8px}.so-print-ticket h2,.so-print-ticket h3{text-align:center}.so-print-list{font:11px Arial,sans-serif}.so-print-list table{border-collapse:collapse;width:100%}.so-print-list td,.so-print-list th{border:1px solid #000;padding:4px}}
.so-schedule-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0}.so-schedule-fields label{display:grid;gap:4px;font-weight:700}.so-schedule-fields .so-note,.so-schedule-fields .so-requirement{grid-column:1/-1;margin:0}.so-report-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:4px 0}.so-report-controls label{display:grid;gap:3px;font-weight:700}.so-schedule-results{display:grid;gap:8px}.so-occurrence-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.so-occurrence-card h4,.so-occurrence-card p,.so-occurrence-card textarea,.so-occurrence-card button,.so-occurrence-card .so-status{grid-column:1/-1}.so-occurrence-card label{display:grid;gap:3px;font-weight:700}
.so-inactive-event{background:#fff4df;border:1px solid #e2a45f;border-left:6px solid var(--so-saffron);border-radius:8px;margin:0;padding:18px}.so-inactive-event h3{margin:0 0 8px}.so-inactive-event p{margin:4px 0}
@media(max-width:650px){.so-schedule-fields,.so-occurrence-card{grid-template-columns:1fr}.so-schedule-fields>*{grid-column:1}.so-report-controls>*{width:100%}.so-report-controls input,.so-report-controls button{width:100%}}
.so-subscription-card{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.so-subscription-card h4,.so-subscription-card p{margin:3px 0}.so-subscription-action{align-items:flex-end;display:grid;gap:8px;justify-items:end}.so-twelve-date-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 14px}.so-twelve-date-grid label{background:rgba(255,255,255,.7);border:1px solid var(--so-border);border-radius:7px;padding:8px}.so-twelve-date-grid label span{display:block}.so-twelve-date-grid input{margin-top:4px}@media(max-width:800px){.so-twelve-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.so-subscription-card{grid-template-columns:1fr}.so-subscription-action{justify-items:stretch}.so-subscription-action button{width:100%}.so-twelve-date-grid{grid-template-columns:1fr}}
@media print{
  @page{size:auto;margin:12mm}
  body{background:#fff!important}
  .so-print-sankalpa{color:#000;font-family:Arial,sans-serif;font-size:11pt;line-height:1.25}
  .so-print-sankalpa>header{border-bottom:2px solid #000;margin-bottom:10px;padding-bottom:7px;text-align:center}
  .so-print-sankalpa>header p{margin:2px 0}
  .so-print-sankalpa>header h1{font-size:18pt;margin:3px 0}
  .so-print-sankalpa>header h2{font-size:14pt;margin:3px 0}
  .so-print-sankalpa .so-priest-event-heading{border-bottom:1px solid #000;font-size:14pt;margin:12px 0 4px;padding-bottom:2px}
  .so-print-sankalpa .so-priest-group{break-inside:auto;margin:0 0 10px}
  .so-print-sankalpa .so-priest-group>h3{background:none!important;border-bottom:1px solid #000;color:#000!important;display:flex;font-size:13pt;justify-content:space-between;margin:7px 0 0;padding:4px 0}
  .so-print-sankalpa .so-priest-group>h3 small{font-size:9pt;font-weight:400}
  .so-print-sankalpa .so-priest-family-row{border-bottom:1px solid #bbb;break-inside:avoid;display:grid;grid-template-columns:28px 1fr;margin:0;padding:5px 0}
  .so-print-sankalpa .so-priest-family-number{font-weight:700;grid-row:1/3}
  .so-print-sankalpa .so-priest-family-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:9px}
  .so-print-sankalpa .so-priest-family-heading h4{font-size:11pt;margin:0}
  .so-print-sankalpa .so-priest-gotra{font-size:10pt}
  .so-print-sankalpa .so-priest-nama{grid-column:2;overflow-wrap:anywhere;white-space:normal}
}
.so-annual-controls{display:grid;grid-template-columns:repeat(3,minmax(135px,1fr)) repeat(2,minmax(145px,auto));width:100%}.so-annual-controls>*{margin:0;max-width:100%;min-width:0;width:100%}.so-annual-controls button{align-self:end;min-height:42px;white-space:normal}.so-annual-overall{grid-template-columns:repeat(5,minmax(105px,1fr))!important}.so-annual-seva-summary{margin:12px 0}.so-annual-seva-summary h4{margin:0 0 6px}.so-annual-seva-summary table{max-width:680px}.so-annual-seva-summary th:nth-child(2),.so-annual-seva-summary td:nth-child(2){text-align:center;width:90px}.so-annual-seva-summary th:nth-child(3),.so-annual-seva-summary td:nth-child(3){text-align:right;width:125px}.so-annual-list{margin-top:8px}.so-annual-table{min-width:1000px}.so-annual-table td{vertical-align:top}.so-annual-table td small{color:#59636b;display:block;font-size:12px;margin-top:3px}.so-annual-state{border-radius:999px;display:inline-block;font-size:12px;font-weight:700;padding:4px 8px;white-space:nowrap}.so-annual-state.is-active{background:#e5f6eb;color:#176b36}.so-annual-state.is-expiring{background:#fff1cc;color:#805300}.so-annual-state.is-expired{background:#fde7e7;color:#9b1c1c}
@media(max-width:980px){.so-annual-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.so-annual-overall{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}.so-annual-table{display:block;min-width:0;width:100%}.so-annual-table thead{display:none}.so-annual-table tbody{display:grid;gap:8px}.so-annual-table tr{background:rgba(255,255,255,.62);border:1px solid var(--so-border);border-radius:8px;display:grid;grid-template-columns:44px repeat(2,minmax(0,1fr));overflow:hidden}.so-annual-table td{border:0;border-bottom:1px solid var(--so-border);min-width:0;overflow-wrap:anywhere;padding:8px}.so-annual-table td::before{color:#59636b;content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:2px;text-transform:uppercase}.so-annual-table td:first-child{grid-row:1/3;text-align:center}.so-annual-table td:first-child::before{display:none}.so-annual-table td:last-child{border-bottom:0}.so-annual-table td:nth-last-child(2),.so-annual-table td:last-child{border-bottom:0}}
@media(max-width:560px){.so-annual-controls{grid-template-columns:1fr}.so-annual-table tr{grid-template-columns:38px minmax(0,1fr)}.so-annual-table td:first-child{grid-row:1/7}.so-annual-table td:not(:first-child){grid-column:2}.so-annual-seva-summary table{font-size:13px}.so-annual-seva-summary th,.so-annual-seva-summary td{padding:6px}}
@page annual{size:landscape;margin:10mm}
@media print{
  .so-print-annual{color:#000;font-family:Arial,sans-serif;font-size:8.5pt;line-height:1.2;page:annual}
  .so-print-annual>header{border-bottom:2px solid #000;margin-bottom:8px;padding-bottom:6px;text-align:center}
  .so-print-annual>header h1{font-size:18pt;margin:2px 0}.so-print-annual>header p{margin:2px 0}
  .so-print-annual h2{font-size:12pt;margin:9px 0 4px}.so-print-annual table{border-collapse:collapse;table-layout:fixed;width:100%}
  .so-print-annual th,.so-print-annual td{border:1px solid #777;overflow-wrap:anywhere;padding:4px;text-align:left;vertical-align:top}
  .so-print-annual th{background:#eee!important;font-weight:700}
  .so-print-annual-summary{margin-bottom:10px;max-width:55%}.so-print-annual-summary th:nth-child(2),.so-print-annual-summary td:nth-child(2){width:18%;text-align:center}.so-print-annual-summary th:nth-child(3),.so-print-annual-summary td:nth-child(3){width:24%;text-align:right}
  .so-print-annual-details th:first-child,.so-print-annual-details td:first-child{width:3%}
  .so-print-annual-details th:nth-child(2),.so-print-annual-details td:nth-child(2){width:17%}
  .so-print-annual-details th:nth-child(3),.so-print-annual-details td:nth-child(3){width:14%}
  .so-print-annual-details th:nth-child(4),.so-print-annual-details td:nth-child(4){width:16%}
  .so-print-annual-details th:nth-child(5),.so-print-annual-details td:nth-child(5){width:24%}
  .so-print-annual-details th:nth-child(6),.so-print-annual-details td:nth-child(6){width:15%}
  .so-print-annual tr{break-inside:avoid}
}
.so-seva-description{color:#5f6368;display:block;font-size:.86em;font-weight:400;line-height:1.35;margin:3px 0 0 32px}
.so-seva-quantity{align-items:center;display:flex!important;gap:8px;margin:8px 0 0 32px;max-width:220px}.so-seva-quantity input{margin:0!important;min-height:40px;padding:6px 9px!important;width:82px!important}
.so-donation-fields{display:grid;gap:12px;margin:8px 0 14px}.so-donation-presets{margin-top:6px}.so-donation-presets label{min-width:110px}
