.iot-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: .65rem 1rem; border: 1px solid transparent; border-radius: .65rem; background: transparent; color: var(--iot-text); font: inherit; font-weight: 750; text-decoration: none; cursor: pointer; }
.iot-button--primary { border-color: rgba(102,231,176,.6); background: linear-gradient(135deg, #168b6d, #146e72); box-shadow: 0 10px 28px rgba(32,172,131,.18); }.iot-button--primary:hover { filter: brightness(1.12); color: #fff; }
.iot-kicker { margin: 0 0 .65rem; color: var(--iot-mint); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.iot-public-home { position: relative; overflow: hidden; min-height: min(660px, calc(100vh - 150px)); padding: clamp(2.5rem, 8vw, 7rem); border: 1px solid var(--iot-line); border-radius: 1.5rem; background: linear-gradient(135deg, rgba(15,59,51,.92), rgba(10,34,43,.96)); box-shadow: 0 28px 80px rgba(0,0,0,.23); }.iot-public-home>* { position: relative; z-index: 1; }.iot-public-home__glow { position: absolute; z-index: 0; right: -10rem; bottom: -11rem; width: 36rem; height: 36rem; border-radius: 50%; background: radial-gradient(circle, rgba(72,198,170,.25), transparent 65%); }.iot-public-home h1 { max-width: 800px; margin: 0; font-size: clamp(2.7rem, 7vw, 6.7rem); line-height: .94; letter-spacing: -.065em; }.iot-public-home__lead { max-width: 590px; margin: 1.6rem 0 2rem; color: #b8d1c6; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.65; }.iot-public-home__facts { display: flex; flex-wrap: wrap; gap: 2.2rem; margin: 4.5rem 0 0; }.iot-public-home__facts div { min-width: 130px; }.iot-public-home__facts dt { color: var(--iot-mint); font-size: 1.05rem; font-weight: 800; }.iot-public-home__facts dd { margin: .35rem 0 0; color: var(--iot-muted); font-size: .85rem; }
.iot-sensors { padding: .25rem 0; }.iot-sensors__header { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin: 0 0 1.5rem; }.iot-sensors__header h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.35rem); letter-spacing: -.045em; }.iot-sensors__header p:not(.iot-kicker) { max-width: 580px; margin: .7rem 0 0; color: var(--iot-muted); }.iot-sensors__form { overflow: hidden; border: 1px solid var(--iot-line); border-radius: 1rem; background: rgba(11,40,35,.78); box-shadow: 0 16px 42px rgba(0,0,0,.15); }.iot-sensors .js-stools-container-bar { padding: 1rem; border-bottom: 1px solid var(--iot-line); background: rgba(255,255,255,.018); }.iot-sensors .js-stools-container-bar .btn, .iot-sensors .js-stools-container-bar input, .iot-sensors .js-stools-container-bar select { min-height: 38px; border-color: var(--iot-line); border-radius: .5rem; background: #0a231f; color: var(--iot-text); }.iot-data-table { overflow-x: auto; }.iot-data-table table { width: 100%; margin: 0; border-collapse: collapse; color: var(--iot-text); }.iot-data-table th { padding: .9rem 1rem; border-bottom: 1px solid var(--iot-line); color: var(--iot-muted); font-size: .7rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }.iot-data-table th a { color: inherit; text-decoration: none; }.iot-data-table td { padding: 1rem; border-bottom: 1px solid rgba(191,238,215,.08); vertical-align: middle; }.iot-data-table tbody tr { transition: background .16s ease; }.iot-data-table tbody tr:hover { background: rgba(102,231,176,.055); }.iot-data-table td>a:not(.btn) { color: #9deec9; font-weight: 750; text-decoration: none; }.iot-data-table .btn { margin-right: .35rem; border-color: var(--iot-line); border-radius: .45rem; background: transparent; color: var(--iot-text); }.iot-data-table .btn:hover { border-color: rgba(102,231,176,.48); background: rgba(102,231,176,.1); }.iot-data-table .icon-publish { color: var(--iot-mint); }.iot-data-table .icon-unpublish { color: #f09e9e; }.iot-data-table tfoot td { padding: 1rem; }.iot-data-table .pagination { margin: 0; }.iot-data-table .pagination a,.iot-data-table .pagination span { border-color: var(--iot-line); background: transparent; color: var(--iot-text); }
.iot-shell .modal-content { border: 1px solid var(--iot-line); border-radius: 1rem; background: #0b2823; color: var(--iot-text); }.iot-shell .modal-header,.iot-shell .modal-footer { border-color: var(--iot-line); }.iot-shell .modal .form-control,.iot-shell .modal .form-select { border-color: var(--iot-line); background: #071d19; color: var(--iot-text); }.iot-shell .modal .btn-primary { border-color: rgba(102,231,176,.6); background: #168b6d; }.iot-shell .modal .btn-secondary { border-color: var(--iot-line); background: transparent; }
@media (max-width: 760px) { .iot-public-home { min-height: 0; padding: 2rem 1.35rem; border-radius: 1rem; }.iot-public-home__facts { gap: 1.25rem; margin-top: 3rem; }.iot-sensors__header { display: block; }.iot-sensors__header .iot-button { width: 100%; margin-top: 1.25rem; }.iot-sensors__form { border-radius: .8rem; }.iot-sensors .js-stools-container-bar { padding: .75rem; }.iot-data-table { overflow: visible; }.iot-data-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }.iot-data-table table,.iot-data-table tbody,.iot-data-table tr,.iot-data-table td { display: block; width: 100%; }.iot-data-table tbody tr { padding: .55rem 0; }.iot-data-table td { display: grid; grid-template-columns: minmax(7rem, .8fr) 1.2fr; gap: 1rem; padding: .55rem 1rem; border: 0; text-align: right; }.iot-data-table td::before { content: attr(data-label); color: var(--iot-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-align: left; text-transform: uppercase; }.iot-data-table td[data-label="Azioni"] { align-items: center; }.iot-data-table tfoot { display: block; }.iot-data-table tfoot tr { display: block; }.iot-data-table tfoot td { display: block; text-align: center; }.iot-data-table tfoot td::before { display: none; } }
