/* =====================================================================
   index.css — dipisah dari <style> inline index.html (urutan cascade tetap sama)
   ===================================================================== */
*{margin:0;padding:0;box-sizing:border-box;font-family:Arial,sans-serif}html,body{height:100%}body{background:#e8ecf1;padding:clamp(8px,2vw,24px);display:flex;flex-direction:column;align-items:center;min-height:100vh;width:100%}.container{width:100%;max-width:1200px;position:relative}.tabs-nav{display:flex;gap:6px;margin-bottom:16px;width:100%;justify-content:center;flex-wrap:wrap}.tab-btn{flex:1;min-width:60px;padding:10px 12px;border:none;border-radius:10px;background:#fff;color:#444;font-weight:700;font-size:11px;cursor:pointer;border:2px solid #ddd;transition:all .25s;text-align:center;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.06)}.tab-btn.active{background:#e91e63;color:#fff;border-color:#e91e63;box-shadow:0 4px 12px rgba(233,30,99,.35)}.tab-btn:hover:not(.active){border-color:#e91e63;color:#e91e63}.tab-step{cursor:default;pointer-events:none;opacity:.55;display:inline-flex;align-items:center;justify-content:center;background:#f5f5f5}.tab-step.active{opacity:1;background:#fff;border-color:#e91e63}.invoice-paper{background:#fff;width:100%;max-width:1000px;margin:0 auto;padding:clamp(18px,3vw,32px) clamp(20px,4vw,36px);border-radius:12px;box-shadow:0 4px 24px rgba(0,0,0,.08);color:#1a1a2e;position:relative;margin-bottom:20px;display:none;border:1px solid rgba(0,0,0,.04)}.invoice-paper.active-tab{display:block}.watermark-section{width:100%;margin-top:20px;padding-top:16px;border-top:2px solid #1a1a2e;display:flex;justify-content:center;align-items:center;page-break-inside:avoid;break-inside:avoid;page-break-before:auto}.watermark-section img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}.top-bar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;gap:16px}.wt-logo-wrapper{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;width:135px}.wt-logo{width:100%;display:flex;justify-content:center}.logo-box{border:2.5px solid #1a1a2e;transform:skewX(-15deg);padding:6px 18px;display:inline-block;width:fit-content;background:#fafafa;border-radius:2px}.logo-box span{display:block;transform:skewX(15deg);font-family:Georgia,serif;font-weight:800;font-style:italic;font-size:22px;line-height:1.2;color:#1a1a2e;white-space:nowrap}.logo-box img{display:block;max-width:100px;max-height:60px;transform:skewX(15deg);object-fit:contain}.logo-tools{display:flex;flex-direction:column;gap:4px;width:100%}.logo-tool-row{display:flex;align-items:center;gap:5px;background:#f5f7fa;padding:3px 8px;border-radius:6px;border:1px solid #e8ecf1;width:100%}.logo-tool-label{font-size:7.5px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:0.5px;min-width:52px}.logo-tool-row input[type=text]{border:1px solid #dde1e8;border-radius:4px;padding:2px 5px;font-size:9px;width:52px;background:#fff;transition:border .2s}.logo-tool-row input[type=text]:focus{border-color:#e91e63;outline:none}.logo-tool-row input[type=file]{font-size:7px;border:none;padding:1px 0;width:58px;background:transparent}.logo-tool-row input[type=file]::-webkit-file-upload-button{background:#e8ecf1;border:1px solid #dde1e8;border-radius:4px;padding:1px 6px;font-size:7px;cursor:pointer;transition:background .2s}.logo-tool-row input[type=file]::-webkit-file-upload-button:hover{background:#d5dbe3}.company-info{text-align:left;flex:1;min-width:0}.company-info h1,.company-info p{font-size:12px;font-weight:800;text-transform:uppercase;margin-bottom:4px;line-height:1.4;color:#1a1a2e}.company-info p{font-size:9px;color:#666;white-space:pre-line;font-weight:400}.editable input,.editable textarea{border:1px dashed #c5cbd6;border-radius:5px;padding:4px 6px;font-size:inherit;font-family:inherit;color:inherit;background:transparent;outline:none;width:100%;transition:border .25s,background .25s}.editable input:focus,.editable textarea:focus{border-color:#e91e63;background:#fcf8ff;border-style:solid}.editable textarea{resize:vertical;min-height:30px}.readonly input,.readonly textarea{border:none;padding:0;background:transparent;outline:none;width:100%;pointer-events:none;user-select:none}.invoice-title{text-align:center;font-size:16px;font-weight:800;text-decoration:underline;text-transform:uppercase;margin-bottom:20px;letter-spacing:1.5px;color:#1a1a2e}.meta-section{display:grid;grid-template-columns:96px 1fr;gap:3px 6px;font-size:11px;max-width:520px}.meta-section-2{margin-top:12px;margin-bottom:14px}.meta-label{font-weight:700;min-width:0;overflow-wrap:break-word;color:#333}.meta-value{font-weight:600;min-width:0;overflow-wrap:break-word;color:#1a1a2e}.meta-value input{font-weight:600}.red-text{color:#c62828}.blue-text{color:#0d47a1}.underline{text-decoration:underline}table{width:100%;border-collapse:collapse;margin-bottom:14px}th,td{border:1px solid #888;padding:5px 7px;font-size:10px;text-align:left;vertical-align:top}th{font-weight:800;text-transform:uppercase;background:#f7f8fa;text-align:center;color:#1a1a2e}th input{text-align:center;font-weight:800;border:none;background:transparent;padding:0;width:100%}.col-no{width:32px;text-align:center}.col-desc{width:auto}.col-qty{width:48px;text-align:center}.col-price{width:72px;text-align:right}.col-amount{width:72px;text-align:right}td input[type=number]{width:100%;text-align:inherit}td textarea{font-size:9px;resize:vertical;min-height:24px}.btn-controls{display:flex;gap:10px;margin-top:6px;width:100%;flex-wrap:wrap}.add-row-btn,.del-row-btn{flex:1;padding:8px 12px;border-radius:6px;color:#fff;font-weight:700;font-size:11px;cursor:pointer;border:none;transition:background .2s,transform .1s;min-width:80px}.add-row-btn{background:#2e7d32}.add-row-btn:hover{background:#1b5e20}.del-row-btn{background:#c62828}.del-row-btn:hover{background:#b71c1c}.add-row-btn:active,.del-row-btn:active{transform:scale(.97)}.footer-section{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:2px solid #1a1a2e;font-size:12px;gap:12px}.payment-info{font-weight:700;font-size:10px;text-align:left;flex:1;min-width:0;color:#333}.total-section{font-size:16px;font-weight:800;text-align:right;flex-shrink:0;color:#1a1a2e}.signature-section{display:flex;justify-content:space-between;margin-top:48px;margin-bottom:28px;padding:0 5%}.sign-box{flex:0 0 26%;display:flex;flex-direction:column}.sign-space{height:40px}.sign-name{height:16px;line-height:16px;font-size:11px;font-weight:800;text-align:center;margin:0 0 4px 0;white-space:nowrap;color:#1a1a2e}.sign-rule{border-bottom:2px solid #1a1a2e;margin-bottom:6px}.sign-title{font-size:10px;font-weight:600;color:#777;text-align:center;margin:0}.bottom-bar{position:sticky;bottom:0;width:100%;background:#fff;border-radius:14px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px;box-shadow:0 -4px 20px rgba(0,0,0,.12);border:1px solid #e8ecf1;z-index:50;flex-wrap:wrap}.nav-action{flex:1;min-width:60px;padding:10px 14px;border:none;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;color:#fff;transition:all .2s;text-align:center}.nav-action:active{transform:scale(.96)}.nav-action:first-child{margin-left:0}.btn-move{background:#1565c0}.btn-move:hover{background:#0d47a1}.btn-save-crp{background:#2e7d32}.btn-save-crp:hover{background:#1b5e20}.btn-export{background:#c62828}.btn-export:hover{background:#b71c1c}.btn-clear{background:#f9a825;color:#333}.btn-clear:hover{background:#f57f17}.btn-back{background:#6c757d}.btn-back:hover{background:#495057}.btn-cancel{background:#dc3545}.btn-cancel:hover{background:#a71d2a}.help-fab{position:fixed;right:20px;bottom:100px;width:48px;height:48px;border-radius:50%;border:none;background:linear-gradient(135deg,#1a1a2e,#2d2d44);color:#fff;font-size:20px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3);z-index:60;transition:all .3s}.help-fab:hover{transform:scale(1.08);box-shadow:0 8px 28px rgba(0,0,0,.4)}@media print{.help-fab{display:none!important}}.menu-paper{padding-top:clamp(16px,3vw,30px)}.menu-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.menu-title-wrap h2{font-size:20px;font-weight:800;color:#1a1a2e;margin-bottom:4px}.menu-title-wrap p{font-size:12px;color:#666;line-height:1.6;max-width:520px}.menu-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.menu-stat{background:#f7f8fa;border-radius:12px;padding:14px 10px;text-align:center;border:1px solid #e8ecf1;transition:all .2s}.menu-stat:hover{background:#f0f2f5}.menu-stat-num{font-size:16px;font-weight:800;color:#e91e63;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-stat-label{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-top:4px}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px}.menu-card{background:#fff;border-radius:14px;padding:18px 16px;cursor:pointer;transition:all .25s;box-shadow:0 2px 12px rgba(0,0,0,.06);border:1px solid #e8ecf1;border-top:4px solid var(--mc,#e91e63);pointer-events:auto;position:relative;z-index:1}.menu-card *{pointer-events:none}.menu-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,0,0,.12)}.menu-card-icon{font-size:24px;margin-bottom:6px}.menu-card h3{font-size:13px;font-weight:800;text-transform:uppercase;color:#1a1a2e;margin-bottom:4px}.menu-card p{font-size:11px;color:#777;line-height:1.5}.menu-card.c-blue{--mc:#1976d2}.menu-card.c-pink{--mc:#e91e63}.menu-card.c-green{--mc:#2e7d32}.menu-card.c-amber{--mc:#f57f17}.menu-reset-btn{width:100%;padding:11px;border:none;border-radius:8px;background:#fde8e8;color:#b71c1c;font-weight:700;font-size:12px;cursor:pointer;border:1px dashed #ef9a9a;transition:background .2s}.menu-reset-btn:hover{background:#fccccc}@media(max-width:600px){.menu-stats{grid-template-columns:repeat(2,1fr)}}.backup-section{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}.backup-section .app-btn{flex:1;min-width:100px}#wt-toast-container{position:fixed;top:16px;right:16px;z-index:99999;display:flex;flex-direction:column;gap:10px;max-width:340px;pointer-events:none}@media(max-width:480px){#wt-toast-container{left:12px;right:12px;top:12px;max-width:none}}.wt-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;background:rgba(26,26,46,.95);color:#fff;padding:14px 16px;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.35);border-left:4px solid #1976d2;font-size:13px;line-height:1.5;transform:translateX(120%);opacity:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .35s}.wt-toast.show{transform:translateX(0);opacity:1}.wt-toast-success{border-left-color:#2e7d32}.wt-toast-error{border-left-color:#c62828}.wt-toast-icon{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;background:rgba(255,255,255,.1)}.wt-toast-success .wt-toast-icon{color:#4caf50}.wt-toast-error .wt-toast-icon{color:#ef5350}.wt-toast-info .wt-toast-icon{color:#42a5f5}.wt-toast-msg{flex:1;word-break:break-word;padding-top:1px}.wt-toast-close{flex-shrink:0;background:transparent;border:none;color:rgba(255,255,255,.4);font-size:16px;cursor:pointer;line-height:1;padding:0 0 0 6px}.wt-toast-close:hover{color:#fff}.saving-indicator{font-size:10px;color:#999;opacity:0;transition:opacity .3s;display:inline-block;padding:4px 8px}.saving-indicator.show{opacity:1}.saving-indicator.saved{color:#2e7d32}/* PATCH A: modal panduan — fix scroll + z-index tinggi */
.howto-modal-overlay{display:none;position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.6);align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow-y:auto}
.howto-modal-overlay.show{display:flex;animation:howtoFade .2s ease}
@keyframes howtoFade{from{opacity:0}to{opacity:1}}
.howto-modal-box{width:100%;max-width:520px;max-height:88vh;background:#fff;color:#1a1a2e;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.5);text-align:left;display:flex;flex-direction:column;overflow:hidden;animation:howtoPop .25s cubic-bezier(.2,.9,.25,1.1)}
@keyframes howtoPop{from{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}.howto-modal-header{display:flex;justify-content:space-between;align-items:center;background:#f7f8fa;border-bottom:1px solid #e8ecf1;padding:16px 22px;position:sticky;top:0;z-index:1}.howto-modal-header h4{margin:0;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:0.5px;color:#1a1a2e}.howto-modal-header button{background:none;border:none;font-size:24px;font-weight:700;color:#999;cursor:pointer;line-height:1;padding:0 4px;transition:color .2s}.howto-modal-header button:hover{color:#e91e63}.howto-modal-body{padding:20px 22px;font-size:13px;line-height:1.7;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.howto-lead{margin-bottom:14px;color:#333}.howto-modal-body ol{padding-left:22px;margin:0}.howto-modal-body ol li{margin-bottom:10px;color:#333}.howto-modal-body ol li::marker{color:#e91e63;font-weight:700}.howto-modal-body strong{color:#1565c0;font-weight:700}.howto-footer{margin-top:16px;padding-top:14px;border-top:1px dashed #ddd;font-style:italic;color:#888;font-size:12px}@media(max-width:768px){.top-bar{flex-wrap:wrap}.wt-logo-wrapper{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px}.wt-logo{width:auto}.logo-tools{flex-direction:row;flex-wrap:wrap;justify-content:center;width:auto}.logo-tool-row{width:auto}.company-info{width:100%}.meta-section{grid-template-columns:80px 1fr;font-size:10px;max-width:100%}.signature-section{padding:0 2%;gap:12px}.sign-box{flex:0 0 30%}.bottom-bar{flex-wrap:wrap;gap:6px}.nav-action{flex:1 1 40%;min-width:50px;font-size:11px;padding:8px 10px}}@media(max-width:480px){.invoice-paper{padding:12px}.wt-logo-wrapper{flex-direction:column;align-items:center}.logo-tools{flex-direction:column;width:100%}.logo-tool-row{width:100%}.meta-section{grid-template-columns:70px 1fr;font-size:9px}table{font-size:8px}th,td{padding:4px 5px}.col-no{width:26px}.col-qty{width:36px}.col-price{width:56px}.col-amount{width:56px}.nav-action{font-size:10px;padding:6px 8px}.signature-section{flex-direction:column;align-items:center;gap:24px;margin-top:32px}.sign-box{flex:0 0 auto;width:70%}.help-fab{width:40px;height:40px;font-size:17px;right:12px;bottom:85px}}@media print{body{background:#fff;padding:0}.tabs-nav,.bottom-bar,.add-row-btn,.del-row-btn,.logo-tools,.howto-modal-overlay,#wt-toast-container,#wtNotifBadge,#wtOnlineBadge,.help-fab,.app-bottom-nav{display:none!important}.invoice-paper{box-shadow:none;padding:10px 14px;max-width:100%;border:none;border-radius:0}.invoice-paper.active-tab{display:block!important}.sign-space{height:25px}.footer-section{border-top-color:#000}.top-bar{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:flex-start!important;gap:12px!important;flex-wrap:nowrap!important}.wt-logo-wrapper{width:auto!important;flex-shrink:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}.wt-logo{width:auto!important;display:flex!important;justify-content:center!important}.logo-box{transform:skewX(-15deg)!important;padding:3px 12px!important;border-width:2px!important}.logo-box span{transform:skewX(15deg)!important;font-size:16px!important}.logo-box img{transform:skewX(15deg)!important;max-width:70px!important;max-height:40px!important}.company-info{flex:1!important;text-align:left!important;min-width:0!important}.company-info h1{font-size:9px!important;font-weight:800!important;text-transform:uppercase!important;margin-bottom:2px!important}.company-info p{font-size:7.5px!important;font-weight:400!important;white-space:pre-line!important}.invoice-title{font-size:13px!important;margin-bottom:12px!important}.meta-section{grid-template-columns:80px 1fr!important;font-size:9px!important;max-width:100%!important}.meta-section-2{margin-top:8px!important;margin-bottom:10px!important}.invoice-paper table{font-size:8px!important;margin-bottom:10px!important}.invoice-paper th,.invoice-paper td{padding:3px 5px!important}.col-no{width:24px!important}.col-qty{width:36px!important}.col-price{width:56px!important}.col-amount{width:56px!important}.footer-section{font-size:10px!important;padding-top:6px!important;margin-top:6px!important}.payment-info{font-size:8px!important}.total-section{font-size:13px!important}.signature-section{margin-top:30px!important;margin-bottom:16px!important;padding:0 2%!important}.sign-box{flex:0 0 28%!important}.sign-space{height:28px!important}.sign-name{font-size:9px!important;height:12px!important;line-height:12px!important}.sign-title{font-size:8px!important}.watermark-section{margin-top:12px!important;padding-top:10px!important;border-top:1px solid #000!important;page-break-inside:avoid!important;break-inside:avoid!important}.watermark-section img{width:100%!important;max-width:100%!important;display:block!important}}body{padding-bottom:84px}.app-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:500;background:#fff;border-top:1px solid #e8ecf1;box-shadow:0 -4px 20px rgba(0,0,0,.08);display:flex;justify-content:space-around;align-items:stretch;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.app-nav-btn{flex:1;max-width:130px;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;cursor:pointer;color:#888;font-size:10px;font-weight:700;border-radius:10px;transition:all .2s}.app-nav-btn .anb-icon{font-size:19px;line-height:1}.app-nav-btn.active{color:#e91e63;background:#fdeef3}.app-nav-btn:active{transform:scale(.94)}@media print{.app-bottom-nav{display:none!important}}.app-screen{display:none;width:100%;max-width:1000px;margin:0 auto 20px;background:#fff;border-radius:14px;box-shadow:0 4px 24px rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.04);padding:clamp(16px,3vw,28px);color:#1a1a2e}.app-screen.active-screen{display:block}.app-screen-header{margin-bottom:18px}.app-screen-header h2{font-size:19px;font-weight:800;color:#1a1a2e;margin-bottom:4px}.app-screen-header p{font-size:12px;color:#777;line-height:1.5}.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.dash-stat{border-radius:12px;padding:14px 10px;text-align:center;border:1px solid #e8ecf1;background:#f7f8fa}.dash-stat-num{font-size:18px;font-weight:800;color:#1a1a2e}.dash-stat-label{font-size:9.5px;color:#888;text-transform:uppercase;letter-spacing:.4px;margin-top:3px}.dash-stat.st-paid .dash-stat-num{color:#2e7d32}.dash-stat.st-processing .dash-stat-num{color:#f57f17}.dash-stat.st-zero .dash-stat-num{color:#888}@media(max-width:600px){.dash-stats{grid-template-columns:repeat(2,1fr)}}.app-search{display:flex;gap:8px;margin-bottom:14px}.app-search input{flex:1;padding:10px 12px;border:1.5px solid #e0e4ea;border-radius:10px;font-size:13px;outline:none;transition:border .2s}.app-search input:focus{border-color:#e91e63}.app-btn{padding:10px 16px;border:none;border-radius:10px;font-weight:700;font-size:12px;cursor:pointer;color:#fff;background:#e91e63;transition:all .2s;white-space:nowrap}.app-btn:hover{background:#c2185b}.app-btn:active{transform:scale(.96)}.app-btn.secondary{background:#6c757d}.app-btn.secondary:hover{background:#495057}.app-btn.ghost{background:#f0f2f5;color:#444}.app-btn.ghost:hover{background:#e2e6eb}.app-btn.full{width:100%;margin-bottom:14px}.app-btn.green{background:#2e7d32}.app-btn.green:hover{background:#1b5e20}.app-btn.orange{background:#f57f17;color:#fff}.app-btn.orange:hover{background:#e65100}.list-group-label{font-size:11px;font-weight:800;text-transform:uppercase;color:#999;letter-spacing:.5px;margin:16px 0 8px}.list-group-label:first-child{margin-top:0}.list-card{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e8ecf1;border-radius:12px;margin-bottom:8px;cursor:pointer;transition:all .15s;background:#fff}.list-card:hover{border-color:#e91e63;box-shadow:0 2px 10px rgba(233,30,99,.08)}.list-card-main{min-width:0;flex:1}.list-card-title{font-size:13px;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card-sub{font-size:11px;color:#888;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}.list-card-amt{font-size:13px;font-weight:800;color:#1a1a2e}.badge{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:20px;white-space:nowrap}.badge-paid{background:#e4f5e6;color:#2e7d32}.badge-processing{background:#fff3d6;color:#a86500}.badge-zero{background:#eceef1;color:#666}.list-empty{text-align:center;padding:30px 10px;color:#999;font-size:12.5px}.app-form{background:#f7f8fa;border:1px dashed #d5dbe3;border-radius:12px;padding:14px;margin-bottom:16px;display:none}.app-form.show{display:block}.app-form-row{margin-bottom:10px}.app-form-row label{display:block;font-size:10.5px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px}.app-form-row input,.app-form-row textarea{width:100%;padding:9px 11px;border:1.5px solid #e0e4ea;border-radius:8px;font-size:13px;font-family:inherit;outline:none;transition:border .2s}.app-form-row input:focus,.app-form-row textarea:focus{border-color:#e91e63}.app-form-actions{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.app-form-toggle{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.bulk-import-box textarea{width:100%;min-height:90px;padding:9px 11px;border:1.5px solid #e0e4ea;border-radius:8px;font-size:12px;font-family:monospace;outline:none;margin-bottom:8px}.bulk-hint{font-size:10.5px;color:#999;margin-bottom:8px;line-height:1.5}.picker-banner{display:none;align-items:center;justify-content:space-between;gap:10px;background:#1a1a2e;color:#fff;padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:12.5px;font-weight:700}.picker-banner.show{display:flex}.picker-banner button{background:rgba(255,255,255,.15);border:none;color:#fff;padding:6px 12px;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer}.picker-banner button:hover{background:rgba(255,255,255,.28)}.pick-btn{background:#2e7d32!important;color:#fff!important}.row-actions{display:flex;gap:6px;flex-shrink:0}.row-actions button{border:none;border-radius:7px;padding:6px 10px;font-size:10.5px;font-weight:700;cursor:pointer;color:#fff}.row-actions .ra-edit{background:#1565c0}.row-actions .ra-del{background:#c62828}.row-actions .ra-pick{background:#2e7d32}.status-picker{display:flex;align-items:center;gap:10px;background:#f7f8fa;border:1px solid #e8ecf1;border-radius:10px;padding:10px 14px;margin-bottom:16px;flex-wrap:wrap}.status-picker label{font-size:11px;font-weight:800;text-transform:uppercase;color:#666;letter-spacing:.4px}.status-picker select{padding:6px 10px;border-radius:8px;border:1.5px solid #e0e4ea;font-size:12px;font-weight:700;outline:none}.sheet-overlay{display:none;position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.5);align-items:flex-end;justify-content:center}.sheet-overlay.show{display:flex}.sheet-box{width:100%;max-width:480px;background:#fff;border-radius:18px 18px 0 0;padding:10px 14px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.3)}.sheet-title{font-size:13px;font-weight:800;color:#1a1a2e;padding:10px 8px;border-bottom:1px solid #eee;margin-bottom:6px}.sheet-item{width:100%;text-align:left;padding:13px 10px;background:none;border:none;font-size:13.5px;font-weight:600;color:#1a1a2e;cursor:pointer;border-radius:8px;display:flex;align-items:center;gap:10px}.sheet-item:hover{background:#f5f5f7}.sheet-item.danger{color:#c62828}@media(max-width:480px){.dash-stats{grid-template-columns:repeat(2,1fr)}}

.wt-confirm-overlay{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.wt-confirm-overlay.show{display:flex;animation:wtCfFade .2s ease}
@keyframes wtCfFade{from{opacity:0}to{opacity:1}}
.wt-confirm-box{width:100%;max-width:400px;background:#fff;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.4);overflow:hidden;animation:wtCfPop .28s cubic-bezier(.2,.9,.25,1.1)}
@keyframes wtCfPop{from{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.wt-confirm-head{padding:20px 22px 6px;display:flex;align-items:center;gap:10px}
.wt-confirm-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-size:19px;background:#fdecea;color:#c62828}
.wt-confirm-title{font-size:16px;font-weight:800;color:#1a1a2e;line-height:1.2}
.wt-confirm-body{padding:6px 22px 18px;font-size:13.5px;line-height:1.55;color:#555}
.wt-confirm-body b{color:#1a1a2e;font-weight:700}
.wt-confirm-foot{display:flex;gap:8px;padding:0 18px 18px}
.wt-confirm-foot button{flex:1;padding:12px 16px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;border:none;font-family:inherit;transition:all .15s}
.wt-confirm-cancel{background:#f0f2f5;color:#333}
.wt-confirm-cancel:hover{background:#e2e6eb}
.wt-confirm-ok{background:#c62828;color:#fff}
.wt-confirm-ok:hover{background:#a71d2a}
.wt-confirm-ok.info{background:#1565c0}
.wt-confirm-ok.info:hover{background:#0d47a1}


.badge-copy{background:#ede9fe;color:#8b5cf6}
.wt-copy-badge{display:inline-block;background:#8b5cf6;color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.5px;padding:3px 8px;border-radius:20px;text-transform:uppercase;margin-left:6px}


/* =====================================================================
   REDESIGN LAYER — konsisten (tombol / spasi / font / form / modal / badge / tab / card)
   SEMUA di dalam @media screen  →  hasil PRINT tidak berubah sama sekali.
   Tidak menyentuh: blok print, .invoice-paper, .watermark-section,
   .signature-section, .sign-*, .top-bar, .meta-section, table/th/td,
   .app-bottom-nav, .wt-toast, z-index modal (99999).
   Skala:  spasi 4/8/12/16/24/32 · font 10/11/12/13/14/16/20
           radius 10 (tombol+input) / 12 (card) / 16 (modal) / pill (badge)
   ===================================================================== */
@media screen{
:root{
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
  --fs-1:10px;--fs-2:11px;--fs-3:12px;--fs-4:13px;--fs-5:14px;--fs-6:16px;--fs-7:20px;
  --r-ctl:10px;--r-card:12px;--r-modal:16px;--r-pill:999px;
  --ctl-h:40px;--ctl-h-sm:32px;

  --surface:#fff;--surface-2:#f7f8fa;--ink:#1a1a2e;--ink-2:#444;--muted:#666;--faint:#888;
  --line:#e0e4ea;--line-soft:#e8ecf1;

  --brand:#e91e63;--brand-h:#c2185b;--brand-soft:#fdeef3;--brand-ring:rgba(233,30,99,.18);
  --blue:#2563eb;--blue-h:#1d4ed8;
  --ok:#16a34a;--ok-h:#15803d;--ok-soft:#dcfce7;--ok-ink:#15803d;
  --danger:#dc2626;--danger-h:#b91c1c;--danger-soft:#fee2e2;--danger-ink:#b91c1c;
  --warn:#f59e0b;--warn-h:#d97706;--warn-soft:#fef3c7;--warn-ink:#92400e;
  --purple-soft:#ede9fe;--purple-ink:#6d28d9;
  --dark:#1a1a2e;--dark-h:#2d2d44;
  --neutral:#e5e7eb;--neutral-h:#d1d5db;--neutral-ink:#374151;--neutral-soft:#eceef1;
  --shadow-card:0 2px 10px rgba(0,0,0,.06);--shadow-modal:0 24px 64px rgba(0,0,0,.4);
}

/* ---------- BUTTON: satu sistem ---------- */
:where(.app-btn,.nav-action,.add-row-btn,.del-row-btn,.menu-reset-btn,.row-actions button,.picker-banner button,.wt-confirm-foot button){
  --b-bg:var(--brand);--b-bg-h:var(--brand-h);--b-fg:#fff;--b-bd:transparent}
.app-btn,.nav-action,.add-row-btn,.del-row-btn,.menu-reset-btn,.row-actions button,.picker-banner button,.wt-confirm-foot button{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:var(--ctl-h);padding:var(--sp-2) var(--sp-4);
  border:1px solid var(--b-bd);border-radius:var(--r-ctl);
  background:var(--b-bg);color:var(--b-fg);
  font-family:inherit;font-size:var(--fs-4);font-weight:700;line-height:1.2;text-align:center;cursor:pointer;
  transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
:is(.app-btn,.nav-action,.add-row-btn,.del-row-btn,.menu-reset-btn,.row-actions button,.picker-banner button,.wt-confirm-foot button):hover{background:var(--b-bg-h)}
:is(.app-btn,.nav-action,.add-row-btn,.del-row-btn,.menu-reset-btn,.row-actions button,.picker-banner button,.wt-confirm-foot button):active{transform:scale(.97)}
:is(.app-btn,.nav-action,.add-row-btn,.del-row-btn,.menu-reset-btn,.row-actions button,.picker-banner button,.wt-confirm-foot button):focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}
:is(.app-btn,.nav-action,.add-row-btn,.del-row-btn):disabled{opacity:.55;cursor:not-allowed;transform:none}

/* warna varian */
.app-btn.secondary,.btn-back{--b-bg:#475569;--b-bg-h:#334155;--b-fg:#fff}
.app-btn.ghost,.wt-confirm-cancel{--b-bg:var(--neutral);--b-bg-h:var(--neutral-h);--b-fg:var(--neutral-ink)}
.app-btn.green,.btn-save-crp,.add-row-btn,.row-actions .ra-pick,.pick-btn{--b-bg:var(--ok);--b-bg-h:var(--ok-h);--b-fg:#fff}
.app-btn.orange,.btn-clear{--b-bg:var(--warn);--b-bg-h:var(--warn-h);--b-fg:var(--ink)}
.btn-move,.row-actions .ra-edit,.wt-confirm-ok.info{--b-bg:var(--blue);--b-bg-h:var(--blue-h);--b-fg:#fff}
.btn-export,.btn-cancel,.del-row-btn,.row-actions .ra-del,.wt-confirm-ok{--b-bg:var(--danger);--b-bg-h:var(--danger-h);--b-fg:#fff}
.menu-reset-btn{--b-bg:var(--danger-soft);--b-bg-h:#fecaca;--b-fg:var(--danger-ink);--b-bd:#fca5a5;border-style:dashed;width:100%}
.picker-banner button{--b-bg:rgba(255,255,255,.14);--b-bg-h:rgba(255,255,255,.26);--b-bd:rgba(255,255,255,.25);--b-fg:#fff}
.pick-btn{background:var(--ok)!important;color:#fff!important}
.pick-btn:hover{background:var(--ok-h)!important}

/* ukuran */
.row-actions button,.picker-banner button{min-height:var(--ctl-h-sm);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-3)}
.add-row-btn,.del-row-btn{flex:1;min-width:80px}
.app-btn.full{width:100%;margin-bottom:var(--sp-4)}
.wt-confirm-foot button{flex:1}
.row-actions{gap:var(--sp-2)}

@media(max-width:768px){.nav-action{font-size:var(--fs-2);padding:var(--sp-2) var(--sp-3)}}
@media(max-width:480px){.nav-action{padding:var(--sp-2)}}

/* ---------- FORM: input / select / textarea ---------- */
.app-search input,.app-form-row input,.app-form-row textarea,.bulk-import-box textarea,.status-picker select{
  width:100%;min-height:var(--ctl-h);padding:var(--sp-2) var(--sp-3);
  border:1.5px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);
  font-family:inherit;font-size:var(--fs-4);line-height:1.4;outline:none;transition:border-color .15s,box-shadow .15s}
.app-form-row textarea,.bulk-import-box textarea{min-height:72px;line-height:1.5;resize:vertical}
.bulk-import-box textarea{min-height:96px;font-family:monospace;font-size:var(--fs-3);margin-bottom:var(--sp-2)}
.status-picker select{width:auto;min-height:var(--ctl-h-sm);padding:var(--sp-1) var(--sp-3);font-weight:700;cursor:pointer}
:is(.app-search input,.app-form-row input,.app-form-row textarea,.bulk-import-box textarea,.status-picker select):focus{
  border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}
::placeholder{color:#9ca3af}
.app-search{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4)}
.app-form-row{margin-bottom:var(--sp-3)}
.app-form-row label{display:block;font-size:var(--fs-2);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:var(--sp-1)}
.app-form-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap}
.app-form-toggle{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap}
.bulk-hint{font-size:var(--fs-2);color:var(--faint);margin-bottom:var(--sp-2);line-height:1.5}
.status-picker label{font-size:var(--fs-2);font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.4px}

/* ---------- TAB ---------- */
.tabs-nav{gap:var(--sp-2);margin-bottom:var(--sp-4)}
.tab-btn{min-height:var(--ctl-h);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface);color:var(--muted);font-size:var(--fs-3);font-weight:700;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}
.tab-btn:hover:not(.active){border-color:var(--brand);color:var(--brand)}
.tab-btn.active,.tab-step.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:none}
.tab-step{background:var(--surface-2)}

/* ---------- BADGE: satu keluarga ---------- */
.badge,.wt-copy-badge,.wt-by-badge{
  display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-pill);
  font-size:var(--fs-1);font-weight:800;line-height:1.4;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}
.badge-paid{background:var(--ok-soft);color:var(--ok-ink)}
.badge-processing{background:var(--warn-soft);color:var(--warn-ink)}
.badge-zero{background:var(--neutral-soft);color:var(--neutral-ink)}
.badge-copy,.wt-copy-badge{background:var(--purple-soft);color:var(--purple-ink)}
.wt-copy-badge{margin-left:var(--sp-2);vertical-align:middle}
.wt-by-badge{text-transform:none;letter-spacing:.3px;font-weight:700;margin-left:var(--sp-2);vertical-align:middle}

/* ---------- CARD / LIST ---------- */
.app-screen{border-radius:var(--r-modal);padding:clamp(16px,3vw,24px);margin-bottom:var(--sp-4);border:1px solid var(--line-soft);box-shadow:var(--shadow-card)}
.app-screen-header{margin-bottom:var(--sp-4)}
.app-screen-header h2,.menu-title-wrap h2{font-size:var(--fs-7);font-weight:800;color:var(--ink);margin-bottom:var(--sp-1)}
.app-screen-header p,.menu-title-wrap p{font-size:var(--fs-4);color:var(--muted);line-height:1.5}
.menu-header{gap:var(--sp-4);margin-bottom:var(--sp-4)}

.dash-stats,.menu-stats{gap:var(--sp-3);margin-bottom:var(--sp-4)}
.dash-stat,.menu-stat{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-card);padding:var(--sp-3) var(--sp-2);text-align:center}
.dash-stat-num{font-size:var(--fs-7);font-weight:800;color:var(--ink)}
.menu-stat-num{font-size:var(--fs-6);font-weight:800}
.dash-stat-label,.menu-stat-label{font-size:var(--fs-1);color:var(--faint);text-transform:uppercase;letter-spacing:.4px;margin-top:var(--sp-1)}
.dash-stat.st-paid .dash-stat-num{color:var(--ok-ink)}
.dash-stat.st-processing .dash-stat-num{color:var(--warn-ink)}

.menu-grid{gap:var(--sp-3);margin-bottom:var(--sp-4)}
.menu-card{border-radius:var(--r-card);padding:var(--sp-4);box-shadow:var(--shadow-card)}
.menu-card-icon{font-size:var(--fs-7);margin-bottom:var(--sp-2)}
.menu-card h3{font-size:var(--fs-5);font-weight:800;margin-bottom:var(--sp-1)}
.menu-card p{font-size:var(--fs-3);color:var(--muted);line-height:1.5}
.backup-section{gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-4)}

.list-group-label{font-size:var(--fs-2);font-weight:800;text-transform:uppercase;color:var(--faint);letter-spacing:.5px;margin:var(--sp-4) 0 var(--sp-2)}
.list-card{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-soft);border-radius:var(--r-card);margin-bottom:var(--sp-2);box-shadow:var(--shadow-card)}
.list-card:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(233,30,99,.1)}
.list-card-title{font-size:var(--fs-5);font-weight:700}
.list-card-sub{font-size:var(--fs-3);color:var(--faint);margin-top:var(--sp-1)}
.list-card-right{gap:var(--sp-1)}
.list-card-amt{font-size:var(--fs-5);font-weight:800}
.list-empty{padding:var(--sp-6) var(--sp-3);font-size:var(--fs-4);color:var(--faint)}
.app-form{padding:var(--sp-4);border-radius:var(--r-card);margin-bottom:var(--sp-4)}
.status-picker{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-card);margin-bottom:var(--sp-4)}
.picker-banner{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-card);margin-bottom:var(--sp-4);font-size:var(--fs-4)}
.saving-indicator{font-size:var(--fs-2);padding:var(--sp-1) var(--sp-2)}

/* bar tombol bawah wizard */
.bottom-bar{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-card)}

/* tool logo (edit) — font disamakan ke skala */
.logo-tool-label{font-size:var(--fs-1)}
.logo-tool-row input[type=text],.logo-tool-row input[type=file]{font-size:var(--fs-1)}

/* ---------- MODAL: overlay / box / header / body / footer ---------- */
.howto-modal-overlay,.wt-confirm-overlay{padding:var(--sp-4);background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.howto-modal-box,.wt-confirm-box{background:var(--surface);border-radius:var(--r-modal);box-shadow:var(--shadow-modal);overflow:hidden}
.howto-modal-box{max-width:520px}
.wt-confirm-box{max-width:400px}

/* header modal detail (Panduan) = sama dengan modal admin */
.howto-modal-header{padding:var(--sp-3) var(--sp-4);background:var(--dark);border-bottom:none}
.howto-modal-header h4{font-size:var(--fs-5);font-weight:800;color:#fff;letter-spacing:.5px;text-transform:uppercase;margin:0}
.howto-modal-header button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0 var(--sp-1);border-radius:8px;font-size:var(--fs-7);font-weight:400;color:#fff}
.howto-modal-header button:hover{color:#fff;background:rgba(255,255,255,.14)}
.howto-modal-body{padding:var(--sp-4);font-size:var(--fs-4);line-height:1.6}
.howto-lead{margin-bottom:var(--sp-3)}
.howto-modal-body ol{padding-left:var(--sp-5)}
.howto-modal-body ol li{margin-bottom:var(--sp-2)}
.howto-h4{color:var(--brand);font-size:var(--fs-3);text-transform:uppercase;letter-spacing:.5px;margin:var(--sp-4) 0 var(--sp-2)}
.howto-list{padding-left:var(--sp-5);margin:0 0 var(--sp-3)}
.howto-footer{margin-top:var(--sp-4);padding-top:var(--sp-3);text-align:center;font-size:var(--fs-3)}

/* dialog konfirmasi (wtConfirm) */
.wt-confirm-head{padding:var(--sp-5) var(--sp-5) var(--sp-2);gap:var(--sp-3)}
.wt-confirm-icon{width:40px;height:40px;font-size:var(--fs-6);background:var(--danger-soft);color:var(--danger-ink)}
.wt-confirm-title{font-size:var(--fs-6);font-weight:800}
.wt-confirm-body{padding:var(--sp-2) var(--sp-5) var(--sp-4);font-size:var(--fs-4);line-height:1.5;color:var(--muted)}
.wt-confirm-foot{gap:var(--sp-2);padding:0 var(--sp-5) var(--sp-5)}

/* action sheet */
.sheet-box{border-radius:var(--r-modal) var(--r-modal) 0 0;padding:var(--sp-2) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom))}
.sheet-title{font-size:var(--fs-5);font-weight:800;padding:var(--sp-3) var(--sp-2);margin-bottom:var(--sp-1)}
.sheet-item{min-height:44px;padding:var(--sp-3);font-size:var(--fs-5);border-radius:var(--r-ctl);gap:var(--sp-3);font-family:inherit}

/* penyeimbang: aturan lama yang spesifisitasnya lebih tinggi (varian + hover) disamakan ke sistem baru */
.app-btn.secondary,.app-btn.ghost,.app-btn.green,.app-btn.orange,
.row-actions .ra-edit,.row-actions .ra-del,.row-actions .ra-pick{background:var(--b-bg);color:var(--b-fg)}
.app-btn.secondary:hover,.app-btn.ghost:hover,.app-btn.green:hover,.app-btn.orange:hover,
.row-actions .ra-edit:hover,.row-actions .ra-del:hover,.row-actions .ra-pick:hover,
.wt-confirm-ok.info:hover,.picker-banner button:hover{background:var(--b-bg-h)}
}
