:root{
  --bg:#f5f6f4;--surface:#fff;--surface-2:#f0f3f1;--border:#dfe5e1;
  --text:#17201c;--muted:#68736d;--muted-2:#98a29d;
  --green:#1d9e75;--green-dark:#0f6e56;--green-soft:#e1f5ee;
  --red:#d94848;--red-soft:#fcebea;--yellow:#e7a500;--yellow-soft:#fff4d6;
  --blue:#2563a6;--blue-soft:#e7f1fb;--purple:#6848c7;--purple-soft:#efecff;
  --shadow:0 10px 30px rgba(22,45,34,.08);--radius:14px;--radius-sm:9px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.loading-overlay{position:fixed;inset:0;background:rgba(247,249,248,.88);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.spinner{width:42px;height:42px;border-radius:50%;border:4px solid var(--border);border-top-color:var(--green);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:10000;max-width:min(92vw,560px);padding:12px 16px;border-radius:11px;background:#1c2722;color:#fff;box-shadow:var(--shadow);font-size:14px}.toast.error{background:#8f2828}.toast.success{background:var(--green-dark)}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#dff5ec 0,transparent 38%),radial-gradient(circle at bottom right,#fff0c9 0,transparent 34%),var(--bg)}.auth-card{width:min(100%,420px);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.auth-card.wide{width:min(100%,480px)}.brand-mark{width:58px;height:58px;border-radius:16px;background:linear-gradient(145deg,var(--green),var(--green-dark));color:#fff;display:grid;place-items:center;margin:0 auto 14px;font-size:29px;box-shadow:0 12px 26px rgba(29,158,117,.25)}.brand-mark.small{width:42px;height:42px;border-radius:12px;margin:0;font-size:22px;box-shadow:none}.auth-card h1{text-align:center;margin:0;font-size:25px;letter-spacing:.3px}.brand-sub{text-align:center;color:var(--muted);margin:6px 0 22px}.segmented{display:flex;background:var(--surface-2);padding:4px;border-radius:10px;margin-bottom:18px}.seg-btn{flex:1;border:0;background:transparent;padding:9px;border-radius:8px;color:var(--muted);font-weight:650}.seg-btn.active{background:#fff;color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.07)}.stack{display:grid;gap:13px}.helper{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:650}input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;color:var(--text);padding:10px 12px;border-radius:10px;outline:none;transition:.18s}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,158,117,.12)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}
.btn{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:10px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:13px;transition:.16s}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 15px rgba(0,0,0,.06)}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.warning{background:var(--yellow);border-color:var(--yellow);color:#1f1a0d}.btn.ghost{background:transparent}.btn.block{width:100%}.btn.small{padding:7px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.icon-btn{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--muted)}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#11231b;color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:30}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:4px 4px 20px}.sidebar-brand strong{display:block;font-size:15px}.sidebar-brand span{display:block;color:#aac1b6;font-size:11px;margin-top:2px}.side-nav{display:grid;gap:5px;overflow-y:auto}.nav-item{border:0;background:transparent;color:#bcd0c6;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;font-size:13px;font-weight:650}.nav-item i{font-size:18px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:14px;display:flex;align-items:center;gap:9px}.sidebar-user .icon-btn{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12);color:#fff}.sidebar-user-copy{min-width:0;flex:1}.sidebar-user-copy strong,.sidebar-user-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-copy strong{font-size:13px}.sidebar-user-copy span{font-size:11px;color:#aac1b6;margin-top:2px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green-dark);font-weight:800;font-size:12px;flex:none}
.main-area{margin-left:255px;min-height:100vh}.topbar{height:78px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.topbar h2{margin:2px 0 0;font-size:21px}.kicker{margin:0;color:var(--green);font-size:10px;font-weight:800;letter-spacing:1.1px}.topbar-actions{display:flex;align-items:center;gap:8px}.date-chip{background:var(--surface-2);color:var(--muted);font-size:12px;padding:7px 10px;border-radius:999px}.content{padding:22px 24px 90px;max-width:1320px;margin:0 auto}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:15px}.page-head h3{margin:0;font-size:18px}.page-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:0 3px 14px rgba(25,44,35,.035)}.card + .card{margin-top:14px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.card-title h4{margin:0;font-size:14px}.card-title .title-left{display:flex;align-items:center;gap:8px}.card-title i{color:var(--green);font-size:18px}.metric-card{background:linear-gradient(145deg,#fff,#f8fbf9);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-height:112px}.metric-top{display:flex;align-items:center;justify-content:space-between}.metric-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-dark);font-size:19px}.metric-value{font-size:23px;font-weight:800;margin-top:13px}.metric-label{color:var(--muted);font-size:12px;margin-top:3px}.metric-card.red .metric-icon{background:var(--red-soft);color:var(--red)}.metric-card.blue .metric-icon{background:var(--blue-soft);color:var(--blue)}.metric-card.yellow .metric-icon{background:var(--yellow-soft);color:#8d6100}.metric-card.purple .metric-icon{background:var(--purple-soft);color:var(--purple)}
.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:750;background:var(--surface-2);color:var(--muted)}.badge.green{background:var(--green-soft);color:var(--green-dark)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.yellow{background:var(--yellow-soft);color:#8d6100}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.purple{background:var(--purple-soft);color:var(--purple)}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:top}th{background:#f7f9f8;color:var(--muted);font-weight:800;white-space:nowrap}tr:last-child td{border-bottom:0}.row-actions{display:flex;gap:6px;white-space:nowrap}.money{font-weight:800;color:var(--green-dark)}.muted{color:var(--muted)}.small-text{font-size:11px}.nowrap{white-space:nowrap}.list{display:grid}.list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:0}.list-row strong{font-size:13px}.list-row p{font-size:11px;color:var(--muted);margin:3px 0 0;line-height:1.45}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.full{grid-column:1/-1}.section-sep{height:1px;background:var(--border);margin:15px 0}.notice{padding:11px 13px;border-radius:10px;background:var(--blue-soft);color:var(--blue);font-size:12px;line-height:1.5;display:flex;gap:8px;align-items:flex-start}.notice.warning{background:var(--yellow-soft);color:#785200}.notice.danger{background:var(--red-soft);color:#9d2f2f}.notice.success{background:var(--green-soft);color:var(--green-dark)}
.shift-hero{background:linear-gradient(135deg,var(--green),var(--green-dark));color:#fff;border-radius:18px;padding:20px;box-shadow:0 14px 30px rgba(15,110,86,.2)}.shift-hero .eyebrow{font-size:11px;opacity:.78;font-weight:700}.shift-hero h3{font-size:24px;margin:6px 0}.shift-hero p{margin:0;opacity:.85;font-size:13px}.shift-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.shift-pill{background:rgba(255,255,255,.16);padding:7px 10px;border-radius:999px;font-size:11px}.shift-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.shift-actions .btn{border-color:rgba(255,255,255,.25)}.checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-item{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff}.check-item span{font-size:12px;line-height:1.4}.product-card{border:1px solid var(--border);border-radius:12px;padding:13px;background:#fff}.product-card h4{margin:0 0 4px;font-size:14px}.product-card p{margin:3px 0;color:var(--muted);font-size:11px}.product-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.handover-card{border-left:4px solid var(--green)}.score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.score-box{background:var(--surface-2);border-radius:9px;padding:9px;text-align:center}.score-box strong{display:block;font-size:16px}.score-box span{font-size:10px;color:var(--muted)}
.slip{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px}.slip-head{background:linear-gradient(135deg,var(--green),var(--green-dark));border-radius:14px;padding:18px;color:#fff;text-align:center}.slip-head h3{margin:4px 0;font-size:20px}.slip-section{margin-top:17px}.slip-section h4{font-size:11px;letter-spacing:.7px;color:var(--muted);text-transform:uppercase;margin:0 0 7px}.slip-line{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px}.slip-total{margin-top:15px;padding:14px;border-radius:12px;background:var(--green-soft);color:var(--green-dark);display:flex;justify-content:space-between;align-items:center}.slip-total strong:last-child{font-size:22px}.empty-state{text-align:center;padding:34px;color:var(--muted)}.empty-state i{font-size:38px;color:var(--muted-2)}.empty-state h3{font-size:15px;margin:8px 0 4px}.empty-state p{font-size:12px;margin:0}.mobile-nav{display:none}.mobile-only{display:none}
@media(max-width:980px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{display:none}.main-area{margin-left:0}.topbar{height:68px;padding:0 14px}.topbar h2{font-size:18px}.content{padding:15px 12px 88px}.date-chip{display:none}.mobile-only{display:grid}.mobile-nav{position:fixed;display:flex;left:8px;right:8px;bottom:8px;height:62px;border:1px solid var(--border);border-radius:17px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);z-index:40;box-shadow:0 10px 35px rgba(0,0,0,.13);padding:5px;overflow-x:auto}.mobile-nav .nav-item{min-width:64px;flex:1;display:flex;flex-direction:column;gap:2px;padding:6px 5px;color:var(--muted);font-size:9px;text-align:center}.mobile-nav .nav-item i{font-size:20px}.mobile-nav .nav-item.active{color:var(--green-dark);background:var(--green-soft)}.grid.two,.grid.three,.grid.four,.form-grid,.form-grid.three,.form-grid.four,.checklist,.score-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.auth-card{padding:22px}.metric-value{font-size:20px}.shift-hero h3{font-size:21px}}
@media print{body{background:#fff}.sidebar,.topbar,.mobile-nav,.no-print,.page-head{display:none!important}.main-area{margin:0}.content{padding:0}.card,.slip{box-shadow:none;border:0}.slip{padding:0}}
.flex{display:flex;align-items:center;gap:8px}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:10px}code{background:var(--surface-2);padding:3px 6px;border-radius:6px;font-size:11px;word-break:break-all}

.flow-roadmap{background:linear-gradient(135deg,#0f6e56,#1d9e75);color:#fff;border-radius:16px;padding:16px 18px;margin-bottom:15px;box-shadow:0 10px 24px rgba(15,110,86,.18)}
.flow-roadmap.compact{margin:0 0 2px;border-radius:12px;padding:12px 14px}
.flow-title{font-size:10px;font-weight:850;letter-spacing:1.2px;opacity:.82;margin-bottom:6px}
.flow-steps{font-size:15px;font-weight:750;line-height:1.55}.flow-steps b{padding:0 5px;color:#ffe29a}
.closing-card{border-left:4px solid var(--purple);margin-bottom:14px}
@media(max-width:760px){.flow-steps{font-size:12px}.flow-steps b{padding:0 2px}}

/* v1.6 payroll period */
.period-banner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:linear-gradient(135deg,var(--green),var(--green-dark));
  color:#fff;border-radius:var(--radius-lg);padding:1.15rem 1.25rem;margin-bottom:14px;
  box-shadow:0 8px 24px rgba(15,110,86,.16)
}
.period-banner h3{margin:3px 0 4px;font-size:18px}
.period-banner p{margin:0;font-size:12px;opacity:.85}
.period-banner .eyebrow{font-size:10px;letter-spacing:1.2px;font-weight:700;opacity:.75}
@media(max-width:600px){.period-banner{align-items:flex-start;flex-direction:column}}
.btn.danger.outline{background:#fff;color:var(--red);border-color:var(--red)}
.btn.danger.outline:hover{background:var(--red-soft)}

/* v1.9.0 — detail produk dan catatan tengah shift */
.product-summary-clamp{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  overflow:hidden;min-height:3.8em;white-space:normal;word-break:break-word
}
.product-detail-btn{margin-top:11px}
.product-mini-row{align-items:center}
.product-mini-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.modal-open{overflow:hidden}
.product-detail-overlay{
  position:fixed;inset:0;background:rgba(8,24,18,.66);z-index:120;
  display:flex;align-items:center;justify-content:center;padding:18px;
  backdrop-filter:blur(5px)
}
.product-detail-modal{
  width:min(820px,100%);max-height:92vh;background:#fff;border-radius:20px;
  overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 80px rgba(0,0,0,.3)
}
.product-detail-modal>header{
  padding:19px 20px 15px;border-bottom:1px solid var(--border);display:flex;
  align-items:flex-start;justify-content:space-between;gap:15px;background:linear-gradient(145deg,#fff,#f3faf6)
}
.product-detail-modal>header h2{font-size:23px;margin:8px 0 3px;line-height:1.18}
.product-detail-modal>header p{margin:0;color:var(--muted);font-size:12px}
.product-detail-quick{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);
  border-bottom:1px solid var(--border)
}
.product-detail-quick>div{background:#f8faf9;padding:12px 14px;min-width:0}
.product-detail-quick span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.45px}
.product-detail-quick strong{display:block;font-size:13px;word-break:break-word}
.product-detail-body{padding:16px 20px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.product-detail-section{border:1px solid var(--border);border-radius:13px;padding:13px;background:#fff;min-width:0}
.product-detail-section h4{margin:0 0 8px;font-size:12px;color:var(--green-dark);display:flex;align-items:center;gap:7px}
.product-detail-section h4 i{font-size:17px}
.product-detail-section p{margin:0;font-size:12px;line-height:1.65;color:var(--text);word-break:break-word}
.product-detail-updated{grid-column:1/-1;color:var(--muted);font-size:10px;text-align:right;margin:0}
.product-detail-modal>footer{padding:12px 20px 17px;border-top:1px solid var(--border);background:#fff}
#mid-shift-form textarea{min-height:82px}

@media(max-width:760px){
  .product-mini-row{align-items:flex-start;flex-direction:column}
  .product-mini-actions{width:100%;justify-content:space-between}
  .product-detail-overlay{padding:0;align-items:stretch}
  .product-detail-modal{width:100%;max-height:100vh;height:100vh;border-radius:0}
  .product-detail-modal>header{padding:17px 15px 13px}
  .product-detail-modal>header h2{font-size:21px}
  .product-detail-quick{grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-detail-body{grid-template-columns:1fr;padding:13px 14px;gap:10px}
  .product-detail-modal>footer{padding:10px 14px 15px}
}

/* HOSTFLOW v1.9.1 — Serah terima rapi + koreksi operasional */
.handover-card.structured .handover-read-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
  margin-top:8px;
}
.handover-read-grid section{
  border:1px solid var(--border,#dbe7e1);
  border-radius:14px;
  padding:12px;
  background:#fbfffd;
}
.handover-read-grid h5{
  display:flex;
  align-items:center;
  gap:7px;
  margin:0 0 8px;
  color:#0f6e56;
  font-size:13px;
}
.handover-read-grid p{
  margin:0;
  white-space:pre-wrap;
  line-height:1.55;
  font-size:13px;
}
.handover-product-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:7px 0;
  border-bottom:1px dashed var(--border,#dbe7e1);
}
.handover-product-row:last-child{border-bottom:0;}
.handover-product-row p{font-size:12px;color:#5f6f68;margin-top:3px;}
.btn.outline{background:white;border:1px solid var(--border,#dbe7e1);}
@media(max-width:720px){
  .handover-card.structured .handover-read-grid{grid-template-columns:1fr;}
  .handover-read-grid section{padding:10px;}
}
