:root{--ink:#18251d;--muted:#66736b;--line:#dce5df;--surface:#f7faf8;--panel:#ffffff;--green:#1a4d2e;--green-2:#2f6f45;--gold:#8b6914;--danger:#b42318;--warn:#9a6700;--ok:#067647}*{box-sizing:border-box}body,html{margin:0;min-height:100%;overflow-x:hidden;color:var(--ink);background:var(--surface);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit;min-width:0}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#123522;color:#f7fbf8;padding:24px 18px;display:flex;flex-direction:column;gap:24px}.brand{display:grid;grid-gap:4px;gap:4px;padding:0 6px 12px;border-bottom:1px solid rgba(255,255,255,.16)}.brand strong{font-size:1.25rem}.brand span,.muted{color:var(--muted)}.nav a,.nav button,.sidebar .brand span{color:rgba(255,255,255,.76)}.nav{display:grid;grid-gap:8px;gap:8px}.nav a,.nav button{border:0;background:transparent;border-radius:8px;padding:11px 12px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px}.nav .active,.nav a:hover,.nav button:hover{background:rgba(255,255,255,.12);color:#fff}.main{padding:28px;display:grid;grid-gap:22px;gap:22px;align-content:start;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.page-title h1,.topbar h1{margin:0;font-size:1.85rem;letter-spacing:0}.page-title{display:grid;grid-gap:6px;gap:6px}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.panel{padding:20px}.card{padding:16px}.metric{display:grid;grid-gap:8px;gap:8px}.metric span{color:var(--muted);font-size:.9rem}.metric strong{font-size:1.8rem}.form{display:grid;grid-gap:14px;gap:14px}.field{display:grid;grid-gap:7px;gap:7px}.field label{font-size:.9rem;color:#2c3b32;font-weight:600}.input,.select,.textarea{width:100%;border:1px solid #cbd8d0;border-radius:8px;padding:11px 12px;background:#fff;color:var(--ink)}.textarea{min-height:120px;resize:vertical}.button{border:1px solid transparent;border-radius:8px;padding:10px 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;min-height:42px;white-space:nowrap}.button.primary{background:var(--green);color:#fff}.button.secondary{background:#fff;color:var(--green);border-color:#b9cbbf}.button.warn{color:#fff;background:var(--gold)}.button:disabled{opacity:.55;cursor:not-allowed}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:8px;background:#fff}table{width:100%;border-collapse:collapse;min-width:860px}td,th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#eef5f0;font-size:.82rem;text-transform:uppercase;color:#425249}.badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:.8rem;font-weight:700}.badge.ok{color:var(--ok);background:#dcfae6}.badge.needs_review{color:var(--warn);background:#fef0c7}.badge.failed{color:var(--danger);background:#fee4e2}.dropzone{border:2px dashed #aac0b1;border-radius:8px;padding:28px;text-align:center;background:#fbfdfb}.scanner-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.scanner-card,.scanner-list{display:grid;grid-gap:14px;gap:14px}.scanner-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.scanner-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.scanner-field-span-2{grid-column:span 2}.scanner-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#425249}.scanner-breakdown{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfdfb}.scanner-breakdown summary{cursor:pointer;font-weight:700;color:var(--green)}.scanner-breakdown .textarea{margin-top:12px;min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem}.scanner-notes{display:grid;grid-gap:10px;gap:10px}.scanner-notes .error,.scanner-notes .success{display:flex;align-items:flex-start;gap:8px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#e7f1ea 0,#f7faf8 42%)}.landing-page{min-height:100vh;background:linear-gradient(180deg,rgba(247,250,248,.96),rgba(247,250,248,1)),url(https://images.unsplash.com/photo-1519389950473-47ba0277781c?auto=format&fit=crop&w=1800&q=80);background-size:cover;background-position:50%;padding:22px 24px 48px}.landing-nav{width:min(1120px,100%);margin:0 auto;justify-content:space-between;gap:16px}.landing-brand,.landing-nav{display:flex;align-items:center}.landing-brand{gap:10px;color:var(--green)}.landing-brand div{display:grid;grid-gap:2px;gap:2px}.landing-brand strong{font-size:1.1rem}.landing-brand span{color:var(--muted);font-size:.86rem}.landing-hero{width:min(1120px,100%);min-height:0;margin:0 auto;display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,.9fr);grid-gap:42px;gap:42px;align-items:center;padding:72px 0 44px}.landing-copy{display:grid;grid-gap:16px;gap:16px;align-content:center}.landing-kicker{width:-moz-fit-content;width:fit-content;display:inline-flex;align-items:center;gap:8px;color:var(--green);background:#eef7f0;border:1px solid #cfe3d5;border-radius:999px;padding:8px 12px;font-weight:700}.landing-copy h1{margin:0;max-width:820px;font-size:clamp(2.5rem,4.2vw,4.15rem);line-height:1.08;letter-spacing:0;color:#102319}.landing-copy p{margin:0;max-width:680px;color:#4d5d53;font-size:1.12rem;line-height:1.65}.landing-actions{display:flex;gap:12px;flex-wrap:wrap}.automation-panel{background:rgba(255,255,255,.92);border:1px solid #d6e3da;border-radius:8px;box-shadow:0 28px 90px rgba(18,53,34,.16);overflow:hidden;align-self:center}.automation-top{display:flex;gap:7px;padding:14px 16px;background:#123522}.automation-top span{width:10px;height:10px;border-radius:50%;background:#d8eadf}.automation-flow{display:grid;grid-gap:12px;gap:12px;padding:20px}.automation-flow div{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfdfb;position:relative}.automation-flow div+div:before{content:"";position:absolute;top:-13px;left:28px;width:2px;height:12px;background:var(--gold)}.automation-flow small,.automation-metrics span{display:block;color:var(--muted);font-weight:700;margin-bottom:4px}.automation-flow strong,.automation-metrics strong{color:var(--green)}.automation-metrics{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;padding:0 20px 20px}.automation-metrics div{border:1px solid #ecd89c;background:#fffaf0;border-radius:8px;padding:13px}.landing-features{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.landing-feature{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;display:grid;grid-gap:10px;gap:10px}.landing-feature svg{color:var(--gold)}.landing-feature h2,.landing-feature p{margin:0}.landing-feature h2{font-size:1.05rem}.landing-feature p{color:var(--muted);line-height:1.55}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;box-shadow:0 24px 80px rgba(18,53,34,.12)}.error{color:var(--danger);background:#fff1f0;border:1px solid #ffccc7;border-radius:8px}.error,.success{padding:10px 12px}.success{color:var(--ok);background:#ecfdf3;border:1px solid #abefc6;border-radius:8px}.print-sheet{width:min(215.9mm,100%);min-height:330.2mm;margin:0 auto;background:#fff;color:#121a15;border:4px double var(--gold);padding:18mm;font-family:Times New Roman,serif;position:relative;overflow:hidden}.print-score{color:var(--green);font-size:42px;font-weight:700}.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:16px;gap:16px;align-items:start}.chat-panel{display:grid;grid-gap:14px;gap:14px;min-height:620px}.chat-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px}.chat-header p{margin:4px 0 0}.chat-messages{display:grid;grid-gap:12px;gap:12px;align-content:start;max-height:470px;min-height:360px;overflow-y:auto;padding-right:4px}.chat-message{display:grid;grid-template-columns:32px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.chat-message.user{grid-template-columns:minmax(0,1fr) 32px}.chat-message.user .chat-avatar{grid-column:2;grid-row:1;background:#eef5f0;color:var(--green)}.chat-message.user .chat-bubble{grid-column:1;justify-self:end;background:var(--green);color:#fff}.chat-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fef0c7;color:var(--gold)}.chat-bubble{width:-moz-fit-content;width:fit-content;max-width:min(680px,100%);border-radius:8px;padding:11px 13px;background:#f6f8f7;border:1px solid var(--line);white-space:pre-wrap;line-height:1.5}.chat-input{grid-template-columns:minmax(0,1fr) auto;border-top:1px solid var(--line);padding-top:14px}.chat-input,.chat-suggestions{display:grid;grid-gap:10px;gap:10px}.chat-suggestions .button{justify-content:flex-start;text-align:left;height:auto;white-space:normal;line-height:1.35}@page{size:215.9mm 330.2mm;margin:0}@media print{body{background:#fff}.no-print,.sidebar,.topbar{display:none!important}.shell{display:block}.main{padding:0}}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:20;padding:14px;gap:12px}.brand{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 2px 10px}.brand strong{font-size:1.05rem;white-space:nowrap}.brand span{font-size:.78rem;text-align:right}.nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a,.nav button{flex:0 0 auto;padding:9px 11px;min-height:40px;white-space:nowrap;background:rgba(255,255,255,.06)}.nav form{flex:0 0 auto}.main{padding:18px;gap:16px}.topbar{align-items:flex-start}.page-title h1,.topbar h1{font-size:1.45rem}.topbar>svg{flex:0 0 auto}.panel{padding:16px}.card{padding:14px}.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.scanner-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-input,.chat-layout{grid-template-columns:1fr}.chat-panel{min-height:520px}.chat-messages{max-height:410px;min-height:300px}.landing-hero{grid-template-columns:1fr;min-height:auto;padding:48px 0 28px;gap:26px}.landing-features{margin-top:0;grid-template-columns:1fr}}@media (max-width:640px){.login-page{padding:16px;place-items:stretch;align-content:center}.login-card{padding:20px}.landing-page{padding:16px 16px 32px}.landing-nav{align-items:flex-start}.landing-nav .button{width:auto}.landing-brand span{font-size:.78rem}.landing-copy h1{font-size:2.18rem;line-height:1.12}.landing-copy p{font-size:1rem}.landing-actions .button{width:100%}.automation-metrics{grid-template-columns:1fr}.brand{display:grid;align-items:start}.brand span{text-align:left}.main{padding:14px}.topbar{gap:10px}.page-title h1,.topbar h1{font-size:1.3rem}.page-title .muted{font-size:.9rem}.dropzone{padding:20px 14px}.button{width:100%;white-space:normal}.nav .button,.nav a,.nav button{width:auto}.input,.select,.textarea{min-height:44px}.scanner-fields{grid-template-columns:1fr}.scanner-field-span-2{grid-column:span 1}.table-wrap{border-radius:8px}.table-wrap:before{content:"Geser tabel ke samping";display:block;padding:8px 12px;color:var(--muted);font-size:.78rem;background:#fbfdfb;border-bottom:1px solid var(--line)}table{min-width:760px}td,th{padding:10px 11px}.chat-layout{gap:12px}.chat-panel{min-height:auto}.chat-header{align-items:center}.chat-messages{min-height:320px;max-height:54vh}.chat-message,.chat-message.user{grid-template-columns:28px minmax(0,1fr)}.chat-message.user .chat-avatar{grid-column:1}.chat-message.user .chat-bubble{grid-column:2;justify-self:start}.chat-avatar{width:28px;height:28px}.chat-bubble{max-width:100%;font-size:.92rem}.print-sheet{min-height:auto;padding:14px;border-width:3px}.print-sheet table{min-width:640px}.print-score{font-size:34px}}