:root{--primary:#603618;--primary-2:#7b4b2b;--primary-3:#a06a43;--cream:#f8f3eb;--cream-2:#efe3d4;--ink:#24170f;--muted:#7a6a5f;--line:rgba(96,54,24,.13);--white:#fff;--success:#2e7d54;--warning:#c88b2d;--danger:#b94e4e;--shadow:0 24px 60px rgba(67,37,17,.14);--shadow-sm:0 12px 30px rgba(67,37,17,.09);--radius:22px;--radius-sm:14px;--sidebar:276px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(135deg,#fbf8f2 0%,#f4ebdf 100%);min-height:100vh}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}
.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#4b2712,#603618 55%,#3f210f);padding:22px 16px;z-index:50;overflow:auto;color:#fff;box-shadow:18px 0 50px rgba(48,25,11,.12)}.brand{display:flex;gap:12px;align-items:center;padding:5px 8px 22px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-logo{width:54px;height:54px;border-radius:16px;background:#fff;padding:7px;object-fit:contain}.brand strong{font-size:14px;line-height:1.25;display:block}.brand small{font-size:10px;opacity:.72;display:block;margin-top:3px}.nav-section{margin:22px 9px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.52)}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;color:rgba(255,255,255,.76);margin:4px 0;font-size:13px;transition:.25s}.nav-link svg{width:19px;height:19px;stroke-width:1.8}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.13);color:#fff;transform:translateX(3px)}.nav-link.active{box-shadow:inset 3px 0 #e7c49d}.sidebar-footer{margin-top:25px;padding:14px;border-radius:16px;background:rgba(255,255,255,.08);font-size:11px;line-height:1.6}.main{grid-column:2;min-width:0}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:40;background:rgba(248,243,235,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.topbar-left{display:flex;align-items:center;gap:14px}.menu-btn{display:none;width:43px;height:43px;border:none;border-radius:13px;background:#fff;box-shadow:var(--shadow-sm);align-items:center;justify-content:center;color:var(--primary)}.page-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--primary-3);font-weight:700}.page-title{font-family:Georgia,serif;font-size:24px;margin:2px 0 0}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn{width:43px;height:43px;border-radius:13px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;position:relative}.icon-btn .dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#cf7048;right:9px;top:8px;border:2px solid #fff}.avatar{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--primary-3));color:#fff;display:grid;place-items:center;font-weight:700}.content{padding:30px 32px 48px;max-width:1600px;margin:auto}.hero-panel{position:relative;overflow:hidden;border-radius:30px;padding:30px;background:linear-gradient(135deg,#603618,#7c4b2c);color:#fff;box-shadow:var(--shadow)}.hero-panel:before{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-70px;top:-100px}.hero-panel:after{content:"";position:absolute;width:160px;height:160px;background:rgba(255,255,255,.06);border-radius:44px;right:70px;bottom:-90px;transform:rotate(35deg)}.hero-panel>*{position:relative;z-index:1}.hero-panel h2{font:700 32px/1.15 Georgia,serif;margin:0 0 10px}.hero-panel p{max-width:680px;opacity:.78;line-height:1.7;margin:0}.hero-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.btn{border:none;border-radius:13px;padding:11px 16px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 10px 25px rgba(96,54,24,.22)}.btn-light{background:#fff;color:var(--primary)}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--line)}.btn-soft{background:#f1e5d7;color:var(--primary)}.btn-danger{background:#f6e2e2;color:var(--danger)}.btn-sm{padding:8px 11px;font-size:11px;border-radius:10px}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.stats{margin:20px 0}.stat-card,.card{background:rgba(255,255,255,.86);border:1px solid rgba(96,54,24,.08);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.stat-card{padding:20px;position:relative;overflow:hidden;transition:.25s}.stat-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.stat-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#f1e4d6;color:var(--primary)}.stat-value{font:700 30px Georgia,serif;margin:18px 0 3px}.stat-label{font-size:12px;color:var(--muted)}.trend{position:absolute;right:16px;top:18px;font-size:10px;padding:6px 8px;border-radius:99px;background:#e6f3ec;color:var(--success)}.card{padding:22px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.card-title{font:700 19px Georgia,serif;margin:0}.card-subtitle{font-size:11px;color:var(--muted);margin-top:4px}.table-wrap{overflow:auto;border-radius:15px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}th,td{text-align:left;padding:14px 15px;border-bottom:1px solid #f0e8de;font-size:12px;white-space:nowrap}th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8c796b;background:#faf7f2}tr:last-child td{border-bottom:none}tbody tr:hover{background:#fdfaf6}.person{display:flex;align-items:center;gap:10px}.person-img{width:37px;height:37px;border-radius:12px;background:#ead9c7;display:grid;place-items:center;font-weight:700;color:var(--primary)}.badge{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:700}.badge-success{background:#e7f3ec;color:var(--success)}.badge-warning{background:#fbf0dd;color:#9a671f}.badge-danger{background:#f8e7e7;color:var(--danger)}.badge-neutral{background:#eee8e2;color:#67584d}.progress{height:8px;border-radius:99px;background:#eee5dc;overflow:hidden}.progress span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--primary-3))}.section-gap{margin-top:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field label{display:block;font-size:11px;font-weight:700;margin-bottom:7px;color:#5e4b3e}.field input,.field select,.field textarea,.search-box{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 13px;color:var(--ink);outline:none;transition:.2s}.field input:focus,.field select:focus,.field textarea:focus,.search-box:focus{border-color:var(--primary-3);box-shadow:0 0 0 4px rgba(160,106,67,.1)}.field textarea{min-height:110px;resize:vertical}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.search-box{min-width:240px}.empty-state{text-align:center;padding:45px 20px;color:var(--muted)}
.chart{display:flex;align-items:flex-end;gap:10px;height:190px;padding:12px 4px 0}.bar{flex:1;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,var(--primary-3),var(--primary));position:relative;min-width:22px;animation:grow 1.1s ease both}.bar span{position:absolute;bottom:-25px;width:100%;text-align:center;font-size:10px;color:var(--muted)}@keyframes grow{from{height:0!important}}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#f5ede3}.login-visual{position:relative;background:linear-gradient(155deg,#41210f,#603618 55%,#7d4b2a);padding:54px;color:#fff;overflow:hidden}.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.12)}.login-visual:before{width:500px;height:500px;right:-210px;top:-180px}.login-visual:after{width:280px;height:280px;left:-110px;bottom:-120px}.login-brand{display:flex;align-items:center;gap:14px;position:relative;z-index:2}.login-brand img{width:70px;height:70px;background:#fff;border-radius:20px;padding:8px}.login-copy{position:absolute;left:54px;right:54px;bottom:65px;z-index:2}.login-copy h1{font:700 48px/1.08 Georgia,serif;margin:0 0 18px;max-width:620px}.login-copy p{max-width:560px;line-height:1.8;opacity:.76}.login-form-side{display:grid;place-items:center;padding:40px}.login-card{width:min(460px,100%);background:#fff;border-radius:28px;padding:34px;box-shadow:var(--shadow)}.login-card h2{font:700 30px Georgia,serif;margin:0 0 8px}.login-card .field{margin-top:15px}.password-wrap{position:relative}.password-wrap button{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--muted)}.login-card .btn{width:100%;margin-top:20px;padding:14px}.login-meta{display:flex;justify-content:space-between;margin-top:13px;font-size:11px;color:var(--muted)}
.scanner-page{min-height:100vh;background:radial-gradient(circle at top,#7b4b2c,#32190b 72%);padding:24px;color:#fff}.scanner-shell{max-width:720px;margin:auto}.scanner-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.scanner-brand{display:flex;gap:11px;align-items:center}.scanner-brand img{width:47px;height:47px;background:#fff;border-radius:14px;padding:6px}.scanner-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(15px);border-radius:28px;padding:18px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.camera-frame{aspect-ratio:4/5;max-height:590px;border-radius:22px;background:#160d08;overflow:hidden;position:relative;display:grid;place-items:center}.camera-frame video{width:100%;height:100%;object-fit:cover}.scan-guide{position:absolute;width:68%;aspect-ratio:1;border:2px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scan-guide:before,.scan-guide:after{content:"";position:absolute;left:8%;right:8%;height:2px;background:#eecaa0;box-shadow:0 0 13px #eecaa0}.scan-guide:before{top:50%;animation:scan 2.4s linear infinite}.scan-guide:after{display:none}@keyframes scan{0%{top:10%}50%{top:90%}100%{top:10%}}.scanner-hint{text-align:center;padding:17px 10px 3px;font-size:13px;color:rgba(255,255,255,.75)}.scan-result{margin-top:16px;background:#fff;color:var(--ink);border-radius:20px;padding:17px;display:flex;align-items:center;gap:13px}.scan-result .check{width:48px;height:48px;border-radius:15px;background:#e7f3ec;color:var(--success);display:grid;place-items:center;font-size:24px}.scanner-actions{display:flex;gap:10px;margin-top:13px}.scanner-actions .btn{flex:1}.scan-log{margin-top:17px;background:rgba(255,255,255,.08);border-radius:20px;padding:16px}.scan-log-item{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px}.scan-log-item:last-child{border:none}
.public-page{background:#fff}.public-nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.public-nav .inner{max-width:1200px;margin:auto;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.public-brand{display:flex;gap:11px;align-items:center}.public-brand img{width:49px;height:49px;object-fit:contain}.public-brand strong{font:700 15px Georgia,serif}.public-links{display:flex;gap:26px;font-size:12px;font-weight:600}.public-hero{min-height:760px;padding:140px 22px 80px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(145deg,#fffaf3 0%,#f2e5d5 100%)}.public-hero:before{content:"";position:absolute;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,#cfb08b 0%,rgba(207,176,139,0) 68%);right:-130px;top:30px;opacity:.45}.hero-public-inner{max-width:1200px;width:100%;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:60px;position:relative;z-index:2}.hero-public-inner h1{font:700 64px/1.03 Georgia,serif;margin:15px 0 20px;color:#3b2112}.hero-public-inner p{font-size:17px;line-height:1.8;color:#745f50;max-width:640px}.eyebrow{display:inline-flex;padding:8px 12px;border-radius:99px;background:#ead9c5;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-logo-showcase{height:480px;border-radius:42px;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;position:relative;overflow:hidden}.hero-logo-showcase:before{content:"";position:absolute;inset:20px;border:1px solid var(--line);border-radius:30px}.hero-logo-showcase img{width:78%;position:relative;z-index:1}.public-section{padding:100px 22px}.public-section .inner{max-width:1200px;margin:auto}.section-head{text-align:center;max-width:720px;margin:0 auto 45px}.section-head h2{font:700 42px Georgia,serif;margin:10px 0 13px}.section-head p{color:var(--muted);line-height:1.8}.feature-card{padding:26px;border-radius:24px;background:#fbf7f1;border:1px solid var(--line);transition:.25s}.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-sm)}.feature-card .stat-icon{margin-bottom:18px}.feature-card h3{font:700 20px Georgia,serif}.feature-card p{font-size:13px;line-height:1.7;color:var(--muted)}.public-footer{background:#32190b;color:#fff;padding:60px 22px 30px}.public-footer .inner{max-width:1200px;margin:auto}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:50px}.footer-grid p,.footer-grid a{color:rgba(255,255,255,.67);font-size:12px;line-height:1.8}.copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;font-size:11px;color:rgba(255,255,255,.5)}
.fade-up{opacity:0;transform:translateY(18px);transition:.7s ease}.fade-up.show{opacity:1;transform:none}.modal-backdrop{position:fixed;inset:0;background:rgba(31,17,9,.55);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal-backdrop.open{display:flex}.modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:25px;padding:25px;box-shadow:0 30px 100px rgba(0,0,0,.22)}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.hero-public-inner{grid-template-columns:1fr}.hero-logo-showcase{height:360px}.hero-public-inner h1{font-size:51px}.public-hero{padding-top:120px}}
@media(max-width:820px){:root{--sidebar:260px}.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.3s}.sidebar.open{transform:none}.main{grid-column:auto}.menu-btn{display:flex}.topbar{padding:0 16px;height:72px}.content{padding:20px 16px 40px}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.hero-panel{padding:24px}.hero-panel h2{font-size:27px}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-side{padding:18px}.public-links{display:none}.hero-public-inner h1{font-size:43px}.footer-grid{grid-template-columns:1fr}.public-section{padding:72px 18px}.public-hero{min-height:auto;padding-bottom:65px}.scanner-page{padding:12px}.camera-frame{max-height:none}.search-box{min-width:0;width:100%}.toolbar-left,.toolbar-right{width:100%}.toolbar .btn{flex:1}.page-title{font-size:20px}}
@media(max-width:520px){.grid-4{grid-template-columns:1fr}.top-actions .icon-btn{display:none}.card{padding:17px}.stat-card{padding:17px}.hero-public-inner h1{font-size:36px}.hero-logo-showcase{height:300px}.public-nav .inner{height:68px}.public-brand strong{font-size:12px}.login-card{padding:25px 20px}.scanner-top h1{font-size:16px}.scan-result{align-items:flex-start}.hero-actions .btn{width:100%}}


/* === REVISI TERARAH: mempertahankan desain awal, hanya meningkatkan kualitas === */
svg{display:block}
.icon-svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn .icon-svg{width:16px;height:16px}
.stat-icon .icon-svg{width:22px;height:22px}
.feature-card .stat-icon{box-shadow:inset 0 0 0 1px rgba(96,54,24,.08)}

/* login: proporsi rapi, tidak overflow, checkbox normal */
.login-page{grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr)}
.login-visual{min-height:100vh;padding:44px 48px;display:flex;flex-direction:column;justify-content:space-between}
.login-copy{position:relative;left:auto;right:auto;bottom:auto;margin-top:50px;max-width:650px}
.login-copy h1{font-size:clamp(42px,4.3vw,68px);line-height:1.02;max-width:650px;letter-spacing:-.035em}
.login-copy p{font-size:15px;max-width:600px}
.login-form-side{padding:30px 40px}
.login-card{width:min(470px,100%);padding:32px}
.login-card input[type="checkbox"]{width:16px;height:16px;min-height:0;padding:0;accent-color:var(--primary);vertical-align:middle;margin-right:7px}
.login-meta label{display:flex;align-items:center;gap:6px}
.login-card .btn{margin-top:14px}
.password-wrap input{padding-right:76px}
.password-wrap button{right:10px;padding:8px 11px;border-radius:10px;background:#f3e8dc;color:var(--primary);font-weight:700}

/* landing page: tetap gaya awal, lebih premium */
.public-nav{box-shadow:0 8px 25px rgba(65,35,17,.06)}
.public-nav .inner{max-width:1240px}
.public-hero{min-height:790px;background:
 radial-gradient(circle at 85% 18%,rgba(154,104,66,.16),transparent 30%),
 linear-gradient(145deg,#fffaf4 0%,#f0e0cf 100%)}
.public-hero:after{content:"";position:absolute;inset:auto auto -190px -120px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(96,54,24,.08)}
.hero-public-inner{max-width:1240px;gap:70px}
.hero-public-inner h1{font-size:clamp(52px,5.1vw,74px);letter-spacing:-.035em}
.hero-logo-showcase{height:500px;box-shadow:0 35px 85px rgba(77,42,18,.16)}
.hero-logo-showcase:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:rgba(96,54,24,.05);right:-35px;bottom:-55px}
.public-section .inner{max-width:1240px}
.public-section{position:relative}
.public-section.alt{background:linear-gradient(180deg,#fbf7f2,#f5eadf)}
.section-head h2{letter-spacing:-.025em}
.feature-card{background:rgba(255,255,255,.86);box-shadow:0 12px 30px rgba(67,37,17,.055)}
.feature-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(67,37,17,.11)}
.public-stat-row{max-width:1240px;margin:-42px auto 0;padding:0 22px;position:relative;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.public-stat{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:14px}
.public-stat .stat-icon{flex:0 0 46px}.public-stat strong{display:block;font:700 24px Georgia,serif;color:var(--primary)}.public-stat span{font-size:11px;color:var(--muted)}
.public-split{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}
.public-panel{background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow-sm)}
.public-list{display:grid;gap:12px;margin-top:20px}.public-list-item{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;background:#faf6f1;border:1px solid rgba(96,54,24,.07)}
.public-list-item .stat-icon{flex:0 0 42px}.public-list-item strong{display:block;font-size:13px;margin-bottom:4px}.public-list-item p{font-size:12px;margin:0;color:var(--muted);line-height:1.6}
.public-cta{max-width:1240px;margin:auto;border-radius:32px;padding:42px;background:linear-gradient(135deg,#4c2813,#603618 60%,#7c4b2b);color:#fff;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:24px;overflow:hidden;position:relative}
.public-cta:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;border:1px solid rgba(255,255,255,.12);right:-70px;top:-90px}.public-cta>*{position:relative;z-index:1}.public-cta h2{font:700 36px Georgia,serif;margin:0 0 10px}.public-cta p{color:rgba(255,255,255,.72);max-width:680px;line-height:1.7;margin:0}

/* semua kontrol mobile lebih rapi */
@media(max-width:1100px){.public-stat-row{grid-template-columns:repeat(2,1fr)}.public-split{grid-template-columns:1fr}.public-cta{align-items:flex-start;flex-direction:column}}
@media(max-width:820px){.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-form-side{min-height:100vh;padding:18px}.public-stat-row{margin:18px auto 0}.public-hero{padding-top:110px}.hero-logo-showcase{height:360px}}
@media(max-width:520px){.public-stat-row{grid-template-columns:1fr;padding:0 14px}.public-cta{padding:28px 22px;border-radius:24px}.public-cta h2{font-size:29px}.login-card{padding:26px 20px}.login-form-side{padding:14px}}

/* Revisi dashboard: beri ruang aman di bawah grafik dan label hari */
.chart{
  height:220px;
  padding:12px 4px 36px;
  overflow:visible;
}
.chart .bar span{
  bottom:-27px;
  line-height:1;
}
@media(max-width:520px){
  .chart{
    height:205px;
    padding-bottom:34px;
    gap:7px;
  }
}
