:root{--bg:#e9eee6;--panel:#f7f9f5;--ink:#1d2a24;--mute:#5a6a61;--line:#c3cfc0;--steel:#2b3a34;--yellow:#f2c230;--blue:#1f7fd1;--red:#c8432f;--ok:#2f8f5b;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#151c18;--panel:#1e2823;--ink:#e6eee8;--mute:#98a89f;--line:#33443b;--steel:#0e1411}}
:root[data-theme="dark"]{--bg:#151c18;--panel:#1e2823;--ink:#e6eee8;--mute:#98a89f;--line:#33443b;--steel:#0e1411}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 Barlow,system-ui,sans-serif}
main{max-width:720px;margin:0 auto;padding:16px}
h1{font:700 30px/1.05 'Barlow Condensed',Impact,sans-serif;margin:8px 0 4px}
h2{font:700 21px/1.1 'Barlow Condensed',Impact,sans-serif;margin:0 0 8px}
p{margin:0 0 8px}.mute{color:var(--mute);font-size:14px}
.safety{background:var(--yellow);color:#221c00;padding:10px 12px;border-radius:6px;font-size:14px;font-weight:500;margin:12px 0}
.defcats{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.defcats button{padding:6px 11px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;font:600 12.5px Barlow,sans-serif;cursor:pointer}
.defcats button[aria-pressed=true]{background:var(--steel);color:#fff;border-color:var(--steel)}
.defects{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.defects button{text-align:left;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:10px;font:600 15px/1.2 Barlow,sans-serif;cursor:pointer;min-height:64px}
.defects button small{display:block;font-weight:400;color:var(--mute);margin-top:4px;font-size:12.5px}
.defects button[aria-pressed=true]{border-color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue)}
button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px;margin-top:14px}
svg{width:100%;height:auto;display:block}
.zone{fill:var(--panel);stroke:var(--line);stroke-width:1.5}
.zone.hot{fill:var(--yellow);stroke:var(--steel);stroke-width:2.5}
.zone.done{fill:#cbe6d5;stroke:var(--ok)}
.zt{font:600 13px Barlow,sans-serif;fill:var(--ink)}.zone.hot+.zt{fill:#221c00}
.hose{stroke:var(--blue);stroke-width:3;fill:none}

.visual-check{margin:10px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}
.visual-head{padding:8px 10px 6px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;align-items:center}
.visual-head b{font:700 16px 'Barlow Condensed',sans-serif}
.visual-head span{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.visual-svg{padding:8px 10px 4px;background:#f5f6f4}
.visual-svg svg{max-height:230px}
.visual-note{padding:7px 10px 10px;font-size:12.5px;color:var(--mute);border-top:1px solid var(--line)}
.visual-note b{color:var(--ink)}
.visual-check .hl{stroke:#c7352b!important;fill:#f9d9d5!important;stroke-width:3!important}
.visual-check .thread{stroke:#315f73;stroke-width:3;fill:none}
.visual-check .part{stroke:#34434a;stroke-width:2;fill:#d9ddda}
.visual-check .dark{stroke:#34434a;stroke-width:2;fill:#68757a}
.visual-check .thin{stroke:#34434a;stroke-width:1.5;fill:none}
.visual-check .label{font:600 12px Barlow,sans-serif;fill:#243238}
.visual-check .smalllabel{font:500 10px Barlow,sans-serif;fill:#4b5a60}
.visual-check .arrow{stroke:#c7352b;stroke-width:2;fill:none;marker-end:url(#arr)}
@media(max-width:520px){.visual-head{align-items:flex-start}.visual-svg svg{max-height:210px}}

.step{border-left:4px solid var(--blue);padding:4px 0 4px 12px;margin:10px 0}
.step b{font:700 18px 'Barlow Condensed',sans-serif}
.act{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.act button{flex:1;min-width:130px;padding:12px;border-radius:6px;border:0;font:600 15px Barlow,sans-serif;cursor:pointer}
.yes{background:var(--steel);color:#fff}.no{background:transparent;color:var(--ink);border:1px solid var(--ink)!important}
.fix{background:#e2f2e8;border:1px solid var(--ok);border-radius:6px;padding:12px;margin-top:10px;color:#12301f}
.fix ol{margin:6px 0 0;padding-left:20px}.fix li{margin-bottom:4px}
.bad{background:#f8e3de;border:1px solid var(--red);border-radius:6px;padding:12px;margin-top:10px;color:#4a1a10}
.reset{margin-top:10px;background:none;border:0;color:var(--blue);font:600 14px Barlow,sans-serif;cursor:pointer;padding:6px 0}
.prog{display:flex;gap:4px;margin:8px 0 4px}.prog i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.prog i.on{background:var(--blue)}.prog i.ok{background:var(--ok)}.prog i.skip{background:var(--mute)}
.term{background:none;border:0;padding:0;font:inherit;color:var(--blue);border-bottom:1.5px dotted var(--blue);cursor:help}
.zd{background:var(--bg);border-radius:6px;padding:8px 10px;font-size:14px;color:var(--mute);margin-top:6px}
#tip{position:fixed;left:0;right:0;bottom:0;z-index:9;background:var(--steel);color:#fff;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(0,0,0,.35)}
#tip .in{max-width:720px;margin:0 auto}#tip b{font:700 20px 'Barlow Condensed',sans-serif}
#tip button{float:right;background:var(--yellow);color:#221c00;border:0;border-radius:6px;padding:6px 12px;font:600 14px Barlow,sans-serif;cursor:pointer}
details.kamus{margin-top:18px}details.kamus summary{cursor:pointer;font:700 21px 'Barlow Condensed',sans-serif;padding:8px 0}
.gl{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:8px}
.gl b{font:700 17px 'Barlow Condensed',sans-serif}.gl p{margin:2px 0 0;font-size:14.5px}
.photo{position:relative;margin:0 auto 10px;max-width:300px;border-radius:6px;overflow:hidden;line-height:0;border:1px solid var(--line)}
.photo img{width:100%;height:auto;display:block}
.pin{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;border:2px solid #fff;background:rgba(43,58,52,.75);color:#fff;font:700 13px Barlow,sans-serif;padding:0;cursor:pointer;line-height:26px;text-align:center}
.pin.hot{background:var(--yellow);color:#221c00;border-color:#221c00;width:38px;height:38px;line-height:34px;font-size:15px;box-shadow:0 0 0 6px rgba(242,194,48,.45)}
.pin.dim{opacity:.35}
.plist{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;justify-content:center}
.plist span{font-size:12.5px;background:var(--bg);border-radius:4px;padding:2px 6px}
.opts{display:flex;flex-direction:column;gap:8px;margin-top:10px}.opts button{text-align:left;padding:12px;border-radius:6px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 15px Barlow,sans-serif;cursor:pointer}

.analyzer{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px;margin:14px 0}
.analyzer input[type=file]{display:block;margin:8px 0;font-size:13px;color:var(--ink)}
.analyzer img.prev{max-width:220px;border-radius:6px;border:1px solid var(--line);display:block;margin:8px 0}
.analyzer button{background:var(--steel);color:#fff;border:0;border-radius:6px;padding:10px 16px;font:600 15px Barlow,sans-serif;cursor:pointer}
.analyzer button:disabled{opacity:.5;cursor:default}
.gl{position:relative}
.gl .photobox img{width:100%;max-width:220px;border-radius:6px;display:block;margin:4px auto;object-fit:cover}
.gl .pbtn{font:600 12.5px Barlow,sans-serif;background:none;border:1px solid var(--line);border-radius:4px;padding:3px 8px;color:var(--mute);cursor:pointer;margin:4px 2px 0 0}

/* === V2 service workbench === */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font:700 12px Barlow,sans-serif;background:var(--bg);border:1px solid var(--line);color:var(--mute)}
.badge.stop{background:#f8e3de;color:#7a2418;border-color:var(--red)}
.badge.info{background:#e8f1f8;color:#155b91;border-color:var(--blue)}
.badge.ok{background:#e2f2e8;color:#155b31;border-color:var(--ok)}
.toolbar{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}
.toolbar button{padding:10px 8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;font:700 14px Barlow,sans-serif;cursor:pointer}
.toolbar button.active{background:var(--steel);color:#fff;border-color:var(--steel)}
.module{display:none}.module.active{display:block}
.cardgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mini{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:11px}
.mini b{font:700 17px 'Barlow Condensed',sans-serif}
.mini p{font-size:13.5px;color:var(--mute);margin:3px 0 0}
.pmitem{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}
.pmitem:last-child{border-bottom:0}.pmitem input{margin-top:4px;accent-color:var(--blue)}
.tools{display:flex;flex-wrap:wrap;gap:6px}.tools span{padding:5px 8px;background:var(--bg);border-radius:5px;font-size:13px}
.alertbox{padding:11px 12px;border:1px solid var(--red);background:#f8e3de;border-radius:6px;color:#4a1a10;margin:8px 0}
.infobox{padding:11px 12px;border:1px solid var(--blue);background:#e8f1f8;border-radius:6px;color:#153f5d;margin:8px 0}
.resultbox{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:9px}
.result-actions button{padding:10px 6px;border-radius:6px;font:700 13px Barlow,sans-serif;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.result-actions .resolved{border-color:var(--ok);background:#e2f2e8}
.result-actions .still{border-color:var(--blue);background:#e8f1f8}
.result-actions .escalate{border-color:var(--red);background:#f8e3de}
.field{display:grid;gap:4px;margin:8px 0}.field label{font-weight:600;font-size:13px}
.field input,.field select,.field textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);font:14px Barlow,sans-serif}
.field textarea{min-height:72px;resize:vertical}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.smallbtn{padding:8px 10px;border-radius:5px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 13px Barlow,sans-serif;cursor:pointer}
.logtable{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:10px}.logtable th,.logtable td{border-bottom:1px solid var(--line);padding:6px;text-align:left;vertical-align:top}.logtable th{font-weight:700}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0}.kpi div{background:var(--bg);padding:9px;border-radius:5px;text-align:center}.kpi b{display:block;font:700 20px 'Barlow Condensed',sans-serif}
@media(max-width:520px){.cardgrid,.formrow{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr 1fr}.result-actions{grid-template-columns:1fr}.kpi{grid-template-columns:1fr 1fr}}

/* === Neon integration: auth bar, modal login, slot iklan === */
.authbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:4px}
.authbar span{font-size:13px}
.modal{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px}
.modal[hidden]{display:none}
.modal-card{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:18px;max-width:380px;width:100%;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.modal-card>b{font:700 20px 'Barlow Condensed',sans-serif}
.adslot{margin-top:14px;border:1px dashed var(--line);border-radius:6px;min-height:90px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.adslot>span{font-size:13px}
.adslot .adman{position:relative;display:block;width:100%}
.adslot .adman img{display:block;width:100%;height:auto;max-height:120px;object-fit:cover}
.adslot .adtag{position:absolute;top:4px;right:6px;font:600 9px Barlow,sans-serif;background:rgba(0,0,0,.55);color:#fff;padding:1px 6px;border-radius:3px;letter-spacing:.5px}
