:root{
  --ink:#14213D; --ink-2:#1E3A5F; --paper:#F7F5EF; --paper-2:#EFEBE0;
  --blueprint:#2D6E9E; --blueprint-light:#5B93BE; --graphite:#33322F;
  --graphite-soft:#6B6A63; --rust:#A34A2A; --brass:#B4863A; --success:#4C7A5E;
  --line:#C9C3B4; --white:#FFFFFF; --radius:2px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background-color:var(--paper);
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22200%22%20height%3D%22200%22%20viewBox%3D%220%200%20200%20200%22%3E%20%3Cg%20transform%3D%22translate%2846%2C46%29%22%20fill%3D%22none%22%20stroke%3D%22%232D6E9E%22%20stroke-width%3D%222.2%22%20opacity%3D%220.16%22%3E%20%3Ccircle%20r%3D%2226%22/%3E%20%3Ccircle%20r%3D%2210%22/%3E%20%3Cg%20stroke%3D%22none%22%20fill%3D%22%232D6E9E%22%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%2845%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%2890%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28135%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28180%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28225%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28270%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28315%29%22/%3E%20%3C/g%3E%20%3C/g%3E%20%3Cg%20transform%3D%22translate%28150%2C140%29%20scale%280.6%29%22%20fill%3D%22none%22%20stroke%3D%22%23A34A2A%22%20stroke-width%3D%222.6%22%20opacity%3D%220.13%22%3E%20%3Ccircle%20r%3D%2226%22/%3E%20%3Ccircle%20r%3D%2210%22/%3E%20%3Cg%20stroke%3D%22none%22%20fill%3D%22%23A34A2A%22%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%2845%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%2890%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28135%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28180%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28225%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28270%29%22/%3E%20%3Crect%20x%3D%22-4.5%22%20y%3D%22-35%22%20width%3D%229%22%20height%3D%2211%22%20rx%3D%221%22%20transform%3D%22rotate%28315%29%22/%3E%20%3C/g%3E%20%3C/g%3E%20%3C/svg%3E");
  background-size:200px 200px;
  background-attachment:fixed;
  color:var(--graphite); font-family:'Inter',sans-serif; font-size:15px; line-height:1.5;
}
.mono{font-family:'IBM Plex Mono',monospace;}
.sheet{max-width:1040px;margin:18px auto 60px;background:var(--white);border:1.5px solid var(--ink);
  position:relative;box-shadow:0 2px 0 var(--ink), 6px 6px 0 rgba(20,33,61,0.08);}
.tick{position:absolute;width:14px;height:14px;border:1.5px solid var(--ink);}
.tick.tl{top:-1.5px;left:-1.5px;border-right:none;border-bottom:none;}
.tick.tr{top:-1.5px;right:-1.5px;border-left:none;border-bottom:none;}
.tick.bl{bottom:-1.5px;left:-1.5px;border-right:none;border-top:none;}
.tick.br{bottom:-1.5px;right:-1.5px;border-left:none;border-top:none;}
.titleblock{background:var(--ink);color:var(--paper);padding:14px 22px;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:10px;border-bottom:1.5px solid var(--ink);}
.titleblock .brand .name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px;}
.titleblock .brand .sub{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--blueprint-light);
  letter-spacing:0.06em;text-transform:uppercase;}
.titleblock .meta{display:flex;gap:18px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:#9FB4CE;}
.titleblock .meta div span{display:block;color:var(--paper);font-size:12px;margin-top:2px;}
.langswitch{display:flex;gap:6px;align-items:center;}
.langswitch a{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;color:#9FB4CE;
  text-decoration:none;padding:3px 7px;border:1px solid rgba(159,180,206,0.4);border-radius:var(--radius);}
.langswitch a.active{background:var(--blueprint);border-color:var(--blueprint);color:var(--white);}
.langswitch a:hover:not(.active){border-color:var(--paper);color:var(--paper);}
.navbar{display:flex;border-bottom:1.5px solid var(--ink);background:var(--paper-2);overflow-x:auto;}
.navbar a{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.05em;text-transform:uppercase;
  padding:11px 18px;color:var(--graphite-soft);text-decoration:none;border-right:1px solid var(--line);white-space:nowrap;}
.navbar a:hover{background:var(--white);color:var(--ink);}
.navbar a.active{background:var(--white);color:var(--blueprint);box-shadow:inset 0 -2px 0 var(--blueprint);font-weight:600;}
main{padding:32px 36px 46px;}
h1{font-family:'Space Grotesk',sans-serif;font-size:26px;font-weight:700;margin:0 0 6px;color:var(--ink);}
h2{font-family:'Space Grotesk',sans-serif;font-size:17px;font-weight:600;margin:0;color:var(--ink);}
.lede{color:var(--graphite-soft);margin:0 0 28px;max-width:640px;}
.step{display:flex;align-items:center;gap:12px;margin:34px 0 16px;padding-bottom:8px;border-bottom:1.5px solid var(--ink);}
.step:first-of-type{margin-top:0;}
.step .num{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12px;background:var(--ink);
  color:var(--paper);padding:3px 8px;border-radius:var(--radius);}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.field.full{grid-column:1 / -1;}
label{font-size:12px;font-weight:600;color:var(--ink-2);}
.fielddesc{font-size:11.5px;color:var(--graphite-soft);margin:0;line-height:1.4;}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],select,textarea{
  font-family:'Inter',sans-serif;font-size:14px;padding:9px 10px;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--paper);color:var(--graphite);width:100%;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blueprint);outline-offset:1px;border-color:var(--blueprint);}
