/*
 GreenEco — Meetings: draggable + freely resizable managed dialogs
 Version: 3.3.16.44.2.549

 - Initial modal remains centered by the existing Meetings layout.
 - Drag by the modal title/header.
 - Resize from any edge or corner.
 - Body scrolls internally after resizing.
 - Dedicated Meeting Archive popup keeps its existing native drag/resize code.
 - Screen only; no print rules.
*/

@media screen {

  html.greeneco-meetings-route
  .greeneco-managed-modal-card.meetings-dialog-free-window,

  body.greeneco-meetings-route
  .greeneco-managed-modal-card.meetings-dialog-free-window{
    /*
     * Keep relative positioning until the first drag/resize so the current
     * Meetings centering remains unchanged. JS freezes the exact geometry
     * to position:fixed only when the user starts interacting.
     */
    position:relative!important;

    min-width:min(320px,calc(100vw - 16px))!important;
    min-height:min(160px,calc(100vh - 16px))!important;

    max-width:calc(100vw - 16px)!important;
    max-height:calc(100vh - 16px)!important;

    display:flex!important;
    flex-direction:column!important;

    overflow:hidden!important;
    box-sizing:border-box!important;

    resize:none!important;
    transition:none!important;
  }

  html.greeneco-meetings-route
  .greeneco-managed-modal-card.meetings-dialog-free-window
  > .modal-header,

  body.greeneco-meetings-route
  .greeneco-managed-modal-card.meetings-dialog-free-window
  > .modal-header{
    flex:0 0 auto!important;

    cursor:move!important;

    user-select:none!important;
    -webkit-user-select:none!important;
    touch-action:none!important;
  }

  html.greeneco-meetings-route
  .meetings-dialog-free-window
  > .modal-header
  :is(button,input,select,textarea,a,label,[role="button"],[role="link"]),

  body.greeneco-meetings-route
  .meetings-dialog-free-window
  > .modal-header
  :is(button,input,select,textarea,a,label,[role="button"],[role="link"]){
    cursor:auto!important;
    user-select:auto!important;
    -webkit-user-select:auto!important;
    touch-action:auto!important;
  }

  html.greeneco-meetings-route
  .meetings-dialog-free-window
  > .modal-body,

  body.greeneco-meetings-route
  .meetings-dialog-free-window
  > .modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;

    overflow:auto!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
  }

  /* =========================================================
     Resize hit zones — all 4 edges + all 4 corners
     ========================================================= */

  html.greeneco-meetings-route .meetings-dialog-resize-handle,
  body.greeneco-meetings-route .meetings-dialog-resize-handle{
    position:absolute!important;
    z-index:80!important;

    margin:0!important;
    padding:0!important;

    border:0!important;
    background:transparent!important;

    user-select:none!important;
    -webkit-user-select:none!important;
    touch-action:none!important;

    pointer-events:auto!important;
  }

  /* Side handles */
  .greeneco-meetings-route .meetings-dialog-resize-n{
    top:0!important;
    right:18px!important;
    left:18px!important;
    height:7px!important;
    cursor:n-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-s{
    right:18px!important;
    bottom:0!important;
    left:18px!important;
    height:7px!important;
    cursor:s-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-e{
    top:18px!important;
    right:0!important;
    bottom:18px!important;
    width:7px!important;
    cursor:e-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-w{
    top:18px!important;
    bottom:18px!important;
    left:0!important;
    width:7px!important;
    cursor:w-resize!important;
  }

  /* Corner handles */
  .greeneco-meetings-route
  :is(
    .meetings-dialog-resize-ne,
    .meetings-dialog-resize-nw,
    .meetings-dialog-resize-se,
    .meetings-dialog-resize-sw
  ){
    width:18px!important;
    height:18px!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-ne{
    top:0!important;
    right:0!important;
    cursor:ne-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-nw{
    top:0!important;
    left:0!important;
    cursor:nw-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-se{
    right:0!important;
    bottom:0!important;
    cursor:se-resize!important;
  }

  .greeneco-meetings-route .meetings-dialog-resize-sw{
    bottom:0!important;
    left:0!important;
    cursor:sw-resize!important;
  }

  /*
   * Small visual resize mark on both lower corners.
   * It does not change geometry and does not move on hover.
   */
  .greeneco-meetings-route
  :is(
    .meetings-dialog-resize-se,
    .meetings-dialog-resize-sw
  )::after{
    content:""!important;
    position:absolute!important;
    bottom:3px!important;

    width:9px!important;
    height:9px!important;

    opacity:.45!important;
    pointer-events:none!important;
  }

  .greeneco-meetings-route
  .meetings-dialog-resize-se::after{
    right:3px!important;
    border-right:2px solid #65747c!important;
    border-bottom:2px solid #65747c!important;
  }

  .greeneco-meetings-route
  .meetings-dialog-resize-sw::after{
    left:3px!important;
    border-left:2px solid #65747c!important;
    border-bottom:2px solid #65747c!important;
  }

  /* Stable controls: no movement while hovering or pressing. */
  html.greeneco-meetings-route
  .meetings-dialog-free-window button:hover,

  html.greeneco-meetings-route
  .meetings-dialog-free-window button:focus-visible,

  html.greeneco-meetings-route
  .meetings-dialog-free-window button:active,

  body.greeneco-meetings-route
  .meetings-dialog-free-window button:hover,

  body.greeneco-meetings-route
  .meetings-dialog-free-window button:focus-visible,

  body.greeneco-meetings-route
  .meetings-dialog-free-window button:active{
    translate:none!important;
    scale:none!important;
  }

  body.meetings-dialog-drag-active{
    user-select:none!important;
    -webkit-user-select:none!important;
    cursor:grabbing!important;
  }

  body.meetings-dialog-resize-active{
    user-select:none!important;
    -webkit-user-select:none!important;
  }
}


/* =============================================================
   v549 — SEARCH POPUPS ONLY
   All Meetings Search-button dialogs can move anywhere on screen
   and resize freely by mouse.

   This intentionally overrides the old v504 search offset box,
   which clipped Search dialogs to the area below the ribbon.
   ============================================================= */

@media screen {

  /*
   * Expand only the backdrop that contains an identified Meetings Search
   * window to the complete viewport. This is required so dragging/resizing
   * is not clipped by the historical top-offset search container.
   */
  html.greeneco-meetings-route
  .greeneco-managed-modal-backdrop:has(
    > .greeneco-managed-modal-card.meetings-search-dialog-free-window
  ),

  body.greeneco-meetings-route
  .greeneco-managed-modal-backdrop:has(
    > .greeneco-managed-modal-card.meetings-search-dialog-free-window
  ){
    position:fixed!important;

    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    inset:0!important;

    width:100vw!important;
    height:100vh!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;

    margin:0!important;
    padding:8px!important;

    display:grid!important;
    place-items:center!important;
    align-items:center!important;
    justify-items:center!important;
    align-content:center!important;
    justify-content:center!important;

    overflow:hidden!important;
    box-sizing:border-box!important;

    z-index:12500!important;
  }

  /*
   * Search window starts centered.
   * On first mouse drag/resize the existing v548/v549 adapter freezes this
   * exact rectangle to fixed pixel geometry and the user can move/resize it
   * freely.
   */
  html.greeneco-meetings-route
  .greeneco-managed-modal-backdrop
  > .greeneco-managed-modal-card.meetings-search-dialog-free-window,

  body.greeneco-meetings-route
  .greeneco-managed-modal-backdrop
  > .greeneco-managed-modal-card.meetings-search-dialog-free-window{
    position:relative!important;

    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    inset:auto!important;

    align-self:center!important;
    justify-self:center!important;

    margin:0!important;

    min-width:min(420px,calc(100vw - 16px))!important;
    min-height:min(220px,calc(100vh - 16px))!important;

    max-width:calc(100vw - 16px)!important;
    max-height:calc(100vh - 16px)!important;

    overflow:hidden!important;

    transform:none!important;
    translate:none!important;
    scale:none!important;
  }

  /*
   * Search criteria/action rows stay fixed inside the resized popup.
   * Search results table receives the remaining internal body space.
   */
  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  > .modal-body{
    min-height:0!important;
    overflow:auto!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  .meeting-record-search{
    min-height:0!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  .meeting-search-results{
    min-height:0!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  .meeting-search-results
  > .table-scroll{
    max-height:none!important;
    overflow:auto!important;
    scrollbar-gutter:stable!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  .meeting-search-result-table thead th{
    position:sticky!important;
    top:0!important;
    z-index:7!important;
  }

  /* Stronger visible hit area for mouse resizing on Search windows only. */
  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  > :is(
    .meetings-dialog-resize-n,
    .meetings-dialog-resize-s
  ){
    height:9px!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  > :is(
    .meetings-dialog-resize-e,
    .meetings-dialog-resize-w
  ){
    width:9px!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  > :is(
    .meetings-dialog-resize-ne,
    .meetings-dialog-resize-nw,
    .meetings-dialog-resize-se,
    .meetings-dialog-resize-sw
  ){
    width:22px!important;
    height:22px!important;
  }

  .greeneco-meetings-route
  .meetings-search-dialog-free-window
  > .modal-header{
    cursor:move!important;
  }
}
