/* DISTAK ERP v2.4 — Gestão de Fotografias */
.photo-manager{display:grid;gap:18px}.photo-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.photo-manager-head h3{margin:3px 0 5px}.photo-manager-head p{margin:0;color:var(--muted)}.photo-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-size:10px;font-weight:850}.photo-head-actions{display:flex;gap:8px;align-items:center}
.photo-upload-form{border:1px solid var(--line);border-radius:14px;padding:17px;background:#f8fafc}.photo-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo-form-grid label{display:grid;gap:6px;font-size:12px;font-weight:750}.photo-form-grid .full{grid-column:1/-1}.photo-form-grid input,.photo-form-grid select,.photo-form-grid textarea,.photo-search{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;font:inherit}
.photo-drop-zone{border:2px dashed #cbd5e1!important;border-radius:14px;padding:28px!important;text-align:center;cursor:pointer;background:#fff;transition:.18s}.photo-drop-zone:hover,.photo-drop-zone.dragging{border-color:var(--gold)!important;background:#fffbeb}.photo-drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.photo-drop-zone strong,.photo-drop-zone span,.photo-drop-zone small{display:block}.photo-drop-zone span,.photo-drop-zone small{font-weight:500;color:var(--muted);margin-top:5px}
.photo-selection-summary{font-size:12px;color:var(--muted);margin:12px 0}.photo-upload-progress>div{height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden}.photo-upload-progress span{display:block;height:100%;width:0;background:var(--gold);transition:.2s}.photo-upload-progress small{display:block;margin-top:6px;color:var(--muted)}
.photo-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.photo-filters{display:flex;gap:7px;flex-wrap:wrap}.photo-filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font:inherit;font-size:12px;cursor:pointer}.photo-filters button.active{background:var(--nav);color:#fff;border-color:var(--nav)}.photo-filters span{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:rgba(148,163,184,.17);margin-left:4px;font-size:10px}.photo-search{min-width:230px}
.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.photo-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 6px 22px rgba(15,23,42,.045)}.photo-preview{position:relative;display:block;width:100%;height:180px;border:0;padding:0;background:#e2e8f0;cursor:zoom-in}.photo-preview img{width:100%;height:100%;object-fit:cover;display:block}.photo-category{position:absolute;left:9px;top:9px;background:rgba(15,23,42,.86);color:#fff;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;backdrop-filter:blur(5px)}.category-patologias{background:rgba(185,28,28,.9)}.category-depois{background:rgba(4,120,87,.9)}
.photo-card-body{padding:12px}.photo-card-title{display:flex;justify-content:space-between;gap:9px;align-items:flex-start}.photo-card-title strong{font-size:13px}.photo-card-title small{white-space:nowrap;color:var(--muted);font-size:10px}.photo-card-body p{font-size:11px;line-height:1.45;color:var(--muted);min-height:32px;margin:8px 0}.photo-card-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:9px;font-size:10px;color:var(--muted)}.photo-action{border:0;background:transparent;padding:3px;cursor:pointer;color:#334155;font-size:10px}.photo-action.danger{color:#be123c}.photo-empty{grid-column:1/-1;text-align:center;padding:42px;border:1px dashed var(--line);border-radius:13px;color:var(--muted)}.photo-empty strong{display:block;color:var(--ink);margin-bottom:6px}
.photo-lightbox{width:min(1100px,96vw);max-width:none;height:min(90vh,900px);padding:0;border:0;border-radius:16px;background:#070b13;color:#fff;overflow:hidden}.photo-lightbox::backdrop{background:rgba(2,6,23,.85)}.photo-lightbox figure{height:100%;margin:0;display:grid;grid-template-rows:1fr auto}.photo-lightbox img{width:100%;height:100%;min-height:0;object-fit:contain}.photo-lightbox figcaption{padding:13px 18px;background:#0f172a}.photo-lightbox figcaption strong,.photo-lightbox figcaption span{display:block}.photo-lightbox figcaption span,.photo-lightbox figcaption p{color:#cbd5e1;font-size:12px;margin:4px 0 0}.photo-lightbox-close,.photo-lightbox-nav{position:absolute;z-index:2;border:0;background:rgba(15,23,42,.72);color:#fff;cursor:pointer}.photo-lightbox-close{right:12px;top:12px;width:38px;height:38px;border-radius:50%;font-size:23px}.photo-lightbox-nav{top:46%;width:44px;height:58px;font-size:40px;border-radius:9px}.photo-lightbox-nav.prev{left:12px}.photo-lightbox-nav.next{right:12px}.photo-lightbox-nav:disabled{opacity:.3}.photo-edit-dialog{width:min(660px,95vw)}
@media(max-width:950px){.photo-form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.photo-manager-head{flex-direction:column}.photo-form-grid{grid-template-columns:1fr}.photo-form-grid .full{grid-column:auto}.photo-toolbar{align-items:stretch}.photo-search{width:100%;min-width:0}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-preview{height:145px}}@media(max-width:420px){.photo-gallery{grid-template-columns:1fr}}

.mobile-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0}
.camera-button{display:inline-flex!important;align-items:center;justify-content:center;background:var(--nav);color:#fff;border-radius:9px;padding:10px 15px;cursor:pointer;font-weight:800!important}
.camera-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.photo-gps-status{font-size:11px;color:var(--muted);padding:7px 10px;border-radius:999px;background:#e2e8f0}
.photo-gps-status.active{background:#dcfce7;color:#166534}
.photo-action{text-decoration:none}
@media(max-width:620px){
  .mobile-photo-actions{display:grid;grid-template-columns:1fr 1fr}
  .mobile-photo-actions .photo-gps-status{grid-column:1/-1;text-align:center}
  .camera-button,.mobile-photo-actions .btn{width:100%;min-height:44px}
}


/* DISTAK ERP v2.6 — interface mobile-first */
.photo-mobile-dashboard,.photo-mobile-bottom-bar{display:none}

@media(max-width:700px){
  .photo-manager{
    gap:14px;
    padding-bottom:82px;
  }

  .photo-manager-head{
    display:block;
    padding:2px 2px 0;
  }

  .photo-manager-head h3{
    font-size:21px;
    margin-top:5px;
  }

  .photo-manager-head p{
    font-size:13px;
    line-height:1.45;
  }

  .desktop-photo-add{display:none!important}

  .photo-mobile-dashboard{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .photo-mobile-action{
    min-height:112px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    padding:15px 12px;
    text-align:left;
    display:flex;
    flex-direction:column;
    justify-content:center;
    box-shadow:0 8px 24px rgba(15,23,42,.06);
    cursor:pointer;
  }

  .photo-mobile-action:first-child{
    grid-column:1/-1;
    min-height:132px;
  }

  .photo-mobile-action.primary{
    background:linear-gradient(135deg,var(--nav),#1e293b);
    color:#fff;
    border-color:transparent;
  }

  .photo-mobile-action strong{
    font-size:15px;
    margin-top:5px;
  }

  .photo-mobile-action small{
    margin-top:4px;
    color:var(--muted);
    font-size:11px;
  }

  .photo-mobile-action.primary small{color:#cbd5e1}
  .photo-mobile-icon{font-size:29px;line-height:1}

  .photo-upload-form{
    padding:14px;
    border-radius:16px;
  }

  .photo-form-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }

  .photo-form-grid label{
    font-size:12px;
  }

  .photo-form-grid input,
  .photo-form-grid select,
  .photo-form-grid textarea{
    min-height:46px;
    font-size:16px;
  }

  .mobile-photo-actions{
    grid-template-columns:1fr;
  }

  .camera-button,
  .mobile-photo-actions .btn{
    min-height:50px;
    border-radius:12px;
    font-size:14px;
  }

  .photo-drop-zone{
    padding:20px 12px!important;
  }

  .photo-upload-form .actions{
    position:sticky;
    bottom:68px;
    z-index:4;
    display:grid;
    grid-template-columns:1fr 1.4fr;
    padding:10px;
    margin:12px -6px -6px;
    background:rgba(248,250,252,.96);
    backdrop-filter:blur(10px);
    border-radius:13px;
    box-shadow:0 -6px 20px rgba(15,23,42,.08);
  }

  .photo-upload-form .actions .btn{
    min-height:48px;
  }

  .photo-toolbar{
    gap:9px;
  }

  .photo-filters{
    display:flex;
    flex-wrap:nowrap;
    width:100%;
    overflow-x:auto;
    padding-bottom:4px;
    scrollbar-width:none;
  }

  .photo-filters::-webkit-scrollbar{display:none}

  .photo-filters button{
    flex:0 0 auto;
    min-height:39px;
    padding:8px 12px;
  }

  .photo-search{
    min-height:46px;
    font-size:16px;
  }

  .photo-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }

  .photo-card{
    border:0;
    border-radius:9px;
    box-shadow:none;
    overflow:hidden;
    position:relative;
  }

  .photo-preview{
    height:auto;
    aspect-ratio:1/1;
  }

  .photo-category{
    left:5px;
    top:5px;
    max-width:calc(100% - 10px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:8px;
    padding:4px 6px;
  }

  .photo-card-body{
    display:none;
  }

  .photo-empty{
    grid-column:1/-1;
    padding:35px 18px;
  }

  .photo-lightbox{
    width:100vw;
    height:100dvh;
    max-height:none;
    border-radius:0;
  }

  .photo-lightbox-close{
    width:44px;
    height:44px;
  }

  .photo-lightbox-nav{
    width:42px;
    height:54px;
  }

  .photo-mobile-bottom-bar{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    position:fixed;
    z-index:40;
    left:0;
    right:0;
    bottom:0;
    min-height:64px;
    padding:6px max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    background:rgba(255,255,255,.97);
    border-top:1px solid var(--line);
    box-shadow:0 -8px 25px rgba(15,23,42,.12);
    backdrop-filter:blur(14px);
  }

  .photo-mobile-bottom-bar button{
    border:0;
    background:transparent;
    color:#334155;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    font:inherit;
    font-size:10px;
    font-weight:750;
    cursor:pointer;
  }

  .photo-mobile-bottom-bar button span{
    font-size:22px;
    line-height:1;
  }

  .photo-mobile-bottom-bar button:first-child{
    color:var(--nav);
  }
}

@media(max-width:390px){
  .photo-mobile-dashboard{
    grid-template-columns:1fr;
  }

  .photo-mobile-action:first-child{
    grid-column:auto;
  }

  .photo-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}


/* DISTAK ERP v2.7 — Painel Mobile de Obra */
.mobile-work-panel{display:none;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#0f172a,#1e293b);padding:16px;color:#fff;box-shadow:0 18px 40px rgba(15,23,42,.18)}
.mobile-work-status{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.mobile-work-status>div{display:grid;gap:2px}.mobile-work-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:850;color:#f5c451}.mobile-work-status strong{font-size:20px}.mobile-work-status small{color:#cbd5e1}.mobile-work-state{background:#dcfce7;color:#166534;border:1px solid #86efac;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}
.mobile-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mobile-work-action{min-height:96px;border:1px solid rgba(255,255,255,.15);border-radius:15px;background:rgba(255,255,255,.08);color:#fff;padding:11px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;cursor:pointer}.mobile-work-action span{font-size:27px}.mobile-work-action strong{font-size:13px}.mobile-work-action small{font-size:10px;color:#cbd5e1}.mobile-work-action.primary{background:#d4a72c;color:#111827;border-color:#f5c451}.mobile-work-action.primary small{color:#47380e}.mobile-work-action.warning{background:rgba(239,68,68,.18);border-color:rgba(248,113,113,.45)}.mobile-work-action:active{transform:scale(.97)}
.mobile-work-module{display:grid;gap:14px}.work-module-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:16px}.work-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.work-module-head h3{margin:0 0 3px}.work-module-head p{margin:0;color:var(--muted);font-size:12px}.work-module-icon{font-size:30px}.daily-checklist{display:grid;gap:9px}.daily-check{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:11px;background:#f8fafc;font-weight:700}.daily-check input{width:20px;height:20px}.work-form{display:grid;gap:12px}.work-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.work-form input,.work-form textarea,.work-form select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}.work-form-actions{display:flex;justify-content:flex-end;gap:9px}.work-local-note{padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:11px}.work-entry-list{display:grid;gap:8px}.work-entry{border:1px solid var(--line);border-radius:12px;padding:11px;background:#f8fafc}.work-entry strong{display:block}.work-entry small{color:var(--muted)}
@media(max-width:760px){.mobile-work-panel{display:block;margin-bottom:14px}.obra-finance-summary{display:none}.obra-tabs{position:sticky;top:0;z-index:5;background:#fff;padding:8px 0}.mobile-work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-work-action{min-height:91px;padding:9px 5px}.mobile-work-action strong{font-size:12px}.mobile-work-action small{font-size:9px}.mobile-operational-tab{display:none!important}.obra-ficha-head .obra-kicker{display:none}.obra-ficha-head h2{font-size:19px}.obra-head-actions #obraFichaEditar{display:none}}
@media(min-width:761px){.mobile-operational-tab{display:none}}


/* Diário de obra — atalhos operacionais visíveis em desktop e mobile */
.diario-work-panel{display:grid;gap:16px}
.diario-work-grid{background:linear-gradient(135deg,var(--nav),#263348);border-radius:16px;padding:14px;grid-template-columns:repeat(5,minmax(0,1fr))}
.diario-work-module{min-height:120px}
@media(max-width:900px){.diario-work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.diario-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}}

.work-documents{display:grid;gap:16px}.work-document-form{display:grid;grid-template-columns:1fr 220px;gap:12px;padding:16px;background:#f8fafc;border:1px solid var(--line);border-radius:14px}.work-document-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.work-document-form input,.work-document-form select{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.work-document-form small{color:var(--muted);font-weight:500}.work-document-form .full{grid-column:1/-1}.work-document-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) 220px auto;gap:9px;align-items:center}.work-document-toolbar input,.work-document-toolbar select{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.work-document-count{font-size:12px;color:var(--muted);white-space:nowrap}.work-document-list{display:grid;gap:9px}.work-document-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff}.work-document-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#eef2ff;font-size:20px}.work-document-item strong,.work-document-item small{display:block}.work-document-item small{margin-top:3px;color:var(--muted)}.work-document-actions{display:flex;gap:7px}@media(max-width:650px){.work-document-form{grid-template-columns:1fr}.work-document-toolbar{grid-template-columns:1fr}.work-document-item{grid-template-columns:auto 1fr}.work-document-actions{grid-column:1/-1}.work-document-actions .btn{flex:1}.photo-head-actions{width:100%}.photo-head-actions .btn{flex:1}}
