:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#243246;background:#f4f6fa;font-size:14px}*{box-sizing:border-box}body{margin:0;display:flex}aside{width:235px;background:#12283d;color:#d0dbe5;min-height:100vh;padding:32px 22px;position:fixed;height:100%;display:flex;flex-direction:column}.brand{font-size:27px;font-weight:800;color:white;text-decoration:none}.brand span{font-weight:400;color:#73dcc9;margin-left:5px}.small,small{font-size:12px;color:#7c8b9c}.small{line-height:1.6}aside .small{color:#a0b5c5}nav{display:grid;gap:9px;margin-top:27px}nav a{padding:13px 12px;border-radius:8px;color:#d7e4ed;text-decoration:none}nav a:hover{background:#254258;color:white}.aside-bottom{margin-top:auto;line-height:1.8}main{margin-left:235px;padding:0 42px 40px;width:calc(100% - 235px);max-width:1800px}header{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e7ef;margin-bottom:34px;color:#78889a}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}h1{font-size:30px;letter-spacing:-1px;margin:0 0 10px;color:#172e44}h2{font-size:18px;margin-top:0}p{color:#738397;line-height:1.7}.eyebrow{font-size:11px;letter-spacing:2px;color:#258d7d;font-weight:700;margin-bottom:12px}.button,button{display:inline-block;border:0;border-radius:8px;background:#148675;color:white;padding:12px 18px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}.button:hover,button:hover{background:#096b5d}.secondary{background:#e5f5f0;color:#117664}.quiet{background:#e8edf3;color:#486075}.panel{background:white;border:1px solid #e4e9f0;border-radius:12px;padding:25px;margin-bottom:24px;box-shadow:0 3px 12px #1c395105}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stats article{background:white;border:1px solid #e4e9f0;border-radius:12px;padding:23px}.stats span{color:#768799}.stats strong{display:block;font-size:36px;margin:15px 0;color:#18374c}.stats small{display:block}.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#7b8ba0;background:#f8fafc}td,th{padding:16px 12px;border-bottom:1px solid #edf0f4;vertical-align:top}td small{display:block;margin-top:5px}a{color:#168676}td a{font-weight:600}.badge{display:inline-block;padding:6px 9px;background:#e8f4f0;color:#1b806d;border-radius:6px;font-size:12px;white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}label{display:block;font-size:13px;color:#516376;font-weight:600;margin-bottom:10px}input,select,textarea{display:block;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #dce3eb;border-radius:7px;background:white;font:inherit;color:#253a4e}input:focus,select:focus,textarea:focus{outline:2px solid #73cbbc;outline-offset:1px}.filters{display:flex;gap:15px;align-items:end;margin-bottom:22px}.filters input,.filters select{margin:0}.filters label{margin:0;flex:1}.filters>input{max-width:500px}.filters>select{max-width:220px}.alert,.success{border-radius:8px;padding:15px;margin-bottom:20px;background:#fff0ec;color:#a03a28}.success{background:#e5f5ed;color:#237658}.empty{padding:35px;text-align:center;color:#8a98a8}.login{max-width:480px;margin:65px auto}.login label{margin-top:20px}.login button{width:100%;margin-top:15px}details{margin-bottom:10px}summary{cursor:pointer;color:#158573}details form{min-width:230px;padding-top:14px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}:focus-visible{outline:2px solid #15927e;outline-offset:3px}@media(max-width:1050px){main{padding:0 22px 30px}.form-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){body{display:block}aside{position:static;width:100%;min-height:auto;height:auto;padding:20px}aside nav{display:flex;overflow:auto;margin-top:10px;gap:3px}nav a{white-space:nowrap;font-size:12px;padding:9px}.aside-bottom,aside>.small{display:none}main{margin:0;width:100%;padding:0 16px 25px}.heading{align-items:flex-start;flex-direction:column}h1{font-size:26px}.two,.form-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.panel{padding:17px}.stats article{padding:16px}}
:root fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background:#f8fafc;color:#42556a;opacity:1}.check-label{display:flex;align-items:center;gap:10px}.check-label input{width:auto;margin:0}.account-label{font-size:12px;color:#50667a;margin-left:auto;margin-right:18px}

.ticket-filter-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.ticket-column-filters th{min-width:160px;padding-top:0}.ticket-column-filters label{font-size:11px;text-transform:none;letter-spacing:0;font-weight:500;margin-bottom:10px}.ticket-column-filters input,.ticket-column-filters select{min-width:140px;font-size:13px;margin-top:4px;padding:8px}.ticket-column-filters th:nth-child(1),.ticket-column-filters th:nth-child(2){min-width:190px}