textarea{resize:vertical;min-height:70px;}
.scalebar{display:flex;gap:6px;flex-wrap:wrap;}
.scalebar label.opt-btn{flex:1;min-width:64px;text-align:center;padding:9px 6px;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--paper);font-size:12.5px;cursor:pointer;color:var(--graphite-soft);}
.scalebar input[type=radio]{display:none;}
.scalebar label.opt-btn.sel{background:var(--blueprint);border-color:var(--blueprint);color:var(--white);font-weight:600;}
.btn{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase;
  padding:11px 22px;background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);border-radius:var(--radius);
  cursor:pointer;font-weight:600;text-decoration:none;display:inline-block;}
.btn:hover{background:var(--ink-2);}
.btn.outline{background:transparent;color:var(--ink);}
.btn.outline:hover{background:var(--paper-2);}
.btn.small{padding:6px 12px;font-size:11px;}
.btn.rust{background:var(--rust);border-color:var(--rust);}
.aspect-block{margin:0 0 28px;}
.aspect-block h3{font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;color:var(--ink-2);
  margin:0 0 12px;padding-bottom:6px;border-bottom:1px dashed var(--line);}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;}
.statcard{border:1px solid var(--line);background:var(--paper);padding:16px;position:relative;}
.statcard::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--blueprint);}
.statcard .val{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:600;color:var(--ink);}
.statcard .lbl{font-size:11px;color:var(--graphite-soft);text-transform:uppercase;letter-spacing:0.04em;margin-top:4px;}
.chartrow{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px;}
.chartbox{border:1px solid var(--line);background:var(--paper);padding:16px;}
.chartbox h3{font-family:'Space Grotesk',sans-serif;font-size:13px;margin:0 0 12px;color:var(--ink-2);
  text-transform:uppercase;letter-spacing:0.03em;}
table{width:100%;border-collapse:collapse;font-size:12.5px;}
th{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.04em;
  text-align:left;padding:9px 8px;background:var(--ink);color:var(--paper);}
td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;}
tr:hover td{background:var(--paper-2);}
.tablewrap{max-height:420px;overflow:auto;border:1px solid var(--ink);margin-bottom:10px;}
.badge{display:inline-block;padding:2px 7px;border-radius:var(--radius);font-size:10.5px;font-weight:600;}
.badge.bekerja{background:#DCEBE2;color:var(--success);}
.badge.belum{background:#F3DFD6;color:var(--rust);}
.badge.studi{background:#DDE7F1;color:var(--blueprint);}
.badge.wira{background:#F1E6D0;color:var(--brass);}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;justify-content:space-between;}
.tabbar{display:flex;gap:2px;margin-bottom:22px;border-bottom:1px solid var(--line);}
.tabbar a{font-family:'IBM Plex Mono',monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:0.04em;
  padding:9px 16px;background:none;border:none;cursor:pointer;color:var(--graphite-soft);text-decoration:none;
  border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabbar a.active{color:var(--ink);border-bottom-color:var(--blueprint);font-weight:600;}
.note{font-size:12px;color:var(--graphite-soft);background:var(--paper-2);border-left:2px solid var(--brass);
  padding:10px 14px;margin:16px 0;}
.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:16px;}
.alert.ok{background:#DCEBE2;color:var(--success);border-left:3px solid var(--success);}
.alert.err{background:#F3DFD6;color:var(--rust);border-left:3px solid var(--rust);}
.manage-card{border:1px solid var(--line);background:var(--paper);padding:16px;margin-bottom:14px;}
.manage-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.manage-card-head b{font-family:'Space Grotesk',sans-serif;font-size:14.5px;color:var(--ink);}
.manage-actions{display:flex;gap:6px;flex-wrap:wrap;}
.manage-sublist{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px;}
.manage-sublist li{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12.5px;
  padding:6px 10px;background:var(--paper-2);border-radius:var(--radius);}
.manage-sublist li form{display:flex;gap:6px;}
.role-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:8px;}
.role-card{border:1.5px solid var(--ink);background:var(--paper);padding:22px 18px;text-decoration:none;display:block;}
.role-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink);}
.role-card .tag{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--blueprint);letter-spacing:0.06em;
  text-transform:uppercase;margin-bottom:10px;display:block;}
.role-card h3{font-family:'Space Grotesk',sans-serif;font-size:16px;margin:0 0 8px;color:var(--ink);}
.role-card p{font-size:12.5px;color:var(--graphite-soft);margin:0;}
.loginbox{max-width:340px;margin:40px auto;text-align:center;}
@media(max-width:720px){
  .grid,.role-grid,.chartrow{grid-template-columns:1fr;}
  .statgrid{grid-template-columns:1fr 1fr;}
  main{padding:22px 16px 36px;}
}
