/* base: pas de scroll global */
html, body {
  height: 100%;
  margin: 0;
  overflow: hidden;              /* empêche le micro-scroll */
  overscroll-behavior: none;     /* pas de pull-to-refresh Android */
}



body.upload-page {

  min-height: 100vh;
  height: 100vh;

  height: 100svh;                /* small viewport height: évite le flash blanc */
  min-height: 100svh;
  }


  @supports (height: 100dvh) {
    body.upload-page {
      height: 100dvh;
      min-height: 100dvh;
    }
  }


  body.upload-page {
    margin: 0;
    padding: 16px;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    /* par défaut: pas de fixed */
    background-attachment: scroll;
  }
  
  @media (hover: hover) and (pointer: fine) {
    body.upload-page {
      background-attachment: fixed;  /* OK sur desktop */
    }
  }

  
  md-tabs md-ink-bar {
    background-color: #00b2d8 !important; /* Couleur primary par défaut Material (bleu) */
  }

  .md-select-menu-container {
    z-index: 1000 !important;
  }

  input.border-red,
  input.border-red:focus,
  select.border-red,
  select.border-red:focus {
    border: 1.5px solid red;
    outline: none;
  }
  
  input.border-green,
  input.border-green:focus,
  select.border-green,
  select.border-green:focus {
    border: 1.5px solid rgb(100, 202, 36);
    outline: none;
  }

  select.placeholder {
    color: gray;
  }

  md-tabs-content-wrapper{
    height:100% !important;
  }

  md-tab-content{
    height:100% !important;
  }

  md-tab-item.md-active {
    color: #00b2d8 !important; /* Couleur primaire pour l’onglet sélectionné */
   
  }

  md-tabs md-tab-item .md-ripple {
    background-color: rgba(65, 189, 217, 0.2) !important; /* Couleur primaire, léger */
  }

  md-tabs md-tab-item .md-ripple-container {
    display: none !important;
  }
  
  .circular-container {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  
  .circular-wrapper {
    position: relative;
    width: 100px;
    height: 100px;
  }
  
  .circular-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 18px;
    font-weight: bold;
    color: #333;
    pointer-events: none;
  }

  .remaining-time {
    margin-top: 8px;
    font-size: 14px;
  }
  .remaining-time.finalizing {
    font-weight: bold;
    font-style: italic;
    color: #555;
  }

  .upload-container {

    margin:5px;
    background: white;
    padding: 24px;
    box-shadow: 0 2px 30px rgba(0,0,0,1);
    border-radius: 12px;
    max-height:100%;
    z-index: 1;
  }


  .text-red {
    color: rgb(194, 23, 23);
  }
  .text-green {
    color: rgb(44, 150, 23);
  }


  md-tooltip.multi-line-tooltip {
    white-space: pre-line !important;
    min-height: unset !important;
    max-height:unset !important;
    height:unset !important;
    padding: 0 12px !important;
    margin:0 !important;
    line-height: 1.4;
  }


  .upload-container-titre {
    margin:5px 5px 15px 5px;
    padding: 0; 
  }

/* --- Mobile/Tablet (<960px) override pour forcer l’affichage --- */
@media (max-width: 959px) {
  .upload-container-titre {

    margin:0 0 8px 0;
    padding: 0; 
  }

}



.add-users-bar {
  margin: 0 0 15px 0;
  flex-direction: row;
}




  .add-files-bar {
    margin: 32px 0;
    flex-direction: row;
  }
  .add-button {
    width: 56px; 
    height: 56px;
  }
  .add-icon {
    font-size: 24px;
    color:white !important;
  }
  .add-files-text {
    margin-left: 6px;
    font-size: 18px;
    font-weight: 500; 
    cursor: pointer;
  }


/* =============== Tablette (600–959px) =============== */
@media (min-width: 600px) and (max-width: 959px) {
  .add-files-bar {
    margin: 16px 0;
    flex-direction: row;
  }
  .add-button {
    width: 48px !important; 
    height: 48px !important;
  }
  .add-icon {
    font-size: 20px;
    color:white !important;
  }
  .add-files-text {
    margin-left: 4px;
    font-size: 18px;
  }
}

/* =============== Phone (<600px) =============== */
@media (max-width: 599px) {
  .add-files-bar {
    margin: 8px 0;
    flex-direction: row;
  }
  .add-button {
    width: 40px !important;
    height: 40px !important;
    vertical-align:middle !important;
  }
  .add-icon {
    font-size: 18px;
    color:white !important;
  }
  .add-files-text {
    margin-left: 0;
    font-size: 14px;
    line-height: 1.1;

  }
}





