:root { --ink: #292a31; --panel: #34353e; --muted: #9b9ca6; --line: #4a4c57; --blue: #2fa8df; --red: #f04d47; --yellow: #f8ba29; --green: #5bc346; }
html { min-height: 100%; font-size: 16px; } body { min-height: 100vh; margin: 0; color: #f7f7fa; background: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.login-page { background: radial-gradient(circle at 8% 14%, rgba(47,168,223,.16), transparent 23rem), radial-gradient(circle at 91% 88%, rgba(91,195,70,.13), transparent 25rem), var(--ink); }.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); }.login-brand { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 6vw, 5rem); background: linear-gradient(145deg, #30313a, #22232a); border-right: 1px solid rgba(255,255,255,.08); }.brand-logo { width: min(100%, 580px); height: auto; object-fit: contain; object-position: left center; }.brand-copy { max-width: 31rem; }.eyebrow { display: block; margin-bottom: .7rem; color: var(--blue); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }.brand-copy h1, .dashboard-placeholder h1 { margin: 0 0 .8rem; font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 750; letter-spacing: -.045em; }.brand-copy p, .dashboard-placeholder p { color: #c3c4cb; line-height: 1.65; }.brand-dots { display: flex; gap: .55rem; }.brand-dots span { width: .7rem; height: .7rem; border-radius: 50%; }.brand-dots span:nth-child(1){background:var(--red)} .brand-dots span:nth-child(2){background:var(--yellow)} .brand-dots span:nth-child(3){background:var(--blue)} .brand-dots span:nth-child(4){background:var(--green)}
.login-panel { display: grid; place-items: center; padding: 1.5rem; }.login-card { width: min(100%, 27rem); padding: clamp(1.7rem, 4vw, 3rem); background: rgba(52,53,62,.88); border: 1px solid rgba(255,255,255,.1); border-radius: 1.5rem; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.22); }.login-mark { width: 4rem; height: 4rem; margin-bottom: 1.7rem; border-radius: 1.15rem; }.login-card h2 { margin: 0 0 .5rem; font-size: 1.7rem; font-weight: 700; }.login-card > p { margin: 0 0 1.8rem; color: var(--muted); }.form-label { margin-bottom: .45rem; color: #e6e6eb; font-size: .9rem; font-weight: 650; }.form-control { min-height: 3rem; color: #f8f8fb; background: #292a31; border: 1px solid var(--line); border-radius: .75rem; }.form-control::placeholder { color: #777985; }.form-control:focus { color: #fff; background: #292a31; border-color: var(--blue); box-shadow: 0 0 0 .22rem rgba(47,168,223,.17); }.btn-login { min-height: 3rem; color: #16171c; background: var(--yellow); border: 0; border-radius: .75rem; font-weight: 800; }.btn-login:hover, .btn-login:focus { color: #16171c; background: #ffca45; }.validation-summary-errors { margin-bottom: 1rem; padding: .8rem 1rem; color: #ffb6b2; background: rgba(240,77,71,.12); border: 1px solid rgba(240,77,71,.35); border-radius: .7rem; font-size: .9rem; }.validation-summary-errors ul { margin: 0; padding-left: 1.1rem; }.field-validation-error { color: #ffaaa5; font-size: .8rem; }.login-footer { margin-top: 1.5rem; color: #858793; font-size: .78rem; text-align: center; }.dashboard-placeholder { min-height: 100vh; display: flex; align-items: center; justify-content: center; gap: 2rem; padding: 2rem; background: linear-gradient(145deg, #30313a, #22232a); }.dashboard-logo { width: 15rem; }.dashboard-placeholder h1 { font-size: 2.4rem; }
@media (max-width: 860px) { .login-shell { grid-template-columns: 1fr; }.login-brand { min-height: 14rem; padding: 2rem; }.brand-logo { width: min(23rem, 82vw); }.brand-copy, .brand-dots { display: none; }.login-panel { padding: 1.5rem 1rem 2rem; }.dashboard-placeholder { flex-direction: column; text-align: center; }.dashboard-logo { width: 12rem; } }
.chat-page { max-width: 950px; margin: 0 auto; }.chat-card { display: flex; flex-direction: column; height: calc(100vh - 15rem); min-height: 30rem; padding: 1rem; background: #fff; border-radius: .5rem; box-shadow: 0 .125rem .25rem rgba(161,172,184,.16); }.chat-card > button { align-self: center; }.chat-messages { display: flex; flex: 1; flex-direction: column; gap: .75rem; padding: 1rem .2rem; overflow-y: auto; }.chat-message { align-self: flex-start; max-width: 75%; padding: .7rem .9rem; background: #f5f5f9; border-radius: .6rem .6rem .6rem 0; }.chat-message.mine { align-self: flex-end; color: #fff; background: #696cff; border-radius: .6rem .6rem 0; }.chat-meta { display: flex; gap: .7rem; margin-bottom: .35rem; font-size: .75rem; }.chat-meta time { opacity: .7; }.chat-message p { margin: 0; white-space: pre-wrap; }.chat-message img { display: block; max-width: 100%; max-height: 16rem; margin-top: .5rem; border-radius: .4rem; }.chat-card form { border-top: 1px solid #e7e7e9; padding-top: .75rem; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 16rem minmax(0, 1fr); background: #f5f6f9; }.app-sidebar { display: flex; flex-direction: column; padding: 1.3rem .9rem; color: #dedee5; background: var(--ink); }.sidebar-brand { display: flex; align-items: center; gap: .65rem; padding: .25rem .5rem 1.8rem; color: #fff; font-size: 1.05rem; text-decoration: none; }.sidebar-brand img { width: 2.2rem; border-radius: .65rem; }.sidebar-brand b { color: var(--yellow); font-weight: 650; }.sidebar-nav { display: grid; gap: .25rem; }.sidebar-link { padding: .7rem .75rem; color: #b7b8c0; border-radius: .65rem; font-weight: 600; text-decoration: none; }.sidebar-link:hover { color: #fff; background: rgba(255,255,255,.09); }.sidebar-link span { display: inline-block; width: 1.5rem; color: var(--blue); }.sidebar-label { margin: 1.25rem .75rem .35rem; color: #797b86; font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.sidebar-user { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: auto; padding: 1rem .55rem .3rem; border-top: 1px solid rgba(255,255,255,.1); color: #bebfc7; font-size: .8rem; }.sidebar-user button { padding: 0; color: var(--yellow); background: transparent; border: 0; font-size: .8rem; }.app-content { color: #292a31; }.admin-page { max-width: 1100px; padding: clamp(1.5rem, 4vw, 3.5rem); }.dashboard-page { min-height: 100vh; padding-top: 16vh; }.admin-page .eyebrow { color: #168fc6; }.admin-page h1 { margin: 0; font-size: clamp(2rem, 4vw, 2.8rem); letter-spacing: -.045em; }.admin-page p { margin: .65rem 0 0; color: #6c6e77; }.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }.btn-primary { background: var(--blue); border-color: var(--blue); }.btn-primary:hover, .btn-primary:focus { background: #188fc4; border-color: #188fc4; }.data-card { overflow: hidden; padding: 0; background: #fff; border: 1px solid #e2e4ea; border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(30,32,40,.05); }.admin-table { color: #34353e; }.admin-table thead th { padding: 1rem 1.25rem; color: #777984; background: #fafafd; border-bottom-color: #e8e9ee; font-size: .73rem; letter-spacing: .06em; text-transform: uppercase; }.admin-table tbody td { padding: 1rem 1.25rem; border-color: #eeeef2; }.admin-table small { display: block; margin-top: .15rem; color: #81838d; }.empty-state { padding: 3rem 1.5rem; color: #777984; text-align: center; }.form-card { padding: clamp(1.25rem, 3vw, 2rem); }.form-page { max-width: 920px; }.form-page .form-label { color: #3d3e47; }.form-page .form-control { color: #34353e; background: #fff; border-color: #d9dbe2; }.form-page .form-control:focus { color: #34353e; background: #fff; }.form-text { color: #858792; font-size: .78rem; }.form-section-title { margin: 2.3rem 0 1rem; color: #383943; font-size: 1.05rem; font-weight: 750; }.checkbox-grid, .group-selection { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }.check-card { display: flex; align-items: flex-start; gap: .65rem; padding: .85rem; cursor: pointer; border: 1px solid #e0e2e8; border-radius: .75rem; }.check-card:hover { border-color: #a9d9ee; background: #f7fcff; }.check-card input { margin-top: .23rem; accent-color: var(--blue); }.check-card strong, .check-card small { display: block; }.check-card small { margin-top: .15rem; color: #81838d; font-size: .76rem; }.form-actions { display: flex; justify-content: flex-end; gap: .7rem; margin-top: 2rem; }.role-badge, .status-badge { display: inline-block; padding: .27rem .5rem; border-radius: .4rem; color: #646671; background: #f0f1f4; font-size: .73rem; font-weight: 700; }.role-badge.admin { color: #0878aa; background: #e6f6fd; }.role-badge.super { color: #377d28; background: #edf9e9; }.status-badge.active { color: #2d7b2a; background: #edf9e9; }.status-badge.inactive { color: #9b4e49; background: #fff0ee; }
@media (max-width: 700px) { .app-shell { grid-template-columns: 1fr; }.app-sidebar { position: sticky; top: 0; z-index: 2; display: block; padding: .6rem 1rem; }.sidebar-brand { display: inline-flex; padding: 0; }.sidebar-brand img { width: 1.9rem; }.sidebar-nav { display: flex; gap: .15rem; margin-top: .6rem; overflow-x: auto; }.sidebar-link { padding: .45rem .6rem; white-space: nowrap; font-size: .82rem; }.sidebar-link span, .sidebar-label, .sidebar-user { display: none; }.admin-page { padding: 1.5rem 1rem; }.page-heading { align-items: start; flex-direction: column; margin-bottom: 1.4rem; }.page-heading .btn { width: 100%; }.admin-table thead th, .admin-table tbody td { padding: .8rem; }.form-actions { flex-direction: column-reverse; }.form-actions .btn { width: 100%; } }
.discussion-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }.discussion-card { display: flex; flex-direction: column; min-height: 14rem; padding: 1.2rem; background: #fff; border: 1px solid #e2e4ea; border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(30,32,40,.05); }.discussion-card-top { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }.discussion-card time { color: #858792; font-size: .78rem; }.discussion-card h2 { margin: 1.1rem 0 .45rem; font-size: 1.1rem; font-weight: 750; }.discussion-card p { display: -webkit-box; overflow: hidden; margin: 0; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }.discussion-card footer { display: flex; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: 1rem; color: #858792; font-size: .8rem; }.discussion-card footer a { color: #168fc6; font-weight: 700; text-decoration: none; }.existing-photo { display: block; height: 5rem; margin-bottom: .5rem; overflow: hidden; border-radius: .6rem; }.existing-photo img { width: 100%; height: 100%; object-fit: cover; }#discussion-map { height: 20rem; overflow: hidden; border: 1px solid #d9dbe2; border-radius: .8rem; }.status-toggle { max-width: 28rem; }
.form-page { max-width: none; }.map-actions { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }.tag-selection { display: flex; flex-wrap: wrap; gap: .55rem; }.tag-check { padding: .38rem .65rem; color: #45505a; cursor: pointer; background: #f2f9fc; border: 1px solid #cceafa; border-radius: 99rem; font-size: .85rem; }.tag-check input { margin-right: .25rem; accent-color: var(--blue); }.relation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }.relation-grid h3 { margin: 0 0 .7rem; font-size: .92rem; font-weight: 750; }.selection-box { display: grid; gap: .5rem; max-height: 17rem; padding-right: .4rem; overflow: auto; }.selection-box .check-card { padding: .65rem; }
.pending-tags { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .7rem; }.pending-tag { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .55rem; color: #096b94; background: #e6f6fd; border-radius: 99rem; font-size: .82rem; font-weight: 650; }.pending-tag button { padding: 0; color: inherit; background: transparent; border: 0; font-size: 1.1rem; line-height: 1; }
/* Allineato al container-fluid delle pagine operative di lipad-platform-web. */
.app-content { min-width: 0; width: 100%; }.admin-page { width: 100%; max-width: none; padding: 30px; }.form-page { width: 100%; max-width: none; }
@media (max-width: 700px) { .admin-page { padding: 1.5rem 1rem; } }
/* Componenti e spaziature coerenti con il tema amministrativo condiviso. */
body:not(.login-page) { color: #697a8d; background: #f5f5f9; }.layout-menu .app-brand-logo img { width: 2.25rem; border-radius: .55rem; }.layout-menu .app-brand-text { color: #566a7f; font-size: 1.1rem; letter-spacing: -.02em; text-transform: none; }.layout-navbar { margin: .75rem 1.5rem 0; width: calc(100% - 3rem); border-radius: .5rem; box-shadow: 0 .125rem .375rem rgba(161,172,184,.12); }.navbar-text { color: #566a7f; font-weight: 600; }.content-wrapper { min-height: 100vh; }.content-footer { margin-top: auto; color: #697a8d; font-size: .8rem; }.admin-page { padding-top: 1.5rem; }.admin-page h1 { color: #566a7f; font-size: 1.625rem; font-weight: 600; letter-spacing: normal; }.admin-page .eyebrow { color: #696cff; }.data-card { border: 0; border-radius: .5rem; box-shadow: 0 .125rem .25rem rgba(161,172,184,.12); }.form-card { border-radius: .5rem; }.btn-primary { background: #696cff; border-color: #696cff; }.btn-primary:hover, .btn-primary:focus { background: #5f61e6; border-color: #5f61e6; }.form-page .form-control { min-height: auto; border-color: #d9dee3; border-radius: .375rem; }.form-page .form-control:focus { border-color: #696cff; box-shadow: 0 0 .25rem .05rem rgba(105,108,255,.1); }.check-card { border-color: #d9dee3; border-radius: .375rem; }.check-card:hover { border-color: #696cff; background: #f7f7ff; }.status-badge.active { color: #71dd37; background: rgba(113,221,55,.16); }.status-badge.inactive { color: #ff3e1d; background: rgba(255,62,29,.16); }
@media (max-width: 1199px) { .layout-navbar { margin: 0; width: 100%; border-radius: 0; }.content-footer { display: none; } }
/* Login sullo stesso tema chiaro del gestionale. */
.login-page { color: #697a8d; background: #f5f5f9; }.login-shell { min-height: 100vh; grid-template-columns: minmax(0, 1fr) minmax(22rem, .85fr); }.login-brand { color: #566a7f; background: linear-gradient(145deg, #fff 0%, #f3f5ff 100%); border-right: 1px solid #d9dee3; }.login-brand-identity { display: flex; align-items: center; gap: .8rem; color: #566a7f; font-size: 1.45rem; font-weight: 600; }.login-brand-identity img { width: 3.2rem; height: 3.2rem; border-radius: .9rem; }.login-brand-identity b { color: #696cff; }.brand-copy h1 { color: #566a7f; font-size: clamp(2rem, 3.4vw, 3.15rem); font-weight: 600; letter-spacing: -.03em; }.brand-copy p { color: #697a8d; }.login-panel { background: #fff; }.login-card { color: #566a7f; background: #fff; border: 0; border-radius: .5rem; box-shadow: 0 .125rem .5rem rgba(161,172,184,.18); }.login-card h2 { color: #566a7f; font-weight: 600; }.login-card > p { color: #697a8d; }.login-mark { border-radius: .8rem; }.login-card .form-label { color: #566a7f; }.login-card .form-control { min-height: auto; color: #566a7f; background: #fff; border-color: #d9dee3; border-radius: .375rem; }.login-card .form-control::placeholder { color: #a1acb8; }.login-card .form-control:focus { color: #566a7f; background: #fff; border-color: #696cff; box-shadow: 0 0 .25rem .05rem rgba(105,108,255,.1); }.btn-login { min-height: auto; color: #fff; background: #696cff; border-radius: .375rem; }.btn-login:hover, .btn-login:focus { color: #fff; background: #5f61e6; }.login-footer { color: #a1acb8; }.validation-summary-errors { color: #ff3e1d; background: rgba(255,62,29,.12); border-color: rgba(255,62,29,.3); }
@media (max-width: 860px) { .login-shell { grid-template-columns: 1fr; }.login-brand { min-height: auto; padding: 1.5rem; border-right: 0; border-bottom: 1px solid #d9dee3; }.login-brand-identity { font-size: 1.2rem; }.login-brand-identity img { width: 2.5rem; height: 2.5rem; }.brand-copy, .brand-dots { display: none; }.login-panel { padding: 1.5rem 1rem 2rem; } }
@media (max-width: 700px) { .map-actions, .relation-grid { display: grid; grid-template-columns: 1fr; }.map-actions .btn { width: 100%; } }

/* Li.pad Desk — interfaccia operativa chiara e adattiva. */
:root { --lipad-ink: #1f2933; --lipad-slate: #64748b; --lipad-canvas: #f6f8fb; --lipad-card: #ffffff; --lipad-line: #e6ebf1; --lipad-blue: #27a9e1; --lipad-red: #ed4c47; --lipad-yellow: #f4b523; --lipad-green: #5abe49; }
body:not(.login-page) { color: var(--lipad-ink); background: var(--lipad-canvas); }
.layout-menu { border-right: 1px solid var(--lipad-line); background: #fff !important; box-shadow: none !important; }
.lipad-brand { height: 5.5rem; padding: 1rem 1.15rem; }
.lipad-brand .app-brand-link { min-width: 0; gap: .55rem; }
.lipad-brand .app-brand-logo { display: grid; flex: 0 0 2.35rem; width: 2.35rem; height: 2.35rem; place-items: center; overflow: hidden; border-radius: .65rem; }
.lipad-brand .app-brand-logo img { width: 2.8rem; max-width: none; }
.lipad-brand .brand-wordmark { width: 7.45rem; height: 2.3rem; object-fit: contain; object-position: center; }
.layout-menu .menu-inner { padding: .85rem .7rem !important; }
.layout-menu .menu-link { min-height: 2.85rem; margin: .12rem 0; border-radius: .65rem; color: #64748b; font-weight: 600; }
.layout-menu .menu-link:hover { color: var(--lipad-ink); background: #f4f7fa; }
.layout-menu .menu-item.active > .menu-link { color: #157daa; background: rgba(39,169,225,.12); }
.layout-menu .menu-item.active > .menu-link .menu-icon { color: var(--lipad-blue); }
.layout-menu .menu-header { margin-top: 1.4rem; padding-left: .9rem; color: #9aa7b6; font-size: .66rem; letter-spacing: .12em; }
.layout-navbar { height: 4.55rem; margin: 0; width: 100%; border-bottom: 1px solid var(--lipad-line); border-radius: 0; box-shadow: none; background: rgba(255,255,255,.94) !important; }
.topbar-context { align-items: center; gap: .65rem; color: var(--lipad-slate); font-size: .82rem; }
.topbar-kicker { color: var(--lipad-ink); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.navbar-text { display: inline-flex; align-items: center; color: var(--lipad-ink); font-weight: 650; }
.navbar-text i { color: var(--lipad-blue); font-size: 1.25rem; }
.layout-navbar .btn-outline-secondary { border-color: #d9e1e9; color: #526171; }
.layout-navbar .btn-outline-secondary:hover { color: #fff; background: var(--lipad-ink); border-color: var(--lipad-ink); }
.content-wrapper { min-height: calc(100vh - 4.55rem); background: var(--lipad-canvas); }
.admin-page { padding: clamp(1.5rem, 3vw, 3rem); }
.page-heading { margin-bottom: 1.75rem; }
.page-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.admin-page h1 { color: var(--lipad-ink); font-size: clamp(1.65rem, 2.3vw, 2.25rem); font-weight: 720; letter-spacing: -.035em; }
.admin-page p { max-width: 44rem; color: var(--lipad-slate); line-height: 1.65; }
.admin-page .eyebrow { color: #1687b8; font-size: .7rem; font-weight: 800; letter-spacing: .13em; }
.btn-primary { border-color: var(--lipad-blue); background: var(--lipad-blue); box-shadow: 0 .35rem .8rem rgba(39,169,225,.17); }
.btn-primary:hover, .btn-primary:focus { border-color: #138fc4; background: #138fc4; }
.data-card, .discussion-card { border: 1px solid var(--lipad-line); border-radius: .9rem; box-shadow: 0 .4rem 1.5rem rgba(15,23,42,.035); }
.admin-table thead th { color: #738092; background: #fbfcfe; }
.admin-table tbody td { border-color: #edf1f5; }
.responsive-list-header, .responsive-list-row { display: grid; align-items: center; column-gap: 1.25rem; }
.responsive-list-header { min-height: 3.1rem; padding: 0 1.25rem; color: #738092; background: #fbfcfe; border-bottom: 1px solid #edf1f5; font-size: .7rem; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.responsive-list-row { min-height: 4.85rem; padding: .9rem 1.25rem; border-bottom: 1px solid #edf1f5; transition: background-color .15s ease; }
.responsive-list-row:last-child { border-bottom: 0; }.responsive-list-row:hover { background: #fcfdff; }
.responsive-list--groups .responsive-list-header, .responsive-list--groups .responsive-list-row { grid-template-columns: minmax(11rem, 1.1fr) minmax(13rem, 2fr) auto; }
.responsive-list--users .responsive-list-header, .responsive-list--users .responsive-list-row { grid-template-columns: minmax(11rem, 1.25fr) minmax(9rem, 1fr) minmax(5.5rem, .55fr) minmax(6rem, .6fr) auto; }
.responsive-list--discussions .responsive-list-header, .responsive-list--discussions .responsive-list-row { grid-template-columns: minmax(5.7rem, .65fr) minmax(13rem, 1.8fr) minmax(7rem, .8fr) minmax(8rem, .8fr) auto; }
.list-cell { min-width: 0; color: #536274; font-size: .9rem; }.list-cell strong { display: block; overflow: hidden; color: var(--lipad-ink); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.list-cell small { display: block; overflow: hidden; margin-top: .14rem; color: #8a97a6; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }.list-actions { display: flex; justify-content: flex-end; gap: .45rem; white-space: nowrap; }
.content-footer { border-top: 1px solid var(--lipad-line); background: #fff !important; }

.dashboard-page { min-height: auto; padding-top: clamp(1.6rem, 4vw, 3.5rem); }
.dashboard-hero { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 14rem; padding: clamp(1.6rem, 3.8vw, 3rem); overflow: hidden; background: linear-gradient(118deg, #fff 0%, #f6fbff 68%, #effbf1 100%); border: 1px solid var(--lipad-line); border-radius: 1.15rem; box-shadow: 0 .65rem 2rem rgba(15,23,42,.04); }
.dashboard-hero h1 { margin: .15rem 0 .55rem; }
.dashboard-hero p { margin: 0; }
.dashboard-hero img { width: clamp(7.5rem, 14vw, 11rem); margin: -1rem 1.5rem -1rem 0; }
.dashboard-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.dashboard-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }.dashboard-stats article { display: grid; grid-template-columns: auto 1fr; gap: .2rem .65rem; padding: 1rem; background: #fff; border: 1px solid var(--lipad-line); border-radius: .8rem; }.dashboard-stats i { grid-row: span 2; color: #1687b8; font-size: 1.45rem; }.dashboard-stats span { color: #718096; font-size: .76rem; }.dashboard-stats strong { color: var(--lipad-ink); font-size: 1.4rem; }
.dashboard-action { display: flex; align-items: center; gap: .9rem; min-height: 7.25rem; padding: 1.1rem 1.2rem; color: var(--lipad-ink); background: #fff; border: 1px solid var(--lipad-line); border-radius: .9rem; box-shadow: 0 .35rem 1.3rem rgba(15,23,42,.025); text-decoration: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.dashboard-action:hover { color: var(--lipad-ink); border-color: rgba(39,169,225,.42); box-shadow: 0 .8rem 1.8rem rgba(15,23,42,.07); transform: translateY(-2px); }
.dashboard-action > span:nth-child(2) { display: grid; gap: .22rem; min-width: 0; }
.dashboard-action small { color: var(--lipad-slate); line-height: 1.35; }
.dashboard-action > i { margin-left: auto; color: #a8b3c0; }
.action-icon { display: grid; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: .75rem; font-size: 1.35rem; }
.action-icon.blue { color: #138fc4; background: rgba(39,169,225,.13); }.action-icon.yellow { color: #b57c00; background: rgba(244,181,35,.18); }.action-icon.green { color: #328a24; background: rgba(90,190,73,.15); }

.login-page { background: var(--lipad-canvas); }.login-shell { grid-template-columns: minmax(0, 1.2fr) minmax(25rem, .8fr); }.login-brand { background: linear-gradient(135deg, #fff 0%, #f4f9fd 100%); border-right: 1px solid var(--lipad-line); }.login-brand-identity { height: 3.5rem; }.login-wordmark { width: 11rem; height: 3.5rem; object-fit: contain; object-position: left center; }.brand-copy h1, .login-card h2 { color: var(--lipad-ink); }.brand-copy p { margin: 0; color: var(--lipad-slate); }.login-panel { background: #fff; }.login-card { width: min(100%, 28rem); border: 1px solid var(--lipad-line); box-shadow: 0 1rem 3rem rgba(15,23,42,.07); }.login-mark { width: 4.25rem; height: 4.25rem; object-fit: contain; border-radius: 0; }.btn-login { background: var(--lipad-blue); box-shadow: 0 .4rem 1rem rgba(39,169,225,.2); }.btn-login:hover, .btn-login:focus { background: #138fc4; }

@media (max-width: 1199px) { .layout-navbar { margin: 0; width: 100%; }.layout-menu { box-shadow: .45rem 0 1.4rem rgba(15,23,42,.08) !important; }.content-wrapper { min-height: 100vh; } }
@media (max-width: 700px) { .admin-page { padding: 1.25rem 1rem 2rem; }.dashboard-hero { align-items: flex-start; min-height: 0; padding: 1.4rem; }.dashboard-hero img { width: 5.75rem; margin: 0; }.dashboard-actions { grid-template-columns: 1fr; }.page-heading .btn { width: auto; }.topbar-context { display: none !important; }
  .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .responsive-list-header { display: none; }.responsive-list-row, .responsive-list--groups .responsive-list-row, .responsive-list--users .responsive-list-row, .responsive-list--discussions .responsive-list-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; min-height: 0; padding: 1.15rem; }.responsive-list-row:hover { background: #fff; }.responsive-list-row + .responsive-list-row { border-top: .55rem solid var(--lipad-canvas); }.list-cell { display: grid; gap: .22rem; }.list-cell::before { content: attr(data-label); color: #8a97a6; font-size: .66rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.list-identity { grid-column: 1 / -1; }.list-identity strong, .list-identity small { overflow: visible; white-space: normal; }.list-actions { grid-column: 1 / -1; justify-content: flex-start; padding-top: .15rem; }.list-actions .btn { flex: 1 1 auto; }.data-card { overflow: visible; background: transparent; border: 0; box-shadow: none; }.responsive-list { overflow: hidden; background: #fff; border: 1px solid var(--lipad-line); border-radius: .9rem; box-shadow: 0 .4rem 1.5rem rgba(15,23,42,.035); } }

/* Workspace chat: conversazione ampia, dettagli e media sempre disponibili. */
.chat-workspace-page { overflow: hidden; }.chat-workspace-page .layout-page { height: 100vh; overflow: hidden; }.chat-workspace-page .content-wrapper { min-height: 0; overflow: hidden; }.chat-workspace-page .container-p-y { display: flex; flex: 1 1 auto; min-height: 0; padding: 0 !important; }.chat-workspace-page .content-footer { display: none; }
.chat-workspace { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(0, 4fr); flex: 1 1 auto; min-height: 0; background: #fff; }.chat-main-pane { display: grid; grid-column: 2; grid-template-rows: auto auto minmax(0, 1fr) auto; min-width: 0; min-height: 0; }.chat-workspace-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 2.5vw, 2.25rem); border-bottom: 1px solid var(--lipad-line); }.chat-workspace-header .eyebrow { margin-bottom: .2rem; color: #1687b8; font-size: .66rem; font-weight: 800; letter-spacing: .12em; }.chat-workspace-header h1 { margin: 0; color: var(--lipad-ink); font-size: 1.2rem; font-weight: 720; letter-spacing: -.02em; }.chat-load-older { justify-self: center; margin: .7rem 0 -.25rem; padding: .28rem .7rem; color: #607084; background: #f4f7fa; border: 1px solid #e3eaf0; border-radius: 99rem; font-size: .75rem; font-weight: 650; }.chat-load-older:hover { color: #1687b8; background: #edf8fc; }
.chat-workspace .chat-messages { margin-top:15px; display: flex; flex-direction: column; gap: .8rem; min-height: 0; padding: 1.35rem clamp(1rem, 3vw, 3rem); overflow-y: auto; background: linear-gradient(180deg, #fbfdff 0%, #fff 20rem); }.chat-workspace .chat-message { position: relative; align-self: flex-start; max-width: min(44rem, 78%); padding: .75rem .9rem; color: #334155; background: #f1f5f8; border: 1px solid #e8eef3; border-radius: .8rem .8rem .8rem .15rem; }.chat-workspace .chat-message.mine { align-self: flex-end; color: #fff; background: #249ed5; border-color: #249ed5; border-radius: .8rem .8rem .15rem; }.chat-workspace .chat-meta { display: flex; gap: .65rem; margin-bottom: .35rem; font-size: .74rem; }.chat-workspace .chat-meta strong { color: #1687b8; }.chat-workspace .mine .chat-meta strong { color: rgba(255,255,255,.95); }.chat-workspace .chat-meta time { opacity: .72; }.chat-workspace .chat-message p { margin: 0; line-height: 1.45; white-space: pre-wrap; }.chat-message-tools { position: absolute; top: .25rem; right: .25rem; opacity: 0; transition: opacity .15s ease; }.chat-message:hover .chat-message-tools, .chat-message:focus-within .chat-message-tools { opacity: 1; }.quote-message { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; color: #1687b8; background: #fff; border: 1px solid #dce8ee; border-radius: .45rem; }.quote-message:hover { color: #fff; background: #1687b8; }.quoted-message { display: grid; gap: .1rem; margin: 0 0 .55rem; padding: .4rem .55rem; color: #5a6c7c; background: rgba(255,255,255,.72); border-left: 3px solid #6cc5e9; border-radius: .25rem; font-size: .75rem; }.quoted-message strong { color: #1687b8; }.quoted-message span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.mine .quoted-message { color: #eefaff; background: rgba(1,72,107,.2); border-left-color: #fff; }.mine .quoted-message strong { color: #fff; }.message-image { display: block; margin-top: .55rem; }.message-image img { display: block; max-width: min(100%, 23rem); max-height: 19rem; border-radius: .5rem; }
.chat-composer { padding: .75rem clamp(1rem, 2.5vw, 2.25rem) 1rem; background: #fff; border-top: 1px solid var(--lipad-line); }.quote-preview { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; padding: .45rem .6rem; background: #eff9fd; border-left: 3px solid var(--lipad-blue); border-radius: .3rem; }.quote-preview span { color: #658093; font-size: .74rem; }.quote-preview strong { color: #1687b8; }.quote-preview p { max-width: 34rem; margin: .05rem 0 0; overflow: hidden; color: #415466; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }.quote-preview button { padding: 0; color: #668092; background: transparent; border: 0; font-size: 1.15rem; }.composer-row { display: flex; align-items: center; gap: .55rem; }.composer-row .form-control { min-width: 0; min-height: 2.75rem; color: #334155; background: #f7f9fb; border-color: #dce5ed; border-radius: .65rem; }.composer-row .form-control:focus { color: #334155; background: #fff; border-color: var(--lipad-blue); box-shadow: 0 0 0 .2rem rgba(39,169,225,.12); }.composer-row .btn { min-height: 2.75rem; white-space: nowrap; }.composer-row .btn i { margin-right: .3rem; }.attach-image { display: grid; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; place-items: center; color: #1687b8; cursor: pointer; background: #edf8fc; border: 1px solid #ccecf8; border-radius: .65rem; font-size: 1.3rem; }.attach-image:hover { color: #fff; background: #1687b8; }.composer-row input[type=file] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.chat-sidebar { grid-column: 1; min-width: 0; overflow: hidden; background: #fbfcfe; border-right: 1px solid var(--lipad-line); }.chat-sidebar-content { height: 100%; overflow: hidden; }.details-toggle { display: none; }.chat-sidebar-section { padding: 1.1rem; border-bottom: 1px solid var(--lipad-line); }.sidebar-section-label { color: #8a97a6; font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.discussion-summary h2 { margin: .35rem 0 .45rem; color: var(--lipad-ink); font-size: 1rem; font-weight: 720; }.discussion-summary > p { margin: 0 0 .8rem; color: #66778a; font-size: .82rem; line-height: 1.45; }.discussion-summary dl { display: grid; gap: .4rem; margin: 0; }.discussion-summary dl div { display: flex; justify-content: space-between; gap: .75rem; font-size: .76rem; }.discussion-summary dt { color: #8a97a6; font-weight: 600; }.discussion-summary dd { margin: 0; color: #526477; text-align: right; }.section-heading { display: flex; align-items: center; justify-content: space-between; }.section-heading > i { color: #7f92a4; font-size: 1.15rem; }.participant-count { display: grid; min-width: 1.3rem; height: 1.3rem; place-items: center; color: #1687b8; background: #e7f7fd; border-radius: 99rem; font-size: .7rem; font-weight: 800; }.participant-list { display: grid; gap: .65rem; margin: .8rem 0 0; padding: 0; list-style: none; }.participant-list li { display: flex; align-items: center; gap: .55rem; min-width: 0; }.participant-avatar { display: grid; flex: 0 0 1.85rem; width: 1.85rem; height: 1.85rem; place-items: center; color: #167da9; background: #def3fb; border-radius: 50%; font-size: .72rem; font-weight: 800; }.participant-list strong, .participant-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.participant-list strong { color: #425466; font-size: .8rem; }.participant-list small { color: #8a97a6; font-size: .7rem; }.chat-media-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; margin-top: .8rem; }.chat-media-grid a { aspect-ratio: 1; overflow: hidden; border-radius: .4rem; background: #edf2f6; }.chat-media-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }.chat-media-grid a:hover img { transform: scale(1.07); }.media-empty { margin: .8rem 0; color: #8a97a6; font-size: .78rem; text-align: center; }.media-section .btn { margin-top: .8rem; }
.discussion-actions { display: grid; gap: .5rem; }.discussion-actions .sidebar-section-label { margin-bottom: .1rem; }.discussion-actions .btn-outline-primary { color: #1687b8; border-color: #b7e3f3; }.discussion-actions .btn-outline-primary:hover { color: #fff; background: #1687b8; border-color: #1687b8; }.modal-subtitle { margin: .15rem 0 0; color: #7d8b99; font-size: .78rem; }.participant-modal-heading { margin: 0 0 .65rem; color: #526477; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.participant-choice-list { display: grid; gap: .45rem; }.participant-choice-list label { display: flex; align-items: center; gap: .65rem; padding: .6rem .7rem; cursor: pointer; border: 1px solid #e3eaf0; border-radius: .55rem; }.participant-choice-list label:hover { background: #f5fbfe; border-color: #b7e3f3; }.participant-choice-list input { accent-color: #1687b8; }.participant-choice-list strong, .participant-choice-list small { display: block; }.participant-choice-list strong { color: #425466; font-size: .86rem; }.participant-choice-list small { margin-top: .1rem; color: #8a97a6; font-size: .73rem; }
@media (max-width: 991px) { .chat-workspace { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }.chat-sidebar { grid-column: 1; grid-row: 1; order: -1; overflow: visible; border-right: 0; border-bottom: 1px solid var(--lipad-line); }.chat-main-pane { grid-column: 1; grid-row: 2; min-height: 0; }.details-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: .8rem 1rem; color: #486176; background: #fbfcfe; border: 0; font-size: .82rem; font-weight: 700; }.details-toggle span { display: inline-flex; align-items: center; gap: .4rem; }.details-toggle span i { color: #1687b8; font-size: 1.1rem; }.details-toggle > i { transition: transform .18s ease; }.chat-sidebar.is-expanded .details-toggle > i { transform: rotate(180deg); }.chat-sidebar-content { display: none; height: auto; max-height: 42vh; overflow-y: auto; border-top: 1px solid var(--lipad-line); }.chat-sidebar.is-expanded .chat-sidebar-content { display: block; }.chat-sidebar-section { border-right: 0; }.chat-media-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 575px) { .chat-workspace-header { padding: .8rem 1rem; }.chat-workspace-header h1 { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.chat-workspace .chat-messages { padding: 1rem; }.chat-workspace .chat-message { max-width: 90%; }.chat-message-tools { opacity: 1; }.composer-row .btn span { display: none; }.composer-row .btn i { margin: 0; }.chat-media-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.open-discussions-map { height: min(68vh, 46rem); overflow: hidden; border: 1px solid var(--lipad-line); border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(15,23,42,.05); }.discussion-map-marker { background: transparent; border: 0; }.discussion-map-marker span { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; color: #fff; background: #1687b8; border: 3px solid #fff; border-radius: 50% 50% 50% 0; box-shadow: 0 .35rem .8rem rgba(15,23,42,.25); font-size: 1.25rem; transform: rotate(-45deg); }.discussion-map-marker span i { transform: rotate(45deg); }.map-popup strong { color: var(--lipad-ink); }.map-popup p { margin: .4rem 0; color: #66778a; }.map-popup small { color: #8a97a6; }.map-popup .btn { display: inline-block; }
