/* Di Carlo Tours V59 — UI mobile app + pannello dispositivi */
.dct-dev-backdrop{position:fixed;inset:0;background:rgba(3,18,32,.55);backdrop-filter:blur(5px);z-index:2147483600;opacity:0;transition:.2s}
#dctDeviceModal{position:fixed;inset:0;z-index:2147483600;display:none;font-family:"Segoe UI",Arial,sans-serif;color:#17324d}
#dctDeviceModal.open{display:block}#dctDeviceModal.open .dct-dev-backdrop{opacity:1}
.dct-dev-sheet{position:absolute;z-index:2147483601;right:20px;top:82px;width:min(460px,calc(100vw - 30px));max-height:calc(100dvh - 105px);overflow:auto;background:#f7fafc;border:1px solid #d7e2ec;border-radius:22px;box-shadow:0 24px 70px rgba(0,28,55,.28);padding:14px}
.dct-dev-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 3px 12px}.dct-dev-head small{display:block;color:#2d7a4a;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:10px}.dct-dev-head h3{margin:2px 0 0;color:#003366;font-size:20px}.dct-dev-head>button{border:0;background:#e8eef4;color:#23435f;border-radius:50%;width:36px;height:36px;font-size:24px;cursor:pointer}
.dct-dev-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.dct-dev-actions button{border:1px solid #cbd9e5;background:#fff;color:#174b7a;border-radius:11px;padding:10px;font-weight:800;cursor:pointer;font-size:12px}
.dct-dev-card{background:white;border:1px solid #dce6ee;border-radius:16px;padding:12px;margin:9px 0;box-shadow:0 3px 12px rgba(13,44,72,.05)}.dct-dev-card.mine{border-color:#75b789;box-shadow:0 0 0 2px rgba(65,155,93,.08)}.dct-dev-title{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid #edf2f6}.dct-dev-title .bigico{font-size:26px}.dct-dev-title>div{flex:1;min-width:0}.dct-dev-title strong{display:block;color:#0d3150;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dct-dev-title small{display:block;color:#718397;font-size:11px;margin-top:2px}.dct-online-dot{width:9px;height:9px;background:#28a745;border-radius:50%;box-shadow:0 0 0 4px rgba(40,167,69,.12)}.dct-dev-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:6px 1px 0}.dct-dev-row span{color:#76889a}.dct-dev-row b{color:#25445f;text-align:right}.dct-dev-row.muted b{color:#9aa7b3;font-weight:600}.dct-map-link{display:inline-block;margin-top:7px;font-size:11px;font-weight:800;color:#0b63a7;text-decoration:none}.dct-dev-note{font-size:10px;color:#718397;line-height:1.4;margin:11px 3px 2px}

@media (max-width:768px){
  :root{--dct-blue:#003b73;--dct-blue2:#0a5d9e;--dct-ink:#122b40;--dct-bg:#edf3f8;--dct-card:#fff}
  html{background:var(--dct-bg);overscroll-behavior-y:none}
  body.dct-mobile-app{background:linear-gradient(180deg,#e7f0f7 0,#f6f9fb 240px,#edf3f8 100%)!important;color:var(--dct-ink)!important;min-height:100dvh!important;padding-bottom:82px!important;-webkit-tap-highlight-color:transparent}
  body.dct-mobile-app::before{filter:blur(16px)!important;opacity:.12!important;transform:scale(1.08)}
  body.dct-mobile-app *{max-width:100%}
  body.dct-mobile-app button,body.dct-mobile-app .btn,body.dct-mobile-app input[type=button],body.dct-mobile-app input[type=submit]{min-height:46px;touch-action:manipulation}
  body.dct-mobile-app input,body.dct-mobile-app select,body.dct-mobile-app textarea{font-size:16px!important;min-height:44px;border-radius:12px!important}
  body.dct-mobile-app textarea{min-height:96px}
  body.dct-mobile-app .wrap,body.dct-mobile-app .container,body.dct-mobile-app main{width:100%!important;max-width:none!important;margin:0!important;padding-left:12px!important;padding-right:12px!important}
  body.dct-mobile-app .card,body.dct-mobile-app .box,body.dct-mobile-app .panel,body.dct-mobile-app .group,body.dct-mobile-app .category{border-radius:20px!important;box-shadow:0 7px 24px rgba(20,54,82,.08)!important;border-color:rgba(27,74,110,.10)!important}
  body.dct-mobile-app table{font-size:12.5px!important;white-space:nowrap;background:#fff}
  body.dct-mobile-app .table,body.dct-mobile-app .table-wrap,body.dct-mobile-app .table-responsive{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;max-width:100%!important;border-radius:14px!important}
  body.dct-mobile-app table:not([data-dct-no-scroll]){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  body.dct-mobile-app th,body.dct-mobile-app td{padding:10px 9px!important}
  body.dct-mobile-app h1{font-size:22px!important;line-height:1.18}
  body.dct-mobile-app h2{font-size:19px!important;line-height:1.2}
  body.dct-mobile-app h3{font-size:17px!important}
  body.dct-mobile-app .dct-desktop-only{display:none!important}

  /* Home: testata da vera app */
  body.dct-mobile-app header{position:relative!important;top:auto!important;z-index:20!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;margin:0!important;padding:calc(14px + env(safe-area-inset-top)) 14px 18px!important;background:linear-gradient(135deg,#002f5d,#075e9c)!important;border-radius:0 0 28px 28px!important;box-shadow:0 10px 34px rgba(0,47,93,.24)!important;color:#fff!important}
  body.dct-mobile-app header .brand{display:flex!important;align-items:center!important;gap:11px!important}
  body.dct-mobile-app header .brand img{height:48px!important;width:48px!important;object-fit:contain!important;border-radius:13px!important;background:#fff!important;padding:3px!important;box-shadow:0 4px 12px rgba(0,0,0,.15)!important}
  body.dct-mobile-app header .brand .title{font-size:18px!important;color:#fff!important;font-weight:800!important;letter-spacing:-.02em}
  body.dct-mobile-app header .clock-container{margin:0!important;display:flex!important;align-items:center!important;gap:7px!important}
  body.dct-mobile-app .clock,body.dct-mobile-app .date-text{display:none!important}
  body.dct-mobile-app .cloud-status-stack{width:100%!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;align-items:stretch!important}
  body.dct-mobile-app #cloudLiveStatus,body.dct-mobile-app #cloudDeviceCount,body.dct-mobile-app #dataProtectionStatus{font-size:10.5px!important;padding:8px 9px!important;border-radius:12px!important;text-align:center!important;border:1px solid rgba(255,255,255,.19)!important;background:rgba(255,255,255,.13)!important;color:#fff!important;backdrop-filter:blur(8px)!important}
  body.dct-mobile-app #cloudDeviceCount::after{content:'  ›';font-weight:900} body.dct-mobile-app #dataProtectionStatus{grid-column:1/-1!important}

  body.dct-mobile-app .main-wrapper{padding:14px 11px 90px!important}
  body.dct-mobile-app .area-choice{display:grid!important;grid-template-columns:1fr!important;gap:11px!important;margin:0 auto!important}
  body.dct-mobile-app .area-choice-btn{position:relative!important;min-height:112px!important;border:0!important;border-radius:22px!important;padding:17px 18px!important;display:grid!important;grid-template-columns:58px 1fr 22px!important;grid-template-rows:auto auto!important;column-gap:13px!important;align-items:center!important;text-align:left!important;overflow:hidden!important;box-shadow:0 9px 26px rgba(29,61,88,.12)!important;color:#17324d!important;background:#fff!important}
  body.dct-mobile-app .area-choice-btn::after{content:'›';grid-column:3;grid-row:1/3;font-size:30px;color:#8ca0b2;align-self:center}
  body.dct-mobile-app .area-choice-btn:nth-child(1){background:linear-gradient(135deg,#fff 55%,#eaf5ff)!important}
  body.dct-mobile-app .area-choice-btn:nth-child(2){background:linear-gradient(135deg,#fff 55%,#fff4de)!important}
  body.dct-mobile-app .area-choice-btn:nth-child(3){background:linear-gradient(135deg,#fff 55%,#eff3f8)!important}
  body.dct-mobile-app .area-choice-btn .area-icon{grid-column:1;grid-row:1/3;margin:0!important;width:56px;height:56px;border-radius:17px;display:grid!important;place-items:center;font-size:29px!important;background:#eaf3fb}
  body.dct-mobile-app .area-choice-btn:nth-child(2) .area-icon{background:#fff0d2}body.dct-mobile-app .area-choice-btn:nth-child(3) .area-icon{background:#eef1f5}
  body.dct-mobile-app .area-choice-btn strong{grid-column:2;grid-row:1;font-size:17px!important;color:#123653!important;align-self:end}
  body.dct-mobile-app .area-choice-btn small{grid-column:2;grid-row:2;font-size:11px!important;line-height:1.35!important;color:#728598!important;align-self:start}

  body.dct-mobile-app .area-topbar{position:sticky!important;top:8px!important;z-index:40!important;border-radius:17px!important;margin:0 0 11px!important;padding:10px 11px 10px 14px!important;background:rgba(255,255,255,.96)!important;box-shadow:0 8px 24px rgba(20,54,82,.13)!important;backdrop-filter:blur(12px)!important}
  body.dct-mobile-app .area-topbar h2{font-size:18px!important;color:#083e6b!important}
  body.dct-mobile-app .area-back{font-size:0!important;display:grid!important;place-items:center!important;width:38px!important;height:38px!important;padding:0!important;border-radius:12px!important}.area-back::after{content:'↩';font-size:18px!important}
  body.dct-mobile-app .setup-gear{width:38px!important;height:38px!important;border-radius:12px!important;background:#f5f8fb!important}
  body.dct-mobile-app .category{padding:13px!important;margin-bottom:12px!important;background:rgba(255,255,255,.93)!important;border-radius:20px!important}
  body.dct-mobile-app .category-title{font-size:13px!important;text-transform:uppercase!important;letter-spacing:.035em!important;color:#42637f!important;margin-bottom:10px!important;padding:1px 2px 9px!important;border-bottom:1px solid #e9eff4!important}
  body.dct-mobile-app .category-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important}
  body.dct-mobile-app .card-btn{position:relative!important;min-height:104px!important;padding:13px 10px!important;border:1px solid #e4ebf1!important;border-radius:17px!important;justify-content:center!important;font-size:13px!important;color:#123653!important;background:linear-gradient(160deg,#fff,#f8fbfd)!important;box-shadow:0 4px 13px rgba(25,58,84,.05)!important}
  body.dct-mobile-app .card-btn span{font-size:10px!important;line-height:1.3!important;color:#778a9c!important}

  /* I moduli restano dentro la shell: Home continua a mantenere realtime + protezione */
  body.dct-mobile-app.dct-module-open{overflow:hidden!important;padding-bottom:0!important}
  body.dct-mobile-app #iframeContainer{padding:0!important}
  body.dct-mobile-app.dct-module-open #iframeContainer{display:block!important;position:fixed!important;inset:0!important;z-index:2147481000!important;background:#eef3f8!important}
  body.dct-mobile-app.dct-module-open #iframeContainer>#backHome{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;height:calc(54px + env(safe-area-inset-top))!important;padding:env(safe-area-inset-top) 14px 0!important;margin:0!important;border:0!important;border-radius:0!important;background:linear-gradient(135deg,#002f5d,#075e9c)!important;color:#fff!important;font-size:14px!important;font-weight:800!important}
  body.dct-mobile-app.dct-module-open #iframeView{display:block!important;width:100%!important;height:calc(100dvh - 54px - env(safe-area-inset-top))!important;border:0!important;border-radius:0!important;background:#edf3f8!important}

  /* Subpage caricata nell'iframe */
  body.dct-mobile-app:not(.dct-module-open){padding-bottom:20px!important}
  body.dct-mobile-app.dct-mobile-embedded .dct-mobile-titlebar,body.dct-mobile-app.dct-mobile-embedded .dct-mobile-nav{display:none!important}
  .dct-mobile-titlebar{position:sticky;top:0;z-index:2147482000;min-height:56px;background:linear-gradient(135deg,#002f5d,#075e9c);color:#fff;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;box-shadow:0 5px 18px rgba(0,35,65,.18)}
  .dct-mobile-titlebar img{width:36px;height:36px;object-fit:contain;border-radius:10px;background:#fff;padding:2px}.dct-mobile-titlebar strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dct-mobile-titlebar .dct-mobile-spacer{flex:1}.dct-mobile-titlebar .dct-mobile-home{border:1px solid rgba(255,255,255,.2)!important;background:rgba(255,255,255,.12)!important;color:white!important;border-radius:11px!important;min-height:36px!important;height:36px;padding:0 11px!important;font-size:18px!important}
  .dct-mobile-nav{position:fixed;z-index:2147483000;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));height:60px;background:rgba(255,255,255,.97);border:1px solid #d7e3ec;border-radius:19px;box-shadow:0 10px 30px rgba(0,35,65,.18);display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;backdrop-filter:blur(14px)}.dct-mobile-nav button{border:0!important;background:transparent!important;color:#20425f!important;font:700 11px/1.1 Arial,sans-serif!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;min-height:60px!important;padding:4px!important;border-radius:0!important;box-shadow:none!important}.dct-mobile-nav button .ico{font-size:21px;line-height:1}.dct-mobile-nav button:active{background:#eaf2f8!important}
  body.dct-mobile-subpage:not(.dct-mobile-embedded){padding-bottom:80px!important}

  /* Barra sicurezza Home più elegante e compatta */
  body.dct-mobile-app #backupFloatingBtn{left:10px!important;right:10px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;border:1px solid rgba(173,193,209,.72)!important;border-radius:19px!important;box-shadow:0 10px 30px rgba(0,35,65,.18)!important;padding:5px!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;overflow:visible!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(14px)!important}
  body.dct-mobile-app #backupFloatingBtn button{font-size:9px!important;padding:5px 3px!important;min-width:0!important;white-space:normal!important;line-height:1.05!important;height:46px!important;border-radius:13px!important}

  .dct-dev-sheet{right:8px;left:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:82dvh;border-radius:26px;padding:14px 12px 16px}.dct-dev-actions{grid-template-columns:1fr}.dct-dev-card{border-radius:18px}.dct-dev-head h3{font-size:19px}
}

/* V66 LOGIN GATE: il CSS mobile non puo' riaccendere comandi admin prima del login. */
@media(max-width:768px){html:not(.dct-admin-auth) body.dct-mobile-app #backupFloatingBtn,html:not(.dct-admin-auth) body.dct-mobile-app header,html:not(.dct-admin-auth) body.dct-mobile-app #dashboard,html:not(.dct-admin-auth) body.dct-mobile-app #iframeContainer,html:not(.dct-admin-auth) body.dct-mobile-app .section{display:none!important}}
