:root{
    --primary:#0b67ad;
    --primary-dark:#074d84;
    --accent:#16a6a0;
    --bg:#eef3f8;
    --card:#ffffff;
    --text:#172033;
    --muted:#718096;
    --border:#dbe4ee;
    --red:#d62f3d;
    --red-soft:#fff0f1;
    --green:#12845a;
}
*{box-sizing:border-box}
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
    background:
        radial-gradient(circle at 15% 0%,rgba(11,103,173,.08),transparent 28%),
        linear-gradient(180deg,#f4f8fc 0%,#eaf0f6 100%);
    color:var(--text)
}
.topbar{
    position:sticky;top:0;z-index:50;color:#fff;
    background:linear-gradient(135deg,#064d87 0%,#087bc4 58%,#0c9a9a 100%);
    box-shadow:0 5px 22px rgba(6,77,135,.25)
}
.brand{
    width:min(1240px,calc(100% - 28px));margin:auto;min-height:68px;
    display:flex;align-items:center;gap:12px
}
.brand-icon{
    width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
    background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);font-weight:900
}
.brand-title{font-weight:900;font-size:17px}.brand-subtitle{font-size:11px;opacity:.82;margin-top:2px}
.app-version{margin-left:auto;font-size:9px;opacity:.55}
.container{width:min(1240px,calc(100% - 28px));margin:auto;padding:28px 0 50px}
.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}
.eyebrow{font-size:9px;letter-spacing:.14em;color:var(--primary);font-weight:900;margin-bottom:3px}
.page-head h1{margin:0 0 5px;font-size:clamp(25px,4vw,34px);letter-spacing:-.02em}
.page-head p{margin:0;color:var(--muted);font-size:13px}
.summary{text-align:right}.summary-number{font-size:25px;font-weight:900;display:block}.summary-label{font-size:11px;color:var(--muted)}
.filter-panel{
    background:rgba(255,255,255,.95);border:1px solid var(--border);border-radius:16px;
    padding:15px;margin-bottom:18px;box-shadow:0 8px 28px rgba(34,56,78,.07)
}
.filter-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:11px;align-items:end}
.field label{display:block;font-size:11px;font-weight:800;color:#59687a;margin-bottom:6px}
input,select{
    width:100%;min-height:42px;border:1px solid #d6e0ea;border-radius:10px;background:#fff;
    color:var(--text);padding:8px 11px;outline:none;font-size:13px
}
input:focus,select:focus{border-color:#58a9d8;box-shadow:0 0 0 3px rgba(11,103,173,.1)}
.input-icon{position:relative}.input-icon>span{position:absolute;left:11px;top:10px;color:var(--primary);font-weight:900;z-index:1}
.input-icon input{padding-left:32px}
.filter-actions{display:flex;gap:7px}
.btn{
    min-height:42px;padding:0 15px;border-radius:10px;border:1px solid transparent;
    display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;
    font-weight:800;font-size:12px
}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-light{background:#f7f9fc;border-color:var(--border);color:#475467}.btn-age{background:#eaf8f3;border-color:#bfe8d7;color:#08734d}.btn-age:hover{background:#dff4eb}
.cards{display:grid;grid-template-columns:1fr;gap:17px}
.kk-card{
    background:var(--card);border:1px solid #d4dee9;border-radius:18px;overflow:hidden;
    box-shadow:0 8px 28px rgba(28,48,70,.09);transition:.2s ease
}
.kk-card:hover{box-shadow:0 12px 34px rgba(28,48,70,.13)}
.kk-card.card-unsaved{
    border:2px solid var(--red);
    box-shadow:0 10px 30px rgba(214,47,61,.18)
}
.kk-card.card-unsaved .identity-row{background:linear-gradient(90deg,#fff0f1,#fff8f8)}
.identity-row{
    min-height:63px;padding:10px 15px;display:flex;align-items:center;gap:9px;
    border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#f8fbfe);min-width:0
}
.kk-number{font-size:15px;font-weight:950;letter-spacing:.02em;white-space:nowrap}
.identity-divider{color:#aebdcb}.address-inline{min-width:0;flex:1}
.address-inline strong{display:block;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-inline small{display:block;margin-top:3px;color:#68798b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-count{
    font-size:10px;font-weight:900;color:#075b95;background:#e6f4ff;
    padding:7px 10px;border-radius:20px;white-space:nowrap;border:1px solid #cce8fa
}
.table-wrap{width:100%;overflow:visible}
.member-table{width:100%;border-collapse:collapse;table-layout:fixed}
.col-no{width:48px}.col-name{width:auto}.col-nik{width:235px}.col-age{width:70px}.col-status{width:270px}
.member-table th{
    background:#e9f1f8;color:#526579;font-size:9px;letter-spacing:.07em;font-weight:900;
    text-align:left;padding:10px 13px;border-bottom:1px solid #d4e0eb;white-space:nowrap
}
.member-table td{
    padding:9px 13px;border-bottom:1px solid #edf1f5;font-size:13px;vertical-align:middle;overflow:hidden
}
.member-table tbody tr:last-child td{border-bottom:0}
.member-table tbody tr:hover{background:#f7fbff}
.no-cell{text-align:center;color:#718096;font-weight:700}
.name-cell{font-weight:800;white-space:nowrap;text-overflow:ellipsis}
.nik-cell{font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis}
.status-cell{overflow:visible!important}
.status-select{width:100%;min-height:37px;font-weight:800;padding:6px 9px}
.member-row.row-status .status-select{border-color:#cdd8e3}
.member-row.row-unsaved{background:#ffe2e4!important}
.member-row.row-unsaved td{border-bottom-color:#f2b9be}
.member-row.row-unsaved .status-select{border-color:var(--red);box-shadow:0 0 0 2px rgba(214,47,61,.08)}
.member-row.saving{opacity:.55}
.card-save-area{
    min-height:58px;padding:9px 14px;display:flex;align-items:center;justify-content:space-between;
    gap:12px;background:linear-gradient(180deg,#fbfdff,#f4f8fb);border-top:1px solid var(--border)
}
.btn-save-card{
    border:0;background:linear-gradient(135deg,#d62f3d,#ef4655);color:#fff;border-radius:9px;
    min-height:38px;padding:0 16px;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(214,47,61,.22)
}
.btn-save-card:hover{filter:brightness(.94)}.btn-save-card:disabled{opacity:.6;cursor:wait}
.kk-save-state{font-size:10px;color:#728398;font-weight:700}.kk-save-state.pending{color:var(--red);font-weight:900}
.save-message{min-height:0;margin-bottom:0;font-size:12px;font-weight:800}
.save-message.success,.save-message.error{padding:10px 13px;margin-bottom:13px;border-radius:10px}
.save-message.success{color:#12623f;background:#eaf8f1;border:1px solid #cceedd}
.save-message.error{color:#9b3030;background:#fff0f0;border:1px solid #ffd1d1}
.alert{padding:12px 14px;border-radius:12px;background:#fff5e8;color:#86500b;border:1px solid #f6d8ad;margin-bottom:17px;font-size:12px}
.empty{text-align:center;background:#fff;border:1px solid var(--border);border-radius:18px;padding:50px 20px}
.empty-icon{font-size:34px}.empty h3{margin:10px 0 4px}.empty p{color:var(--muted);margin:0}

@media(max-width:900px){
    .filter-form{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}
    .col-nik{width:200px}.col-age{width:60px}.col-status{width:230px}
}
@media(max-width:650px){
    .container{width:calc(100% - 12px);padding:14px 0 32px}
    .brand{width:calc(100% - 16px);min-height:60px}
    .brand-icon{width:35px;height:35px}.brand-title{font-size:15px}.brand-subtitle{font-size:9px}
    .page-head{padding:0 2px;align-items:start}.summary{display:none}
    .page-head h1{font-size:23px}.page-head p{font-size:11px}
    .filter-panel{padding:10px;border-radius:13px}
    .filter-form{grid-template-columns:1fr}.search-field{grid-column:auto}
    .filter-actions{display:grid;grid-template-columns:1fr 1fr}
    .cards{gap:12px}
    .identity-row{padding:9px 10px;gap:6px;min-height:56px}
    .kk-number{font-size:12px;max-width:43%;overflow:hidden;text-overflow:ellipsis}
    .identity-divider{font-size:12px}
    .address-inline strong{font-size:10px}.address-inline small{font-size:8px}
    .member-count{font-size:8px;padding:5px 6px}
    .member-table{width:100%;table-layout:fixed}
    .col-no{width:27px}.col-name{width:auto}.col-nik{width:27%}.col-age{width:11%}.col-status{width:31%}
    .member-table th{font-size:8px;padding:9px 4px}
    .member-table td{font-size:10px;padding:8px 4px}
    .name-cell{font-size:10px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .nik-cell{font-size:9px!important;letter-spacing:0;overflow:hidden;text-overflow:ellipsis}
    .status-select{min-height:36px;width:100%;font-size:9px;padding:6px 15px 6px 5px;border-radius:8px}
    .card-save-area{min-height:51px;padding:8px 9px}
    .kk-save-state{font-size:8px}.btn-save-card{min-height:35px;padding:0 10px;font-size:9px;white-space:nowrap}
}
@media(max-width:370px){
    .kk-number{font-size:10px;max-width:40%}.member-count{display:none}
    .col-nik{width:27%}.col-age{width:12%}.col-status{width:36%}
    .member-table th{font-size:7px}.member-table td{padding:7px 3px}
    .status-select{font-size:8px}
}

/* V8 DESIL */
.kk-card.desil-missing{border-color:#dc4545;box-shadow:0 10px 30px rgba(214,47,61,.15)}
.kk-card.desil-complete{border-color:#36a46b;box-shadow:0 10px 30px rgba(18,132,90,.15)}
.kk-card.desil-missing .identity-row{background:linear-gradient(100deg,#fff0f0,#fff)}
.kk-card.desil-complete .identity-row{background:linear-gradient(100deg,#edfff4,#fff)}
.desil-national-badge{font-size:10px;font-weight:800;color:#8a5900;background:#fff2ce;border:1px solid #efcf83;border-radius:18px;padding:6px 9px;white-space:nowrap}
.desil-national-badge strong{font-size:13px}
.desil-panel{padding:9px 14px;border-bottom:1px solid var(--border);background:#fbfdff}
.desil-missing .desil-panel{background:#fff6f6}.desil-complete .desil-panel{background:#f1fff7}
.desil-question{display:flex;align-items:center;justify-content:space-between;gap:10px}
.desil-question strong{display:block;font-size:11px}.desil-question small{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.desil-choice{display:flex;gap:6px}.desil-choice button{min-width:58px;height:33px;border-radius:8px;font-size:10px;font-weight:900;cursor:pointer}
.desil-yes{border:1px solid #43a875;background:#eafff3;color:#11764d}.desil-no{border:1px solid #e2a4a4;background:#fff;color:#a12630}
.desil-no.selected,.desil-yes.selected{color:#fff}.desil-no.selected{background:#d62f3d}.desil-yes.selected{background:#159866}
.desil-custom{margin-top:8px;display:grid;grid-template-columns:auto 110px auto;gap:7px;align-items:center}
.desil-custom label{font-size:10px;font-weight:800;color:#64748b}.desil-custom select{min-height:34px;font-size:10px}
.btn-save-desil{height:34px;border:0;border-radius:8px;background:#159866;color:#fff;font-size:10px;font-weight:900;padding:0 12px}
.desil-result{font-size:11px;color:#11764d;font-weight:900}
.desil-simple{margin-top:0;grid-template-columns:minmax(0,1fr) 160px auto}
.desil-label-wrap label{display:block;font-size:10px;font-weight:900;color:#334155}
.desil-label-wrap small{display:block;font-size:9px;color:var(--muted);margin-top:2px}
@media(max-width:650px){
 .desil-national-badge{font-size:8px;padding:5px 6px}.desil-national-badge strong{font-size:10px}
 .desil-panel{padding:8px 9px}.desil-question strong{font-size:9px}.desil-question small{font-size:8px}
 .desil-choice button{min-width:48px;height:30px;font-size:9px}
 .desil-simple{grid-template-columns:1fr 110px}.desil-simple .desil-label-wrap{grid-column:1/-1}.desil-simple .btn-save-desil{grid-column:1/-1;width:100%}
}

.age-cell{text-align:center;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}

/* V10 BATCH JSON SYNC */
.sync-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(100deg,#eef8ff,#f5fff9);border:1px solid #cfe2ee;border-radius:15px;padding:12px 14px;margin-bottom:14px;box-shadow:0 6px 20px rgba(28,48,70,.06)}
.sync-title{font-size:12px;font-weight:950;color:#173b55}.sync-meta{margin-top:3px;font-size:10px;color:#64748b}.sync-meta strong{color:#0b6a49}.btn-sync{background:#087f5b;color:#fff;box-shadow:0 5px 13px rgba(8,127,91,.18)}.btn-sync:hover{background:#066c4d}.btn-sync:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:650px){.sync-panel{align-items:stretch;flex-direction:column;gap:8px}.btn-sync{width:100%;min-height:38px}.sync-title{font-size:11px}.sync-meta{font-size:9px}}


/* V10.3.1 DESIL SIMPLE: no Yes/No question; button follows dropdown choice */
.btn-save-desil{transition:background .15s ease,box-shadow .15s ease}
.btn-save-desil.is-national{background:#159866;color:#fff}
.btn-save-desil.is-custom{background:#f59e0b;color:#fff}
.btn-save-desil:disabled{opacity:.65;cursor:not-allowed}
