/* ─── Arah visual A · Dokumen Dinas ─────────────────────────────── Bahasa visual tata naskah resmi: kop bergaris ganda, Times New Roman, tabel bergaris penuh, biru 1F4E79 dari template Word RPS, status berupa stempel. Tanpa framework. */ :root { --paper: #ffffff; --desk: #ececec; /* latar di luar "kertas" */ --ink: #1a1a1a; --blue: #1f4e79; --blue-fill: #d6e4f0; --row-alt: #f3f7fb; --red: #9a3324; --grey: #767676; --green-fill: #e2efda; --yellow-fill: #fff2cc; } * { box-sizing: border-box; } body { margin: 0; background: var(--desk); color: var(--ink); font-family: "Times New Roman", Times, serif; font-size: 15px; line-height: 1.45; } /* "kertas" landscape penuh — memakai seluruh lebar layar */ .kertas { max-width: none; margin: 12px 16px 44px; background: var(--paper); border: 1px solid #c9c9c9; padding: 26px 40px 40px; } .kop-teks, .kop { max-width: none; } /* ── kop: logo kiri, teks tengah (tata naskah dinas) ── */ .kop { display: flex; align-items: center; gap: 16px; text-align: center; } .kop-logo { flex: 0 0 74px; } .kop-imbang { flex: 0 0 74px; } /* penyeimbang agar teks tepat di tengah */ .kop-teks { flex: 1; } .kop .uni { font-size: 15px; letter-spacing: .06em; } .kop .prodi{ font-size: 21px; font-weight: bold; letter-spacing: .02em; } .kop .app { font-size: 13px; font-style: italic; margin-top: 2px; } .kop-rule { border: none; border-top: 2.5px solid var(--ink); margin: 14px 0 2px; } .kop-rule2 { border: none; border-top: 1px solid var(--ink); margin: 0 0 24px; } /* ── menu utama (di bawah kop) ── */ .menu-baris { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: -16px 0 22px; padding: 7px 0; border-bottom: 1px solid #c9c9c9; font-size: 14px; } .menu-kiri { display: flex; gap: 4px 18px; flex-wrap: wrap; } .menu-baris a { color: var(--blue); text-decoration: none; } .menu-baris a:hover { text-decoration: underline; } .menu-baris a.aktif { color: var(--ink); font-weight: bold; border-bottom: 2px solid var(--blue); text-decoration: none; } .menu-kanan { font-size: 13px; color: var(--grey); } /* ── kotak login ── */ .kertas { min-height: calc(100vh - 56px); } /* halaman login: kotak di tengah vertikal, kaki menempel di dasar kertas */ .kertas:has(.login-kotak) { display: flex; flex-direction: column; } .login-kotak { width: 100%; max-width: 460px; margin: 40px auto 60px; border: 1px solid var(--ink); padding: 26px 30px 30px; } .kertas:has(.login-kotak) .login-kotak { margin: auto; } .login-kotak h1 { text-align: center; } .login-kotak label { display: block; font-size: 14px; margin: 12px 0 3px; } /* ── navigasi & meta ── */ .nav-baris { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; font-size: 14px; } .nav-baris a { color: var(--blue); } .kpi-baris { display: flex; gap: 26px; flex-wrap: wrap; margin-bottom: 20px; font-size: 14px; } .kpi-baris b { font-size: 17px; } .kpi-baris span { color: var(--grey); } .kpi-pct { font-family: "Segoe UI", Arial, sans-serif; font-size: 11px; font-weight: 700; padding: 1px 6px; border: 1.5px solid; white-space: nowrap; } .kpi-baris span.kpi-hijau { color: #205020; border-color: #205020; background: var(--green-fill); } .kpi-baris span.kpi-kuning { color: #7a5c00; border-color: #7a5c00; background: var(--yellow-fill); } .kpi-baris span.kpi-merah { color: var(--red); border-color: var(--red); background: #f6ddd8; } /* ── judul bagian (meniru section_head dokumen) ── */ h1 { font-size: 19px; margin: 0 0 14px; } h2.bagian { font-size: 15px; font-weight: bold; margin: 26px 0 8px; } .keterangan { font-size: 13px; font-style: italic; color: var(--grey); margin: 4px 0 10px; } /* ── tabel gaya "Table Grid" Word ── */ table.grid { border-collapse: collapse; width: 100%; font-size: 14px; } table.grid th { background: var(--blue); color: #fff; font-weight: bold; padding: 6px 9px; border: 1px solid var(--ink); text-align: left; } table.grid th.sub { background: #2e75b6; } table.grid td { border: 1px solid var(--ink); padding: 6px 9px; vertical-align: top; } table.grid tr:nth-child(even) td { background: var(--row-alt); } table.grid td.tengah, table.grid th.tengah { text-align: center; } table.grid td.label { background: var(--blue-fill); font-weight: bold; width: 220px; } table.grid tr.uts td { background: var(--green-fill); } table.grid tr.uas td { background: var(--yellow-fill); } table.grid tr.kelompok-atas td { background: var(--green-fill); } table.grid tr.kelompok-tengah td { background: var(--yellow-fill); } table.grid tr.kelompok-bawah td { background: #f6ddd8; } table.grid tr.total td { background: var(--blue-fill); font-weight: bold; } .gulir { overflow-x: auto; } /* kode CPL/CPMK/Sub-CPMK dengan deskripsi lengkap di tooltip (title) */ .kode-hover { cursor: help; border-bottom: 1px dotted var(--grey); } /* header tabel yang bisa diurut (tabel.js) */ table.grid th.bisa-urut { cursor: pointer; user-select: none; } table.grid th.bisa-urut:hover { background: #2e75b6; } table.grid th.bisa-urut[data-arah="asc"]::after { content: " ▲"; font-size: 10px; } table.grid th.bisa-urut[data-arah="desc"]::after { content: " ▼"; font-size: 10px; } /* ── cara input alternatif (dilipat) ── */ details.cara-alt { margin-top: 26px; } details.cara-alt summary { font-size: 15px; font-weight: bold; cursor: pointer; margin-bottom: 8px; } details.cara-alt summary:hover { color: var(--blue); } /* ── baris filter tabel ── */ .filter-baris { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 10px; font-size: 14px; } /* ── stempel status ── */ .stamp { display: inline-block; font-family: "Segoe UI", Arial, sans-serif; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; padding: 2px 9px; transform: rotate(-2deg); white-space: nowrap; } .stamp-ok { color: var(--blue); border: 2px solid var(--blue); } .stamp-draft { color: var(--grey); border: 2px dashed var(--grey); } .stamp-no { color: var(--red); border: 2px solid var(--red); } /* ── form ── */ input[type="text"], input[type="number"], input[type="password"], textarea, select { font-family: "Times New Roman", Times, serif; font-size: 14px; color: var(--ink); border: 1px solid #999; background: #fff; padding: 4px 6px; width: 100%; } textarea { resize: both; } input:focus, textarea:focus, select:focus { outline: 2px solid var(--blue); outline-offset: 0; } td.isian { padding: 2px !important; background: #fff !important; } td.isian input, td.isian textarea, td.isian select { border: none; } td.isian input:focus, td.isian textarea:focus, td.isian select:focus { outline: 2px solid var(--blue); outline-offset: -2px; } .tombol { font-family: "Times New Roman", Times, serif; font-size: 14px; background: var(--blue); color: #fff; border: 1px solid var(--blue); padding: 7px 18px; cursor: pointer; } .tombol.garis { background: transparent; color: var(--blue); } .tombol.selesai { background: #205020; border-color: #205020; } .tombol:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; } a.tombol { text-decoration: none; display: inline-block; } .aksi-baris { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 26px; padding-top: 16px; border-top: 1px solid #c9c9c9; } .aksi-baris .spacer { flex: 1; } /* peringatan validasi */ .peringatan { border: 2px solid var(--red); color: var(--red); padding: 8px 12px; font-size: 14px; margin: 12px 0; } .info { border: 1px solid var(--blue); background: var(--blue-fill); padding: 8px 12px; font-size: 14px; margin: 12px 0; } #total-bobot-f.salah, #total-bobot-g.salah { color: var(--red); font-weight: bold; } /* kelompok checkbox sub-cpmk */ .pilih-sub { border: 1px solid #999; padding: 6px 8px; max-height: 150px; overflow-y: auto; background: #fff; } .pilih-sub label { display: block; font-size: 13px; margin: 2px 0; } .pilih-sub input { width: auto; margin-right: 6px; } /* ── dasbor monitoring (/pantau) ── */ .grafik { width: 100%; max-width: 940px; height: auto; display: block; margin: 6px 0 10px; } .grafik text.sumbu { font-family: "Segoe UI", Arial, sans-serif; font-size: 11px; fill: #555; } .grafik text.sumbu.pudar { fill: #999; } .grafik text.nilai-bar { font-family: "Segoe UI", Arial, sans-serif; font-size: 11px; fill: var(--ink); paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; } .grafik g.bar rect[fill="transparent"] { transition: fill .1s; } .grafik g.bar:hover rect[fill="transparent"] { fill: var(--row-alt); } .legenda { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; font-family: "Segoe UI", Arial, sans-serif; font-size: 12px; color: #555; margin: 2px 0 4px; } .legenda .chip { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: -1px; margin-right: 5px; } .legenda .chip-kosong { display: inline-block; width: 12px; height: 12px; border-radius: 2px; border: 1px dashed var(--grey); vertical-align: -1px; margin-right: 5px; } .legenda .chip-garis { display: inline-block; width: 18px; border-top: 2px dashed var(--red); vertical-align: 3px; margin-right: 5px; } .proses-baris { display: flex; align-items: center; gap: 10px; margin: 6px 0; max-width: 940px; } .proses-label { flex: 0 0 90px; font-size: 14px; } .proses-jalur { flex: 1; display: flex; gap: 2px; height: 26px; } .proses-jalur .seg { display: flex; align-items: center; justify-content: center; font-family: "Segoe UI", Arial, sans-serif; font-size: 12px; border-radius: 2px; min-width: 20px; overflow: hidden; } .proses-jalur .seg-kosong { border: 1px dashed #bbb; color: var(--grey); } .tren-kisi { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin: 8px 0 4px; } .tren-kartu { border: 1px solid #ccc; padding: 8px 10px 4px; display: flex; align-items: center; gap: 10px; font-family: "Segoe UI", Arial, sans-serif; font-size: 12px; } .tren-kartu b { flex: 0 0 46px; font-size: 12px; } .tren-svg { flex: 1; height: 46px; } .tren-akhir { font-weight: 700; font-size: 13px; } .perhatian-kisi { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; } @media (max-width: 900px) { .perhatian-kisi { grid-template-columns: 1fr; } } .kaki { margin-top: 28px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 12.5px; color: var(--grey); font-style: italic; } @media print { body { background: #fff; } .kertas { border: none; margin: 0; padding: 0; } .aksi-baris, .nav-baris { display: none; } }