.part-alerts{position:relative;margin:0 16px 0 0;color:#78889a}.part-alerts>summary{display:flex;align-items:center;justify-content:center;position:relative;padding:9px;cursor:pointer;color:inherit;list-style:none;border-radius:8px}.part-alerts>summary::-webkit-details-marker{display:none}.part-alerts.has-alerts>summary{color:#b75600;background:#fff1db}.alert-count{position:absolute;right:-4px;top:-4px;min-width:18px;padding:2px 4px;border-radius:12px;color:white;background:#c75400;font-size:11px;text-align:center}.part-alert-list{position:absolute;right:0;top:48px;width:320px;max-height:360px;overflow:auto;background:white;border:1px solid #e4e9f0;border-radius:10px;padding:16px;box-shadow:0 8px 24px #12283d22;z-index:20}.part-alert-list>a{display:block;padding:12px 4px;border-bottom:1px solid #edf0f4;text-decoration:none}.part-alert-list small{display:block;margin-top:5px}.review-notice{background:#fff1db;color:#975009;padding:16px;border-radius:8px;margin-bottom:20px}@media(max-width:700px){.part-alert-list{width:min(300px,85vw);right:-50px}.account-label{max-width:100px;overflow-wrap:anywhere;margin-right:8px}.part-alerts{margin-right:8px}}

.ticket-open{background-color:#ffffff}.ticket-closed{background-color:#dcf3df}.ticket-cancelled{background-color:#fbdcda}.ticket-suspended{background-color:#fff1b8}tbody tr.ticket-open>td,tbody tr.ticket-closed>td,tbody tr.ticket-cancelled>td,tbody tr.ticket-suspended>td{background-color:inherit;border-bottom-color:#d5dce2}tbody tr.ticket-closed small,tbody tr.ticket-cancelled small,tbody tr.ticket-suspended small{color:#526174}.ticket-state-legend{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:18px;color:#42556a;font-size:13px}.ticket-state-legend span{display:flex;align-items:center;gap:7px}.ticket-state-legend i{width:17px;height:17px;display:inline-block;border:1px solid #aab8c4;border-radius:4px}

#sidebar-menu[hidden],#sidebar-toggle[hidden]{display:none!important}.sidebar-hidden main{margin-left:0;width:100%;max-width:none}.sidebar-toggle{display:inline-flex;align-items:center;gap:8px;margin-right:18px;flex-shrink:0;padding:9px 12px;font-size:12px}header>span:first-of-type{margin-right:auto}@media(max-width:700px){.sidebar-toggle{margin-right:8px;padding:8px}.sidebar-toggle span{display:none}header>span:first-of-type{font-size:11px;max-width:105px}}

.ticket-list th:nth-child(3){min-width:240px}.ticket-list th:nth-child(5){min-width:260px}.ticket-list .ticket-text{white-space:pre-wrap;overflow-wrap:anywhere}.ticket-list .ticket-notes{min-width:240px;max-width:420px}

.column-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:120px}.column-filter-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:6px;background:transparent;color:#60758c;border:1px solid #d4dde7;border-radius:5px}.column-filter-button:hover,.column-filter-button.is-active{background:#d7eee7;color:#08705e;border-color:#168675}.column-filter-popup[hidden]{display:none!important}.column-filter-popup{position:fixed;z-index:1000;background:white;border:1px solid #d5dfe9;border-radius:9px;padding:16px;box-shadow:0 8px 26px #12283d30;max-height:calc(100vh - 24px);overflow:auto}.column-filter-popup label{font-size:13px;text-transform:none;letter-spacing:0}.column-filter-actions{display:flex;gap:8px;margin-top:14px}.column-filter-actions button{padding:8px 12px;font-size:12px}

/* Set the background on every cell, including browsers rendering separate table layers. */
.ticket-list tbody>tr[data-ticket-state="Aperto"],.ticket-list tbody>tr[data-ticket-state="Aperto"]>td{background:#ffffff}
.ticket-list tbody>tr[data-ticket-state="Chiuso"],.ticket-list tbody>tr[data-ticket-state="Chiuso"]>td{background:#d4edda}
.ticket-list tbody>tr[data-ticket-state="Annullato"],.ticket-list tbody>tr[data-ticket-state="Annullato"]>td{background:#ffd6d6}
.ticket-list tbody>tr[data-ticket-state="Sospeso"],.ticket-list tbody>tr[data-ticket-state="Sospeso"]>td{background:#fff3b0}
.ticket-state-legend .ticket-closed{background:#d4edda}.ticket-state-legend .ticket-cancelled{background:#ffd6d6}.ticket-state-legend .ticket-suspended{background:#fff3b0}

.quiet,.button.quiet,button.quiet,.quiet:hover,.quiet:focus-visible,.button.quiet:hover,button.quiet:hover{background:#000;color:#fff}
.column-filter-button{background:#000;color:#fff;border-color:#000;min-width:32px;min-height:32px}
.column-filter-button:hover,.column-filter-button:focus-visible{background:#000;color:#fff;border-color:#000}
.column-filter-button.is-active,.column-filter-button.is-active:hover{background:#08705e;color:#fff;border-color:#08705e}

.button.filter-reset{background:#bd5960;color:#fff}.button.filter-reset:hover,.button.filter-reset:focus-visible{background:#a72935;color:#fff}.ticket-toolbar{align-items:center;justify-content:space-between}.ticket-toolbar-left,.ticket-toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ticket-toolbar-right{margin-left:auto;justify-content:flex-end}@media(max-width:700px){.ticket-toolbar-right{width:100%;margin-left:0}}

.export-excel-button{background:#c76a26;color:#fff}.export-excel-button:hover,.export-excel-button:focus-visible{background:#b94b00;color:#fff}.button.import-excel-button{background:#e6d5f3;color:#000}.button.import-excel-button:hover,.button.import-excel-button:focus-visible{background:#ba8ddb;color:#000}

.selection-cell{width:46px;min-width:46px!important;text-align:center}.selection-cell input[type="checkbox"]{display:inline-block;width:18px;height:18px;margin:0;accent-color:#148675;cursor:pointer}.selection-count{font-size:12px;color:#516376}.ticket-list th.selection-cell{min-width:46px}

.overview-ticket-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:18px}.overview-ticket-toolbar h2{margin:0}@media(max-width:700px){.overview-ticket-toolbar .ticket-toolbar-right{width:100%;justify-content:flex-end}}

.button.overview-black-text,.button.overview-black-text:hover,.button.overview-black-text:focus-visible{color:#000}

.ddt-preview .filters{flex-wrap:wrap}.ddt-preview td input[data-ddt-field]{min-width:150px}.ddt-preview td input[data-ddt-field="description"]{min-width:260px}.ddt-preview td input[type="checkbox"]{width:auto}

.attachment-upload{flex-wrap:wrap}.attachment-upload [hidden]{display:none}.attachment-selected-name{max-width:320px;overflow-wrap:anywhere;font-size:13px}.attachment-chooser{border:1px solid #dce3eb;border-radius:14px;padding:24px;max-width:460px;width:calc(100% - 40px);color:#253a4e}.attachment-chooser:not([open]){display:none}.attachment-chooser::backdrop{background:rgba(18,40,58,.5)}.attachment-chooser-options{display:flex;flex-direction:column;gap:12px}.attachment-chooser h2{margin-top:0}.attachment-chooser-options button{width:100%}

.serial-scan-button{align-self:flex-start;margin-top:6px;padding:7px 12px;font-size:13px}.serial-scanner{width:min(94vw,540px);max-height:90vh;overflow:auto;border:0;border-radius:14px;padding:24px}.serial-scanner::backdrop{background:rgba(0,0,0,.6)}.serial-scanner #serial-camera{width:100%;min-height:40px}.serial-scanner video{max-width:100%}.serial-scanner [hidden]{display:none!important}.serial-scanner [data-scan-close]{margin-top:16px}.serial-scanner input{width:100%}
/* Phone layout; desktop retains the existing tables and controls. */
.mobile-only,.mobile-ticket-state,.mobile-filter-toggle{display:none}.ticket-save-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:700px){
 :root{font-size:15px}main{padding:0 12px 24px;min-width:0}h1{font-size:25px}.panel{padding:16px;margin-bottom:16px}.heading{gap:10px;margin-bottom:16px}.heading p{margin:0}
 header{position:sticky;top:0;z-index:50;height:64px;margin:0 -12px 20px;padding:0 12px;background:#f4f6fa;gap:8px}.account-label{min-width:0;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 0 0 auto}header>span:first-of-type{display:none}.sidebar-toggle{margin:0;min-width:44px;min-height:44px}header button.quiet{min-height:44px;padding:10px}.part-alerts{margin:0}.part-alert-list{position:fixed;left:12px;right:12px;top:65px;width:auto;max-height:65vh}
 aside#sidebar-menu{position:fixed;top:64px;left:0;z-index:45;width:min(86vw,310px);height:calc(100dvh - 64px);min-height:0;overflow:auto;padding:20px;box-shadow:8px 8px 25px #12283d44}aside#sidebar-menu nav{display:grid;overflow:visible;gap:4px}aside#sidebar-menu nav a{font-size:15px;min-height:44px;padding:13px 12px}
 .button,button{min-height:44px;white-space:normal;text-align:center}input,select,textarea{font-size:16px;min-height:44px}.form-grid{grid-template-columns:minmax(0,1fr);gap:12px}.form-grid label{min-width:0}textarea{min-height:90px}.filters{gap:10px}.filters label{flex:1 1 100%}.ticket-toolbar-left,.ticket-toolbar-right{width:100%;display:flex;gap:8px}.ticket-toolbar-left>* ,.ticket-toolbar-right>*{flex:1}.stats{gap:10px}.stats article{padding:14px}.stats strong{font-size:28px;margin:10px 0}.stats small{font-size:11px}
 .mobile-ticket-wrap{overflow:visible}.ticket-list{display:block;min-width:0;width:100%}.ticket-list thead,.ticket-list thead tr{display:grid;grid-template-columns:minmax(0,1fr)}.ticket-list thead tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.ticket-list th{min-width:0!important;padding:10px;border-radius:8px;position:relative}.ticket-list .column-heading{gap:5px}.ticket-list .column-heading>span{overflow-wrap:anywhere;font-size:10px}.ticket-list .column-filter-popup{position:fixed;left:12px;right:12px;top:85px;width:auto;max-width:none;z-index:60}.mobile-enhanced .ticket-list thead{display:none}.mobile-enhanced .mobile-filters-open .ticket-list thead{display:grid}.mobile-filter-toggle{display:inline-block;margin-bottom:12px}.mobile-filter-toggle[hidden]{display:none!important}
 .ticket-list tbody{display:grid;gap:14px}.ticket-list tbody>tr{display:block;border:1px solid #dce3eb;border-radius:12px;overflow:hidden;box-shadow:0 2px 6px #12283d08}.ticket-list tbody td{display:block;padding:10px 14px;border:0;overflow-wrap:anywhere;min-width:0}.ticket-list tbody td::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:#516376;margin-bottom:4px}.ticket-list tbody td[data-label="Ticket / Intervento"] a{display:block;font-size:19px;padding:3px 0}.ticket-list tbody td.selection-cell{text-align:left;width:100%}.ticket-list tbody td.selection-cell::before{content:none}.mobile-ticket-state{display:inline-block;font-size:12px;font-weight:700;margin-top:6px}.ticket-list td.ticket-notes{max-width:none;white-space:pre-wrap}
 .mobile-only{display:inline-block}.ticket-save-actions{position:static;z-index:15;background:white;padding:12px 0;margin-top:12px;border-top:1px solid #e4e9f0}.ticket-save-actions>*{flex:1}.attachment-upload{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.attachment-upload>*{max-width:100%;width:100%}.serial-scan-button{width:100%}.empty{padding:22px 12px}.selection-count{width:100%}
}

.pwa-install{margin:18px 0;background:#73dcc9;color:#12283d}.pwa-install[hidden]{display:none!important}.pwa-install:hover{background:#a2efe2;color:#12283d}
.delete-button{background:#dc3545;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0}.delete-button:hover,.delete-button:focus-visible{background:#b91c2b;color:#fff}.delete-button svg{flex-shrink:0}
.mobile-time-picker[hidden],input.mobile-time-original{display:none!important}.mobile-time-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.mobile-time-column{display:grid;gap:6px}.mobile-time-column>span{font-size:12px;color:#486075}.mobile-time-column select{height:160px;padding:4px;overflow-y:auto;background:#fff;color:#172e44}.mobile-time-column option{padding:9px;text-align:center;font-size:18px}.mobile-time-clear{grid-column:1/-1;justify-self:start;font-size:13px;color:#172e44}
.viewer-day-navigation{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}.viewer-day-navigation .quiet{color:#172e44}.viewer-day-navigation .quiet:hover{color:#fff}.viewer-day-picker{display:flex;align-items:end;gap:12px;margin:18px 0}.viewer-day-picker label{flex:1;max-width:260px}@media(max-width:700px){.viewer-day-navigation{gap:6px}.viewer-day-navigation .button{flex:1;padding:10px 6px}.viewer-day-picker label{min-width:0}}
