:root{
  --bg:#f4f5f7; --card:#fff; --header:#0f1b3d;
  --text:#1a1d29; --sub:#6c757d;
  --color-1:#3457D5; --color-2:#E07A5F; --color-3:#3D9970; --color-4:#C44E52; --color-5:#8172B3; --color-6:#937860;
  --warn:#d98c1f; --warn-bg:#fdedd3;
  --gap:16px; --radius:10px;
  color-scheme: light dark;
}
/* ===== Dark Mode (fondasi) =====
   Mengikuti preferensi sistem otomatis. Cakupan saat ini: variabel inti (:root)
   dan app shell mobile (#cma-app --cma-*), karena elemen² itu sudah konsisten
   pakai CSS variable. Sejumlah komponen lama masih pakai warna putih hardcoded
   (#fff) di luar cakupan ini -- lihat catatan di gof-app-fase0-architecture. */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#101116; --card:#1b1c22; --header:#05070f;
    --text:#eceef2; --sub:#9498a3;
    --warn-bg:#3a2d12;
  }
  #cma-app{
    --cma-bg:#101116; --cma-card:#1b1c22; --cma-text:#eceef2;
    --cma-sub:#9498a3; --cma-line:#2a2c34; --cma-accent-soft:#1b2140;
  }
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;}
.wrap{max-width:1440px;margin:0 auto;padding:18px;}
header{background:var(--header);color:#fff;padding:22px 26px;border-radius:var(--radius);margin-bottom:16px;}
header h1{font-size:19px;font-weight:600;}
header p{font-size:12.5px;color:rgba(255,255,255,.65);margin-top:4px;}
.source-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;}
.source-chip{font-size:12px;padding:6px 12px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);}
.source-chip b{color:#fff;}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--gap);margin-bottom:var(--gap);}
.kpi-card{background:var(--card);border-radius:var(--radius);padding:16px 20px;box-shadow:none;border:1px solid #e9ecf1;}
.kpi-label{font-size:11.5px;color:var(--sub);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;}
.kpi-value{font-size:24px;font-weight:700;}
.kpi-sub{font-size:11.5px;color:var(--sub);margin-top:4px;}
.chart-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:var(--gap);margin-bottom:var(--gap);}
.chart-container{background:var(--card);border-radius:var(--radius);padding:18px 22px;box-shadow:none;border:1px solid #e9ecf1;}
.chart-container h3{font-size:14px;font-weight:600;margin-bottom:4px;}
.chart-container .sub{font-size:12px;color:var(--sub);margin-bottom:12px;}
.chart-container canvas{max-height:290px;}
.table-section{background:var(--card);border-radius:var(--radius);padding:18px 22px;box-shadow:none;border:1px solid #e9ecf1;margin-bottom:var(--gap);}
.table-section h3{font-size:14px;font-weight:600;margin-bottom:2px;}
.table-section .sub{font-size:12px;color:var(--sub);margin-bottom:12px;}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.filter-group{display:flex;flex-direction:column;gap:4px;}
.filter-group label{font-size:11px;color:var(--sub);text-transform:uppercase;}
.filter-group select{padding:7px 10px;border-radius:6px;border:1px solid #dcdfe4;font-size:13px;min-width:150px;background:#fff;}
.table-scroll{overflow-x:auto;max-height:560px;overflow-y:auto;}
.data-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.data-table thead th{position:sticky;top:0;background:#fafbfc;text-align:left;padding:9px 10px;border-bottom:2px solid #e2e4e8;color:var(--sub);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;cursor:pointer;user-select:none;}
.data-table thead th:hover{color:var(--text);}
.data-table tbody td{padding:8px 10px;border-bottom:1px solid #f0f0f0;white-space:nowrap;}
.data-table tbody tr:hover{background:#f8f9fa;}
.unit-cell{font-weight:700;font-variant-numeric:tabular-nums;}
.badge-src{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:600;}
.badge-src.AUTOCLAIM{background:#e0f3e6;color:#1f9d55;}
.badge-src.REKAJUAL{background:#eef1fb;color:var(--color-1);}
footer{text-align:center;font-size:12px;color:var(--sub);padding:16px 0;}
@media (max-width:768px){.kpi-row{grid-template-columns:repeat(2,1fr);}.chart-row{grid-template-columns:1fr;}}

.section-title{font-size:16px;font-weight:700;margin:24px 0 4px 0;padding-top:6px;border-top:2px solid #e2e4e8;}
.section-desc{font-size:12.5px;color:var(--sub);margin-bottom:14px;}
.status-pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.3px;}
.status-pill.defend{background:#e0f3e6;color:#1f9d55;}
.status-pill.contest{background:#fdedd3;color:#b3720f;}
.status-pill.reclaim{background:#fbe1e1;color:#b3312c;}
.molecule-block{margin-bottom:18px;}
.molecule-block:last-child{margin-bottom:0;}
.molecule-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.molecule-head h4{font-size:13.5px;font-weight:700;}
.comp-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:12px;}
.comp-bar-label{width:150px;flex-shrink:0;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.comp-bar-track{flex:1;background:#eef0f2;border-radius:4px;height:16px;position:relative;overflow:hidden;}
.comp-bar-fill{height:100%;border-radius:4px;}
.comp-bar-fill.gof{background:#3457D5;}
.comp-bar-fill.other{background:#c9ccd1;}
.comp-bar-val{width:110px;flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;}


.freeze-table{border-collapse:separate;border-spacing:0;}
.freeze-col{position:sticky;z-index:3;background:#fafbfc;}
.freeze-col-1{left:0;min-width:90px;}
.freeze-col-2{left:90px;min-width:220px;box-shadow:2px 0 4px -2px rgba(0,0,0,.12);}
.freeze-table tbody td.freeze-col{background:#fff;z-index:2;}
.freeze-table tbody tr:hover td.freeze-col{background:#f8f9fa;}
.nsbu-col{background:#eaf3fc;}
.freeze-table thead th.nsbu-col{background:#d9ebfa;}
.freeze-table tbody tr:hover td.nsbu-col{background:#dcebf8;}
#tbl-pivot.hide-unit .unit-cell{display:none;}
#tbl-pivot.hide-nsbu .nsbu-col{display:none;}

/* ===== 5-Menu Navigation ===== */
.menu-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;background:var(--card);border-radius:var(--radius);padding:10px 12px;box-shadow:none;border:1px solid #e9ecf1;position:sticky;top:0;z-index:50;}
.menu-btn{border:1px solid #dcdfe4;background:#fff;color:var(--sub);padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;}
.menu-btn:hover{border-color:var(--color-1);color:var(--color-1);}
.menu-btn.active{background:var(--header);color:#fff;border-color:var(--header);}
.menu-panel{display:none;}
.menu-panel.active{display:block;}

/* ===== Insight / Narrative boxes ===== */
.insight-box{background:#f6f9ff;border-left:4px solid var(--color-1);border-radius:8px;padding:13px 16px;font-size:13px;line-height:1.55;margin-bottom:var(--gap);color:#2a2f3e;}
.insight-box b{color:var(--color-1);}
.insight-box .warn-t{color:#b3720f;font-weight:700;}
.insight-box .crit-t{color:#b3312c;font-weight:700;}
.insight-box .good-t{color:#1f9d55;font-weight:700;}
.insight-box.exec{background:#fffdf4;border-left-color:#d9a91f;}
.insight-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--sub);font-weight:700;margin-bottom:5px;}

/* ===== Sub-tabs (RS Fokus) ===== */
.subtab-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.subtab-btn{border:1px solid #dcdfe4;background:#fafbfc;color:var(--sub);padding:6px 13px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;}
.subtab-btn.active{background:var(--color-1);color:#fff;border-color:var(--color-1);}
.subtab-panel{display:none;}
.subtab-panel.active{display:block;}
.rs-status-pill{display:inline-block;padding:3px 11px;border-radius:20px;font-size:11px;font-weight:700;margin-left:8px;vertical-align:middle;}
.rs-status-pill.solid{background:#e0f3e6;color:#1f9d55;}
.rs-status-pill.melemah{background:#fdedd3;color:#b3720f;}
.rs-status-pill.kritis{background:#fbe1e1;color:#b3312c;}
.rs-status-pill.stabil{background:#eef1fb;color:#3457D5;}

/* ===== Evaluasi APM (ringkasan status per sheet KK GOF) ===== */
.apm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;}
.apm-card{background:var(--card);border-radius:var(--radius);padding:14px 16px;border:1px solid #e9ecf1;}
.apm-card .h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;}
.apm-card .h b{font-size:13.5px;}
.apm-card .finding{font-size:12.5px;color:var(--text);line-height:1.5;margin-bottom:6px;}
.apm-card .action{font-size:11.5px;color:var(--sub);line-height:1.5;}
.apm-card .action b{color:var(--text);}

/* ===== Tajuk Rencana (rekomendasi AI berbasis data) ===== */
.tajuk-wrap{margin-bottom:var(--gap);}
.tajuk-head{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;padding:2px 0;}
.tajuk-head::before{content:'\2261';font-size:13px;color:var(--sub);flex-shrink:0;}
.tajuk-head b{font-size:14px;}
.tajuk-head .tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;background:#eef1fb;color:#3457D5;padding:2px 9px;border-radius:20px;}
.tajuk-head .cnt{font-size:11px;font-weight:700;color:var(--sub);background:#f1f2f5;padding:1px 8px;border-radius:20px;}
.tajuk-head .chev{margin-left:auto;color:var(--sub);font-size:12px;transition:transform .18s ease;}
.tajuk-head.open .chev{transform:rotate(180deg);}
.tajuk-body{max-height:0;overflow:hidden;transition:max-height .22s ease;}
.tajuk-body.open{max-height:800px;}
.tajuk-body-inner{padding-top:8px;}
.tajuk-row{display:flex;align-items:flex-start;gap:8px;padding:6px 2px;border-bottom:1px solid #eef0f2;font-size:12.5px;line-height:1.45;}
.tajuk-row:last-child{border-bottom:none;}
.tajuk-row .dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex-shrink:0;background:var(--color-1);}
.tajuk-row.kritis .dot{background:#c0392b;}
.tajuk-row.perhatian .dot{background:#d98c1f;}
.tajuk-row .src{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--sub);margin-right:3px;}
.tajuk-empty{font-size:12.5px;color:var(--sub);padding:8px 2px;}

/* ===== Generic dropdown/collapsible section (dl = down list) ===== */
.dl-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;padding:2px 0;}
.dl-toggle h3{margin:0;}
.dl-toggle .dl-chev{margin-left:auto;flex-shrink:0;color:var(--sub);font-size:13px;transition:transform .18s ease;}
.dl-toggle.open .dl-chev{transform:rotate(180deg);}
.dl-toggle::before{content:'\2261';font-size:13px;color:var(--sub);flex-shrink:0;}
.dl-collapse{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.dl-collapse.open{max-height:4000px;}
.dl-collapse-inner{padding-top:10px;}

/* ===== Target / achievement ===== */
.target-bar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:6px;}
.target-bar input{padding:7px 10px;border-radius:6px;border:1px solid #dcdfe4;font-size:13px;width:170px;}
.ach-track{flex:1;min-width:200px;background:#eef0f2;height:22px;border-radius:6px;overflow:hidden;position:relative;}
.ach-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#3457D5,#5b7de8);transition:width .4s;}
.ach-label{position:absolute;top:0;left:10px;line-height:22px;font-size:11.5px;font-weight:700;color:#1a1d29;}

/* ===== PICA ===== */
.pica-input{width:100%;padding:5px 7px;border-radius:5px;border:1px solid #dcdfe4;font-size:12px;font-family:inherit;background:#fff;}
select.pica-input{min-width:100px;}
.pica-sev{display:inline-block;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:700;}
.pica-sev.kritis{background:#fbe1e1;color:#b3312c;}
.pica-sev.perhatian{background:#fdedd3;color:#b3720f;}
.pica-sev.info{background:#eef1fb;color:#3457D5;}
.pica-editable{white-space:normal;border-radius:5px;padding:4px 6px;cursor:text;border:1px dashed transparent;min-width:140px;}
.pica-editable:hover{border-color:#dcdfe4;}
.pica-editable:focus{outline:none;border:1px solid var(--color-1);background:#fbfcff;}
.pica-editable.is-override{background:#fffbea;}
.pica-editable[data-ph]:empty:before{content:attr(data-ph);color:#b9bdc7;font-style:italic;}
.key-issue-list{margin:0 0 12px 0;padding:0;list-style:none;}
.key-issue-list li{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;line-height:1.5;font-size:13.5px;background:var(--card);border-radius:8px;padding:8px 10px;box-shadow:0 1px 2px rgba(0,0,0,.05);}
.key-issue-list li .ki-text{flex:1;border-radius:5px;padding:2px 4px;cursor:text;}
.key-issue-list li .ki-text:focus{outline:none;border:1px solid var(--color-1);background:#fbfcff;}
.key-issue-list li .ki-del{cursor:pointer;color:var(--sub);font-weight:700;padding:0 4px;border-radius:4px;flex-shrink:0;}
.key-issue-list li .ki-del:hover{color:#b3312c;background:#fbe1e1;}
.btn-add-row, .btn-add-col{background:#fff;border:1px solid #dcdfe4;color:var(--color-1);font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:7px;cursor:pointer;margin-right:8px;}
.btn-add-row:hover, .btn-add-col:hover{background:#f2f5ff;border-color:var(--color-1);}
.pica-toolbar{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.pica-col-chips{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:6px;}
.pica-col-chip{display:inline-flex;align-items:center;gap:5px;background:#eef1fb;color:#3457D5;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:12px;}
.pica-col-chip .chip-del{cursor:pointer;font-weight:700;}
.pica-col-chip .chip-del:hover{color:#b3312c;}
.pica-del-btn{cursor:pointer;color:var(--sub);font-weight:700;font-size:15px;text-align:center;}
.pica-del-btn:hover{color:#b3312c;}
.pica-grip{cursor:grab;color:var(--sub);text-align:center;user-select:none;font-size:12px;}
.pica-grip:active{cursor:grabbing;}
.opp-card.opp-drop{border-color:var(--color-1)!important;background:#eef1fb!important;}
.data-table tbody tr.pica-drop-hover td{border-top:2px solid var(--color-1);}

/* ===== Forecast ===== */
.scenario-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--gap);margin-bottom:var(--gap);}
.scenario-card{background:var(--card);border-radius:var(--radius);padding:16px 20px;box-shadow:none;border:1px solid #e9ecf1;border-top:3px solid #c9ccd1;}
.scenario-card.base{border-top-color:var(--color-1);}
.scenario-card.stretch{border-top-color:#1f9d55;}
.scenario-card.cons{border-top-color:#b3720f;}

.coe-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.coe-tag{font-size:11px;padding:4px 10px;border-radius:6px;font-weight:600;color:#fff;}
.coe-open{background:#ea580c;}
.coe-tag.coe-mrccc{background:var(--color-1);}
.coe-tag.coe-rsup{background:var(--color-3);}
.coe-tag.coe-rspi{background:var(--color-5);}
.coe-tag.coe-produk{background:var(--color-2);}
.coe-tag.coe-review{background:var(--color-6);}
.coe-tag.coe-catatan{background:#6b7280;}
.coe-tag.coe-medistra{background:#0d9488;}
.coe-tag.coe-meeting{background:#be185d;}
.coe-tag.coe-kunjungan{background:#16a34a;}
.coe-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.coe-dow{font-size:11px;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.4px;text-align:center;padding-bottom:4px;}
.coe-cell{background:#fafbfc;border:1px solid #e9ebee;border-radius:8px;min-height:88px;padding:6px 7px;font-size:11px;display:flex;flex-direction:column;gap:4px;}
.coe-cell.coe-empty{background:transparent;border:none;}
.coe-date{font-size:12px;font-weight:700;color:var(--sub);margin-bottom:2px;}
.coe-ev{border-radius:5px;padding:3px 5px;font-size:10.5px;line-height:1.35;color:#fff;font-weight:500;display:flex;flex-direction:column;gap:2px;}
.coe-ev-toprow{display:flex;align-items:center;gap:4px;}
.coe-ev-bottomrow{display:flex;align-items:flex-start;gap:3px;}
.coe-ev.coe-mrccc{background:var(--color-1);}
.coe-ev.coe-rsup{background:var(--color-3);}
.coe-ev.coe-rspi{background:var(--color-5);}
.coe-ev.coe-produk{background:var(--color-2);}
.coe-ev.coe-review{background:var(--color-6);}
.coe-ev.coe-catatan{background:#6b7280;}
.coe-ev.coe-medistra{background:#0d9488;}
.coe-ev.coe-meeting{background:#be185d;}
.coe-ev.coe-kunjungan{background:#16a34a;}
.coe-ev-text{flex:1;outline:none;cursor:text;min-width:0;word-break:break-word;}
.coe-ev-text:focus{background:rgba(255,255,255,.2);border-radius:3px;}
.coe-ev-cat{font-size:9px;background:rgba(255,255,255,.25);color:#fff;border:none;border-radius:3px;padding:1px 3px;width:100%;cursor:pointer;}
.coe-ev-cat option{color:#222;}
.coe-ev-del{cursor:pointer;font-weight:700;flex-shrink:0;opacity:.8;}
.coe-ev-del:hover{opacity:1;}
.coe-ev-check{cursor:pointer;flex-shrink:0;font-size:13px;line-height:1;user-select:none;}
.coe-ev-check:hover{opacity:.8;}
.coe-ev.coe-ev-done{opacity:.6;}
.coe-ev.coe-ev-done .coe-ev-text{text-decoration:line-through;}
.coe-ev.coe-ev-overdue{border:2px solid #dc2626;box-shadow:0 0 0 2px rgba(220,38,38,.28);animation:coe-pulse 1.6s ease-in-out infinite;position:relative;}
.coe-ev-warn{flex-shrink:0;font-size:11px;line-height:1;}
@keyframes coe-pulse{0%,100%{box-shadow:0 0 0 2px rgba(220,38,38,.28);}50%{box-shadow:0 0 0 5px rgba(220,38,38,.5);}}
.coe-cell.coe-cell-overdue{border-color:#dc2626;background:#fef2f2;}
.coe-ev-grip{cursor:grab;opacity:.6;font-size:11px;flex-shrink:0;line-height:1;}
.coe-ev-grip:active{cursor:grabbing;}
.coe-cell.coe-dragover{border-color:var(--color-1);background:#eef1fb;}
.coe-ev.coe-ev-dragover-top{box-shadow:0 -3px 0 0 #fff inset;}
.coe-ev.coe-ev-dragover-bottom{box-shadow:0 3px 0 0 #fff inset;}
.coe-add-ev{font-size:10px;color:var(--sub);border:1px dashed #d5d8dd;border-radius:5px;padding:2px 5px;text-align:center;cursor:pointer;margin-top:auto;}
.coe-add-ev:hover{border-color:var(--color-1);color:var(--color-1);}
.coa-focus-editable{outline:none;cursor:text;border-radius:5px;padding:2px 4px;}
.coa-focus-editable:focus{background:#fbfcff;border:1px solid var(--color-1);}
.coa-layout{display:flex;flex-direction:column;gap:14px;}
.coa-grid-col{width:100%;}
.coa-focus-col{width:100%;}
.coa-focus-box{margin-top:0;min-height:60px;}
.coa-focus-list{display:flex;flex-direction:column;gap:6px;margin:8px 0;}

/* ===================== Mobile-first Agenda/COE (Today/Week/Month) ===================== */
.coe-desktop{display:block;}
.coe-mobile{display:none;}
@media (max-width:1024px){
  .coe-desktop{display:none;}
  .coe-mobile{display:block;}
}
.cm-header{background:linear-gradient(135deg,var(--color-1),#4a6ae8);border-radius:16px;padding:18px 18px 16px;color:#fff;margin-bottom:14px;}
.cm-date-big{font-size:15px;font-weight:600;opacity:.92;}
.cm-date-big .cm-date-num{font-size:22px;font-weight:800;display:block;margin-top:1px;}
.cm-progress-wrap{margin-top:14px;}
.cm-progress-label{font-size:12px;opacity:.85;margin-bottom:6px;display:flex;justify-content:space-between;}
.cm-progress-bar{height:10px;border-radius:6px;background:rgba(255,255,255,.25);overflow:hidden;}
.cm-progress-fill{height:100%;background:#fff;border-radius:6px;transition:width .2s ease;}
.cm-summary-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.cm-schip{background:rgba(255,255,255,.18);border-radius:9px;padding:7px 10px;font-size:11.5px;min-width:64px;}
.cm-schip b{display:block;font-size:16px;font-weight:800;}
.cm-search-row{margin-bottom:10px;}
.cm-search-row input{width:100%;box-sizing:border-box;border:1px solid #dcdfe4;border-radius:10px;padding:11px 14px;font-size:16px;background:#fff;}
.cm-search-row input:focus{outline:none;border-color:var(--color-1);}
.cm-filter-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;overflow-x:auto;padding-bottom:2px;}
.cm-chip{flex-shrink:0;font-size:12px;font-weight:600;padding:7px 13px;border-radius:20px;border:1px solid #dcdfe4;background:#fff;color:var(--sub);cursor:pointer;user-select:none;}
.cm-chip.active{background:var(--color-1);border-color:var(--color-1);color:#fff;}
.cm-view-tabs{display:flex;gap:6px;background:#eef0f3;border-radius:11px;padding:4px;margin-bottom:12px;}
.cm-tab{flex:1;text-align:center;padding:9px 0;font-size:13px;font-weight:700;border:none;background:transparent;border-radius:8px;color:var(--sub);cursor:pointer;}
.cm-tab.active{background:#fff;color:var(--color-1);box-shadow:0 1px 3px rgba(0,0,0,.12);}
.cm-week-nav{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;}
.cm-day-btn{flex:1;min-width:42px;text-align:center;padding:8px 2px;border-radius:10px;border:1px solid #e3e5ea;background:#fff;cursor:pointer;}
.cm-day-btn .cm-dow{font-size:10px;color:var(--sub);font-weight:700;text-transform:uppercase;}
.cm-day-btn .cm-dnum{font-size:14px;font-weight:800;color:var(--text);margin-top:2px;}
.cm-day-btn.today{border-color:var(--color-1);}
.cm-day-btn.selected{background:var(--color-1);border-color:var(--color-1);}
.cm-day-btn.selected .cm-dow, .cm-day-btn.selected .cm-dnum{color:#fff;}
.cm-day-btn.has-dot .cm-dnum{position:relative;}
.cm-day-btn.has-dot .cm-dnum::after{content:'';position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-2);}
.cm-day-btn.selected.has-dot .cm-dnum::after{background:#fff;}
.cm-week-head{font-size:12.5px;font-weight:700;color:var(--sub);margin:14px 0 8px;}
.cm-list{display:grid;grid-template-columns:1fr;gap:12px;}
@media (min-width:641px) and (max-width:1024px){ .cm-list{grid-template-columns:repeat(2,1fr);} }
.cm-empty{grid-column:1/-1;text-align:center;color:var(--sub);font-size:13px;padding:36px 10px;background:#fafbfc;border-radius:12px;border:1px dashed #dcdfe4;}
.cm-card{background:#fff;border-radius:14px;padding:14px 15px;box-shadow:0 1px 4px rgba(20,25,40,.08);border-left:5px solid var(--color-1);cursor:pointer;transition:transform .15s ease;}
.cm-card:active{transform:scale(.98);}
.cm-card.cm-cat-mrccc{border-left-color:var(--color-1);}
.cm-card.cm-cat-rsup{border-left-color:var(--color-3);}
.cm-card.cm-cat-rspi{border-left-color:var(--color-5);}
.cm-card.cm-cat-medistra{border-left-color:#0d9488;}
.cm-card.cm-cat-produk{border-left-color:var(--color-2);}
.cm-card.cm-cat-review{border-left-color:var(--color-6);}
.cm-card.cm-cat-catatan{border-left-color:#6b7280;}
.cm-card.cm-cat-meeting{border-left-color:#be185d;}
.cm-card.cm-cat-kunjungan{border-left-color:#16a34a;}
.cm-card.cm-done{opacity:.6;}
.cm-card.cm-done .cm-card-title{text-decoration:line-through;}
.cm-card.cm-overdue{box-shadow:0 0 0 2px rgba(220,38,38,.35);}
.cm-card-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.cm-card-cat{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--sub);}
.cm-card-time{font-size:12px;font-weight:700;color:var(--text);margin-left:auto;}
.cm-card-check{font-size:18px;line-height:1;cursor:pointer;color:var(--color-1);flex-shrink:0;}
.cm-card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;word-break:break-word;}
.cm-card-meta{font-size:12.5px;color:var(--sub);margin-top:2px;}
.cm-card-notes{font-size:12px;color:#7a8093;margin-top:6px;background:#f7f8fa;border-radius:8px;padding:7px 9px;}
.cm-card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:10px;}
.cm-card-prio{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;}
.cm-prio-high{background:#fee2e2;color:#b91c1c;}
.cm-prio-medium{background:#fef3c7;color:#92400e;}
.cm-prio-low{background:#e0f2fe;color:#075985;}
.cm-card-status{font-size:11px;color:var(--sub);}
.cm-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:16px;}
.cm-mdow{font-size:10px;font-weight:700;color:var(--sub);text-align:center;text-transform:uppercase;}
.cm-mday{aspect-ratio:1;border-radius:9px;background:#fafbfc;border:1px solid #e9ebee;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;cursor:pointer;position:relative;}
.cm-mday.empty{background:transparent;border:none;cursor:default;}
.cm-mday.today{border-color:var(--color-1);color:var(--color-1);}
.cm-mday.has-ev::after{content:'';position:absolute;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--color-2);}
.cm-mday.overdue{background:#fef2f2;border-color:#dc2626;}
.cm-fab{display:none;position:fixed;right:20px;bottom:26px;width:58px;height:58px;border-radius:50%;background:var(--color-1);color:#fff;font-size:28px;font-weight:400;border:none;box-shadow:0 4px 14px rgba(52,87,213,.45);cursor:pointer;z-index:60;align-items:center;justify-content:center;line-height:0;}
@media (max-width:1024px){ .cm-fab{display:flex;} }
.cm-modal-backdrop{display:none;position:fixed;inset:0;background:rgba(15,20,35,.5);z-index:80;align-items:flex-end;justify-content:center;}
.cm-modal-backdrop.active{display:flex;}
.cm-modal{background:#fff;width:100%;max-width:520px;max-height:88vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:18px 18px 22px;animation:cm-slide-up .2s ease;}
@media (min-width:641px){ .cm-modal-backdrop{align-items:center;} .cm-modal{border-radius:16px;} }
@keyframes cm-slide-up{from{transform:translateY(24px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.cm-modal-head{display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:800;margin-bottom:14px;}
.cm-modal-close{font-size:22px;cursor:pointer;color:var(--sub);line-height:1;}
.cm-modal-body label{display:block;font-size:12px;font-weight:700;color:var(--sub);margin:12px 0 5px;}
.cm-modal-body input, .cm-modal-body select, .cm-modal-body textarea{width:100%;box-sizing:border-box;border:1px solid #dcdfe4;border-radius:9px;padding:10px 12px;font-size:16px;font-family:inherit;background:#fff;}
.cm-modal-body textarea{min-height:64px;resize:vertical;}
.cm-modal-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cm-modal-row2 label{margin-top:0;}
.cm-modal-actions{display:flex;gap:10px;margin-top:18px;}
.cm-modal-actions button{flex:1;padding:12px 0;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;border:none;}
.cm-btn-cancel{background:#f1f2f5;color:var(--text);}
.cm-btn-save{background:var(--color-1);color:#fff;}
.cm-lpm-backdrop{display:none;position:fixed;inset:0;background:rgba(15,20,35,.35);z-index:85;}
.cm-longpress-menu{display:none;flex-direction:column;position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:420px;background:#fff;border-radius:16px 16px 0 0;padding:8px;z-index:90;box-shadow:0 -4px 20px rgba(0,0,0,.2);}
.cm-longpress-menu button{border:none;background:transparent;text-align:left;padding:13px 14px;font-size:14.5px;font-weight:600;color:var(--text);border-radius:9px;cursor:pointer;}
.cm-longpress-menu button:active{background:#f1f2f5;}

/* ===================== CMA — Premium Mobile App Shell ===================== */
/* Di layar <=1024px: seluruh dashboard klasik (.wrap) disembunyikan, diganti app shell #cma-app.
   Mode klasik tetap bisa dibuka (body.cma-classic) dari tab Dashboard / Pengaturan. */
#cma-app{display:none;}
#cma-classic-pill{display:none;}
@media (max-width:1024px){
  body:not(.cma-classic) .wrap{display:none;}
  body:not(.cma-classic) #cma-app{display:block;}
  body.cma-classic #cma-classic-pill{display:flex;}
}
#cma-app{
  --cma-bg:#f6f6f8; --cma-card:#ffffff; --cma-text:#17181c; --cma-sub:#82858f;
  --cma-line:#ececf0; --cma-accent:#3457D5; --cma-accent-soft:#eef1fc;
  --cma-radius:16px;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',Roboto,sans-serif;
  background:var(--cma-bg); min-height:100vh; color:var(--cma-text);
  padding-bottom:calc(84px + env(safe-area-inset-bottom));
  padding-top:env(safe-area-inset-top);
}
.cma-screen{display:none;padding:14px 16px 8px;max-width:640px;margin:0 auto;}
.cma-screen.active{display:block;}
/* ---- Header ---- */
.cma-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;}
.cma-greet{font-size:13px;color:var(--cma-sub);font-weight:500;}
.cma-date{font-size:21px;font-weight:800;letter-spacing:-.3px;margin-top:2px;}
.cma-today-sum{font-size:13px;color:var(--cma-sub);margin-top:4px;}
.cma-today-sum b{color:var(--cma-accent);}
.cma-avatar{width:38px;height:38px;border-radius:50%;background:var(--cma-accent);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
/* ---- Search & filter ---- */
.cma-search-wrap{position:sticky;top:0;z-index:30;background:var(--cma-bg);padding:6px 0 8px;}
.cma-search{display:flex;align-items:center;gap:8px;background:var(--cma-card);border:1px solid var(--cma-line);border-radius:12px;padding:10px 13px;}
.cma-search svg{flex-shrink:0;opacity:.45;}
.cma-search input{border:none;outline:none;background:transparent;font-size:16px;flex:1;min-width:0;font-family:inherit;color:var(--cma-text);}
.cma-filter-toggle{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--cma-sub);padding:10px 2px 4px;cursor:pointer;user-select:none;}
.cma-filter-panel{display:none;background:var(--cma-card);border:1px solid var(--cma-line);border-radius:12px;padding:12px;margin-bottom:8px;}
.cma-filter-panel.open{display:block;}
.cma-filter-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--cma-sub);margin:8px 0 6px;}
.cma-filter-label:first-child{margin-top:0;}
.cma-chiprow{display:flex;gap:6px;flex-wrap:wrap;}
.cma-fchip{font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:18px;border:1px solid var(--cma-line);background:var(--cma-card);color:var(--cma-sub);cursor:pointer;user-select:none;}
.cma-fchip.active{background:var(--cma-accent);border-color:var(--cma-accent);color:#fff;}
/* ---- Collapsible sections ---- */
.cma-sec{background:var(--cma-card);border-radius:var(--cma-radius);border:1px solid var(--cma-line);margin-bottom:10px;overflow:hidden;}
.cma-sec-head{display:flex;align-items:center;gap:10px;padding:14px 15px;cursor:pointer;user-select:none;}
.cma-sec-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.cma-sec-title{font-size:15px;font-weight:700;flex:1;}
.cma-sec-count{font-size:12px;font-weight:700;color:var(--cma-sub);background:var(--cma-bg);border-radius:10px;padding:3px 9px;}
.cma-sec-chev{transition:transform .18s ease;color:var(--cma-sub);}
.cma-sec.open .cma-sec-chev{transform:rotate(180deg);}
.cma-sec-body{display:none;padding:0 12px 12px;}
.cma-sec.open .cma-sec-body{display:block;}
/* ---- Cards ---- */
.cma-card{background:var(--cma-bg);border-radius:13px;padding:13px 14px;margin-bottom:8px;cursor:pointer;}
.cma-card:last-child{margin-bottom:0;}
.cma-card-row{display:flex;align-items:center;gap:11px;}
.cma-check{width:24px;height:24px;border-radius:50%;border:2px solid #c9ccd4;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;}
.cma-card.done .cma-check{background:var(--cma-accent);border-color:var(--cma-accent);}
.cma-card.done .cma-title{text-decoration:line-through;color:var(--cma-sub);}
.cma-title{font-size:15.5px;font-weight:600;flex:1;min-width:0;word-break:break-word;line-height:1.35;}
.cma-time{font-size:12.5px;font-weight:700;color:var(--cma-sub);flex-shrink:0;}
.cma-more{flex-shrink:0;padding:4px 6px;color:var(--cma-sub);font-size:18px;font-weight:800;line-height:1;border-radius:8px;}
.cma-more:active{background:var(--cma-line);}
.cma-card.overdue{box-shadow:inset 3px 0 0 #dc2626;}
.cma-detail{display:none;margin-top:10px;padding-top:10px;border-top:1px solid var(--cma-line);}
.cma-card.expanded .cma-detail{display:block;}
.cma-meta{font-size:13px;color:var(--cma-sub);margin-bottom:5px;display:flex;gap:7px;}
.cma-meta b{color:var(--cma-text);font-weight:600;}
.cma-badges{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.cma-badge{font-size:11px;font-weight:700;border-radius:7px;padding:4px 9px;background:var(--cma-accent-soft);color:var(--cma-accent);}
.cma-badge.prio-high{background:#fdeaea;color:#c02626;}
.cma-badge.prio-low{background:#e8f4fd;color:#1170a8;}
.cma-empty{text-align:center;color:var(--cma-sub);font-size:14px;padding:44px 16px;background:var(--cma-card);border-radius:var(--cma-radius);border:1px dashed var(--cma-line);}
/* ---- Calendar screen ---- */
.cma-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cma-cal-title{font-size:17px;font-weight:800;letter-spacing:-.2px;}
.cma-cal-nav{display:flex;gap:6px;}
.cma-cal-nav button{width:34px;height:34px;border-radius:10px;border:1px solid var(--cma-line);background:var(--cma-card);font-size:15px;color:var(--cma-text);cursor:pointer;}
.cma-seg{display:flex;background:#ebebef;border-radius:11px;padding:3px;margin-bottom:12px;}
.cma-seg button{flex:1;border:none;background:transparent;padding:8px 0;font-size:13px;font-weight:700;color:var(--cma-sub);border-radius:9px;cursor:pointer;font-family:inherit;}
.cma-seg button.active{background:#fff;color:var(--cma-accent);box-shadow:0 1px 3px rgba(0,0,0,.1);}
.cma-strip{display:flex;gap:6px;margin-bottom:14px;}
.cma-strip-day{flex:1;text-align:center;padding:9px 0 10px;border-radius:12px;background:var(--cma-card);border:1px solid var(--cma-line);cursor:pointer;position:relative;}
.cma-strip-day .d{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--cma-sub);}
.cma-strip-day .n{font-size:15px;font-weight:800;margin-top:3px;}
.cma-strip-day.sel{background:var(--cma-accent);border-color:var(--cma-accent);}
.cma-strip-day.sel .d,.cma-strip-day.sel .n{color:#fff;}
.cma-strip-day.today:not(.sel){border-color:var(--cma-accent);}
.cma-strip-day.hasev::after{content:'';position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-2);}
.cma-strip-day.sel.hasev::after{background:#fff;}
.cma-mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:14px;}
.cma-mgrid .dw{font-size:10px;font-weight:800;color:var(--cma-sub);text-align:center;text-transform:uppercase;padding-bottom:2px;}
.cma-mgrid .dd{aspect-ratio:1;border-radius:10px;background:var(--cma-card);border:1px solid var(--cma-line);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;cursor:pointer;position:relative;}
.cma-mgrid .dd.out{background:transparent;border:none;cursor:default;}
.cma-mgrid .dd.today{border-color:var(--cma-accent);color:var(--cma-accent);}
.cma-mgrid .dd.sel{background:var(--cma-accent);border-color:var(--cma-accent);color:#fff;}
.cma-mgrid .dd.hasev::after{content:'';position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--color-2);}
.cma-mgrid .dd.sel.hasev::after{background:#fff;}
.cma-dayhead{font-size:13px;font-weight:800;color:var(--cma-sub);margin:4px 0 9px;}
/* ---- Dashboard screen ---- */
.cma-kgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.cma-kcard{background:var(--cma-card);border:1px solid var(--cma-line);border-radius:var(--cma-radius);padding:14px;}
.cma-klabel{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--cma-sub);}
.cma-kval{font-size:19px;font-weight:800;letter-spacing:-.3px;margin-top:5px;}
.cma-ksub{font-size:11.5px;color:var(--cma-sub);margin-top:3px;}
.cma-open-classic{display:flex;align-items:center;justify-content:space-between;background:var(--cma-card);border:1px solid var(--cma-line);border-radius:var(--cma-radius);padding:16px;cursor:pointer;margin-bottom:10px;}
.cma-open-classic .t{font-size:14.5px;font-weight:700;}
.cma-open-classic .s{font-size:12px;color:var(--cma-sub);margin-top:2px;}
/* ---- Settings ---- */
.cma-set-group{background:var(--cma-card);border:1px solid var(--cma-line);border-radius:var(--cma-radius);margin-bottom:12px;overflow:hidden;}
.cma-set-item{display:flex;align-items:center;gap:12px;padding:15px 16px;font-size:14.5px;font-weight:600;cursor:pointer;border-bottom:1px solid var(--cma-line);}
.cma-set-item:last-child{border-bottom:none;}
.cma-set-item .sub{font-size:12px;color:var(--cma-sub);font-weight:500;margin-top:2px;}
.cma-set-item:active{background:var(--cma-bg);}
.cma-set-note{font-size:12px;color:var(--cma-sub);line-height:1.6;padding:2px 6px 10px;}
/* ---- AI GOF (RAG) config form, dipakai di layar Pengaturan ---- */
.cma-rag-cfg{padding:14px 16px;}
.cma-rag-cfg label{display:block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--cma-sub);margin:10px 0 5px;}
.cma-rag-cfg label:first-child{margin-top:0;}
.cma-rag-cfg input{width:100%;padding:9px 11px;border-radius:8px;border:1px solid var(--cma-line);font-size:13.5px;font-family:inherit;}
.cma-rag-cfg button{margin-top:10px;background:var(--cma-accent);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;}
/* ---- AI GOF (RAG) — layar khusus, clean & minimal ---- */
#cma-scr-rag{padding:0;}
#cma-scr-rag.active{display:flex;flex-direction:column;height:calc(100vh - 84px);}
.cma-rag-head{padding:16px 18px 12px;flex-shrink:0;}
.cma-rag-head .t{font-size:21px;font-weight:800;letter-spacing:-.3px;}
.cma-rag-head .s{font-size:12.5px;color:var(--cma-sub);margin-top:3px;}
#cma-rag-msgs{flex:1;overflow-y:auto;padding:4px 16px;display:flex;flex-direction:column;gap:9px;}
.cma-rag-inputrow{display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--cma-line);flex-shrink:0;}
.cma-rag-inputrow textarea{flex:1;resize:none;border:1px solid var(--cma-line);border-radius:10px;padding:9px 12px;font-size:14px;font-family:inherit;height:40px;}
.cma-rag-inputrow button{background:var(--cma-accent);color:#fff;border:none;border-radius:10px;padding:0 16px;font-size:13.5px;font-weight:700;cursor:pointer;}
.cma-rag-inputrow button:disabled{opacity:.5;}
/* ---- Sembunyikan FAB Tanya Dashboard di mobile (sudah ada tab khusus AI GOF) ---- */
@media (max-width:1024px){ body:not(.cma-classic) #tanya-root{display:none;} }
/* ---- Bottom nav ---- */
.cma-nav{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--cma-line);display:none;justify-content:space-around;align-items:center;padding:8px 6px calc(8px + env(safe-area-inset-bottom));}
@media (max-width:1024px){ body:not(.cma-classic) .cma-nav{display:flex;} }
.cma-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:#9a9da6;background:none;border:none;cursor:pointer;padding:2px 10px;font-family:inherit;min-width:56px;}
.cma-nav-item.active{color:var(--cma-accent);}
.cma-nav-item svg{width:23px;height:23px;}
.cma-nav-add{width:52px;height:52px;border-radius:50%;background:var(--cma-accent);color:#fff;border:none;font-size:26px;font-weight:400;box-shadow:0 4px 14px rgba(52,87,213,.4);cursor:pointer;margin-top:-24px;display:flex;align-items:center;justify-content:center;line-height:0;}
/* ---- Bottom sheets ---- */
.cma-sheet-bg{position:fixed;inset:0;background:rgba(15,17,25,.45);z-index:90;display:none;}
.cma-sheet-bg.open{display:block;}
.cma-sheet{position:fixed;left:0;right:0;bottom:0;z-index:95;background:#fff;border-radius:20px 20px 0 0;padding:10px 18px calc(20px + env(safe-area-inset-bottom));max-height:86vh;overflow-y:auto;transform:translateY(105%);transition:transform .22s cubic-bezier(.32,.72,.36,1);max-width:640px;margin:0 auto;}
.cma-sheet.open{transform:translateY(0);}
.cma-sheet-grab{width:38px;height:4px;border-radius:3px;background:#dcdee4;margin:4px auto 14px;}
.cma-sheet-title{font-size:16.5px;font-weight:800;margin-bottom:14px;letter-spacing:-.2px;}
.cma-catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;}
.cma-catbtn{border:1px solid var(--cma-line);background:var(--cma-bg);border-radius:13px;padding:14px 6px;text-align:center;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--cma-text);font-family:inherit;}
.cma-catbtn .cdot{width:12px;height:12px;border-radius:50%;margin:0 auto 7px;}
.cma-catbtn:active{background:var(--cma-accent-soft);border-color:var(--cma-accent);}
.cma-form label{display:block;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--cma-sub);margin:13px 0 5px;}
.cma-form input,.cma-form select,.cma-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--cma-line);border-radius:11px;padding:12px 13px;font-size:16px;font-family:inherit;background:var(--cma-bg);color:var(--cma-text);}
.cma-form input:focus,.cma-form select:focus,.cma-form textarea:focus{outline:none;border-color:var(--cma-accent);background:#fff;}
.cma-form textarea{min-height:66px;resize:vertical;}
.cma-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cma-sheet-actions{display:flex;gap:10px;margin-top:18px;}
.cma-sheet-actions button{flex:1;padding:13px 0;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;border:none;font-family:inherit;}
.cma-act-cancel{background:#f1f2f5;color:var(--cma-text);}
.cma-act-save{background:var(--cma-accent);color:#fff;}
.cma-menu-list{display:flex;flex-direction:column;}
.cma-menu-list button{border:none;background:none;text-align:left;padding:14px 6px;font-size:15px;font-weight:600;color:var(--cma-text);cursor:pointer;border-bottom:1px solid var(--cma-line);font-family:inherit;display:flex;align-items:center;gap:11px;}
.cma-menu-list button:last-child{border-bottom:none;}
.cma-menu-list button:active{background:var(--cma-bg);}
.cma-menu-list button.danger{color:#dc2626;}
/* ---- Classic mode pill ---- */
#cma-classic-pill{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:99;background:var(--cma-accent,#3457D5);color:#fff;border:none;border-radius:22px;padding:11px 20px;font-size:13.5px;font-weight:700;box-shadow:0 4px 16px rgba(20,30,70,.35);cursor:pointer;align-items:center;gap:7px;font-family:inherit;}
.backup-bar{background:#eef4ff;border:1px solid #cfe0fb;border-radius:10px;padding:14px 16px 12px;margin-bottom:14px;}
.backup-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap;}
.backup-title{font-size:13.5px;font-weight:700;color:var(--color-1);}
.backup-badge{font-size:10.5px;font-weight:700;background:#fde68a;color:#92400e;border-radius:5px;padding:2px 7px;}
.backup-desc{font-size:12px;color:#2a3550;line-height:1.5;margin-bottom:10px;}
.backup-desc b{color:#c0392b;}
.backup-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.backup-steps li{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid #dce6fb;border-radius:8px;padding:9px 12px;}
.step-num{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--color-1);color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.step-body{font-size:12.5px;color:#2a3550;line-height:1.6;flex:1;}
.step-body b{color:#1a2340;}
.step-body .step-hint{display:block;font-size:11.5px;color:#5a6480;margin-top:2px;}
.step-body .backup-btn{margin-top:7px;}
.backup-actions{display:flex;gap:8px;flex-wrap:wrap;}
.backup-btn{display:inline-flex;align-items:center;gap:5px;background:var(--color-1);color:#fff;border:none;border-radius:7px;font-size:12.5px;font-weight:600;padding:7px 13px;cursor:pointer;white-space:nowrap;}
.backup-btn:hover{filter:brightness(1.08);}
.backup-btn.backup-restore{background:#fff;color:var(--color-1);border:1px solid var(--color-1);}
.ins-sec{border:1px solid #e6e8ee;border-radius:12px;padding:16px 18px;margin-bottom:18px;background:#fff;}
.ins-sec-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.ins-sec-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--color-1);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;}
.ins-sec-head h3{font-size:15.5px;margin:0;}
.ins-rule{background:#f8faff;border-left:4px solid var(--color-1);border-radius:8px;padding:12px 15px;font-size:12.5px;line-height:1.65;color:#2a3550;margin-bottom:14px;}
.ins-rule b{color:var(--color-1);}
.ins-rule ul{margin:6px 0 0 0;padding-left:18px;}
.ins-rule li{margin-bottom:4px;}
.ins-rule .rule-note{color:#9a6510;font-size:11.5px;display:block;margin-top:6px;}

.data-status{margin-bottom:14px;}
.data-status .ds-ok{background:#e9f7ef;border:1px solid #bfe3cd;color:#177544;border-radius:var(--radius);padding:11px 15px;font-size:12.5px;line-height:1.6;}
.data-status .ds-warn{background:#fdf6e6;border:1px solid #f0dfae;color:#9a6510;border-radius:var(--radius);padding:11px 15px;font-size:12.5px;line-height:1.6;}
.ds-chips{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:6px;vertical-align:middle;}
.ds-chips span{font-size:10.5px;background:rgba(0,0,0,.045);border-radius:20px;padding:2px 9px;white-space:nowrap;}

/* ================= MOBILE (HP) ================= */
@media (max-width:680px){
  html,body{overflow-x:hidden;}
  body{font-size:14px;}
  .wrap{padding:9px;}
  header{padding:15px 15px;margin-bottom:12px;}
  header h1{font-size:15.5px;line-height:1.3;}
  header p{font-size:10.5px;}
  .source-legend{gap:8px;margin-top:8px;}
  .source-chip{font-size:10.5px;padding:5px 9px;}
  .menu-nav{padding:8px;gap:6px;position:static;top:auto;}
  .menu-btn{padding:9px 10px;font-size:12px;flex:1 1 40%;text-align:center;}
  .kpi-row{grid-template-columns:repeat(2,1fr)!important;gap:9px;}
  .kpi-card{padding:12px 12px;}
  .kpi-value{font-size:17px;}
  .kpi-label{font-size:9.5px;letter-spacing:.3px;}
  .kpi-sub{font-size:9.5px;}
  .chart-row{grid-template-columns:1fr!important;gap:12px;}
  .chart-container,.card,.table-section{padding:14px 13px;}
  .chart-container canvas,.card canvas,#chart-kelas,#chart-nsbu-tgl,#chart-unit-tgl,#chart-target-sales{max-height:230px!important;}
  h3{font-size:13.5px;}
  .card h3,.chart-container h3,.table-section h3{font-size:13.5px;}
  .sub{font-size:11px;}
  .subtab-nav{gap:5px;margin-bottom:10px;}
  .subtab-btn{padding:7px 11px;font-size:12px;}
  .filters{gap:8px;flex-wrap:wrap;}
  .filter-group label{font-size:10px;}
  .filter-group select,.filter-group input{min-width:130px;font-size:12.5px;padding:8px 9px;}
  .table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto;}
  .table-scroll::before{content:"\2190 geser tabel \2192";display:block;font-size:10px;color:var(--sub);text-align:right;margin-bottom:2px;}
  .data-table{font-size:11.5px;}
  .data-table thead th,.data-table tbody td{padding:6px 7px;}
  .kpi-value#kpi-est-nsbu,.kpi-value#kpi-est-achv{font-size:16px;}
  .target-bar{flex-direction:column;align-items:stretch;}
  .scenario-row{grid-template-columns:1fr!important;}
  .coa-grid-col{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .coa-grid-col::before{content:"\2190 geser kalender \2192";display:block;font-size:10px;color:var(--sub);text-align:right;margin-bottom:2px;}
  .coe-grid{min-width:640px;}
  .coe-cell{min-height:72px;}
}
/* touch device: HTML5 drag-drop tidak jalan, tampilkan tombol panah pindah */
@media (hover:none) and (pointer:coarse){
  .coe-ev-grip{display:none;}
  .coe-ev-move{display:inline-flex!important;}
}
.coe-ev-move{display:none;gap:2px;flex-shrink:0;}
.coe-ev-move span{cursor:pointer;font-size:11px;line-height:1;padding:1px 3px;background:rgba(255,255,255,.25);border-radius:3px;user-select:none;}
@media (max-width:400px){
  .kpi-row{grid-template-columns:1fr!important;}
  .menu-btn{flex:1 1 100%;}
}

.sv-nav{display:flex;gap:6px;flex-wrap:wrap;background:#f2f4f8;border:1px solid var(--line);border-radius:10px;padding:6px;margin-bottom:12px;}
.sv-btn{flex:1 1 auto;border:none;background:transparent;color:#6b7280;padding:9px 11px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;}
.sv-btn:hover{background:#e6e9ef;}
.sv-btn.active{background:#0d1b2a;color:#fff;}
.sv-page{display:none;}.sv-page.active{display:block;}
.sv-ph{border:1px dashed #cfd4dc;border-radius:12px;padding:44px 22px;text-align:center;color:#9aa1ac;font-size:13px;margin-top:12px;background:#fbfcfd;}
.sv-ph b{display:block;font-size:13px;color:#6b7280;margin-bottom:4px;}

.ins-ref{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 14px;}
.ins-ref table{font-size:11px;border-collapse:collapse;}
.ins-ref th,.ins-ref td{border:1px solid #e2e5ea;padding:3px 7px;text-align:center;}
.ins-ref caption{font-size:10.5px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:.4px;padding-bottom:4px;}
.ins-inp{width:130px;padding:5px 7px;border:1px solid #dcdfe4;border-radius:5px;font-size:12.5px;text-align:right;}
.ins-pill{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:700;}
.ins-ok{background:#e3f4ea;color:#1a7a44;}.ins-no{background:#fdecec;color:#b3312c;}

/* ---- Tanya Dashboard (Q&A via Claude Haiku, API key per-perangkat) ---- */
#tanya-root{position:fixed;z-index:100;bottom:20px;right:20px;font-family:inherit;}
#tanya-fab{width:54px;height:54px;border-radius:50%;background:var(--color-1);color:#fff;border:none;box-shadow:0 3px 10px rgba(0,0,0,.22);cursor:pointer;display:flex;align-items:center;justify-content:center;}
#tanya-fab svg{width:24px;height:24px;}
#tanya-panel{display:none;flex-direction:column;position:fixed;bottom:86px;right:20px;width:360px;max-width:calc(100vw - 32px);max-height:70vh;background:var(--card);border-radius:14px;box-shadow:0 8px 30px rgba(0,0,0,.22);overflow:hidden;z-index:100;}
#tanya-panel.open{display:flex;}
#tanya-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--header);color:#fff;flex-shrink:0;}
#tanya-head b{font-size:14px;}
#tanya-head-btns button{background:none;border:none;color:rgba(255,255,255,.8);font-size:15px;cursor:pointer;padding:2px 7px;}
#tanya-key-box{display:none;padding:12px 14px;border-bottom:1px solid #e9ecf1;background:#fafbfc;flex-shrink:0;}
#tanya-key-box label{font-size:11px;color:var(--sub);text-transform:uppercase;letter-spacing:.4px;}
#tanya-key-box input{width:100%;padding:7px 9px;border-radius:6px;border:1px solid #dcdfe4;font-size:13px;margin:6px 0;}
#tanya-key-box .h{font-size:11px;color:var(--sub);line-height:1.4;}
#tanya-key-box button{margin-top:6px;background:var(--color-1);color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;}
#tanya-msgs{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-height:80px;}
.tanya-q{align-self:flex-end;background:var(--color-1);color:#fff;padding:8px 12px;border-radius:12px 12px 2px 12px;font-size:13px;max-width:85%;white-space:pre-wrap;}
.tanya-a{align-self:flex-start;background:#f1f2f5;color:var(--text);padding:8px 12px;border-radius:12px 12px 12px 2px;font-size:13px;max-width:90%;white-space:pre-wrap;line-height:1.5;}
.tanya-a.err{background:var(--warn-bg);color:#8a5a12;}
.tanya-empty{color:var(--sub);font-size:12.5px;text-align:center;padding:20px 6px;}
#tanya-inputrow{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #e9ecf1;flex-shrink:0;}
#tanya-q-input{flex:1;resize:none;border:1px solid #dcdfe4;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;height:38px;}
#tanya-send{background:var(--color-1);color:#fff;border:none;border-radius:8px;padding:0 14px;font-size:13px;cursor:pointer;}
#tanya-send:disabled{opacity:.5;cursor:default;}
@media (max-width:760px){
  #tanya-panel{left:0;right:0;bottom:0;width:100%;max-width:none;border-radius:16px 16px 0 0;max-height:80vh;}
  #tanya-root{bottom:calc(16px + env(safe-area-inset-bottom));right:16px;}
}