.file-row {
  background: white;
  border-radius: 6px;
  margin: 4px 0;
  padding: 6px 12px;
  position: relative;
  min-height: 65px;
  height: auto;
}

.file-name{
  font-size:0.9em;
}

.file-info{
  font-size:0.65em;
}

.download-button{
  font-size:0.9em !important;
}


.user-row {
  background: #dbf8fe;
  border-radius: 6px;
  margin: 4px 0;
  padding: 6px 12px;
  position: relative;
  min-height: 45px;
  height: auto;
  color:rgb(15, 15, 15);
  z-index:1
}


.downloadZip{
  min-width:400px;
}



/* Mobile (<600px) */
@media (max-width: 599px) {
  .file-row {
    min-height: auto;
    height: auto;
  }
  .file-name{
    margin-top:2px;
    font-size:0.8em;
  }

  .file-info{
    font-size:0.6em;
  }
  
  .download-button{
    font-size:0.7em !important;
  }

  .user-row {
    min-height: auto;
    height: auto;
  }

  .downloadZip{
    min-width:90%;
  }
}



.users-container {

    margin:5px;
    background: #00b2d8;
    color:white;
    padding: 24px;
    box-shadow: 0 2px 30px rgba(0,0,0,1);
    border-radius: 12px;

    z-index: 1;
  }
  
  
  .tab1-behind-wrapper {
    position: absolute;
    top: 30px;
    left: -50px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 0; /* derrière le contenu */
  }

  .tab2-behind-wrapper {
    position: absolute;
    top: 30px;
    right: -50px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 0; /* derrière le contenu */
    transition: opacity 0.3s ease;
    opacity:1;
  }

  /* Quand visible */
.tab2-behind-wrapper.slide-in {
  opacity: 0;
}

.tab2-behind-wrapper.slide-out {
  opacity: 1;
}

  .tab1-item {
 
    padding: 6px 8px;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;

    cursor: pointer;
    transform: translateX(12px);
    transition: transform 0.3s ease, opacity 0.3s ease;
    font-size: 20px;
    opacity: 0.85;
    width:40px;
    height:30px;
    z-index: 0; /* derrière le contenu */
  }
  
  .tab2-item {
 
    padding: 6px 8px;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;

    cursor: pointer;
    transform: translateX(-12px);
    transition: transform 0.3s ease, opacity 0.3s ease;
    font-size: 20px;
    opacity: 0.85;
    width:40px;
    height:30px;
    z-index: 0; /* derrière le contenu */
  }

  .tabSettingsContacts {
    transform: translateX(-11px);
    transition: transform 0.3s ease;
  }

  .tabSettingsContacts:hover {
    transform: translateX(-5px);
  }


  .tab1-item:hover {
    transform: translateX(0);
    opacity: 1;
    z-index: 0; /* derrière le contenu */
  }
  
  .tab2-item:hover {
    transform: translateX(0);
    opacity: 1;
    z-index: 0; /* derrière le contenu */
  }


  md-toast.md-toast-success .md-toast-content {
    background-color: #00b2d8 !important;
    color: white !important;
    font-weight: bold;
    box-shadow: none !important;
  }


  md-toast.md-toast-error .md-toast-content {
    background-color: #d80000 !important;
    color: white !important;
    font-weight: bold;
    box-shadow: none !important;
  }


/* Conteneur général */
.main-container {
  width: 100%;;
  max-width: 1200px;
}

/* Bloc 1 (upload) */
.upload-block {
  min-width:300px;
  transition: margin-left 0.5s ease;
  position: relative;
  z-index: 20;
  max-height:100%;
  
  margin: 0; 
}


.modal-titre{
  font-size:1em;
}

md-checkbox {
  min-height: 18px;
}

md-checkbox .md-container{
  margin:  0 0 0 2px;
  top:11px;
}    


/* Bloc 2 (users) – toujours dans le flow, mais invisible au départ */
.users-block {
  opacity: 0;
  margin-left:-300px;
  transition:  margin-left 0.5s ease, opacity 0.3s ease;
  pointer-events: none;
  min-width: 320px;
  max-width: 500px;
  max-height:100%;
  z-index: 10;
}

/* Quand visible */
.users-block.slide-in {
  opacity: 1;
  margin-left : 0;
  pointer-events: auto;
}

/* Quand caché à nouveau */
.users-block.slide-out {
  opacity: 0;
  margin-left:-320px;
  pointer-events: none;
}




