/* v30. Uses the portal's existing background and glass variables, not a new theme. */
.portal-permit-form .page-wrap{max-width:1440px}
.portal-permit-form .form-shell{grid-template-columns:minmax(245px,300px) minmax(0,1fr);min-height:auto;align-items:stretch}
.portal-permit-form .form-aside{padding:26px 24px}
.portal-permit-form .form-aside h1{font-size:31px;line-height:1.13}
.portal-permit-form .form-main{padding:26px;min-width:0}
.portal-permit-form .portal-topbar{position:relative;top:0;flex-wrap:wrap}
.portal-permit-form .top-actions{gap:7px}
.permit-selector{margin-top:24px;padding:24px;border:1px solid var(--portal-line);border-radius:var(--portal-radius-lg);background:var(--portal-shell);box-shadow:var(--portal-shadow-soft);backdrop-filter:blur(7px) saturate(112%)}
.permit-selector .eyebrow{margin-top:0}
.permit-selector h1{font:700 30px/1.16 Georgia,serif;margin:7px 0 8px;color:var(--portal-ink)}
.permit-selector p{color:var(--portal-muted);font-size:13px;line-height:1.6;margin:0}
.permit-selector p a{color:var(--portal-accent-dark);text-underline-offset:3px}
.permit-type-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.permit-type-options button{display:flex;align-items:center;gap:13px;min-height:88px;text-align:left;border:1px solid var(--portal-line);border-radius:20px;padding:16px;background:var(--portal-card);color:var(--portal-ink);min-width:0}
.permit-type-options button[aria-pressed="true"]{border-color:#478e7c;box-shadow:inset 0 0 0 1px rgba(71,142,124,.20),var(--portal-shadow-soft);background:rgba(222,244,233,.56)}
.permit-type-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:15px;background:rgba(95,157,142,.13);color:#307560}
.permit-type-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.permit-type-options strong{display:block;font-size:15px;line-height:1.4}
.permit-type-options small{display:block;color:var(--portal-muted);font-size:11.5px;line-height:1.5;margin-top:4px}
.type-tick{margin-left:auto;color:#2f7b65;opacity:0;font-weight:800}
[aria-pressed="true"] .type-tick{opacity:1}
.permit-number-note{margin-top:20px;padding:14px;border:1px solid var(--portal-line);border-radius:17px;background:rgba(255,255,255,.32)}
.permit-number-note strong{font-size:12px}.permit-number-note p{font-size:11.5px;line-height:1.6;color:var(--portal-muted);margin:5px 0 0}
.permit-connection{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--portal-muted);padding:0 0 16px;line-height:1.6}
.connection-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#a6b9b3}
.permit-connection[data-state="ready"] .connection-dot{background:#3c9877;box-shadow:0 0 0 4px rgba(60,152,119,.10)}
.permit-connection[data-state="error"]{color:#8a511a}.permit-connection[data-state="error"] .connection-dot{background:#c8914c}
.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:3px;color:inherit;padding:0 3px;white-space:nowrap}
.permit-alert,.pending-check{padding:16px;border-radius:18px;border:1px solid rgba(161,106,33,.25);background:rgba(255,245,215,.65);color:#74521d;font-size:13px;line-height:1.7;margin-bottom:18px;white-space:pre-line}
.pending-check{margin-top:16px}.pending-check p{margin-top:4px}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.portal-permit-form .field .help-text{margin:7px 0;font-size:12px;line-height:1.6}
.portal-permit-form .field input,.portal-permit-form .field textarea,.portal-permit-form .field select{font-size:14px;max-width:100%;min-width:0}
.portal-permit-form .field label{font-size:13px;line-height:1.4}
.portal-permit-form textarea{min-height:112px}
.portal-permit-form .fields{gap:14px;padding:20px}
.portal-permit-form .field-error{font-size:12px;color:#963e35;margin-top:7px;line-height:1.5}
.portal-permit-form .field.invalid{border-color:#bf6e66;box-shadow:0 0 0 2px rgba(191,110,102,.08)}
.portal-permit-form .field-error:empty{display:none}
.permit-file-names{margin-top:8px;font-size:12px;line-height:1.5;color:var(--portal-accent-dark);overflow-wrap:anywhere}
.file-remove{margin-top:8px;color:#85534f}
.goods-list{display:grid;gap:13px;margin-top:12px}
.goods-row{position:relative;border:1px solid rgba(42,97,79,.14);background:rgba(255,255,255,.22);border-radius:17px;padding:16px;min-width:0}
.goods-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.goods-row-head strong{font-size:13px;color:var(--portal-accent-dark)}
.goods-row .goods-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.goods-inputs label{display:block;min-width:0;color:var(--portal-ink)}
.goods-inputs input{margin-top:7px}
.goods-inputs .goods-help{display:block;font-weight:400;font-size:11px;color:var(--portal-muted);margin-top:4px}
.goods-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:15px}
.goods-controls span{font-size:12px;color:var(--portal-muted)}
.goods-remove{border:0;background:rgba(255,255,255,.45);border-radius:8px;padding:7px 10px;color:#975149;font-size:12px}
.permit-terms{padding:20px;margin-top:16px;border-radius:20px;background:rgba(255,255,255,.28);border:1px solid var(--portal-line);font-size:12.5px;line-height:1.7}
.permit-terms summary{cursor:pointer;font-weight:750;color:var(--portal-accent-dark)}
.permit-terms ol{padding-left:21px}.permit-terms li{margin:7px 0}
.permit-consent{display:flex;align-items:flex-start;gap:10px;margin-top:16px;font-size:13px;line-height:1.6}
.permit-consent input{width:19px!important;height:19px;flex:0 0 19px;margin:3px 0 0;accent-color:#377d65}
.portal-permit-form .form-actions{flex-wrap:wrap}.portal-permit-form .actions-right{flex-wrap:wrap}
.portal-permit-form dialog{max-width:min(830px,calc(100vw - 28px));max-height:90dvh;padding:0;background:rgba(251,254,252,.97);border:1px solid white;border-radius:25px;color:var(--portal-ink)}
.portal-permit-form dialog::backdrop{background:rgba(17,49,40,.35);backdrop-filter:blur(5px)}
.portal-permit-form dialog .dialog-card{max-width:none;padding:26px}
.portal-permit-form dialog .eyebrow{margin-top:0}
.portal-permit-form dialog .dialog-head{align-items:flex-start}
.portal-permit-form dialog h3{margin-top:8px}
.permit-review-content{max-height:55dvh;overflow:auto;padding-right:9px}
.review-section h4{font:700 19px Georgia,serif;margin:22px 0 10px}
.review-data{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr);gap:8px 16px;font-size:13px;line-height:1.6;padding:12px 0;border-bottom:1px solid rgba(39,84,70,.10)}
.review-data dt{color:var(--portal-muted)}.review-data dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.review-goods{border-collapse:collapse;width:100%;font-size:12px}.review-goods td,.review-goods th{border:1px solid #d7e2dc;padding:7px;overflow-wrap:anywhere;text-align:left}
.review-table-wrap{overflow:auto;max-width:100%}
#submitProgress{padding:12px;background:rgba(97,170,141,.13);border-radius:12px;font-size:13px;line-height:1.5;margin-top:12px}
.permit-footer{padding:22px;text-align:center;color:var(--portal-muted);font-size:11.5px;line-height:1.5}
@media(max-width:1000px){.portal-permit-form .form-shell{grid-template-columns:245px minmax(0,1fr)}.portal-permit-form .brand-copy{display:none}.portal-permit-form .form-main{padding:20px}.permit-type-options button{gap:8px;padding:12px}.permit-type-icon{width:32px;flex-basis:32px}.portal-permit-form .progress-wrap{min-width:120px}}
@media(max-width:760px){.portal-permit-form .page-wrap{width:calc(100% - 20px);padding-top:10px}.portal-permit-form .form-shell{display:block}.portal-permit-form .form-aside{padding:22px;border-right:0;border-bottom:1px solid var(--portal-line)}.portal-permit-form .form-aside h1{font-size:28px}.portal-permit-form .service-icon,.portal-permit-form .form-aside .eyebrow,.portal-permit-form .aside-divider,.portal-permit-form .draft-box{display:none}.portal-permit-form .form-aside .lead{font-size:12.5px}.portal-permit-form .section-nav-title{margin-top:20px}.portal-permit-form .section-nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:5px}.portal-permit-form .section-nav button{flex:0 0 130px;grid-template-columns:24px 1fr;padding:9px 5px}.portal-permit-form .section-number{width:24px;height:24px;border-radius:8px}.portal-permit-form .section-nav-label{font-size:11px;white-space:normal}.permit-selector{padding:18px}.permit-selector h1{font-size:26px}.permit-type-options{grid-template-columns:1fr;gap:8px}.permit-type-options button{min-height:65px;padding:12px 14px}.permit-type-options small{margin-top:1px}.portal-permit-form .portal-topbar{gap:12px;padding:12px}.portal-permit-form .brand-link img{width:130px}.portal-permit-form .top-actions{width:100%;justify-content:flex-start}.portal-permit-form .service-switch,.portal-permit-form .top-link{min-height:36px;padding:0 11px;font-size:11px}.portal-permit-form .form-main{padding:17px}.portal-permit-form .fields{grid-template-columns:1fr;padding:15px}.portal-permit-form .field{padding:14px}.portal-permit-form .section-head{padding:18px}.portal-permit-form .section-head h3{font-size:23px}.portal-permit-form .form-main-head h2{font-size:23px}.portal-permit-form .form-main-head{flex-direction:column;gap:12px}.portal-permit-form .progress-wrap{width:100%}.portal-permit-form .goods-inputs{grid-template-columns:1fr}.portal-permit-form .form-actions{gap:13px}.portal-permit-form .actions-left,.portal-permit-form .actions-right{width:100%}.portal-permit-form .actions-right{display:flex}.portal-permit-form .actions-right .btn{flex:1}.portal-permit-form dialog .dialog-card{padding:20px}.review-data{grid-template-columns:1fr;gap:4px}.portal-permit-form .dialog-actions{flex-wrap:wrap}.portal-permit-form .permit-number-note{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.portal-permit-form *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.hub-permit-services{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:850px){.hub-permit-services{grid-template-columns:1fr}}

body.portal-permit-form .field input:not([type="checkbox"]):not([type="file"]),
body.portal-permit-form .field textarea,
body.portal-permit-form .field select{border:1px solid rgba(41,99,80,.20)!important;background:rgba(255,255,255,.38)!important;border-radius:11px!important;min-height:44px;padding:10px 12px}
body.portal-permit-form input[type="file"]::file-selector-button{border:1px solid rgba(41,99,80,.20);border-radius:9px;padding:9px 12px;background:rgba(225,244,235,.65);color:#285e4f;margin-right:10px;cursor:pointer;font:inherit}

/* v32 — detail pengeluaran barang; memakai token kaca/warna portal yang sama. */
.portal-permit-form .form-subheading{grid-column:1/-1;font:700 20px/1.3 Georgia,serif;color:var(--portal-ink);margin:12px 0 0;padding:0 3px}
.portal-permit-form .goods-status-note{margin-top:12px;padding:12px 14px;border:1px solid rgba(69,128,106,.17);background:rgba(224,243,233,.30);border-radius:12px;line-height:1.6;font-size:12px;color:var(--portal-ink)}
.portal-permit-form .goods-row-head{flex-wrap:wrap;gap:8px}
.portal-permit-form .goods-status-badge{border-radius:30px;background:rgba(86,149,122,.13);font-size:11px;padding:5px 9px;color:var(--portal-accent-dark);font-weight:700}
.portal-permit-form .goods-row-head .goods-remove{margin-left:auto}
.portal-permit-form .goods-column{min-width:0;display:flex;flex-direction:column;gap:5px}
.portal-permit-form .goods-column[hidden]{display:none!important}
.portal-permit-form .goods-photo-field{border-top:1px solid rgba(41,99,80,.14);margin-top:18px;padding-top:16px}
.portal-permit-form .goods-photo-label{font-size:13px;font-weight:800}
.portal-permit-form .goods-photo-upload{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px;align-items:center;margin-top:12px}
.portal-permit-form .goods-photo-preview{height:90px;width:90px;border:1px dashed rgba(41,99,80,.25);border-radius:14px;background:rgba(255,255,255,.13);display:grid;place-items:center;overflow:hidden}
.portal-permit-form .goods-photo-preview img{width:100%;height:100%;object-fit:contain}
.portal-permit-form .goods-photo-empty{display:grid;place-items:center;gap:5px;color:var(--portal-muted)}
.portal-permit-form .goods-photo-empty svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.portal-permit-form .goods-photo-empty small{font-size:10px}
.portal-permit-form .goods-photo-empty[hidden],.portal-permit-form .goods-photo-preview img[hidden]{display:none!important}
.portal-permit-form .goods-photo-controls{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.portal-permit-form .goods-photo-controls input{width:100%;max-width:100%;min-width:0;font-size:12px}
.portal-permit-form .goods-photo-name{font-size:11.5px;overflow-wrap:anywhere;color:var(--portal-muted);line-height:1.5}
@media(max-width:480px){.portal-permit-form .goods-photo-upload{grid-template-columns:1fr}.portal-permit-form .goods-photo-controls input{font-size:11px}.portal-permit-form .goods-status-badge{font-size:10px}.portal-permit-form .goods-row{padding:13px}.portal-permit-form .goods-inputs{gap:12px}}

.portal-permit-form .goods-inputs{align-items:stretch}
.portal-permit-form .goods-column-label{font-size:12px;line-height:1.5;font-weight:700}
.portal-permit-form .goods-column input{margin-top:auto}
.portal-permit-form .goods-photo-field>.goods-help{font-size:12px;line-height:1.6;color:var(--portal-muted);margin:6px 0}

/* v34 — template lampiran dan isian bersyarat; tetap memakai layer kaca portal. */
.portal-permit-form .field[hidden],.portal-permit-form .goods-status-note[hidden]{display:none!important}
.portal-permit-form .permit-template{display:flex;align-items:center;gap:12px;padding:14px;margin:14px 0 16px;border:1px solid var(--portal-line);border-radius:15px;background:rgba(226,244,236,.25);min-width:0}
.portal-permit-form .permit-template-icon{display:grid;place-items:center;flex:0 0 38px;height:42px;border-radius:12px;background:rgba(80,148,123,.12);color:var(--portal-accent-dark)}
.portal-permit-form .permit-template-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.portal-permit-form .permit-template-copy{flex:1;min-width:0}
.portal-permit-form .permit-template-copy strong{font-size:12.5px;line-height:1.5;color:var(--portal-ink)}
.portal-permit-form .permit-template-copy p{font-size:11.5px;line-height:1.6;color:var(--portal-muted);margin:4px 0 0}
.portal-permit-form .template-pending{font-size:11px;line-height:1.4;background:rgba(255,255,255,.32);color:var(--portal-muted);border-radius:20px;padding:7px 10px;flex-shrink:0}
.portal-permit-form .template-download{font-size:12px;min-height:38px;flex-shrink:0;white-space:normal;text-align:center;color:var(--portal-accent-dark)}
.portal-permit-form #goodsStatusPrompt{grid-column:1/-1;margin:0}
@media(max-width:600px){.portal-permit-form .permit-template{flex-wrap:wrap;gap:10px;padding:12px}.portal-permit-form .permit-template-copy{flex-basis:calc(100% - 50px)}.portal-permit-form .template-download,.portal-permit-form .template-pending{margin-left:48px;max-width:calc(100% - 48px)}}

/* v36 — tambahan Izin Masuk Barang: grid empat layanan, tanpa mengganti tema. */
.permit-type-options{grid-template-columns:repeat(4,minmax(0,1fr))}
.hub-permit-services{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1120px){.permit-type-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.permit-type-options,.hub-permit-services{grid-template-columns:1fr}}

/* v37 — tiga layanan utama; barang masuk/keluar dipilih di Izin Pekerjaan. */
.hub-permit-services{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.hub-permit-services{grid-template-columns:1fr}}
.portal-permit-form #legacyDestinationNote{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}

/* v54.7 — upload-only rosters; keep KTP attestation distinct from permit approval. */
.portal-permit-form .roster-confirm{display:flex;align-items:flex-start;gap:12px;margin-top:12px;line-height:1.7}
.portal-permit-form .roster-confirm input[type="checkbox"]{width:20px!important;height:20px;min-height:20px;flex:0 0 20px;margin:3px 0 0;accent-color:#377d65}
.portal-permit-form .roster-confirm span{min-width:0;line-height:1.7}
.portal-permit-form [data-field="lampiran_daftar"]{border:1px solid rgba(41,99,80,.24);background:rgba(247,253,249,.62)}
.legacy-roster{margin-top:14px;padding:12px;border:1px dashed var(--portal-line);border-radius:12px;font-size:12px}
.legacy-roster summary{cursor:pointer;font-weight:700}.legacy-roster p{line-height:1.6}
.legacy-roster pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto;font:inherit}

/* v54.15: GedungMap selectors. Only room/floor/area/detail remain free text. */
.portal-permit-form .permit-building-picker{display:grid;gap:12px;min-width:0}
.portal-permit-form [data-building-rows]{display:grid;gap:10px;min-width:0}
.portal-permit-form .permit-building-row{display:flex;align-items:center;gap:10px;min-width:0}
.portal-permit-form .permit-building-row select{min-width:0;flex:1;width:100%;text-overflow:ellipsis}
.portal-permit-form .permit-building-remove{flex:0 0 auto;min-height:44px;padding:8px 10px}
.portal-permit-form .permit-building-add{justify-self:start;min-height:42px;padding:10px 14px}
.portal-permit-form .permit-building-master{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.8rem;line-height:1.55;color:#536f68}
.portal-permit-form .permit-building-master .text-button{min-height:36px;padding:6px 10px;border:1px solid #d8e8e1;border-radius:10px;background:#fff}
.portal-permit-form .permit-building-help{margin:0;font-size:.78rem;line-height:1.6;color:#627b74}
.portal-permit-form .permit-building-legacy{padding:12px 14px;border:1px solid #e8d6aa;border-radius:12px;background:#fffaf0;font-size:.85rem;line-height:1.6}
.portal-permit-form .permit-building-legacy pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere}
.portal-permit-form .permit-version{margin:8px 0 16px;font-size:.74rem;font-weight:700;color:#4c7669}
.portal-permit-form .permit-building-row [hidden]{display:none!important}
@media(max-width:600px){
  .portal-permit-form .permit-building-row{gap:6px}
  .portal-permit-form .permit-building-row select{font-size:16px}
  .portal-permit-form .permit-building-remove{font-size:.76rem;padding:8px 4px}
  .portal-permit-form .permit-building-master{align-items:flex-start}
}
