:root{
 --bg:#f5f7fb;--card:#fff;--text:#111827;--muted:#707887;--line:#e4e8ef;
 --blue:#1769e8;--blue2:#eaf2ff;--green:#55b95e;--green2:#eaf7eb;--yellow:#f6c84d;--red:#ef6d70;
 --purple:#7657d8;--orange:#ef8a25;--shadow:0 8px 24px rgba(22,34,55,.055);
 --sidebar:164px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand-block{height:68px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line)}.brand-logo{width:36px;height:36px;background:#113f78;color:#fff;border-radius:8px;display:grid;place-items:center;font-size:22px}.brand-block strong{display:block;font-size:15px}.brand-block small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.side-nav{padding:18px 0;display:flex;flex-direction:column;gap:4px}.side-nav a{height:52px;display:flex;align-items:center;gap:12px;padding:0 20px;color:#374151;font-size:13px;border-left:3px solid transparent}.side-nav a span{font-size:18px;width:20px;text-align:center}.side-nav a:hover,.side-nav a.active{background:#f4f8ff;color:var(--blue);border-left-color:var(--blue);font-weight:650}.side-nav .disabled-link{opacity:.78}.sidebar-bottom{margin-top:auto;padding:20px;color:#555f70;font-size:12px}.app-main{min-width:0;display:flex;flex-direction:column}.top-header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto auto;align-items:center;gap:20px;padding:0 20px;position:sticky;top:0;z-index:15}.top-date{display:flex;gap:10px;align-items:center;white-space:nowrap;font-size:12px;color:#4b5563}.top-date strong{color:#273244}.calendar-box{font-size:17px}.global-search{height:42px;max-width:520px;justify-self:center;width:100%;display:flex;align-items:center;gap:8px;border:1px solid #dfe4ec;background:#fff;border-radius:10px;padding:0 12px;box-shadow:0 2px 7px rgba(0,0,0,.02)}.global-search input{border:0;outline:0;width:100%;background:transparent;color:#8b93a0}.global-search kbd{font-size:10px;color:#8b93a0;border:1px solid #e5e7eb;border-radius:5px;padding:3px 5px;background:#fafafa}.primary-cta{height:42px;background:var(--blue);color:#fff;border-radius:7px;padding:0 14px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;box-shadow:0 5px 12px rgba(23,105,232,.18);white-space:nowrap}.primary-cta b{font-size:20px}.top-icons{display:flex;gap:14px;color:#4b5563}.user-menu{display:flex;align-items:center;gap:9px;white-space:nowrap}.avatar{width:34px;height:34px;border-radius:50%;background:#e8eef7;color:#163b67;display:grid;place-items:center;font-weight:700}.user-menu strong,.user-menu small{display:block}.user-menu strong{font-size:12px}.user-menu small{font-size:10px;color:var(--muted);margin-top:2px}.content-area{padding:18px 22px;flex:1;min-width:0}.app-footer{height:42px;background:#fff;border-top:1px solid var(--line);padding:0 20px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#8a93a2}.connected{display:flex;align-items:center;gap:7px}.connected i{width:8px;height:8px;background:#34a853;border-radius:50%}

.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:14px;margin-bottom:18px}.kpi-card{background:#fff;border:1px solid #e8ebf1;border-radius:10px;box-shadow:var(--shadow);padding:14px 15px;display:flex;align-items:center;gap:12px;min-height:88px}.kpi-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:20px;font-weight:700}.kpi-icon.blue{background:#edf4ff;color:#2471e8}.kpi-icon.green{background:#ecf8ed;color:#47aa51}.kpi-icon.purple{background:#f2edff;color:#7657d8}.kpi-icon.orange{background:#fff4e8;color:#ef8a25}.kpi-icon.red{background:#fff0f0;color:#df5359}.kpi-label{font-size:11px;color:#555e6c}.kpi-value{font-size:23px;font-weight:750;margin-top:2px;line-height:1.1}.kpi-sub{font-size:10px;margin-top:6px}.kpi-sub.blue{color:var(--blue)}.kpi-sub.green{color:#3d9b46}.kpi-sub.orange{color:var(--orange)}.kpi-sub.red{color:#df5359}.kpi-value .muted-num{font-weight:500;color:#8a92a0}

.planning-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}.panel{background:#fff;border:1px solid #e6eaf0;border-radius:10px;box-shadow:var(--shadow)}.planning-panel{overflow:hidden}.planning-toolbar{min-height:66px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar-left,.toolbar-right,.segmented{display:flex;align-items:center;gap:8px}.segmented{gap:0;border:1px solid #dfe5ee;border-radius:7px;overflow:hidden}.segmented a{font-size:11px;padding:8px 13px;background:#fff;border-right:1px solid #e5e8ee}.segmented a:last-child{border-right:0}.segmented a.active{background:var(--blue);color:#fff}.filter-select,.date-range{height:34px;border:1px solid #dfe4ec;border-radius:7px;background:#fff;padding:0 10px;color:#394151;font-size:11px}.date-range{display:flex;align-items:center;gap:8px;padding:0 14px}.nav-btn{width:34px;height:34px;border:1px solid #dfe4ec;border-radius:7px;display:grid;place-items:center;background:#fff;color:#344054}.planning-scroll{overflow:auto;max-width:100%}.planning-calendar{min-width:1040px}.plan-header,.plan-row{display:grid;grid-template-columns:145px repeat(var(--days),minmax(72px,1fr));position:relative}.plan-header{background:#fbfcfe;border-bottom:1px solid var(--line)}.plan-header>div{min-height:46px;border-right:1px solid #edf0f4;padding:7px 4px;text-align:center;font-size:10px}.plan-header .room-head{text-align:left;padding:15px 14px;font-weight:700}.plan-day strong{display:block;font-size:11px}.plan-day.today{background:#eef5ff;color:#135ebf;box-shadow:inset 0 -2px 0 var(--blue)}.plan-row{min-height:50px;border-bottom:1px solid #edf0f4}.room-info{padding:8px 12px;border-right:1px solid #edf0f4;background:#fff;z-index:2}.room-number{font-size:12px;font-weight:750;display:flex;align-items:center;gap:7px}.room-dot{width:7px;height:7px;border-radius:50%;background:#43ad50}.room-dot.gray{background:#a1a8b3}.room-meta{font-size:9.5px;color:#687182;margin:3px 0 0 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-cell{border-right:1px solid #edf0f4;background-image:linear-gradient(to bottom,transparent 49%,rgba(240,242,246,.55) 50%,transparent 51%)}.day-cell.today{background-color:#f7fbff}.booking-layer{position:absolute;left:145px;right:0;top:0;bottom:0;display:grid;grid-template-columns:repeat(var(--days),minmax(72px,1fr));pointer-events:none}.booking-bar{align-self:center;height:27px;margin:0 4px;border-radius:6px;padding:6px 10px;font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:auto;box-shadow:inset 0 0 0 1px rgba(0,0,0,.03);position:relative}.booking-bar:after{content:"";position:absolute;right:-7px;top:0;border-top:13.5px solid transparent;border-bottom:13.5px solid transparent;border-left:8px solid currentColor;opacity:.16}.booking-bar.confirmed{background:#65be69;color:#fff}.booking-bar.in_house{background:#cfe1ff;color:#1359b5}.booking-bar.option{background:#ffda72;color:#6b5000}.booking-bar.checked_out{background:#ffd0d1;color:#a13e42}.booking-bar.no_show,.booking-bar.cancelled{background:#f2b4b5;color:#883539}.maintenance-row .day-cell{background:repeating-linear-gradient(135deg,#f7f7f7,#f7f7f7 4px,#eeeeee 4px,#eeeeee 8px)}.maintenance-label{position:absolute;left:145px;right:0;top:0;bottom:0;display:grid;place-items:center;color:#7b838f;font-size:10px;font-weight:700;letter-spacing:.03em;pointer-events:none}.planning-legend{height:43px;padding:0 14px;display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);font-size:10px;color:#5f6877}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:15px;height:8px;border-radius:5px}.legend-dot.green{background:#65be69}.legend-dot.blue{background:#cfe1ff}.legend-dot.yellow{background:#ffda72}.legend-dot.red{background:#ffd0d1}.legend-dot.gray{background:repeating-linear-gradient(135deg,#eee,#eee 3px,#ddd 3px,#ddd 6px)}

.right-stack{display:flex;flex-direction:column;gap:12px}.detail-card{padding:14px 15px}.detail-card h3{font-size:12px;margin:0 0 12px;display:flex;justify-content:space-between}.detail-row{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid #edf0f4;font-size:10.5px}.detail-row span:first-child{color:#6e7684}.detail-row strong{font-weight:650}.detail-row .balance{color:#dc474d}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.mini-btn{height:35px;border:1px solid #cfd7e3;background:#fff;border-radius:6px;font-size:10.5px;font-weight:650;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.mini-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.mini-btn.full{grid-column:1/-1}.today-lists{display:grid;grid-template-columns:1fr 1fr;gap:10px}.today-card{padding:12px}.today-card h4{margin:0 0 9px;font-size:10.5px}.today-list{display:flex;flex-direction:column}.today-item{display:grid;grid-template-columns:35px 1fr 25px;gap:4px;font-size:8.5px;padding:5px 0}.today-more{text-align:center;border-top:1px solid var(--line);margin:6px -12px -12px;padding:9px;color:var(--blue);font-size:9px}

.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-title-row h1{font-size:22px;margin:0}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:var(--shadow);margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{font-size:28px;font-weight:750;margin-top:6px}.muted{color:var(--muted);font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;padding:10px 14px;background:var(--blue);color:#fff;cursor:pointer;font-weight:650;font-size:12px}.btn.secondary{background:#eef3fa;color:#244567}.btn.danger{background:#c84d50}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.field label{display:block;font-size:11px;font-weight:650;margin-bottom:6px;color:#4b5563}.field input,.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #cfd6df;border-radius:7px;background:#fff;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8ab8f7;box-shadow:0 0 0 3px #edf5ff}.field textarea{min-height:90px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--line);padding:10px;text-align:left;font-size:12px}.table th{background:#f8fafc;font-size:10px;text-transform:uppercase;color:#667085}.badge{display:inline-block;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700}.badge.confirmed{background:#e7f5ea;color:#1f6b2a}.badge.inhouse{background:#e8f0ff;color:#244f9e}.badge.option{background:#fff3d6;color:#8a5c00}.badge.cancelled{background:#fde8e7;color:#a12822}.split{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.totalbox{font-size:28px;font-weight:750}.notice{padding:12px;border-radius:8px;background:#fff8e5;border:1px solid #f0d58a;margin-bottom:14px}.success{background:#eaf7ee;border-color:#b7dfc0}

.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#f4f8ff,#f8fafc)}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px rgba(35,54,82,.12);padding:30px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-brand .brand-logo{width:46px;height:46px}.login-brand h1{margin:0;font-size:22px}.login-brand p{margin:4px 0 0;color:var(--muted);font-size:12px}.login-card .btn{width:100%;height:43px;margin-top:14px}

@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.planning-layout{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1fr}.today-lists{grid-column:1/-1}.top-icons{display:none}}
@media(max-width:900px){:root{--sidebar:68px}.brand-block span:last-child,.side-nav a{font-size:0}.brand-block{padding:0 15px}.brand-logo{flex:0 0 auto}.side-nav a{justify-content:center;padding:0}.side-nav a span{font-size:19px}.sidebar-bottom{font-size:0;text-align:center}.top-header{grid-template-columns:1fr auto auto}.global-search,.top-date span:last-child,.user-menu div:not(.avatar){display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.form-grid,.split{grid-template-columns:1fr}.right-stack{display:flex}.today-lists{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.content-area{padding:10px}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi-card{padding:10px;min-height:76px}.kpi-value{font-size:18px}.planning-toolbar{align-items:flex-start}.toolbar-left,.toolbar-right{flex-wrap:wrap}.right-stack,.today-lists{grid-template-columns:1fr}.top-date strong{font-size:10px}.primary-cta{padding:0 10px;font-size:0}.primary-cta b{font-size:20px}.user-menu>span{display:none}}
/* v0.3 - Admin area */
.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.admin-head h1{margin:0 0 4px;font-size:28px}.admin-head p{margin:0;color:#667085}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-card{background:#fff;border:1px solid #e8ecf2;border-radius:14px;padding:20px;text-decoration:none;color:#182230;box-shadow:0 2px 10px rgba(20,34,50,.04);transition:.15s}.admin-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(20,34,50,.08)}.admin-card .ico{width:42px;height:42px;border-radius:11px;background:#eef5ff;color:#1267e5;display:grid;place-items:center;font-size:21px;margin-bottom:14px}.admin-card h3{margin:0 0 6px;font-size:17px}.admin-card p{margin:0;color:#667085;font-size:13px;line-height:1.45}.admin-card .meta{margin-top:13px;color:#1267e5;font-weight:700;font-size:13px}.admin-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 14px}.admin-toolbar h1{margin:0}.admin-btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:9px;padding:10px 14px;background:#1267e5;color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.admin-btn.secondary{background:#fff;color:#344054;border:1px solid #d7dee8}.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e7ebf0;border-radius:12px;overflow:hidden}.admin-table th,.admin-table td{padding:12px 13px;border-bottom:1px solid #eef1f5;text-align:left;font-size:13px}.admin-table th{background:#f8fafc;color:#475467;font-weight:700}.admin-table tr:last-child td{border-bottom:0}.badge-on,.badge-off{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.badge-on{background:#e9f8ef;color:#16784b}.badge-off{background:#f2f4f7;color:#667085}.admin-form{background:#fff;border:1px solid #e7ebf0;border-radius:14px;padding:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.admin-form label{display:block;font-size:12px;font-weight:700;color:#344054;margin-bottom:6px}.admin-form input,.admin-form select,.admin-form textarea{width:100%;box-sizing:border-box;border:1px solid #d7dee8;border-radius:9px;padding:10px 11px;background:#fff}.admin-form textarea{min-height:90px;resize:vertical}.form-actions{display:flex;gap:10px;margin-top:16px}.notice-admin{padding:11px 13px;border-radius:9px;margin:0 0 14px;background:#ecfdf3;color:#067647;border:1px solid #abefc6}.notice-admin.error{background:#fef3f2;color:#b42318;border-color:#fecdca}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.admin-tabs a{padding:8px 11px;border:1px solid #d7dee8;border-radius:8px;text-decoration:none;color:#344054;background:#fff;font-size:13px}.admin-tabs a.active{background:#1267e5;color:#fff;border-color:#1267e5}.mini-note{font-size:12px;color:#667085}.danger-link{color:#b42318;text-decoration:none;font-weight:700}.edit-link{color:#1267e5;text-decoration:none;font-weight:700;margin-right:10px}@media(max-width:1050px){.admin-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.admin-grid,.form-grid{grid-template-columns:1fr}.admin-head,.admin-toolbar{flex-direction:column;align-items:stretch}}
/* v0.4 - Multi-folio & drag/drop */
.folio-help{background:#eef6ff;border:1px solid #cfe2ff;border-radius:10px;padding:11px 13px;color:#31577f;font-size:12px;margin-bottom:14px}.folio-board{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;align-items:start}.room-dropzone{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:126px;transition:.15s;overflow:hidden}.room-dropzone.drag-over{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,232,.12);background:#f8fbff}.room-drop-head{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid var(--line);background:#fbfcfe}.room-drop-head strong,.room-drop-head small{display:block}.room-drop-head strong{font-size:13px}.room-drop-head small{font-size:10px;color:var(--muted);margin-top:2px}.room-drop-hint{font-size:9px;color:#8b95a4;border:1px dashed #c9d3df;border-radius:6px;padding:5px 7px}.room-dropzone.drag-over .room-drop-hint{background:var(--blue);color:#fff;border-color:var(--blue)}.room-folios{padding:9px;display:flex;flex-direction:column;gap:8px}.folio-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid #e2e7ee;border-radius:9px;padding:8px;background:#fff;cursor:grab;transition:.12s}.folio-card:hover{border-color:#b9cae0;box-shadow:0 4px 12px rgba(31,45,61,.06)}.folio-card.dragging{opacity:.45}.folio-drag-handle,.drag-cell{color:#98a2b3;cursor:grab;font-weight:800;letter-spacing:-3px}.folio-card-main strong,.folio-card-main small{display:block}.folio-card-main strong{font-size:12px}.folio-card-main small{font-size:9.5px;color:var(--muted);margin-top:3px}.folio-balance{font-size:11px;font-weight:800;color:#31566f}.folio-balance.open{color:#c23d43}.folio-open{font-size:10px;color:var(--blue);font-weight:700}.empty-room-folios{font-size:10px;color:#98a2b3;text-align:center;padding:13px}.folio-toast{position:fixed;right:20px;bottom:20px;background:#1f2937;color:#fff;padding:11px 14px;border-radius:9px;font-size:12px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s;z-index:9999}.folio-toast.show{opacity:1;transform:none}.folio-toast.error{background:#b42318}.folio-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.folio-tab{min-width:145px;border:1px solid #dfe5ed;border-radius:9px;background:#fff;padding:9px 11px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px}.folio-tab b{font-size:11px}.folio-tab.active{border-color:var(--blue);box-shadow:0 0 0 2px rgba(23,105,232,.09);color:#145ab8}.folio-tab.add{cursor:pointer;color:var(--blue);font-weight:700}.inline-folio-form{padding:12px;margin-bottom:14px;display:grid;grid-template-columns:1fr 220px auto;gap:10px;align-items:end}.inline-folio-form[hidden]{display:none}.folio-kpis{margin-bottom:0}.folio-owner{font-size:15px!important}.balance-danger{color:#c23d43}.folio-detail-split{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}.folio-section-head{display:flex;justify-content:space-between;align-items:flex-start}.folio-section-head h2{margin-top:0}.folio-items-table .draggable-item{cursor:grab}.folio-items-table .draggable-item.dragging{opacity:.4}.transfer-targets{max-height:320px;overflow:auto}.folio-item-target{border:1px dashed #cfd8e5;border-radius:8px;padding:9px 10px;margin-bottom:8px;display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;font-size:10px}.folio-item-target strong{color:#344054}.folio-item-target span{color:#667085;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folio-item-target em{font-style:normal;color:#8b95a4}.folio-item-target.drag-over{border-style:solid;border-color:var(--blue);background:#eef6ff}.right-stack .card form .field{margin-bottom:9px}
@media(max-width:1100px){.folio-board{grid-template-columns:repeat(2,minmax(250px,1fr))}.folio-detail-split{grid-template-columns:1fr}.inline-folio-form{grid-template-columns:1fr 1fr}.inline-folio-form .btn{grid-column:1/-1}}
@media(max-width:720px){.folio-board{grid-template-columns:1fr}.inline-folio-form{grid-template-columns:1fr}.folio-card{grid-template-columns:24px minmax(0,1fr) auto}.folio-open{grid-column:2/-1}.folio-tabs{flex-direction:column}.folio-tab{width:100%}.folio-toast{left:12px;right:12px;bottom:12px;text-align:center}}

/* v0.5 - Ditte / Committenti */
.company-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.company-card-head h2{margin:0 0 4px}.company-search-wrap{position:relative}.company-results{position:absolute;left:0;right:0;top:100%;z-index:30;background:#fff;border:1px solid #dfe5ee;border-radius:12px;box-shadow:0 14px 34px rgba(18,31,53,.16);max-height:320px;overflow:auto;margin-top:6px}.company-result{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border:0;border-bottom:1px solid #edf0f4;background:#fff;text-align:left;cursor:pointer;color:#172033}.company-result:last-child{border-bottom:0}.company-result:hover,.company-result:focus{background:#f4f8ff;outline:none}.company-result strong{font-size:14px}.company-result small{color:#6d7685}.company-no-result{padding:14px;color:#6d7685}.selected-company{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:13px 15px;background:#eef6ff;border:1px solid #cfe3ff;border-radius:12px;margin-top:12px}.selected-company b{color:#134f9c}.selected-company span{font-size:13px;color:#5d6878}.company-new{margin-top:16px;border-top:1px solid #edf0f4;padding-top:14px}.company-new summary{cursor:pointer;font-weight:700;color:#1267e5}.company-fields{margin-top:16px}.admin-search{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-search input{min-width:min(440px,100%);flex:1}.company-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.company-summary-grid>div{padding:12px;border:1px solid #e6eaf0;border-radius:10px;background:#fafbfd}.company-summary-grid small{display:block;color:#798291;margin-bottom:4px}.company-summary-grid b{display:block;overflow-wrap:anywhere}.company-summary-grid .wide{grid-column:1/-1}.table-scroll{overflow-x:auto}.folio-tab small{display:block;font-size:11px;color:#748094;margin-top:3px}@media(max-width:760px){.company-card-head{flex-direction:column}.company-summary-grid{grid-template-columns:1fr}.company-summary-grid .wide{grid-column:auto}}

/* v0.6 Documenti */
.document-primary{background:#0f5bd3;color:#fff}
.document-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.document-actions-panel{max-width:1100px}
.doc-controls{grid-template-columns:repeat(2,minmax(180px,280px))}
.doc-button-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.document-sheet{background:#fff;border:1px solid #dfe4ea;border-radius:14px;padding:34px;max-width:980px;min-height:900px;box-shadow:0 4px 18px rgba(16,24,40,.05)}
.doc-head{display:flex;justify-content:space-between;gap:30px;padding-bottom:24px;border-bottom:2px solid #e7ebf0}
.doc-brand{font-size:24px;font-weight:800;color:#101828;margin-bottom:5px}
.doc-title{text-align:right;display:flex;flex-direction:column;gap:5px}.doc-title b{font-size:20px}.doc-title span{color:#667085;font-size:13px}
.doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:24px 0}.doc-meta>div{border:1px solid #eaecf0;border-radius:10px;padding:16px}.doc-meta span{display:block;color:#667085;font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.doc-meta b{display:block;font-size:16px;margin-bottom:6px}
.doc-table{width:100%;border-collapse:collapse}.doc-table th{background:#f8fafc;text-align:left;padding:10px;border-bottom:1px solid #d0d5dd;font-size:12px}.doc-table td{padding:11px 10px;border-bottom:1px solid #eef1f4;font-size:13px}.doc-table th:nth-child(n+2),.doc-table td:nth-child(n+2){text-align:right}
.doc-bottom{display:grid;grid-template-columns:1fr 320px;gap:30px;margin-top:24px}.vat-summary{font-size:12px}.vat-summary>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #eef1f4}.doc-totals>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #eef1f4}.doc-totals .grand{font-size:17px;border-top:2px solid #101828;border-bottom:2px solid #101828;margin:5px 0;padding:10px 0}.doc-footer{margin-top:50px;padding-top:18px;border-top:1px solid #eaecf0;color:#667085;font-size:12px}
@media(max-width:800px){.document-sheet{padding:18px;min-height:0}.doc-head,.doc-meta,.doc-bottom{grid-template-columns:1fr;display:grid}.doc-title{text-align:left}.doc-table{display:block;overflow-x:auto}.doc-button-grid .btn{flex:1 1 170px}}
@media print{
 body{background:#fff!important}.sidebar,.topbar,.no-print,.page-title-row,.document-actions-panel,footer{display:none!important}
 .main-content,.content,.page-content{margin:0!important;padding:0!important}
 .document-workspace{display:block!important}.document-sheet{box-shadow:none!important;border:0!important;border-radius:0!important;max-width:none!important;padding:0!important;min-height:0!important}
 @page{size:A4;margin:14mm}
}

/* v0.6.1 - Prestampato Seccy 21x21 cm */
.preprint-screen-note{max-width:1100px;background:#fff8e7;border:1px solid #f1d69a;border-radius:10px;padding:12px 14px;margin-bottom:15px;font-size:13px}
.pp-stage{overflow:auto;padding:16px;background:#e9edf2;border-radius:12px}
.pp-page{
 position:relative;
 width:var(--page-w);
 height:var(--page-h);
 background:#fff;
 margin:0 auto;
 box-sizing:border-box;
 overflow:hidden;
 font-family:Arial,Helvetica,sans-serif;
 font-size:calc(10px * var(--font-scale));
 color:#242424;
}
.pp-copy{
 position:absolute;
 left:calc(var(--copy-x) + var(--off-x));
 top:var(--off-y);
 width:var(--copy-w);
 height:100%;
 box-sizing:border-box;
}
.pp-ref,.pp-guest,.pp-country,.pp-stay,.pp-items,.pp-total,.pp-vat,.pp-courtesy{position:absolute;left:0;width:100%;box-sizing:border-box}
.pp-ref{top:calc(var(--content-y) + var(--ref-y));font-size:calc(9px * var(--font-scale))}
.pp-guest{top:calc(var(--content-y) + var(--guest-y));font-size:calc(11px * var(--font-scale));text-transform:uppercase}
.pp-country{top:calc(var(--content-y) + var(--country-y));font-size:calc(9.5px * var(--font-scale))}
.pp-stay{top:calc(var(--content-y) + var(--stay-y));height:12mm;border-bottom:.25mm solid #6c6c6c;font-size:calc(8.5px * var(--font-scale));padding-top:1mm}
.pp-stay .pp-room{position:absolute;right:1mm;top:0;font-size:calc(10px * var(--font-scale))}
.pp-stay-name{position:absolute;left:0;bottom:1mm;text-transform:uppercase}
.pp-items{top:calc(var(--content-y) + var(--items-y))}
.pp-item{display:grid;grid-template-columns:minmax(0,1fr) 9mm 20mm 22mm;gap:1.5mm;align-items:center;min-height:9mm;font-size:calc(8.2px * var(--font-scale))}
.pp-desc{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pp-q,.pp-unit,.pp-line-total{text-align:right;white-space:nowrap}
.pp-total{top:calc(var(--content-y) + var(--total-y));display:flex;justify-content:space-between;align-items:end;border-bottom:.25mm solid #6c6c6c;padding:0 1mm 1.5mm;font-size:calc(13px * var(--font-scale))}
.pp-vat{top:calc(var(--content-y) + var(--vat-y));font-size:calc(6.5px * var(--font-scale));line-height:1.65;padding:0 2mm}
.pp-courtesy{top:calc(var(--content-y) + var(--courtesy-y));border-top:.25mm solid #9a9a9a;padding-top:1.5mm;font-size:calc(13px * var(--font-scale));color:#555}
.pp-guides .pp-copy{outline:.25mm dashed #4285f4}
.pp-guides .pp-ref,.pp-guides .pp-guest,.pp-guides .pp-country,.pp-guides .pp-stay,.pp-guides .pp-items,.pp-guides .pp-total,.pp-guides .pp-vat,.pp-guides .pp-courtesy{outline:.2mm dotted rgba(220,0,0,.55)}
.pp-copy-outline{position:absolute;inset:0;border:.25mm dashed #4285f4;pointer-events:none}
.pp-test .pp-copy::before{content:"";position:absolute;left:0;right:0;top:calc(var(--content-y));border-top:.2mm dashed #e53935}
@media print{
 @page{size:210mm 210mm;margin:0}
 html,body{width:210mm!important;height:210mm!important;margin:0!important;padding:0!important;background:#fff!important}
 body *{visibility:hidden!important}
 .pp-page,.pp-page *{visibility:visible!important}
 .pp-page{position:absolute!important;left:0!important;top:0!important;margin:0!important;width:210mm!important;height:210mm!important;box-shadow:none!important}
 .pp-stage{padding:0!important;margin:0!important;background:none!important;overflow:visible!important}
 .no-preprint-print{display:none!important}
}


/* v0.6.3 - FIX STAMPA DOCUMENTO STANDARD
   Il prestampato v0.6.2 usa ormai pagine standalone.
   Questo override impedisce alle vecchie regole 21x21 di nascondere il documento standard. */
@media print {
  @page { size: A4 portrait; margin: 12mm; }

  html, body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }

  body * {
    visibility: visible !important;
  }

  .sidebar,
  .top-header,
  .app-footer,
  .page-title-row,
  .document-actions-panel,
  .no-print {
    display: none !important;
  }

  .app-shell,
  .app-main,
  .content-area,
  .document-workspace {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  .document-sheet {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
    overflow: visible !important;
  }

  .document-sheet * {
    visibility: visible !important;
  }

  .doc-head,
  .doc-meta,
  .doc-bottom {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .doc-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* These belong only to the standalone 21x21 pages, never to the A4 document. */
  .pp-stage,
  .pp-page,
  .pp-copy {
    display: none !important;
  }
}

/* v0.7 - Conto e chiusura pagamento */
.account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.account-kpi{background:#fff;border:1px solid #e5e9ef;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.account-kpi span{font-size:12px;color:#667085}.account-kpi b{font-size:24px}.account-kpi.due b{color:#d92d20}.account-kpi.ok b{color:#16803c}
.account-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.account-ledger{min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.section-head h2,.account-next h2{margin:0 0 4px}
.account-table-wrap{overflow-x:auto}.account-table{width:100%;border-collapse:collapse}.account-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667085;text-align:left;padding:10px;border-bottom:1px solid #e4e7ec}.account-table td{padding:13px 10px;border-bottom:1px solid #eef1f4}.account-table th:nth-child(n+3),.account-table td:nth-child(n+3){text-align:right}.account-table tfoot td{font-size:16px;background:#f8fafc}.stay-row{background:#f8fbff}.auto-badge{margin-left:8px;font-size:10px;background:#eaf2ff;color:#175cd3;border-radius:999px;padding:3px 7px}.empty-cell{text-align:center!important;color:#98a2b3;padding:30px!important}
.icon-btn{border:0;background:transparent;width:32px;height:32px;border-radius:7px;cursor:pointer;font-size:20px}.icon-btn.danger{color:#d92d20}.icon-btn:hover{background:#fff1f0}
.account-next p{color:#667085;font-size:13px;line-height:1.55}.account-next-total{margin:20px 0;background:#f8fafc;border-radius:10px;padding:14px;display:flex;justify-content:space-between;align-items:center}.account-next-total span{color:#667085}.account-next-total b{font-size:20px}.account-pay-btn{width:100%;justify-content:center}
.charge-dialog{width:min(680px,calc(100% - 30px));border:0;border-radius:14px;padding:0;box-shadow:0 22px 70px rgba(16,24,40,.25)}.charge-dialog::backdrop{background:rgba(16,24,40,.42)}.charge-dialog form{padding:22px}.dialog-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px}.dialog-head h2{margin:0 0 4px}.dialog-x{border:0;background:#f2f4f7;border-radius:8px;width:38px;height:38px;font-size:23px;cursor:pointer}
.checkout-flow{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:20px;align-items:start}.checkout-panel{padding:0;overflow:hidden}.checkout-section{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:20px;border-bottom:1px solid #eaecf0}.checkout-section:last-child{border-bottom:0}.step-num{width:32px;height:32px;border-radius:50%;background:#eaf2ff;color:#175cd3;display:flex;align-items:center;justify-content:center;font-weight:800}.step-content h2{margin:3px 0 4px;font-size:17px}.payment-grid{margin-top:14px}.money-input{display:flex;align-items:center;border:1px solid #d0d5dd;border-radius:8px;background:#fff;overflow:hidden}.money-input span{padding:0 0 0 12px;color:#667085}.money-input input{border:0!important;box-shadow:none!important}.payment-summary{margin-top:14px;border:1px solid #eaecf0;border-radius:10px;overflow:hidden}.payment-summary>div{display:flex;justify-content:space-between;padding:9px 11px;border-bottom:1px solid #f0f2f5}.payment-summary>div:last-child{border-bottom:0}.payment-summary span{color:#667085}.payment-summary .balance{background:#fff8f6}.payment-summary .balance b{color:#d92d20}
.checkout-action-grid{display:grid;gap:10px;margin-top:14px}.checkout-action{border:1px solid #d0d5dd;background:#fff;border-radius:11px;padding:14px;text-align:left;cursor:pointer;display:grid;grid-template-columns:36px 1fr;column-gap:10px;align-items:center}.checkout-action .action-icon{grid-row:1/3;width:32px;height:32px;border-radius:8px;background:#f2f4f7;display:flex;align-items:center;justify-content:center}.checkout-action b{font-size:14px}.checkout-action small{color:#667085;margin-top:3px}.checkout-action:hover{border-color:#84adff;background:#f8fbff}.checkout-action.primary-soft{border-color:#a9c6ff}.checkout-action.strong{background:#0f5bd3;color:#fff;border-color:#0f5bd3}.checkout-action.strong small{color:#eaf2ff}.checkout-action.strong .action-icon{background:rgba(255,255,255,.16)}
.more-doc-actions{margin-top:14px}.more-doc-actions summary{cursor:pointer;color:#475467;font-size:13px}.checkout-preview{min-height:700px}
@media(max-width:1000px){.account-layout,.checkout-flow{grid-template-columns:1fr}.account-next{order:-1}.checkout-preview{min-height:0}.account-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:640px){.account-summary{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.checkout-section{grid-template-columns:1fr}.step-num{margin-bottom:-4px}}

.prestampato-main-note{margin-bottom:16px}

/* v0.7.2 - modifica righe conto */
.row-actions{white-space:nowrap!important;text-align:right!important}
.row-actions .inline-delete{display:inline-block;margin:0}
.icon-btn.edit{color:#175cd3;margin-right:3px}
.icon-btn.edit:hover{background:#eff6ff}
.auto-badge.edited{background:#fff4e5;color:#b54708}
.edit-total-preview{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:13px 14px;background:#f8fafc;border:1px solid #eaecf0;border-radius:10px}
.edit-total-preview span{color:#667085}.edit-total-preview b{font-size:20px}

/* v0.8 - conto chiuso / storni / incassi */
.closed-pill{display:inline-flex;align-items:center;padding:9px 12px;border-radius:9px;background:#eaf8ef;color:#137a38;font-weight:800;font-size:12px}
.account-closed-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:0 0 16px;background:#f1f8f4;border:1px solid #b7dfc4;border-radius:12px;padding:14px 16px}
.account-closed-banner>div{display:flex;flex-direction:column;gap:3px}.account-closed-banner span{color:#52695a;font-size:12px}
.danger-btn{background:#b42318!important;color:#fff!important;border-color:#b42318!important}.danger-btn:hover{background:#912018!important}
.warning-box{background:#fff6ed;border:1px solid #f7cfa5;color:#9a4a05;border-radius:9px;padding:11px 13px;margin-bottom:15px;font-size:13px}
.locked-row{color:#98a2b3;font-size:15px}
.takings-date{display:flex;gap:8px;align-items:center}.takings-date input{min-height:40px}
.takings-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
.takings-methods>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef1f4}.takings-methods>div:last-child{border-bottom:0}
.status-active,.status-void{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.03em}
.status-active{background:#eaf8ef;color:#137a38}.status-void{background:#feeceb;color:#b42318}
.reversed-row{opacity:.58;text-decoration:line-through}.reversed-row .status-void{text-decoration:none}
.voided-document-banner{max-width:980px;background:#feeceb;color:#b42318;border:1px solid #f3b6b2;border-radius:10px;padding:11px 14px;margin-bottom:12px;font-weight:800}
.voided-document{position:relative;opacity:.75}
.voided-document:after{content:"STORNATO";position:absolute;left:15%;right:15%;top:42%;text-align:center;font-size:70px;font-weight:900;color:rgba(180,35,24,.12);transform:rotate(-20deg);pointer-events:none}
@media(max-width:850px){.takings-layout{grid-template-columns:1fr}.account-closed-banner{align-items:flex-start;flex-direction:column}}

/* v0.8.1 - reset operativo */
.reset-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0 18px}
.reset-stats>div{background:#f8fafc;border:1px solid #eaecf0;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:4px}
.reset-stats span{font-size:11px;color:#667085}.reset-stats b{font-size:25px}
.reset-form{margin-top:20px}.reset-form>label{display:block;margin-bottom:7px}.reset-form>input{max-width:320px;font-size:17px;font-weight:700;letter-spacing:.08em}
.reset-danger{background:#b42318!important;border-color:#b42318!important;color:white!important}
.danger-card{border-color:#f3c4c1!important}.danger-card .admin-card-icon{background:#feeceb!important;color:#b42318!important}
@media(max-width:700px){.reset-stats{grid-template-columns:1fr}}

/* v0.8.2 - correzione dashboard amministrazione */
.admin-grid{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
 gap:18px;
 align-items:stretch;
}
.admin-card{
 display:flex!important;
 gap:16px;
 align-items:flex-start;
 min-height:150px;
 padding:24px!important;
 background:#fff!important;
 border:1px solid #e3e8ef!important;
 border-radius:16px!important;
 text-decoration:none!important;
 color:#101828!important;
 box-sizing:border-box!important;
 overflow:hidden!important;
 position:relative!important;
}
.admin-card:hover{border-color:#b7cff9!important;background:#fbfdff!important}
.admin-card-icon{
 flex:0 0 54px;
 width:54px;height:54px;
 border-radius:13px;
 display:flex;
 align-items:center;
 justify-content:center;
 background:#eaf2ff;
 font-size:22px;
}
.admin-card>div:last-child{min-width:0;display:flex;flex-direction:column}
.admin-card b{font-size:18px;margin:5px 0 7px}
.admin-card span{display:block;color:#667085;line-height:1.45;font-size:13px}
.admin-card em{font-style:normal;color:#0f5bd3;font-weight:700;margin-top:14px;font-size:13px}
.danger-card{border-color:#f2c4c0!important}
.danger-card .admin-card-icon{background:#feeceb;color:#b42318}
.danger-card em{color:#b42318}
.reset-admin-grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)}
@media(max-width:700px){.reset-admin-grid{grid-template-columns:1fr}}

/* v0.8.3 - reset totale */
.total-danger-card{border:2px solid #e5484d!important;background:#fffafa!important}
.total-danger-card .admin-card-icon{background:#ffe9e9!important;color:#b42318!important}
.total-danger-card em{color:#b42318!important}
.total-reset-warning{display:flex;flex-direction:column;gap:5px;background:#fff0f0;border:2px solid #e5484d;color:#8e1b18;border-radius:12px;padding:15px 17px;margin:18px 0}
.total-reset-warning b{font-size:15px}.total-reset-warning span{font-size:13px;line-height:1.5}
.total-reset-btn{background:#8e1b18!important;border-color:#8e1b18!important;color:#fff!important}
.total-reset-btn:hover{background:#701511!important}
.total-reset-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.total-reset-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.total-reset-stats{grid-template-columns:1fr}}

/* v0.8.4 - elenco conti aperti */
.compact-account-summary{grid-template-columns:220px minmax(220px,360px);max-width:620px}
.open-folios-list{display:flex;flex-direction:column;gap:9px}
.open-folio-row{display:grid;grid-template-columns:90px minmax(180px,1fr) 190px 150px 24px;gap:15px;align-items:center;background:#fff;border:1px solid #e4e8ee;border-radius:12px;padding:14px 16px;text-decoration:none;color:#101828;transition:.15s ease}
.open-folio-row:hover{border-color:#9fbcf6;background:#fbfdff}
.open-folio-room,.open-folio-balance{display:flex;flex-direction:column;gap:2px}.open-folio-room span,.open-folio-balance span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#667085}.open-folio-room b{font-size:19px}
.open-folio-main{display:flex;flex-direction:column;gap:3px;min-width:0}.open-folio-main b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.open-folio-main span,.open-folio-stay{font-size:12px;color:#667085}
.open-folio-balance{text-align:right}.open-folio-balance b{font-size:17px}.open-folio-balance.due b{color:#d92d20}.open-folio-balance.ok b{color:#16803c}.open-folio-arrow{font-size:27px;color:#98a2b3}
.empty-open-folios{background:#fff;border:1px solid #e4e8ee;border-radius:14px;padding:48px;text-align:center}.empty-open-icon{width:52px;height:52px;border-radius:50%;background:#eaf8ef;color:#137a38;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:25px}.empty-open-folios h2{margin:0 0 6px}.empty-open-folios p{margin:0;color:#667085}
@media(max-width:850px){.open-folio-row{grid-template-columns:65px minmax(0,1fr) 110px 20px}.open-folio-stay{display:none}.compact-account-summary{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.open-folio-row{grid-template-columns:55px minmax(0,1fr) 20px}.open-folio-balance{grid-column:2}.compact-account-summary{grid-template-columns:1fr}}

/* v0.8.5 - storico storni */
.reversal-head{margin-top:28px;padding-top:20px;border-top:1px solid #eaecf0}

/* v0.8.6 - multi conto sulla stessa camera */
.reservation-folios{margin-top:18px}
.reservation-folio-list{display:grid;gap:8px}
.reservation-folio-item{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:13px 14px;border:1px solid #e4e8ee;border-radius:10px;color:#101828;text-decoration:none;background:#fff}
.reservation-folio-item:hover{border-color:#9fbcf6;background:#fbfdff}
.reservation-folio-item>div{display:flex;flex-direction:column;gap:3px}.reservation-folio-item span{font-size:11px;color:#667085}.reservation-folio-item strong{font-size:16px}
.reservation-folio-item.closed{background:#f8fafc;opacity:.68}.reservation-folio-item.closed span{color:#667085}

/* v0.8.7.1 - centro conti camera */
.room-account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.room-account-summary>div{background:#fff;border:1px solid #e4e8ee;border-radius:11px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.room-account-summary span{font-size:11px;color:#667085}.room-account-summary b{font-size:21px}
.room-account-list{display:flex;flex-direction:column;gap:14px}
.room-folio-card{background:#fff;border:1px solid #dfe5ec;border-radius:14px;overflow:hidden}
.room-folio-card.closed{background:#fcfcfd}
.room-folio-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px 18px;border-bottom:1px solid #edf0f3}
.room-folio-title{display:flex;align-items:center;gap:13px}.room-folio-title h2{margin:0 0 3px;font-size:17px}
.room-folio-status{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em}.room-folio-status.open{background:#eaf8ef;color:#137a38}.room-folio-status.closed{background:#eef1f5;color:#475467}
.room-folio-head-right{display:flex;gap:20px;align-items:center}.room-folio-total{display:flex;flex-direction:column;gap:1px;text-align:right}.room-folio-total span{font-size:10px;color:#667085}.room-folio-total b{font-size:15px}.room-folio-total.due b{color:#d92d20}.room-folio-total.ok b{color:#16803c}
.room-folio-body{display:grid;grid-template-columns:minmax(0,1fr) 240px}.room-folio-items{padding:12px 16px}.room-folio-side{border-left:1px solid #edf0f3;padding:14px;background:#fafbfc;display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.room-folio-actions,.registered-info{display:flex;flex-direction:column;gap:7px}.room-folio-actions .btn{width:100%;justify-content:center}.registered-info span{font-size:11px;color:#667085}
.account-table.compact th,.account-table.compact td{padding:9px 8px;font-size:12px}
@media(max-width:900px){.room-account-summary{grid-template-columns:repeat(2,1fr)}.room-folio-body{grid-template-columns:1fr}.room-folio-side{border-left:0;border-top:1px solid #edf0f3}.room-folio-head{flex-direction:column;align-items:flex-start}.room-folio-head-right{width:100%;justify-content:space-between}}

/* v0.8.8 - Conto Camera pagina unica */
.room-folio-toolbar{
 display:flex;
 align-items:center;
 gap:9px;
 flex-wrap:wrap;
 padding:11px 16px;
 background:#f8fafc;
 border-bottom:1px solid #edf0f3;
}
.closed-inline-note{
 margin-right:auto;
 display:inline-flex;
 align-items:center;
 gap:6px;
 color:#667085;
 font-size:12px;
 font-weight:700;
}
.room-folio-items.full-width{padding:0}
.room-folio-items.full-width .account-table{margin:0}
.registered-bottom{
 padding:12px 16px;
 border-top:1px solid #edf0f3;
 background:#fafbfc;
}
.registered-bottom>div{
 display:flex;
 gap:16px;
 align-items:center;
 flex-wrap:wrap;
}
.registered-bottom b{font-size:12px}
.registered-bottom span{font-size:11px;color:#667085}
.room-folio-card .row-actions{width:82px}
.room-folio-card .inline-delete{display:inline-block}
@media(max-width:700px){
 .room-folio-toolbar{align-items:stretch}
 .room-folio-toolbar .btn{flex:1 1 180px;justify-content:center}
}

/* v0.8.9 - conto camera integrato nella pagina conto esistente */
.integrated-account-note{
 margin-top:4px;
 font-size:11px;
 font-weight:700;
 color:#0f5bd3;
}

/* v0.9.0 - ditta/committente modificabile dopo prenotazione */
.reservation-company-card{margin-top:18px}
.company-current{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 15px;border:1px solid #d9e4f6;background:#f8fbff;border-radius:11px}
.company-current-main{display:flex;flex-direction:column;gap:3px}.company-current-main b{font-size:15px}.company-current-main span{font-size:11px;color:#667085}
.company-linked-badge{font-size:10px;font-weight:800;letter-spacing:.05em;background:#eaf8ef;color:#137a38;padding:5px 8px;border-radius:999px}
.company-empty-state{padding:15px;border:1px dashed #d0d5dd;border-radius:10px;color:#667085;font-size:12px}
.company-search-wrap{position:relative}
.company-search-results{position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;border:1px solid #d0d5dd;border-radius:9px;box-shadow:0 10px 30px rgba(16,24,40,.12);max-height:270px;overflow:auto}
.company-search-result{width:100%;border:0;background:#fff;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer}
.company-search-result:hover{background:#f5f8ff}.company-search-result b{font-size:13px}.company-search-result span,.company-search-none{font-size:11px;color:#667085}
.company-search-none{padding:12px}
.company-selected-preview{margin-top:10px;padding:11px 12px;border:1px solid #d9e4f6;background:#f8fbff;border-radius:9px;display:flex;flex-direction:column;gap:3px}
.company-selected-preview.is-empty{border-style:dashed;background:#fafafa;color:#667085}
.company-selected-preview b{font-size:13px}.company-selected-preview span{font-size:11px;color:#667085}
.danger-outline{background:#fff!important;color:#b42318!important;border:1px solid #f0b7b4!important}

/* v0.9.0.1 - ditta sempre visibile nella scheda prenotazione */
.reservation-company-card{margin-top:18px;border:1px solid #d9e4f6!important}
.company-summary-visible{margin-top:4px}
.company-empty-prominent{
 display:flex;
 align-items:center;
 gap:14px;
 padding:17px;
 background:#f8fbff;
 border:1px dashed #a9c4ef;
 border-radius:11px;
}
.company-empty-icon{
 width:42px;height:42px;
 display:flex;align-items:center;justify-content:center;
 border-radius:10px;
 background:#eaf2ff;
 font-size:20px;
 flex:0 0 42px;
}
.company-empty-prominent>div:last-child{display:flex;flex-direction:column;gap:3px}
.company-empty-prominent b{font-size:14px}
.company-empty-prominent span{font-size:11px;color:#667085}
.company-dialog{max-width:680px}

/* v0.9.1 - creazione ditta dalla prenotazione */
.create-company-inline{
 margin-top:10px;
 width:100%;
 border:1px dashed #85a9e8;
 background:#f7faff;
 color:#0f5bd3;
 border-radius:9px;
 padding:10px 12px;
 font-weight:800;
 font-size:12px;
 cursor:pointer;
 text-align:center;
}
.create-company-inline:hover{background:#edf4ff;border-color:#5e8edc}
.company-create-dialog{max-width:760px}
.company-create-grid{max-height:62vh;overflow:auto;padding-right:4px}
.company-search-none{display:flex;flex-direction:column;gap:2px}
.company-search-none b{font-size:12px;color:#344054}
.company-search-none span{font-size:11px;color:#667085}

/* v0.9.2 - codice conto automatico */
.auto-account-code-info{
 margin-top:12px;
 padding:12px 14px;
 border:1px solid #d9e4f6;
 border-radius:10px;
 background:#f8fbff;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.auto-account-code-info b{font-size:12px;color:#344054}
.auto-account-code-info span{font-size:11px;color:#667085}

/* v1.0.0 - ristampa e FatturaPA XML */
.xml-download{
 background:#eef8f2!important;
 color:#137a38!important;
 border-color:#add8bc!important;
 font-weight:800!important;
}
.xml-download:hover{background:#e4f4ea!important}

/* v1.0.2 - modifica anagrafica ditta dalla prenotazione */
.reservation-company-card .company-card-head>.actions{
 display:flex;
 gap:8px;
 flex-wrap:wrap;
}

/* v1.0.3 - spostamento conti e voci */
.transfer-dialog{max-width:650px}
.transfer-help,.transfer-warning{
 margin:0 0 14px;
 padding:12px 14px;
 border-radius:10px;
 font-size:12px;
 line-height:1.45;
}
.transfer-help{background:#f3f7ff;border:1px solid #d7e4fb;color:#344054}
.transfer-warning{background:#fff8e8;border:1px solid #ecd79c;color:#594a1d}
.icon-btn.move{
 border-color:#bfd0ee;
 color:#235da8;
 background:#f5f8ff;
 font-weight:900;
}
.icon-btn.move:hover{background:#eaf1ff}


/* v1.0.4 - Planning prenotazioni drag & drop */
.planning-drag-help{
 display:flex;
 align-items:center;
 gap:20px;
 flex-wrap:wrap;
 padding:8px 14px;
 border-bottom:1px solid #e7ebf1;
 background:#f7faff;
 color:#516174;
 font-size:10.5px;
}
.planning-drag-help b{color:#1d5fae}
.booking-bar.planning-draggable{
 cursor:grab;
 user-select:none;
 touch-action:none;
 padding-right:15px;
 transition:box-shadow .12s ease,opacity .12s ease;
 z-index:3;
}
.booking-bar.planning-draggable:active{cursor:grabbing}
.booking-bar.dragging{
 z-index:20;
 opacity:.82;
 box-shadow:0 8px 18px rgba(27,72,130,.25),inset 0 0 0 2px rgba(255,255,255,.8);
 pointer-events:none;
 transition:none!important;
}
.booking-label{pointer-events:none}
.booking-resize-handle{
 position:absolute;
 right:0;
 top:2px;
 bottom:2px;
 width:9px;
 cursor:ew-resize;
 border-left:1px solid rgba(255,255,255,.65);
 background:rgba(255,255,255,.10);
 z-index:5;
}
.booking-resize-handle:after{
 content:"";
 position:absolute;
 left:3px;
 top:7px;
 width:2px;
 height:9px;
 border-left:1px solid currentColor;
 border-right:1px solid currentColor;
 opacity:.65;
}
.planning-is-dragging .booking-bar:not(.dragging){opacity:.88}
.planning-confirm-dialog{
 border:0;
 border-radius:14px;
 width:min(560px,calc(100vw - 30px));
 padding:0;
 box-shadow:0 24px 70px rgba(21,37,65,.28);
}
.planning-confirm-dialog::backdrop{background:rgba(21,32,50,.35)}
.planning-confirm-dialog form{padding:18px}
.planning-change-summary{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:9px;
 margin:16px 0 12px;
}
.planning-change-summary>div{
 border:1px solid #e1e8f2;
 background:#f8fbff;
 border-radius:9px;
 padding:10px 12px;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.planning-change-summary span{font-size:10px;color:#738094}
.planning-change-summary b{font-size:13px;color:#24364d}
.planning-confirm-note{
 background:#fff9e9;
 border:1px solid #eedda7;
 border-radius:9px;
 padding:10px 12px;
 font-size:11px;
 color:#65552a;
 margin-bottom:14px;
}
.planning-toast{
 position:fixed;
 right:20px;
 bottom:20px;
 z-index:100;
 padding:12px 15px;
 border-radius:9px;
 background:#eff9f2;
 border:1px solid #afd7ba;
 color:#176c35;
 font-size:12px;
 font-weight:700;
 box-shadow:0 8px 25px rgba(30,60,80,.16);
}
.planning-toast.error{
 background:#fff0f0;
 border-color:#e7b2b2;
 color:#a12f2f;
}
@media(max-width:900px){
 .planning-drag-help{gap:8px}
 .planning-change-summary{grid-template-columns:1fr}
}

/* v1.0.5 - più prenotazioni nella stessa camera */
.shared-room-option{margin-top:3px}
.shared-room-check,.planning-share-confirm{
 display:flex;
 gap:10px;
 align-items:flex-start;
 border:1px solid #d9e5f6;
 background:#f7faff;
 border-radius:10px;
 padding:11px 12px;
 cursor:pointer;
}
.shared-room-check input,.planning-share-confirm input{margin-top:2px}
.shared-room-check span,.planning-share-confirm span{display:flex;flex-direction:column;gap:2px}
.shared-room-check b,.planning-share-confirm b{font-size:12px;color:#294765}
.shared-room-check small,.planning-share-confirm small{font-size:10px;color:#6c7888;line-height:1.35}
.planning-share-confirm{margin:0 0 14px}
.booking-layer{align-items:start;padding-top:6px}
.booking-bar{
 align-self:start!important;
 top:calc(var(--booking-lane,0) * 31px);
}
.booking-bar.shared-room-booking{
 box-shadow:inset 0 0 0 2px rgba(255,255,255,.65),0 0 0 1px rgba(45,90,150,.16);
}
.shared-mini{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 margin-left:5px;
 min-width:17px;
 height:14px;
 padding:0 3px;
 border-radius:7px;
 background:rgba(255,255,255,.78);
 color:#315b8d;
 font-size:8px;
 font-style:normal;
 vertical-align:1px;
}

/* v1.0.5.1 - conferma esplicita camera occupata */
.planning-conflict-box{
 display:flex;
 gap:12px;
 align-items:center;
 margin:16px 0 12px;
 padding:13px 14px;
 background:#fff7e8;
 border:1px solid #edce8c;
 border-radius:10px;
}
.planning-conflict-icon{
 width:30px;
 height:30px;
 flex:0 0 30px;
 display:flex;
 align-items:center;
 justify-content:center;
 border-radius:50%;
 background:#f4b942;
 color:#fff;
 font-size:18px;
 font-weight:900;
}
.planning-conflict-box>div:last-child{
 display:flex;
 flex-direction:column;
 gap:3px;
}
.planning-conflict-box b{font-size:13px;color:#674b14}
.planning-conflict-box span{font-size:11px;color:#7b673d}


/* v1.0.5.2 - allineamento corsie prenotazioni condivise
   Le barre restano fisicamente dentro l'altezza della riga camera. */
.plan-row{
 overflow:hidden;
}
.booking-layer{
 top:0!important;
 bottom:0!important;
 padding-top:6px!important;
 padding-bottom:6px!important;
 box-sizing:border-box!important;
 align-content:start!important;
}
.booking-bar.planning-draggable{
 align-self:start!important;
 top:auto!important;
 margin-top:calc(var(--booking-lane,0) * 31px)!important;
 margin-bottom:0!important;
 box-sizing:border-box!important;
}

/* Durante il drag il JS usa transform; il margine della corsia rimane
   come posizione base della prenotazione nella propria camera. */
.booking-bar.planning-draggable.dragging{
 top:auto!important;
}


/* v1.0.5.3 - fix definitivo corsie planning
   Tutte le prenotazioni restano sulla stessa riga CSS Grid;
   la corsia viene gestita solo verticalmente. */

.plan-row{
  position:relative;
  overflow:visible!important;
}

.booking-layer{
  position:absolute!important;
  left:145px!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  display:grid!important;
  grid-template-columns:repeat(var(--days),minmax(72px,1fr))!important;
  grid-template-rows:1fr!important;
  align-items:start!important;
  padding:0!important;
  pointer-events:none;
  overflow:visible!important;
}

.booking-bar.planning-draggable{
  /* IMPORTANTISSIMO: impedisce al Grid di creare una seconda riga implicita */
  grid-row:1!important;

  position:relative!important;
  align-self:start!important;

  /* 11px di margine superiore per la prima barra,
     poi 31px per ogni corsia aggiuntiva */
  top:calc(11px + (var(--booking-lane,0) * 31px))!important;

  margin-top:0!important;
  margin-bottom:0!important;
  box-sizing:border-box!important;

  z-index:4;
}

/* Il transform resta libero per il drag & drop JavaScript */
.booking-bar.planning-draggable.dragging{
  grid-row:1!important;
  z-index:50!important;
}

/* La riga camera fa da vero contenitore visivo */
.room-info,
.day-cell{
  min-height:inherit;
}


/* v1.0.5.4 - corsie assolute, indipendenti dal CSS Grid */
.plan-row{
  position:relative!important;
  overflow:hidden!important;
}

.booking-layer{
  position:absolute!important;
  left:145px!important;
  right:0!important;
  top:0!important;
  bottom:0!important;
  display:block!important;
  padding:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}

.booking-bar.planning-draggable{
  position:absolute!important;
  height:27px!important;
  margin:0!important;
  box-sizing:border-box!important;
  align-self:auto!important;
  grid-column:auto!important;
  grid-row:auto!important;
  transform:none;
  pointer-events:auto!important;
  z-index:4!important;
}

/* Durante il drag il JS può ancora applicare translate() */
.booking-bar.planning-draggable.dragging{
  z-index:50!important;
  pointer-events:none!important;
}


/* v1.0.5.5 - riga camera a altezza fissa reale */
.planning-calendar .plan-row{
  position:relative!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

.planning-calendar .plan-row > .room-info,
.planning-calendar .plan-row > .day-cell{
  box-sizing:border-box!important;
  height:var(--room-row-height)!important;
  min-height:var(--room-row-height)!important;
}

.planning-calendar .plan-row > .booking-layer{
  position:absolute!important;
  left:145px!important;
  right:0!important;
  top:0!important;
  height:var(--room-row-height)!important;
  min-height:var(--room-row-height)!important;
  display:block!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:3!important;
}

.planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable{
  position:absolute!important;
  height:27px!important;
  min-height:27px!important;
  line-height:15px!important;
  margin:0!important;
  box-sizing:border-box!important;
  pointer-events:auto!important;
  z-index:4!important;
}

.planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable.dragging{
  z-index:50!important;
  pointer-events:none!important;
}


/* v1.0.5.6 - priorità corretta della corsia verticale */
.planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable{
  top:var(--lane-top,8px)!important;
  margin-top:0!important;
}
.planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable.dragging{
  top:var(--lane-top,8px)!important;
}


/* v1.0.6 - giornata operativa manuale */
.business-date-link{
 text-decoration:none!important;
 color:inherit!important;
}
.top-date.business-date-link{
 gap:9px;
}
.top-date.business-date-link>div{
 display:flex;
 flex-direction:column;
 line-height:1.05;
}
.top-date.business-date-link small{
 font-size:8px;
 text-transform:uppercase;
 letter-spacing:.055em;
 color:#7b8797;
 font-weight:750;
 margin-bottom:3px;
}
.top-date.business-date-link:hover strong{color:#1769d2}

.business-day-layout{
 display:grid;
 grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
 gap:16px;
 margin-bottom:16px;
}
.business-day-main{
 text-align:center;
 padding:30px!important;
}
.business-day-label{
 display:block;
 font-size:10px;
 letter-spacing:.09em;
 font-weight:800;
 color:#5f7188;
 margin-bottom:8px;
}
.business-day-big{
 display:block;
 font-size:42px;
 letter-spacing:-.03em;
 color:#1e3655;
 margin-bottom:5px;
}
.business-day-explain{
 max-width:620px;
 margin:22px auto;
 padding:13px 15px;
 border-radius:10px;
 background:#f7faff;
 border:1px solid #dce8f8;
 font-size:12px;
 color:#53657a;
 line-height:1.5;
}
.business-day-next{
 min-width:310px;
 min-height:44px;
 font-size:12px;
}
.business-day-admin h2,.business-day-history h2{margin-top:0}
.business-day-history{margin-top:16px}
@media(max-width:900px){
 .business-day-layout{grid-template-columns:1fr}
 .business-day-big{font-size:34px}
 .business-day-next{min-width:0;width:100%}
}


/* v1.0.7 - note prenotazione */
.reservation-notes-card{
 scroll-margin-top:18px;
}
.reservation-notes-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:14px;
 margin-bottom:14px;
}
.reservation-notes-head h2{
 margin:0 0 4px;
}
.reservation-note-badge{
 display:inline-flex;
 align-items:center;
 min-height:22px;
 padding:0 8px;
 border-radius:999px;
 background:#fff6dc;
 border:1px solid #ebd18a;
 color:#7c5c0f;
 font-size:8.5px;
 font-weight:800;
 letter-spacing:.05em;
 white-space:nowrap;
}
.reservation-notes-form textarea{
 width:100%;
 min-height:125px;
 resize:vertical;
 line-height:1.55;
 font-size:12px;
 background:#fffdf8;
 border:1px solid #dfe5ec;
 border-radius:8px;
 padding:12px 13px;
 box-sizing:border-box;
}
.reservation-notes-form textarea:focus{
 outline:none;
 border-color:#7cadf0;
 box-shadow:0 0 0 3px rgba(55,125,220,.09);
 background:#fff;
}
.reservation-notes-footer{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:14px;
 margin-top:10px;
}
.reservation-notes-footer>.muted{
 max-width:650px;
 font-size:10px;
 line-height:1.4;
}
@media(max-width:800px){
 .reservation-notes-head,
 .reservation-notes-footer{
  flex-direction:column;
 }
 .reservation-notes-footer .actions{
  width:100%;
 }
}


/* v1.0.8 - dettaglio prenotazione solo su click */
.planning-layout.detail-closed{
 grid-template-columns:minmax(0,1fr)!important;
}
.planning-layout.detail-open{
 grid-template-columns:minmax(0,1fr) 330px!important;
}
.reservation-detail-sidebar{
 min-width:0;
}
.detail-card-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 margin-bottom:10px;
}
.detail-card-head h3{
 margin:0!important;
}
.detail-close{
 width:26px;
 height:26px;
 border-radius:7px;
 display:flex;
 align-items:center;
 justify-content:center;
 font-size:18px;
 line-height:1;
 color:#263445;
 border:1px solid transparent;
}
.detail-close:hover{
 background:#f3f6fa;
 border-color:#e0e6ee;
}
.detail-source strong{
 color:#1769d2;
}
.detail-notes{
 padding:12px 0;
 border-bottom:1px solid #edf0f4;
}
.detail-notes>span{
 display:block;
 color:#6e7684;
 font-size:10.5px;
 margin-bottom:7px;
}
.detail-notes p{
 margin:0;
 background:#fffaf0;
 border:1px solid #efe1bd;
 border-radius:8px;
 padding:10px 11px;
 font-size:10.5px;
 line-height:1.5;
 color:#4d5663;
 white-space:normal;
 overflow-wrap:anywhere;
}
.detail-notes p.muted{
 background:#fafbfc;
 border-color:#e7ebf0;
}
.reservation-actions{
 margin-top:14px;
 grid-template-columns:1fr 1fr;
}
.reservation-actions .mini-btn.primary{
 background:var(--blue);
 color:#fff;
 border-color:var(--blue);
}
@media(max-width:1100px){
 .planning-layout.detail-open{
  grid-template-columns:minmax(0,1fr)!important;
 }
 .reservation-detail-sidebar{
  margin-top:0;
 }
}


/* v1.0.8.1 - KPI bar più compatta */
.kpi-grid{
 gap:10px!important;
 margin-bottom:12px!important;
}
.kpi-card{
 padding:9px 11px!important;
 gap:9px!important;
 min-height:64px!important;
 border-radius:9px!important;
}
.kpi-icon{
 width:34px!important;
 height:34px!important;
 border-radius:10px!important;
 font-size:16px!important;
 flex:0 0 34px!important;
}
.kpi-label{
 font-size:9.5px!important;
 line-height:1.1!important;
}
.kpi-value{
 font-size:20px!important;
 margin-top:1px!important;
 line-height:1!important;
}
.kpi-sub{
 font-size:8.8px!important;
 margin-top:4px!important;
 line-height:1.1!important;
}
@media(max-width:620px){
 .kpi-card{min-height:58px!important;padding:8px!important}
 .kpi-icon{width:30px!important;height:30px!important;flex-basis:30px!important;font-size:14px!important}
 .kpi-value{font-size:17px!important}
}


/* v1.0.8.2 - planning ultra compatto */

/* Barra superiore / header */
.topbar{
 min-height:58px!important;
 height:58px!important;
 padding-top:0!important;
 padding-bottom:0!important;
}
.top-date{
 gap:7px!important;
}
.top-date .calendar-box{
 width:27px!important;
 height:27px!important;
 font-size:13px!important;
}
.top-date.business-date-link small{
 font-size:7.5px!important;
 margin-bottom:1px!important;
}
.top-date.business-date-link strong{
 font-size:11px!important;
 line-height:1.05!important;
}
.top-date.business-date-link>span:last-child{
 font-size:10px!important;
}
.top-search{
 height:42px!important;
}
.top-search input{
 height:40px!important;
 font-size:13px!important;
}
.new-booking-btn{
 min-height:42px!important;
 height:42px!important;
 padding-top:0!important;
 padding-bottom:0!important;
}
.user-box{
 min-height:42px!important;
}

/* KPI ancora più compatti */
.kpi-grid{
 margin-top:10px!important;
 margin-bottom:10px!important;
 gap:8px!important;
}
.kpi-card{
 min-height:56px!important;
 padding:7px 9px!important;
 gap:8px!important;
}
.kpi-icon{
 width:30px!important;
 height:30px!important;
 flex:0 0 30px!important;
 font-size:14px!important;
 border-radius:9px!important;
}
.kpi-label{
 font-size:8.8px!important;
}
.kpi-value{
 font-size:18px!important;
}
.kpi-sub{
 font-size:8px!important;
 margin-top:2px!important;
}

/* Toolbar planning */
.planning-toolbar{
 min-height:54px!important;
 padding:8px 12px!important;
}
.segmented a{
 padding:7px 12px!important;
 font-size:10px!important;
}
.filter-select,
.date-range,
.nav-btn{
 height:32px!important;
}

/* Elimina qualsiasi residuo della fascia istruzioni */
.planning-drag-help{
 display:none!important;
}

/* Righe camere più basse */
.planning-calendar .plan-row{
 min-height:40px!important;
}
.planning-calendar .plan-row > .room-info{
 padding:5px 9px!important;
}
.room-number{
 font-size:11px!important;
 line-height:1.05!important;
}
.room-meta{
 font-size:8.5px!important;
 margin-top:2px!important;
 margin-left:13px!important;
}
.room-dot{
 width:6px!important;
 height:6px!important;
}

/* Barre prenotazioni più sottili */
.planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable{
 height:23px!important;
 min-height:23px!important;
 padding:4px 8px!important;
 font-size:9px!important;
 border-radius:5px!important;
 line-height:15px!important;
}
.booking-bar:after{
 border-top-width:11.5px!important;
 border-bottom-width:11.5px!important;
}
.booking-resize-handle{
 top:1px!important;
 bottom:1px!important;
 width:8px!important;
}
.shared-mini{
 height:12px!important;
 min-width:15px!important;
 font-size:7px!important;
}

/* Header giorni leggermente più basso */
.plan-header>div{
 min-height:39px!important;
 padding:5px 3px!important;
}
.plan-header .room-head{
 padding:12px 10px!important;
}
.plan-day strong{
 font-size:10px!important;
}
.plan-day{
 font-size:9px!important;
}

/* Riduce spazio generale pagina dashboard */
.main-content{
 padding-top:12px!important;
}


/* v1.0.8.3 - più spazio al planning + sidebar comprimibile */

/* Riduzione reale della fascia superiore: il markup usa .top-header */
.top-header{
 height:54px!important;
 min-height:54px!important;
 padding:0 14px!important;
 gap:14px!important;
}
.top-header .global-search{
 height:36px!important;
 max-width:500px!important;
}
.top-header .global-search input{
 height:34px!important;
 font-size:12px!important;
}
.top-header .primary-cta{
 height:36px!important;
 min-height:36px!important;
 padding:0 12px!important;
 font-size:12px!important;
}
.top-header .primary-cta b{
 font-size:17px!important;
}
.top-header .avatar{
 width:30px!important;
 height:30px!important;
}
.top-header .user-menu{
 gap:7px!important;
}
.top-header .user-menu strong{
 font-size:11px!important;
}
.top-header .user-menu small{
 font-size:9px!important;
}
.top-header .top-date{
 gap:6px!important;
 font-size:10px!important;
}
.top-header .calendar-box{
 font-size:13px!important;
}
.top-header .top-date.business-date-link small{
 font-size:7px!important;
}
.top-header .top-date.business-date-link strong{
 font-size:10.5px!important;
}
.top-header .top-date.business-date-link>span:last-child{
 font-size:9.5px!important;
}

/* Elimina quasi tutto lo spazio evidenziato tra header e KPI */
.content-area{
 padding:4px 16px 12px!important;
}
.kpi-grid{
 margin-top:0!important;
 margin-bottom:8px!important;
}

/* Sidebar: il controllo in fondo è ora un vero pulsante */
.sidebar-bottom.sidebar-toggle{
 margin-top:auto;
 width:100%;
 min-height:46px;
 padding:0 16px;
 border:0;
 border-top:1px solid var(--line);
 background:#fff;
 color:#555f70;
 display:flex;
 align-items:center;
 gap:8px;
 font-size:11px;
 cursor:pointer;
 text-align:left;
}
.sidebar-bottom.sidebar-toggle:hover{
 background:#f6f8fb;
 color:var(--blue);
}
.sidebar-toggle-icon{
 font-size:17px;
 width:20px;
 text-align:center;
 flex:0 0 20px;
}

/* Stato ridotto: da 164px a 58px */
html.sidebar-collapsed-preload{
 --sidebar:58px;
}
body.sidebar-collapsed{
 --sidebar:58px;
}
.app-shell{
 transition:grid-template-columns .18s ease;
}
body.sidebar-collapsed .sidebar{
 width:58px;
}
body.sidebar-collapsed .brand-block{
 height:54px;
 padding:0;
 justify-content:center;
}
body.sidebar-collapsed .brand-logo{
 width:34px;
 height:34px;
 flex:0 0 34px;
}
body.sidebar-collapsed .brand-block>span:last-child{
 display:none;
}
body.sidebar-collapsed .side-nav{
 padding:10px 0;
 align-items:stretch;
}
body.sidebar-collapsed .side-nav a{
 height:46px;
 padding:0;
 justify-content:center;
 border-left-width:0;
 border-right:3px solid transparent;
 gap:0;
}
body.sidebar-collapsed .side-nav a span{
 width:auto;
 font-size:18px;
 margin:0;
}
body.sidebar-collapsed .side-nav a{
 font-size:0;
}
body.sidebar-collapsed .side-nav a:hover,
body.sidebar-collapsed .side-nav a.active{
 border-left-color:transparent;
 border-right-color:var(--blue);
}
body.sidebar-collapsed .sidebar-bottom.sidebar-toggle{
 min-height:46px;
 padding:0;
 justify-content:center;
}
body.sidebar-collapsed .sidebar-toggle-label{
 display:none;
}

/* Anche il preload evita il salto di larghezza all'apertura pagina */
html.sidebar-collapsed-preload .app-shell{
 grid-template-columns:58px 1fr;
}
html.sidebar-collapsed-preload .sidebar{
 width:58px;
}
html.sidebar-collapsed-preload .brand-block>span:last-child,
html.sidebar-collapsed-preload .sidebar-toggle-label{
 display:none;
}

/* Planning più vicino ai KPI */
.planning-toolbar{
 min-height:48px!important;
 padding:6px 10px!important;
}

/* Transizione disabilitata per chi preferisce meno movimento */
@media (prefers-reduced-motion:reduce){
 .app-shell{transition:none}
}


/* v1.0.9 - Ricevitore prenotazioni email */
.email-receiver-grid{
 display:grid;
 grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
 gap:16px;
}
.receiver-status{
 font-size:9px;
 font-weight:800;
 letter-spacing:.06em;
 padding:5px 8px;
 border-radius:999px;
}
.receiver-status.on{background:#eaf7ed;color:#2d8b40}
.receiver-status.off{background:#f1f3f6;color:#697386}
.receiver-switch{
 display:flex;
 align-items:center;
 gap:8px;
 padding:10px 12px;
 border:1px solid #e2e8f0;
 border-radius:9px;
 background:#f8fafc;
}
.receiver-actions{justify-content:flex-end}
.receiver-info-list{
 display:flex;
 flex-direction:column;
 margin:12px 0;
}
.receiver-info-list>div{
 display:flex;
 justify-content:space-between;
 gap:12px;
 padding:9px 0;
 border-bottom:1px solid #edf0f4;
 font-size:11px;
}
.receiver-info-list span{color:#707887}
.receiver-info-list .good{color:#378344}
.receiver-info-list .bad{color:#c33f48;max-width:60%;text-align:right}
.receiver-sync-form{margin:14px 0}
.receiver-separator{border:0;border-top:1px solid #e8edf3;margin:20px 0}
.cron-token{
 background:#f6f8fb;
 border:1px solid #e1e6ed;
 border-radius:8px;
 padding:9px 10px;
 margin:10px 0;
 overflow:auto;
}
.cron-token span{font-size:9px;color:#737e8c;display:block;margin-bottom:4px}
.cron-token code,.cron-help code{font-size:9px;word-break:break-all}
.cron-help{
 margin-top:12px;
 font-size:10px;
 color:#697386;
 line-height:1.5;
}
.receiver-security-note{
 margin-top:16px;
 display:flex;
 gap:10px;
 align-items:flex-start;
 font-size:10.5px;
 line-height:1.5;
}

.email-inbox-tabs{
 display:flex;
 gap:6px;
 margin-bottom:12px;
 flex-wrap:wrap;
}
.email-inbox-tabs a{
 height:34px;
 padding:0 12px;
 display:flex;
 align-items:center;
 gap:6px;
 border:1px solid #dfe5ed;
 border-radius:7px;
 background:#fff;
 font-size:10px;
}
.email-inbox-tabs a.active{
 background:var(--blue);
 color:#fff;
 border-color:var(--blue);
}
.email-inbox-tabs b{
 min-width:18px;
 height:18px;
 border-radius:9px;
 display:grid;
 place-items:center;
 background:rgba(255,255,255,.2);
}
.email-inbox-list{
 display:flex;
 flex-direction:column;
 gap:10px;
}
.email-inbox-card{
 background:#fff;
 border:1px solid #e4e8ef;
 border-radius:10px;
 padding:14px;
}
.email-inbox-card.status-new{border-left:4px solid #1769e8}
.email-inbox-card.status-approved{border-left:4px solid #50a85a}
.email-inbox-card.status-rejected{border-left:4px solid #b5bdc9;opacity:.86}
.email-inbox-head{
 display:flex;
 justify-content:space-between;
 align-items:flex-start;
 gap:14px;
}
.email-inbox-head h2{
 font-size:13px;
 margin:6px 0 5px;
}
.email-meta{
 display:flex;
 gap:14px;
 flex-wrap:wrap;
 font-size:9.5px;
 color:#707887;
}
.email-status{
 display:inline-flex;
 padding:3px 7px;
 border-radius:999px;
 font-size:8px;
 font-weight:850;
 letter-spacing:.06em;
}
.email-status.new{background:#edf4ff;color:#1769e8}
.email-status.approved{background:#eaf7ed;color:#378344}
.email-status.rejected{background:#eff1f4;color:#6f7784}
.email-preview{
 margin:12px 0;
 padding:10px 11px;
 background:#f8fafc;
 border-radius:8px;
 font-size:10.5px;
 line-height:1.45;
 color:#4c5665;
 white-space:pre-wrap;
}
.email-card-actions form{
 display:flex;
 justify-content:flex-end;
 gap:8px;
}
.email-inbox-empty{text-align:center;padding:30px!important}
.email-original-text{
 white-space:pre-wrap;
 word-break:break-word;
 background:#f8fafc;
 border:1px solid #e4e9ef;
 border-radius:8px;
 padding:14px;
 max-height:600px;
 overflow:auto;
 font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
 font-size:10.5px;
 line-height:1.5;
}
.parser-next-step{margin-top:14px}
.parser-next-step p{font-size:11px;line-height:1.6;color:#536071}

@media(max-width:950px){
 .email-receiver-grid{grid-template-columns:1fr}
}


/* v1.1.0 - Parser WuBook */
.parser-confidence{
 display:inline-flex;
 min-width:46px;
 height:28px;
 align-items:center;
 justify-content:center;
 border-radius:14px;
 font-size:10px;
 font-weight:850;
}
.parser-confidence.good{background:#eaf7ed;color:#318043}
.parser-confidence.warn{background:#fff6dd;color:#8a6813}
.parsed-grid{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:10px;
 margin-top:14px;
}
.parsed-grid .full{grid-column:1/-1}
.parsed-grid .field label{
 font-size:9.5px;
 color:#5f6877;
}
.parsed-grid input,
.parsed-grid select,
.parsed-grid textarea{
 width:100%;
}
.parsed-grid small{
 display:block;
 margin-top:4px;
 font-size:8.5px;
 color:#7a8492;
}
.parsed-summary{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:8px;
 margin:14px 0;
}
.parsed-summary>div{
 background:#f8fafc;
 border:1px solid #e3e8ef;
 border-radius:8px;
 padding:10px;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.parsed-summary span{font-size:8.5px;color:#7a8492}
.parsed-summary b{font-size:11px;color:#28394f}
@media(max-width:1000px){
 .parsed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .parsed-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
 .parsed-grid,.parsed-summary{grid-template-columns:1fr}
}


/* v1.1.0.1 - regola Agoda Net amount */
.agoda-net-rule{
 margin:12px 0 4px;
 padding:10px 12px;
 border-radius:8px;
 background:#f2f8ff;
 border:1px solid #cfe1f7;
 color:#35597e;
 font-size:10.5px;
 line-height:1.5;
}
.agoda-net-rule strong{
 color:#1769e8;
}


/* v1.1.0.2 - Expedia OTA Collect / TRAVELSCAPE */
.expedia-travelscape-rule{
 margin:12px 0 4px;
 padding:10px 12px;
 border-radius:8px;
 background:#fff8e8;
 border:1px solid #ead69c;
 color:#655323;
 font-size:10.5px;
 line-height:1.5;
}
.expedia-travelscape-rule strong{
 color:#8a6400;
}


/* v1.1.1 - Report incassi giornalieri */
.takings-title-row{margin-bottom:10px}
.business-day-pill{
 display:inline-flex;
 margin-left:6px;
 padding:2px 6px;
 border-radius:999px;
 background:#eaf2ff;
 color:#1769e8;
 font-size:7.5px;
 font-weight:800;
 letter-spacing:.05em;
 vertical-align:middle;
}
.takings-date-nav{
 display:flex;
 align-items:center;
 gap:7px;
 margin-bottom:10px;
}
.takings-date-nav .takings-date{
 display:flex;
 align-items:center;
 gap:6px;
}
.takings-date-nav input[type=date]{
 height:34px;
 border:1px solid #dfe4ec;
 border-radius:7px;
 padding:0 9px;
 background:#fff;
 font-size:10px;
}
.takings-kpis{
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
 margin-bottom:12px!important;
}
.takings-kpis .account-kpi small{
 display:block;
 margin-top:4px;
 color:#7a8492;
 font-size:8.5px;
 font-weight:500;
}
.takings-report-layout{
 display:grid;
 grid-template-columns:280px minmax(0,1fr);
 gap:12px;
 align-items:start;
}
.takings-method-card,
.takings-movements-card{
 min-width:0;
}
.takings-methods.detailed{
 display:flex;
 flex-direction:column;
}
.takings-method-row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
 padding:10px 0;
 border-bottom:1px solid #edf0f4;
}
.takings-method-row:last-child{border-bottom:0}
.takings-method-main{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:2px;
}
.takings-method-main>span{
 font-size:10.5px;
 font-weight:700;
 color:#354152;
}
.takings-method-main small{
 font-size:8.5px;
 color:#7c8593;
}
.takings-method-row>b{
 white-space:nowrap;
 font-size:11px;
}
.takings-table th,
.takings-table td{
 font-size:9.5px!important;
 padding:8px 7px!important;
}
.takings-table .money-col{
 text-align:right;
 white-space:nowrap;
}
.takings-table tfoot td{
 background:#f8fafc;
 border-top:2px solid #dfe5ed;
}
.table-link{
 color:#1769e8;
 font-weight:650;
}
.table-link:hover{text-decoration:underline}
.payment-method-pill{
 display:inline-flex;
 padding:3px 6px;
 border-radius:999px;
 background:#f0f4f8;
 color:#465467;
 font-size:8.5px;
 white-space:nowrap;
}
.reversal-head{
 margin-top:18px;
 padding-top:14px;
 border-top:1px solid #e6eaf0;
}
.reversal-table .reversed-row{
 background:#fffafa;
}
.print-only{display:none}

@media(max-width:1050px){
 .takings-report-layout{grid-template-columns:1fr}
 .takings-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
 .takings-kpis{grid-template-columns:1fr!important}
 .takings-date-nav{flex-wrap:wrap}
}

@media print{
 .sidebar,
 .top-header,
 .app-footer,
 .no-print{
  display:none!important;
 }
 .app-shell{
  display:block!important;
 }
 .content-area{
  padding:0!important;
 }
 body{
  background:#fff!important;
 }
 .card,
 .account-kpi{
  box-shadow:none!important;
  break-inside:avoid;
 }
 .takings-report-layout{
  display:block!important;
 }
 .takings-method-card{
  margin-bottom:10px;
 }
 .print-only{display:flex!important}
 .takings-print-footer{
  justify-content:space-between;
  margin-top:14px;
  padding-top:8px;
  border-top:1px solid #ccd3dc;
  font-size:8px;
  color:#687384;
 }
 a{color:inherit!important;text-decoration:none!important}
}


/* v1.1.2 - gestione camere e tipologie */
.room-admin-layout{
 display:grid;
 grid-template-columns:310px minmax(0,1fr);
 gap:14px;
 align-items:start;
}
.room-type-form-card{
 position:sticky;
 top:64px;
}
.room-active-switch{
 margin:12px 0;
}
.room-types-table td>small{
 display:block;
 margin-top:3px;
 max-width:300px;
 color:#7b8492;
 font-size:8.5px;
}
.room-admin-actions{
 display:flex;
 justify-content:flex-end;
 gap:5px;
 flex-wrap:wrap;
}
.room-admin-actions form{
 margin:0;
}
.room-admin-actions .mini-btn{
 white-space:nowrap;
}
.danger-mini{
 color:#c83f47!important;
 border-color:#efc8cc!important;
 background:#fffafa!important;
}
.room-status-pill{
 display:inline-flex;
 padding:3px 7px;
 border-radius:999px;
 font-size:8px;
 font-weight:750;
 text-transform:uppercase;
}
.room-status-pill.clean{background:#eaf7ed;color:#328143}
.room-status-pill.dirty{background:#fff4df;color:#9a6a12}
.room-status-pill.maintenance,
.room-status-pill.out_of_order{background:#f0f2f5;color:#657080}
@media(max-width:950px){
 .room-admin-layout{grid-template-columns:1fr}
 .room-type-form-card{position:static}
}


/* v1.1.5 - tre viste report giornaliero */
.report-tabs{
 display:flex;
 gap:6px;
 margin:0 0 9px;
 border-bottom:1px solid #dfe5ec;
}
.report-tab{
 display:inline-flex;
 align-items:center;
 gap:6px;
 padding:8px 11px;
 margin-bottom:-1px;
 border:1px solid transparent;
 border-bottom:0;
 border-radius:8px 8px 0 0;
 color:#647083;
 font-size:9.5px;
 font-weight:700;
}
.report-tab:hover{
 background:#f7f9fc;
 color:#27364a;
}
.report-tab.active{
 background:#fff;
 color:#1769e8;
 border-color:#dfe5ec;
}
.report-single-card{
 max-width:850px;
}
.summary-payment-list{
 display:flex;
 flex-direction:column;
}
.summary-payment-row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
 padding:13px 4px;
 border-bottom:1px solid #edf0f4;
}
.summary-payment-row>div{
 display:flex;
 flex-direction:column;
 gap:3px;
}
.summary-payment-row b{
 font-size:11px;
 color:#344154;
}
.summary-payment-row small{
 font-size:8.5px;
 color:#7d8795;
}
.summary-payment-row strong{
 font-size:13px;
 color:#243449;
 white-space:nowrap;
}
.summary-grand-total{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 margin-top:10px;
 padding:12px 4px 2px;
 border-top:2px solid #dce3ec;
}
.summary-grand-total span{
 font-size:9px;
 font-weight:800;
 letter-spacing:.05em;
 color:#647083;
}
.summary-grand-total b{
 font-size:16px;
 color:#1769e8;
}
.product-report-kpis{
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
 margin-bottom:12px!important;
}
.product-summary-table .qty-col,
.charge-detail-table .qty-col{
 text-align:right;
 white-space:nowrap;
}
.product-summary-table .money-col,
.charge-detail-table .money-col{
 text-align:right;
 white-space:nowrap;
}
.charge-type-pill{
 display:inline-flex;
 margin-left:5px;
 padding:2px 5px;
 border-radius:999px;
 font-size:7.5px;
 font-weight:750;
 white-space:nowrap;
}
.charge-type-pill.stay{
 background:#eaf2ff;
 color:#1769e8;
}
.charge-type-pill.extra{
 background:#f1f3f6;
 color:#667283;
}
.report-explain-note{
 margin-top:12px;
 padding:9px 11px;
 border-radius:7px;
 background:#f8fafc;
 border:1px solid #e5e9ef;
 color:#687385;
 font-size:9px;
 line-height:1.45;
}
.detailed-report-card{
 margin-bottom:12px;
}
.daily-report-heading{
 align-items:center;
 justify-content:space-between;
 margin-bottom:12px;
}
.daily-report-heading h2{
 margin:0;
 font-size:15px;
}
.daily-report-heading span{
 font-size:10px;
}
@media(max-width:800px){
 .report-tabs{
  overflow-x:auto;
  white-space:nowrap;
 }
 .product-report-kpis{
  grid-template-columns:1fr!important;
 }
}
@media print{
 .report-title-row{
  display:none!important;
 }
 .daily-report-heading{
  display:flex!important;
 }
 .report-single-card{
  max-width:none!important;
 }
}


/* v1.1.7 - riepilogo ricevute / fatture */
.fiscal-summary-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;
 margin-bottom:10px;
}
.fiscal-summary-card{
 background:#fff;
 border:1px solid #e0e6ed;
 border-radius:10px;
 padding:12px 14px;
 box-shadow:0 1px 2px rgba(24,39,75,.04);
}
.fiscal-summary-card.grand{
 border-color:#bfd4f7;
 background:#f7faff;
}
.fiscal-summary-card span{
 display:block;
 color:#697486;
 font-size:8.5px;
 font-weight:800;
 text-transform:uppercase;
 letter-spacing:.04em;
 margin-bottom:4px;
}
.fiscal-summary-card b{
 display:block;
 font-size:18px;
 color:#23364c;
}
.fiscal-summary-card.grand b{
 color:#1769e8;
}
.fiscal-summary-card small{
 display:block;
 margin-top:4px;
 color:#87909c;
 font-size:8px;
}
.report-summary-kpis{
 grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
@media(max-width:720px){
 .fiscal-summary-grid{
  grid-template-columns:1fr;
 }
 .report-summary-kpis{
  grid-template-columns:1fr!important;
 }
}


/* v1.1.8 - quadratura ricevute/fatture */
.fiscal-quadrature{
 display:flex;
 align-items:center;
 gap:10px;
 margin:-2px 0 10px;
 padding:7px 10px;
 border:1px solid #e2e7ed;
 border-radius:7px;
 background:#fbfcfd;
 font-size:8.5px;
}
.fiscal-quadrature>span{
 color:#75808e;
 font-weight:700;
 text-transform:uppercase;
 letter-spacing:.04em;
}
.fiscal-quadrature>b{
 color:#334257;
}
.fiscal-quadrature>em{
 margin-left:auto;
 font-style:normal;
 font-weight:800;
 color:#2f8243;
}
.fiscal-quadrature>em.warn{
 color:#a06d14;
}


/* v1.1.9 - controllo email direttamente da Inbox */
.email-check-now-form{
 margin:0;
 display:inline-flex;
}
.email-check-now-btn{
 white-space:nowrap;
}


/* v1.2.0 - ricerca globale PMS */
.global-search{
 margin:0;
}
.global-search input{
 cursor:text!important;
}
.search-page-form{
 display:flex;
 align-items:center;
 gap:8px;
 max-width:820px;
 margin-bottom:12px;
 padding:8px 10px;
 background:#fff;
 border:1px solid #dfe5ec;
 border-radius:10px;
}
.search-page-form>span{
 font-size:18px;
 color:#7b8592;
}
.search-page-form input{
 flex:1;
 min-width:0;
 border:0;
 outline:0;
 font-size:12px;
 background:transparent;
}
.search-result-summary{
 margin:4px 0 10px;
 font-size:9.5px;
 color:#6f7987;
}
.global-results-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;
}
.search-result-section{
 min-width:0;
}
.search-result-row{
 display:grid;
 grid-template-columns:30px minmax(0,1fr) auto;
 gap:8px;
 align-items:center;
 padding:9px 4px;
 border-bottom:1px solid #edf0f4;
 color:inherit;
}
.search-result-row:last-child{
 border-bottom:0;
}
.search-result-row:hover{
 background:#f8fafc;
}
.search-result-icon{
 display:flex;
 width:28px;
 height:28px;
 align-items:center;
 justify-content:center;
 border-radius:7px;
 background:#f0f4f8;
 color:#526276;
}
.search-result-row>div{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:2px;
}
.search-result-row b{
 font-size:10px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.search-result-row small{
 font-size:8.5px;
 color:#788291;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.search-result-row em{
 font-size:8.5px;
 color:#667284;
 font-style:normal;
 white-space:nowrap;
}
.search-empty{
 padding:12px 3px;
 color:#8b94a0;
 font-size:9px;
}
.client-search-form{
 display:flex;
 gap:7px;
 max-width:620px;
 margin-bottom:10px;
}
.client-search-form input{
 flex:1;
}
.client-detail-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:12px;
 margin-bottom:12px;
}
.detail-list{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px;
}
.detail-list>div{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.detail-list span{
 font-size:8px;
 color:#7c8693;
 text-transform:uppercase;
}
.detail-list b{
 font-size:10px;
}
.detail-list .full{
 grid-column:1/-1;
}
@media(max-width:900px){
 .global-results-grid,
 .client-detail-grid{
  grid-template-columns:1fr;
 }
}


/* v1.2.1 - Tableau camere in casa */
.tableau-kpis{
 margin-bottom:10px!important;
}
.tableau-table{
 min-width:980px;
}
.tableau-table td{
 vertical-align:top;
}
.tableau-room-number{
 font-size:13px;
 font-weight:850;
 color:#26384f;
}
.tableau-table td>small{
 display:block;
 margin-top:2px;
 font-size:8px;
 color:#7a8492;
}
.tableau-badge{
 display:inline-flex;
 margin-top:3px;
 padding:2px 4px;
 border-radius:4px;
 font-size:6.5px;
 font-weight:850;
 white-space:nowrap;
}
.tableau-badge.arrival{
 background:#e9f6ed;
 color:#2c7c41;
}
.tableau-badge.departure{
 background:#fff3df;
 color:#976612;
}
.tableau-notes{
 max-width:260px;
 font-size:8.5px;
 line-height:1.35;
}
.tableau-arrival{
 background:#fbfefc;
}


/* v1.2.1.2 - Tableau con tutte le camere */
.tableau-badge.free{
 background:#f0f2f5;
 color:#687482;
}
.tableau-free-row td{
 min-height:44px;
 background:#fcfcfd;
}
.tableau-write-line{
 display:block;
 min-width:80px;
 min-height:20px;
 border-bottom:1px dotted #c8ced6;
}
.tableau-write-line.wide{
 min-width:150px;
}


/* v1.2.1.4 - Tableau essenziale e più leggibile */
.tableau-date-cell{
 font-weight:800;
 font-size:10px;
 white-space:nowrap;
}
.tableau-people-cell{
 text-align:center;
 font-size:11px;
 font-weight:850;
}
.tableau-table td:nth-child(2) b{
 font-size:10px;
}


/* v1.2.1.5 - dati principali ancora più leggibili */
.tableau-room-number{
 font-size:15px!important;
}
.tableau-table td:nth-child(2) b{
 font-size:11.5px!important;
}
.tableau-date-cell{
 font-size:11px!important;
}
.tableau-people-cell{
 font-size:12px!important;
}


/* v1.2.2 - Report incassi avanzato */
.advanced-report-filter{
 margin-bottom:12px;
}
.advanced-filter-grid{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:9px;
}
.advanced-filter-actions{
 display:flex;
 justify-content:flex-end;
 margin-top:10px;
}
.advanced-report-kpis{
 margin-bottom:12px;
}
.advanced-report-breakdowns{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:12px;
 margin-bottom:12px;
}
.advanced-breakdown-row{
 display:flex;
 justify-content:space-between;
 gap:12px;
 padding:7px 1px;
 border-bottom:1px solid #edf0f4;
 font-size:9px;
}
.advanced-breakdown-row:last-child{
 border-bottom:0;
}
.advanced-breakdown-row span{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#536174;
}
.advanced-breakdown-row b{
 white-space:nowrap;
}
.report-cell-sub{
 display:block;
 margin-top:2px;
 font-size:7.5px;
 color:#7d8794;
}
.advanced-report-print-title{
 margin-bottom:10px;
}
.advanced-report-print-title h2{
 margin:0 0 2px;
}
@media(max-width:980px){
 .advanced-filter-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
 }
 .advanced-report-breakdowns{
  grid-template-columns:1fr;
 }
}
@media(max-width:560px){
 .advanced-filter-grid{
  grid-template-columns:1fr;
 }
}
@media print{
 .advanced-report-breakdowns{
  grid-template-columns:repeat(3,minmax(0,1fr));
 }
 .advanced-report-detail{
  page-break-before:auto;
 }
}


/* v1.2.3 - report mensile modificabile */
.monthly-nav{
 display:flex;
 align-items:center;
 gap:7px;
 margin-bottom:10px;
}
.monthly-nav form{
 display:flex;
 align-items:center;
 gap:7px;
 margin:0;
}
.monthly-report-sheet{
 background:#fff;
 border:1px solid #d9dee5;
 padding:12px;
}
.monthly-report-title{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 margin-bottom:7px;
}
.monthly-report-title h2{
 margin:0;
 font-size:15px;
 text-align:center;
 flex:1;
}
.monthly-report-title small{
 color:#7c8693;
 font-size:8px;
}
.monthly-daily-wrap{
 overflow-x:auto;
}
.monthly-daily-table,
.monthly-source-table{
 width:100%;
 border-collapse:collapse;
 table-layout:fixed;
}
.monthly-daily-table th,
.monthly-daily-table td,
.monthly-source-table th,
.monthly-source-table td{
 border:1px solid #2f3338;
 padding:2px;
 text-align:center;
}
.monthly-daily-table th,
.monthly-source-table th{
 font-size:8px;
 font-weight:850;
 background:#f3f4f6;
}
.monthly-daily-table .day-cell{
 width:7%;
 font-weight:800;
 font-size:9px;
}
.monthly-money-input{
 display:flex;
 align-items:center;
 gap:2px;
}
.monthly-money-input span{
 font-size:8px;
 color:#687381;
}
.monthly-money-input input,
.monthly-source-table input{
 width:100%;
 min-width:0;
 border:0;
 background:transparent;
 padding:2px 1px;
 text-align:right;
 font-size:9px;
}
.monthly-daily-table input:focus,
.monthly-source-table input:focus{
 background:#fffbea;
 outline:1px solid #d3a928;
}
.monthly-daily-table tfoot th,
.monthly-source-table tfoot th{
 font-size:9px;
 background:#edf0f3;
}
.monthly-bottom-grid{
 display:grid;
 grid-template-columns:minmax(0,1.75fr) minmax(220px,.75fr);
 gap:10px;
 margin-top:10px;
 align-items:start;
}
.monthly-source-table .source-name{
 text-align:left;
 font-weight:750;
}
.monthly-extras{
 display:grid;
 gap:7px;
}
.monthly-extras label{
 display:grid;
 grid-template-columns:95px 1fr;
 gap:8px;
 align-items:center;
 font-size:8px;
 font-weight:850;
}
.monthly-extra-total{
 display:flex;
 justify-content:space-between;
 border-top:2px solid #30343a;
 padding-top:6px;
 font-size:10px;
}
.monthly-notes{
 margin-top:10px;
}
.monthly-notes label{
 display:block;
 margin-bottom:3px;
 font-size:8px;
 font-weight:850;
}
.monthly-notes textarea{
 width:100%;
 border:1px solid #3b3f45;
 min-height:70px;
 resize:vertical;
}
.monthly-form-actions{
 display:flex;
 gap:8px;
 margin-top:10px;
 flex-wrap:wrap;
}
@media(max-width:850px){
 .monthly-bottom-grid{
  grid-template-columns:1fr;
 }
}
@media print{
 @page{size:A4 portrait;margin:7mm}
 .monthly-report-sheet{
  border:0;
  padding:0;
 }
 .monthly-report-title small,
 .monthly-notes{
  display:none!important;
 }
 .monthly-daily-table th,
 .monthly-daily-table td,
 .monthly-source-table th,
 .monthly-source-table td{
  padding:1px!important;
 }
 .monthly-daily-table input,
 .monthly-source-table input,
 .monthly-extras input{
  font-size:7px!important;
 }
 .monthly-bottom-grid{
  grid-template-columns:1.75fr .75fr!important;
  gap:6px;
 }
}


/* v1.2.4 - parser conferme dirette */
.direct-email-rule{
 margin:0 0 12px;
 padding:10px 12px;
 border:1px solid #bdd9c6;
 border-radius:8px;
 background:#f3fbf5;
 color:#395c43;
 font-size:9px;
 line-height:1.45;
}


/* v1.2.6 - prenotazioni di gruppo */
.group-billing-choice{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px;
 margin-top:12px;
}
.group-billing-option{
 display:flex;
 align-items:flex-start;
 gap:8px;
 border:1px solid #dfe5ec;
 border-radius:9px;
 padding:11px;
 cursor:pointer;
}
.group-billing-option:has(input:checked){
 border-color:#aac8f6;
 background:#f7faff;
}
.group-billing-option input{
 margin-top:2px;
}
.group-billing-option span{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.group-billing-option b{
 font-size:10px;
}
.group-billing-option small{
 font-size:8.5px;
 color:#778290;
 line-height:1.35;
}
.group-room-table-wrap{
 overflow-x:auto;
}
.group-room-table{
 width:100%;
 min-width:960px;
 border-collapse:collapse;
}
.group-room-table th,
.group-room-table td{
 border-bottom:1px solid #e8ecf1;
 padding:5px 4px;
}
.group-room-table th{
 text-align:left;
 font-size:8px;
 color:#687586;
}
.group-room-table select,
.group-room-table input{
 width:100%;
 min-width:70px;
}
.group-form-actions{
 display:flex;
 justify-content:flex-end;
 margin-top:12px;
}
.group-summary{
 margin-bottom:12px!important;
}
.group-shared-account-card{
 border-color:#c9dcf8;
 background:#fbfdff;
}
.group-shared-total{
 font-size:18px;
 font-weight:850;
 color:#1769e8;
}
.group-member-banner{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
}
.group-member-banner>div:first-child{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.group-member-banner span{
 font-size:8.5px;
 color:#667384;
}
@media(max-width:760px){
 .group-billing-choice{grid-template-columns:1fr}
 .group-member-banner{align-items:flex-start;flex-direction:column}
}


/* v1.2.7 - fattura gruppo analitica */
.doc-table td:first-child{
 line-height:1.35;
}


/* v1.2.8 - blocchi camera nei documenti di gruppo */
.doc-room-group-head td{
 background:#f0f3f6!important;
 border-top:1.5px solid #7d8792!important;
 border-bottom:1px solid #aeb6bf!important;
 padding:5px 7px!important;
}
.doc-room-group-head b{font-size:9px;letter-spacing:.02em}
.doc-room-group-head span{margin-left:8px;font-size:9px;font-weight:750}
.doc-room-group-head small{float:right;font-size:7.5px;font-weight:700;color:#566270}
@media print{
 .doc-room-group-head td{
  background:#f4f4f4!important;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
 }
}


/* v1.3.2 - trasferimento smart drag & drop */
.smart-transfer-dialog{
 width:min(1180px,96vw);max-width:none;border:0;border-radius:14px;padding:0;box-shadow:0 24px 80px rgba(15,35,65,.28);overflow:hidden
}
.smart-transfer-dialog::backdrop{background:rgba(18,31,49,.48);backdrop-filter:blur(2px)}
.smart-transfer-shell{background:#f6f8fb;min-height:620px;display:flex;flex-direction:column}
.smart-transfer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;background:#fff;border-bottom:1px solid #e0e6ee}
.smart-transfer-head h2{margin:0 0 3px;font-size:18px}
.smart-transfer-account-picker{display:grid;grid-template-columns:1fr 44px 1fr;gap:10px;align-items:end;padding:14px 18px 8px}
.smart-transfer-switch{height:38px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#6f7d8e}
.smart-transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 18px 16px;flex:1;min-height:430px}
.smart-account-panel{background:#fff;border:1px solid #dce3eb;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.smart-account-panel.empty{border-style:dashed;background:#fbfcfe}
.smart-account-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 14px;border-bottom:1px solid #e4e9ef;background:#fff}
.smart-account-head>div{display:flex;flex-direction:column;min-width:0}.smart-account-head span{font-size:8px;text-transform:uppercase;color:#6a7787;font-weight:800}.smart-account-head b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-account-head small{font-size:8px;color:#74808e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-account-head>strong{font-size:17px;white-space:nowrap}
.smart-account-dropzone{padding:10px;overflow:auto;flex:1;min-height:330px;transition:.16s ease}.smart-account-dropzone.drag-over{background:#edf6ff;box-shadow:inset 0 0 0 2px #2878e9}
.smart-transfer-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto 34px;gap:8px;align-items:center;padding:9px 8px;margin-bottom:7px;border:1px solid #dfe5ec;border-radius:9px;background:#fff;cursor:grab;box-shadow:0 1px 2px rgba(22,35,52,.04);transition:.14s ease}.smart-transfer-item:hover{border-color:#adcaf3;box-shadow:0 3px 10px rgba(31,79,142,.10)}.smart-transfer-item.dragging{opacity:.45;transform:scale(.985)}
.smart-item-grip{font-size:14px;color:#8b96a3;letter-spacing:-2px}.smart-item-main{display:flex;flex-direction:column;min-width:0}.smart-item-main b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.smart-item-main small{font-size:7.5px;color:#778392;margin-top:2px}.smart-item-price{font-size:10px;font-weight:800;white-space:nowrap}.smart-item-send{width:30px;height:30px;border:1px solid #c9d7e8;border-radius:7px;background:#f4f8fd;color:#1769e8;font-weight:900;cursor:pointer}.smart-item-send:hover{background:#1769e8;color:#fff}
.smart-empty-target,.smart-account-loading,.smart-account-error,.smart-account-empty{margin:auto;padding:28px;text-align:center;color:#74808f;display:flex;flex-direction:column;gap:5px}.smart-empty-target b{font-size:12px;color:#3f4b59}.smart-account-error{color:#b42318}.smart-account-empty{min-height:220px;justify-content:center}
.smart-transfer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:#fff;border-top:1px solid #e0e6ee}.smart-transfer-status{font-size:9px;color:#667586}.smart-transfer-status.ok{color:#177245;font-weight:750}.smart-transfer-status.error{color:#b42318;font-weight:750}.smart-transfer-status.working{color:#1769e8;font-weight:750}
@media(max-width:800px){.smart-transfer-dialog{width:98vw}.smart-transfer-account-picker{grid-template-columns:1fr}.smart-transfer-switch{display:none}.smart-transfer-grid{grid-template-columns:1fr;max-height:68vh;overflow:auto}.smart-account-panel{min-height:340px}}


/* v1.3.3 - selezione conti dal Planning per drag & drop tra finestre */
.planning-transfer-accounts{
 display:flex;
 flex-wrap:wrap;
 gap:5px;
 width:100%;
 padding-top:4px;
 border-top:1px solid #e5eaf0;
 margin-top:2px;
}
.planning-transfer-window{
 border-color:#a9c8f2!important;
 background:#f3f8ff!important;
 color:#1769e8!important;
 cursor:pointer;
}
.planning-transfer-window:hover{
 background:#1769e8!important;
 color:#fff!important;
}


/* v1.3.9 - camere libere per tipologia */
.kpi-free-rooms-wide{
 grid-column:span 2;
 display:grid!important;
 grid-template-columns:auto minmax(0,1fr);
 align-items:center!important;
 gap:18px!important;
}
.kpi-free-main{
 display:flex;
 align-items:center;
 gap:12px;
 min-width:150px;
}
.kpi-free-types{
 min-width:0;
 display:flex;
 align-items:center;
 flex-wrap:wrap;
 gap:5px 10px;
 padding-left:16px;
 border-left:1px solid #e5e9ef;
}
.kpi-free-type{
 display:flex;
 align-items:baseline;
 gap:3px;
 min-width:0;
 white-space:nowrap;
}
.kpi-free-type span{
 max-width:105px;
 overflow:hidden;
 text-overflow:ellipsis;
 font-size:9px;
 color:#5f6978;
}
.kpi-free-type b{
 font-size:13px;
 line-height:1;
 color:#1769e8;
}
.kpi-free-type small{
 font-size:8px;
 color:#9aa2ae;
}
.kpi-free-empty{
 font-size:9px;
 color:#8a93a0;
}
@media(max-width:1250px){
 .kpi-free-rooms-wide{grid-column:span 2}
}
@media(max-width:900px){
 .kpi-free-rooms-wide{
  grid-column:1/-1;
 }
}
@media(max-width:620px){
 .kpi-free-rooms-wide{
  grid-template-columns:1fr;
  gap:8px!important;
 }
 .kpi-free-types{
  border-left:0;
  border-top:1px solid #e5e9ef;
  padding-left:0;
  padding-top:7px;
 }
 .kpi-free-type span{max-width:92px}
}


/* v1.4.1 - calendario data iniziale Planning */
.planning-date-trigger{
 appearance:none;
 -webkit-appearance:none;
 cursor:pointer;
 font:inherit;
 color:inherit;
 background:#fff;
}
.planning-date-trigger:hover{
 border-color:#a9c8f2;
 background:#f7faff;
}
.planning-date-trigger:focus-visible{
 outline:2px solid #1769e8;
 outline-offset:2px;
}
.planning-hidden-date{
 position:absolute!important;
 width:1px!important;
 height:1px!important;
 opacity:0!important;
 pointer-events:none!important;
}


/* v1.4.3 - anteprima fatturato */
.revenue-filter{margin-bottom:12px}
.revenue-filter-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:9px;
}
.revenue-filter-actions{
 display:flex;
 justify-content:flex-end;
 margin-top:10px;
}
.revenue-kpi-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;
 margin-bottom:12px;
}
.revenue-kpi{
 background:#fff;
 border:1px solid #dfe5ec;
 border-radius:10px;
 padding:12px;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.revenue-kpi.primary{
 border-color:#b9d2f5;
 background:#f8fbff;
}
.revenue-kpi span{
 font-size:8.5px;
 color:#6e7a89;
}
.revenue-kpi b{
 font-size:20px;
 line-height:1.1;
}
.revenue-kpi.primary b{color:#1769e8}
.revenue-kpi small{
 font-size:8px;
 color:#8b95a2;
}
.revenue-breakdowns{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:12px;
 margin-bottom:12px;
}
.revenue-breakdowns h2{
 margin-top:0;
}
.revenue-breakdown-row{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 padding:7px 0;
 border-bottom:1px solid #edf0f4;
 font-size:9px;
}
.revenue-breakdown-row:last-child{border-bottom:0}
.revenue-breakdown-row span{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#566476;
}
.revenue-breakdown-row b{white-space:nowrap}
.revenue-note{
 margin-top:10px;
 padding:10px 12px;
 border:1px solid #dfe5ec;
 border-radius:8px;
 background:#f8fafc;
 font-size:8.5px;
 color:#5d6978;
 line-height:1.45;
}
@media(max-width:980px){
 .revenue-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .revenue-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .revenue-breakdowns{grid-template-columns:1fr}
}
@media(max-width:600px){
 .revenue-filter-grid,.revenue-kpi-grid{grid-template-columns:1fr}
}
@media print{
 @page{size:A4 landscape;margin:8mm}
 .revenue-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .revenue-breakdowns{grid-template-columns:repeat(3,minmax(0,1fr))}
 .revenue-note{font-size:7px}
}


/* v1.4.4 - prevenzione clienti duplicati */
.guest-search-wrap{margin-bottom:9px}
.selected-guest{margin-bottom:9px}
.guest-duplicate-hint{
 margin-top:8px;
 padding:8px 10px;
 border:1px solid #e9d99b;
 background:#fffbea;
 border-radius:7px;
 font-size:8.5px;
 color:#695b28;
}
.guest-duplicate-hint b{color:#514716}


/* v1.4.7 - domain ready */
.domain-check-card{max-width:900px}
.domain-check-row{
 display:grid;
 grid-template-columns:180px minmax(0,1fr);
 gap:12px;
 align-items:center;
 padding:11px 0;
 border-bottom:1px solid #edf0f4;
}
.domain-check-row:last-of-type{border-bottom:0}
.domain-check-row span{font-size:9px;color:#6e7a89}
.domain-check-row strong{font-size:10px;overflow-wrap:anywhere}
.domain-ok{color:#177245}
.domain-warn{color:#a45f00}
@media(max-width:620px){
 .domain-check-row{grid-template-columns:1fr;gap:4px}
}


/* v1.4.8 - allineamento definitivo barre Planning con colonne data
   La larghezza minima del calendario deve essere coerente con:
   145px colonna camera + N giorni * 72px.
   Prima il min-width fisso 1040px faceva sì che la grid header
   espandesse oltre il contenitore mentre la booking-layer restava più corta. */
.planning-calendar{
  min-width:max(1040px, calc(145px + (var(--days) * 72px)))!important;
  width:100%;
  box-sizing:border-box;
}

/* La booking-layer usa esattamente la stessa area occupata dalle colonne giorno. */
.planning-calendar .plan-row > .booking-layer{
  left:145px!important;
  right:0!important;
  width:auto!important;
  box-sizing:border-box!important;
}


/* v1.4.9 - modifica scheda prenotazione */
.reservation-edit-btn{
 font-weight:750;
}
.reservation-edit-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;
}
.reservation-edit-grid>.card{
 margin:0;
}
.reservation-edit-share{
 margin-top:12px;
}
.reservation-edit-summary{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:8px;
 margin-top:14px;
}
.reservation-edit-summary>div{
 padding:9px 10px;
 border:1px solid #e4e9ef;
 border-radius:8px;
 background:#f8fafc;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.reservation-edit-summary span{
 font-size:8px;
 color:#758193;
}
.reservation-edit-summary b{
 font-size:10px;
 color:#26374d;
}
.reservation-edit-footer{
 position:sticky;
 bottom:0;
 z-index:20;
 margin-top:12px;
 padding:10px 12px;
 background:rgba(255,255,255,.96);
 border:1px solid #dfe5ec;
 border-radius:10px;
 display:flex;
 justify-content:flex-end;
 gap:8px;
 backdrop-filter:blur(6px);
}
.reservation-edit-warning{
 display:flex;
 flex-direction:column;
 gap:4px;
}
.reservation-edit-warning span{
 font-size:9px;
}
@media(max-width:900px){
 .reservation-edit-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
 .reservation-edit-summary{grid-template-columns:1fr}
 .reservation-edit-footer{position:static}
}


/* v1.5.1 - foglio giornaliero prodotti/cassa */
.daily-sheet-header{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:10px;
 margin-bottom:12px;
}
.daily-sheet-card{margin-bottom:12px}
.daily-sheet-table input{
 min-width:70px;
 width:100%;
 padding:6px 7px;
 font-size:9px;
}
.daily-sheet-table .ds-qty{width:74px;text-align:center}
.daily-sheet-table .ds-money{width:90px}
.daily-sheet-table .ds-total-qty{text-align:center;font-weight:800}
.daily-sheet-table .ds-row-value{white-space:nowrap}
.daily-sheet-bottom{
 display:grid;
 grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
 gap:12px;
}
@media(max-width:850px){
 .daily-sheet-header,.daily-sheet-bottom{grid-template-columns:1fr}
}
@media print{
 @page{size:A4 portrait;margin:8mm}
 .daily-sheet-table input{
  border:0!important;
  background:transparent!important;
  padding:0!important;
 }
 .daily-sheet-header{grid-template-columns:repeat(3,1fr)}
 .daily-sheet-bottom{grid-template-columns:1fr 1fr}
}


/* v1.5.2 - report giornaliero per turno + spese */
.daily-shift-table{
 min-width:1450px;
}
.daily-shift-table thead th{
 text-align:center;
 vertical-align:middle;
}
.daily-shift-table tbody td:not(:first-child):not(:last-child){
 text-align:center;
}
.daily-shift-table .ds-qty{
 width:58px;
 min-width:58px;
}
.daily-shift-table .ds-money{
 width:78px;
 min-width:78px;
}
.daily-expenses-card{
 margin-bottom:12px;
}
.expense-table input,
.expense-table select{
 width:100%;
 min-width:120px;
}
.daily-net-card{
 display:flex;
 flex-direction:column;
 gap:9px;
}
.daily-net-row{
 display:flex;
 justify-content:space-between;
 gap:16px;
 padding:8px 0;
 border-bottom:1px solid #edf0f4;
 font-size:10px;
}
.daily-net-row.grand{
 border-bottom:0;
 padding-top:11px;
}
.daily-net-row.grand span,
.daily-net-row.grand b{
 font-size:14px;
 font-weight:850;
}
.daily-sheet-bottom{
 grid-template-columns:repeat(3,minmax(0,1fr));
}
@media(max-width:1000px){
 .daily-sheet-bottom{grid-template-columns:1fr}
}
@media print{
 @page{size:A4 landscape;margin:6mm}
 .daily-shift-table{
  min-width:0!important;
  font-size:6.5px!important;
 }
 .daily-shift-table input{
  min-width:0!important;
  font-size:6.5px!important;
 }
 .daily-sheet-bottom{
  grid-template-columns:repeat(3,1fr)!important;
 }
}


/* v1.5.3 - creazione rapida prenotazioni dal Planning */
.planning-create-cell{
 cursor:crosshair;
 position:relative;
}
.planning-create-cell:hover{
 background-color:#f0f7ff!important;
}
.planning-create-cell.occupied{
 cursor:not-allowed;
}
.planning-create-cell.create-selected{
 background:#dfeeff!important;
 box-shadow:inset 0 0 0 2px #4a8fe7;
}
.planning-create-cell.create-conflict{
 background:#ffe7e7!important;
 box-shadow:inset 0 0 0 2px #d94b4b;
}
.planning-create-dragging,
.planning-create-dragging *{
 user-select:none!important;
}
.planning-create-dialog{
 width:min(900px,calc(100vw - 28px))!important;
}
.planning-create-kpis{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:8px;
 margin:14px 0;
}
.planning-create-kpis>div{
 border:1px solid #e1e8f2;
 background:#f8fbff;
 border-radius:9px;
 padding:9px 10px;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.planning-create-kpis span{font-size:8px;color:#738094}
.planning-create-kpis b{font-size:12px}
.planning-create-members{
 display:flex;
 flex-direction:column;
 gap:7px;
 max-height:330px;
 overflow:auto;
 margin:12px 0;
}
.planning-create-member{
 display:grid;
 grid-template-columns:145px minmax(110px,1fr) minmax(120px,1fr) 70px 70px 95px;
 gap:6px;
 align-items:center;
 padding:8px;
 border:1px solid #e3e8ef;
 border-radius:8px;
 background:#fbfcfe;
}
.planning-create-member-room b{display:block;font-size:10px}
.planning-create-member-room small{display:block;font-size:8px;color:#718096;margin-top:2px}
.planning-create-member input{
 width:100%;
 min-width:0;
 padding:7px 8px;
 font-size:9px;
}
.planning-create-warning{
 margin:10px 0;
 padding:9px 11px;
 border-radius:8px;
 background:#fff0f0;
 border:1px solid #efc2c2;
 color:#a42626;
 font-size:9px;
}
@media(max-width:760px){
 .planning-create-kpis{grid-template-columns:repeat(2,1fr)}
 .planning-create-member{grid-template-columns:1fr 1fr}
 .planning-create-member-room{grid-column:1/-1}
}


/* v1.5.4 - Ctrl multi-selezione Planning */
.planning-create-cell.create-stored{
 background:#d7ebff!important;
 box-shadow:inset 0 0 0 2px #2478de!important;
}
.planning-create-cell.create-stored:after{
 content:"";
 position:absolute;
 inset:3px;
 border:1px dashed rgba(23,105,232,.55);
 border-radius:3px;
 pointer-events:none;
}
.planning-create-help{
 display:flex;
 flex-wrap:wrap;
 align-items:center;
 gap:8px 14px;
 padding:7px 12px;
 border-bottom:1px solid #e7ebf0;
 background:#f8fbff;
 font-size:8.5px;
 color:#617087;
}
.planning-create-help b{color:#26374d}
.planning-create-help kbd{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:25px;
 height:18px;
 padding:0 5px;
 border:1px solid #cbd5e1;
 border-bottom-width:2px;
 border-radius:4px;
 background:#fff;
 color:#334155;
 font-size:8px;
 font-family:inherit;
 font-weight:800;
}
.planning-create-member-multi{
 grid-template-columns:125px 150px minmax(100px,1fr) minmax(110px,1fr) 58px 58px 88px!important;
}
.planning-create-member-period{
 min-width:0;
}
.planning-create-member-period b{
 display:block;
 font-size:9px;
 color:#26374d;
 white-space:nowrap;
}
.planning-create-member-period small{
 display:block;
 font-size:8px;
 color:#718096;
 margin-top:2px;
}
@media(max-width:900px){
 .planning-create-member-multi{
  grid-template-columns:1fr 1fr!important;
 }
 .planning-create-member-multi .planning-create-member-room,
 .planning-create-member-multi .planning-create-member-period{
  grid-column:auto;
 }
}


/* v1.5.5 - menu Canale/Agenzia nel popup Planning */
.planning-create-dialog #planning-create-source{
 width:100%;
}


/* v1.5.6 - classificazione intelligente email */
.email-class-tabs{
 display:flex;
 flex-wrap:wrap;
 gap:6px;
 margin:8px 0 14px;
}
.email-class-tabs a{
 display:inline-flex;
 align-items:center;
 gap:5px;
 padding:7px 10px;
 border:1px solid #dfe5ec;
 border-radius:7px;
 background:#fff;
 font-size:9px;
 color:#526174;
 text-decoration:none;
}
.email-class-tabs a.active{
 background:#eef5ff;
 border-color:#a9c9f3;
 color:#1769d2;
 font-weight:800;
}
.email-class-tabs b{
 display:inline-flex;
 min-width:17px;
 height:17px;
 align-items:center;
 justify-content:center;
 border-radius:9px;
 background:#edf1f5;
 font-size:8px;
}
.email-classification-badge{
 display:inline-flex;
 align-items:center;
 margin:5px 0 2px;
 padding:4px 7px;
 border-radius:5px;
 font-size:7.5px;
 font-weight:850;
 letter-spacing:.03em;
}
.email-classification-badge.recognized{
 background:#e6f7e9;
 color:#24783a;
}
.email-classification-badge.review{
 background:#fff4d8;
 color:#8a6515;
}
.email-classification-badge.other{
 background:#eef0f3;
 color:#6a7380;
}
.email-classification-reason{
 margin:8px 0 -1px;
 padding:7px 9px;
 border-radius:6px;
 background:#f8fafc;
 color:#697587;
 font-size:8.5px;
}
.email-detail-classification{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:14px;
 margin:10px 0 12px;
 padding:11px 13px;
 border-radius:9px;
 border:1px solid #e1e6ec;
}
.email-detail-classification>div{
 display:flex;
 flex-direction:column;
 gap:3px;
}
.email-detail-classification b{font-size:11px}
.email-detail-classification span{font-size:8.5px;color:#667487}
.email-detail-classification strong{font-size:18px}
.email-detail-classification.recognized{
 background:#f1fbf3;
 border-color:#bfe4c6;
}
.email-detail-classification.recognized strong{color:#278541}
.email-detail-classification.review{
 background:#fffaf0;
 border-color:#edd9a6;
}
.email-detail-classification.review strong{color:#9a7115}
.email-detail-classification.other{
 background:#f6f7f9;
}
.email-detail-classification.other strong{color:#78818d}
.email-other-warning{
 background:#fff8e8!important;
 border-color:#ecd79f!important;
}


/* v1.5.7 - Tuya / Smart Life */
.tuya-admin-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:12px;
 margin-bottom:12px;
}
.tuya-readonly-badge,
.tuya-ok-badge{
 display:inline-flex;
 align-items:center;
 padding:5px 8px;
 border-radius:7px;
 font-size:7.5px;
 font-weight:850;
 letter-spacing:.04em;
}
.tuya-readonly-badge{background:#eef5ff;color:#246dc2}
.tuya-ok-badge{background:#e7f8eb;color:#267a3b}
.tuya-test-help{
 margin-top:10px;
 padding:9px 10px;
 border-radius:8px;
 background:#f8fafc;
 color:#687587;
 font-size:8.5px;
}
.tuya-map-form{
 display:grid;
 grid-template-columns:1fr 1.3fr 1.3fr auto;
 gap:8px;
 align-items:end;
}
.tuya-map-form .form-actions{margin:0}
.tuya-map-table{margin-top:14px}
.tuya-map-table td small{display:block;color:#7b8794;font-size:7.5px;margin-top:2px}
.tuya-device-kpis{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:8px;
 margin:10px 0;
}
.tuya-device-kpis>div{
 border:1px solid #e2e8f0;
 background:#f9fbfd;
 border-radius:8px;
 padding:9px 10px;
 display:flex;
 flex-direction:column;
 gap:3px;
 min-width:0;
}
.tuya-device-kpis span{font-size:7.5px;color:#718096}
.tuya-device-kpis b{font-size:10px;overflow-wrap:anywhere}
.tuya-device-kpis small{font-size:7px;color:#8994a3}
.tuya-json-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:10px;
 margin-top:12px;
}
.tuya-json-grid h3{font-size:10px;margin:0 0 6px}
.tuya-json-grid pre{
 max-height:420px;
 overflow:auto;
 white-space:pre-wrap;
 overflow-wrap:anywhere;
 border:1px solid #e2e8f0;
 border-radius:8px;
 background:#101722;
 color:#d8e3ee;
 padding:10px;
 font-size:7.5px;
 line-height:1.45;
}
@media(max-width:900px){
 .tuya-admin-grid,.tuya-json-grid{grid-template-columns:1fr}
 .tuya-map-form{grid-template-columns:1fr}
 .tuya-device-kpis{grid-template-columns:repeat(2,1fr)}
}


/* v1.5.8 - controllo termostati + OFF check-out */
.tuya-control-list{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
 gap:10px;
 margin-top:14px;
}
.tuya-control-card{
 position:relative;
 border:1px solid #dfe6ee;
 border-radius:10px;
 background:#fff;
 padding:12px;
}
.tuya-control-head{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:12px;
 margin-bottom:10px;
}
.tuya-control-head h3{margin:0;font-size:13px}
.tuya-control-head small{display:block;margin-top:2px;font-size:8px;color:#718096}
.tuya-online-state{
 display:inline-flex;
 align-items:center;
 padding:5px 7px;
 border-radius:7px;
 font-size:7px;
 font-weight:850;
 background:#f1f3f5;
 color:#727b86;
}
.tuya-online-state.online{background:#e7f8eb;color:#287c3c}
.tuya-online-state.offline{background:#f3f4f6;color:#737b86}
.tuya-room-readings{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:7px;
 margin-bottom:10px;
}
.tuya-room-readings>div{
 border:1px solid #e2e8f0;
 background:#f8fafc;
 border-radius:8px;
 padding:8px 9px;
}
.tuya-room-readings span{display:block;font-size:7.5px;color:#718096;margin-bottom:3px}
.tuya-room-readings b{font-size:12px}
.tuya-control-actions{
 display:flex;
 flex-wrap:wrap;
 align-items:center;
 gap:6px;
}
.tuya-control-actions select{
 width:auto;
 min-width:135px;
}
.tuya-temp-control{
 display:inline-flex;
 align-items:center;
 gap:4px;
 border:1px solid #dfe5ec;
 border-radius:8px;
 padding:3px;
 background:#fafbfd;
}
.tuya-temp-control input{
 width:64px;
 text-align:center;
 padding:6px 5px;
}
.tuya-temp-control span{font-size:9px}
.tuya-command-message{
 min-height:18px;
 margin-top:8px;
 font-size:8.5px;
}
.tuya-command-message.working{color:#667487}
.tuya-command-message.ok{color:#287c3c}
.tuya-command-message.error{
 color:#a42626;
 background:#fff0f0;
 border:1px solid #efc2c2;
 border-radius:6px;
 padding:6px 8px;
}
.tuya-remove-map{
 margin-top:8px;
 padding-top:8px;
 border-top:1px solid #edf0f4;
}
.reservation-thermostat-card{
 margin-top:12px;
}
.reservation-thermostat-note{
 margin-top:9px;
 padding-top:8px;
 border-top:1px solid #edf0f4;
}
@media(max-width:750px){
 .tuya-control-list{grid-template-columns:1fr}
 .tuya-room-readings{grid-template-columns:repeat(2,1fr)}
}


/* v1.6.0 - Gateway locale TinyTuya */
.thermostat-gateway-card{margin-bottom:12px}
.gateway-kpis{
 display:grid;
 grid-template-columns:1fr 1fr 2fr;
 gap:8px;
 margin:10px 0;
}
.gateway-kpis>div{
 border:1px solid #e2e8f0;
 background:#f8fafc;
 border-radius:8px;
 padding:8px 10px;
 min-width:0;
}
.gateway-kpis span{display:block;font-size:7.5px;color:#718096;margin-bottom:3px}
.gateway-kpis b{font-size:9px;overflow-wrap:anywhere}
.gateway-token-box{
 margin-top:10px;
 padding:10px;
 background:#f8fafc;
 border:1px solid #e2e8f0;
 border-radius:8px;
}
.gateway-token-box label{display:block;font-size:8px;font-weight:800;margin-bottom:5px}
.gateway-token-row{display:flex;gap:6px;align-items:center}
.gateway-token-row input{flex:1;font-family:monospace;font-size:9px}
.gateway-token-box small{display:block;margin-top:5px;color:#718096;font-size:7.5px}
.gateway-settings-actions{
 display:flex;
 justify-content:space-between;
 align-items:end;
 gap:10px;
 margin-top:10px;
 flex-wrap:wrap;
}
.gateway-settings-form{
 display:flex;
 align-items:end;
 gap:8px;
 flex-wrap:wrap;
}
.gateway-settings-form .field.compact{margin:0;max-width:150px}
@media(max-width:800px){
 .gateway-kpis{grid-template-columns:1fr}
}

/* v1.6.1 - Console centrale termostati */
.thermostat-console-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:10px}
.thermostat-console-kpi{border:1px solid #dfe6ee;border-radius:10px;background:#fff;padding:11px 13px}.thermostat-console-kpi span{display:block;font-size:8px;color:#738093}.thermostat-console-kpi b{display:block;font-size:22px;line-height:1.15;margin:3px 0}.thermostat-console-kpi small{font-size:7.5px;color:#8792a0}.thermostat-console-kpi.ok b{color:#267d3f}.thermostat-console-kpi.heat b{color:#b2601c}.thermostat-console-kpi.temp b{color:#276db0}
.thermostat-console-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:8px;border:1px solid #e2e7ed;border-radius:9px;background:#fff}.thermostat-console-toolbar input{width:150px}.thermostat-filters{display:flex;gap:5px;flex-wrap:wrap}.thermostat-filters .mini-btn.active{background:#1769e8;color:#fff;border-color:#1769e8}.thermostat-last-refresh{margin-left:auto;font-size:7.5px}
.thermostat-console-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}.thermostat-room-card{border:1px solid #dfe5ec;border-radius:11px;background:#fff;padding:10px;min-width:0;transition:.15s ease}.thermostat-room-card.online{border-color:#c8e2ce}.thermostat-room-card.is-on{box-shadow:inset 3px 0 0 #dd8d3d}.thermostat-room-card.is-off{box-shadow:inset 3px 0 0 #aeb7c2}.thermostat-room-card.unmapped{background:#fafbfc;border-style:dashed}.thermostat-room-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.thermostat-room-head h2{margin:0;font-size:14px}.thermostat-room-head small{display:block;font-size:7px;color:#7d8998;margin-top:1px}.room-device-state{display:inline-flex;padding:4px 6px;border-radius:6px;font-size:6.5px;font-weight:850;background:#f0f2f5;color:#747e8a;white-space:nowrap}.room-device-state.online{background:#e5f7e9;color:#24773a}.room-device-state.offline{background:#f2f3f5;color:#77808b}.room-device-state.unmapped{background:#fff4dc;color:#8a6819}
.thermostat-main-reading{margin:12px 0 9px;text-align:center}.thermostat-main-reading span{display:block;font-size:7.5px;color:#778597}.thermostat-main-reading b{display:block;margin-top:1px;font-size:30px;line-height:1;letter-spacing:-.03em}.thermostat-room-data{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.thermostat-room-data>div{border:1px solid #edf0f3;border-radius:6px;padding:5px;text-align:center;min-width:0}.thermostat-room-data span{display:block;font-size:6px;color:#84909f}.thermostat-room-data b{font-size:7.8px;display:block;overflow:hidden;text-overflow:ellipsis}.thermostat-room-actions{display:flex;gap:5px;margin-top:8px}.thermostat-room-actions .mini-btn{flex:1}.thermostat-room-actions .mini-btn:last-child{flex:0 0 auto}.thermostat-room-actions .mini-btn.primary{background:#1769e8;color:#fff;border-color:#1769e8}.thermostat-card-message{min-height:12px;margin-top:4px;font-size:6.8px}.thermostat-card-message.ok{color:#287b3e}.thermostat-card-message.error{color:#a52d2d}.thermostat-card-message.working{color:#687587}.thermostat-room-footer{display:flex;justify-content:space-between;gap:6px;border-top:1px solid #edf0f3;padding-top:5px;margin-top:4px;color:#8a94a0;font-size:6px;overflow:hidden}.thermostat-room-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thermostat-unmapped-body{min-height:110px;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:5px;color:#788493}.thermostat-unmapped-body b{font-size:9px}.thermostat-unmapped-body span{font-size:7px;line-height:1.4}
@media(max-width:900px){.thermostat-console-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.thermostat-console-grid{grid-template-columns:1fr}.thermostat-last-refresh{margin-left:0;width:100%}}


/* v1.6.2 - automazione OFF al check-out */
.checkout-auto-off-switch{
 background:#f1f8ff;
 border:1px solid #cfe3fb;
 border-radius:8px;
 padding:7px 9px;
}
.checkout-auto-off-info{
 margin-top:10px;
 padding:9px 11px;
 border:1px solid #dbe7f2;
 border-radius:8px;
 background:#f8fbff;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.checkout-auto-off-info b{
 font-size:9px;
 color:#245f9e;
}
.checkout-auto-off-info span{
 font-size:8px;
 color:#667587;
 line-height:1.45;
}


/* v1.6.4 - tipo documento automatico */
.automatic-document-box{
 display:flex;
 align-items:center;
 gap:12px;
 border:1px solid #dce4ec;
 border-radius:10px;
 padding:12px 14px;
 background:#f8fafc;
 max-width:720px;
}
.automatic-document-icon{
 width:38px;
 height:38px;
 flex:0 0 38px;
 display:flex;
 align-items:center;
 justify-content:center;
 border-radius:9px;
 font-size:18px;
 font-weight:900;
 background:#e9eef5;
 color:#526173;
}
.automatic-document-box>div:last-child{
 display:flex;
 flex-direction:column;
 gap:2px;
 min-width:0;
}
.automatic-document-box span{
 font-size:7.5px;
 text-transform:uppercase;
 letter-spacing:.04em;
 color:#7b8795;
 font-weight:800;
}
.automatic-document-box b{
 font-size:15px;
}
.automatic-document-box small{
 font-size:8px;
 line-height:1.4;
 color:#697687;
}
.automatic-document-box.invoice{
 border-color:#bcd7f5;
 background:#f2f8ff;
}
.automatic-document-box.invoice .automatic-document-icon{
 background:#1769e8;
 color:#fff;
}
.automatic-document-box.invoice b{color:#155da7}
.automatic-document-box.receipt .automatic-document-icon{
 background:#edf2f7;
 color:#4e5d6c;
}


/* v1.6.8 - Importa ditta da fattura */
.company-ocr-panel{background:#fff;border:1px solid #dce4ed;border-radius:12px;padding:14px;margin:12px 0 16px;box-shadow:0 5px 18px rgba(31,45,61,.05)}
.company-ocr-panel[hidden]{display:none!important}
.company-ocr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.company-ocr-head h2{margin:0 0 3px;font-size:16px}
.company-ocr-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(420px,1.2fr);gap:14px}
.company-ocr-upload,.company-ocr-result{border:1px solid #e4e9ef;border-radius:10px;padding:12px;background:#fbfcfe}
.company-ocr-drop{display:flex;min-height:150px;border:2px dashed #bcc9d8;border-radius:10px;background:#fff;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:5px;cursor:pointer;padding:16px;color:#526273}
.company-ocr-drop strong{font-size:13px;color:#26384a}.company-ocr-drop span{font-size:9px;color:#7c8998}.company-ocr-drop.drag-over{border-color:#1769e8;background:#eef6ff}
.company-ocr-preview-wrap{margin:10px 0;border:1px solid #e0e5eb;border-radius:8px;background:#fff;max-height:280px;overflow:auto;text-align:center}
.company-ocr-preview{max-width:100%;height:auto;display:block;margin:auto}
.company-ocr-progress{margin:10px 0}.company-ocr-progress>div:first-child{display:flex;justify-content:space-between;font-size:8px;color:#637083;margin-bottom:4px}
.company-ocr-progressbar{height:7px;border-radius:99px;background:#e8edf3;overflow:hidden}.company-ocr-progressbar i{display:block;height:100%;width:0;background:#1769e8;transition:width .15s}
.company-ocr-result-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.company-ocr-result-head h3{margin:0;font-size:13px}.company-ocr-status{font-size:7.5px;color:#687587;background:#eef2f6;border-radius:20px;padding:4px 7px}
.company-ocr-fields.form-grid{gap:7px}.company-ocr-fields label{font-size:7.5px}.company-ocr-fields input{font-size:10px}
.company-ocr-duplicate{margin:8px 0;padding:8px 10px;border-radius:7px;font-size:8px}.company-ocr-duplicate.warning{background:#fff6df;border:1px solid #f0d28d;color:#735300}
.company-ocr-raw{margin-top:8px}.company-ocr-raw summary{cursor:pointer;font-size:8px;color:#59697b}.company-ocr-raw textarea{width:100%;min-height:110px;margin-top:6px;font-family:monospace;font-size:8px}
@media(max-width:900px){.company-ocr-layout{grid-template-columns:1fr}}


/* v1.7.0 - azzeramento Inbox email */
.email-reset-card{margin-top:14px;border-color:#f0c9c9}
.receiver-reset-badge{font-size:8px;font-weight:850;padding:5px 8px;border-radius:7px;background:#fff0f0;color:#a22b2b;border:1px solid #f0c5c5}
.email-reset-form{max-width:520px;margin-top:12px}
.receiver-reset-last{font-size:9px;color:#687587;margin-top:8px}
.email-reset-card .danger-btn{background:#b42318;color:#fff;border-color:#b42318}
.email-reset-card .danger-btn:hover{background:#991b1b;border-color:#991b1b}


/* v1.7.1 - Expedia manuale / Travelscape */
.expedia-auto-hint{
 display:block;
 margin-top:5px;
 padding:6px 8px;
 border-radius:7px;
 border:1px solid #cfe2ff;
 background:#eef6ff;
 color:#31577f;
 font-size:8px;
 line-height:1.4;
}


/* v1.7.2 - tooltip planning + check-in/check-out rapido */
.planning-booking-tooltip{
 position:fixed;
 z-index:10050;
 width:285px;
 pointer-events:none;
 background:#162033;
 color:#fff;
 border-radius:10px;
 padding:10px 11px;
 box-shadow:0 12px 30px rgba(15,23,42,.25);
}
.planning-booking-tooltip[hidden]{display:none!important}
.planning-booking-tooltip-head{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:8px;
 padding-bottom:7px;
 margin-bottom:7px;
 border-bottom:1px solid rgba(255,255,255,.12);
}
.planning-booking-tooltip-head b{
 font-size:11px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.planning-booking-tooltip-head span{
 flex:0 0 auto;
 font-size:7px;
 font-weight:800;
 padding:3px 5px;
 border-radius:5px;
 background:rgba(255,255,255,.12);
}
.planning-booking-tooltip-grid{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:6px;
}
.planning-booking-tooltip-grid>div{
 min-width:0;
}
.planning-booking-tooltip-grid .wide{
 grid-column:1/-1;
 border-top:1px solid rgba(255,255,255,.1);
 padding-top:6px;
}
.planning-booking-tooltip-grid span{
 display:block;
 font-size:6.5px;
 color:#aebbd0;
 margin-bottom:1px;
}
.planning-booking-tooltip-grid b{
 display:block;
 font-size:8.5px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.planning-quick-status{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:7px;
 margin:11px 0 5px;
 padding-top:10px;
 border-top:1px solid #e5eaf0;
}
.planning-quick-status .mini-btn{
 justify-content:center;
 min-height:34px;
 font-weight:800;
}
.planning-quick-status .quick-checkin{
 background:#edf9f0;
 border-color:#bfe3c7;
 color:#26753b;
}
.planning-quick-status .quick-checkout{
 background:#fff4e8;
 border-color:#f0c999;
 color:#9b570f;
}
.planning-quick-status .active-state{
 box-shadow:inset 0 0 0 2px currentColor;
}
.planning-quick-status button:disabled{
 opacity:.55;
 cursor:not-allowed;
}
.planning-quick-status-message{
 min-height:16px;
 margin-bottom:6px;
 font-size:7.5px;
 line-height:1.35;
}
.planning-quick-status-message.working{color:#687587}
.planning-quick-status-message.ok{color:#26753b}
.planning-quick-status-message.error{color:#a52d2d}


/* v1.7.3 - Macro-categorie prodotti + selezione multipla conto */
.product-category-badge{
 display:inline-flex;
 align-items:center;
 padding:3px 7px;
 border-radius:999px;
 background:#eef4fb;
 color:#45617f;
 font-size:7px;
 font-weight:800;
}
.product-category-admin-card{
 margin-top:16px;
}
.product-category-new-form{
 display:grid;
 grid-template-columns:minmax(220px,1fr) 100px auto;
 gap:8px;
 align-items:end;
 margin-bottom:12px;
}
.product-category-list{
 display:grid;
 gap:6px;
}
.product-category-admin-row{
 display:flex;
 align-items:center;
 gap:8px;
 padding:7px;
 border:1px solid #e5eaf0;
 border-radius:8px;
 background:#fff;
}
.product-category-admin-row.inactive{
 opacity:.6;
}
.product-category-edit-form{
 display:grid;
 grid-template-columns:minmax(180px,1fr) 80px auto;
 gap:6px;
 flex:1;
}
.category-sort-input{max-width:80px}

.product-picker-dialog{
 width:min(930px,94vw);
 max-width:930px;
 padding:0;
 overflow:hidden;
}
.product-picker-shell{
 max-height:min(820px,91vh);
 display:flex;
 flex-direction:column;
}
.product-picker-dialog .dialog-head{
 padding:14px 16px 10px;
 margin:0;
}
#batch-product-form{
 min-height:0;
 display:flex;
 flex-direction:column;
 flex:1;
}
.product-picker-topbar{
 display:grid;
 grid-template-columns:160px minmax(260px,1fr) auto;
 gap:9px;
 align-items:end;
 padding:0 16px 10px;
}
.product-picker-search-field input{width:100%}
.product-category-tabs{
 display:flex;
 gap:5px;
 overflow:auto;
 padding:0 16px 10px;
 scrollbar-width:thin;
}
.product-category-tab{
 appearance:none;
 border:1px solid #dce5ef;
 background:#f7f9fc;
 color:#485a70;
 border-radius:999px;
 padding:6px 11px;
 font:inherit;
 font-size:8px;
 font-weight:800;
 white-space:nowrap;
 cursor:pointer;
}
.product-category-tab.active{
 background:#1f65ae;
 border-color:#1f65ae;
 color:#fff;
}
.product-picker-groups{
 overflow:auto;
 padding:0 16px 12px;
 min-height:220px;
 max-height:480px;
}
.product-picker-category{
 margin-bottom:12px;
}
.product-picker-category-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 margin-bottom:5px;
 padding:2px 1px;
}
.product-picker-category-head h3{
 margin:0;
 font-size:10px;
}
.product-picker-category-head span{
 color:#78879a;
 font-size:7px;
}
.product-picker-list{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:6px;
}
.product-picker-row{
 display:grid;
 grid-template-columns:28px minmax(0,1fr) 80px 74px;
 gap:7px;
 align-items:center;
 min-height:52px;
 padding:7px 8px;
 border:1px solid #e2e8f0;
 border-radius:9px;
 background:#fff;
 cursor:pointer;
 transition:border-color .12s,background .12s,box-shadow .12s;
}
.product-picker-row:hover{
 border-color:#b9cce2;
 background:#f9fbfe;
}
.product-picker-row.selected{
 border-color:#84b3e5;
 background:#eff7ff;
 box-shadow:inset 0 0 0 1px #b8d7f5;
}
.product-picker-check{
 display:flex;
 justify-content:center;
}
.product-picker-check input{
 width:17px;
 height:17px;
}
.product-picker-name{
 min-width:0;
}
.product-picker-name b{
 display:block;
 font-size:8.5px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.product-picker-name small{
 display:block;
 color:#8693a4;
 font-size:6.5px;
 margin-top:2px;
}
.product-picker-price{
 text-align:right;
 font-size:9px;
 font-weight:900;
}
.product-picker-qty{
 display:flex;
 align-items:center;
 gap:4px;
}
.product-picker-qty small{
 font-size:6px;
 color:#8794a3;
}
.product-picker-qty input{
 width:50px;
 padding:5px;
 text-align:center;
}
.product-picker-footer{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 border-top:1px solid #e4eaf1;
 padding:10px 16px;
 background:#fafcfe;
}
.product-picker-selected-summary{
 display:flex;
 align-items:center;
 gap:7px;
 font-size:8px;
 color:#66758a;
}
.product-picker-selected-summary b{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:24px;
 height:24px;
 border-radius:999px;
 background:#1f65ae;
 color:#fff;
}
.manual-charge-details{
 border-top:1px solid #e4eaf1;
 background:#fff;
}
.manual-charge-details summary{
 cursor:pointer;
 padding:10px 16px;
 font-size:8px;
 font-weight:800;
 color:#54677d;
}
.manual-charge-form{
 padding:0 16px 14px;
}
@media(max-width:760px){
 .product-picker-topbar{grid-template-columns:1fr}
 .product-picker-list{grid-template-columns:1fr}
 .product-category-new-form{grid-template-columns:1fr}
 .product-category-edit-form{grid-template-columns:1fr 70px auto}
}


/* v1.8.0 - stampa report sintetico giornaliero verticale con fascia destra libera */
.daily-summary-print{
 display:none;
}
@media print{
 @page{
  size:A4 portrait;
  margin:12mm 62mm 12mm 12mm;
 }

 body{
  background:#fff!important;
 }

 /* Il sintetico stampato usa un modello dedicato, pulito e verticale. */
 .daily-summary-print{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  color:#111!important;
  font-family:Arial,Helvetica,sans-serif!important;
 }

 .daily-summary-print + .fiscal-summary-grid,
 .daily-summary-print ~ .fiscal-quadrature,
 .daily-summary-print ~ .fiscal-source-note,
 .daily-summary-print ~ .report-summary-kpis,
 .daily-summary-print ~ .report-single-card{
  display:none!important;
 }

 .daily-report-heading{
  display:none!important;
 }

 .daily-summary-print-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10mm;
  padding-bottom:4mm;
  border-bottom:.6mm solid #1d2733;
  margin-bottom:5mm;
 }
 .daily-summary-print-head h1{
  margin:0 0 1mm;
  font-size:15pt;
  letter-spacing:.03em;
 }
 .daily-summary-print-head h2{
  margin:0;
  font-size:11pt;
  font-weight:700;
 }
 .daily-summary-print-date{
  text-align:right;
  white-space:nowrap;
 }
 .daily-summary-print-date span{
  display:block;
  font-size:7pt;
  font-weight:700;
  color:#555;
  letter-spacing:.05em;
 }
 .daily-summary-print-date b{
  display:block;
  margin-top:1mm;
  font-size:13pt;
 }

 .daily-summary-print-kpis{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2.5mm;
  margin-bottom:5mm;
 }
 .daily-summary-print-kpis>div{
  border:.3mm solid #b8bec6;
  padding:3mm;
  min-height:17mm;
 }
 .daily-summary-print-kpis span{
  display:block;
  font-size:7pt;
  text-transform:uppercase;
  font-weight:700;
  color:#555;
  margin-bottom:1.3mm;
 }
 .daily-summary-print-kpis b{
  font-size:13pt;
 }

 .daily-summary-print-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:5mm;
 }
 .daily-summary-print-box{
  break-inside:avoid;
 }
 .daily-summary-print-box h3{
  margin:0 0 2mm;
  font-size:10pt;
  border-bottom:.4mm solid #333;
  padding-bottom:1.5mm;
 }
 .daily-summary-print-box table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
 }
 .daily-summary-print-box th,
 .daily-summary-print-box td{
  border-bottom:.2mm solid #d0d3d7;
  padding:2.2mm 1mm;
  font-size:8.5pt;
 }
 .daily-summary-print-box th:first-child,
 .daily-summary-print-box td:first-child{
  text-align:left;
 }
 .daily-summary-print-box th:last-child,
 .daily-summary-print-box td:last-child{
  text-align:right;
  width:38mm;
  white-space:nowrap;
 }
 .daily-summary-print-box thead th{
  font-size:7pt;
  text-transform:uppercase;
  color:#555;
 }
 .daily-summary-print-box tfoot th{
  border-top:.5mm solid #333;
  border-bottom:0;
  font-size:9pt;
  padding-top:2.5mm;
 }

 .daily-summary-print-fiscal{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:5mm;
  margin-top:6mm;
  padding-top:3mm;
  border-top:.5mm solid #333;
  font-size:8.5pt;
 }
 .daily-summary-print-fiscal span{
  text-transform:uppercase;
  font-weight:700;
  color:#555;
 }
 .daily-summary-print-fiscal b{
  white-space:nowrap;
 }

 .daily-summary-print-note{
  margin-top:8mm;
  padding-top:2mm;
  border-top:.2mm dotted #aaa;
  font-size:6.5pt;
  color:#777;
  font-style:italic;
 }

 /* Il margine destro di 62mm è volutamente lasciato libero per lo scontrino. */
}


/* v1.8.3 - Foglio giornaliero: Contanti + Voucher + Camere C/B */
.daily-sheet-bottom .field small{
 display:block;
 margin-top:5px;
 color:#7a8797;
 font-size:7.5px;
 line-height:1.35;
}
.cash-total-row{
 margin-top:7px;
 padding:9px 0;
 border-top:1px solid #dce4ed;
 border-bottom:1px solid #dce4ed;
}
.cash-total-row span{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.cash-total-row span>small{
 font-size:6.5px;
 color:#718096;
 font-weight:600;
}
.cash-total-row b{
 font-size:15px;
 color:#1769e8;
}


/* v1.8.5 - diagnostica precompilazione contanti/voucher */
.cash-voucher-diagnostic{
 margin-bottom:10px;
 font-size:8.5px;
}


/* v1.8.6 - Foglio giornaliero unificato */
.daily-unified-table{
 min-width:850px;
}
.daily-unified-table th:nth-child(1){width:29%}
.daily-unified-table th:nth-child(2){width:11%}
.daily-unified-table th:nth-child(3),
.daily-unified-table th:nth-child(4),
.daily-unified-table th:nth-child(5){width:9%}
.daily-unified-table th:nth-child(6){width:13%}
.daily-unified-table th:nth-child(7){width:20%}
.daily-unified-table td:first-child small{
 display:block;
 margin-top:2px;
 font-size:6.5px;
 color:#7d8794;
}
.daily-unified-table .ds-qty{
 text-align:center;
}


/* v1.8.9 - distinzione Contanti / Voucher nel riepilogo cassa */
.cash-breakdown-row,
.voucher-breakdown-row{
 padding:7px 0;
}
.cash-breakdown-row span,
.voucher-breakdown-row span{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.cash-breakdown-row small,
.voucher-breakdown-row small{
 font-size:6.5px;
 color:#718096;
 font-weight:600;
}
.cash-breakdown-row b{
 color:#25753b;
}
.voucher-breakdown-row b{
 color:#8a5c19;
}


/* v1.9.0 - pagamenti multipli chiusura conto */
.multiple-payment-lines{display:grid;gap:8px;margin-top:10px}
.multiple-payment-row{
 display:grid;
 grid-template-columns:minmax(180px,1fr) minmax(150px,.65fr) auto;
 gap:9px;
 align-items:end;
 padding:9px;
 border:1px solid #e1e7ee;
 border-radius:9px;
 background:#fbfcfe;
}
.multiple-payment-remove-wrap{padding-bottom:2px}
.multiple-payment-toolbar{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 margin-top:9px;
 flex-wrap:wrap;
}
.payment-split-status{font-size:8.5px;font-weight:800}
.payment-split-status.ok{color:#26753b}
.payment-split-status.pending{color:#8a651c}
.payment-split-status.error{color:#b42318}
@media(max-width:700px){
 .multiple-payment-row{grid-template-columns:1fr}
 .multiple-payment-remove-wrap{padding:0}
}


/* v1.9.2 - Foglio giornaliero: stampa A4 verticale su una sola pagina */
.daily-sheet-print-title{
 display:none;
}

@media print{
 @page{
  size:A4 portrait;
  margin:7mm 8mm 7mm 8mm;
 }

 html,body{
  width:auto!important;
  min-width:0!important;
  background:#fff!important;
  font-size:8px!important;
 }

 body{
  margin:0!important;
  padding:0!important;
 }

 .page-title-row,
 .takings-date-nav,
 .notice-admin,
 .reservation-edit-footer,
 .no-print,
 header,
 nav,
 footer{
  display:none!important;
 }

 main,
 .main-content,
 .content,
 .page-content,
 .container{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  max-width:none!important;
 }

 .daily-sheet-print-title{
  display:flex!important;
  align-items:flex-end;
  justify-content:space-between;
  gap:8mm;
  padding:0 0 2.5mm;
  margin:0 0 3mm;
  border-bottom:.45mm solid #222;
 }
 .daily-sheet-print-title>div{
  display:flex;
  flex-direction:column;
  gap:.5mm;
 }
 .daily-sheet-print-title b{
  font-size:11pt;
  line-height:1;
 }
 .daily-sheet-print-title span{
  font-size:8pt;
  font-weight:700;
 }
 .daily-sheet-print-title strong{
  font-size:11pt;
  white-space:nowrap;
 }

 .daily-sheet-form{
  display:block!important;
  margin:0!important;
  padding:0!important;
 }

 .daily-sheet-form .card{
  box-shadow:none!important;
  border:.25mm solid #c7cbd0!important;
  border-radius:2mm!important;
  padding:3mm!important;
  margin:0 0 3mm!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
 }

 .daily-sheet-card .section-head,
 .daily-expenses-card .section-head{
  margin:0 0 1.5mm!important;
  padding:0!important;
 }
 .daily-sheet-card .section-head h2,
 .daily-expenses-card .section-head h2{
  margin:0!important;
  font-size:10pt!important;
  line-height:1.05!important;
 }
 .daily-sheet-card .section-head .muted,
 .daily-expenses-card .section-head .muted{
  margin-top:.6mm!important;
  font-size:6.5pt!important;
  line-height:1.1!important;
 }

 .account-table-wrap{
  overflow:visible!important;
 }

 .daily-unified-table,
 .daily-sheet-table,
 .expense-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
 }

 .daily-unified-table th,
 .daily-unified-table td,
 .daily-sheet-table th,
 .daily-sheet-table td,
 .expense-table th,
 .expense-table td{
  padding:1.2mm 1mm!important;
  font-size:6.7pt!important;
  line-height:1.05!important;
  border-bottom:.2mm solid #ddd!important;
  vertical-align:middle!important;
 }

 .daily-unified-table th{
  font-size:6pt!important;
 }

 .daily-unified-table td:first-child b{
  font-size:7.2pt!important;
 }
 .daily-unified-table td:first-child small{
  font-size:5pt!important;
  margin-top:.3mm!important;
 }

 .daily-unified-table input,
 .expense-table input,
 .expense-table select{
  border:0!important;
  background:transparent!important;
  padding:0!important;
  height:auto!important;
  min-height:0!important;
  font-size:6.7pt!important;
  line-height:1!important;
  -webkit-appearance:none;
  appearance:none;
 }

 .daily-unified-table input[type=number]{
  text-align:right!important;
 }

 .daily-unified-table th:nth-child(1){width:28%!important}
 .daily-unified-table th:nth-child(2){width:10%!important}
 .daily-unified-table th:nth-child(3){width:10%!important}
 .daily-unified-table th:nth-child(4){width:9%!important}
 .daily-unified-table th:nth-child(5){width:9%!important}
 .daily-unified-table th:nth-child(6){width:13%!important}
 .daily-unified-table th:nth-child(7){width:21%!important}

 .daily-expenses-card{
  margin-bottom:3mm!important;
 }
 .expense-table th,
 .expense-table td{
  padding:1mm!important;
 }
 .expense-table tr{
  height:auto!important;
 }

 .daily-sheet-bottom{
  display:grid!important;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.25fr)!important;
  gap:3mm!important;
  align-items:stretch!important;
  margin:0!important;
 }

 .daily-sheet-bottom>.card{
  margin:0!important;
  padding:3mm!important;
  min-height:0!important;
 }

 .daily-sheet-bottom h2{
  margin:0 0 2mm!important;
  font-size:10pt!important;
  line-height:1!important;
 }

 .daily-sheet-bottom .form-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:2mm!important;
 }

 .daily-sheet-bottom .field{
  margin:0!important;
 }
 .daily-sheet-bottom .field label{
  font-size:6pt!important;
  line-height:1.1!important;
  margin-bottom:.7mm!important;
 }
 .daily-sheet-bottom .field input{
  height:auto!important;
  min-height:0!important;
  padding:1.2mm!important;
  font-size:8pt!important;
 }
 .daily-sheet-bottom .field small{
  font-size:5pt!important;
  margin-top:.5mm!important;
  line-height:1.05!important;
 }

 .daily-net-row{
  padding:1.25mm 0!important;
  margin:0!important;
  min-height:0!important;
  font-size:6.5pt!important;
  line-height:1.05!important;
 }
 .daily-net-row span{
  font-size:6.5pt!important;
 }
 .daily-net-row small{
  font-size:4.8pt!important;
 }
 .daily-net-row b{
  font-size:7.5pt!important;
 }
 .daily-net-row.grand{
  padding-top:2mm!important;
  margin-top:1mm!important;
 }
 .daily-net-row.grand span,
 .daily-net-row.grand b{
  font-size:8.5pt!important;
 }

 /* Evita che il browser sposti i riquadri finali su una seconda pagina. */
 .daily-sheet-card,
 .daily-expenses-card,
 .daily-sheet-bottom{
  break-inside:avoid!important;
  page-break-inside:avoid!important;
 }

 /* La stampa non deve mostrare scrollbar orizzontali. */
 ::-webkit-scrollbar{
  display:none!important;
 }
}

/* v1.9.5 - Rubrica Aziende / Ditte */
.company-directory-title{margin-bottom:10px}
.company-directory-kpis{
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:9px;
 margin-bottom:10px;
}
.company-directory-kpis>div{
 background:#fff;
 border:1px solid #dfe5ec;
 border-radius:10px;
 padding:11px 13px;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.company-directory-kpis span{font-size:7.5px;color:#788394;text-transform:uppercase;font-weight:800}
.company-directory-kpis b{font-size:18px;color:#23364c}
.company-directory-search-card{padding:11px!important;margin-bottom:10px}
.company-directory-search{display:grid;grid-template-columns:minmax(260px,1fr) 170px auto auto;gap:8px;align-items:end}
.company-directory-search .field{margin:0}
.company-directory-layout{display:grid;grid-template-columns:1fr;gap:11px;align-items:start}
.company-directory-layout.with-editor{grid-template-columns:minmax(0,1.55fr) minmax(390px,.85fr)}
.company-directory-list-card{min-width:0}
.company-directory-table{min-width:940px}
.company-directory-table td{vertical-align:top}
.company-directory-table td>small{display:block;margin-top:3px;font-size:7.5px;color:#758294}
.company-directory-table td>span{display:block}
.company-directory-table .selected-row td{background:#f3f8ff}
.company-link-counts{white-space:nowrap}
.company-link-counts span{display:block;font-size:7.5px;color:#657184;margin-bottom:3px}
.company-link-counts b{font-size:9px;color:#26384d}
.company-row-actions{white-space:nowrap;text-align:right}
.company-editor-card{position:sticky;top:64px;padding:14px!important}
.company-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid #e5eaf0}
.company-editor-head span{display:block;font-size:6.5px;font-weight:850;color:#758397;letter-spacing:.08em;margin-bottom:2px}
.company-editor-head h2{margin:0;font-size:15px;line-height:1.15}
.company-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.company-editor-address-grid{display:grid;grid-template-columns:90px 1fr 90px 130px;gap:7px}
.company-editor-form .field{margin-bottom:8px}
.company-editor-separator{margin:10px 0 8px;padding-top:8px;border-top:1px solid #e8edf2;font-size:7px;font-weight:850;color:#6c7889;text-transform:uppercase;letter-spacing:.07em}
.company-active-check{display:flex;align-items:center;gap:6px;font-size:8.5px;font-weight:750;margin:7px 0 11px}
.company-active-check input{width:auto}
.company-editor-actions{justify-content:flex-start}
.company-toggle-form{margin-top:9px;padding-top:9px;border-top:1px solid #edf0f4}
@media(max-width:1180px){
 .company-directory-layout.with-editor{grid-template-columns:1fr}
 .company-editor-card{position:static}
}
@media(max-width:760px){
 .company-directory-kpis{grid-template-columns:1fr 1fr}
 .company-directory-search{grid-template-columns:1fr}
 .company-editor-grid,.company-editor-address-grid{grid-template-columns:1fr}
}

/* v1.9.6 - Analytics aziende / ditte */
.company-directory-kpis-analytics>div small{
 display:block;
 margin-top:3px;
 font-size:7px;
 color:#7b8796;
}
.company-leader-grid{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:9px;
 margin:0 0 12px;
}
.company-leader-grid>div{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:3px 10px;
 align-items:end;
 padding:10px 12px;
 background:#fff;
 border:1px solid #dfe6ee;
 border-radius:10px;
}
.company-leader-grid span{
 grid-column:1/-1;
 font-size:7px;
 font-weight:800;
 color:#758295;
 text-transform:uppercase;
 letter-spacing:.04em;
}
.company-leader-grid b{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:9.5px;
}
.company-leader-grid strong{
 font-size:10px;
 color:#1769e8;
 white-space:nowrap;
}
.company-directory-search{
 grid-template-columns:minmax(260px,1.8fr) minmax(120px,.7fr) minmax(150px,.8fr) minmax(185px,1fr) auto auto!important;
}
.company-performance-cell{
 min-width:155px;
}
.company-performance-cell strong{
 display:block;
 font-size:11px;
 color:#1769e8;
 margin-bottom:3px;
}
.company-performance-cell span,
.company-performance-cell small{
 display:block;
 margin-top:2px;
 font-size:7.5px;
 color:#677487;
 white-space:nowrap;
}
.company-performance-cell span b{
 color:#26384f;
}
@media(max-width:1180px){
 .company-directory-search{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
 .company-search-main{grid-column:1/-1}
}
@media(max-width:760px){
 .company-leader-grid{grid-template-columns:1fr}
 .company-directory-search{grid-template-columns:1fr!important}
 .company-search-main{grid-column:auto}
}

/* v1.10.3 - filtri data sezione Conti */
.conti-date-filter{
 margin:0 0 14px;
 padding:12px 14px;
}
.conti-date-filter-main{
 display:flex;
 align-items:end;
 gap:10px;
 flex-wrap:wrap;
}
.conti-calendar-field{
 display:flex;
 flex-direction:column;
 gap:4px;
 min-width:170px;
}
.conti-calendar-field span{
 font-size:11px;
 font-weight:700;
 color:#506176;
}
.conti-calendar-field input{
 height:38px;
 border:1px solid #cbd5e1;
 border-radius:8px;
 padding:0 10px;
 background:#fff;
 color:#172033;
 font:inherit;
}
.conti-date-current{
 margin-left:auto;
 padding:8px 0;
 font-size:12px;
 color:#64748b;
}
@media(max-width:700px){
 .conti-date-current{
  width:100%;
  margin-left:0;
 }
}

/* v1.10.4 - filtro Privati / Aziende nella sezione Conti */
.conti-type-filter{
 display:flex;
 flex-direction:column;
 gap:4px;
}
.conti-type-filter>span{
 font-size:11px;
 font-weight:700;
 color:#506176;
}
.conti-type-buttons{
 display:flex;
 gap:6px;
 flex-wrap:wrap;
}
@media(max-width:700px){
 .conti-type-filter{
  width:100%;
 }
}

/* v1.10.6 - Housekeeping */
.hk-kpis{grid-template-columns:repeat(4,minmax(120px,1fr))}
.hk-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px}
.hk-room-card{background:#fff;border:1px solid #dfe6ee;border-left:5px solid #b8c2cf;border-radius:13px;padding:14px;box-shadow:0 4px 14px rgba(20,45,75,.04)}
.hk-room-card.hk-dirty{border-left-color:#d94b40}.hk-room-card.hk-in_progress{border-left-color:#e7a525}.hk-room-card.hk-ready{border-left-color:#36a264}.hk-room-card.hk-inspection{border-left-color:#5e76c9}
.hk-room-no{font-size:18px;font-weight:900}.hk-room-status{font-size:12px;font-weight:800;margin-top:5px}.hk-room-meta{font-size:11px;color:#6f7e91;margin-top:4px}.hk-room-note{font-size:11px;background:#f5f7fa;border-radius:8px;padding:7px;margin-top:8px}
.hk-staff-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(300px,2fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e6ebf1}
.hk-staff-row>div small{display:block;color:#738196;font-size:11px;margin-top:3px}.hk-staff-row form{display:flex;gap:7px}.hk-staff-row input{min-width:130px}
@media(max-width:800px){.hk-kpis{grid-template-columns:repeat(2,1fr)}.hk-staff-row{grid-template-columns:1fr}.hk-staff-row form{flex-wrap:wrap}}

/* v1.10.7 - prossimo arrivo Housekeeping */
.hk-next-arrival{margin-top:9px;padding:8px 9px;border-radius:9px;background:#edf3f8;color:#4c6077;font-size:11px}.hk-next-arrival b{display:block}.hk-next-arrival span{display:block;margin-top:2px;font-weight:700}.hk-next-arrival.today{background:#ffe7e3;color:#a32d23;border:1px solid #ffc9c2}

/* v1.10.8 - Housekeeping camere in fermata */
.hk-stayover-section{margin:14px 0;padding:14px}
.hk-stayover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.hk-stayover-card{border:1px solid #dce4ed;border-radius:12px;padding:12px;background:#fff}
.hk-stayover-card.requested{border-color:#87ace1;background:#f8fbff}
.hk-stayover-top{display:flex;gap:10px;justify-content:space-between;align-items:flex-start}
.hk-stayover-top b{font-size:16px}.hk-stayover-top span{display:block;font-size:10px;color:#5e6f84;font-weight:800;margin-top:3px}
.hk-stayover-top strong{font-size:9px;background:#e4efff;color:#23528e;padding:5px 7px;border-radius:999px;white-space:nowrap}
.hk-stayover-pax{font-size:11px;color:#46586e;margin-top:7px;font-weight:700}
.hk-stayover-form{display:flex;gap:7px;margin-top:10px;align-items:center}.hk-stayover-form input{flex:1;min-width:130px}
.hk-stayover-requested-meta{margin:9px 0;font-size:11px;color:#4d6075}
.hk-board-title{margin:18px 0 6px;font-size:17px}
@media(max-width:700px){.hk-stayover-form{flex-direction:column;align-items:stretch}.hk-stayover-top{flex-direction:column}}

/* v1.10.9 - Housekeeping Reception: vista compatta */
.hk-reception.hk-compact .hk-page-title{
 margin-bottom:8px;
}
.hk-reception.hk-compact .hk-page-title h1{
 font-size:22px;
 line-height:1;
 margin-bottom:2px;
}
.hk-reception.hk-compact .hk-page-title .muted{
 font-size:10px;
}
.hk-reception.hk-compact .hk-page-title .actions{
 gap:5px;
}
.hk-reception.hk-compact .hk-page-title .btn{
 min-height:30px;
 padding:5px 8px;
 font-size:10px;
}

.hk-reception.hk-compact .hk-kpis{
 display:grid;
 grid-template-columns:repeat(4,minmax(100px,1fr));
 gap:6px;
 margin:6px 0 8px;
}
.hk-reception.hk-compact .hk-kpis>div{
 padding:7px 9px!important;
 min-height:0!important;
}
.hk-reception.hk-compact .hk-kpis span{
 font-size:9px!important;
}
.hk-reception.hk-compact .hk-kpis b{
 font-size:19px!important;
 line-height:1!important;
}

.hk-reception.hk-compact .hk-stayover-section{
 padding:8px 10px;
 margin:7px 0;
}
.hk-reception.hk-compact .hk-stayover-section .section-head{
 margin-bottom:6px;
}
.hk-reception.hk-compact .hk-stayover-section h2{
 font-size:14px;
 margin:0;
}
.hk-reception.hk-compact .hk-stayover-section .muted{
 font-size:9px;
}
.hk-reception.hk-compact .hk-stayover-grid{
 grid-template-columns:repeat(auto-fill,minmax(205px,1fr));
 gap:6px;
}
.hk-reception.hk-compact .hk-stayover-card{
 padding:7px 8px;
 border-radius:8px;
}
.hk-reception.hk-compact .hk-stayover-top b{
 font-size:13px;
}
.hk-reception.hk-compact .hk-stayover-top span,
.hk-reception.hk-compact .hk-stayover-pax,
.hk-reception.hk-compact .hk-stayover-requested-meta{
 font-size:8px;
}
.hk-reception.hk-compact .hk-stayover-top strong{
 font-size:7px;
 padding:3px 5px;
}
.hk-reception.hk-compact .hk-stayover-form{
 margin-top:6px;
 gap:5px;
}
.hk-reception.hk-compact .hk-stayover-form input{
 height:29px;
 font-size:9px;
 padding:4px 6px;
}
.hk-reception.hk-compact .hk-stayover-card .btn{
 min-height:29px;
 padding:4px 7px;
 font-size:9px;
}

.hk-reception.hk-compact .hk-board-title{
 font-size:13px;
 margin:8px 0 5px;
}
.hk-reception.hk-compact .hk-board{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(118px,1fr));
 gap:5px;
 margin-top:0;
}
.hk-reception.hk-compact .hk-room-card{
 min-height:68px;
 padding:6px 7px;
 border-radius:8px;
 border-left-width:4px;
 box-shadow:none;
 overflow:hidden;
}
.hk-reception.hk-compact .hk-room-no{
 font-size:14px;
 line-height:1.05;
 white-space:nowrap;
}
.hk-reception.hk-compact .hk-room-status{
 font-size:8px;
 line-height:1.1;
 margin-top:3px;
}
.hk-reception.hk-compact .hk-room-meta{
 font-size:7px;
 line-height:1.15;
 margin-top:2px;
 white-space:normal;
}
.hk-reception.hk-compact .hk-room-note{
 font-size:7px;
 line-height:1.1;
 padding:3px 4px;
 margin-top:3px;
 max-height:27px;
 overflow:hidden;
}

@media(min-width:1600px){
 .hk-reception.hk-compact .hk-board{
  grid-template-columns:repeat(auto-fit,minmax(105px,1fr));
 }
 .hk-reception.hk-compact .hk-room-card{
  min-height:62px;
  padding:5px 6px;
 }
}

@media(max-width:1200px){
 .hk-reception.hk-compact .hk-board{
  grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
 }
}

@media(max-width:700px){
 .hk-reception.hk-compact .hk-kpis{
  grid-template-columns:repeat(2,1fr);
 }
 .hk-reception.hk-compact .hk-board{
  grid-template-columns:repeat(2,minmax(0,1fr));
 }
 .hk-reception.hk-compact .hk-room-card{
  min-height:82px;
  padding:8px;
 }
 .hk-reception.hk-compact .hk-room-no{
  font-size:17px;
 }
}

/* v1.11.0 - Planning compatto / tutte le camere */
.planning-compact-toggle{
 height:34px;
 display:inline-flex;
 align-items:center;
 padding:0 10px;
 border:1px solid #dfe4ec;
 border-radius:7px;
 background:#fff;
 color:#394151;
 font-size:10px;
 font-weight:800;
 white-space:nowrap;
}
.planning-compact-toggle.active{
 background:#173f76;
 color:#fff;
 border-color:#173f76;
}

/* Dedica quasi tutto lo schermo al Planning quando la modalità è attiva. */
body.planning-compact-active .dashboard-kpis,
body.planning-compact-active .kpi-grid{
 display:none!important;
}
body.planning-compact-active .planning-create-help{
 display:none!important;
}
body.planning-compact-active .planning-legend{
 height:24px!important;
 padding:0 7px!important;
 gap:9px!important;
 font-size:7px!important;
}
body.planning-compact-active .legend-dot{
 width:10px!important;
 height:5px!important;
}

/* Toolbar più bassa */
.planning-compact-mode .planning-toolbar{
 min-height:38px!important;
 padding:4px 7px!important;
 gap:5px!important;
}
.planning-compact-mode .toolbar-left,
.planning-compact-mode .toolbar-right{
 gap:4px!important;
}
.planning-compact-mode .segmented a{
 font-size:8px!important;
 padding:5px 8px!important;
}
.planning-compact-mode .filter-select,
.planning-compact-mode .date-range,
.planning-compact-mode .nav-btn,
.planning-compact-mode .planning-compact-toggle{
 height:27px!important;
 min-height:27px!important;
 font-size:8px!important;
 border-radius:5px!important;
}
.planning-compact-mode .nav-btn{
 width:27px!important;
}
.planning-compact-mode .date-range{
 padding:0 8px!important;
}

/* Planning più stretto e denso */
.planning-compact-mode .planning-calendar{
 min-width:calc(104px + (var(--days) * 50px))!important;
}
.planning-compact-mode .plan-header,
.planning-compact-mode .plan-row{
 grid-template-columns:104px repeat(var(--days),minmax(50px,1fr))!important;
}
.planning-compact-mode .plan-header>div{
 min-height:28px!important;
 height:28px!important;
 padding:3px 2px!important;
 font-size:7px!important;
}
.planning-compact-mode .plan-header .room-head{
 padding:7px 6px!important;
 font-size:8px!important;
}
.planning-compact-mode .plan-day strong{
 font-size:8px!important;
 line-height:1!important;
}

/* Camera: una sola riga leggibile */
.planning-compact-mode .room-info{
 padding:3px 5px!important;
 display:flex!important;
 align-items:center!important;
 gap:4px!important;
 overflow:hidden!important;
}
.planning-compact-mode .room-number{
 font-size:9px!important;
 gap:4px!important;
 line-height:1!important;
 flex:0 0 auto;
}
.planning-compact-mode .room-dot{
 width:5px!important;
 height:5px!important;
}
.planning-compact-mode .room-meta{
 font-size:6.5px!important;
 margin:0!important;
 min-width:0;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
 white-space:nowrap!important;
}

/* Celle e booking */
.planning-compact-mode .booking-layer{
 left:104px!important;
 grid-template-columns:repeat(var(--days),minmax(50px,1fr))!important;
}
.planning-compact-mode .booking-bar{
 height:15px!important;
 min-height:15px!important;
 border-radius:3px!important;
 padding:2px 4px!important;
 font-size:7px!important;
 line-height:11px!important;
 margin:0 2px!important;
 box-shadow:none!important;
}
.planning-compact-mode .booking-bar:after{
 display:none!important;
}
.planning-compact-mode .booking-label{
 line-height:11px!important;
}
.planning-compact-mode .shared-mini{
 font-size:6px!important;
}
.planning-compact-mode .booking-resize-handle{
 width:5px!important;
}
.planning-compact-mode .maintenance-label{
 left:104px!important;
 font-size:7px!important;
}

/* Riduce spazi esterni della dashboard */
body.planning-compact-active main,
body.planning-compact-active .content,
body.planning-compact-active .page-content{
 padding-top:5px!important;
}
body.planning-compact-active .planning-layout{
 gap:7px!important;
}
body.planning-compact-active .planning-panel{
 border-radius:6px!important;
}

/* Se il dettaglio è aperto, restringilo leggermente */
body.planning-compact-active .planning-layout.detail-open{
 grid-template-columns:minmax(0,1fr) 260px!important;
}
body.planning-compact-active .reservation-detail-sidebar{
 font-size:9px!important;
}

/* Full HD: massimizza densità verticale */
@media(min-height:850px){
 .planning-compact-mode .planning-scroll{
  max-height:calc(100vh - 118px)!important;
 }
}

/* v1.11.1 - FIX SIDEBAR + PLANNING ULTRA-COMPATTO */

/* Sidebar: le ultime voci devono essere SEMPRE raggiungibili */
.sidebar{
 overflow:hidden!important;
}
.sidebar .brand-block{
 flex:0 0 68px!important;
}
.sidebar .side-nav{
 flex:1 1 auto!important;
 min-height:0!important;
 overflow-y:auto!important;
 overflow-x:hidden!important;
 padding:10px 0!important;
 scrollbar-width:thin;
 scrollbar-color:#cfd7e3 transparent;
}
.sidebar .side-nav::-webkit-scrollbar{
 width:6px;
}
.sidebar .side-nav::-webkit-scrollbar-thumb{
 background:#cfd7e3;
 border-radius:6px;
}
.sidebar .side-nav a{
 flex:0 0 42px!important;
 height:42px!important;
 min-height:42px!important;
 padding:0 16px!important;
 gap:9px!important;
 font-size:11.5px!important;
}
.sidebar .side-nav a span{
 font-size:16px!important;
 width:18px!important;
}
.sidebar .sidebar-bottom{
 flex:0 0 auto!important;
 margin-top:0!important;
 padding:10px 14px!important;
 border-top:1px solid var(--line);
 background:#fff;
}

/* Planning compatto: differenza molto più evidente */
body.planning-compact-active .content-area{
 padding-top:8px!important;
}
body.planning-compact-active .dashboard-header,
body.planning-compact-active .dashboard-kpis,
body.planning-compact-active .kpi-grid{
 display:none!important;
}
body.planning-compact-active .planning-layout{
 gap:6px!important;
}
body.planning-compact-active .planning-toolbar{
 min-height:32px!important;
 padding:3px 6px!important;
}
body.planning-compact-active .planning-toolbar .filter-select{
 display:none!important;
}
body.planning-compact-active .planning-toolbar .segmented a{
 padding:4px 7px!important;
 font-size:7.5px!important;
}
body.planning-compact-active .planning-toolbar .date-range{
 height:24px!important;
 min-height:24px!important;
 font-size:7.5px!important;
 padding:0 6px!important;
}
body.planning-compact-active .planning-toolbar .nav-btn{
 width:24px!important;
 height:24px!important;
 min-height:24px!important;
}
body.planning-compact-active .planning-compact-toggle{
 height:24px!important;
 min-height:24px!important;
 padding:0 7px!important;
 font-size:7.5px!important;
}
body.planning-compact-active .planning-calendar{
 min-width:calc(88px + (var(--days) * 47px))!important;
}
body.planning-compact-active .plan-header,
body.planning-compact-active .plan-row{
 grid-template-columns:88px repeat(var(--days),minmax(47px,1fr))!important;
}
body.planning-compact-active .plan-header>div{
 min-height:24px!important;
 height:24px!important;
 padding:2px 1px!important;
 font-size:6.5px!important;
}
body.planning-compact-active .plan-header .room-head{
 padding:6px 4px!important;
 font-size:7px!important;
}
body.planning-compact-active .plan-day strong{
 font-size:7px!important;
 line-height:1!important;
}
body.planning-compact-active .room-info{
 padding:2px 4px!important;
 display:flex!important;
 align-items:center!important;
 gap:3px!important;
 overflow:hidden!important;
}
body.planning-compact-active .room-number{
 font-size:8px!important;
 gap:3px!important;
 line-height:1!important;
}
body.planning-compact-active .room-dot{
 width:4px!important;
 height:4px!important;
}
body.planning-compact-active .room-meta{
 font-size:5.8px!important;
 margin:0!important;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
 white-space:nowrap!important;
}
body.planning-compact-active .booking-layer{
 left:88px!important;
 grid-template-columns:repeat(var(--days),minmax(47px,1fr))!important;
}
body.planning-compact-active .booking-bar{
 height:13px!important;
 min-height:13px!important;
 padding:1px 3px!important;
 margin:0 1px!important;
 border-radius:2px!important;
 font-size:6.2px!important;
 line-height:11px!important;
 box-shadow:none!important;
}
body.planning-compact-active .booking-bar:after{
 display:none!important;
}
body.planning-compact-active .maintenance-label{
 left:88px!important;
 font-size:6px!important;
}
body.planning-compact-active .planning-legend{
 height:20px!important;
 padding:0 5px!important;
 gap:7px!important;
 font-size:6px!important;
}
body.planning-compact-active .legend-dot{
 width:8px!important;
 height:4px!important;
}
body.planning-compact-active .planning-create-help{
 display:none!important;
}

/* Recupera più altezza possibile */
body.planning-compact-active .planning-scroll{
 max-height:calc(100vh - 130px)!important;
}

/* Se nessun dettaglio prenotazione è aperto, Planning a tutta larghezza */
body.planning-compact-active .planning-layout.detail-closed{
 grid-template-columns:minmax(0,1fr)!important;
}

/* Con dettaglio aperto lo teniamo più stretto */
body.planning-compact-active .planning-layout.detail-open{
 grid-template-columns:minmax(0,1fr) 245px!important;
}

/* Notebook: manteniamo comunque la densità */
@media(max-height:800px){
 body.planning-compact-active .planning-scroll{
  max-height:calc(100vh - 112px)!important;
 }
 .sidebar .side-nav a{
  flex-basis:38px!important;
  height:38px!important;
  min-height:38px!important;
  font-size:10.5px!important;
 }
}

/* v1.11.2 - PLANNING RESPONSIVE REALE
   Queste regole sono volutamente più specifiche degli override storici. */

body.planning-compact-active .planning-calendar .plan-row{
  box-sizing:border-box!important;
  min-height:17px!important;
  overflow:hidden!important;
}

body.planning-compact-active .planning-calendar .plan-row > .room-info,
body.planning-compact-active .planning-calendar .plan-row > .day-cell{
  box-sizing:border-box!important;
  height:var(--room-row-height)!important;
  min-height:var(--room-row-height)!important;
  max-height:var(--room-row-height)!important;
  overflow:hidden!important;
}

/* Sovrascrive definitivamente il vecchio 27px!important */
body.planning-compact-active .planning-calendar .plan-row > .booking-layer > .booking-bar.planning-draggable{
  height:12px!important;
  min-height:12px!important;
  max-height:12px!important;
  line-height:10px!important;
  padding:1px 3px!important;
  font-size:6.5px!important;
  border-radius:2px!important;
  top:var(--responsive-lane-top,var(--lane-top,2px))!important;
  margin:0!important;
}

/* Anche il layer deve rispettare esattamente la nuova altezza riga. */
body.planning-compact-active .planning-calendar .plan-row > .booking-layer{
  height:var(--room-row-height)!important;
  min-height:var(--room-row-height)!important;
  max-height:var(--room-row-height)!important;
  left:88px!important;
  top:0!important;
  bottom:auto!important;
  overflow:hidden!important;
}

/* La riga camera diventa realmente elastica. */
body.planning-compact-active .planning-calendar .room-info{
  padding:1px 4px!important;
  display:flex!important;
  align-items:center!important;
  gap:3px!important;
}
body.planning-compact-active .planning-calendar .room-number{
  font-size:8px!important;
  line-height:1!important;
}
body.planning-compact-active .planning-calendar .room-meta{
  font-size:6px!important;
  line-height:1!important;
  margin:0!important;
}

/* Il contenitore non impone più un max-height statico: lo assegna JS. */
body.planning-compact-active .planning-scroll{
  max-height:none!important;
  overflow:auto!important;
}

/* Header e legenda ridotti al minimo utile. */
body.planning-compact-active .planning-calendar .plan-header,
body.planning-compact-active .planning-calendar .plan-header > div{
  height:22px!important;
  min-height:22px!important;
  max-height:22px!important;
}
body.planning-compact-active .planning-calendar .plan-header > div{
  padding:2px!important;
  font-size:6.5px!important;
}
body.planning-compact-active .planning-legend{
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  padding:0 5px!important;
}

/* Nasconde elementi non indispensabili in modalità compatta. */
body.planning-compact-active .planning-drag-help,
body.planning-compact-active .planning-create-help{
  display:none!important;
}

/* Sidebar fix rafforzato */
.sidebar{
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}
.sidebar .side-nav{
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

/* v1.11.3 - Filtri Planning Piano / Tipologia */
body.planning-compact-active .planning-toolbar .filter-select.planning-filter-select{
 display:block!important;
 height:24px!important;
 min-height:24px!important;
 max-width:145px;
 padding:0 20px 0 6px!important;
 font-size:7.5px!important;
}
.planning-filter-select{
 cursor:pointer;
 min-width:112px;
}
.planning-filter-select:focus{
 outline:none;
 border-color:#7aa9ea;
 box-shadow:0 0 0 2px rgba(23,105,232,.08);
}
.planning-clear-filters{
 height:34px;
 display:inline-flex;
 align-items:center;
 justify-content:center;
 padding:0 9px;
 border:1px solid #e1e6ed;
 border-radius:7px;
 background:#fff7f7;
 color:#a23d43;
 font-size:9px;
 font-weight:750;
 white-space:nowrap;
}
body.planning-compact-active .planning-clear-filters{
 height:24px!important;
 font-size:7px!important;
 padding:0 6px!important;
}
@media(max-width:1050px){
 .planning-toolbar .toolbar-left{flex-wrap:wrap}
 .planning-filter-select{min-width:105px}
}

/* v1.11.4 - Tableau: KPI compatti su una sola riga */
.tableau-kpi-grid{
 display:grid!important;
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
 gap:8px!important;
 margin-bottom:10px!important;
}

.tableau-kpi-grid .kpi-card{
 min-height:58px!important;
 padding:8px 12px!important;
 border-radius:10px!important;
 gap:7px!important;
}

.tableau-kpi-grid .kpi-icon{
 width:30px!important;
 height:30px!important;
 flex:0 0 30px!important;
 font-size:14px!important;
 border-radius:8px!important;
}

.tableau-kpi-grid .kpi-label{
 font-size:9px!important;
 line-height:1.05!important;
 margin:0!important;
}

.tableau-kpi-grid .kpi-value{
 font-size:20px!important;
 line-height:1!important;
 margin-top:2px!important;
}

.tableau-kpi-grid .kpi-sub{
 font-size:8px!important;
 line-height:1.05!important;
 margin-top:3px!important;
}

/* Se le card Tableau usano una struttura più semplice senza icona */
.tableau-kpi-grid > div{
 min-height:58px!important;
 padding:8px 12px!important;
}

.tableau-kpi-grid > div > span,
.tableau-kpi-grid > div > small{
 font-size:9px!important;
 line-height:1.05!important;
}

.tableau-kpi-grid > div > b,
.tableau-kpi-grid > div > strong{
 font-size:20px!important;
 line-height:1!important;
}

/* Recupera ancora più spazio sopra la griglia camere */
.tableau-kpi-grid + *{
 margin-top:8px!important;
}

/* Notebook: resta una singola riga finché c'è spazio sufficiente */
@media(max-width:900px){
 .tableau-kpi-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
}

@media(max-width:520px){
 .tableau-kpi-grid{
  grid-template-columns:1fr!important;
 }
}

/* v1.11.5 - Tableau compatto REALE */

/* Le 4 KPI sono davvero sul contenitore corretto */
.account-summary.tableau-kpis.tableau-kpi-grid{
 display:grid!important;
 grid-template-columns:repeat(4,minmax(0,1fr))!important;
 gap:8px!important;
 margin:6px 0 8px!important;
}

/* Card molto più basse */
.account-summary.tableau-kpis.tableau-kpi-grid > .account-kpi{
 min-height:54px!important;
 height:54px!important;
 padding:7px 12px!important;
 border-radius:10px!important;
 gap:1px!important;
 justify-content:center!important;
}

/* Label / valore / sottotitolo compatti ma leggibili */
.account-summary.tableau-kpis.tableau-kpi-grid > .account-kpi > span{
 font-size:9.5px!important;
 line-height:1!important;
 margin:0!important;
}
.account-summary.tableau-kpis.tableau-kpi-grid > .account-kpi > b{
 font-size:20px!important;
 line-height:1!important;
 margin:3px 0 1px!important;
}
.account-summary.tableau-kpis.tableau-kpi-grid > .account-kpi > small{
 display:block!important;
 font-size:8px!important;
 line-height:1!important;
 margin:0!important;
 color:#7a8492!important;
}

/* Recupero spazio anche nella parte alta del Tableau */
.tableau-main-card{
 padding-top:10px!important;
}
.tableau-main-card .section-head{
 margin-bottom:7px!important;
}
.tableau-main-card .section-head h2{
 font-size:15px!important;
 margin-bottom:2px!important;
}
.tableau-main-card .section-head .muted{
 font-size:8px!important;
}

/* Tabella leggermente più compatta per mostrare più camere */
.tableau-main-card .tableau-table th{
 padding:6px 7px!important;
 font-size:8px!important;
}
.tableau-main-card .tableau-table td{
 padding:6px 7px!important;
 line-height:1.05!important;
}
.tableau-main-card .tableau-room-number{
 font-size:13px!important;
 line-height:1!important;
}
.tableau-main-card .tableau-table td:nth-child(2) b{
 font-size:10px!important;
 line-height:1!important;
}
.tableau-main-card .tableau-date-cell{
 font-size:9px!important;
}
.tableau-main-card .tableau-people-cell{
 font-size:10px!important;
}
.tableau-main-card .tableau-notes{
 font-size:7.5px!important;
 line-height:1.15!important;
}
.tableau-main-card .mini-btn{
 min-height:24px!important;
 height:24px!important;
 padding:0 7px!important;
 font-size:8px!important;
}
.tableau-main-card .tableau-free-row td{
 min-height:30px!important;
}
.tableau-main-card .tableau-write-line{
 min-height:12px!important;
}

/* Data navigation più bassa */
.tableau-kpis ~ .tableau-main-card{
 margin-top:0!important;
}

/* Desktop/tablet: mantieni sempre 4 KPI su una riga finché possibile */
@media(min-width:760px){
 .account-summary.tableau-kpis.tableau-kpi-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
 }
}

/* Mobile responsive */
@media(max-width:759px){
 .account-summary.tableau-kpis.tableau-kpi-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }
}
@media(max-width:480px){
 .account-summary.tableau-kpis.tableau-kpi-grid{
  grid-template-columns:1fr!important;
 }
}

/* v1.11.6 - Housekeeping: stato non richiesto + data ripristino */
.hk-room-card.hk-not_required{
 border-left-color:#9aa4b2;
 background:#fafbfc;
}
.hk-card-actions{
 margin-top:6px;
}
.hk-card-actions .btn{
 width:100%;
 min-height:28px;
 height:auto;
 padding:5px 7px;
 font-size:9px;
}


/* RESTORE PRODUCT PICKER v1.12.1 */
.product-picker-dialog{
 width:min(930px,94vw);
 max-width:930px;
 padding:0;
 overflow:hidden;
}

.product-picker-shell{
 max-height:min(820px,91vh);
 display:flex;
 flex-direction:column;
}

.product-picker-dialog .dialog-head{
 padding:14px 16px 10px;
 margin:0;
}

.product-picker-topbar{
 display:grid;
 grid-template-columns:160px minmax(260px,1fr) auto;
 gap:9px;
 align-items:end;
 padding:0 16px 10px;
}

.product-picker-search-field input{width:100%}

.product-picker-groups{
 overflow:auto;
 padding:0 16px 12px;
 min-height:220px;
 max-height:480px;
}

.product-picker-category{
 margin-bottom:12px;
}

.product-picker-category-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 margin-bottom:5px;
 padding:2px 1px;
}

.product-picker-category-head h3{
 margin:0;
 font-size:10px;
}

.product-picker-category-head span{
 color:#78879a;
 font-size:7px;
}

.product-picker-list{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:6px;
}

.product-picker-row{
 display:grid;
 grid-template-columns:28px minmax(0,1fr) 80px 74px;
 gap:7px;
 align-items:center;
 min-height:52px;
 padding:7px 8px;
 border:1px solid #e2e8f0;
 border-radius:9px;
 background:#fff;
 cursor:pointer;
 transition:border-color .12s,background .12s,box-shadow .12s;
}

.product-picker-row:hover{
 border-color:#b9cce2;
 background:#f9fbfe;
}

.product-picker-row.selected{
 border-color:#84b3e5;
 background:#eff7ff;
 box-shadow:inset 0 0 0 1px #b8d7f5;
}

.product-picker-check{
 display:flex;
 justify-content:center;
}

.product-picker-check input{
 width:17px;
 height:17px;
}

.product-picker-name{
 min-width:0;
}

.product-picker-name b{
 display:block;
 font-size:8.5px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}

.product-picker-name small{
 display:block;
 color:#8693a4;
 font-size:6.5px;
 margin-top:2px;
}

.product-picker-price{
 text-align:right;
 font-size:9px;
 font-weight:900;
}

.product-picker-qty{
 display:flex;
 align-items:center;
 gap:4px;
}

.product-picker-qty small{
 font-size:6px;
 color:#8794a3;
}

.product-picker-qty input{
 width:50px;
 padding:5px;
 text-align:center;
}

.product-picker-footer{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 border-top:1px solid #e4eaf1;
 padding:10px 16px;
 background:#fafcfe;
}

.product-picker-selected-summary{
 display:flex;
 align-items:center;
 gap:7px;
 font-size:8px;
 color:#66758a;
}

.product-picker-selected-summary b{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:24px;
 height:24px;
 border-radius:999px;
 background:#1f65ae;
 color:#fff;
}

.product-picker-topbar{grid-template-columns:1fr}

.product-picker-list{grid-template-columns:1fr}

/* v1.11.7 - descrizione personalizzabile prodotto/servizio sul singolo conto */
.product-picker-description-help{
 margin:0 0 9px;
 padding:8px 10px;
 border:1px solid #dce8f8;
 border-radius:8px;
 background:#f7faff;
 color:#53657a;
 font-size:9px;
 line-height:1.35;
}

.product-picker-row{
 grid-template-columns:32px minmax(130px,1.1fr) minmax(170px,1.4fr) auto 72px!important;
 align-items:center!important;
}

.product-picker-description{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:3px;
}

.product-picker-description small{
 font-size:7.5px;
 color:#7b8796;
 font-weight:700;
}

.product-picker-description input{
 width:100%;
 min-width:0;
 height:30px;
 padding:0 8px;
 border:1px solid #d7dee8;
 border-radius:6px;
 background:#fff;
 color:#263445;
 font-size:9.5px;
 outline:none;
}

.product-picker-description input:focus{
 border-color:#73a5ea;
 box-shadow:0 0 0 2px rgba(23,105,232,.08);
}

.product-picker-row.selected .product-picker-description input{
 border-color:#9bbcf0;
 background:#fbfdff;
}

.product-picker-row{
  grid-template-columns:28px minmax(110px,1fr) minmax(145px,1.3fr) auto 66px!important;
 }

.product-picker-row{
  grid-template-columns:28px 1fr auto!important;
 }

.product-picker-description{
  grid-column:2/-1;
  width:100%;
 }

/* v1.11.8 - Product picker riordinato: card su due righe */
.product-picker-list{
 display:flex!important;
 flex-direction:column!important;
 gap:7px!important;
}

.product-picker-row{
 display:grid!important;
 grid-template-columns:28px minmax(0,1fr) auto!important;
 grid-template-areas:
   "check name price"
   "check description qty"!important;
 align-items:center!important;
 column-gap:10px!important;
 row-gap:6px!important;
 padding:9px 10px!important;
 border:1px solid #e3e8ef!important;
 border-radius:9px!important;
 background:#fff!important;
 min-height:82px!important;
}

.product-picker-row.selected{
 border-color:#8db4eb!important;
 background:#f8fbff!important;
 box-shadow:0 0 0 1px rgba(23,105,232,.05)!important;
}

.product-picker-check{
 grid-area:check!important;
 align-self:center!important;
 justify-self:center!important;
}

.product-picker-check input{
 width:17px!important;
 height:17px!important;
 margin:0!important;
}

.product-picker-name{
 grid-area:name!important;
 min-width:0!important;
 display:flex!important;
 flex-direction:column!important;
 gap:2px!important;
}

.product-picker-name b{
 font-size:11px!important;
 line-height:1.2!important;
 white-space:normal!important;
 overflow-wrap:anywhere!important;
}

.product-picker-name small{
 font-size:8px!important;
 line-height:1!important;
 color:#7b8796!important;
}

.product-picker-price{
 grid-area:price!important;
 justify-self:end!important;
 white-space:nowrap!important;
 font-size:11px!important;
 font-weight:800!important;
}

.product-picker-description{
 grid-area:description!important;
 min-width:0!important;
 width:100%!important;
 display:grid!important;
 grid-template-columns:110px minmax(0,1fr)!important;
 align-items:center!important;
 gap:8px!important;
}

.product-picker-description small{
 font-size:8px!important;
 line-height:1.1!important;
 color:#6f7b8b!important;
 font-weight:750!important;
 white-space:nowrap!important;
}

.product-picker-description input{
 width:100%!important;
 min-width:0!important;
 height:32px!important;
 padding:0 9px!important;
 border:1px solid #d7dee8!important;
 border-radius:6px!important;
 background:#fff!important;
 color:#263445!important;
 font-size:9.5px!important;
 box-sizing:border-box!important;
}

.product-picker-qty{
 grid-area:qty!important;
 justify-self:end!important;
 display:flex!important;
 align-items:center!important;
 gap:6px!important;
 white-space:nowrap!important;
 min-width:94px!important;
}

.product-picker-qty small{
 font-size:8px!important;
 color:#6f7b8b!important;
 font-weight:750!important;
}

.product-picker-qty input{
 width:58px!important;
 min-width:58px!important;
 max-width:58px!important;
 height:32px!important;
 padding:0 5px!important;
 text-align:center!important;
 box-sizing:border-box!important;
}

/* Il picker resta spazioso e leggibile */
.product-picker-dialog{
 width:min(980px,calc(100vw - 34px))!important;
}

.product-picker-shell{
 max-height:min(86vh,820px)!important;
 overflow:auto!important;
}

.product-picker-groups{
 padding-right:2px!important;
}

/* Tablet: descrizione sotto a tutta larghezza */
@media(max-width:850px){
 .product-picker-row{
  grid-template-columns:26px minmax(0,1fr) auto!important;
  grid-template-areas:
    "check name price"
    "check description description"
    "check qty qty"!important;
 }
 .product-picker-description{
  grid-template-columns:1fr!important;
  gap:4px!important;
 }
 .product-picker-description small{
  white-space:normal!important;
 }
 .product-picker-qty{
  justify-self:start!important;
 }
}

/* Smartphone: card verticale, niente sovrapposizioni */
@media(max-width:560px){
 .product-picker-row{
  grid-template-columns:24px minmax(0,1fr)!important;
  grid-template-areas:
    "check name"
    "check price"
    "check description"
    "check qty"!important;
  align-items:start!important;
 }
 .product-picker-price{
  justify-self:start!important;
 }
 .product-picker-description{
  grid-template-columns:1fr!important;
  width:100%!important;
 }
 .product-picker-qty{
  justify-self:start!important;
 }
}


/* v1.11.9 - product picker compatto con pannello modifica solo se selezionato */

.product-picker-list{
 display:flex!important;
 flex-direction:column!important;
 gap:6px!important;
}

.product-picker-row{
 display:block!important;
 padding:0!important;
 border:1px solid #e2e8f0!important;
 border-radius:9px!important;
 background:#fff!important;
 min-height:0!important;
 overflow:hidden!important;
}

.product-picker-summary{
 min-height:48px;
 display:grid;
 grid-template-columns:28px minmax(0,1fr) auto;
 align-items:center;
 gap:9px;
 padding:7px 10px;
 cursor:pointer;
}

.product-picker-row.selected{
 border-color:#8db4eb!important;
 background:#fbfdff!important;
}

.product-picker-row.selected .product-picker-summary{
 background:#f7fbff;
 border-bottom:1px solid #dfe8f6;
}

.product-picker-check{
 display:flex!important;
 align-items:center!important;
 justify-content:center!important;
}

.product-picker-name{
 min-width:0!important;
 display:flex!important;
 flex-direction:column!important;
 gap:2px!important;
}

.product-picker-name b{
 font-size:11px!important;
 line-height:1.15!important;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
 white-space:nowrap!important;
}

.product-picker-name small{
 font-size:7.5px!important;
 line-height:1!important;
 color:#7a8492!important;
}

.product-picker-price-display{
 justify-self:end!important;
 white-space:nowrap!important;
 font-size:11px!important;
 font-weight:800!important;
 color:#27384f!important;
}

/* Di default il pannello modifica non occupa spazio */
.product-picker-edit-panel{
 display:none!important;
}

/* Compare solo quando il prodotto è selezionato */
.product-picker-row.selected .product-picker-edit-panel{
 display:grid!important;
 grid-template-columns:minmax(220px,1fr) 88px 120px!important;
 gap:9px!important;
 align-items:end!important;
 padding:8px 10px 10px!important;
 background:#fbfdff!important;
}

.product-edit-field{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:4px;
}

.product-edit-field small{
 font-size:7.5px!important;
 line-height:1!important;
 color:#6c7888!important;
 font-weight:750!important;
}

.product-edit-field input{
 width:100%!important;
 min-width:0!important;
 height:31px!important;
 box-sizing:border-box!important;
 border:1px solid #d7dee8!important;
 border-radius:6px!important;
 padding:0 8px!important;
 font-size:9.5px!important;
 background:#fff!important;
 color:#263445!important;
}

.product-edit-description input{
 width:100%!important;
}

.product-edit-field input:focus{
 outline:none!important;
 border-color:#6e9fe4!important;
 box-shadow:0 0 0 2px rgba(23,105,232,.08)!important;
}

/* Neutralizza i vecchi layout delle versioni precedenti */
.product-picker-description,
.product-picker-qty,
.product-picker-price{
 display:none!important;
}

/* Tablet */
@media(max-width:760px){
 .product-picker-row.selected .product-picker-edit-panel{
  grid-template-columns:1fr 90px!important;
 }
 .product-edit-description{
  grid-column:1/-1!important;
 }
}

/* Smartphone */
@media(max-width:520px){
 .product-picker-summary{
  grid-template-columns:26px minmax(0,1fr) auto!important;
  padding:7px 8px!important;
 }
 .product-picker-row.selected .product-picker-edit-panel{
  grid-template-columns:1fr!important;
 }
 .product-edit-description{
  grid-column:auto!important;
 }
}


/* v1.12.0 - PRODUCT PICKER CLEAN RESET
   Layout volutamente semplice per eliminare definitivamente sovrapposizioni. */

#add-charge-dialog .product-picker-row{
 display:block!important;
 position:relative!important;
 width:100%!important;
 min-width:0!important;
 min-height:0!important;
 height:auto!important;
 padding:0!important;
 margin:0 0 7px!important;
 border:1px solid #e1e7ef!important;
 border-radius:9px!important;
 background:#fff!important;
 overflow:hidden!important;
 box-sizing:border-box!important;
}

#add-charge-dialog .product-picker-summary{
 display:flex!important;
 align-items:center!important;
 justify-content:space-between!important;
 gap:12px!important;
 width:100%!important;
 min-width:0!important;
 min-height:48px!important;
 padding:8px 11px!important;
 box-sizing:border-box!important;
 cursor:pointer!important;
}

#add-charge-dialog .product-picker-main-select{
 display:flex!important;
 align-items:center!important;
 gap:10px!important;
 flex:1 1 auto!important;
 min-width:0!important;
 cursor:pointer!important;
}

#add-charge-dialog .product-picker-main-select > input{
 flex:0 0 auto!important;
 width:17px!important;
 height:17px!important;
 margin:0!important;
}

#add-charge-dialog .product-picker-name{
 display:block!important;
 min-width:0!important;
 flex:1 1 auto!important;
}

#add-charge-dialog .product-picker-name b{
 display:block!important;
 font-size:11px!important;
 line-height:1.2!important;
 white-space:nowrap!important;
 overflow:hidden!important;
 text-overflow:ellipsis!important;
}

#add-charge-dialog .product-picker-name small{
 display:block!important;
 margin-top:2px!important;
 font-size:8px!important;
 line-height:1!important;
 color:#7b8490!important;
}

#add-charge-dialog .product-picker-price-display{
 flex:0 0 auto!important;
 white-space:nowrap!important;
 font-size:11px!important;
 color:#26384f!important;
}

/* pannello completamente fuori dal flusso della riga finché non selezionato */
#add-charge-dialog .product-picker-edit-panel{
 display:none!important;
 width:100%!important;
 padding:10px 12px 12px!important;
 border-top:1px solid #dfe7f1!important;
 background:#f8fbff!important;
 box-sizing:border-box!important;
}

#add-charge-dialog .product-picker-row.selected .product-picker-edit-panel{
 display:block!important;
}

#add-charge-dialog .product-picker-row.selected .product-picker-summary{
 background:#f7fbff!important;
}

#add-charge-dialog .product-edit-field{
 display:block!important;
 width:100%!important;
 min-width:0!important;
 margin:0!important;
}

#add-charge-dialog .product-edit-field label{
 display:block!important;
 margin:0 0 5px!important;
 font-size:8px!important;
 line-height:1!important;
 font-weight:750!important;
 color:#647286!important;
}

#add-charge-dialog .product-edit-field input{
 display:block!important;
 width:100%!important;
 min-width:0!important;
 max-width:none!important;
 height:34px!important;
 margin:0!important;
 padding:0 9px!important;
 box-sizing:border-box!important;
 border:1px solid #d4dde8!important;
 border-radius:6px!important;
 background:#fff!important;
 font-size:10px!important;
 color:#25364d!important;
}

#add-charge-dialog .product-edit-description{
 margin-bottom:9px!important;
}

#add-charge-dialog .product-edit-row{
 display:flex!important;
 align-items:flex-end!important;
 gap:10px!important;
 width:100%!important;
 min-width:0!important;
}

#add-charge-dialog .product-edit-row .product-edit-field{
 flex:1 1 0!important;
 width:auto!important;
 min-width:0!important;
}

#add-charge-dialog .product-edit-row .product-edit-field:first-child{
 flex:0 0 110px!important;
}

#add-charge-dialog .product-picker-list{
 display:block!important;
 width:100%!important;
}

#add-charge-dialog .product-picker-description,
#add-charge-dialog .product-picker-qty,
#add-charge-dialog .product-picker-price{
 display:none!important;
}

#add-charge-dialog .product-edit-row{
  display:block!important;
 }

#add-charge-dialog .product-edit-row .product-edit-field{
  width:100%!important;
  margin-top:9px!important;
 }

#add-charge-dialog .product-edit-row .product-edit-field:first-child{
  width:100%!important;
  margin-top:0!important;
 }

/* v1.12.1 - Modifica prodotto solo su richiesta */

#add-charge-dialog .product-picker-summary-actions{
 display:flex!important;
 align-items:center!important;
 gap:10px!important;
 flex:0 0 auto!important;
}

#add-charge-dialog .product-picker-modify{
 display:none;
 border:0;
 background:transparent;
 color:#1769e8;
 font-size:8.5px;
 font-weight:800;
 padding:3px 2px;
 cursor:pointer;
 text-decoration:underline;
 text-underline-offset:2px;
 white-space:nowrap;
}

/* Il link compare solo dopo la selezione del prodotto */
#add-charge-dialog .product-picker-row.selected .product-picker-modify{
 display:inline-block!important;
}

/* La selezione NON apre più automaticamente il modulo */
#add-charge-dialog .product-picker-row.selected .product-picker-edit-panel{
 display:none!important;
}

/* Il modulo compare solo dopo click su "Modifica" */
#add-charge-dialog .product-picker-row.selected.editing .product-picker-edit-panel{
 display:block!important;
}

/* Mantieni la riga compatta quando è solo selezionata */
#add-charge-dialog .product-picker-row.selected:not(.editing) .product-picker-summary{
 border-bottom:0!important;
}

/* Leggera evidenza del prodotto selezionato, senza aumentare altezza */
#add-charge-dialog .product-picker-row.selected:not(.editing){
 background:#f8fbff!important;
}

#add-charge-dialog .product-picker-summary-actions{
  gap:6px!important;
 }

#add-charge-dialog .product-picker-modify{
  font-size:8px!important;
 }


/* =========================================================
   PRODUCT PICKER DEFINITIVO - v1.12.1 RESTORE + TAB FIX
   Autoritativo: neutralizza tutte le vecchie varianti.
   ========================================================= */

#add-charge-dialog.product-picker-dialog{
  width:min(1120px,calc(100vw - 32px))!important;
  max-width:1120px!important;
}

#add-charge-dialog .product-picker-shell{
  width:100%!important;
  max-height:min(88vh,860px)!important;
  overflow:hidden!important;
}

#add-charge-dialog .product-picker-description-help{
  margin:0 16px 10px!important;
  padding:8px 10px!important;
  font-size:12px!important;
  line-height:1.35!important;
}

#add-charge-dialog .product-picker-topbar{
  display:grid!important;
  grid-template-columns:210px minmax(280px,1fr) auto!important;
  gap:12px!important;
  align-items:end!important;
  padding:0 16px 10px!important;
}

#add-charge-dialog .product-picker-topbar .field{
  min-width:0!important;
}

#add-charge-dialog .product-picker-topbar input{
  width:100%!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .product-category-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:8px!important;
  overflow:visible!important;
  min-height:48px!important;
  padding:8px 16px 12px!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .product-category-tab{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  min-height:32px!important;
  padding:7px 13px!important;
  line-height:1.15!important;
  font-size:12px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
}

#add-charge-dialog .product-picker-groups{
  overflow:auto!important;
  padding:0 16px 12px!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .product-picker-category{
  margin:0 0 14px!important;
}

#add-charge-dialog .product-picker-category-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-height:28px!important;
  margin:0 0 6px!important;
}

#add-charge-dialog .product-picker-list{
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  width:100%!important;
}

#add-charge-dialog .product-picker-row{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #e1e7ef!important;
  border-radius:9px!important;
  background:#fff!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .product-picker-summary{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-width:0!important;
  min-height:50px!important;
  padding:8px 12px!important;
  gap:12px!important;
  box-sizing:border-box!important;
  cursor:pointer!important;
}

#add-charge-dialog .product-picker-main-select{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:1 1 auto!important;
  min-width:0!important;
  cursor:pointer!important;
}

#add-charge-dialog .product-picker-main-select > input{
  width:18px!important;
  height:18px!important;
  margin:0!important;
  flex:0 0 auto!important;
}

#add-charge-dialog .product-picker-name{
  display:block!important;
  flex:1 1 auto!important;
  min-width:0!important;
}

#add-charge-dialog .product-picker-name b{
  display:block!important;
  font-size:13px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

#add-charge-dialog .product-picker-name small{
  display:block!important;
  margin-top:2px!important;
  font-size:10px!important;
  line-height:1.1!important;
  color:#7b8490!important;
}

#add-charge-dialog .product-picker-summary-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:0 0 auto!important;
}

#add-charge-dialog .product-picker-price-display{
  display:inline-block!important;
  font-size:13px!important;
  font-weight:800!important;
  color:#26384f!important;
  white-space:nowrap!important;
}

/* MODIFICA: invisibile finché la voce non è selezionata */
#add-charge-dialog .product-picker-modify{
  display:none!important;
  border:0!important;
  background:transparent!important;
  color:#1769e8!important;
  padding:3px 2px!important;
  font-size:12px!important;
  font-weight:800!important;
  text-decoration:underline!important;
  text-underline-offset:2px!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}

#add-charge-dialog .product-picker-row.selected .product-picker-modify{
  display:inline-flex!important;
}

/* Il pannello di modifica è SEMPRE nascosto di default */
#add-charge-dialog .product-picker-row .product-picker-edit-panel,
#add-charge-dialog .product-picker-row.selected .product-picker-edit-panel,
#add-charge-dialog .product-picker-row:not(.editing) .product-picker-edit-panel,
#add-charge-dialog .product-picker-row.selected:not(.editing) .product-picker-edit-panel{
  display:none!important;
}

/* Si apre SOLO con selected + editing */
#add-charge-dialog .product-picker-row.selected.editing .product-picker-edit-panel{
  display:block!important;
  width:100%!important;
  padding:10px 12px 12px!important;
  border-top:1px solid #dfe7f1!important;
  background:#f8fbff!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .product-picker-row.selected{
  border-color:#8db4eb!important;
  background:#f8fbff!important;
}

#add-charge-dialog .product-picker-row.selected:not(.editing) .product-picker-summary{
  border-bottom:0!important;
}

#add-charge-dialog .product-edit-field{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}

#add-charge-dialog .product-edit-field label{
  display:block!important;
  margin:0 0 5px!important;
  font-size:11px!important;
  line-height:1.1!important;
  font-weight:750!important;
  color:#647286!important;
}

#add-charge-dialog .product-edit-field input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:36px!important;
  margin:0!important;
  padding:0 9px!important;
  box-sizing:border-box!important;
  border:1px solid #d4dde8!important;
  border-radius:6px!important;
  background:#fff!important;
  font-size:13px!important;
  color:#25364d!important;
}

#add-charge-dialog .product-edit-description{
  margin-bottom:10px!important;
}

#add-charge-dialog .product-edit-row{
  display:grid!important;
  grid-template-columns:120px minmax(180px,260px)!important;
  gap:10px!important;
  align-items:end!important;
}

/* Vecchie classi delle versioni precedenti: sempre neutralizzate */
#add-charge-dialog .product-picker-description,
#add-charge-dialog .product-picker-qty,
#add-charge-dialog .product-picker-price{
  display:none!important;
}

/* Footer sempre ordinato */
#add-charge-dialog .product-picker-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
}

/* Desktop / tablet */
@media(max-width:820px){
  #add-charge-dialog .product-picker-topbar{
    grid-template-columns:1fr!important;
  }
  #add-charge-dialog .product-edit-row{
    grid-template-columns:1fr 1fr!important;
  }
}

/* Smartphone */
@media(max-width:560px){
  #add-charge-dialog.product-picker-dialog{
    width:calc(100vw - 16px)!important;
  }
  #add-charge-dialog .product-category-tabs{
    gap:6px!important;
    padding:7px 10px 10px!important;
  }
  #add-charge-dialog .product-category-tab{
    min-height:30px!important;
    padding:6px 10px!important;
    font-size:11px!important;
  }
  #add-charge-dialog .product-picker-groups{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  #add-charge-dialog .product-edit-row{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   MODALITA VOCE MANUALE - evita sovrapposizione col catalogo
   ========================================================= */

/* Quando si apre la voce manuale, il catalogo viene nascosto.
   Chromium/Qt WebEngine e browser moderni supportano :has(). */
#add-charge-dialog .product-picker-shell:has(.manual-charge-details[open]) #batch-product-form{
  display:none!important;
}

#add-charge-dialog .manual-charge-details{
  flex:0 0 auto!important;
  border-top:1px solid #e4eaf1!important;
  background:#fff!important;
  overflow:hidden!important;
}

#add-charge-dialog .manual-charge-details[open]{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  border-top:0!important;
  padding:0 16px 16px!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .manual-charge-details summary{
  cursor:pointer!important;
  padding:11px 16px!important;
  font-size:12px!important;
  font-weight:800!important;
  color:#50657d!important;
  list-style:none!important;
  user-select:none!important;
}

#add-charge-dialog .manual-charge-details summary::-webkit-details-marker{
  display:none!important;
}

#add-charge-dialog .manual-charge-details[open] summary{
  position:sticky!important;
  top:0!important;
  z-index:2!important;
  margin:0 -16px 14px!important;
  padding:12px 16px!important;
  background:#f6f9fc!important;
  border-bottom:1px solid #e1e8f0!important;
  color:#1f65ae!important;
}

#add-charge-dialog .manual-charge-details[open] summary::before{
  content:"← "!important;
}

#add-charge-dialog .manual-charge-form{
  display:block!important;
  padding:0!important;
  margin:0!important;
}

#add-charge-dialog .manual-charge-form .form-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:end!important;
}

#add-charge-dialog .manual-charge-form .field.full{
  grid-column:1 / -1!important;
}

#add-charge-dialog .manual-charge-form .field{
  min-width:0!important;
}

#add-charge-dialog .manual-charge-form input{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

#add-charge-dialog .manual-charge-form .form-actions{
  display:flex!important;
  justify-content:flex-end!important;
  margin-top:14px!important;
  padding:0!important;
}

@media(max-width:700px){
  #add-charge-dialog .manual-charge-form .form-grid{
    grid-template-columns:1fr!important;
  }
  #add-charge-dialog .manual-charge-form .field.full{
    grid-column:auto!important;
  }
}
