.kj-tool-shell{max-width:1180px;margin:0 auto;padding:clamp(28px,5vw,72px) 20px 80px;color:inherit}
.kj-tool-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:26px}
.kj-eyebrow{display:block;font-size:.78rem;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;opacity:.62;font-weight:700;margin-bottom:9px}
.kj-tool-hero h1{margin:0;font-size:clamp(2.3rem,6vw,4.6rem);letter-spacing:-.055em;line-height:.98}
.kj-tool-hero p{max-width:720px;margin:14px 0 0;opacity:.72;font-size:1.02rem;line-height:1.7}
.kj-method-badge,.kj-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(127,127,127,.18);background:rgba(255,255,255,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:999px;padding:9px 13px;font-size:.82rem;white-space:nowrap}
.kj-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px rgba(127,127,127,.1)}
.kj-tool-card,.kj-panel,.kj-stat-card{border:1px solid rgba(127,127,127,.16);background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.045));box-shadow:0 18px 60px rgba(0,0,0,.06);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-radius:26px}
.kj-tool-card{padding:clamp(20px,3.5vw,34px)}
.kj-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kj-form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.kj-wide-field{grid-column:span 2}
.kj-jathakam-form label{display:block}
.kj-jathakam-form label>span{display:flex;gap:8px;align-items:center;font-size:.86rem;font-weight:700;margin:0 0 7px}
.kj-jathakam-form label em{font-size:.73rem;opacity:.5;font-style:normal;font-weight:500}
.kj-jathakam-form input{width:100%;box-sizing:border-box;border:1px solid rgba(127,127,127,.2);background:rgba(255,255,255,.5);color:inherit;border-radius:15px;padding:13px 14px;font:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.kj-jathakam-form input:focus{border-color:rgba(127,127,127,.5);box-shadow:0 0 0 4px rgba(127,127,127,.08);background:rgba(255,255,255,.7)}
.kj-location-box{margin-top:20px;border:1px solid rgba(127,127,127,.13);background:rgba(127,127,127,.055);padding:19px;border-radius:21px}
.kj-location-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.kj-location-heading strong{display:block;font-size:1rem}
.kj-location-heading p{margin:5px 0 0;opacity:.65;font-size:.84rem;line-height:1.55}
.kj-use-kerala,.kj-secondary-btn{border:1px solid rgba(127,127,127,.2);background:rgba(255,255,255,.45);color:inherit;border-radius:999px;padding:9px 13px;font:inherit;font-size:.8rem;cursor:pointer}
.kj-form-actions{display:flex;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.kj-primary-btn{display:inline-flex;align-items:center;gap:18px;border:1px solid rgba(255,255,255,.18);background:rgba(20,20,24,.93);color:#fff;border-radius:999px;padding:13px 17px 13px 20px;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.16)}
.kj-primary-btn:disabled{opacity:.6;cursor:wait}
.kj-btn-arrow{display:inline-grid;place-items:center;width:29px;height:29px;border-radius:50%;background:rgba(255,255,255,.12);font-size:1rem}
.kj-form-note{margin:0;font-size:.78rem;opacity:.58;max-width:650px;line-height:1.5}
.kj-form-error{margin-top:14px;border:1px solid rgba(170,60,60,.25);background:rgba(170,60,60,.07);padding:12px 14px;border-radius:14px;font-size:.86rem}
.kj-jathakam-results{padding-top:60px}
.kj-result-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.kj-result-head h2{margin:0;font-size:clamp(1.8rem,4vw,3.1rem);letter-spacing:-.04em}
.kj-result-meta{margin:8px 0 0;opacity:.62;font-size:.88rem}
.kj-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.kj-stat-card{padding:21px 20px;min-height:115px;box-sizing:border-box}
.kj-primary-stat{background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.065))}
.kj-stat-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.55;font-weight:800}
.kj-stat-card strong{display:block;font-size:1.42rem;margin:11px 0 4px;letter-spacing:-.02em}
.kj-stat-card small{opacity:.58}
.kj-result-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.kj-panel{padding:22px;box-sizing:border-box}
.kj-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}
.kj-panel h3{margin:0;font-size:1.22rem;letter-spacing:-.02em}
.kj-nakshatra-copy{margin:0;opacity:.67;line-height:1.65}
.kj-method-list{margin:0}
.kj-method-list div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid rgba(127,127,127,.11)}
.kj-method-list div:last-child{border-bottom:0;padding-bottom:0}
.kj-method-list dt{opacity:.58;font-size:.86rem}.kj-method-list dd{margin:0;font-weight:700;font-size:.86rem;text-align:right}
.kj-table-wrap{overflow-x:auto}
.kj-graha-table{width:100%;border-collapse:collapse;font-size:.9rem}
.kj-graha-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.5;text-align:left;padding:9px 10px;border-bottom:1px solid rgba(127,127,127,.13);white-space:nowrap}
.kj-graha-table td{padding:12px 10px;border-bottom:1px solid rgba(127,127,127,.09);white-space:nowrap;vertical-align:top}
.kj-graha-table tbody tr:last-child td{border-bottom:0}
.kj-graha-table td strong,.kj-graha-table td small{display:block}.kj-graha-table td small{opacity:.53;margin-top:3px;font-size:.76rem}
.kj-result-disclaimer{margin-top:14px;padding:15px 17px;border-radius:17px;background:rgba(127,127,127,.065);font-size:.79rem;line-height:1.6;opacity:.76}
@media (max-width:800px){.kj-tool-hero,.kj-result-head{align-items:flex-start;flex-direction:column}.kj-form-grid,.kj-form-grid-3,.kj-result-grid,.kj-result-columns{grid-template-columns:1fr}.kj-wide-field{grid-column:span 1}.kj-form-actions{align-items:flex-start;flex-direction:column}.kj-primary-btn{width:100%;justify-content:space-between}.kj-tool-shell{padding-left:15px;padding-right:15px}.kj-tool-card,.kj-panel,.kj-stat-card{border-radius:21px}.kj-location-heading{flex-direction:column}.kj-use-kerala{align-self:flex-start}.kj-secondary-btn{width:100%}}
@media (prefers-color-scheme:dark){.kj-jathakam-form input,.kj-use-kerala,.kj-secondary-btn{background:rgba(255,255,255,.06);color:inherit}.kj-jathakam-form input:focus{background:rgba(255,255,255,.1)}}
@media print{header,footer,.kj-tool-card,.kj-secondary-btn,.kj-result-head .kj-eyebrow{display:none!important}.kj-tool-shell{max-width:none;padding:0}.kj-jathakam-results{padding-top:0}.kj-panel,.kj-stat-card{box-shadow:none;background:#fff;border-color:#ddd;color:#111}}
.kj-place-picker{position:relative}
.kj-place-help{margin:7px 0 0;opacity:.58;font-size:.78rem;line-height:1.5}

.kj-place-actions { margin-top: 10px; display: flex; justify-content: flex-end; }
.kj-place-actions .kj-secondary-btn { min-height: 40px; }
.kj-place-results{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 9px);max-height:330px;overflow:auto;padding:7px;border:1px solid rgba(127,127,127,.18);background:rgba(255,255,255,.82);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.12)}
.kj-place-option{display:block;width:100%;text-align:left;border:0;background:transparent;color:inherit;border-radius:13px;padding:11px 12px;cursor:pointer;font:inherit}
.kj-place-option:hover,.kj-place-option:focus-visible{background:rgba(127,127,127,.09);outline:none}
.kj-place-option strong,.kj-place-option small{display:block}.kj-place-option strong{font-size:.9rem}.kj-place-option small{margin-top:3px;opacity:.56;font-size:.76rem}
.kj-selected-place{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:14px 16px;border:1px solid rgba(127,127,127,.14);background:rgba(127,127,127,.045);border-radius:18px}
.kj-selected-place strong,.kj-selected-place span{display:block}.kj-selected-place strong{font-size:.9rem}.kj-selected-place span{margin-top:4px;font-size:.76rem;opacity:.58}
.kj-advanced-location{margin-top:16px;border:1px solid rgba(127,127,127,.13);border-radius:18px;padding:0 16px;background:rgba(127,127,127,.035)}
.kj-advanced-location summary{cursor:pointer;padding:14px 0;font-size:.82rem;font-weight:800;list-style:none}.kj-advanced-location summary::-webkit-details-marker{display:none}
.kj-advanced-location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 0 12px}
.kj-advanced-location>p{margin:0 0 15px;font-size:.75rem;line-height:1.5;opacity:.57}
@media (prefers-color-scheme:dark){.kj-place-results{background:rgba(28,28,31,.9)}.kj-advanced-location{background:rgba(255,255,255,.03)}}
@media (max-width:800px){.kj-place-results{position:relative;top:auto;max-height:280px;margin-top:9px}.kj-advanced-location-grid{grid-template-columns:1fr}.kj-selected-place{align-items:flex-start;flex-direction:column}.kj-selected-place .kj-secondary-btn{width:auto}}
.kj-place-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.kj-place-actions .kj-secondary-btn{font-size:.78rem}
.kj-place-no-match{display:flex;flex-direction:column;gap:7px;margin-top:9px;padding:13px 14px;border:1px solid rgba(127,127,127,.15);background:rgba(127,127,127,.045);border-radius:16px;font-size:.8rem;line-height:1.5}
.kj-place-no-match strong{font-size:.84rem}.kj-place-no-match span{opacity:.66}.kj-place-no-match .kj-secondary-btn{align-self:flex-start;text-decoration:none}
.kj-coordinate-help{margin-top:2px!important}.kj-coordinate-help code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;padding:2px 5px;border-radius:6px;background:rgba(127,127,127,.08)}
.kj-secondary-btn:disabled{opacity:.58;cursor:wait}
@media (max-width:800px){.kj-place-actions .kj-secondary-btn{width:100%}.kj-place-no-match .kj-secondary-btn{width:auto}}
.kj-location-note{align-self:center;font-size:.76rem;opacity:.55;line-height:1.45}
@media (max-width:800px){.kj-location-note{display:block}}
.kj-place-browse{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.kj-place-browse label span{display:block;margin-bottom:7px;font-size:.75rem;font-weight:650;opacity:.75}
.kj-place-browse select{width:100%;min-height:48px;padding:0 13px;border:1px solid rgba(127,127,127,.18);border-radius:14px;background:rgba(127,127,127,.045);color:inherit;font:inherit}
.kj-place-browse select:disabled{opacity:.5;cursor:not-allowed}
.kj-place-status{margin-top:9px;font-size:.73rem;line-height:1.4;opacity:.56}
@media (max-width:800px){.kj-place-browse{grid-template-columns:1fr}}

/* 1.0.1: Kerala browser is optional and collapsed by default. */
.kj-place-browse { display:block; margin-top:12px; }
.kj-place-browse > summary { cursor:pointer; list-style:none; padding:13px 15px; border:1px solid rgba(127,127,127,.16); border-radius:14px; background:rgba(127,127,127,.035); font-size:.84rem; font-weight:650; }
.kj-place-browse > summary::-webkit-details-marker { display:none; }
.kj-place-browse > summary::after { content:'+'; float:right; font-size:1rem; line-height:1; opacity:.65; }
.kj-place-browse[open] > summary::after { content:'−'; }
.kj-place-browse-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
.kj-browse-help { margin:10px 2px 0; font-size:.76rem; opacity:.68; }
@media (max-width:800px){.kj-place-browse-grid{grid-template-columns:1fr}}

/* Respect dynamically hidden calculator panels, including the place picker fallback. */
.kj-tool-shell [hidden] { display: none !important; }
@media print { .kj-result-disclaimer { display: block !important; color: #111; border-color: #aaa; break-inside: avoid; } .kj-panel, .kj-stat-card { break-inside: avoid; } }

/* Historical time-zone controls and calculation safety notices. */
.kj-timezone-options { min-width:0; grid-column:1/-1; margin:12px 0; padding:16px; border:1px solid #ddd4c5; border-radius:12px; display:grid; gap:12px; }
.kj-timezone-options legend { padding:0 8px; font-weight:600; }
.kj-timezone-options label { min-width:0; display:grid; gap:6px; }
.kj-timezone-options input,.kj-timezone-options select { width:100%; max-width:100%; box-sizing:border-box; }
.kj-boundary-warning { border-left:4px solid #9d650d; }
@media print { .kj-timezone-options { display:none!important; } .kj-boundary-warning { display:block; break-inside:avoid; } .kj-boundary-warning[hidden] { display:none!important; } }
