:root{--ink:#1C1917;--ink-soft:#57534E;--ink-faint:#A8A29E;--paper:#FAF7F2;--line:#E7E0D4;--line-strong:#D6CCBA;--work:#C2410C;--work-deep:#9A3412;--work-tint:#FDF0E7;--ok:#3F6212;--ok-deep:#365314;--ok-tint:#F1F6E3;--warn:#A16207;--warn-tint:#FEF6E0;--danger:#B91C1C;--danger-tint:#FCEDEA;--font-display:"Plus Jakarta Sans", sans-serif;--font-body:"Inter", sans-serif}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{height:100%}body{font-family:var(--font-body);background:var(--paper);min-height:100%;color:var(--ink);display:flex;justify-content:center;-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{max-width:100%;width:100%;min-height:100vh;min-height:100dvh;background:var(--paper);display:flex;flex-direction:column;position:relative}.app-header{position:sticky;top:0;z-index:40;background:var(--paper);padding:14px 16px 12px;border-bottom:1.5px solid var(--ink)}@media(min-width:768px){.app-header{padding:18px 32px 14px}}.app-header .row{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.brand .mark{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--work);font-size:19px}.brand .text{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.02em;line-height:1.1}.brand .text small{display:block;font-family:var(--font-body);font-weight:600;font-size:11px;color:var(--ink-soft);letter-spacing:.01em;margin-top:2px}.status-text-tag{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-soft)}.status-text-tag .dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint)}.status-text-tag .dot.live{background:var(--ok)}.status-text-tag .dot.warn{background:var(--warn)}.app-body{flex:1;overflow-y:auto;padding:8px 16px 140px}@media(min-width:768px){.app-body{padding:12px 32px 140px}}.empty-state{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.empty-state .ring{width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--work);font-size:34px}.empty-state .title{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}.empty-state .sub{font-size:13px;color:var(--ink-soft);max-width:360px;line-height:1.5}.global-summary{display:none;background:#fff;border-radius:14px;padding:16px 18px;margin-bottom:16px;border:1.5px solid var(--ink)}.global-summary.has-items{display:block}.global-summary .summary-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}.global-summary .summary-row .label{font-size:12px;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.global-summary .summary-row .total{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--work-deep)}.global-summary .summary-details{display:flex;gap:16px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line);flex-wrap:wrap}.global-summary .summary-details .item{font-size:12px;color:var(--ink-soft)}.global-summary .summary-details .item strong{color:var(--ink);font-weight:700}.batch-container{display:none}.batch-container.has-items{display:block}.batch-item{background:#fff;border-radius:14px;padding:14px 16px;margin-bottom:12px;border:1.5px solid var(--line);transition:all .2s ease}.batch-item .batch-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.batch-item .batch-info{flex:1}.batch-item .batch-info .label{font-weight:700;font-size:13px;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.batch-item .batch-info .label .badge{font-size:10px;font-weight:600;background:var(--work-tint);color:var(--work-deep);padding:2px 10px;border-radius:12px}.batch-item .batch-info .detail{font-size:11.5px;color:var(--ink-soft);margin-top:3px;display:flex;gap:12px;flex-wrap:wrap}.batch-item .batch-actions{display:flex;gap:4px;flex-shrink:0}.batch-item .batch-actions button{background:none;border:none;width:30px;height:30px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-soft);transition:all .15s ease}.batch-item .batch-actions button:hover{background:var(--line)}.batch-item .batch-actions .btn-edit{color:var(--work)}.batch-item .batch-actions .btn-remove{color:var(--danger)}.batch-item .batch-workers{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.batch-item .batch-workers .w-item{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:3px 0}.batch-item .batch-workers .w-item .w-rank{font-weight:700;color:var(--ink-faint);font-size:11px;width:20px}.batch-item .batch-workers .w-item .w-name{font-weight:600;flex:1}.batch-item .batch-workers .w-item .w-price{color:var(--ink-soft);font-weight:500;font-size:12px}.batch-item .batch-subtotal{text-align:right;font-weight:700;font-size:12.5px;padding-top:6px;margin-top:6px;border-top:1px solid var(--line);color:var(--work-deep)}.add-batch-section{display:none;margin-top:8px}.add-batch-section.has-items{display:block}.btn-add-batch{width:100%;padding:14px;border:2px dashed var(--line-strong);border-radius:14px;background:transparent;color:var(--ink-soft);font-weight:700;font-size:14px;font-family:var(--font-body);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:8px}.btn-add-batch:hover{border-color:var(--work);color:var(--work);background:var(--work-tint)}.popup-full{position:fixed;inset:0;background:var(--paper);z-index:200;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .38s cubic-bezier(.22,1,.36,1)}.popup-full.active{transform:translateY(0)}.popup-full-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1.5px solid var(--ink);flex-shrink:0;padding-top:calc(16px + env(safe-area-inset-top))}.popup-full-head .ptitle{font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:-.01em}.popup-full-head .pclose{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:18px;color:var(--ink);cursor:pointer}.popup-full-scroll{flex:1;overflow-y:auto;padding:16px 20px calc(100px + env(safe-area-inset-bottom)) 20px}.filter-group{margin-bottom:20px}.filter-group .flabel{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:8px;display:flex;align-items:center;gap:7px;text-transform:uppercase;letter-spacing:.03em}.filter-group .flabel i{color:var(--work);font-size:12px;width:14px}.filter-group .flabel .req{color:var(--danger)}.filter-group .fhint{font-size:11px;color:var(--ink-faint);font-weight:500;margin-left:auto;text-transform:none;letter-spacing:0}.date-rail{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 8px;-webkit-overflow-scrolling:touch}.date-rail::-webkit-scrollbar{display:none}.date-pill{flex-shrink:0;min-width:54px;padding:10px 0 9px;border-radius:12px;border:1.5px solid var(--line);background:#fff;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:all .15s ease}.date-pill:hover{background:var(--paper)}.date-pill .dname{font-size:9px;font-weight:600;color:var(--ink-faint);text-transform:uppercase}.date-pill .dnum{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--ink);line-height:1.2}.date-pill .dmon{font-size:9px;font-weight:600;color:var(--ink-faint)}.date-pill.active{border-color:var(--work);background:var(--work-tint)}.date-pill.active .dname,.date-pill.active .dnum,.date-pill.active .dmon{color:var(--work-deep)}.date-pill.today .dname:after{content:" •";color:var(--ok-deep)}.category-rail{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 8px;-webkit-overflow-scrolling:touch}.category-rail::-webkit-scrollbar{display:none}.category-pill{flex-shrink:0;padding:8px 16px;border-radius:20px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s ease;font-family:var(--font-body);white-space:nowrap}.category-pill:hover{background:var(--paper)}.category-pill.active{border-color:var(--work);background:var(--work-tint);color:var(--work-deep)}.skill-sub-rail{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 8px;-webkit-overflow-scrolling:touch;margin-top:8px}.skill-sub-rail::-webkit-scrollbar{display:none}.skill-sub-pill{flex-shrink:0;padding:8px 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .15s ease;font-family:var(--font-body);white-space:nowrap}.skill-sub-pill:hover{background:var(--paper)}.skill-sub-pill.active{border-color:var(--work);background:var(--work-tint);color:var(--work-deep)}.duration-modes{display:flex;flex-direction:column;gap:6px}.dmode{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;transition:all .15s ease}.dmode:hover{background:var(--paper)}.dmode.active{border-color:var(--work);background:var(--work-tint)}.dmode .left{display:flex;align-items:center;gap:10px}.dmode .left i{font-size:14px;color:var(--ink-faint);width:16px}.dmode.active .left i{color:var(--work-deep)}.dmode .left .ltext .lt1{font-weight:700;font-size:13px;color:var(--ink)}.dmode .left .ltext .lt2{font-size:10.5px;color:var(--ink-faint);margin-top:1px}.dmode .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center}.dmode .radio .fill{width:9px;height:9px;border-radius:50%;background:var(--work);opacity:0;transform:scale(.5);transition:all .15s ease}.dmode.active .radio{border-color:var(--work)}.dmode.active .radio .fill{opacity:1;transform:scale(1)}.hour-rail{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 8px;-webkit-overflow-scrolling:touch}.hour-rail::-webkit-scrollbar{display:none}.hour-pill{flex-shrink:0;min-width:50px;padding:10px 0;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink);text-align:center;cursor:pointer;transition:all .15s ease}.hour-pill:hover{background:var(--paper)}.hour-pill.active{border-color:var(--work);background:var(--work-tint);color:var(--work-deep)}.hour-pill .label{font-size:9px;font-weight:600;color:var(--ink-faint);display:block;margin-top:2px}.jumlah-rail{display:flex;gap:8px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 8px;-webkit-overflow-scrolling:touch}.jumlah-rail::-webkit-scrollbar{display:none}.jumlah-pill{flex-shrink:0;min-width:44px;padding:10px 0;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--ink);text-align:center;cursor:pointer;transition:all .15s ease}.jumlah-pill:hover{background:var(--paper)}.jumlah-pill.active{border-color:var(--work);background:var(--work-tint);color:var(--work-deep)}.selected-info{font-size:11px;color:var(--ink-soft);margin-top:6px;display:flex;gap:16px;flex-wrap:wrap}.selected-info .item{display:flex;align-items:center;gap:4px}.selected-info .item strong{color:var(--work-deep);font-weight:700}.fab-stack{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:70}.fab-stack-inner{max-width:100%;width:100%;position:relative;padding:0 16px}@media(min-width:768px){.fab-stack-inner{padding:0 32px}}.fab{position:absolute;right:16px;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;pointer-events:all;display:flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 10px 28px #1c19172e,0 3px 8px #1c19171a;transition:transform .18s cubic-bezier(.34,1.56,.64,1),bottom .25s ease,opacity .2s ease}@media(min-width:768px){.fab{right:32px}}.fab:active{transform:scale(.9)}.fab-primary{bottom:24px;background:var(--work);color:#fff}.fab-primary.ready-state{background:var(--ok-deep)}.fab-secondary{bottom:94px;width:48px;height:48px;background:#fff;color:var(--ink-soft);border:1.5px solid var(--line-strong);font-size:16px;box-shadow:0 6px 18px #1c19171f;opacity:0;transform:translateY(8px) scale(.9);pointer-events:none}.fab-secondary.show{opacity:1;transform:translateY(0) scale(1);pointer-events:all}.fab-count{position:absolute;top:-4px;right:-4px;background:var(--ink);color:#fff;font-size:10px;font-weight:800;min-width:20px;height:20px;border-radius:10px;display:none;align-items:center;justify-content:center;border:2px solid var(--paper);padding:0 4px}.fab-price-tag{position:absolute;right:84px;bottom:24px;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:100px;font-family:var(--font-display);font-weight:800;font-size:13px;display:none;align-items:center;white-space:nowrap;box-shadow:0 6px 18px #1c191726}.fab-price-tag.show{display:flex}@media(max-width:480px){.fab-price-tag{font-size:11px;padding:8px 12px;right:76px}}.popup-fab-stack{position:fixed;right:20px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:250;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:14px}.popup-fab{width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 10px 28px #1c19172e,0 3px 8px #1c19171a;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.popup-fab:active{transform:scale(.9)}.popup-fab-go{background:var(--ok-deep);color:#fff}.popup-fab-cancel{width:48px;height:48px;background:#fff;color:var(--ink-soft);border:1.5px solid var(--line-strong);font-size:16px;box-shadow:0 6px 18px #1c19171f}.toast-container{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:9999;width:calc(100% - 36px);max-width:440px;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--ink);color:var(--paper);padding:13px 16px;border-radius:13px;box-shadow:0 10px 30px #1c191733;display:flex;align-items:center;gap:11px;animation:toastIn .35s cubic-bezier(.22,1,.36,1);pointer-events:all}.toast.success{background:var(--ok-deep)}.toast.error{background:var(--danger)}.toast.warning{background:var(--warn)}.toast .icon{font-size:17px;flex-shrink:0}.toast .msg{flex:1;font-size:13px;font-weight:600;line-height:1.4}.toast .close{cursor:pointer;opacity:.55;font-size:14px;padding:2px}@keyframes toastIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:riseIn .35s cubic-bezier(.22,1,.36,1)}.success-overlay{position:fixed;inset:0;background:#1c19178c;z-index:300;display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}.success-overlay.active{display:flex}.success-card{background:#fff;border-radius:22px;padding:32px 26px 26px;max-width:360px;width:100%;text-align:center;animation:riseIn .4s cubic-bezier(.22,1,.36,1)}.success-card .check-circle{width:68px;height:68px;border-radius:50%;background:var(--ok-tint);color:var(--ok-deep);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 18px}.success-card .stitle{font-family:var(--font-display);font-size:19px;font-weight:800;margin-bottom:6px}.success-card .ssub{font-size:13.5px;color:var(--ink-soft);line-height:1.5;margin-bottom:20px}.success-card .order-id{background:var(--paper);border-radius:11px;padding:11px;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--work-deep);margin-bottom:20px}.success-card .btn-close{width:100%;padding:14px;border-radius:12px;border:none;background:var(--ink);color:var(--paper);font-weight:700;font-size:14px;cursor:pointer;font-family:var(--font-body);transition:all .15s ease}.success-card .btn-close:hover{background:var(--work)}.success-card .btn-done{width:100%;padding:13px;border-radius:12px;border:none;background:var(--ink);color:var(--paper);font-weight:700;font-size:14px;cursor:pointer;font-family:var(--font-body);transition:all .15s ease}.success-card .btn-done:hover{background:var(--work)}.jumlah-stepper{display:flex;align-items:center;gap:12px;background:var(--paper);border:1.5px solid var(--line);border-radius:14px;padding:6px 10px;width:fit-content;margin:8px 0}.step-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--work-tint);color:var(--work-deep);font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .12s;flex-shrink:0}.step-btn:active{background:var(--work);color:#fff}.step-input{width:60px;text-align:center;font-size:22px;font-weight:800;font-family:var(--font-display);border:none;background:transparent;color:var(--ink);outline:none;-moz-appearance:textfield}.step-input::-webkit-outer-spin-button,.step-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.success-card .btn-wa{width:100%;padding:14px;border-radius:12px;border:none;background:#25d366;color:#fff;font-weight:700;font-size:14px;cursor:pointer;font-family:var(--font-body);margin-bottom:10px;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease}.success-card .btn-wa:hover{background:#1ebe5d}
