:root{--fc-brand-gold: #f9da06;--fc-brand-gold-hover: #e5c904;--fc-brand-gold-ink: #3d3403;--fc-brand-olive: #554a02;--fc-surface-page: #ffffff;--fc-surface-card: rgba(255,255,255,.78);--fc-surface-edge: rgba(85,74,2,.16);--fc-surface-raised: #f3efdd;--fc-surface-input: #ffffff;--fc-surface-track: #e3e4e8;--fc-surface-track-active: #ffffff;--fc-surface-section-bar: #e8e9ed;--fc-surface-nav-active: rgba(85,74,2,.09);--fc-text-ink: #24210e;--fc-text-muted: #75704f;--fc-text-faint: #b5af97;--fc-table-header-gold: #89790d;--fc-table-label: #ffef77;--fc-table-label-ink: #24210e;--fc-table-gridline: #ffffff;--fc-table-cell-cream: #fcf7ed;--fc-semantic-green: #2e7d32;--fc-semantic-blue: #33639f;--fc-semantic-amber: #a8720a;--fc-semantic-red: #b3445c;--fc-banner-error-bg: rgba(179,68,92,.12);--fc-banner-error-fg: #8c2f43;--fc-banner-warn-bg: rgba(168,114,10,.12);--fc-banner-warn-fg: #7a5410;--fc-banner-info-bg: rgba(51,99,159,.1);--fc-banner-info-fg: #2a4d78;--fc-status-eligible-bg: rgba(46,125,50,.14);--fc-status-blocked-bg: rgba(179,68,92,.14);--fc-status-unknown-bg: rgba(117,112,79,.15);--fc-chat-accent: #554a02;--fc-chat-user-bubble: rgba(249,218,6,.22);--fc-chat-user-bubble-edge: rgba(85,74,2,.28);--fc-chat-launcher-ring: rgba(61,52,3,0);--fc-chat-launcher-shadow: 0 6px 16px rgba(60,54,10,.28)}html[data-theme=dark]{--fc-brand-gold: #f9da06;--fc-brand-gold-hover: #f7e356;--fc-brand-gold-ink: #2b2500;--fc-brand-olive: #554a02;--fc-surface-page: #0e1116;--fc-surface-card: #161b23;--fc-surface-edge: #232b37;--fc-surface-raised: #1d242f;--fc-surface-input: #10151c;--fc-surface-track: #232b37;--fc-surface-track-active: #39445a;--fc-surface-section-bar: #1a212b;--fc-surface-nav-active: #1c232e;--fc-text-ink: #e6e9ee;--fc-text-muted: #8b94a3;--fc-text-faint: #454e5c;--fc-table-header-gold: #6f620a;--fc-table-label: #1f2731;--fc-table-label-ink: #f9da06;--fc-table-gridline: #232b37;--fc-table-cell-cream: #1a212c;--fc-semantic-green: #4cc38a;--fc-semantic-blue: #7ab3ff;--fc-semantic-amber: #e8b04b;--fc-semantic-red: #ef7085;--fc-banner-error-bg: rgba(239,112,133,.12);--fc-banner-error-fg: #ffb3c0;--fc-banner-warn-bg: rgba(232,176,75,.1);--fc-banner-warn-fg: #f4cf8d;--fc-banner-info-bg: rgba(122,179,255,.1);--fc-banner-info-fg: #b9d4ff;--fc-status-eligible-bg: rgba(76,195,138,.15);--fc-status-blocked-bg: rgba(239,112,133,.15);--fc-status-unknown-bg: rgba(139,148,163,.15);--fc-chat-accent: #f9da06;--fc-chat-user-bubble: #2e2908;--fc-chat-user-bubble-edge: #554a02;--fc-chat-launcher-ring: #554a02;--fc-chat-launcher-shadow: 0 6px 18px rgba(0,0,0,.45)}:root{--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;background:var(--fc-surface-page) url(/paper-pattern.png) repeat;color:var(--fc-text-ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html[data-theme=dark] body{background-image:url(/paper-pattern-dark.png)}#app{max-width:1500px;margin:0 auto;padding:24px 20px 64px}@media(min-width:1100px){main{display:grid;grid-template-columns:minmax(340px,460px) minmax(0,1fr);gap:24px;align-items:start}.title-row{grid-column:1 / -1}#setup{grid-column:1;position:sticky;top:20px}#result{grid-column:2}}header h1{margin:4px 0;font-size:24px;letter-spacing:.3px}.subtitle{margin:0 0 20px;color:var(--fc-text-muted)}.header-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:8px}@media(max-width:1100px){.header-row{flex-wrap:wrap}#account{order:1;margin-left:auto}.header-actions{order:2}#site-nav{order:3;flex-basis:100%;flex-wrap:wrap}}@media(max-width:560px){#site-nav a{padding:6px 9px;font-size:13px}.brand{font-size:15px}}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--fc-text-ink);text-decoration:none;font-weight:700;font-size:17px;letter-spacing:.2px}.brand-icon{width:30px;height:30px;display:block}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}#rebuild{white-space:nowrap}#rebuild.rebuilding{opacity:.65;cursor:wait;animation:rebuild-pulse 1.2s ease-in-out infinite}#rebuild:disabled{cursor:wait}@keyframes rebuild-pulse{0%,to{opacity:.65}50%{opacity:1}}.theme-toggle{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.theme-toggle svg{flex:none;min-width:16px;width:16px;height:16px}.theme-toggle .icon-sun{display:none}html[data-theme=dark] .theme-toggle .icon-sun{display:block}html[data-theme=dark] .theme-toggle .icon-moon{display:none}.subtitle code{color:var(--fc-semantic-blue);background:none;font-size:13px}.card{background:var(--fc-surface-card);border:1px solid var(--fc-surface-edge);border-radius:14px;box-shadow:0 1px 2px #3c360a0f;padding:18px 20px;margin-bottom:16px}html[data-theme=dark] .card{box-shadow:none}.card h2{margin:0 0 12px;font-size:16px}.field-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.field-label{min-width:88px;padding-top:6px;color:var(--fc-text-muted);font-size:13px;text-transform:uppercase;letter-spacing:.6px}.segmented{display:inline-flex;background:var(--fc-surface-track);border-radius:999px;padding:3px;gap:2px}.segmented button{background:transparent;color:var(--fc-text-muted);border:0;border-radius:999px;padding:5px 18px;cursor:pointer;font:inherit}.segmented button.active{background:var(--fc-surface-track-active);color:var(--fc-text-ink);font-weight:600;box-shadow:0 1px 2px #0000002e}.rel-buttons,.examples,.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:240px}#setup .field-label{min-width:0}#clear{margin-left:auto}.rel-btn{background:var(--fc-surface-raised);border:1px solid var(--fc-surface-edge);color:var(--fc-text-ink);border-radius:8px;padding:5px 11px;cursor:pointer;font:inherit;font-size:13.5px}.rel-btn:hover{border-color:var(--fc-brand-olive);color:var(--fc-brand-olive)}html[data-theme=dark] .rel-btn:hover{color:var(--fc-brand-gold);border-color:var(--fc-brand-gold)}.rel-btn:active{transform:translateY(1px)}#custom-path{flex:1;min-width:220px;background:var(--fc-surface-input);border:1px solid var(--fc-surface-edge);color:var(--fc-text-ink);border-radius:8px;padding:7px 10px;font-family:var(--mono);font-size:13.5px}#custom-path:focus{outline:none;border-color:var(--fc-brand-olive)}.btn{background:var(--fc-brand-gold);border:0;color:var(--fc-brand-gold-ink);border-radius:10px;padding:7px 16px;cursor:pointer;font:inherit;font-weight:600}.btn.subtle{background:transparent;border:1px solid var(--fc-surface-edge);color:var(--fc-text-muted);font-weight:500}.btn.subtle:hover{color:var(--fc-text-ink);border-color:var(--fc-brand-olive)}html[data-theme=dark] .btn.subtle:hover{border-color:var(--fc-brand-gold);color:var(--fc-brand-gold)}.hint{width:100%;margin:-4px 0 8px;color:var(--fc-text-muted);font-size:12.5px}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--fc-surface-raised);border:1px solid var(--fc-surface-edge);border-radius:999px;padding:3px 7px 3px 12px;font-family:var(--mono);font-size:13px}.chip-x{background:transparent;border:0;color:var(--fc-text-muted);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}.chip-x:hover{color:var(--fc-semantic-red)}.placeholder{color:var(--fc-text-muted);font-size:13px;padding-top:5px}#gender-hint{color:var(--fc-semantic-amber);font-size:12.5px}.banner{border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px}.banner p{margin:2px 0}.banner.error{background:var(--fc-banner-error-bg);border:1px solid var(--fc-banner-error-fg);color:var(--fc-banner-error-fg)}.banner.warn{background:var(--fc-banner-warn-bg);border:1px solid var(--fc-banner-warn-fg);color:var(--fc-banner-warn-fg)}.banner.info{background:var(--fc-banner-info-bg);border:1px solid var(--fc-banner-info-fg);color:var(--fc-banner-info-fg)}.table-meta{color:var(--fc-text-muted);font-family:var(--mono);font-size:13px;margin-bottom:10px;white-space:pre-wrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:13.5px}th,td{border:2px solid var(--fc-table-gridline);padding:7px 12px;text-align:center;white-space:nowrap;background:var(--fc-table-cell-cream)}td.blank{border-top:0}tbody tr:last-child th,tbody tr:last-child td{border-bottom:2px solid var(--fc-table-gridline)}thead th{background:var(--fc-table-header-gold);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.2px}tbody th{text-align:left;font-weight:600;background:var(--fc-table-label);color:var(--fc-table-label-ink)}td.k-fardu{color:var(--fc-text-ink)}td.k-farduR{color:var(--fc-semantic-blue)}td.k-reduced{color:var(--fc-semantic-amber);font-style:italic}td.k-asabah,td.k-farduPlusAsabah{color:var(--fc-semantic-blue)}td.k-portion,td.k-residuePortion,td.k-finalPortion{color:var(--fc-semantic-green);font-weight:600}td.k-blocked{color:var(--fc-semantic-red);background:var(--fc-status-blocked-bg)}td.k-notPresent{color:var(--fc-text-faint);background:transparent}.legend{margin:12px 0 0;color:var(--fc-text-muted);font-size:12px}.legend .k{font-family:var(--mono);font-size:11.5px;border:1px solid var(--fc-surface-edge);border-radius:5px;padding:1px 5px}.legend .k-asabah{color:var(--fc-semantic-blue)}.legend .k-portion,.legend .k-residuePortion,.legend .k-finalPortion{color:var(--fc-semantic-green)}.legend .k-blocked{color:var(--fc-semantic-red)}.legend .k-notPresent{color:var(--fc-text-faint)}.legend .k-reduced{color:var(--fc-semantic-amber)}.legend .k-farduR{color:var(--fc-semantic-blue)}.final-item{display:flex;align-items:center;gap:14px;padding:7px 0;border-bottom:1px solid var(--fc-surface-edge);font-family:var(--mono);font-size:14px}.final-item:last-child{border-bottom:0}.final-label{flex:1}.final-each{font-weight:700;color:var(--fc-semantic-green)}.final-each.is-blocked{color:var(--fc-semantic-red)}.status{font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-radius:5px;padding:2px 8px}.status-eligible{background:var(--fc-status-eligible-bg);color:var(--fc-semantic-green)}.status-blocked{background:var(--fc-status-blocked-bg);color:var(--fc-semantic-red)}.status-unknown{background:var(--fc-status-unknown-bg);color:var(--fc-text-muted)}.total{margin-top:12px;padding-top:12px;border-top:1px solid var(--fc-surface-edge);font-family:var(--mono);font-weight:700;color:var(--fc-semantic-green)}.heir-group{margin-top:14px}.heir-group-title{margin:0 0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--fc-text-muted)}.heir-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--fc-surface-edge)}.heir-row:last-child{border-bottom:none}.heir-row.has-count .heir-label{color:var(--fc-text-ink)}.heir-label{color:var(--fc-text-muted)}.segmented.small button{padding:2px 14px;font-size:13px}.stepper{display:flex;align-items:center;gap:6px}.step-btn{min-width:26px;padding:2px 6px}.step-value{min-width:20px;text-align:center;font-family:var(--mono)}.heir-list{display:flex;flex-direction:column}.heir-item{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--fc-surface-edge)}.heir-name{font-family:var(--mono)}.heir-detail{color:var(--fc-text-muted);flex:1}.heir-item.status-eligible .heir-detail{color:var(--fc-semantic-green)}.heir-item.status-nonEligible .heir-name{text-decoration:line-through;color:var(--fc-text-muted)}.status{font-size:11px;padding:1px 8px;border-radius:10px;border:1px solid var(--fc-surface-edge);color:var(--fc-text-muted)}.status-eligible{color:var(--fc-semantic-green);border-color:var(--fc-semantic-green)}.status-nonEligible{color:var(--fc-semantic-red);border-color:var(--fc-semantic-red)}.total.is-incomplete{color:var(--fc-semantic-amber)}.tree-card family-tree-view{display:block;height:640px;border:1px solid var(--fc-surface-edge);border-radius:8px;overflow:hidden}#account{display:flex;align-items:center}.auth-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100}.auth-card{width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;padding:20px}.auth-card h2{margin:0;font-size:18px}.auth-hint{margin:0;color:var(--fc-text-muted);font-size:13px}.auth-card input{background:var(--fc-surface-page);border:1px solid var(--fc-surface-edge);border-radius:8px;color:var(--fc-text-ink);font:inherit;padding:8px 10px}.auth-card input:focus{outline:1px solid var(--fc-brand-olive)}.auth-error{margin:0;color:var(--fc-semantic-red);font-size:13px}.auth-actions{display:flex;gap:10px}.linklike{background:none;border:0;color:var(--fc-semantic-blue);cursor:pointer;font:inherit;font-size:13px;padding:0}.linklike:hover{text-decoration:underline}.lang-toggle button{font-size:12px;padding:5px 12px}.header-actions .lang-toggle{margin-right:8px}.title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}.title-row h1{margin:0}.title-row .case-bar{flex:1;min-width:300px}.card-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-hd h2{margin:0}.tree-wrap{position:relative}#reason-card{position:absolute;top:12px;left:12px;z-index:5;width:min(260px,calc(100% - 24px));max-height:calc(100% - 24px);overflow-y:auto;box-shadow:0 14px 34px #00000073}.kad{background:var(--fc-surface-raised);border:1px solid var(--fc-semantic-green);border-radius:12px;overflow:hidden}.kad .sec-h{background:var(--fc-semantic-green);color:var(--fc-surface-page);font-size:12.5px;font-weight:700;padding:6px 13px}.kad .sec-b{padding:9px 13px 11px;font-size:13.5px;border-top:1px solid var(--fc-surface-edge)}.kad .sec-b+.sec-h{border-top:0}.kad .ya{color:var(--fc-semantic-green);font-weight:700}.kad .tidak{color:var(--fc-semantic-red);font-weight:700}.kad .lead{margin:0 0 5px;font-size:13px;color:var(--fc-text-muted)}.kad .mark-ok{color:var(--fc-semantic-green);font-weight:700}.kad .mark-no{color:var(--fc-semantic-red);font-weight:700}.kad .cond{display:flex;gap:7px;align-items:flex-start;margin-top:4px;font-weight:400}.case-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.case-id{display:flex;align-items:center;gap:10px;min-width:0}.case-name{background:none;border:0;padding:0;font:inherit;font-size:15px;font-weight:700;color:var(--fc-text-ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}.case-name:hover{color:var(--fc-semantic-blue);text-decoration:underline}.case-name.placeholder{color:var(--fc-text-muted);font-weight:500;font-style:italic}.case-name-input{background:var(--fc-surface-input);border:1px solid var(--fc-surface-edge);border-radius:8px;color:var(--fc-text-ink);font:inherit;font-size:14px;padding:6px 10px;max-width:340px}.case-name-input:focus{outline:1px solid var(--fc-brand-olive)}.case-status{font-size:12px;white-space:nowrap}.case-status.saved{color:var(--fc-semantic-green)}.case-status.unsaved{color:var(--fc-semantic-amber)}.case-status.error{color:var(--fc-semantic-red)}.case-actions{display:flex;gap:8px;flex-wrap:wrap}.kes-card{width:min(560px,calc(100vw - 32px))}.kes-panel-foot{display:flex;justify-content:flex-end}.kes-list{display:flex;flex-direction:column;gap:8px;max-height:48vh;overflow-y:auto}.kes-row{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border:1px solid var(--fc-surface-edge);border-radius:10px;background:var(--fc-surface-input)}.kes-row.open{border-color:#f9da0659;background:var(--fc-surface-raised)}.kes-row .line1{display:flex;align-items:center;gap:8px;min-width:0}.kes-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:14px;font-weight:600;color:var(--fc-text-ink)}.kes-row button.name{background:none;border:0;padding:0;font:inherit;cursor:pointer}.kes-row button.name:hover{color:var(--fc-semantic-blue);text-decoration:underline}.kes-row .pill{font-size:11px;font-weight:600;color:var(--fc-brand-olive);border:1px solid var(--fc-brand-olive);border-radius:999px;padding:2px 9px;white-space:nowrap}.kes-row .line2{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.kes-row .when{font-size:12px;color:var(--fc-text-muted)}.kes-row .ops{display:flex;gap:14px}.kes-row .ops button{background:none;border:0;padding:0;font:inherit;font-size:12.5px;cursor:pointer;color:var(--fc-semantic-blue)}.kes-row .ops button.danger{color:var(--fc-semantic-red)}.kes-row .ops button:hover{text-decoration:underline}.kes-row input{flex:1;min-width:0}#site-nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}#site-nav a{color:var(--fc-text-muted);text-decoration:none;font-size:14px;padding:6px 12px;border-radius:8px}#site-nav a:hover{color:var(--fc-text-ink);background:var(--fc-surface-nav-active)}#site-nav a.active{color:var(--fc-brand-olive);background:var(--fc-surface-nav-active);font-weight:600}html[data-theme=dark] #site-nav a.active{color:var(--fc-brand-gold)}#account{display:flex;gap:8px;align-items:center}.account-chip{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page[hidden]{display:none}.hero{padding:48px 0 32px}.hero h1{margin:0 0 10px;font-size:34px;letter-spacing:.3px}.hero-sub{margin:0 0 20px;color:var(--fc-text-muted);font-size:17px;max-width:640px}.hero-actions{display:flex;gap:12px}.hero-cta{font-size:16px;padding:10px 22px;text-decoration:none}.hero-note{margin:16px 0 0;color:var(--fc-text-muted);font-size:14px}.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.home-card h3{margin:0 0 6px;font-size:16px}.home-card p{margin:0 0 14px;color:var(--fc-text-muted);font-size:14px}.about{max-width:760px}.about-card h2{margin:0 0 12px}.about-card h3{margin:18px 0 6px;font-size:15px}.about-card p{margin:0;color:var(--fc-text-ink)}.auth-modal[hidden]{display:none}.account{position:relative}.account-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--card-edge);border-radius:8px;display:flex;flex-direction:column;min-width:140px;padding:6px;gap:2px;z-index:60}.account-menu .linklike{text-align:left;padding:6px 8px;border-radius:6px;color:var(--text);font-size:14px}.account-menu .linklike:hover{background:var(--bg)}.account-menu[hidden]{display:none}.usage-tip,.usage-modal{position:absolute;z-index:60;background:var(--fc-surface-card);border:1px solid var(--fc-surface-edge);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--fc-text-ink);box-shadow:0 4px 14px #00000026;min-width:170px}.usage-modal{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;height:fit-content;width:fit-content;min-width:240px;z-index:80}.usage-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0}.usage-bar{display:inline-block;width:64px;height:5px;border-radius:3px;background:var(--fc-surface-edge);overflow:hidden}.usage-fill{display:block;height:100%;background:var(--fc-semantic-blue);border-radius:3px}.usage-line{margin:6px 0}
