@media (max-width:767px){input,select,textarea{font-size:16px!important}}
.tp-wrap{max-width:72rem;margin:0 auto;padding:3rem 1.25rem 4rem}
.tp-head{text-align:center;margin:0 auto 2.25rem;max-width:40rem}
.tp-lotus{width:44px;height:26px;margin:0 auto .5rem;display:block;color:#8a7a5c}
.tp-title{font-family:Cormorant Garamond,serif;font-weight:600;font-size:2rem;line-height:1.1;letter-spacing:.08em;text-transform:uppercase;color:#1a1d20}
.tp-desc{margin-top:.6rem;font-size:.9rem;color:#71717a;white-space:pre-line}
.tp-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.tp-cat{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:1rem;background:#e5e2da;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tp-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.tp-cat:hover img{transform:scale(1.05)}
.tp-cat:focus-visible{outline:2px solid #1a1d20;outline-offset:3px}
.tp-cat-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.1) 55%,transparent)}
.tp-cat-body{position:absolute;left:0;right:0;bottom:0;padding:.9rem 1rem;color:#fff;display:flex;flex-direction:column;gap:.15rem}
.tp-cat-name{font-family:Cormorant Garamond,serif;font-weight:600;font-size:1.1rem;line-height:1.15;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:break-word;hyphens:auto}
.tp-pay{margin-top:3rem}
.tp-cat-meta{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.tp-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2.5rem}
.tp-links a{min-width:10rem}
.tp-back{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#52525b;padding:.4rem .2rem;margin-bottom:1.25rem}
.tp-back:hover{color:#1a1d20}
@media (min-width:640px){
.tp-cat-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,15rem));justify-content:center;gap:1rem}
.tp-cat-name{font-size:1.35rem;letter-spacing:.04em}
.tp-title{font-size:2.6rem}
}
@media (min-width:1024px){.tp-wrap{padding-top:4rem}}

/* ---- Category detail (brochure layouts) ---- */
.tp-detail{max-width:56rem;margin:0 auto;color:#1a1d20}
.tp-dhead{text-align:center;margin-bottom:clamp(1.75rem,6vw,3rem)}
.tp-dhead .tp-lotus{width:clamp(30px,7vw,46px);height:auto;margin:0 auto clamp(.4rem,1.5vw,.75rem)}
.tp-dtitle{font-family:Cormorant Garamond,serif;font-weight:500;font-size:clamp(2rem,8.5vw,3.75rem);line-height:1.02;letter-spacing:.03em;text-transform:uppercase;overflow-wrap:break-word}
.tp-ddesc{margin-top:.75rem;font-size:clamp(.8rem,2.4vw,.95rem);color:#71717a;white-space:pre-line}
.tp-pks{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.75rem,5vw,3.5rem) clamp(.75rem,4vw,3rem);align-items:start}
.tp-n-2,.tp-n-3{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){.tp-n-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tp-pk{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.tp-pk-badge{display:inline-block;margin-bottom:.5rem;border-radius:999px;background:#1a1d20;color:#fff;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .6rem}
.tp-pk-name{font-weight:800;font-size:clamp(.95rem,3.8vw,1.6rem);line-height:1.15;letter-spacing:.07em;text-transform:uppercase;overflow-wrap:break-word}
.tp-pk-name span{display:inline-block}
.tp-pk-desc{margin-top:.45rem;font-size:clamp(.72rem,2.2vw,.88rem);color:#71717a;white-space:pre-line}
.tp-pk-list{margin-top:clamp(.75rem,2.6vw,1.25rem);display:flex;flex-direction:column;font-size:clamp(.68rem,2.5vw,.95rem);line-height:1.75;letter-spacing:.12em;text-transform:uppercase;color:#52525b;overflow-wrap:break-word}
.tp-pk-price{margin-top:clamp(.75rem,3vw,1.4rem);display:flex;flex-direction:column;align-items:center;line-height:1.1}
.tp-pk-old{font-weight:700;font-size:clamp(.8rem,2.8vw,1.15rem);letter-spacing:.06em;color:#8b8b93;text-decoration:line-through}
.tp-pk-now{font-weight:800;font-size:clamp(1.25rem,5vw,2.1rem);letter-spacing:.06em}
.tp-secs{margin:clamp(2rem,6vw,3rem) auto 0;max-width:34rem;padding-top:clamp(1.5rem,5vw,2.25rem);border-top:1px solid #c9c5bb;display:flex;flex-direction:column;gap:2rem}
.tp-sec-title{font-weight:800;font-size:clamp(1.05rem,4vw,1.7rem);line-height:1.15;letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-bottom:clamp(.75rem,3vw,1.25rem)}
.tp-sec-title span{display:inline-block}
.tp-sec-rows{display:grid;grid-template-columns:auto auto;justify-content:center;column-gap:clamp(1.5rem,7vw,3.5rem);row-gap:clamp(.45rem,1.6vw,.7rem)}
.tp-sec-row{display:contents;font-size:clamp(.68rem,2.5vw,.95rem);letter-spacing:.1em;text-transform:uppercase;color:#52525b}
.tp-sec-row span{font-size:clamp(.68rem,2.5vw,.95rem);min-width:0;overflow-wrap:break-word}
.tp-sec-val{text-align:right;white-space:nowrap}
.tp-strip{margin:clamp(2rem,6vw,3rem) -1.25rem 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.3rem,1.2vw,.6rem)}
.tp-strip img{width:100%;aspect-ratio:1/1.06;object-fit:cover}
.tp-strip-scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.tp-strip-scroll img{flex:0 0 calc((100% - 2 * clamp(.3rem,1.2vw,.6rem)) / 3);scroll-snap-align:start}
.tp-note{margin:clamp(1.75rem,5vw,2.5rem) auto 0;max-width:30rem;text-align:center;font-family:Cormorant Garamond,serif;font-size:clamp(.9rem,2.8vw,1.1rem);color:#52525b;white-space:pre-line}
.tp-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1rem,5vw,3.5rem);align-items:start}
.tp-detail.tp-nophoto .tp-cols{grid-template-columns:minmax(0,1fr)}
.tp-photos{display:flex;flex-direction:column;gap:clamp(1.75rem,8vw,4.5rem)}
.tp-photos img{width:100%;aspect-ratio:1;object-fit:cover}
.tp-text{min-width:0}
.tp-L-kiri .tp-dtitle,.tp-L-strip .tp-dtitle{font-size:clamp(1.45rem,6.2vw,3rem)}
/* Teks kiri, foto kanan */
.tp-L-kanan .tp-dhead,.tp-L-kiri .tp-dhead{text-align:left}
.tp-L-kanan .tp-dhead .tp-lotus,.tp-L-kiri .tp-dhead .tp-lotus{margin-left:0}
.tp-L-kanan .tp-pks,.tp-L-kiri .tp-pks,.tp-L-strip .tp-pks{grid-template-columns:minmax(0,1fr)}
.tp-L-kanan .tp-pk,.tp-L-kiri .tp-pk{align-items:flex-start;text-align:left}
.tp-L-kanan .tp-pk-price,.tp-L-kiri .tp-pk-price{align-items:flex-start}
.tp-L-kanan .tp-pk-name{font-size:clamp(.85rem,3.2vw,1.3rem)}
.tp-L-kanan .tp-pk-name span,.tp-L-kanan .tp-sec-title span{border-bottom:1.5px solid currentColor;padding:0 1.25rem .3rem 0}
.tp-L-kanan .tp-photos{padding-top:clamp(1.5rem,5vw,2.5rem)}
.tp-L-kanan .tp-secs,.tp-L-kiri .tp-secs{margin:clamp(1.75rem,5vw,2.5rem) 0 0;max-width:none;border-top:0;padding-top:0}
.tp-L-kiri .tp-secs{border-top:1px solid #c9c5bb;padding-top:clamp(1.5rem,5vw,2.25rem);width:85%}
.tp-L-kanan .tp-sec-title,.tp-L-kiri .tp-sec-title{text-align:left;font-size:clamp(.85rem,3.2vw,1.3rem)}
.tp-L-kanan .tp-sec-rows,.tp-L-kiri .tp-sec-rows{grid-template-columns:minmax(0,1fr) auto;justify-content:stretch;column-gap:1rem}
.tp-L-kanan .tp-note,.tp-L-kiri .tp-note{text-align:left;margin-left:0}
/* Foto kiri, teks kanan */
.tp-L-kiri .tp-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.tp-L-kiri .tp-pk+.tp-pk{border-top:1px solid #c9c5bb;padding-top:clamp(1.5rem,5vw,2.5rem);width:85%}
.tp-L-kiri .tp-pk:first-child{width:85%}
.tp-L-kiri .tp-pks{row-gap:clamp(1.5rem,5vw,2.5rem)}
/* Teks tengah, deretan foto di kanan */
.tp-L-strip .tp-cols{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(.75rem,3vw,2.5rem)}
.tp-L-strip .tp-photos{gap:0;margin-right:-1.25rem}
.tp-L-strip .tp-photos img{aspect-ratio:1/1.05}
.tp-L-strip .tp-text{padding-top:clamp(1.5rem,6vw,4rem)}
.tp-L-strip .tp-pk+.tp-pk::before{content:"";display:block;width:45%;height:1px;background:#c9c5bb;margin:0 auto clamp(1.75rem,6vw,3rem)}
.tp-L-strip .tp-pks{row-gap:clamp(1.75rem,6vw,3rem)}
.tp-L-strip .tp-secs{border-top:0}
/* Foto sampul besar */
.tp-cover{position:relative;margin:0 -1.25rem clamp(2.5rem,8vw,4.5rem);min-height:15rem;aspect-ratio:2/1.03;max-height:32rem;width:calc(100% + 2.5rem);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff}
.tp-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tp-cover-shade{position:absolute;inset:0;background:rgba(0,0,0,.32)}
.tp-cover .tp-dhead{position:relative;margin:0;padding:0 1.25rem}
.tp-cover .tp-lotus{color:#fff}
.tp-L-sampul .tp-pk-name span{border-bottom:1.5px solid #c9c5bb;padding:0 .75rem .55rem}
.tp-L-sampul .tp-pk-list{margin-top:1rem}
@media (min-width:768px){
.tp-strip,.tp-cover{margin-left:0;margin-right:0;width:auto}
.tp-L-strip .tp-photos{margin-right:0}
}

/* ---- Admin ---- */
.tp-imgin{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem}
.tp-imgin-prev{width:7.5rem;aspect-ratio:4/5;border-radius:.75rem;overflow:hidden;background:#f4f4f5;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#a1a1aa;text-align:center;padding:0}
.tp-imgin-prev img{width:100%;height:100%;object-fit:cover}
.tp-imgin-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.tp-galin{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}
.tp-galin-item{position:relative;aspect-ratio:1;border-radius:.5rem;overflow:hidden;background:#f4f4f5}
.tp-galin-item img{width:100%;height:100%;object-fit:cover}
.tp-galin-item button{position:absolute;top:.25rem;right:.25rem;width:1.6rem;height:1.6rem;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;display:flex;align-items:center;justify-content:center}
.tp-secin{border:1px solid #e4e4e7;border-radius:.9rem;padding:.75rem}
.tp-secin-head{display:flex;gap:.5rem;align-items:center}
.tp-linkform{margin-top:1rem;display:grid;gap:.75rem}
@media (min-width:640px){.tp-linkform{grid-template-columns:1fr 1fr auto;align-items:end}}
.tp-acat{margin-bottom:2.5rem}
.tp-acat-head{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}
.tp-acat-img{width:4rem;height:5rem;object-fit:cover;border-radius:.75rem;flex-shrink:0;background:#e5e2da}
.tp-acat-info{flex:1;min-width:10rem}
.tp-acat-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.tp-apk{position:relative;border-radius:.5rem;border-width:1px;background:#fff;padding:1.5rem;min-width:0}
.tp-apk-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:.4rem;margin-bottom:.75rem}
.tp-apk-old{margin-right:.5rem;font-size:.85rem;color:#a1a1aa;text-decoration:line-through}
.tp-linkcard{margin-bottom:2.25rem}


/* ---- Klien table ---- */
.tk-wrap{overflow-x:auto;border:1px solid #e4e4e7;border-radius:.75rem;background:#fff;-webkit-overflow-scrolling:touch}
.tk-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;font-size:.85rem;color:#27272a}
.tk-table th{position:sticky;top:0;background:#fafafa;border-bottom:1px solid #e4e4e7;padding:.7rem .75rem;text-align:left;font-family:JetBrains Mono,monospace;font-size:.66rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#71717a;white-space:nowrap}
.tk-table td{padding:.6rem .75rem;border-bottom:1px solid #f4f4f5;vertical-align:middle}
.tk-table tbody tr:hover td{background:#fafaf9}
.tk-table tfoot td{background:#fafafa;font-weight:600;border-bottom:0;border-top:1px solid #e4e4e7}
.tk-sticky{position:sticky;left:0;z-index:1;background:#fff;min-width:11rem;max-width:14rem;box-shadow:1px 0 0 #f4f4f5}
.tk-table th.tk-sticky{z-index:2;background:#fafafa}
.tk-table tfoot .tk-sticky{background:#fafafa}
.tk-name{font-weight:600;color:#18181b;overflow-wrap:anywhere}
.tk-mono{font-family:JetBrains Mono,monospace;font-size:.78rem;white-space:nowrap}
.tk-num{text-align:right;font-family:JetBrains Mono,monospace;font-size:.78rem;white-space:nowrap}
.tk-center{text-align:center}
.tk-due{color:#b45309}
.tk-paid{color:#059669;font-weight:600}
.tk-batal td{opacity:.5}
.tk-cb{width:1.15rem;height:1.15rem;accent-color:#1a1d20;cursor:pointer}
.tk-editing td{background:#f4f1ea!important;vertical-align:top;padding:.5rem .4rem}
.tk-editing .inp,.tk-editing select{min-width:6rem;height:2.5rem;padding-left:.6rem;padding-right:.6rem}
.tk-editing input[type=number]{min-width:5.75rem;width:6.5rem}
.tk-editing input[type=date]{min-width:8.5rem}
.tk-actions{display:flex;flex-direction:column;gap:.35rem}
.tk-table th:last-child,.tk-table td:last-child{position:sticky;right:0;z-index:1;background:#fff;box-shadow:-1px 0 0 #f4f4f5}
.tk-table th:last-child,.tk-table tfoot td:last-child{background:#fafafa}
.tk-table tbody tr:hover td:last-child{background:#fafaf9}
.tk-actions button{padding-left:.75rem;padding-right:.75rem}
.tk-team{display:flex;flex-wrap:wrap;gap:.3rem;min-width:7rem;max-width:10rem}
.tk-chip{border:1px solid #d4d4d8;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;background:#fff;color:#52525b}
.tk-chip-on{background:#1a1d20;border-color:#1a1d20;color:#fff}
.tk-imp-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.tk-dialog{grid-template-columns:minmax(0,1fr)}
.tk-dialog>*{min-width:0}
@media (max-width:640px){.tk-sticky{min-width:7.5rem;max-width:9rem}}
.tk-imp-scroll{overflow-x:auto;border:1px solid #e4e4e7;border-radius:.5rem}
.tk-imp-table{width:100%;min-width:640px;font-size:.75rem}
.tk-imp-table th,.tk-imp-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid #f4f4f5;white-space:nowrap}
.tk-imp-table th{background:#fafafa;color:#71717a}
.tt-table{min-width:760px}
.tt-date{height:2.4rem;min-width:9rem;padding-left:.6rem;padding-right:.6rem}
.tt-date:disabled{opacity:.45;cursor:not-allowed}
.tt-badge{display:inline-flex;align-items:center;gap:.3rem;border-radius:.35rem;padding:.2rem .5rem;font-family:JetBrains Mono,monospace;font-size:.7rem;background:#f4f4f5;color:#52525b;white-space:nowrap}
.tt-badge.tt-warn{background:#fffbeb;color:#b45309;border:1px solid #fde68a}
.tt-badge.tt-over{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.tt-badge.tt-ok{background:#ecfdf5;color:#047857}
.tt-row-over td.tk-sticky{box-shadow:inset 3px 0 0 #ef4444}
.tt-row-warn td.tk-sticky{box-shadow:inset 3px 0 0 #f59e0b}
.tt-pill{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.35rem .75rem;font-size:.75rem;border:1px solid}
.tt-pill-warn{border-color:#fde68a;background:#fffbeb;color:#b45309}
.tt-pill-over{border-color:#fecaca;background:#fef2f2;color:#b91c1c}
.tt-select{min-width:9.5rem;height:2.4rem}
.tr-list{display:flex;flex-direction:column;gap:.5rem}
.tr-item{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;border:1px solid #fecaca;border-radius:1rem;background:#fff;padding:.75rem .9rem}
.tr-main{flex:1 1 10rem;min-width:0}
.tr-name{font-weight:600;color:#18181b;overflow-wrap:anywhere}
.tr-sub{margin-top:.15rem;font-size:.75rem;color:#71717a}
.tr-h{margin-left:.35rem;border-radius:999px;background:#fef2f2;color:#b91c1c;padding:.05rem .45rem;font-family:JetBrains Mono,monospace;font-size:.68rem}
.tr-amt{font-family:JetBrains Mono,monospace;font-weight:600;color:#9a7b3f;white-space:nowrap}
.tr-act{display:flex;gap:.4rem;margin-left:auto}
.tr-empty{border:1px dashed #e4e4e7;border-radius:1rem;padding:1.25rem;text-align:center;font-size:.8rem;color:#a1a1aa}
.tj-wrap{-webkit-overflow-scrolling:touch}
.tt-select:disabled{opacity:.45;cursor:not-allowed}
.tj-tabs{display:inline-flex;gap:.25rem;margin-bottom:1rem;border:1px solid #e4e4e7;border-radius:.75rem;background:#fff;padding:.25rem}
.tj-tab{display:inline-flex;align-items:center;gap:.4rem;border-radius:.55rem;padding:.4rem .9rem;font-size:.85rem;font-weight:500;color:#52525b;transition:background-color .15s,color .15s}
.tj-tab-on{background:#18181b;color:#fff}
.tj-count{border-radius:999px;background:rgba(161,161,170,.25);padding:0 .45rem;font-family:JetBrains Mono,monospace;font-size:.7rem}
.tj-table{min-width:980px}
.tj-table td:nth-child(6){min-width:10rem}
.tj-in{height:2.4rem;padding-left:.6rem;padding-right:.6rem}
.tj-name{min-width:9.5rem}
.tj-date{min-width:8.75rem}
.tj-num{width:7rem;font-family:JetBrains Mono,monospace}
.tj-sel{min-width:7.5rem;border-radius:.75rem;border:1px solid transparent;background:#f4f4f5;font-size:.875rem}
.tj-act{white-space:nowrap}
.tj-act>div{justify-content:flex-start}
.ti-table{min-width:620px}
.tj-table td{padding-left:.5rem;padding-right:.5rem}
.ti-table th:last-child,.ti-table td:last-child{position:static;box-shadow:none}
.ti-table .btn-outline{white-space:nowrap}
@media (max-width:640px){.tj-table th:last-child,.tj-table td:last-child{position:static;box-shadow:none}}

/* v6: font nominal uang */
.tm-money,.tr-amt,.tk-num,.tp-pk-now,.tp-pk-old,.tp-apk-old,.tj-num,input.tj-num,[data-testid=klien-edit-price]{font-family:Manrope,"Plus Jakarta Sans",sans-serif!important;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;letter-spacing:-.01em}
.tm-money{font-weight:600;white-space:nowrap}
[data-testid=stat-month-revenue] .tm-money{font-weight:700;letter-spacing:-.03em}
.tk-num .tm-money,.tk-table .tm-money{font-weight:600}
/* v6: tabel compact */
.tk-table{min-width:860px;font-size:.78rem;line-height:1.25}
.tk-table th{padding:.45rem .55rem;font-size:.6rem;letter-spacing:.08em}
.tk-table td{padding:.32rem .55rem}
.tk-num,.tk-mono{font-size:.76rem}
.tk-name{font-size:.8rem}
.tk-sticky{min-width:7rem;max-width:9rem}
.tk-table .inp,.tk-table select,.tk-table .tj-in,.tk-table .tt-date,.tk-table .tt-select,.tk-table .tj-sel{height:1.95rem;min-height:0;padding-left:.45rem;padding-right:.45rem;font-size:.76rem;border-radius:.5rem}
.tk-table .tj-name{min-width:8rem}
.tk-table .tj-date,.tk-table .tt-date{min-width:7.6rem}
.tk-table .tj-num{width:5.75rem}
.tk-table .tt-select{min-width:8rem}
.tk-table .tj-sel{min-width:6.5rem}
.tk-table .btn-gold,.tk-table .btn-outline{padding:.28rem .55rem;font-size:.72rem;line-height:1rem;gap:.3rem;border-radius:.5rem}
.tk-table .btn-icon{height:1.75rem;width:1.75rem}
.tk-table td svg{width:.9rem;height:.9rem}
.tk-actions{gap:.25rem}
.tk-actions button{padding-left:.5rem;padding-right:.5rem}
.tk-chip{padding:.1rem .45rem;font-size:.68rem}
.tk-team{gap:.2rem}
.tk-cb{width:1rem;height:1rem}
.tt-badge{padding:.12rem .4rem;font-size:.64rem}
.tk-editing td{padding:.35rem .3rem}
.tk-editing .inp,.tk-editing select{min-width:5.5rem;height:2rem}
.tk-editing input[type=number]{min-width:5rem;width:5.75rem}
.tk-editing input[type=date]{min-width:7.6rem}
.tj-table{min-width:820px}
.tj-table td{padding-left:.4rem;padding-right:.4rem}
.tt-table{min-width:640px}
.ti-table{min-width:560px}
.tk-imp-table{font-size:.72rem}
.tk-imp-table th,.tk-imp-table td{padding:.3rem .45rem}
table.min-w-\[720px\]{min-width:620px;font-size:.78rem}
table.min-w-\[720px\] th,table.min-w-\[720px\] td{padding:.4rem .6rem!important}
@media (max-width:640px){
.tk-table{font-size:.74rem}
.tk-table th{padding:.4rem .45rem;font-size:.56rem}
.tk-table td{padding:.28rem .45rem}
.tk-table .btn-gold,.tk-table .btn-outline{padding:.25rem .45rem;font-size:.68rem}
}
/* v6: reminder notifikasi */
.tn-wrap{position:relative;flex-shrink:0;margin-top:.35rem}
.tn-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border:1px solid #e4e4e7;border-radius:.85rem;background:#fff;color:#27272a;transition:background-color .15s,border-color .15s,transform .15s}
.tn-btn:hover,.tn-btn-on{background:#f4f1ea;border-color:#e5e2da}
.tn-btn:active{transform:scale(.95)}
.tn-badge{position:absolute;top:-.4rem;right:-.4rem;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:999px;background:#ef4444;color:#fff;font-family:Manrope,sans-serif;font-size:.66rem;font-weight:700;line-height:1.2rem;text-align:center;box-shadow:0 0 0 2px #fff}
.tn-panel{position:absolute;right:0;top:calc(100% + .5rem);z-index:40;width:min(26rem,calc(100vw - 2rem));max-height:min(70vh,34rem);overflow-y:auto;border:1px solid #e4e4e7;border-radius:1rem;background:#fff;box-shadow:0 18px 40px -12px rgba(24,24,27,.22);animation:tnIn .16s ease-out}
@keyframes tnIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tn-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1px solid #f4f4f5;background:#fff}
.tn-title{font-family:Cormorant Garamond,serif;font-size:1.25rem;font-weight:600;color:#18181b}
.tn-x{width:1.8rem;height:1.8rem;border-radius:999px;font-size:1.2rem;line-height:1;color:#71717a}
.tn-x:hover{background:#f4f4f5;color:#18181b}
.tn-body{display:flex;flex-direction:column;gap:1rem;padding:.8rem .9rem 1rem}
.tn-sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.45rem}
.tn-sec-title{font-size:.8rem;font-weight:600;color:#18181b}
.tn-sec-count{margin-left:.2rem;border-radius:999px;background:#fef2f2;color:#b91c1c;padding:0 .4rem;font-family:Manrope,sans-serif;font-size:.68rem;font-weight:700}
.tn-sec-link{font-size:.72rem;font-weight:500;color:#71717a}
.tn-sec-link:hover{color:#18181b}
.tn-item{padding:.55rem .7rem;border-radius:.75rem;gap:.4rem .6rem}
.tn-item .tr-name{font-size:.82rem}
.tn-item .tr-amt{font-size:.82rem}
.tn-sm{padding:.3rem .6rem!important;font-size:.72rem!important;border-radius:.55rem!important;gap:.3rem!important}
.tn-body .tr-empty{padding:.8rem;font-size:.74rem}

/* v7: form builder & DP konfirmasi */
.fb-list{margin-top:1.1rem;display:flex;flex-direction:column;gap:.5rem}
.fb-row{display:grid;grid-template-columns:minmax(0,1fr) 7.5rem 8.5rem auto auto;align-items:center;gap:.45rem;border:1px solid #e4e4e7;border-radius:.75rem;background:#fafafa;padding:.45rem .55rem}
.fb-row .inp{height:2.1rem;font-size:.8rem;padding-left:.55rem;padding-right:.55rem;background:#fff}
.fb-sel{min-width:0}
.fb-type{font-size:.72rem;color:#71717a;border:1px dashed #d4d4d8;border-radius:.5rem;padding:.35rem .5rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-req{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:#3f3f46;white-space:nowrap;cursor:pointer}
.fb-act{display:flex;gap:.25rem}
.fb-btn{padding:.3rem .5rem!important;font-size:.72rem!important;border-radius:.5rem!important;line-height:1rem!important}
.fb-del{color:#b91c1c!important}
.fb-opts{grid-column:1/-1;font-size:.78rem;min-height:3.2rem;background:#fff}
@media (max-width:640px){
.fb-row{grid-template-columns:1fr 1fr}
.fb-label{grid-column:1/-1}
.fb-act{justify-content:flex-end}
}
.tk-dp-pend{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;margin-top:.25rem}
.tk-dp-chip{border:1px solid #fde68a;background:#fffbeb;color:#b45309;border-radius:999px;padding:.05rem .45rem;font-family:"Plus Jakarta Sans",sans-serif;font-size:.62rem;font-weight:600;white-space:nowrap}
.tk-dp-btn{padding:.2rem .5rem!important;font-size:.66rem!important;border-radius:.45rem!important;white-space:nowrap}

/* v8: standar tabel (semua tabel sama) */
.tk-table,.tk-imp-table,table.min-w-\[720px\]{font-family:"Plus Jakarta Sans",sans-serif;font-size:.78rem;font-weight:400;line-height:1.3;color:#27272a}
.tk-table th,.tk-imp-table th,table.min-w-\[720px\] th{font-family:"Plus Jakarta Sans",sans-serif!important;font-size:.64rem!important;font-weight:600!important;letter-spacing:.06em!important;text-transform:uppercase;color:#71717a!important;background:#fafafa;padding:.5rem .6rem!important;white-space:nowrap}
.tk-table td,.tk-imp-table td,table.min-w-\[720px\] td{font-family:"Plus Jakarta Sans",sans-serif;font-size:.78rem!important;font-weight:400;padding:.4rem .6rem!important}
.tk-table .tk-mono,.tk-table .font-mono,.tk-imp-table .font-mono,table.min-w-\[720px\] .font-mono{font-family:"Plus Jakarta Sans",sans-serif!important;font-size:.78rem!important}
.tk-table .tk-name,.tk-table .tk-sticky.tk-name,table.min-w-\[720px\] td.font-medium{font-weight:600}
.tk-table .tm-money,.tk-imp-table .tm-money,table.min-w-\[720px\] .tm-money,.tk-table .tk-num{font-family:Manrope,"Plus Jakarta Sans",sans-serif!important;font-size:.78rem!important;font-weight:500}
.tk-table tfoot td,.tk-table tfoot .tm-money{font-weight:700}
.tk-table .inp,.tk-table select,.tk-table .tj-in,.tk-table .tt-date,.tk-table .tt-select,.tk-table .tj-sel,.tk-table textarea{font-family:"Plus Jakarta Sans",sans-serif;font-size:.78rem!important;font-weight:400}
.tk-table .tj-num,.tk-table input[type=number]{font-family:Manrope,"Plus Jakarta Sans",sans-serif!important}
.tk-table .btn-gold,.tk-table .btn-outline{font-size:.72rem!important;font-weight:600}
.tk-table .tt-badge,.tk-table .tk-chip{font-family:"Plus Jakarta Sans",sans-serif;font-size:.68rem}
@media (max-width:640px){
.tk-table,.tk-imp-table,table.min-w-\[720px\],.tk-table td,.tk-imp-table td,table.min-w-\[720px\] td,.tk-table .tm-money,.tk-table .tk-num,.tk-table .tk-mono,.tk-table .font-mono,.tk-table .inp,.tk-table select{font-size:.75rem!important}
.tk-table th,.tk-imp-table th,table.min-w-\[720px\] th{font-size:.6rem!important;padding:.45rem .5rem!important}
.tk-table td,.tk-imp-table td,table.min-w-\[720px\] td{padding:.35rem .5rem!important}
}
/* v8: dialog konfirmasi DP */
.tdp-desc{margin:-.2rem 0 .5rem;font-size:.72rem;color:#71717a}
/* v8: pembatas paket pricelist */
.tp-pks .tp-pk{background:rgba(201,197,187,.13);border:1px solid rgba(201,197,187,.55)!important;border-radius:1rem;padding:clamp(.9rem,3.5vw,1.6rem) clamp(.6rem,2.5vw,1.25rem)!important;width:100%!important;height:100%}
.tp-pks .tp-pk::before{display:none!important}
.tp-pks{row-gap:clamp(.75rem,3vw,1.5rem)!important;column-gap:clamp(.6rem,2.5vw,1.25rem)!important;align-items:stretch}
.tp-pk-price{margin-top:auto;padding-top:clamp(.75rem,3vw,1.2rem)}
.tp-pk-now{font-size:clamp(1.05rem,4.4vw,1.9rem)}

[data-testid=dp-dialog]{width:calc(100vw - 1.5rem)!important;max-width:32rem!important}

/* v9 */
[data-testid=klien-table] .tk-name,[data-testid=jadwal-table] .tj-name,[data-testid=jadwal-table] .tk-name{font-weight:400!important}
.tt-chk{display:inline-flex;flex-direction:column;align-items:center;gap:.15rem;cursor:pointer;min-width:4.5rem}
.tt-chk-off{opacity:.45;cursor:not-allowed}
.tt-chk-date{min-height:.9rem;font-size:.64rem;color:#71717a;white-space:nowrap}
.tj-team-btn{display:inline-flex;align-items:center;gap:.35rem;max-width:11rem;border:1px solid #e4e4e7;border-radius:.5rem;background:#fff;padding:.25rem .5rem;font-size:.76rem;color:#27272a;text-align:left;transition:background-color .15s,border-color .15s}
.tj-team-btn:hover{background:#f4f1ea;border-color:#e5e2da}
.tj-team-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tj-team-panel .tk-team{max-width:none;gap:.45rem}
.tj-team-panel .tk-chip{padding:.4rem .85rem;font-size:.82rem}
.tdp-done{border-color:#bbf7d0}
.tp-pks .tp-pk{background:rgba(201,197,187,.06)!important;border-color:rgba(201,197,187,.35)!important}
.tt-table th:last-child,.tt-table td:last-child{position:static;box-shadow:none}
.tj-team-panel{width:calc(100vw - 1.5rem)!important;max-width:24rem!important}
.tj-table .tj-pkg{min-width:8.5rem;max-width:11rem}

/* v11: pilih multi paket */
.tm-pkg-btn{max-width:12rem}
.tm-pkg-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}
.tm-pkg-row{display:flex;align-items:center;gap:.6rem;border:1px solid #e4e4e7;border-radius:.7rem;padding:.55rem .7rem;cursor:pointer;transition:background-color .15s,border-color .15s}
.tm-pkg-row:hover{background:#fafaf9}
.tm-pkg-on{background:#f4f1ea;border-color:#e5e2da}
.tm-pkg-name{flex:1;min-width:0;font-size:.82rem;color:#18181b;overflow-wrap:anywhere}
.tm-pkg-cat{display:block;font-size:.66rem;color:#71717a}
.tm-pkg-price{font-size:.8rem;white-space:nowrap}
.tm-pkg-total{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.6rem;border-top:1px dashed #d4d4d8;font-size:.85rem;font-weight:600}
