*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif;background:#f4f6fa;color:#1d2433}
a{color:#1a56b0;text-decoration:none}a:hover{text-decoration:underline}
.top{background:#12306b;color:#fff;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:10px 20px;gap:10px}
.brand{font-weight:700;font-size:18px}.brand small{display:block;font-weight:400;font-size:12px;opacity:.8}
.top nav a{color:#dbe6ff;margin-left:14px;padding:4px 0}.top nav a.on{color:#fff;border-bottom:2px solid #fff}
main{max-width:1200px;margin:20px auto;padding:0 16px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.card{background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px #0001}
.card b{display:block;font-size:26px;color:#12306b}.card span{color:#667}
.panel{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px #0001;margin-bottom:18px;overflow-x:auto}
h1{font-size:22px;margin:0 0 14px}h2{font-size:16px;margin:0 0 10px;color:#12306b}
table{border-collapse:collapse;width:100%}th,td{padding:7px 10px;text-align:left;border-bottom:1px solid #e6eaf2;vertical-align:top}
th{background:#f0f3f9;font-size:13px;white-space:nowrap}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
input,select,textarea,button{font:inherit;padding:7px 10px;border:1px solid #c4cbd9;border-radius:6px;background:#fff}
button,.btn{background:#1a56b0;color:#fff;border:0;cursor:pointer;padding:8px 14px;border-radius:6px;display:inline-block}
.btn.sec{background:#e6eaf2;color:#1d2433}.btn.red{background:#b3261e}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.pager a,.pager span{padding:4px 10px;border-radius:6px;background:#e6eaf2}.pager span{background:#12306b;color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 18px}
.grid label{display:block;font-size:12px;color:#667;margin-bottom:2px}.grid input,.grid select{width:100%}
dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 18px;margin:0}dt{font-size:12px;color:#667}dd{margin:0;font-weight:500;word-break:break-word}
.msg{padding:10px 14px;border-radius:8px;margin-bottom:14px}.ok{background:#e1f5e7;color:#14532d}.err{background:#fde7e7;color:#7f1d1d}
.login{max-width:340px;margin:12vh auto}.login input{width:100%;margin-bottom:10px}
.bar{height:8px;background:#e6eaf2;border-radius:4px;overflow:hidden;min-width:80px}.bar i{display:block;height:100%;background:#1a56b0}
@media print{.top,.filters,.pager,.btn,button{display:none}body{background:#fff}}

/* ---- Tambahan v2 ---- */
.top{position:sticky;top:0;z-index:20}
.qs{position:relative;flex:1;min-width:200px;max-width:340px}.qs input{width:100%;border:0}
#qsdd{display:none;position:absolute;left:0;right:0;top:40px;background:#fff;color:#1d2433;border-radius:8px;box-shadow:0 6px 24px #0003;overflow:hidden}
#qsdd a{display:flex;gap:10px;align-items:center;padding:8px 10px;color:inherit;border-bottom:1px solid #eef1f6}#qsdd a:hover{background:#f0f3f9;text-decoration:none}
#qsdd small{display:block;color:#667}#qsdd p{margin:0;padding:10px;color:#667}
.av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#c7d6f2;color:#12306b;font-weight:700;object-fit:cover;flex:none}
.av.sm{width:36px;height:36px;font-size:13px}.av.md{width:48px;height:48px}.av.lg{width:170px;height:170px;font-size:56px;border:4px solid #fff;box-shadow:0 2px 8px #0003}
.badge{display:inline-block;background:#e6eaf2;border-radius:99px;padding:1px 10px;font-size:12px;color:#12306b;font-weight:600}
td .who{display:flex;align-items:center;gap:10px}
.cv{display:grid;grid-template-columns:290px 1fr;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0002;overflow:hidden;min-height:700px}
.cv-side{background:#12306b;color:#e8efff;padding:28px 22px;text-align:center}
.cv-side h2{color:#fff;font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #ffffff44;padding-bottom:4px;margin:22px 0 8px;text-align:left}
.cv-side .kv{text-align:left;margin-bottom:6px;font-size:13px}.cv-side dt{color:#9db6ee}.cv-side dd{color:#fff}
.cv-side .nm{font-size:19px;font-weight:700;color:#fff;margin:14px 0 4px}
.cv-main{padding:30px 34px}.cv-main h1{margin:0;font-size:28px;color:#12306b}.cv-main .sub{color:#667;margin:2px 0 18px}
.cv-sec{margin-bottom:20px}.cv-sec h2{border-bottom:2px solid #12306b;padding-bottom:3px;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.kvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 18px;margin:0}.kv dt{font-size:11px;color:#778;text-transform:uppercase}.kv dd{margin:0;font-weight:600}
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.cols3>div{background:#f4f6fa;border-radius:8px;padding:10px 12px}.cols3 h3{margin:0 0 6px;font-size:14px;color:#12306b}
.tl{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid #c7d6f2}.tl li{margin:0 0 10px;padding-left:12px;position:relative}.tl li:before{content:"";position:absolute;left:-21px;top:6px;width:10px;height:10px;border-radius:50%;background:#12306b}
.tl small{color:#667;display:block}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.actions label.btn{cursor:pointer}.actions input[type=file]{display:none}
.cv-side .btn{background:#ffffff22;margin:3px 0;width:100%}
@media(max-width:760px){.cv{grid-template-columns:1fr}.cv-main{padding:20px}}
@media print{
  @page{size:A4;margin:10mm}
  .top,.actions,.msg{display:none!important}main{margin:0;max-width:none;padding:0}
  .cv{box-shadow:none;grid-template-columns:240px 1fr;min-height:0}
  .cv-side{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .cols3>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