/* --- Mobile/Tablet (<960px) override pour forcer l’affichage --- */
@media (max-width: 959px) {
  .users-block {
    /* tu peux enlever transitions si tu veux */
    opacity: 1 !important;
    pointer-events: auto !important;
 
  }

  .upload-block,
  .users-block {
    transition: none !important;
    -webkit-transition: none !important;
    max-width: 100%;   
    margin: 0 auto;  
  }

}



/* --- phone (<600px) : centré, width 95% --- */
@media (max-width: 599px) {

  .modal-titre{
    font-size:0.8em;
    font-weight:bold;
  }


  
  .upload-block,
  .users-block {
    min-width: 100%;   

  }
}




.bottom-nav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 60px;                          /* ≃ hauteur mobile */
  display: flex;
  background: #fafafa;
  box-shadow: 0 -1px 4px rgba(0,0,0,0.1);
}

.nav-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: rgba(0,0,0,0.54);
  font-size: 12px;
  padding: 0;
  min-width: 0;
  /* ripple, etc. déjà gérés par md-button */
}

.nav-btn .nav-icon {
  font-size: 24px;
  margin-bottom: 0;
}

/* État actif : fond bleu clair + icône et texte bleus */
.nav-btn.active {
  background: rgba(3,169,244,0.15);
  color: #03a9f4;
  border-radius: 16px;
             
}







  
  /* Titre */
  h1.md-headline {
    text-align: center;
    margin-top: 5px;
    margin-bottom: 2px;
  }

   /* Titre */
   h2.md-headline {
    text-align: center;

    margin-top: 2px;
    margin-bottom: 5px;
    font-weight:bold;
    color:#00b2d8;
  }

  /* Scrollbar style (Chrome, Edge, Opera) */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: #00b2d8;
  border-radius: 10px;
  transition: background-color 0.3s;
}

::-webkit-scrollbar-thumb:hover {
  background-color: #00b2d8;
}

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: #00b2d8 transparent;
}

.downloaded-badge {
  position: absolute;
  top: -2px;
  left: -2px;
  z-index: 10;

}
  
  /* Barre de progression */
  .upload-bar {
    margin-bottom: 0;
    gap: 8px;
    align-items: center;
  }
  
  .upload-bar md-progress-linear {
    flex: 1;
    margin-right: 5px;
  }
  
  /* Zone de dépôt */
  .drop-zone {
    border: 2px dashed #00b2d8;
    border-radius: 12px;
    padding: 15px 40px;
    text-align: center;
    color: #00b2d8;
    cursor: pointer;
    margin: 20px 40px;
    transition: background 0.3s, border-color 0.3s;
    background-color: #fff;
    width: 300px;
    max-width:100%;
  }
  
  .drop-zone:hover {
    background: rgb(234, 244, 255);
  }

  md-dialog-actions .md-confirm-button.md-warn-theme {
    background-color: #e53935 !important; /* Rouge foncé */
    color: white !important;
  }
  
  .link {
    cursor:pointer;
    text-decoration: none;
  }


  .link:hover {
    text-decoration: underline;
  }


  .drop-zone.drag-over {
    background-color: rgb(234, 244, 255);
    border-color: #276594;
    box-shadow: 0 0 10px rgba(63, 81, 181, 0.3);
    color: #276594;
  }
  
  /* Table des fichiers */
  .file-table {
    margin-bottom: 24px;
  }
  
  .file-table table {
    width: 100%;
  }
  
  .file-table th,
  .file-table td {
    padding: 12px 8px;
    font-size: 14px;
    vertical-align: middle;
  }
  
  .file-table td a {
    color: #00b2d8;
    text-decoration: none;
  }
  
  .file-table td a:hover {
    text-decoration: underline;
  }
  
  /* Icônes Material Symbols */
  .material-symbols-outlined {


      font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
      font-family: 'Material Symbols Outlined';

      line-height: 1;
      display: inline-block;
      vertical-align: middle;
      font-size: 20px;
      vertical-align: middle;
      color: #00b2d8;
  }
  
  /* Message de statut */
  .message {
    text-align: center;
    color: rgb(255, 255, 255);
    font-weight: bold;
    margin-top: 16px;
  }

  .user-info-block {
    padding: 12px 16px 12px 40px;
    background-color: rgba(28, 46, 58,0.7);
    border-left: 4px solid #00b2d8;
    border-radius: 4px;
    font-size: 15px;
    color: #27c5e8;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    margin-left:0;
  }


  .depot-block{

    width:100%;
  }


  .depot-nom{
    font-weight:bold;
    font-size:1.7em;
    color:#00b2d8;
    background:rgba(28, 46, 58, 0.7);
    padding:8px 18px;
    border-radius:8px;
  }

  .depot-expiration{
    font-size:0.8em;
    color:white;
    border-radius:8px;
    background:#cf0c0c;
    padding:3px 8px;
    font-weight:bold;
  }

  .created-text{
    position:absolute;

    text-align: center;
    font-size:1em;
  }


