:root{--night:#05192B;--slate:#082B47;--ink:#0A3D62;--ink2:#3E5A6E;--teal:#0C6E88;--link:#0C6E88;--cyan:#1ECAD3;--fog:#FBFBFD;--g050:#F5F5F7;--g100:#E8E8ED;--g200:#D2D2D7;--g400:#86868B;--g500:#6E6E73;--g700:#3A3A3C;--g900:#1D1D1F;--succ:#0E8A63;--warn:#B45309;--err:#C0362C;--info:#1E54B4;--violet:#6D4AED;--ai:#6D4AED;--orange:#F5A524;--indigo:#6D4AED;--accent:#1ECAD3;--accent-deep:#0C6E88;--accent-tint:rgba(30,202,211,.12);--focus:#14A7B0;--scrim:rgba(5,25,43,.55);--r-sm:8px;--r-md:12px;--r-lg:18px;--e1:0 1px 2px rgba(5,25,43,.06),0 1px 3px rgba(5,25,43,.04);--e2:0 4px 12px rgba(5,25,43,.08),0 2px 4px rgba(5,25,43,.04);--e3:0 16px 40px -12px rgba(5,25,43,.22),0 4px 12px rgba(5,25,43,.06);--e4:0 24px 60px -16px rgba(5,25,43,.28),0 8px 20px rgba(5,25,43,.08);--e-brand:0 10px 26px -8px rgba(18,163,180,.45);--e-violet:0 10px 26px -8px rgba(109,74,237,.42);--grad-nebula:linear-gradient(135deg,#0A3D62 0%,#4A3FB0 55%,#6D4AED 100%);--grad-tegak:linear-gradient(160deg,#0A3D62 0%,#0C6E88 45%,#1ECAD3 100%);--grad-senja:linear-gradient(135deg,#C2410C 0%,#F5A524 100%);--dur-1:160ms;--dur-2:280ms;--dur-3:440ms;--ease:cubic-bezier(.32,.72,0,1)}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--fog);color:var(--g900);line-height:1.6;font-size:15.5px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}
::selection{background:rgba(30,202,211,.28)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important var(--ap-ease)}}
.hide{display:none!important}
.wrap{max-width:1340px;margin:0 auto;padding:0 24px}
.appbar{background:rgba(251,251,253,.82);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  color:var(--g900);padding:12px 0;position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(0,0,0,.08)}
.appbar b,.appbar strong{color:var(--ink)}
.appbar a,.appbar .lnk,.appbar button.lnk{color:var(--link);display:inline-flex;align-items:center;min-height:32px;padding:0 4px}
.appbar .who{color:var(--g500)}
.appbar .modepill,.appbar #modepill{background:var(--g050);color:var(--link);border-color:transparent}
.appbar .row{max-width:1340px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;row-gap:4px}
.appbar b{font-size:15.5px;font-weight:700}
.appbar .pill{font-size:11.5px;font-weight:550;color:var(--link);border:1px solid rgba(16,107,114,.28);border-radius:999px;padding:2px 8px;margin-left:4px}
.appbar .who{margin-left:auto;font-size:11.5px;color:var(--g500);font-weight:400}
.appbar .nav{display:inline-flex;align-items:center;gap:4px;color:var(--link);font-weight:550;font-size:12.5px;text-decoration:none;cursor:pointer;margin-left:12px;background:none;border:none;font-family:inherit;transition:color .28s var(--ap-ease)}
.appbar .nav:hover{color:var(--ink)}
.appbar .brand{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.appbar.client .nav{display:none!important}
.appbar.client .buildtag{display:none!important}
.appbar.client .who{display:none!important}
.appbar.client .pill{color:var(--g500);border-color:var(--g100);background:var(--g050)}
.appbar.client .brand{cursor:default;pointer-events:none}
#login{min-height:100vh;background:var(--night);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}
#login::before{content:"";position:absolute;right:-180px;top:-180px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(30,202,211,.22),transparent 65%)}
.logincard{position:relative;overflow:hidden;width:100%;max-width:400px;background:#fff;border-radius:var(--r-lg);padding:32px 32px;box-shadow:var(--e4)}.logincard::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad-nusva)}
.logincard img{width:46px;height:46px;display:block;margin:0 auto 12px}
.logincard h1{font-size:19px;font-weight:700;color:var(--ink);text-align:center;letter-spacing:-.01em}
.logincard .sub{font-size:12.5px;color:var(--g500);text-align:center;margin-bottom:16px}
.logincard label{margin-top:12px}
.logincard .btn{margin-top:24px;width:100%}
.lerr{color:var(--err);font-size:12.5px;font-weight:550;text-align:center;margin-top:12px;min-height:16px}
.pwwrap{position:relative}
.pwwrap .inp{padding-right:48px}
.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:15.5px;padding:4px 8px;line-height:1;color:var(--g500)}
.eye:hover{color:var(--ink)}
.forgot{display:block;margin:12px auto 0;font-family:inherit;font-size:12.5px;font-weight:550;color:var(--teal);background:none;border:none;cursor:pointer}
.forgot:hover{text-decoration:underline}
.page{padding-top:24px;padding-bottom:64px}
h2{font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.psub{font-size:12.5px;color:var(--g500);margin-bottom:24px}
.card{background:#fff;border:none;border-radius:18px;padding:24px;margin-bottom:24px;box-shadow:var(--e1)}
.card h3{font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.card .ch{font-size:12.5px;font-weight:550;color:var(--g500);margin-bottom:12px}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:550;padding:4px 8px;border-radius:999px;border:1px solid;white-space:nowrap}
/* Penanda AI wajib untuk setiap keluaran atau panel Nexa, sesuai NUSVA v4.2. */
.tanda-ai{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800;background:var(--grad-nebula);color:#fff;white-space:nowrap}
.tanda-ai::before{content:"\2726"}
.badge i{width:6px;height:6px;border-radius:50%;background:currentColor}
.b-good{color:#15784F;background:rgba(14,138,99,.12);border-color:rgba(14,138,99,.28)}
.b-sent{color:#1E54B4;background:rgba(30,84,180,.10);border-color:rgba(30,84,180,.26)}
.b-fill{color:#B45309;background:rgba(180,83,9,.13);border-color:rgba(180,83,9,.30)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:550;border-radius:var(--r-md);border:none;cursor:pointer;transition:transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease),filter var(--dur-2) var(--ease),background var(--dur-2) var(--ap-ease);font-size:12.5px;padding:12px 16px}
/* jendela gradient dibuka selebar yang masih lolos kontras untuk ukuran teksnya */
.btn.pri{position:relative;overflow:hidden;background:var(--grad-nusva);color:#fff;
  background-size:196% 100%;background-position:0% 50%;
  box-shadow:var(--glow-kristal),0 1px 2px rgba(0,0,0,.10);
  transition:box-shadow .28s var(--ap-ease),transform .28s var(--ap-ease)}
.btn.pri::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(105deg,transparent 32%,rgba(30,202,211,.42) 52%,transparent 72%);
  transform:translateX(-115%);transition:transform .44s var(--ap-ease)}
.btn.pri:hover{box-shadow:0 10px 30px rgba(30,202,211,.52),0 2px 5px rgba(0,0,0,.12);transform:translateY(-1px)}
.btn.pri:hover::after{transform:translateX(115%)}
.btn.pri:active{transform:translateY(0);box-shadow:var(--glow-kristal),0 1px 2px rgba(0,0,0,.10)}
.btn.pri.sm{background-size:268% 100%}
#login .btn.pri{font-size:19px;font-weight:700;background-size:152% 100%}
@media (prefers-reduced-motion:reduce){.btn.pri,.btn.pri::after{transition:none var(--ap-ease)}.btn.pri:hover{transform:none}.btn.pri:hover::after{transform:translateX(-115%)}}
@media (prefers-reduced-motion:reduce){.btn.pri{transition:none var(--ap-ease)}.btn.pri:hover{transform:none}}.btn.pri:hover{transform:translateY(-1px);box-shadow:var(--e-brand)}
.btn.gho{background:#fff;color:var(--ink);border:1.5px solid var(--g100)}.btn.gho:hover{border-color:var(--teal);color:var(--teal)}
.btn.sm{font-size:11.5px;padding:8px 12px;border-radius:12px}
.lnk{font-family:inherit;font-size:11.5px;font-weight:550;color:var(--accent-deep);display:inline-flex;align-items:center;min-height:32px;background:none;border:none;cursor:pointer}.lnk:hover{text-decoration:underline}
.scards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.scard{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:16px;transition:all .28s var(--ap-ease);cursor:pointer}
.scard:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(15,163,177,.16);border-color:rgba(15,163,177,.4)}
.scard .pos{font-size:15.5px;font-weight:700;color:var(--ink)}
.scard .cli{font-size:11.5px;color:var(--g500);margin-bottom:8px}
.scard .meta{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--g500);margin-top:8px}
.cardacts{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px;padding-top:12px;border-top:1px solid var(--g100)}
.cact{font-family:inherit;font-size:11.5px;font-weight:550;padding:4px 12px;border-radius:8px;border:1px solid var(--g100);background:#fff;color:var(--g900);cursor:pointer;transition:all .16s var(--ap-ease)}
.cact.go{background:var(--grad-nusva);background-size:280%;background-position:center;
  border-color:transparent;color:#fff;font-weight:700;box-shadow:0 1px 2px rgba(10,61,98,.16)}
.cact.go:hover{background:var(--grad-nusva);background-size:280%;background-position:center;
  border-color:transparent;transform:translateY(-1px);box-shadow:var(--glow-kristal)}
.cact:hover{border-color:var(--teal);color:var(--ink)}
.cact.ok:hover{border-color:var(--succ);color:#15784F;background:rgba(14,138,99,.08)}
.cact.del{color:#C0362C;border-color:rgba(192,54,44,.3)}
.cact.del:hover{background:var(--err);color:#fff;border-color:var(--err)}
.cardacts{position:relative}
.cact.more{width:32px;padding:4px 0;font-size:15px;line-height:1;color:var(--g500)}
.cact.more:hover{color:var(--ink);border-color:var(--accent)}
.cmenu{position:absolute;top:calc(100% + 4px);right:0;z-index:5;min-width:168px;
  background:#fff;border:1px solid var(--g100);border-radius:12px;box-shadow:var(--e3);
  padding:6px;display:flex;flex-direction:column;gap:1px}
.cmenu-item{font-family:inherit;font-size:12.5px;font-weight:550;color:var(--g900);
  background:none;border:none;border-radius:8px;padding:9px 10px;text-align:left;cursor:pointer;
  transition:background var(--dur-1) var(--ease)}
.cmenu-item:hover{background:var(--g050)}
.cmenu-item.del{color:#C0362C}
.cmenu-item.del:hover{background:rgba(192,54,44,.10)}
.scard.arch{background:#fafbfc}
.scard.arch .pos{color:var(--g900)}
.badge.b-arch{color:var(--g500);background:var(--g050);border-color:var(--g100)}
.archhead{display:flex;align-items:center;gap:8px;margin:32px 0 8px}
.archhead h3{font-size:12.5px;font-weight:550;color:var(--g500);margin:0;letter-spacing:.01em}
.archpill{font-size:11.5px;font-weight:550;background:var(--g050);color:var(--g500);border-radius:999px;padding:2px 8px}
.bar{height:6px;border-radius:999px;background:var(--g100);overflow:hidden;margin-top:8px}
.bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--cyan))}
.empty{background:#fff;border:1.5px dashed var(--g100);border-radius:12px;padding:48px 24px;text-align:center;color:var(--g500)}
.empty b{color:var(--g500);display:block;font-size:15.5px;margin-bottom:4px}
/* wizard */
.fwrap{max-width:780px;margin:0 auto}
#review .fwrap{max-width:1180px}
#review .rvband{margin-bottom:var(--ap3);padding-bottom:var(--ap3);border-bottom:1px solid var(--ap-line)}
@media(min-width:980px){
  #review .rvgrid{grid-template-columns:minmax(0,1.38fr) minmax(376px,.92fr);gap:48px;align-items:start}
  #review #rvCard{position:sticky;top:78px;max-height:calc(100vh - 104px)}
}
#review .rvhead{gap:var(--ap3)}
#review .rvfacts{display:flex;flex-wrap:wrap;gap:0;margin:var(--ap3) 0 0;border-top:1px solid var(--ap-line);border-bottom:1px solid var(--ap-line)}
#review .rvfact{flex:1 1 140px;padding:24px 24px;border-right:1px solid var(--ap-line)}
#review .rvfact:first-child{padding-left:0}
#review .rvfact:last-child{border-right:none;padding-right:0}
#review .rvfact dt{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ap-mute);margin-bottom:4px}
#review .rvfact dd{margin:0;font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.3}
@media(max-width:640px){#review .rvfact{flex:1 1 45%;border-right:none;padding:16px 0}}
.invite{background:linear-gradient(135deg,var(--ink),var(--teal));color:#fff;border-radius:18px;padding:24px 24px;margin-bottom:16px;position:relative;overflow:hidden}
.invite::after{content:"";position:absolute;right:-60px;bottom:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%)}
.invite h2{color:#fff;font-size:19px}
.invite p{font-size:12.5px;color:rgba(255,255,255,.85);margin-top:4px;max-width:560px}
.progwrap{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:16px 16px;margin-bottom:12px}
.progtop{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.progtop b{font-size:12.5px;color:var(--ink)}.progtop span{font-size:11.5px;color:var(--g500)}
.progbar{height:8px;border-radius:999px;background:var(--g050);overflow:hidden}
.progbar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--cyan));transition:width .28s var(--ap-ease)}
.steps{display:flex;gap:4px;margin-top:12px}
.stepchip{flex:1;font-size:11.5px;font-weight:550;text-align:center;padding:8px 4px;border-radius:8px;background:var(--g050);color:var(--g500);cursor:pointer;transition:all .28s var(--ap-ease)}
.stepchip.on{background:var(--ink);color:#fff}.stepchip.done{background:rgba(14,138,99,.14);color:#15784F}
.sec{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:24px;margin-bottom:16px}
.sec h3{font-size:15.5px;font-weight:700;color:var(--ink)}
.sec .sdesc{font-size:12.5px;color:var(--g500);margin:0 0 16px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr}.scards{grid-template-columns:1fr}}
.field{margin-bottom:16px}
label{display:block;font-size:12.5px;font-weight:550;color:var(--g500);margin-bottom:4px}
label .opt{font-weight:550;color:var(--g500);font-size:11.5px}
.inp,select,textarea{width:100%;font-family:inherit;font-size:12.5px;padding:12px 12px;border-radius:8px;border:1.5px solid var(--g100);outline:none;transition:all .28s var(--ap-ease);background:#fff;color:var(--g900)}
.inp:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,163,177,.15)}
textarea{resize:vertical;min-height:56px;line-height:1.5}
.rowitem{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.rowitem .num{flex-shrink:0;width:26px;height:42px;display:flex;align-items:center;justify-content:center;font-weight:550;color:var(--teal);font-size:12.5px}
.rowitem .inp{flex:1}
.rmv{flex-shrink:0;width:38px;height:42px;border:1.5px solid var(--g100);border-radius:8px;background:#fff;color:var(--g500);font-size:15.5px;cursor:pointer}.rmv:hover{border-color:var(--err);color:var(--err)}
.addrow{font-family:inherit;font-size:12.5px;font-weight:550;color:var(--teal);background:rgba(15,163,177,.07);border:1.5px dashed rgba(15,163,177,.4);border-radius:8px;padding:8px;width:100%;cursor:pointer;margin-top:4px}.addrow:hover{background:rgba(15,163,177,.13)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{font-size:11.5px;font-weight:550;border:1.5px solid var(--g100);border-radius:999px;padding:4px 12px;cursor:pointer;transition:all .16s var(--ap-ease);color:var(--g500);background:#fff}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip:hover{border-color:var(--teal)}
.mtx{width:100%;border-collapse:collapse;font-size:12.5px}.mtx td{padding:8px 4px;border-top:1px solid var(--g100)}.mtx tr:first-child td{border-top:none}.mtx .crit{width:60%}.mtx select{padding:8px 8px;font-size:12.5px}
.softnote{display:flex;gap:8px;align-items:flex-start;background:rgba(109,74,237,.07);border:1px solid rgba(109,74,237,.2);border-radius:8px;padding:12px 12px;font-size:11.5px;color:#4338CA;margin-bottom:12px}
.wnav{display:flex;gap:8px;margin-top:4px}.wnav .btn{flex:1}
.muted{font-size:11.5px;color:var(--g500);margin-top:4px}
/* scorecard */
.kv{display:grid;grid-template-columns:170px 1fr;gap:4px 12px;font-size:12.5px}
.kv dt{color:var(--g500);font-weight:700;padding:8px 0;border-top:1px solid var(--g100)}
.kv dd{color:var(--ink);font-weight:700;padding:8px 0;border-top:1px solid var(--g100)}
.kv dt:first-of-type,.kv dd:first-of-type{border-top:none}
@media(max-width:640px){.kv{grid-template-columns:1fr}.kv dt{border-top:1px solid var(--g100);padding-bottom:0}.kv dd{border-top:none;padding-top:0}}
.olist{list-style:none;counter-reset:o}.olist li{counter-increment:o;position:relative;padding:8px 0 8px 32px;border-top:1px solid var(--g100);font-size:12.5px;color:var(--ink)}.olist li:first-child{border-top:none}.olist li::before{content:counter(o);position:absolute;left:0;top:8px;width:20px;height:20px;border-radius:8px;background:var(--ink);color:#fff;font-size:11.5px;font-weight:550;display:flex;align-items:center;justify-content:center}
.crittbl{width:100%;border-collapse:collapse;font-size:12.5px}.crittbl td{padding:8px 12px;border-top:1px solid var(--g100)}.crittbl tr:first-child td{border-top:none}
.pill2{font-size:11.5px;font-weight:550;padding:2px 8px;border-radius:999px}.pw{background:rgba(192,54,44,.1);color:#C0362C}.pu{background:rgba(180,83,9,.13);color:#B45309}.pl{background:rgba(30,84,180,.1);color:#1E54B4}.pn{background:var(--g050);color:var(--g500)}
.internal{border:1.5px solid rgba(109,74,237,.3);background:linear-gradient(180deg,rgba(109,74,237,.04),#fff)}
.ov{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:80}
#msgOv,#mkOv,#rjOv{z-index:90}
.candcard{border:1px solid var(--g100);border-radius:12px;padding:12px;margin-bottom:8px}
.candtop{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.candhead{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.candtop b{color:var(--ink);font-size:15.5px}
.csmall{font-size:11.5px;color:var(--g500)}
.candproses{display:flex;flex-wrap:wrap;gap:6px;row-gap:3px;align-items:center;margin-top:5px;opacity:.82}
.cvtag{display:inline-block;font-size:11.5px;font-weight:550;color:var(--g500);background:none;border:none;border-radius:8px;padding:0px 4px;vertical-align:middle}
.datetag{display:inline-block;font-size:11.5px;font-weight:550;color:var(--g500);background:none;border:none;border-radius:8px;padding:0px 4px;vertical-align:middle}
.adscore{display:inline-block;font-size:11.5px;font-weight:550;color:#15784F;background:rgba(14,138,99,.12);border:1px solid rgba(14,138,99,.3);border-radius:8px;padding:0px 8px;vertical-align:middle}
.cmeta{font-size:11.5px;color:var(--g500);margin-top:8px}
.cnotes{font-size:12.5px;color:var(--g900);margin-top:8px;background:var(--fog);border-radius:8px;padding:8px 8px}
.crit-row{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-top:1px solid var(--g100);font-size:12.5px}
.crit-row:first-child{border-top:none}
.crit-row input{margin-top:4px}
.crit-imp{font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 8px;margin-left:auto;white-space:nowrap}
.imp-w{color:#b91c1c;background:#fdeaea}.imp-d{color:#B45309;background:#FEF3E2}.imp-n{color:var(--g500);background:var(--g050)}
.scorebig{font-size:var(--ap-display);font-weight:700;color:var(--ink);letter-spacing:-.02em}
.dl-row{display:flex;gap:8px;padding:4px 0;border-top:1px solid var(--g100);font-size:12.5px}
.dl-row:first-child{border-top:none}
.dl-row .dk{color:var(--g500);width:140px;flex-shrink:0}
.dl-row .dv{color:var(--ink);font-weight:700}
.cdtabs{display:flex;gap:4px;background:var(--g050);border-radius:12px;padding:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cdtabs::-webkit-scrollbar{display:none}
.cdtabs>*{flex:0 0 auto}
.cdrep{font-family:inherit;font-size:12.5px;font-weight:550;margin-left:auto;padding:8px 16px;
  border-radius:12px;border:none;background:var(--grad-nusva);background-size:220%;background-position:center;
  color:#fff;cursor:pointer;transition:transform var(--ap-cepat) var(--ap-ease),box-shadow var(--ap-cepat) var(--ap-ease);
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.cdrep:hover{transform:translateY(-1px);box-shadow:var(--glow-kristal)}
.cdrep .tabn{background:rgba(255,255,255,.24);color:#fff;border:none}
.cdsep{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--g500);margin:24px 0 12px;padding-top:16px;border-top:1px solid var(--ap-line)}
@keyframes cdmasuk{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cdmasuk #cdpane_s,.cdmasuk #cdpane_l,.cdmasuk #cdpane_g,.cdmasuk #cdpane_i,.cdmasuk #cdpane_r{
  animation:cdmasuk var(--ap-normal) var(--ap-ease) both}
.cdtab{flex:0 1 auto;font-family:inherit;font-size:12.5px;font-weight:550;padding:8px 16px;border:none;border-radius:8px;background:transparent;color:var(--g500);cursor:pointer}
.cdtab.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(6,25,41,.1)}
.cdh{font-size:12.5px;font-weight:550;color:var(--ink);margin-bottom:8px}
.gpil{margin-bottom:12px;border:1px solid var(--g100);border-radius:12px;overflow:hidden}
.gpil-h{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--fog);font-weight:550;font-size:12.5px;color:var(--ink)}
.gpil-h .avg{margin-left:auto;font-size:11.5px;font-weight:550;color:var(--teal)}
.gpil-gate{font-size:11.5px;font-weight:550;color:#B45309;background:#FEF3E2;border-radius:8px;padding:0px 8px}
.gdim{padding:8px 12px;border-top:1px solid var(--g100)}
.gdim-top{display:flex;align-items:center;gap:8px}
.gdim-name{font-size:12.5px;font-weight:550;color:var(--g900);flex:1}
.gscore{font-family:inherit;font-size:11.5px;font-weight:550;border:1.5px solid var(--g100);border-radius:8px;padding:4px 8px;background:#fff;color:var(--ink);cursor:pointer}
.gnote{width:100%;margin-top:4px;font-family:inherit;font-size:11.5px;border:1.5px solid var(--g100);border-radius:8px;padding:4px 8px;outline:none;box-sizing:border-box}
.gate-warn{background:#fdeaea;color:#b91c1c;border:1px solid rgba(192,54,44,.3);border-radius:8px;padding:8px 12px;font-size:11.5px;font-weight:550;margin-bottom:12px}
.ivq{border:1px solid var(--g100);border-radius:12px;padding:12px;margin-bottom:8px}
.ivq-top{display:flex;align-items:flex-start;gap:8px}
.ivq-q{flex:1;font-family:inherit;font-size:12.5px;border:1.5px solid var(--g100);border-radius:8px;padding:8px 8px;outline:none;resize:vertical;box-sizing:border-box}
.ivq-del{font-size:15.5px;font-weight:700;color:var(--err);background:none;border:none;cursor:pointer;padding:2px 4px;flex-shrink:0;line-height:1}
.ivq-bot{display:flex;align-items:center;gap:8px;margin-top:8px}
.ivq-bot .lbl{font-size:11.5px;font-weight:550;color:var(--g500)}
.ivnote{flex:1;font-family:inherit;font-size:11.5px;border:1.5px solid var(--g100);border-radius:8px;padding:4px 8px;outline:none;box-sizing:border-box}
.rvcluster{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin:16px 0 8px}
.rvcard{border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:8px}
.rvcomp-name{font-size:12.5px;font-weight:550;color:var(--ink)}
.rvcomp-desc{font-size:11.5px;color:var(--g500);margin:4px 0 8px;line-height:1.45}
.rvscore{display:flex;gap:4px;flex-wrap:wrap}
.rvpill{width:38px;height:34px;font-family:inherit;font-size:12.5px;font-weight:550;border:1.5px solid var(--g100);border-radius:8px;background:#fff;color:var(--g500);cursor:pointer;transition:all .16s var(--ap-ease)}
.rvpill:hover{border-color:var(--teal)}
.rvpill.on{background:var(--teal);border-color:var(--teal);color:#fff}
.flaglegend{background:var(--fog);border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:8px;font-size:11.5px;color:var(--g900);line-height:1.65}
.flaglegend b{color:var(--ink)}
.rvread{border:1px solid var(--g100);border-radius:12px;padding:8px 12px;margin-bottom:8px;display:flex;align-items:center;gap:8px;font-size:12.5px}
.rvread .rn{flex:1;color:var(--g900)}
.rvread .rs{font-weight:700;color:var(--ink);background:var(--fog);border-radius:8px;padding:2px 8px}
.sumgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.compbox{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:linear-gradient(120deg,#061929,#0A3D62);border-radius:12px;padding:12px 16px;color:#fff}
.compmain{display:flex;align-items:center;gap:12px}
.cscore{font-size:var(--ap-display);font-weight:700;line-height:1;color:#1ECAD3;letter-spacing:-.02em}
.csub{font-size:11.5px;color:rgba(255,255,255,.75)}
.csub b{color:#fff;font-size:12.5px}
.compbreak{margin-left:auto;min-width:190px}
.cbrow{display:flex;justify-content:space-between;gap:16px;font-size:11.5px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.85)}
.cbrow b{color:#1ECAD3}
.sumcard{border:1px solid var(--g100);border-radius:12px;padding:12px 12px}
.sumcard .sl{font-size:11.5px;font-weight:800;color:var(--g500);text-transform:uppercase;letter-spacing:.05em}
.sumcard .sv{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-top:4px;line-height:1.1}
.sumcard .sm{font-size:11.5px;color:var(--g500);margin-top:4px}
.ovtag{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 8px;vertical-align:middle;border:1px solid}
.schedbox{border:1px solid var(--g100);background:var(--fog);border-radius:12px;padding:12px 12px;margin-bottom:16px}
.schedhd{font-size:12.5px;font-weight:550;color:var(--ink);margin-bottom:4px}
.schedtag{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 8px;vertical-align:middle;background:#0FA3B114;color:#0C6E88;border:1px solid #0FA3B133}
.ccrow{display:flex;gap:8px;margin-bottom:8px;align-items:center}
.ccrow .cc-c{flex:1;min-width:0}
.ccrow .cc-imp{width:140px;flex-shrink:0}
.ccrow .cc-del{flex-shrink:0}
.gfilter{display:inline-flex;background:var(--g050);border-radius:8px;padding:2px;gap:4px}
.gfbtn{font-family:inherit;font-size:11.5px;font-weight:550;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--g500);cursor:pointer}
.gfbtn.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(6,25,41,.12)}
.gacard{border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:8px;display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}
.gacard .gainfo{flex:1 1 auto;min-width:0}
.gacard .ganame{font-weight:700;color:var(--ink);font-size:15.5px}
.gacard .gasub{font-size:11.5px;color:var(--g500);margin-top:4px}
.gsum{background:var(--fog);border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:12px}
.gsum .gsname{font-weight:700;color:var(--ink);font-size:15.5px}
.gsum .gsrole{font-size:12.5px;color:var(--g500);margin-top:0px}
.gsum .gsmeta{font-size:11.5px;color:var(--g900);margin-top:8px}
.gprev-img{max-width:100%;border:1px solid var(--g100);border-radius:12px;display:block}
.gprev-frame{width:100%;height:420px;border:1px solid var(--g100);border-radius:12px}
#cdOv.graphoonly .cdtab:not(#cdtabbtn_g){display:none}
#cdOv.graphoonly #cdpane_s,#cdOv.graphoonly #cdpane_l,#cdOv.graphoonly #cdpane_i,#cdOv.graphoonly #cdpane_r{display:none!important}
.trwrap{max-height:66vh;overflow:auto;border:1px solid var(--g100);border-radius:12px}
.trtable{width:100%;border-collapse:collapse;font-size:12.5px}
.trtable th{position:sticky;top:0;background:var(--g050);text-align:left;padding:8px 8px;font-weight:800;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--g500);z-index:1}
.trtable td{padding:8px 8px;border-top:1px solid var(--g100);vertical-align:top}
.trname{font-weight:700;color:var(--ink);cursor:pointer}
.trname:hover{text-decoration:underline}
.trsub{font-size:11.5px;color:var(--g500);margin-top:0px}
.tier{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:2px 8px;border:1px solid}
.tier.A{color:#15784F;background:#0E8A6314;border-color:#0E8A6333}
.tier.B{color:#B45309;background:#B4530914;border-color:#B4530933}
.tier.C{color:#61727A;background:#61727A14;border-color:#61727A33}
.trflag{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 4px;margin:4px 4px 0 0;background:#C0362C14;color:#C0362C;border:1px solid #C0362C33}
.trplus{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 4px;margin:4px 4px 0 0;background:#0FA3B114;color:#0C6E88;border:1px solid #0FA3B133}
.trfilters{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.trfbtn{font-family:inherit;font-size:11.5px;font-weight:550;padding:4px 12px;border-radius:12px;border:1.5px solid var(--g100);background:#fff;color:var(--g500);cursor:pointer;transition:all .16s var(--ap-ease)}
.trfbtn.on{border-color:var(--teal);color:var(--ink);background:#0FA3B114}
.tropened{display:inline-block;font-size:11.5px;font-weight:550;letter-spacing:.03em;color:#15784F;background:#0E8A6318;border:1px solid #0E8A6338;border-radius:8px;padding:0px 4px;margin-left:4px;vertical-align:middle}
.sctabs{display:flex;gap:4px;border-bottom:2px solid var(--g100);margin:12px 0 16px}
.sctab{font-family:inherit;font-size:12.5px;font-weight:550;color:var(--g500);background:none;border:none;border-bottom:3px solid transparent;padding:8px 16px;margin-bottom:-2px;cursor:pointer;transition:all .16s var(--ap-ease)}
.sctab.on{color:var(--ink);border-bottom-color:var(--accent-deep)}
.dash{margin-bottom:16px}
.dhero{margin-bottom:14px}
.dhero .dn{font-size:36px;font-weight:800;color:var(--ink);line-height:1.08;letter-spacing:-.025em;
  font-variant-numeric:tabular-nums}
.dhero .dl{font-size:13px;color:var(--g500);margin-top:2px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;
  padding-top:12px;border-top:1px solid var(--g050)}
.dcard{padding:6px 10px 6px 0}
.dcard .dn{font-size:15px;font-weight:700;color:var(--g700);line-height:1.15;
  font-variant-numeric:tabular-nums}
.dcard .dl{font-size:11px;color:var(--g500);margin-top:2px}
.plbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.plsearch{flex:1 1 230px;min-width:190px;max-width:360px;font-size:12.5px;padding:8px 12px}
.plbar select.trfbtn{width:auto;flex:0 1 auto;max-width:235px;padding-right:24px;appearance:auto}
.plcol2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wcard{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 16px}
.wh{font-size:12.5px;font-weight:550;color:var(--ink);margin:0 0 8px}
.t5row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--g050)}
.t5r{width:20px;height:20px;border-radius:8px;background:var(--ink);color:#fff;font-size:11.5px;font-weight:550;display:flex;align-items:center;justify-content:center;flex:0 0 20px}
.t5n{flex:1;font-weight:550;color:var(--ink);font-size:12.5px;cursor:pointer}
.t5n:hover{text-decoration:underline}
.t5s{font-weight:700;color:#0C6E88}
.actrow{display:flex;gap:8px;padding:4px 0;border-bottom:1px solid var(--g050)}
.actic{width:9px;height:9px;border-radius:50%;margin-top:4px;flex:0 0 9px}
.actic.a-new{background:#0E8A63}.actic.a-open{background:#1E54B4}.actic.a-iv{background:#B45309}
.actt{font-size:12.5px;color:var(--g900)}.actt b{color:var(--ink)}
.acttime{font-size:11.5px;color:var(--g500)}
.plkan{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;align-items:stretch;cursor:grab}
.plkan.siap-geser,.plkan.siap-geser *{cursor:grab!important}
.plkan.panning,.plkan.panning *{cursor:grabbing!important;user-select:none}
body.seret-kartu .plkcol{transition:background .16s var(--ap-ease)}
body.seret-kartu .plkcol:hover{background:rgba(30,202,211,.12)}
.plkan.panning{cursor:grabbing;user-select:none}
.plkan::-webkit-scrollbar{height:11px}
.plkan::-webkit-scrollbar-track{background:var(--g050);border-radius:8px}
.plkan::-webkit-scrollbar-thumb{background:var(--g400);border-radius:8px;border:2px solid var(--g050)}
.plkan::-webkit-scrollbar-thumb:hover{background:var(--g500)}
.kscr{font-family:inherit;font-size:15.5px;font-weight:700;width:30px;height:26px;border-radius:8px;border:1.5px solid var(--g100);background:#fff;color:var(--g500);cursor:pointer;line-height:1}
.kscr:hover{color:var(--ink);border-color:var(--teal)}
.plkcol{flex:0 0 195px;min-width:195px;background:var(--g050);border-radius:12px;display:flex;flex-direction:column;height:min(70vh,620px)}
.plkhead{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-weight:550;color:var(--ink);padding:8px 12px;border-top:3px solid;border-radius:12px 11px 0 0;background:#fff;flex:0 0 auto;box-shadow:0 2px 4px rgba(10,61,98,.05)}
.plkn{background:var(--g100);color:var(--g900);border-radius:18px;padding:0 8px;font-size:11.5px}
.plkhead{flex-wrap:wrap}
.plkhead>span:first-child{flex:1}
/* baris kedua kepala kolom: siapa yang ditunggu dan berapa lama mandek */
.plktunggu{flex:0 0 100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:5px;
  font-size:10.5px;font-weight:600;letter-spacing:.01em}
.plktunggu .sp{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:99px;
  border:1px solid transparent;white-space:nowrap}
.plktunggu .sp i{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block}
.sp-anda{background:rgba(12,110,136,.09);color:#0A5F76;border-color:rgba(12,110,136,.18)}
.sp-klien{background:rgba(109,74,237,.09);color:#5B3ED1;border-color:rgba(109,74,237,.18)}
.sp-kand{background:rgba(180,83,9,.09);color:#96460A;border-color:rgba(180,83,9,.18)}
.sp-usai{background:var(--g050);color:var(--g500);border-color:var(--g100)}
.plkdiam{font-weight:600;color:var(--g500);white-space:nowrap}
.plkdiam.awas{color:#B45309}
.plkdiam.bahaya{color:var(--err);font-weight:700}
.plkbody{padding:8px;display:flex;flex-direction:column;gap:8px;flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;overscroll-behavior-x:auto;scrollbar-width:thin}
.plkbody::-webkit-scrollbar{width:6px}
.plkbody::-webkit-scrollbar-thumb{background:var(--g200);border-radius:8px}
.plkcard{background:#fff;border:none;border-radius:12px;padding:8px 12px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:box-shadow .28s var(--ap-ease),transform .28s var(--ap-ease)}
.plkcard:hover{box-shadow:var(--e2);transform:translateY(-1px)}
.plkcard:active{cursor:grabbing}
.plkname{font-weight:700;color:var(--g900);font-size:12.5px;cursor:pointer;letter-spacing:-.01em;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plkmeta{font-size:11.5px;color:var(--g500);margin:4px 0 4px}
.plktags{display:flex;flex-wrap:wrap;gap:8px;row-gap:4px;align-items:center;margin-top:4px}
.plktags.plkproses{margin-top:2px;opacity:.82}
.plklap{margin-top:6px}
.ktier{font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 4px;color:var(--g500);background:none}
.ktier.k-A{color:var(--succ);background:rgba(14,138,99,.1);font-weight:700}.ktier.k-B{color:var(--info);background:rgba(30,84,180,.1);font-weight:700}.ktier.k-C{color:var(--g500);background:var(--g050)}
.kadm{font-size:11.5px;font-weight:550;color:var(--g500);background:none;border-radius:8px;padding:0px 4px}
.kgaji{font-size:11.5px;font-weight:400;color:var(--g500);background:none;border-radius:8px;padding:0px 4px}
.kopened{font-size:11.5px;font-weight:550;color:var(--g500)}
.krej{font-size:11.5px;font-weight:550;color:#C0362C;background:#C0362C14;border-radius:8px;padding:0px 4px}
.rejtag{display:inline-block;font-size:11.5px;font-weight:550;color:#C0362C;background:#C0362C14;border:1px solid #C0362C33;border-radius:8px;padding:0px 8px;vertical-align:middle}
.rjopts{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.anrow{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--g050);font-size:12.5px}
.anrow:last-child{border-bottom:none}
.ann{flex:1;min-width:0;font-weight:700;color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ann:hover{text-decoration:underline}
.ant{font-size:11.5px;color:var(--g500);white-space:nowrap}
.aibox{border:1px solid rgba(109,74,237,.32);background:linear-gradient(0deg,rgba(109,74,237,.045),rgba(109,74,237,.045)),#fff;border-radius:12px;padding:12px 16px}
.aihead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.aiscore{font-size:var(--ap-display);font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;background:rgba(109,74,237,.12);border:1px solid rgba(109,74,237,.35);border-radius:12px;padding:8px 12px}
.aihm{flex:1;min-width:160px;font-size:12.5px;color:var(--g900)}
.aihm b{color:var(--ink)}
.aisec{margin-top:8px}
.aisec b{font-size:11.5px;color:var(--ink)}
.aichip{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 8px;background:var(--g050);color:var(--g900);margin-right:4px}
.aitag{display:inline-block;font-size:11.5px;font-weight:550;color:var(--ai);background:none;border-radius:8px;padding:0px 4px;vertical-align:middle}
.kai{font-size:11.5px;font-weight:550;color:var(--ai);background:none;border-radius:8px;padding:0px 4px}
/* instrumen grapho v2 */
.bnyboard{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch;background:#fff;border:1px solid rgba(15,163,177,.35);border-radius:12px;padding:12px 12px;margin-bottom:12px}
.bnyfit{background:linear-gradient(135deg,var(--teal),var(--ink));color:#fff;border-radius:12px;padding:8px 16px;display:flex;flex-direction:column;justify-content:center;min-width:96px}
.bfv{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1}
.bfl{font-size:11.5px;opacity:.85;font-weight:550;margin-top:4px}
.bnycell{display:flex;flex-direction:column;justify-content:center;padding:0 8px;border-left:1px solid var(--g050)}
.bnycell b{font-size:15.5px;color:var(--ink)}
.bnycell span{font-size:11.5px;color:var(--g500)}
.bnystatus{margin-left:auto;align-self:center;font-size:12.5px;font-weight:550;border:2px solid;border-radius:999px;padding:4px 12px;white-space:nowrap}
.bny{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:8px}
.bnytop{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
.bnyname{flex:1;min-width:220px;font-size:12.5px;font-weight:550;color:var(--ink)}
.bnydef{font-size:11.5px;font-weight:400;color:var(--g500);margin-top:4px;line-height:1.5}
.bnyright{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bwt{font-size:11.5px;font-weight:550;color:var(--g500);background:var(--g050);border-radius:8px;padding:2px 8px;white-space:nowrap}
.bscs{display:flex;gap:4px}
.bsc{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--g100);background:#fff;font-family:inherit;font-size:12.5px;font-weight:550;color:var(--g500);cursor:pointer;transition:all .16s var(--ap-ease)}
.bsc.tgt{border-style:dashed;border-color:rgba(15,163,177,.5)}
.bsc:hover{border-color:var(--teal);color:var(--ink)}
.bsc.on{background:var(--ink);border-color:var(--ink);color:#fff;border-style:solid}
.bgap{font-size:11.5px;font-weight:550;border-radius:8px;padding:2px 8px;white-space:nowrap}
.bgap.ok{color:#15784F;background:#0E8A6318}
.bgap.bad{color:#C0362C;background:#C0362C14}
.bman{font-size:11.5px;font-weight:550;letter-spacing:.04em;color:#B45309;background:#B4530918;border:1px solid #B4530944;border-radius:8px;padding:0px 4px;vertical-align:2px}
.bman.crit{color:#C0362C;background:#C0362C14;border-color:#C0362C44}
.bancbtn{font-size:11.5px;margin-top:8px}
.banc{margin-top:8px;border-top:1px dashed var(--g100);padding-top:8px;display:grid;gap:4px}
.bancl{border:1px solid var(--g050);border-radius:8px;padding:8px 8px;font-size:11.5px}
.bancl b{color:var(--ink);font-size:11.5px}
.bancl.cur{border-color:var(--teal);background:rgba(15,163,177,.06)}
.banch{color:var(--g900);margin-top:4px}
.banci{color:var(--g500);margin-top:4px;line-height:1.5}
.gtrow{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--g050)}
.gtn{flex:1;font-size:12.5px;font-weight:550;color:var(--g900)}
.gtd{font-size:11.5px;color:var(--g500);white-space:nowrap}
.ivsec{flex:0 0 auto;align-self:flex-start;font-size:11.5px;font-weight:550;letter-spacing:.05em;color:var(--accent-deep);background:var(--accent-tint);border:1px solid rgba(30,202,211,.35);border-radius:8px;padding:2px 8px;margin-top:4px}
.ivsec-int{color:#B45309;background:#B4530914;border-color:#B4530944}
.ivg-btn{font-size:11.5px;margin:4px 0 4px}
.ivguide{border-left:3px solid var(--accent);background:var(--fog);border-radius:0 9px 9px 0;padding:8px 12px;margin:4px 0 8px;font-size:11.5px;line-height:1.6}
.ivg-l b{color:var(--accent-deep)}
.ivg-r{margin-top:4px}
.ivg-r b{color:var(--errdeep,#C0362C)}
.cdquick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.cdquick .btn{padding:8px 12px;font-size:11.5px}
.cdreject{background:#fff;color:var(--err);border:1.5px solid rgba(192,54,44,.4)}
.cdreject:hover{background:var(--err);color:#fff}
.plpills{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.plpill{font-family:inherit;font-size:12.5px;font-weight:550;padding:8px 16px;border-radius:999px;border:1.5px solid var(--g100);background:#fff;color:var(--g500);cursor:pointer;transition:all .16s var(--ap-ease)}
.plpill:hover{border-color:var(--teal);color:var(--ink)}
.plpill.on{background:var(--ink);border-color:var(--ink);color:#fff}
.plkrow{display:flex;align-items:flex-start;gap:4px}
.plkrow .plkname{flex:1;min-width:0}
.kmsg{flex:0 0 auto;font-family:inherit;font-size:11.5px;width:32px;height:32px;border-radius:8px;border:1px solid var(--g100);background:#fff;color:var(--g500);cursor:pointer;line-height:1;transition:color var(--ap-cepat) var(--ap-ease),border-color var(--ap-cepat) var(--ap-ease)}
.kmsg:hover{color:var(--accent-deep);border-color:var(--accent-deep)}
.kmsg:hover{background:var(--accent-tint);border-color:var(--teal)}
.ksla{font-size:11.5px;font-weight:400;border-radius:8px;padding:0px 4px;background:none!important}
.slatag{display:inline-block;font-size:11.5px;font-weight:550;border-radius:8px;padding:0px 8px;border:1px solid;vertical-align:middle}
.sla-ok{color:var(--g500);background:none;border-color:transparent}
.sla-amber{color:var(--g500);background:none;border-color:transparent;font-weight:550}
.sla-red{color:var(--err);background:none;border-color:transparent;font-weight:700}
.sla-done{color:var(--g500);background:none;border-color:transparent}
.aibulk{background:var(--grad-nebula);color:#fff;border:none;font-weight:700}
.aibulk:hover{filter:brightness(1.08)}
.aibulk-run{font-size:11.5px;font-weight:550;color:#fff;background:var(--grad-nebula);border-radius:8px;padding:8px 12px}
.aibulk-stop{border-color:rgba(192,54,44,.45);color:var(--err)}
.aicl{margin-top:4px;display:grid;gap:4px}
.aicl-row{display:flex;gap:8px;font-size:11.5px;line-height:1.5}
.aicl-ic{flex:0 0 18px;height:18px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:550;font-size:11.5px;margin-top:0px}
.aicl-ic.p{color:#15784F;background:#0E8A6318}
.aicl-ic.m{color:#C0362C;background:#C0362C14}
.aicl-ic.n{color:#5E7079;background:#EEF3F5}
.aicl-a{color:var(--g500);font-size:11.5px}
.aicl-t{color:var(--g900);font-weight:700}
.tprow{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--g050)}
.tpmain{flex:1;min-width:0}
.tpmain b{color:var(--ink);font-size:12.5px}
.tpsub{font-size:11.5px;color:var(--g900);margin-top:0px}
.tpsrc{font-size:11.5px;color:var(--g500);margin-top:4px}
.tpact{display:flex;gap:4px;align-items:center;flex:0 0 auto}
.cphead{margin:4px 0 16px}
.cpk{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}
.cpcard{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--g100);border-radius:var(--r-md);padding:12px 16px;margin-bottom:8px;text-decoration:none;color:inherit;box-shadow:var(--e1);transition:all .16s var(--ap-ease)}
.cpcard:hover{transform:translateY(-1px);box-shadow:var(--e2);border-color:rgba(15,163,177,.4)}
.cpcard b{color:var(--ink);font-size:15.5px}
.cpchips{margin-top:4px;display:flex;gap:4px;flex-wrap:wrap}
.cpchip{font-size:11.5px;font-weight:550;color:var(--g500);background:var(--g050);border-radius:8px;padding:2px 8px}
.cpgo{font-size:19px;color:var(--g500);font-weight:700}
.cpav{flex:0 0 46px;width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--ink),var(--teal));color:#fff;font-weight:700;font-size:15.5px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cpav img{width:100%;height:100%;object-fit:cover}
.rvhead{display:flex;gap:12px;align-items:flex-start;margin:4px 0 8px}
.rvav{flex:0 0 76px;width:76px;height:76px;border-radius:18px;background:linear-gradient(135deg,var(--ink),var(--teal));color:#fff;font-weight:700;font-size:24px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rvav img{width:100%;height:100%;object-fit:cover}
.rvsec{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 16px;margin:0 0 8px;font-size:12.5px;line-height:1.6;color:var(--g900)}
.rvsec p,.rvsec li{color:var(--g900)}
.rvsec b{color:var(--ink);display:block;margin-bottom:4px}
.rvsec ul{margin:4px 0 0 16px}
.rvsec p{margin:4px 0}
.rvgrid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:1000px){
  .rvgrid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:16px;align-items:start}
  .rvcol,.rvgrid #rvCard{max-height:calc(100vh - 40px);overflow-y:auto}
  .rvgrid #rvCard{position:sticky;top:20px}
  .rvcol::-webkit-scrollbar,.rvgrid #rvCard::-webkit-scrollbar{width:8px}
  .rvcol::-webkit-scrollbar-thumb,.rvgrid #rvCard::-webkit-scrollbar-thumb{background:var(--g100);border-radius:8px}
}
.rvfit{border:1px solid var(--g100);border-radius:12px;overflow:hidden}
.rvfitrow{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;border-top:1px solid var(--g100);background:#fff}
.rvfitrow:first-child{border-top:none}
.rvfitrow .fl{flex:0 0 auto;font-size:11.5px;font-weight:550;padding:2px 8px;border-radius:999px;background:var(--g050);color:var(--g500);white-space:nowrap;margin-top:0px}
.rvfitrow .fl.y{background:rgba(16,185,129,.13);color:#047857}
.rvfitrow .fl.w{background:rgba(180,83,9,.13);color:#8a5a06}
.rvfitrow .fl.n{background:rgba(239,68,68,.10);color:#B91C1C}
.rvfitrow .fc{flex:1;min-width:0;font-size:12.5px;color:var(--ink);font-weight:550}
.rvfitrow .fb{font-weight:400;color:var(--g500);display:block;margin-top:0px}
.rvkv{font-size:12.5px;color:var(--g900);margin:4px 0}
.rvkv b{color:var(--ink)}
.rvrec{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:550;padding:4px 12px;border-radius:999px;background:rgba(15,163,177,.10);border:1px solid rgba(15,163,177,.30);color:var(--ink)}
.kpanel{background:var(--fog);border:1px solid var(--g100);border-radius:12px;padding:12px;margin-bottom:12px}
.kpanel h4{font-size:12.5px;font-weight:550;color:var(--ink);margin-bottom:4px}
.kh{display:block;font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--g500);margin:16px 0 4px}
.kgate{border-radius:12px;padding:12px 12px;margin-bottom:12px;font-size:12.5px;border:1px solid}
.kgate.ok{background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.30);color:#047857}
.kgate.warn{background:rgba(180,83,9,.10);border-color:rgba(180,83,9,.32);color:#8a5a06}
.kchip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:550;padding:2px 8px;border-radius:999px;margin:4px 4px 0 0;background:#fff;border:1px solid var(--g100);color:var(--g500)}
.kchip.y{color:#047857;border-color:rgba(16,185,129,.35)}
.kchip.n{color:#B45309;border-color:rgba(180,83,9,.35)}
.krow{background:#fff;border:1px solid var(--g100);border-radius:8px;padding:8px 8px;margin-bottom:4px}
.krow .kn{font-size:12.5px;font-weight:550;color:var(--ink)}
.krow .kimp{font-size:11.5px;font-weight:800;color:var(--g500);text-transform:uppercase;letter-spacing:.05em;margin-left:4px}
.kchk{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;cursor:pointer;margin-bottom:8px;line-height:1.45}
.kchk input{margin-top:4px;flex:0 0 auto}
#cdOv.wide .modal{max-width:900px}
/* ============ LAPIS APPLE ============
   Nusva mengatur token (warna, format, privasi).
   Lapis ini mengatur ruang, skala huruf, dan pengekangan. */
:root{
  --ap1:8px;--ap2:16px;--ap3:28px;--ap4:44px;--ap5:72px;--ap6:110px;
  --ap-display:clamp(34px,5.2vw,44px);--ap-title:clamp(19px,3.2vw,24px);
  --ap-sub:19px;--ap-body:15.5px;--ap-cap:12.5px;
  --ap-ease:cubic-bezier(.32,.72,0,1);--ap-cepat:var(--dur-1);--ap-normal:var(--dur-2);--ap-lambat:var(--dur-3);
  --ap-mute:#6E6E73;--ap-line:rgba(6,25,41,.08);--ap-canvas:#FBFBFD;
  --grad-nusva:linear-gradient(118deg,#0A3D62 0%,#0A5570 22%,#0C6E88 42%,#0E8FA1 62%,#10A5B3 76%,#14B1BD 88%,#1ECAD3 100%);
  --glow-kristal:0 4px 16px rgba(30,202,211,.32);
}
.ap{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.ap-display{font-size:var(--ap-display);font-weight:800;letter-spacing:-.035em;line-height:1.04;color:var(--ink);margin:0}
.ap-title{font-size:var(--ap-title);font-weight:700;letter-spacing:-.025em;line-height:1.14;color:var(--ink);margin:0}
.ap-sub{font-size:var(--ap-sub);font-weight:400;letter-spacing:-.012em;line-height:1.42;color:var(--ap-mute);margin:0}
.ap .ap-body{font-size:var(--ap-body);font-weight:400;line-height:1.62;color:var(--g900);margin:0}
.ap .ap-cap{font-size:var(--ap-cap);font-weight:400;color:var(--ap-mute);margin:0}
.ap .ap-over{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ap-mute);margin:0}
.ap-rule{height:1px;background:var(--ap-line);border:none;margin:var(--ap3) 0}
.ap-reveal{opacity:0;transform:translateY(22px);animation:apup var(--dur-3) var(--ap-ease) both}
.ap-reveal.d1{animation-delay:.07s}.ap-reveal.d2{animation-delay:.14s}
.ap-reveal.d3{animation-delay:.21s}.ap-reveal.d4{animation-delay:.28s}
@keyframes apup{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ap-reveal{animation:none;opacity:1;transform:none}}

/* ---------- layar masuk ---------- */
#login{min-height:100vh;background:#fff;display:flex;align-items:center;justify-content:center;padding:var(--ap4) var(--ap2);position:relative;overflow:hidden}
#login::before{content:"";position:absolute;width:820px;height:820px;border-radius:50%;right:-330px;top:-380px;
  background:radial-gradient(circle,rgba(30,202,211,.10),transparent 64%);pointer-events:none}
.lgwrap{position:relative;width:100%;max-width:392px}
#login .ap-display{color:var(--ink)}
#login .lgsub{font-size:var(--ap-sub);font-weight:400;letter-spacing:-.012em;color:var(--ap-mute);margin:12px 0 0}
.lgform{margin-top:var(--ap4)}
#login label{display:block;font-size:12.5px;font-weight:550;color:var(--g500);margin:0 0 8px;letter-spacing:.01em}
#login .field{margin-bottom:var(--ap2)}
#login .inp{background:var(--g050);border:1px solid transparent;color:var(--g900);
  font-size:15.5px;padding:12px 16px;border-radius:12px;transition:all .28s var(--ap-ease)}
#login .inp::placeholder{color:var(--g400)}
#login .inp:focus{background:#fff;border-color:var(--cyan);box-shadow:0 0 0 4px rgba(30,202,211,.14)}
#login .btn.pri{width:100%;margin-top:var(--ap2);padding:16px;font-size:15.5px;border-radius:12px;letter-spacing:-.01em}
#login .forgot{display:block;width:100%;background:none;border:none;color:var(--ap-mute);
  font-family:inherit;font-size:12.5px;font-weight:400;margin-top:var(--ap3);cursor:pointer;transition:color .28s var(--ap-ease)}
#login .forgot:hover{color:var(--link)}
#login .eye{color:var(--g500)}
#login .lerr{color:#C0392B;font-size:12.5px;margin-top:var(--ap2);text-align:left}

/* ---------- halaman klien ---------- */
#review{background:var(--ap-canvas)}
#review .invite{background:none;color:inherit;border-radius:0;padding:0;margin:0 0 var(--ap3);overflow:visible}
#review .invite::before,#review .invite::after{display:none!important;content:none!important}
#review .invite h2.ap-display{font-size:var(--ap-display);font-weight:800;letter-spacing:-.035em;line-height:1.04;color:var(--ink)}
#review .invite p.ap-sub{font-size:var(--ap-sub);font-weight:400;color:var(--ap-mute);opacity:1}
#review .rvhead{align-items:center;gap:var(--ap3);margin:0 0 var(--ap3)}
#review .rvav{flex:0 0 92px;width:92px;height:92px;border-radius:18px;font-size:var(--ap-display);box-shadow:0 12px 34px rgba(6,25,41,.14)}
#review .rvsec{background:none;border:none;border-top:1px solid var(--ap-line);border-radius:0;
  padding:var(--ap3) 0 0;margin:0 0 var(--ap3);font-size:var(--ap-body);line-height:1.62;color:var(--g900)}
#review .rvsec>b{display:block;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ap-mute);margin-bottom:var(--ap2)}
#review .rvsec p{font-size:var(--ap-body);line-height:1.62;margin:0 0 8px}
#review .rvsec ul{margin:8px 0 0;padding-left:24px}
#review .rvsec li{margin-bottom:8px;line-height:1.55}
#review .cpchip{font-size:11.5px;font-weight:550;color:var(--g500);background:rgba(6,25,41,.05);
  border-radius:999px;padding:4px 12px}
#review .cpchips{display:flex;flex-wrap:wrap;gap:8px}
#review .rvfit{border:none;border-radius:0}
#review .rvfitrow,.rppv .rvfitrow{display:grid;grid-template-columns:162px minmax(0,1fr);gap:16px;
  align-items:start;background:none;border-top:1px solid var(--ap-line);padding:12px 0}
#review .rvfitrow .fl,.rppv .rvfitrow .fl{justify-self:start;margin-top:4px;font-size:11.5px;
  padding:4px 8px;letter-spacing:.01em}
#review .rvfitrow .fc,.rppv .rvfitrow .fc{font-size:15.5px;font-weight:700;line-height:1.4;color:var(--ink)}
.fimp{display:inline-block;margin-left:8px;font-size:11.5px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--g500);vertical-align:1px}
#review .rvfitrow .fb,.rppv .rvfitrow .fb{font-size:12.5px;margin-top:4px;line-height:1.5;
  color:var(--g500);font-weight:400;display:block}
@media(max-width:640px){
  #review .rvfitrow,.rppv .rvfitrow{grid-template-columns:1fr;gap:8px}
  #review .rvfitrow .fl,.rppv .rvfitrow .fl{margin-top:0}
}
.rppv .rvfitrow .fc{font-size:15.5px}
.rppv .rvfitrow{grid-template-columns:148px minmax(0,1fr);gap:12px;padding:12px 0}
#review .rvkv{font-size:15.5px;line-height:1.6;margin:0 0 8px}
#review #rvCard{background:#fff;border:none;border-radius:18px;padding:var(--ap3);
  box-shadow:0 1px 2px rgba(6,25,41,.05),0 18px 50px rgba(6,25,41,.07)}
#review .rvrec{font-size:15.5px;padding:8px 16px}
/* ===== SKALA TIPOGRAFI NUSVA v1.2 ===== */
:root{
  
  --grad-nebula:linear-gradient(135deg,#0A3D62 0%,#4A3FB0 55%,#6D4AED 100%);
}
.over,.aipanel .over,.aiempty .over{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--g500);margin:0 0 8px}
.over.nebula{background:var(--grad-nebula);-webkit-background-clip:text;background-clip:text;color:transparent}
/* ===== PANEL ANALISA AI ===== */
.aipanel{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:16px 16px}
.aitop{display:flex;align-items:flex-start;gap:8px;justify-content:space-between;margin-bottom:12px}
.aiempty{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 16px}
.aiempty>div{flex:1;min-width:200px}
.aiverdict{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.aibig{font-size:var(--ap-display);font-weight:700;letter-spacing:-.035em;line-height:.86;
  background:var(--grad-nebula);-webkit-background-clip:text;background-clip:text;color:transparent}
.ailabel{font-size:19px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.aibar{height:5px;border-radius:999px;background:var(--g050);overflow:hidden;margin:8px 0 4px;max-width:340px}
.aibar i{display:block;height:100%;border-radius:999px;background:var(--grad-nebula);
  animation:aigrow var(--dur-3) var(--ease) both}
@keyframes aigrow{from{width:0!important}}
.aipanel .aimeta{font-size:12.5px;font-weight:550;color:var(--g500)}
.aipanel .ailead{font-size:15.5px;line-height:1.62;color:var(--ink);margin:16px 0 12px;font-weight:400}
.aigrid{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:660px){.aigrid{grid-template-columns:1fr 1fr}}
.aicol{border-radius:12px;padding:12px 12px;border:1px solid}
.aicol.plus{background:rgba(16,185,129,.055);border-color:rgba(16,185,129,.22)}
.aipanel .aicol.plus .over{color:#047857}
.aicol.minus{background:rgba(180,83,9,.06);border-color:rgba(180,83,9,.26)}
.aipanel .aicol.minus .over{color:#8a5a06}
.aiev{font-size:12.5px;line-height:1.5;padding:8px 0;border-top:1px solid rgba(6,25,41,.07)}
.aiev:nth-of-type(1){border-top:none;padding-top:0}
.aiev b{display:block;font-weight:700;color:var(--ink);margin-bottom:0px}
.aiev span{color:var(--g500)}
.aiverif{margin-top:12px;background:var(--fog);border:1px solid var(--g100);border-radius:12px;padding:12px 12px}
@media (prefers-reduced-motion:reduce){.aibar i{animation:none}}
.kpk{font-size:11.5px;font-weight:550;padding:2px 8px;border-radius:8px;cursor:pointer;
  border:1px solid;transition:all .16s var(--ap-ease);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.kpk::after{content:"\203A";margin-left:4px;font-weight:700;opacity:.75}
.kpk.pklow{background:rgba(12,110,136,.10);color:var(--teal);border-color:rgba(12,110,136,.22)}
.kpk.pkmid{background:rgba(12,110,136,.10);color:var(--teal);border-color:rgba(12,110,136,.22)}
.kpk.pkfull{background:var(--teal);color:#fff;border-color:transparent}
.kpk:hover{filter:brightness(.94);transform:translateY(-1px)}
.tabn{display:inline-block;margin-left:4px;font-size:11.5px;font-weight:550;padding:0px 4px;border-radius:999px;background:rgba(180,83,9,.16);color:#8a5a06}
.tabn.full{background:rgba(16,185,129,.16);color:#047857}
.pkitem{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 12px;margin-bottom:8px}
.pkrow{display:flex;gap:4px;align-items:center;background:#fff;border:1px solid var(--g100);border-radius:8px;padding:8px 8px;margin-bottom:4px;flex-wrap:wrap}
.pkrow input,.pkrow select{font-size:12.5px;padding:4px 8px}
.pkrow .pknama{flex:1;min-width:150px}
.pkrow .pknum{width:62px;text-align:center}
.pkanc{background:var(--fog);border:1px solid var(--g100);border-radius:8px;padding:8px 12px;margin:0 0 8px}
.pkanc .lv{font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--g500);margin:8px 0 4px}
.pkanc textarea{font-size:11.5px;padding:4px 8px}
.pkmini{font-size:11.5px;font-weight:550;padding:4px 8px;border-radius:12px;border:1.5px solid var(--g100);background:#fff;color:var(--g500);cursor:pointer;font-family:inherit}
.pkmini:hover{border-color:var(--teal);color:var(--ink)}
.pkmini.bad:hover{border-color:var(--err);color:var(--err)}
.fincheck{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--ap-line)}
.fincheck:first-child{border-top:none}
.finic{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:550;margin-top:0px}
.finic.ya{background:rgba(16,185,129,.14);color:#047857}
.finic.no{background:rgba(180,83,9,.16);color:#8a5a06}
.fincheck b{display:block;font-size:12.5px;font-weight:550;color:var(--ink)}
.fincheck span{font-size:12.5px;color:var(--g500)}
.finbar{height:6px;border-radius:999px;background:var(--g050);overflow:hidden;margin:4px 0 16px}
.finbar i{display:block;height:100%;border-radius:999px;background:var(--grad-nusva);transition:width .44s var(--ap-ease)}
.rpband{display:flex;gap:var(--ap3);align-items:flex-end;flex-wrap:wrap;
  padding-bottom:var(--ap2);margin:var(--ap2) 0 var(--ap2);border-bottom:1px solid var(--ap-line)}
.rpmeter{min-width:210px;flex:0 0 auto}
.rpmeter b{font-size:15.5px;font-weight:700;color:var(--ink)}
.rpacts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--ap3);position:sticky;top:60px;z-index:12;
  background:var(--fog);padding:8px 0}
.rpgrid{display:grid;grid-template-columns:1fr;gap:var(--ap3)}
@media(min-width:1080px){.rpgrid{grid-template-columns:minmax(0,1fr) minmax(400px,.82fr);gap:var(--ap4);align-items:start}
  .rppv{position:sticky;top:132px;max-height:calc(100vh - 156px);overflow-y:auto}}
.rppv{background:#fff;border-radius:18px;padding:24px 24px;box-shadow:var(--e1)}
.rppv .rvsec{background:none;border:none;border-top:1px solid var(--ap-line);border-radius:0;padding:16px 0 0;margin:0 0 16px}
.rppv .rvsec>b{display:block;font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ap-mute);margin-bottom:8px}
.rppv .rvsec p{font-size:15.5px;line-height:1.6;margin:0 0 8px;color:var(--g900)}
.rppv .rvsec ul{margin:8px 0 0;padding-left:24px}
.rppv .rvsec li{margin-bottom:8px;font-size:15.5px;line-height:1.5;color:var(--g900)}
.rpkosong{font-size:12.5px;color:var(--g500);font-style:normal;padding:12px 0}
.finstamp{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.24);border-radius:12px;padding:8px 12px;font-size:12.5px;color:#047857;margin-bottom:12px}
.pkwarn{background:rgba(180,83,9,.10);border:1px solid rgba(180,83,9,.3);color:#8a5a06;border-radius:8px;padding:8px 12px;font-size:11.5px;margin-bottom:8px}
/* ===== ZONA 1: menu pengaturan briefing ===== */
.mand{position:relative;display:inline-block}
.mandcar{font-size:11.5px;opacity:.7;margin-left:4px}
.mandpop{position:absolute;right:0;top:calc(100% + 6px);min-width:210px;background:#fff;border:1px solid var(--g100);border-radius:12px;box-shadow:0 16px 44px rgba(6,25,41,.16);padding:4px;z-index:40;animation:mandin .16s var(--ease) both}
@keyframes mandin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.mandlab{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--g500);padding:8px 8px 2px;margin:0}
.mandpop button{display:block;width:100%;text-align:left;font-family:inherit;font-size:12.5px;font-weight:550;color:var(--ink);background:none;border:none;border-radius:8px;padding:8px 8px;cursor:pointer;transition:background .16s var(--ap-ease)}
.mandpop button:hover{background:var(--fog)}
/* ===== ZONA 2: segmented control ===== */
.plseg{display:inline-flex;gap:4px;background:var(--g050);border-radius:999px;padding:4px;margin-bottom:12px}
.plsegb{font-family:inherit;font-size:12.5px;font-weight:550;padding:8px 16px;border-radius:999px;border:none;background:transparent;color:var(--g500);cursor:pointer;transition:all .16s var(--ap-ease)}
.plsegb:hover{color:var(--ink)}
.plsegb.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(6,25,41,.14);font-weight:700}
/* ===== ZONA 3: bilah saringan ===== */
.chipn{display:inline-block;margin-left:4px;font-size:11.5px;font-weight:550;padding:0px 4px;border-radius:999px;background:var(--g050);color:var(--g500)}
.trfbtn.on .chipn{background:rgba(255,255,255,.22);color:#fff}
.chipn.on{background:var(--cyan);color:var(--night)}
.trfbtn.kosong{opacity:.42}
.plfbtn{font-weight:700}
.placts{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto;padding-left:12px;border-left:1px solid var(--g100)}
.plpanel{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px;margin:0 0 12px;animation:mandin var(--dur-1) var(--ease) both}
.plpgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.plpgrid label{display:block;font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--g500)}
.plpgrid select{margin-top:4px;font-size:12.5px;cursor:pointer}
.plph{font-size:11.5px;color:var(--g500);margin:12px 0 8px}
.plchips{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}
.plreset{font-weight:700}
/* ===== MOMEN GERAK TUNGGAL ===== */
@keyframes plsettle{from{opacity:0;transform:translateY(7px) scale(.985)}to{opacity:1;transform:none}}
.plkcard.settle,.candcard.settle{animation:plsettle var(--dur-2) var(--ease) both}
/* ===== FOKUS KEYBOARD ===== */
:where(button,select,input,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  .plkcard.settle,.candcard.settle,.plpanel,.mandpop{animation:none!important}
}
.cdav{flex:0 0 56px;width:56px;height:56px;border-radius:12px;background:linear-gradient(135deg,var(--ink),var(--teal));color:#fff;font-weight:700;font-size:19px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}
.cdav img{width:100%;height:100%;object-fit:cover}
.kmsgd{font-size:11.5px;font-weight:400;color:var(--g500);background:none;border:none;border-radius:8px;padding:0px 4px}
.kgr{font-size:11.5px;font-weight:400;color:var(--g500);background:none;border:none;border-radius:8px;padding:0px 4px}
.cdmsgh{font-size:11.5px;color:var(--g500);margin:-4px 0 8px;line-height:1.7}
.cdmsgh b{color:var(--ink)}
.cdmsgh .mch{font-size:11.5px;font-weight:550;color:var(--g500);background:var(--g050);border-radius:8px;padding:0 4px;vertical-align:1px}
@media(min-width:1100px){
  body{font-size:15.5px}
  h2{font-size:24px}
  .psub{font-size:15.5px}
  .inp,select,textarea{font-size:15.5px;padding:12px 12px}
  .plsearch{font-size:12.5px;padding:8px 12px}
  .trfbtn{font-size:12.5px;padding:8px 12px}
  .plbar select.trfbtn{max-width:250px}
  .plkcol{flex:0 0 230px;min-width:230px}
  .plkcard b{font-size:12.5px}
  .plkcard small{font-size:11.5px}
  .scards{grid-template-columns:repeat(auto-fill,minmax(370px,1fr));gap:16px}
  table{font-size:12.5px}
  .wcard{padding:24px}
  .cpcard b{font-size:15.5px}
  .kv{font-size:15.5px}
  .sumgrid{gap:12px}
}
.buildtag{font-size:11.5px;font-weight:550;letter-spacing:.06em;color:var(--g500);border:1px solid var(--g100);border-radius:8px;padding:0px 4px;vertical-align:2px}
@media(max-width:640px){.plcol2{grid-template-columns:1fr}}
.printarea{display:none}
@media print{
  body{background:#fff!important}
  body>*:not(.printarea){display:none!important}
  .printarea{display:block!important}
  @page{size:A4;margin:14mm}
}
.cstage{font-family:inherit;font-size:11.5px;font-weight:550;padding:8px 8px;border-radius:8px;border:1.5px solid var(--g100);background:#fff;color:var(--ink);cursor:pointer;flex:0 0 auto;width:150px;max-width:42%}
.modal{--mp:32px;background:#fff;border-radius:var(--r-lg);padding:var(--mp);max-width:480px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--e4)}
.modal.mkepala{padding-top:0}
.modal.mkaki{padding-bottom:0}
/* ===== Lembar tiga lapis: kepala menempel, badan menggulung, kaki menempel ===== */
.mhead{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:16px;
  margin:0 calc(-1*var(--mp)) 16px;padding:var(--mp) var(--mp) 16px;background:#fff;
  border-bottom:1px solid var(--g100);border-radius:var(--r-lg) var(--r-lg) 0 0}
.mhead.atas{align-items:flex-start}
.mhead h3{margin:0;flex:1;min-width:0}
.mfoot{position:sticky;bottom:0;z-index:3;display:flex;gap:8px;
  margin:24px calc(-1*var(--mp)) 0;padding:16px var(--mp) var(--mp);background:#fff;
  border-top:1px solid var(--g100);border-radius:0 0 var(--r-lg) var(--r-lg)}
.mfoot>.btn{flex:1;margin:0;width:auto}
.mx{font-family:inherit;font-size:12.5px;font-weight:550;color:var(--accent-deep);
  background:none;border:none;cursor:pointer;border-radius:var(--r-sm);white-space:nowrap;
  min-height:44px;min-width:44px;padding:0 8px;margin:-11px -8px -11px 0;flex:0 0 auto;
  transition:background var(--dur-1) var(--ease)}
.mx:hover{background:var(--g050)}
.ov textarea{overflow-y:auto}
.modal h3{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:4px}
.modal p{font-size:12.5px;color:var(--g500);margin-bottom:12px}
.linkbox{display:flex;gap:8px;margin:12px 0 8px}.linkbox .inp{font-size:12.5px;font-weight:550;color:var(--ink);background:var(--fog)}
.modal .opts{display:flex;gap:8px;margin-top:4px}.modal .opts .btn{flex:1}
.wa{background:#25D366!important;color:#fff!important}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(80px);background:var(--night);color:#fff;font-size:12.5px;font-weight:550;padding:12px 24px;border-radius:var(--r-md);box-shadow:var(--e3);transition:transform .28s var(--ap-ease);z-index:99;max-width:90vw;text-align:center}
.toast.show{transform:translateX(-50%) translateY(0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important var(--ap-ease)}}

/* ===== sasaran sentuh di ponsel, laptop tidak berubah ===== */
@media(hover:none),(max-width:640px){
  .lnk{display:inline-flex;align-items:center;min-height:34px;padding:2px 2px}
  .plkname{min-height:34px;line-height:1.7;margin:-4px 0}
  .kmsg{width:32px;height:32px;font-size:12.5px}
  .kscr{width:38px;height:32px}
  .kpk{padding:8px 12px}
  .trfbtn{padding:8px 12px;min-height:34px}
  .plsegb{padding:8px 16px;min-height:36px}
  .btn.sm{min-height:34px}
  .pkmini{min-height:32px;padding:4px 12px}
  .cdtab{min-height:38px}
}

/* urutan sumber: kaki lembar mengalahkan aturan lebar tombol di ponsel */
.mfoot>.btn{flex:1 1 0;width:auto;margin-top:0;min-width:0}
@media (max-width:600px){.modal{--mp:24px}}

/* ikon grid 24, ujung bulat, selalu berpasangan dengan teks */
.ikon{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.kmsg .ikon{vertical-align:0}

/* ===== Dashboard ===== */
.dbtabs{display:flex;gap:4px;background:var(--g050);padding:4px;border-radius:10px;margin-bottom:16px}
.dbtab{flex:1;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--g500);background:none;
  border:none;border-radius:7px;padding:8px 10px;cursor:pointer;transition:all var(--dur-1) var(--ease)}
.dbtab:hover{color:var(--g900)}
.dbtab.on{background:#fff;color:var(--ink);box-shadow:var(--e1)}
.dbkpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.dbk{background:#fff;border:1px solid var(--g100);border-radius:12px;padding:12px 14px}
.dbk .l{font-size:11px;font-weight:600;color:var(--g500);display:flex;align-items:center;gap:6px}
.dbk .l i{width:6px;height:6px;border-radius:2px;background:var(--accent-deep)}
.dbk.ok .l i{background:var(--succ)}.dbk.wr .l i{background:var(--warn)}
.dbk.mt .l i{background:var(--g400)}.dbk.ai .l i{background:var(--ai)}.dbk.bd .l i{background:var(--err)}
.dbk .n{font-size:23px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-top:4px;line-height:1.1}
.dbk .x{font-size:11px;color:var(--g500);margin-top:1px}
.dbwrap{border:1px solid var(--g100);border-radius:12px;overflow:hidden;background:#fff}
.dbtop{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--g100);flex-wrap:wrap}
.dbtop b{font-size:12.5px;font-weight:700;color:var(--g900)}
.dbtop .h{font-size:11.5px;color:var(--g500)}
.dbtop .r{margin-left:auto;display:flex;gap:5px;flex-wrap:wrap}
.dbt{width:100%;border-collapse:collapse;table-layout:fixed}
.dbt th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--g500);padding:8px 12px;background:var(--g050);border-bottom:1px solid var(--g100);white-space:nowrap}
.dbt th.s{cursor:pointer}.dbt th.s:hover{color:var(--g700)}
.dbt th.a,.dbt td.a{text-align:right}
.dbt td{padding:9px 12px;border-bottom:1px solid var(--g050);vertical-align:top;font-size:13px}
.dbt tbody tr:last-child td{border-bottom:none}
.dbt tbody tr:hover{background:#FCFDFE}
.dbnm{font-weight:600;font-size:13px;line-height:1.3;color:var(--g900)}
.dbsm{font-size:11.5px;color:var(--g500);margin-top:1px}
.dbrk{font-size:12px;color:var(--g700);line-height:1.4}
.dbsk{display:inline-flex;align-items:center;gap:6px}
.dbsk b{font-size:14px;font-weight:700;width:24px;text-align:right;color:var(--ink)}
.dbsk span{width:40px;height:4px;border-radius:99px;background:var(--g050);overflow:hidden;display:inline-block}
.dbsk span i{display:block;height:100%;background:var(--accent-deep);border-radius:99px}
.dbsk.hi b{color:var(--succ)}.dbsk.hi span i{background:var(--succ)}
.dbsk.lo b{color:var(--g500)}.dbsk.lo span i{background:var(--g400)}
.dbtag{display:inline-flex;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;border:1px solid transparent;white-space:nowrap}
.dba{background:rgba(14,138,99,.1);color:var(--succ)}.dbb{background:rgba(30,84,180,.1);color:var(--info)}
.dbc{background:var(--g050);color:var(--g500)}.dbw{background:rgba(180,83,9,.1);color:var(--warn)}
.dbx{background:rgba(192,54,44,.1);color:var(--err)}.dbai{background:rgba(109,74,237,.1);color:var(--ai)}
.dbcor{display:flex;align-items:center;gap:2px}
.dbcor div{height:20px;border-radius:3px;display:grid;place-items:center;font-size:10.5px;font-weight:700;color:#fff;min-width:24px;padding:0 4px}
.dbcor div.z{background:var(--g050);color:var(--g500)}
.dbcor .c1{background:#8FC0D1}.dbcor .c2{background:#4E97B1}.dbcor .c3{background:var(--teal)}
.dbcor .c4{background:#0A5570}.dbcor .c5{background:var(--succ)}
.dbkal{padding:14px 12px}
.dbkb{display:grid;grid-template-columns:140px 1fr 104px;align-items:center;gap:10px;margin-bottom:8px}
.dbkb .a{font-size:12px;color:var(--g700);display:flex;justify-content:space-between;gap:6px}
.dbkb .a em{font-style:normal;color:var(--g500);font-size:11px}
.dbkb .b{height:20px;background:var(--g050);border-radius:5px;overflow:hidden}
.dbkb .b i{display:block;height:100%;background:var(--grad-tegak);border-radius:5px;transition:width var(--dur-3) var(--ease)}
.dbkb .c{font-size:12px;color:var(--g500);text-align:right}
@media (max-width:640px){.dbkb{grid-template-columns:104px 1fr 68px}.dbrk{display:none}}

/* ===== Kirim massal ===== */
.blbar{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:70;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:min(940px,calc(100vw - 32px));
  background:var(--night);color:#fff;border-radius:14px;padding:11px 16px;box-shadow:var(--e4)}
.plkhsel{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--g500);
  background:#fff;border:1px solid var(--g100);border-radius:99px;padding:2px 8px;cursor:pointer;margin-left:6px}
.plkhsel:hover{background:var(--g050);color:var(--ink)}
.plkcard.blsel{outline:2px solid var(--accent);outline-offset:-1px}
.plkcb{width:16px;height:16px;accent-color:var(--accent-deep);cursor:pointer;flex:0 0 auto;margin-right:6px}
.blbar b{font-size:14px;font-weight:700}
.blbar .s{font-size:12px;color:#9FB6C6}
.blbar .r{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.blbar button{font-family:inherit;font-size:12.5px;font-weight:600;border-radius:8px;padding:7px 14px;
  cursor:pointer;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff}
.blbar button:hover{background:rgba(255,255,255,.18)}
.blbar button.go{background:var(--cyan);border-color:var(--cyan);color:#05192B}
.blbar button.go:hover{background:#33D6DE}
.blpick{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--g500);
  background:#fff;border:1px solid var(--g100);border-radius:10px;padding:8px 12px;margin-bottom:10px}
.blpick input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-deep);cursor:pointer}
.blpick .r{margin-left:auto;display:flex;gap:8px}
.blcb{width:17px;height:17px;accent-color:var(--accent-deep);cursor:pointer;flex:0 0 auto;margin-top:2px}
.candcard.blsel{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-tint)}
.blbox{border:1px solid var(--g100);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:var(--g050)}
.blbox b{font-size:12.5px}
.blrow{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:3px 0;color:var(--g700)}
.blrow em{font-style:normal;color:var(--g500)}
.blprev{background:#fff;border:1px solid var(--g100);border-radius:10px;padding:14px;max-height:230px;
  overflow-y:auto;font-size:13px;line-height:1.55;white-space:pre-wrap;color:var(--g700)}
.blprev .sj{font-weight:700;color:var(--g900);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--g050);white-space:normal}
.blbahaya{background:rgba(192,54,44,.06);border:1px solid rgba(192,54,44,.25);border-radius:10px;padding:12px 14px;margin:12px 0}
.blbahaya b{color:var(--err);font-size:12.5px;display:block;margin-bottom:4px}
.blbahaya p{font-size:12.5px;color:var(--g700);margin:0}
.blprog{height:8px;background:var(--g050);border-radius:99px;overflow:hidden;margin:10px 0 6px}
.blprog i{display:block;height:100%;background:var(--grad-tegak);border-radius:99px;transition:width .2s linear}
.setuju{border:1px solid var(--g100);border-radius:12px;padding:14px 16px;background:var(--g050);margin:4px 0 16px}
.setuju h4{font-size:13px;font-weight:700;color:var(--g900);margin:0 0 6px}
.setuju p{font-size:12.5px;line-height:1.55;color:var(--g700);margin:0 0 8px}
.setuju ul{margin:0 0 10px 16px;padding:0}
.setuju li{font-size:12.5px;line-height:1.55;color:var(--g700);margin-bottom:3px}
.setuju .rinci{font-size:12.5px;color:var(--accent-deep);cursor:pointer;text-decoration:underline;
  background:none;border:none;padding:0;font-family:inherit}
.setuju label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:13px;
  line-height:1.5;color:var(--g900);margin:10px 0 0;font-weight:500}
.setuju label input{width:17px;height:17px;flex:0 0 auto;margin-top:1px;accent-color:var(--accent-deep);cursor:pointer}
.setuju .wajib{color:var(--err);font-weight:700}
/* ===== Chat pencarian kandidat, gaya percakapan ===== */
.tptab{display:flex;gap:4px;background:var(--g050);padding:4px;border-radius:10px;margin-bottom:12px}
.tptab button{flex:1;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--g500);
  background:none;border:none;border-radius:7px;padding:8px 10px;cursor:pointer;transition:all var(--dur-1) var(--ease)}
.tptab button:hover{color:var(--g900)}
.tptab button.on{background:#fff;color:var(--ink);box-shadow:var(--e1)}

.tcwrap{display:flex;flex-direction:column;height:min(60vh,540px)}
.tcmsg{flex:1;overflow-y:auto;padding:8px 2px 4px;scroll-behavior:smooth}
.tcmsg::-webkit-scrollbar{width:8px}
.tcmsg::-webkit-scrollbar-thumb{background:var(--g100);border-radius:99px}

/* giliran pengguna: kotak tenang di kanan, bukan gelembung mencolok */
.tcsaya{display:flex;justify-content:flex-end;margin:20px 0 6px}
.tcsaya div{max-width:82%;background:var(--g050);border:1px solid var(--g100);border-radius:14px;
  padding:11px 15px;font-size:14.5px;line-height:1.6;color:var(--g900)}
.tcmsg > .tcsaya:first-child{margin-top:4px}

/* giliran AI: teks lapang tanpa wadah, seperti membaca jawaban orang */
.tcai{margin:14px 0 4px;padding-left:2px}
.tcai .tclabel{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.tcai .tclabel i{width:19px;height:19px;border-radius:6px;display:grid;place-items:center;
  font-size:10px;font-weight:800;color:#fff;font-style:normal;
  background:linear-gradient(135deg,#0A3D62,#6D4AED)}
.tcai .tclabel b{font-size:12px;font-weight:700;color:var(--g500);letter-spacing:.02em}
.tcai .tcteks{font-size:15px;line-height:1.72;color:var(--ink);white-space:pre-wrap}
.tcai.gagal .tcteks{color:var(--err)}
.tcai.gagal .tclabel i{background:var(--err)}

/* kartu kandidat: rapat, bisa diklik, mirip lampiran hasil */
.tchasil{margin-top:14px;border:1px solid var(--g100);border-radius:12px;overflow:hidden;background:#fff}
.tchasil .kep{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--g500);padding:9px 14px;background:var(--g050);border-bottom:1px solid var(--g100)}
.tckartu{display:flex;gap:12px;align-items:flex-start;background:none;border:none;
  border-bottom:1px solid var(--g050);padding:11px 14px;cursor:pointer;text-align:left;
  font-family:inherit;width:100%;transition:background var(--dur-1) var(--ease)}
.tckartu:last-child{border-bottom:none}
.tckartu:hover{background:var(--g050)}
.tckartu .no{font-size:11.5px;font-weight:700;color:var(--g500);min-width:14px;padding-top:3px;
  font-variant-numeric:tabular-nums}
.tckartu .isi{flex:1;min-width:0}
.tckartu .nm{font-size:14px;font-weight:700;color:var(--g900);display:block}
.tckartu .mt{font-size:12px;color:var(--g500);margin-top:2px;display:block}
.tckartu .al{font-size:13px;color:var(--g700);margin-top:5px;line-height:1.55;display:block}
.tckartu .pn{font-size:11px;color:var(--g500);padding-top:4px}
.tckartu.dipilih{background:var(--accent-tint)}
.tcbaris{display:flex;align-items:flex-start;border-bottom:1px solid var(--g050)}
.tcbaris:last-child{border-bottom:none}
.tcbaris .cb{padding:13px 0 0 14px}
.tcbaris .cb input{width:16px;height:16px;accent-color:var(--accent-deep);cursor:pointer}
.tcbaris .tckartu{border-bottom:none;flex:1}
.tctarik{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;
  background:var(--g050);border-top:1px solid var(--g100)}
.tctarik .jml{font-size:12.5px;font-weight:700;color:var(--g900)}
.tctarik select{font-family:inherit;font-size:12.5px;padding:6px 9px;border:1px solid var(--g100);
  border-radius:8px;background:#fff;color:var(--g700);max-width:230px;min-height:0}
.tctarik .knn{margin-left:auto;display:flex;gap:6px}
.tctarik button{font-family:inherit;font-size:12.5px;font-weight:600;border-radius:8px;
  padding:6px 13px;cursor:pointer;border:1px solid var(--g100);background:#fff;color:var(--g700)}
.tctarik button.go{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.tctarik button.go:disabled{background:var(--g100);border-color:var(--g100);color:var(--g400);cursor:not-allowed}

/* kotak tulis: teks di baris atas, kontrol di baris bawah */
.tcform{margin-top:14px;border:1px solid var(--g100);border-radius:24px;background:#fff;
  padding:15px 16px 11px;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.tcform:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
/* Aturan lama textarea di aplikasi memberi border, min-height 56px, dan cincin
   bayangan saat fokus. Ketiganya membuat kotak kedua muncul di dalam kotak tulis,
   jadi dimatikan khusus di sini. */
.tcform textarea,.tcform textarea:focus{width:100%;font-family:inherit;font-size:15px;
  line-height:1.6;border:none;outline:none;resize:none;background:none;color:var(--ink);
  padding:0;margin:0;display:block;min-height:0;max-height:150px;box-shadow:none;border-radius:0}
.tcform textarea::placeholder{color:var(--g400)}
/* geser sedikit ke kiri supaya ikon tambah sejajar dengan awal teks di atasnya,
   bukan sejajar dengan tepi kotaknya */
.tcbar{display:flex;align-items:center;gap:8px;margin:12px -6px 0 -7px}
.tcbar .kanan{margin-left:auto;display:flex;align-items:center;gap:10px}
.tcbar .lingkup{font-size:13px;color:var(--g500);white-space:nowrap}
.tcalat{width:32px;height:32px;border-radius:9px;border:none;background:none;color:var(--g500);
  cursor:pointer;display:grid;place-items:center;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.tcalat:hover{background:var(--g050);color:var(--g900)}
.tcalat svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.tckirim{width:34px;height:34px;border-radius:11px;border:none;background:var(--accent-deep);
  color:#fff;cursor:pointer;display:grid;place-items:center;flex:0 0 auto;
  transition:background var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease)}
.tckirim:hover:not(:disabled){background:#0A5F76}
.tckirim:disabled{background:var(--g100);color:var(--g400);cursor:not-allowed}
.tckirim svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round}

/* keadaan awal */
.tckosong{padding:30px 4px 12px}
.tckosong b{display:block;color:var(--ink);font-size:17px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.tckosong p{font-size:14px;line-height:1.65;color:var(--g500);margin:0 0 16px;max-width:52ch}
.tcusul{display:flex;flex-direction:column;gap:6px}
.tcusul button{font-family:inherit;font-size:13.5px;color:var(--g700);background:#fff;text-align:left;
  border:1px solid var(--g100);border-radius:11px;padding:11px 14px;cursor:pointer;
  transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}
.tcusul button:hover{border-color:var(--accent);background:var(--g050);color:var(--ink)}

.tcketik span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--g400);
  margin-right:4px;animation:tcdot 1.3s infinite}
.tcketik span:nth-child(2){animation-delay:.18s}.tcketik span:nth-child(3){animation-delay:.36s}
@keyframes tcdot{0%,60%,100%{opacity:.22;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
.blnav{font-family:inherit;font-size:15px;line-height:1;font-weight:700;color:var(--g500);background:#fff;
  border:1px solid var(--g100);border-radius:7px;width:28px;height:26px;cursor:pointer;padding:0}
.blnav:hover:not(:disabled){background:var(--g050);color:var(--ink)}
.blnav:disabled{opacity:.35;cursor:not-allowed}
.bldaftar{margin-top:8px;border:1px solid var(--g100);border-radius:10px;max-height:190px;overflow-y:auto;background:#fff}
.bldaftar button{display:flex;width:100%;align-items:baseline;gap:8px;text-align:left;font-family:inherit;
  font-size:12.5px;background:none;border:none;border-bottom:1px solid var(--g050);padding:7px 11px;cursor:pointer;color:var(--g700)}
.bldaftar button:last-child{border-bottom:none}
.bldaftar button:hover{background:var(--g050)}
.bldaftar button.on{background:var(--accent-tint)}
.bldaftar .no{color:var(--g500);min-width:20px;font-variant-numeric:tabular-nums}
.bldaftar .na{font-weight:600;color:var(--g900)}
.bldaftar .em{margin-left:auto;color:var(--g500);font-size:11.5px}

/* ===== Cockpit: apa yang harus dikerjakan hari ini ===== */
.ck{background:#fff;border:1px solid var(--g100);border-radius:16px;padding:18px 20px;margin:4px 0 18px}
.ck .sapa{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.ck .tgl{font-size:12.5px;color:var(--g500);margin-top:2px}
.ck .hero{display:flex;flex-direction:column;align-items:flex-start;gap:1px;margin-top:14px;
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}
.ck .hero b{font-size:34px;font-weight:800;letter-spacing:-.025em;color:var(--ink);
  line-height:1.08;font-variant-numeric:tabular-nums}
.ck .hero span{font-size:13px;color:var(--g500)}
.ck .hero:hover span{color:var(--accent-deep)}
.ck .baris{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;padding-top:12px;
  border-top:1px solid var(--g050)}
.cka{display:flex;align-items:center;gap:7px;background:none;border:none;padding:0;
  cursor:pointer;font-family:inherit;text-align:left;transition:color var(--dur-1) var(--ease)}
.cka b{font-size:13px;font-weight:700;color:var(--g700);font-variant-numeric:tabular-nums}
.cka span{font-size:12px;color:var(--g500);line-height:1.3}
.cka:hover span{color:var(--ink)}
.cka i{width:5px;height:5px;border-radius:50%;display:inline-block;flex:0 0 auto}
.cka.now i{background:var(--accent-deep)} .cka.wr i{background:var(--warn)}
.cka.bd i{background:var(--err)} .cka.ai i{background:var(--ai)} .cka.ok i{background:var(--succ)}
.ck .kpi{display:flex;flex-wrap:wrap;gap:22px;margin-top:16px;padding-top:14px;border-top:1px solid var(--g050)}
.ck .kpi div{min-width:110px}
.ck .kpi .n{font-size:17px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.ck .kpi .l{font-size:11.5px;color:var(--g500);margin-top:1px}
.ck .sepi{font-size:13.5px;color:var(--g500);margin-top:12px}

/* ===== MODE GELAP =====
   Lapisan pertama: menimpa token warna. Karena 811 tempat di aplikasi memakai
   var(--token), satu blok ini sudah menutupi sebagian besar permukaan.

   Yang TIDAK tertangani di sini adalah warna yang ditulis langsung sebagai heksa
   atau rgba di luar :root, terutama pada HTML yang dirakit JavaScript. Itu ekor
   panjang yang harus disisir terpisah dan diuji satu per satu.

   Prinsip pemetaan: bukan sekadar membalik terang jadi gelap. Permukaan tetap
   berjenjang (latar paling gelap, kartu selapis di atasnya), dan warna status
   dinaikkan kecerahannya karena warna pekat kehilangan keterbacaan di latar
   gelap. */
[data-tema="gelap"]{
  /* Latar dan permukaan diambil langsung dari nusva-tokens.json resmi (kunci "gelap"):
     abu netral tanpa rona biru sama sekali. Versi v210-v212 meracik sendiri dengan
     campuran navy, itu yang diganti di sini. */
  --night:#0B0B0F; --slate:#17171C; --fog:#0B0B0F;
  --g050:#17171C; --g100:#2A2A30; --g200:#35353C;

  /* teks: tinta dan tinta_2 resmi */
  --ink:#F5F5F7; --ink2:#A1A1A6;
  --g900:#F5F5F7; --g700:#C7C7CC; --g500:#A1A1A6; --g400:#6C6C72;

  /* interaktif resmi #4FD3DE, satu warna konsisten, bukan lagi tiga varian teal berbeda */
  --teal:#4FD3DE; --link:#4FD3DE; --cyan:#4FD3DE;
  --accent:#4FD3DE; --accent-deep:#2FB8C4; --accent-tint:rgba(79,211,222,.16);
  --focus:#4FD3DE;

  --succ:#3DBF93; --warn:#E0912F; --err:#E8695C; --info:#6B93E8;
  --violet:#9B84F5; --ai:#9B84F5; --indigo:#9B84F5; --orange:#F5B54A;

  --scrim:rgba(11,11,15,.72);

  /* bayangan gelap tetap hitam polos, itu sudah benar, kontak hitam di atas gelap
     memang begitu di sistem operasi manapun */
  --e1:0 1px 2px rgba(0,0,0,.35),0 4px 12px rgba(0,0,0,.30);
  --e2:0 2px 6px rgba(0,0,0,.40),0 12px 30px rgba(0,0,0,.42);
  --e3:0 6px 16px rgba(0,0,0,.45),0 20px 48px rgba(0,0,0,.50);
  --e4:0 10px 30px rgba(0,0,0,.55),0 30px 80px rgba(0,0,0,.60);
  --e-brand:0 10px 26px -8px rgba(79,211,222,.32);
  --e-violet:0 10px 26px -8px rgba(155,132,245,.30);

  --grad-tegak:linear-gradient(160deg,#0E4A6E 0%,#17A9B6 55%,#2ED3DC 100%);
  /* grad-nebula sengaja tidak ditimpa di sini, biar sama persis dengan versi resmi
     di :root, satu tampilan penanda AI di kedua tema */

  color-scheme:dark;
}
[data-tema="gelap"] body{background:var(--fog);color:var(--ink)}

/* Putih yang ditulis langsung di kode adalah ekor panjangnya. Aturan ini
   menangkap yang paling sering muncul, yaitu latar kartu dan panel. */
[data-tema="gelap"] .kartu,[data-tema="gelap"] .scard,[data-tema="gelap"] .modal,
[data-tema="gelap"] .ck,[data-tema="gelap"] .panel,[data-tema="gelap"] .plkhead,
[data-tema="gelap"] .plkcard,[data-tema="gelap"] .tchasil,[data-tema="gelap"] .tcform,
[data-tema="gelap"] .tckartu,[data-tema="gelap"] .dbwrap,[data-tema="gelap"] .dbk,
[data-tema="gelap"] .tptab button.on,[data-tema="gelap"] .inp,
[data-tema="gelap"] select,[data-tema="gelap"] textarea,
[data-tema="gelap"] .setuju,[data-tema="gelap"] .tcusul button,
[data-tema="gelap"] .cka:hover{
  background-color:var(--g050);
  color:var(--ink);
  border-color:var(--g100);
}
[data-tema="gelap"] .plkcol{background:var(--slate)}
[data-tema="gelap"] .plkan{background:transparent}
[data-tema="gelap"] .tcsaya div{background:var(--g100)}
[data-tema="gelap"] img#logo,[data-tema="gelap"] img#logoLogin{filter:brightness(1.15)}

/* ===== v211: ekor panjang mode gelap =====
   Bilah atas, tombol ghost dan kontrol kecil, kepala/kaki modal, tab aktif,
   serta permukaan yang masih memakai putih hardcoded. */
[data-tema="gelap"] .appbar{background:rgba(11,23,32,.85)}
[data-tema="gelap"] .logincard,[data-tema="gelap"] .card,[data-tema="gelap"] .empty,
[data-tema="gelap"] .cmenu,
[data-tema="gelap"] .progwrap,[data-tema="gelap"] .sec,[data-tema="gelap"] .aipanel,
[data-tema="gelap"] .aiempty,[data-tema="gelap"] .pkitem,[data-tema="gelap"] .pkrow,
[data-tema="gelap"] .rppv,[data-tema="gelap"] .mandpop,[data-tema="gelap"] .plpanel,
[data-tema="gelap"] .mhead,[data-tema="gelap"] .mfoot,[data-tema="gelap"] .blprev,
[data-tema="gelap"] .bldaftar,[data-tema="gelap"] .blpick,[data-tema="gelap"] .plkhsel{
  background-color:var(--g050);border-color:var(--g100);color:var(--ink)
}
[data-tema="gelap"] .btn.gho,[data-tema="gelap"] .cact,[data-tema="gelap"] .rmv,
[data-tema="gelap"] .chip,[data-tema="gelap"] .gscore,[data-tema="gelap"] .rvpill,
[data-tema="gelap"] .trfbtn,[data-tema="gelap"] .pkmini,[data-tema="gelap"] .cstage,
[data-tema="gelap"] .blnav,[data-tema="gelap"] .tctarik button{
  background-color:var(--g050);border-color:var(--g100)
}
[data-tema="gelap"] .btn.gho:hover{border-color:var(--teal);color:var(--teal)}
[data-tema="gelap"] .cdtab.on,[data-tema="gelap"] .gfbtn.on,
[data-tema="gelap"] .plsegb.on,[data-tema="gelap"] .dbtab.on{
  background:var(--g100);color:var(--ink)
}
[data-tema="gelap"] .internal{background:linear-gradient(180deg,rgba(155,132,245,.10),var(--g050))}

/* Tombol tema di bilah atas */
.temabtn{background:none;border:none;cursor:pointer;color:var(--g500);padding:6px;
  border-radius:8px;display:grid;place-items:center;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}
.temabtn:hover{background:var(--g050);color:var(--ink)}
.temabtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}


/* ===== v212: sisir menyeluruh mode gelap =====
   Daftar di bawah bukan tebakan. styles.css disisir dengan pencari nilai warna
   terang yang ditulis langsung di luar :root, lalu setiap selector yang belum
   punya pasangan gelap dikumpulkan. Dua kelompok dibedakan dengan sengaja:
   permukaan biasa diganti latarnya, sedangkan penanda status hanya dinaikkan
   kecerahan teksnya supaya arti warnanya tidak hilang. */

/* Permukaan yang masih memakai putih hardcoded */
[data-tema="gelap"] .scard.arch,
[data-tema="gelap"] .imp-d,
[data-tema="gelap"] .cdrep .tabn,
[data-tema="gelap"] .gpil-gate,
[data-tema="gelap"] .dcard,
[data-tema="gelap"] .wcard,
[data-tema="gelap"] .kscr,
[data-tema="gelap"] .bnyboard,
[data-tema="gelap"] .bny,
[data-tema="gelap"] .bsc,
[data-tema="gelap"] .cdreject,
[data-tema="gelap"] .plpill,
[data-tema="gelap"] .kmsg,
[data-tema="gelap"] .aicl-ic.n,
[data-tema="gelap"] .cpcard,
[data-tema="gelap"] .rvsec,
[data-tema="gelap"] .rvfitrow,
[data-tema="gelap"] .kchip,
[data-tema="gelap"] .krow,
[data-tema="gelap"] #login,
[data-tema="gelap"] #login .inp:focus,
[data-tema="gelap"] #review #rvCard,
[data-tema="gelap"] .trfbtn.on .chipn,
[data-tema="gelap"] .dbt tbody tr:hover,
[data-tema="gelap"] .blbar button,
[data-tema="gelap"] .blbar button:hover,
[data-tema="gelap"] .tctarik select{
  background-color:var(--g050);
  border-color:var(--g100);
  color:var(--ink)
}

/* Penanda status: warna dipertahankan, kecerahan dinaikkan agar terbaca di latar gelap */
[data-tema="gelap"] .b-sent,
[data-tema="gelap"] .cact.del,
[data-tema="gelap"] .softnote,
[data-tema="gelap"] .pw,
[data-tema="gelap"] .pl,
[data-tema="gelap"] .imp-w,
[data-tema="gelap"] .gate-warn,
[data-tema="gelap"] .trflag,
[data-tema="gelap"] .sp-anda,
[data-tema="gelap"] .sp-klien,
[data-tema="gelap"] .sp-kand,
[data-tema="gelap"] .krej,
[data-tema="gelap"] .rejtag,
[data-tema="gelap"] .bgap.bad,
[data-tema="gelap"] .bman.crit,
[data-tema="gelap"] .aicl-ic.m,
[data-tema="gelap"] .rvfitrow .fl.n,
[data-tema="gelap"] #login .lerr,
[data-tema="gelap"] .blbar button.go{
  color:currentColor;
  filter:brightness(1.45) saturate(.92)
}

/* Bilah atas dan bilah aksi massal ikut permukaan gelap */
[data-tema="gelap"] .blbar{background-color:var(--g050);border-color:var(--g100)}
[data-tema="gelap"] .blbar button{background-color:var(--g100);border-color:var(--g200);color:var(--ink)}
[data-tema="gelap"] .blbar button:hover{background-color:var(--g200)}

/* Tombol berlatar gelap pekat di mode terang harus dibalik, bukan digelapkan lagi,
   karena kalau tidak jadi gelap di atas gelap dan hilang batasnya. */
[data-tema="gelap"] .chip.on,[data-tema="gelap"] .bsc.on,[data-tema="gelap"] .stepchip.on,
[data-tema="gelap"] .t5r{background-color:var(--teal);color:#04222A;border-color:var(--teal)}

/* Kolom tabel dan baris sorot */
[data-tema="gelap"] .dbt thead th{background-color:var(--g050);color:var(--g500)}
[data-tema="gelap"] .dbt tbody tr:hover{background-color:var(--g100)}

/* Kotak masukan dan pilihan di dalam modal */
[data-tema="gelap"] .tctarik select,[data-tema="gelap"] .kscr,
[data-tema="gelap"] .gscore{background-color:var(--g050);color:var(--ink);border-color:var(--g100)}
[data-tema="gelap"] .inp::placeholder,[data-tema="gelap"] textarea::placeholder{color:var(--g400)}

/* Penanda hijau "Diisi klien" masih di bawah ambang keterbacaan (2.90),
   jadi warnanya dinaikkan ke hijau terang yang sudah ada di token gelap. */
[data-tema="gelap"] .b-good{color:var(--succ);background:rgba(61,191,147,.14);border-color:rgba(61,191,147,.34)}

/* ================= LANDING PUBLIK (v226) =================
   Halaman pertama untuk orang yang belum kenal Nusva Search. Mengikuti 60-30-10:
   terang mendominasi, dan hanya satu bagian gelap sebagai tanda baca penutup.
   Ukuran huruf memakai peran yang sudah ada (display, title, sub, body, caption,
   overline), tidak menambah ukuran baru.

   Permukaan landing dipegang variabel lokal supaya tema gelap cukup menimpa tiga
   nilai, bukan puluhan aturan. */
#landing{--lp-surface:#fff;--lp-alt:var(--g050);--lp-edge:var(--ap-line);
  /* biru malam merek dikunci di sini, bukan var(--night), karena --night ikut
     berubah jadi hampir hitam di tema gelap dan bagian penutup kehilangan bedanya */
  --lp-tutup:#05192B;
  background:var(--fog);color:var(--g900)}
[data-tema="gelap"] #landing{--lp-surface:var(--g050);--lp-alt:#101015;--lp-edge:rgba(255,255,255,.10)}

#landing a:not(.btn){color:var(--link);text-decoration:underline;text-underline-offset:2px}
#landing .btn{text-decoration:none}
.lpwrap{max-width:1080px;margin:0 auto;padding:0 24px}
.lpnarrow{max-width:688px}

/* ---------- bilah atas ---------- */
.lpbar{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--lp-edge);
  background:rgba(251,251,253,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px)}
[data-tema="gelap"] .lpbar{background:rgba(11,11,15,.88)}
.lpbar-in{max-width:1080px;margin:0 auto;padding:8px 24px;display:flex;align-items:center;gap:12px}
.lpbrand{display:inline-flex;align-items:center;gap:8px;margin-right:auto}
.lpbrand b{font-size:15.5px;font-weight:700;color:var(--ink);white-space:nowrap}
.lpnav{display:flex;align-items:center;gap:2px}
.lpnav a,.lpnav button{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;
  font-family:inherit;font-size:12.5px;font-weight:550;color:var(--g500);background:none;border:none;
  cursor:pointer;border-radius:var(--r-sm);white-space:nowrap;
  transition:color var(--dur-2) var(--ease)}
#landing .lpnav a{text-decoration:none;color:var(--g500)}
.lpnav a:hover,.lpnav button:hover{color:var(--link)}
.lpnav button{color:var(--link);font-weight:700}

/* ---------- hero ---------- */
.lphero{position:relative;overflow:hidden;padding:var(--ap5) 0}
.lphero::before{content:"";position:absolute;width:820px;height:820px;border-radius:50%;
  right:-340px;top:-420px;pointer-events:none;
  background:radial-gradient(circle,rgba(30,202,211,.12),transparent 64%)}
.lphero .lpwrap{position:relative}
/* Tepi kiri hero sengaja sama dengan bagian di bawahnya. Yang dibatasi panjang
   barisnya, bukan lebar wadahnya. */
.lphero h1{margin-top:12px;max-width:19ch}
/* Gradasi merek dibentang penuh selebar tombol, kalau tidak yang terlihat hanya
   ujung gelapnya saja dan tombol tampak navy polos. */
#landing .btn.pri{background-size:100% 100%}
.lpsub{font-size:var(--ap-sub);font-weight:400;letter-spacing:-.012em;line-height:1.42;
  color:var(--ap-mute);margin:var(--ap2) 0 0;max-width:58ch}
.lpcta{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--ap3)}
.lpcta .btn{min-height:52px;padding:14px 22px;font-size:15.5px}
.lpnote{margin-top:12px}

/* ---------- bagian isi ---------- */
.lpsec{padding:var(--ap5) 0;border-top:1px solid var(--lp-edge)}
.lpalt{background:var(--lp-alt)}
.lpsec .ap-title{margin:8px 0 var(--ap3)}
#lp-kandidat,#lp-privasi{scroll-margin-top:68px}

.lpgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(256px,1fr));gap:16px}
.lpcard{background:var(--lp-surface);border:1px solid var(--lp-edge);border-radius:var(--r-lg);
  padding:24px;box-shadow:var(--e1)}
.lpnum{display:block;font-size:11.5px;font-weight:800;letter-spacing:.14em;
  color:var(--accent-deep);margin-bottom:12px}
.lpcard h3{font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:8px}
.lpcard p{font-size:15.5px;line-height:1.62;color:var(--g700)}

.lpbody{font-size:15.5px;line-height:1.62;color:var(--g700);margin:0}
.lph3{font-size:15.5px;font-weight:700;color:var(--ink);margin:var(--ap3) 0 12px}
.lplist{margin:0;padding-left:22px;color:var(--g700)}
.lplist li{margin-bottom:8px;line-height:1.62;font-size:15.5px}
.lpjujur{margin-top:var(--ap3);background:var(--lp-surface);border:1px solid var(--lp-edge);
  border-left:3px solid var(--accent);border-radius:var(--r-md);padding:20px 24px}
.lpjujur .lph3{margin-top:0}
.lpjujur p{font-size:15.5px;line-height:1.62;color:var(--g700);margin-bottom:12px}
.lpjujur p:last-child{margin-bottom:0}
.lpbig{margin-top:var(--ap3);min-height:52px;padding:14px 22px;font-size:15.5px}

/* ---------- daftar PDP ---------- */
.lpdl{margin:var(--ap3) 0 0}
.lpdl>div{display:grid;grid-template-columns:196px minmax(0,1fr);gap:16px;padding:16px 0;
  border-top:1px solid var(--lp-edge)}
.lpdl>div:last-child{border-bottom:1px solid var(--lp-edge)}
.lpdl dt{font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.4}
.lpdl dd{font-size:15.5px;line-height:1.62;color:var(--g700);margin:0}
.lpdl .tanda-ai{margin-left:4px;vertical-align:1px}

/* ---------- penutup gelap, satu satunya di halaman ---------- */
.lptutup{background:var(--lp-tutup);padding:var(--ap5) 0}
.lptutup .ap-title{color:#fff;margin:0 0 12px}
.lptutup p{font-size:15.5px;line-height:1.62;color:rgba(255,255,255,.74);margin:0 0 var(--ap3)}
.lpputih{background:#fff;color:var(--ink);font-weight:700;min-height:52px;padding:14px 22px;
  font-size:15.5px;box-shadow:var(--e2)}
.lpputih:hover{background:var(--g050);color:var(--ink)}
[data-tema="gelap"] .lpputih{background:#fff;color:#05192B}

/* ---------- kaki ---------- */
.lpfoot{padding:var(--ap3) 0 var(--ap4);border-top:1px solid var(--lp-edge);background:var(--fog)}
.lpfoot-in{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:12.5px;color:var(--g500)}
/* Tautan kaki berdiri sendiri, jadi ikut aturan target sentuh 44 piksel. Tautan
   yang menempel di tengah kalimat dikecualikan, meninggikannya merusak baris. */
.lpfoot-in a{display:inline-flex;align-items:center;min-height:44px}
.lpfoot-in button{margin-left:auto;font-family:inherit;font-size:12.5px;font-weight:550;
  color:var(--link);background:none;border:none;cursor:pointer;min-height:44px;padding:0 4px}
.lpfoot-in button:hover{text-decoration:underline}

/* ---------- jalan kembali dari layar masuk ---------- */
.lgback{display:inline-flex;align-items:center;min-height:44px;margin:0 0 var(--ap2);padding:0 4px;
  font-family:inherit;font-size:12.5px;font-weight:550;color:var(--ap-mute);background:none;
  border:none;cursor:pointer;transition:color var(--dur-2) var(--ease)}
.lgback:hover{color:var(--link)}

/* ---------- 390 piksel ---------- */
@media(max-width:640px){
  .lpwrap{padding:0 16px}
  .lpbar-in{padding:8px 16px}
  .lphero,.lpsec,.lptutup{padding:var(--ap4) 0}
  .lpcta{flex-direction:column;align-items:stretch}
  .lpcta .btn,.lpbig,.lpputih{width:100%}
  .lpdl>div{grid-template-columns:1fr;gap:4px}
  .lpjujur{padding:16px 18px}
  .lpfoot-in button{margin-left:0}
}
/* Teks merek disembunyikan, bukan navigasinya. Ikon N berdiri sendiri sebagai
   tanda, dan itu memang diizinkan sistem desain untuk ruang sesempit ini. */
@media(max-width:520px){
  .lpbrand .nslogo-t{display:none}
  .lpbrand .nslogo{gap:0}
  .lpnav a,.lpnav button{padding:0 8px}
}

/* --ap-mute lahir untuk latar terang. Di tema gelap #6E6E73 hanya sekitar 3,5
   banding 1 di atas #0B0B0F dan gagal ambang 4,5. Dinaikkan ke tinta_2 resmi.
   Ikut memperbaiki subjudul di layar masuk yang memakai variabel yang sama. */
[data-tema="gelap"]{--ap-mute:#A1A1A6}

/* ---------- ingat email di layar masuk (v228) ----------
   Aturan #login label memaksa display:block dan margin bawah untuk label kolom.
   Baris centang ini butuh perlakuan lain, dan menang karena kekhususannya lebih
   tinggi, bukan karena urutannya saja. */
#login .ingat{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;
  font-size:12.5px;font-weight:400;letter-spacing:0;color:var(--ap-mute);cursor:pointer}
#login .ingat input{flex:0 0 auto;width:18px;height:18px;margin:0;cursor:pointer;
  accent-color:var(--accent-deep)}
#login .ingat span{line-height:1.4}

/* ================= LOCKUP NUSVA SEARCH (v230) =================
   Tanda N plus dua baris teks, mengikuti logo resmi: "Nusva" tinta gelap dan
   "SEARCH" teal berspasi lebar di bawahnya. Dibangun dari teks sungguhan, bukan
   gambar, supaya tajam di semua ukuran layar, ikut tema gelap, dan tetap terbaca
   pembaca layar sebagai "Nusva Search".

   Semua ukuran diturunkan dari satu variabel --ns, yaitu tinggi tanda N. Angka
   pengalinya diukur dari berkas logo: teks utama 0,62 dan "SEARCH" 0,21 dari
   tinggi tanda, jaraknya 0,20. */
.nslogo{--ns:32px;display:inline-flex;align-items:center;gap:calc(var(--ns)*.20);line-height:1}
.nslogo-n{width:var(--ns);height:var(--ns);flex:0 0 auto;display:block}
.nslogo-t{display:flex;flex-direction:column;gap:calc(var(--ns)*.06);min-width:0}
.nslogo-1{font-size:calc(var(--ns)*.62);font-weight:800;letter-spacing:-.035em;color:var(--ink)}
/* Spasi huruf menyisakan ruang kosong di ujung kanan. Ditarik balik supaya blok
   teksnya rata optis dengan baris di atasnya. */
/* Rasio aslinya 0,18 dari tinggi tanda. Di bilah yang sempit itu jatuh ke 6
   piksel dan tidak terbaca siapa pun, jadi ada lantai 9 piksel. Logo yang dipakai
   kecil memang lazim melebar sedikit, yang penting kata SEARCH masih terbaca. */
.nslogo-2{font-size:max(9px,calc(var(--ns)*.20));font-weight:800;letter-spacing:.2em;
  margin-right:-.2em;text-transform:uppercase;color:var(--accent-deep);white-space:nowrap}

/* layar masuk: lockup menggantikan judul ketik, jadi h1 tidak perlu gaya sendiri */
.lgmerek{margin:0 0 var(--ap2);font-size:0}
#login .lgjudul{font-size:var(--ap-display);font-weight:800;letter-spacing:-.035em;
  line-height:1.04;color:var(--ink);margin:0}

/* bilah aplikasi: tinggi barisnya sudah padat, jadi tandanya yang dikecilkan */
.appbar .brand .nslogo-1{color:var(--ink)}
/* Tanda vektor gradasi navy-cyan cocok untuk latar terang, tapi terlalu gelap
   di ujung kirinya untuk latar gelap. Sejak berkas tanda putih asli tersedia
   (v232), itu yang dipakai di tema gelap, bukan lagi vektor plus filter cerah. */
.nslogo-mark-w{width:var(--ns);height:calc(var(--ns)*.984);flex:0 0 auto;display:none}

/* ---------- logo asli sebagai gambar (v231) ----------
   Berkas kiriman klien dipakai di latar terang. Tingginya sengaja dikunci ke
   --ns yang sama dengan tanda vektor, dan karena tanda N memang elemen tertinggi
   di berkas itu, kedua versi menempati ruang yang nyaris identik.

   Di tema gelap gambarnya tidak dipakai. Kata "Nusva" pada berkas itu navy pekat
   dan nyaris hilang di atas latar gelap, jadi di sana lockup teks yang jalan,
   sesuai aturan logo terang untuk latar terang dan logo putih untuk latar gelap. */
.nslogo-img{display:block;height:var(--ns);width:auto;flex:0 0 auto}
.nslogo{gap:0}
.nslogo-n,.nslogo-t{display:none}
[data-tema="gelap"] .nslogo{gap:calc(var(--ns)*.20)}
[data-tema="gelap"] .nslogo-img{display:none}
[data-tema="gelap"] .nslogo-mark-w{display:block}
[data-tema="gelap"] .nslogo-t{display:flex}

/* Di layar sempit hanya tanda N yang muat berdampingan dengan navigasi, dan itu
   berlaku di kedua tema. Terang memakai tanda vektor gradasi, gelap memakai
   berkas tanda putih asli, sama seperti ukuran normal. */
@media(max-width:520px){
  .lpbrand .nslogo-img{display:none}
  .lpbrand .nslogo-n{display:block}
  .lpbrand .nslogo-t{display:none}
}
[data-tema="gelap"] .lpbrand .nslogo-n{display:none}
[data-tema="gelap"] .lpbrand .nslogo-mark-w{display:block}