@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');
:root{--primary:#0866e5;--navy:#071d42;--cyan:#19b5eb;--gold:#ffb703;--ink:#172744;--muted:#6b7c96;--line:#dce7f3;--bg:#f2f7fd;--white:#fff;--danger:#d93556}*{box-sizing:border-box}body{margin:0;font-family:Manrope,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,rgba(25,181,235,.28),transparent 32%),radial-gradient(circle at 92% 85%,rgba(255,183,3,.22),transparent 31%),linear-gradient(135deg,#eaf7ff,#f4f7ff)}.auth-card{width:min(460px,100%);background:rgba(255,255,255,.92);border:1px solid white;border-radius:28px;padding:38px;box-shadow:0 30px 80px rgba(18,65,128,.17)}.install-card{width:min(760px,100%)}.brand-mark{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary),var(--cyan));color:white;font:800 22px "Plus Jakarta Sans";box-shadow:0 14px 35px rgba(8,102,229,.25)}.brand-mark.small{width:42px;height:42px;border-radius:12px;font-size:15px;box-shadow:none}.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--primary);font-weight:800;margin:24px 0 7px}.auth-card h1{font:800 30px "Plus Jakarta Sans";margin:0}.muted{color:var(--muted);line-height:1.6}.stack{display:grid;gap:16px;margin-top:24px}label{font-size:13px;font-weight:700;color:#40526e;display:grid;gap:7px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#fbfdff;color:var(--ink);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#6ca8ed;box-shadow:0 0 0 4px rgba(8,102,229,.09);background:white}textarea{resize:vertical}label small{font-size:11px;color:#8a98ac;font-weight:500}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer}.btn.primary{background:linear-gradient(100deg,var(--primary),#159fe5);color:#fff;box-shadow:0 10px 25px rgba(8,102,229,.19)}.btn.ghost{background:#edf4fc;color:#3d587a}.back-link{display:block;margin-top:22px;color:var(--primary);font-size:13px;font-weight:700}.alert{padding:13px 15px;border-radius:12px;margin:18px 0;font-size:13px}.alert.success{background:#e2f8ef;color:#087453}.alert.danger{background:#ffeaee;color:#b32643}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:10px}.check{display:flex;grid-auto-flow:column;justify-content:start;align-items:center;gap:8px}.check input{width:auto}.dashboard-body{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:linear-gradient(175deg,#071d42,#092d61 70%,#0750a3);color:white;padding:24px 17px;display:flex;flex-direction:column;z-index:10}.side-brand{display:flex;align-items:center;gap:11px;padding:0 6px 25px;border-bottom:1px solid rgba(255,255,255,.11)}.side-brand strong,.side-brand span{display:block}.side-brand strong{font:800 14px "Plus Jakarta Sans"}.side-brand span{font-size:11px;color:#91afd3;margin-top:3px}.sidebar nav{display:grid;gap:6px;margin-top:25px}.sidebar nav a{padding:12px 14px;border-radius:11px;color:#a9bfdd;font-size:13px;font-weight:700;display:flex;gap:12px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.12);color:white}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--gold)}.side-footer{margin-top:auto;display:grid;gap:9px;border-top:1px solid rgba(255,255,255,.11);padding-top:18px}.side-footer a{font-size:12px;color:#b8cae2;padding:7px}.admin-main{margin-left:242px;padding:26px 30px 45px}.admin-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.admin-top p{margin:0 0 3px;font-size:10px;letter-spacing:.17em;color:var(--primary);font-weight:800}.admin-top h1{margin:0;font:800 27px "Plus Jakarta Sans"}.admin-user{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700}.admin-user b{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary),var(--cyan));color:white}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.stat-card,.admin-card,.welcome-card{background:white;border:1px solid #e6eef7;border-radius:20px;box-shadow:0 12px 35px rgba(30,75,130,.07)}.stat-card{padding:20px}.stat-card span{font-size:12px;color:var(--muted);font-weight:700}.stat-card strong{display:block;font:800 34px "Plus Jakarta Sans";margin:7px 0 2px;color:var(--primary)}.stat-card small{font-size:10px;color:#9aa8ba}.welcome-card{margin-top:18px;padding:36px;display:grid;grid-template-columns:1fr 260px;gap:30px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#fff,#f6fbff)}.welcome-card h2{font:800 30px/1.2 "Plus Jakarta Sans";max-width:620px;margin:12px 0}.welcome-card p{color:var(--muted);line-height:1.7;max-width:680px}.chip,.card-head span{font-size:10px;letter-spacing:.15em;color:var(--primary);font-weight:800}.welcome-visual{height:190px;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--primary),var(--cyan));color:white;transform:rotate(3deg);box-shadow:0 24px 50px rgba(8,102,229,.24)}.welcome-visual b{font:800 54px "Plus Jakarta Sans"}.welcome-visual span{font-size:12px}.two-column{display:grid;grid-template-columns:minmax(370px,.82fr) minmax(480px,1.18fr);gap:18px;align-items:start}.admin-card{padding:22px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.card-head h2{font:800 19px "Plus Jakarta Sans";margin:4px 0 0}.card-head em{font-style:normal;font-size:11px;color:var(--muted);background:#eef5fc;padding:7px 9px;border-radius:999px}.list-card{max-height:calc(100vh - 120px);overflow:auto}.data-list{display:grid;gap:10px}.data-item{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px}.thumb,.date-box{width:52px;height:52px;border-radius:11px;background:linear-gradient(145deg,#e6f3ff,#d7eaff);overflow:hidden;display:grid;place-items:center;color:var(--primary);font-weight:900}.thumb img{width:100%;height:100%;object-fit:cover}.date-box{display:flex;flex-direction:column;justify-content:center}.date-box b{font-size:18px}.date-box span{font-size:9px;text-transform:uppercase}.data-copy{min-width:0}.data-copy strong{font-size:12px;display:block;margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-copy small{font-size:10px;color:var(--muted)}.badge{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;padding:4px 7px;border-radius:999px;margin-right:4px}.badge.besar{background:#e3efff;color:#0754c7}.badge.sedang{background:#fff1cb;color:#996200}.badge.kecil{background:#e2f8ef;color:#087453}.badge.neutral{background:#f0f2f7;color:#687790}.item-actions{display:flex;gap:7px;align-items:center}.item-actions a,.item-actions button,.gallery-grid button{border:0;background:none;font-size:10px;font-weight:800;color:var(--primary);cursor:pointer;padding:4px}.item-actions button,.gallery-grid button{color:var(--danger)}.empty-admin{padding:30px;text-align:center;color:var(--muted);font-size:13px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-grid article{border:1px solid var(--line);border-radius:14px;overflow:hidden}.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.gallery-grid article>div{display:flex;align-items:center;justify-content:space-between;padding:10px}.gallery-grid strong{font-size:11px}.settings-card{max-width:830px}
@media(max-width:900px){.sidebar{width:76px;padding:20px 10px}.side-brand>div:last-child,.sidebar nav span{display:none}.sidebar nav a{justify-content:center}.side-footer a{font-size:0;text-align:center}.side-footer a:before{content:'↗';font-size:18px}.admin-main{margin-left:76px;padding:20px}.stats-grid{grid-template-columns:1fr 1fr}.two-column{grid-template-columns:1fr}.list-card{max-height:none}.welcome-card{grid-template-columns:1fr}.welcome-visual{display:none}}@media(max-width:560px){.admin-main{padding:15px}.form-grid,.stats-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-user span{display:none}.gallery-grid{grid-template-columns:1fr}.auth-card{padding:25px}.data-item{grid-template-columns:44px 1fr}.item-actions{grid-column:2}.welcome-card{padding:24px}}