.listDepots{
  min-width:800px;
}


  .user-admin-block {
    color:white;
    position:absolute;
    top:0;
    left:-10px;
    text-shadow: 0 0 20px rgba(0,0,0,0.5);
    width:100%;
  }

  .newDepotDialog{
    min-width:450px;
  }

  .extendWidth{
    width:auto;
    max-width:auto ;
    height:52px !important;
    max-height:52px !important;
    min-height:52px !important;
  }


/* XS et SM : 0 → 959px */
@media (max-width: 959px) {

  .newDepotDialog{
    min-width:90%;
  }

  .listDepots{
    min-width:90%;
  }

  .extendWidth{
    width:100% !important;
    max-width:100% !important;
    height:52px !important;
    max-height:52px !important;
    min-height:52px !important;
  }

  .user-info-block {
    padding: 8px 12px 8px 22px;
    background-color: transparent;
    border-left: 0px solid #00b2d8;
    box-shadow:none;
    font-size: 10px;
    margin:0;
  }

  .upload-container-titre {
    max-width: 90%;
  }

  .depot-nom{
    font-weight:bold;
    font-size:1.1em;  
    padding:5px 12px;
  }

  .depot-expiration{
    font-size:0.7em;
    padding:2px 5px;
  }

  .depot-block{

    width:100%;
  }



  .created-text{
    position:absolute;

    text-align: center;
    font-size:0.9em;
  }

  
  .drop-zone {
    padding: 24px 12px;
    margin:5px;
    min-height:150px;
  }


}

/* MD : 960px → 1279px */
@media (min-width: 960px) and (max-width: 1279px) {
  /* styles pour écrans moyens (tablettes paysage / petits laptops) */
}

/* LG : 1280px → 1919px */
@media (min-width: 1280px) and (max-width: 1919px) {
  /* styles pour grands écrans (laptops standard) */
}

/* XL : ≥ 1920px */
@media (min-width: 1920px) {
  /* styles pour très grands écrans (moniteurs larges, 4K) */
}










  .md-open-menu-container {
    z-index: 10001 !important;
  }

 


  [ng-cloak], [data-ng-cloak], [x-ng-cloak],
.ng-cloak, .x-ng-cloak, .data-ng-cloak {
  display: none !important;
}

  .usage-green .md-container {
    background-color: #c8e6c9 !important; /* vert clair */
  }
  .usage-green .md-bar {
    background-color: #4caf50 !important; /* vert foncé */
  }
  
  .usage-orange .md-container {
    background-color: #ffe0b2 !important; /* orange clair */
  }
  .usage-orange .md-bar {
    background-color: #fb8c00 !important; /* orange vif */
  }
  
  .usage-red .md-container {
    background-color: #ffcdd2 !important; /* rouge clair */
  }
  .usage-red .md-bar {
    background-color: #f44336 !important; /* rouge vif */
  }



#back2{
  z-index:100;
  position:fixed;
  width:100vw;
  height:100vh;
  pointer-events:none;

}

#back3{
  z-index:200;
  position:fixed;
  width:100vw;
  height:100vh;
  pointer-events:none;

}
#back4{
  z-index:300;
  position:fixed;
  width:100vw;
  height:100vh;
  pointer-events:none;

}


md-backdrop.md-opaque{
  opacity:0.85 !important;
}







.finalizing {
  animation: pulseFinal 1s infinite ease-in-out;
  font-style: italic;
  color: #5e98c4;
}

@keyframes pulseFinal {
  0% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}
  
  /* TXT */
  .txt-container {
    white-space: pre-wrap;
    background-color: #f9f9f9;
    padding: 16px;
    font-family: monospace;
    font-size: 14px;
   
    overflow-y: auto;
    border: 1px solid #ccc;
    border-radius: 4px;
    margin: 24px;
    text-align: left;
  }
  


  .pdf-container {
    background-color: #f9f9f9;

    overflow-y: auto;
    border: 1px solid #ccc;
    border-radius: 4px;

  }
  





  /* Responsive */
  @media (max-width: 599px) {
    .upload-container {
      padding: 16px;
    }
  
    
    .file-table th, .file-table td {
      font-size: 12px;
      padding: 8px 4px;
    }
  }

  
