:root{--a-green:#0b7a43;--a-green-dark:#07512e;--a-green-soft:#edf8f1;--a-bg:#f4f7f5;--a-text:#17211c;--a-muted:#738079;--a-border:#e1e9e4;--a-shadow:0 10px 30px rgba(15,42,28,.06)}
*{box-sizing:border-box}.admin-body{margin:0;background:var(--a-bg);color:var(--a-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px}.admin-layout{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#0d281b;color:#dce9e1;padding:22px 14px;z-index:1000;overflow-y:auto}.admin-brand{display:flex;align-items:center;gap:11px;padding:3px 8px 25px}.admin-brand-logo{width:42px;height:42px;border-radius:12px;background:#fff;color:var(--a-green-dark);display:grid;place-items:center;font-weight:900;font-size:12px}.admin-brand strong{display:block;color:#fff;font-size:15px;letter-spacing:.3px}.admin-brand span{display:block;color:#91aa9b;font-size:9px;margin-top:3px}.admin-side-label{padding:12px 10px 7px;color:#6f8d7d;font-size:8px;font-weight:800;letter-spacing:1px}.side-label-bottom{margin-top:20px}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav a{display:flex;align-items:center;gap:11px;color:#bfd1c7;padding:11px 12px;border-radius:10px;font-size:12px;font-weight:600;transition:.18s}.admin-nav a i{width:18px;text-align:center;font-size:14px}.admin-nav a:hover{background:#163b29;color:#fff}.admin-nav a.active{background:#fff;color:var(--a-green-dark);box-shadow:0 4px 14px rgba(0,0,0,.12)}.admin-nav .logout-link{color:#f0b5b5}.admin-nav .logout-link:hover{background:#4b2525;color:#fff}
.admin-content{grid-column:2;min-width:0;min-height:100vh;padding:0 28px}.admin-topbar{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-left{display:flex;align-items:center;gap:12px}.admin-breadcrumb{font-size:8px;font-weight:800;letter-spacing:.8px;color:#8a968f;margin-bottom:4px}.admin-breadcrumb span{margin:0 5px;color:#b2beb7}.admin-topbar h1{font-size:25px;line-height:1.1;margin:0;font-weight:800;letter-spacing:-.5px}.sidebar-toggle{display:none;border:1px solid var(--a-border);background:#fff;color:var(--a-green-dark);border-radius:10px;width:40px;height:40px;font-size:19px}.admin-profile{display:flex;align-items:center;gap:9px}.profile-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--a-green-soft);color:var(--a-green);font-size:15px}.profile-text strong{display:block;font-size:11px}.profile-text span{display:block;color:var(--a-muted);font-size:9px;margin-top:2px;text-transform:capitalize}
.admin-page{max-width:1500px;margin:0 auto;padding-bottom:24px}.admin-footer{max-width:1500px;margin:0 auto;padding:18px 2px 25px;color:#8a968f;font-size:9px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--a-border)}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.admin-stat{background:#fff;border:1px solid var(--a-border);border-radius:15px;padding:17px;box-shadow:var(--a-shadow);display:flex;align-items:center;gap:12px}.admin-stat-icon{width:43px;height:43px;border-radius:12px;background:var(--a-green-soft);color:var(--a-green);display:grid;place-items:center;font-size:17px}.admin-stat-label{font-size:9px;color:var(--a-muted);margin-bottom:4px}.admin-stat-value{font-size:21px;font-weight:800;letter-spacing:-.5px}.admin-stat-note{font-size:8px;color:#9aa59f;margin-top:2px}
.admin-card{background:#fff;border:1px solid var(--a-border);border-radius:16px;box-shadow:var(--a-shadow);overflow:hidden}.admin-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border-bottom:1px solid var(--a-border)}.admin-card-title{margin:0;font-size:15px;font-weight:800}.admin-card-subtitle{margin:4px 0 0;color:var(--a-muted);font-size:10px}.admin-card-body{padding:18px}.admin-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.action-group{display:flex;gap:8px;flex-wrap:wrap}.admin-note{font-size:10px;color:var(--a-muted)}
.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid transparent;border-radius:9px;font-size:10px;font-weight:800;cursor:pointer;text-decoration:none;transition:.18s}.admin-btn-primary{background:var(--a-green);color:#fff}.admin-btn-primary:hover{background:var(--a-green-dark);color:#fff}.admin-btn-soft{background:var(--a-green-soft);color:var(--a-green-dark);border-color:#cce6d5}.admin-btn-soft:hover{background:#dff2e6;color:var(--a-green-dark)}.admin-btn-light{background:#fff;color:#52615a;border-color:var(--a-border)}.admin-btn-light:hover{background:#f7faf8}.admin-btn-danger{background:#fff3f3;color:#b42318;border-color:#f1caca}.admin-btn-danger:hover{background:#fde2e2}.admin-btn-sm{min-height:31px;padding:0 9px;font-size:9px}.admin-btn-icon{width:31px;padding:0}
.filter-panel{display:grid;grid-template-columns:minmax(220px,1fr) 190px auto;gap:8px;margin-bottom:14px}.admin-input,.admin-select,.admin-textarea{width:100%;border:1px solid #dbe4df;background:#fff;color:var(--a-text);border-radius:9px;outline:none;font:inherit;font-size:11px;padding:0 11px}.admin-input,.admin-select{height:39px}.admin-textarea{padding:10px 11px;min-height:95px;resize:vertical}.admin-input:focus,.admin-select:focus,.admin-textarea:focus{border-color:#8fc5a1;box-shadow:0 0 0 3px rgba(11,122,67,.07)}
.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;min-width:900px}.admin-table th{background:#f3f7f4;color:#5b6962;text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.45px;padding:12px 11px;border-bottom:1px solid var(--a-border);white-space:nowrap}.admin-table td{padding:11px;border-bottom:1px solid var(--a-border);font-size:10px;vertical-align:middle}.admin-table tbody tr:hover{background:#fbfdfc}.admin-table tr:last-child td{border-bottom:0}.table-name{font-weight:800;font-size:10px;line-height:1.35;max-width:240px}.table-muted{color:var(--a-muted);line-height:1.45}.code-chip{display:inline-flex;padding:5px 7px;border-radius:7px;background:#f1f5f3;color:#435149;font-size:8px;font-weight:800}.status-chip,.class-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:800;white-space:nowrap}.status-baik{background:#def5e8;color:#13814d}.status-sedang{background:#fff1c9;color:#9a6a00}.status-rusak{background:#fde2e2;color:#b42318}.status-berat{background:#ebecef;color:#4a4e58}.class-chip{color:#fff}.row-actions{display:flex;gap:5px;flex-wrap:wrap}.empty-state{text-align:center;padding:45px 20px;color:var(--a-muted);font-size:11px}.empty-state i{display:block;font-size:28px;margin-bottom:8px;color:#a8b4ae}
.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-top:1px solid var(--a-border)}.pagination-info{font-size:9px;color:var(--a-muted)}.pagination{display:flex;gap:4px;flex-wrap:wrap}.pagination a,.pagination span{min-width:30px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--a-border);border-radius:8px;background:#fff;color:#58665f;font-size:9px;font-weight:700}.pagination a:hover{background:var(--a-green-soft);color:var(--a-green-dark)}.pagination .active{background:var(--a-green);border-color:var(--a-green);color:#fff}.pagination .disabled{opacity:.4}
.admin-map{height:500px;border-radius:12px;overflow:hidden;border:1px solid var(--a-border)}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.map-status{font-size:9px;color:var(--a-muted)}.map-legend-admin{background:#fff;border:1px solid #dfe7e2;border-radius:10px;padding:9px 11px;box-shadow:0 4px 16px rgba(0,0,0,.12);font-size:9px;line-height:1.8}.map-legend-admin .legend-item{display:flex;align-items:center;gap:6px}.legend-line-admin{width:23px;height:4px;border-radius:3px}
.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.field{min-width:0}.span-12{grid-column:span 12}.span-9{grid-column:span 9}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.field label{display:block;font-size:9px;font-weight:700;color:#5b6962;margin:0 0 6px}.field label .required{color:#c62828}.field-help{font-size:8px;color:#8a968f;margin-top:5px;line-height:1.5}.form-section{padding:18px;border-bottom:1px solid var(--a-border)}.form-section:last-child{border-bottom:0}.form-section-title{display:flex;align-items:center;gap:9px;margin-bottom:15px}.form-section-title .icon{width:30px;height:30px;border-radius:9px;background:var(--a-green-soft);color:var(--a-green);display:grid;place-items:center}.form-section-title strong{font-size:12px}.form-section-title span{display:block;color:var(--a-muted);font-size:8px;margin-top:2px}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;background:#fafcfb;border-top:1px solid var(--a-border)}.alert-admin{padding:11px 13px;border-radius:9px;font-size:10px;margin-bottom:14px}.alert-error{background:#fff0f0;color:#a61b1b;border:1px solid #f1caca}.alert-success{background:#edf9f1;color:#137443;border:1px solid #cde9d7}
.form-map{height:520px;border-radius:12px;overflow:hidden;border:1px solid var(--a-border)}.map-instruction{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#f6faf7;border:1px solid var(--a-border);border-radius:9px;margin-bottom:10px;font-size:9px;color:#65736b}.map-buttons{display:flex;gap:7px;flex-wrap:wrap}.coord-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:15px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-link{border:1px solid var(--a-border);border-radius:11px;padding:13px;background:#fff;display:flex;align-items:center;gap:10px;color:var(--a-text)}.quick-link:hover{border-color:#abd1b8;background:#fbfefc}.quick-link i{width:35px;height:35px;border-radius:10px;background:var(--a-green-soft);color:var(--a-green);display:grid;place-items:center}.quick-link strong{display:block;font-size:10px}.quick-link span{display:block;color:var(--a-muted);font-size:8px;margin-top:2px}
.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.report-box{padding:16px;background:#fff;border:1px solid var(--a-border);border-radius:13px;box-shadow:var(--a-shadow)}.report-box span{display:block;font-size:9px;color:var(--a-muted)}.report-box strong{display:block;font-size:20px;margin-top:4px}
.admin-overlay{display:none}
@media(max-width:1100px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr 180px auto}.form-grid{gap:12px}}
@media(max-width:900px){.admin-layout{display:block}.admin-sidebar{left:-260px;transition:left .2s ease;box-shadow:12px 0 30px rgba(0,0,0,.12)}.admin-sidebar.open{left:0}.admin-content{padding:0 18px}.sidebar-toggle{display:grid;place-items:center}.admin-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:999}.admin-topbar{height:78px}.admin-profile{display:none}}
@media(max-width:700px){.admin-content{padding:0 12px}.admin-topbar h1{font-size:21px}.admin-stat-grid{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr}.admin-actions{align-items:stretch;flex-direction:column}.action-group{width:100%}.action-group .admin-btn{flex:1}.admin-card-header{align-items:flex-start;flex-direction:column}.admin-map{height:420px}.report-summary{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-12,.span-9,.span-8,.span-6,.span-4,.span-3{grid-column:span 1}.form-actions{align-items:stretch;flex-direction:column}.form-actions .action-group{width:100%}.form-actions .admin-btn{width:100%}.pagination-info{display:none}.admin-pagination{justify-content:center}.admin-footer{flex-direction:column}}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,rgba(11,122,67,.10),transparent 30rem),#f4f7f5}.login-wrap{width:min(460px,calc(100% - 28px));padding:30px 0}.login-brand{display:flex;justify-content:center;align-items:center;gap:11px;margin-bottom:18px}.login-logo{width:45px;height:45px;border-radius:13px;background:#0d281b;color:#fff;display:grid;place-items:center;font-weight:900}.login-brand strong{display:block;font-size:16px}.login-brand span{display:block;color:var(--a-muted);font-size:9px;margin-top:2px}.login-card{background:#fff;border:1px solid var(--a-border);border-radius:18px;box-shadow:0 18px 50px rgba(15,42,28,.09);padding:22px}.login-heading{display:flex;gap:12px;align-items:center;margin-bottom:18px}.login-icon{width:43px;height:43px;border-radius:12px;background:var(--a-green-soft);color:var(--a-green);display:grid;place-items:center;font-size:17px}.login-heading h1{margin:0;font-size:18px}.login-heading p{margin:4px 0 0;color:var(--a-muted);font-size:9px}.login-field{margin-bottom:13px}.login-field label{display:block;font-size:9px;font-weight:700;color:#5b6962;margin-bottom:6px}.login-input-wrap{position:relative}.login-input-wrap>i{position:absolute;left:11px;top:12px;color:#8b9690;font-size:13px}.login-input-wrap .admin-input{padding-left:34px;padding-right:38px}.login-input-wrap button{position:absolute;right:4px;top:4px;width:32px;height:31px;border:0;background:transparent;color:#7c8982;border-radius:7px;cursor:pointer}.login-input-wrap button:hover{background:#f3f7f4}.login-foot{margin-top:15px;padding-top:13px;border-top:1px solid var(--a-border);font-size:8px;line-height:1.5;color:#8a968f;text-align:center}.login-copy{text-align:center;color:#8a968f;font-size:8px;margin-top:13px}

/* =========================================================
   MODERN PHOTO UPLOAD - TITIK 0 / 50 / 100
========================================================= */
.photo-form-section{background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%)}
.photo-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-upload-card{position:relative;border:1px solid #dce7e1;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(15,42,28,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.photo-upload-card:hover{transform:translateY(-2px);border-color:#b9d8c5;box-shadow:0 14px 30px rgba(15,42,28,.10)}
.photo-card-head{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid #edf2ef}
.photo-point-icon{width:36px;height:36px;flex:0 0 36px;border-radius:11px;background:#eaf7ef;color:#0b7a43;display:grid;place-items:center;font-size:15px}
.photo-point-title{min-width:0;flex:1}.photo-point-title strong{display:block;font-size:11px;color:#17211c;font-weight:800}.photo-point-title span{display:block;margin-top:3px;font-size:8px;line-height:1.35;color:#7a8881}
.photo-required-badge{font-size:7px;font-weight:900;letter-spacing:.7px;padding:5px 7px;border-radius:999px;background:#f0f7f3;color:#0b7a43}
.photo-upload-preview{position:relative;height:190px;background:linear-gradient(135deg,#eef5f1,#f8faf9);display:flex;align-items:center;justify-content:center;overflow:hidden}
.photo-upload-preview img{width:100%;height:100%;object-fit:cover;display:block}
.photo-placeholder{text-align:center;color:#718078;padding:18px}.photo-placeholder-icon{width:52px;height:52px;border-radius:15px;background:#fff;border:1px solid #dce7e1;display:grid;place-items:center;margin:0 auto 9px;color:#0b7a43;font-size:22px;box-shadow:0 5px 15px rgba(15,42,28,.05)}
.photo-placeholder strong{display:block;font-size:10px;color:#4f5f57}.photo-placeholder span{display:block;font-size:8px;margin-top:4px;color:#8b9891}
.photo-preview-overlay{position:absolute;left:10px;bottom:10px;padding:6px 9px;border-radius:8px;background:rgba(10,34,23,.78);color:#fff;font-size:8px;font-weight:700;opacity:0;transform:translateY(4px);transition:.18s;pointer-events:none}.photo-upload-preview:hover .photo-preview-overlay{opacity:1;transform:none}
.photo-upload-body{padding:13px 14px 14px}.photo-file-label{height:36px;border:1px dashed #a9cdb6;border-radius:9px;background:#f5fbf7;color:#0b7a43;display:flex;align-items:center;justify-content:center;gap:7px;font-size:9px;font-weight:800;cursor:pointer;transition:.18s}.photo-file-label:hover{background:#eaf7ef;border-color:#0b7a43}.photo-file-label i{font-size:13px}.photo-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.photo-selected-name{margin-top:8px;padding:7px 9px;border-radius:7px;background:#f7f9f8;color:#7a8881;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-upload-body small{display:block;margin-top:8px;color:#87938d;font-size:8px}.photo-upload-body small i{color:#0b7a43}
@media(max-width:900px){.photo-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.photo-upload-grid{grid-template-columns:1fr}.photo-upload-preview{height:210px}.photo-upload-card{border-radius:15px}}
