/* Reception: presentation tokens only. Business state and handlers stay in the PMS. */
:root,[data-ui-theme="light"]{
 color-scheme:light;
 --ui-bg:#f6f8fb;--ui-surface:#fff;--ui-soft:#f8fafc;--ui-border:#e3eaf1;
 --ui-text:#293e4f;--ui-muted:#607385;--ui-primary:#416a89;--ui-on-primary:#fff;--ui-selection:#eaf2f9;
 --ui-green:#e7f1e5;--ui-green-text:#35563b;--ui-amber:#fbebd6;--ui-amber-text:#775824;
 --ui-yellow:#fbf3d8;--ui-yellow-text:#755d20;--ui-blue:#e4eefb;--ui-blue-text:#31557d;
 --ui-purple:#eee8f8;--ui-purple-text:#614783;--ui-red:#fae7e6;--ui-red-text:#a1423e;
 --ui-grey:#edf0f4;--ui-overlay:#182c4659;--ui-shadow:#24384a18;
 --bg:var(--ui-bg);--panel:var(--ui-surface);--line:var(--ui-border);--border:var(--ui-border);
 --text:var(--ui-text);--muted:var(--ui-muted);--accent:var(--ui-primary);--accent2:var(--ui-selection);
 --danger:var(--ui-red-text);--a:var(--ui-surface);--b:var(--ui-soft);--d:var(--ui-selection);
}
:root[data-ui-theme="dark"]{
 color-scheme:dark;
 --ui-bg:#1b242d;--ui-surface:#25313c;--ui-soft:#2c3945;--ui-border:#435362;
 --ui-text:#e5edf4;--ui-muted:#b2c2cf;--ui-primary:#acd0e9;--ui-on-primary:#183447;--ui-selection:#304454;
 --ui-green:#304c39;--ui-green-text:#deefdf;--ui-amber:#57442e;--ui-amber-text:#f6dfba;
 --ui-yellow:#524b31;--ui-yellow-text:#f5e8b9;--ui-blue:#30465e;--ui-blue-text:#d7e9ff;
 --ui-purple:#443950;--ui-purple-text:#e4d6fc;--ui-red:#563638;--ui-red-text:#ffc5c2;
 --ui-grey:#394650;--ui-overlay:#070e18a6;--ui-shadow:#00000050;
}
html[data-ui-theme] body{background:var(--ui-bg)!important;color:var(--ui-text)!important;font-family:Inter,"Segoe UI",system-ui,sans-serif!important;font-size:13px;line-height:1.45}
html[data-ui-theme] :is(button,input,select,textarea){font-family:inherit!important}
html[data-ui-theme] :is(h1,h2,h3,h4,label,button,nav,.toolbar,.legend){text-transform:none!important;letter-spacing:normal!important}
html[data-ui-theme] :is(h1,h2,h3,h4){color:var(--ui-text)!important;font-weight:600!important}
html[data-ui-theme] h1{font-size:25px!important;letter-spacing:-.6px!important}
html[data-ui-theme] h2{font-size:18px!important}html[data-ui-theme] h3{font-size:15px!important}
html[data-ui-theme] body>header{height:auto!important;min-height:70px;background:var(--ui-surface)!important;border-bottom:1px solid var(--ui-border)!important;padding:14px 24px!important;gap:20px!important;flex-wrap:wrap;box-shadow:none!important;z-index:30}
html[data-ui-theme] .brand{display:flex;align-items:center;gap:10px;font-size:14px!important;white-space:nowrap;font-weight:600!important;color:var(--ui-text)!important;line-height:1.3}
html[data-ui-theme] .brand .brand-mark{display:grid;place-items:center;background:var(--ui-primary);color:var(--ui-on-primary)!important;width:35px;height:36px;border-radius:9px;font-size:14px;letter-spacing:0;font-weight:600}
html[data-ui-theme] .brand small{display:block;color:var(--ui-muted);font-size:11px;font-weight:400;margin-top:2px}
html[data-ui-theme] body>header nav{display:flex;gap:3px;flex-wrap:wrap;align-items:center;flex:1}
html[data-ui-theme] body>header nav .nav{background:transparent!important;color:var(--ui-muted)!important;border:0!important;border-radius:7px!important;padding:8px 10px!important;font-size:12px!important;font-weight:500!important;box-shadow:none!important}
html[data-ui-theme] body>header nav .nav.active{background:var(--ui-selection)!important;color:var(--ui-primary)!important}
html[data-ui-theme] body>header nav .nav:hover{background:var(--ui-soft)!important;color:var(--ui-text)!important}
html[data-ui-theme] #pmsStorageStatus{display:none}
html[data-ui-theme] #themeToggle{margin-left:auto;display:inline-flex;gap:7px;align-items:center;white-space:nowrap;font-size:12px!important;min-height:34px}
html[data-ui-theme] #themeToggle [aria-hidden]{font-size:17px;line-height:1}
html[data-ui-theme] main{padding:26px 28px!important;max-width:1900px;margin:auto}
html[data-ui-theme] .toolbar{background:transparent!important;gap:9px!important;margin-bottom:18px!important;min-height:36px;border:0!important;box-shadow:none!important}
html[data-ui-theme] .toolbar h1{margin:0 auto 0 0!important}
html[data-ui-theme] :is(.btn,.op-tab,.account-tab,.report-tab,.invoice-tab,.accounting-tab){border:1px solid var(--ui-border)!important;background:var(--ui-surface)!important;color:var(--ui-text)!important;border-radius:7px!important;box-shadow:none!important;padding:8px 12px!important;font-size:12px!important;font-weight:500!important;min-height:35px}
html[data-ui-theme] .btn:hover{background:var(--ui-selection)!important;border-color:var(--ui-border)!important}
html[data-ui-theme] :is(.btn.primary,.btn.active,.op-tab.active,.account-tab.active,.report-tab.active,.invoice-tab.active,.accounting-tab.active){background:var(--ui-primary)!important;border-color:var(--ui-primary)!important;color:var(--ui-on-primary)!important}
html[data-ui-theme] .btn.danger{color:var(--ui-red-text)!important}
html[data-ui-theme] button:disabled{opacity:.5;cursor:not-allowed}
html[data-ui-theme] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea){background:var(--ui-surface)!important;color:var(--ui-text)!important;border:1px solid var(--ui-border)!important;border-radius:6px;accent-color:var(--ui-primary);font-size:13px}
html[data-ui-theme] :is(input,textarea)::placeholder{color:var(--ui-muted)!important;opacity:.85}
html[data-ui-theme] :is(input[type="checkbox"],input[type="radio"]){accent-color:var(--ui-primary)}
html[data-ui-theme] :is(input,select,textarea):focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}
html[data-ui-theme] button:focus-visible{outline:2px solid var(--ui-primary)!important;outline-offset:3px}
html[data-ui-theme] :is(.card,.op-panel,.op-card,.kpi,.stat,.modal,.member-card,.fiscal-panel,.invoice-panel,.summary-grid>div){background:var(--ui-surface)!important;color:var(--ui-text)!important;border-color:var(--ui-border)!important;box-shadow:none!important;border-radius:10px!important}
html[data-ui-theme] :is(.card,.op-panel){padding:22px!important}
html[data-ui-theme] :is(.hint,.mini-note,.muted,.sub,.field label,.kpi small,.op-card .k){color:var(--ui-muted)!important}
html[data-ui-theme] :is(.badge,.state){background:var(--ui-soft)!important;color:var(--ui-muted)!important;border-color:var(--ui-border)!important;border-radius:5px}
html[data-ui-theme] :is(.state.ok,.badge.ok){background:var(--ui-green)!important;color:var(--ui-green-text)!important}
html[data-ui-theme] :is(.notice,.state.warn){background:var(--ui-yellow)!important;color:var(--ui-yellow-text)!important;border-color:var(--ui-border)!important}
html[data-ui-theme] :is(.anag-row,.notif-row){background:var(--ui-surface)!important;border-color:var(--ui-border)!important;border-radius:8px;padding:13px!important}
html[data-ui-theme] :is(.config-table,.op-table,.report-table,.rev135-table) :is(th,td){border-color:var(--ui-border)!important;color:var(--ui-text)}
html[data-ui-theme] :is(.config-table,.op-table,.report-table) th{background:var(--ui-soft)!important;color:var(--ui-muted)!important;font-weight:500!important}
html[data-ui-theme] .table-wrap{background:var(--ui-surface)!important;border:1px solid var(--ui-border)!important;border-radius:10px!important;box-shadow:none!important}
html[data-ui-theme] #calendar{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}
html[data-ui-theme] #calendar :is(th,td){border-color:var(--ui-border)!important}
html[data-ui-theme] #calendar th{background:var(--ui-surface)!important;color:var(--ui-muted)!important;font-size:12px!important;font-weight:500!important;height:60px!important}
html[data-ui-theme] #calendar :is(.roomhead,.room-cell){background:var(--ui-surface)!important;color:var(--ui-text)!important;padding-left:15px!important;font-weight:500!important}
html[data-ui-theme] #calendar .room-cell small{color:var(--ui-muted)!important;font-size:11px!important;font-weight:400!important}
html[data-ui-theme] #calendar .section-row td{background:var(--ui-soft)!important;color:var(--ui-muted)!important;font-size:11px!important;font-weight:500!important;height:31px!important;padding-left:15px!important}
html[data-ui-theme] #calendar :is(.slot,.empty){background:var(--ui-surface)!important}
html[data-ui-theme] #calendar .slot:hover{background:var(--ui-selection)!important}
html[data-ui-theme] #calendar :is(.day.today,.today){background:var(--ui-selection)!important}
html[data-ui-theme] #calendar .res{box-shadow:none!important;border:0!important;border-radius:5px!important;font-size:12px!important;font-weight:500!important;color:var(--ui-green-text)!important;background:var(--ui-green)!important}
html[data-ui-theme] #calendar .res.status-confirmed{background:var(--ui-green)!important;color:var(--ui-green-text)!important}
html[data-ui-theme] #calendar .res.status-option{background:var(--ui-yellow)!important;color:var(--ui-yellow-text)!important}
html[data-ui-theme] #calendar :is(.res.status-checkin,.res.status-pending){background:var(--ui-amber)!important;color:var(--ui-amber-text)!important}
html[data-ui-theme] #calendar .res.status-checkout{background:var(--ui-grey)!important;color:var(--ui-text)!important}
html[data-ui-theme] #calendar .res.status-cancelled{background:var(--ui-red)!important;color:var(--ui-red-text)!important}
html[data-ui-theme] #calendar .res.channel-direct{background:var(--ui-green)!important;color:var(--ui-green-text)!important}
html[data-ui-theme] #calendar .res.channel-booking{background:var(--ui-blue)!important;color:var(--ui-blue-text)!important}
html[data-ui-theme] #calendar .res.channel-airbnb{background:var(--ui-purple)!important;color:var(--ui-purple-text)!important}
html[data-ui-theme] #calendar .res.channel-expedia{background:var(--ui-yellow)!important;color:var(--ui-yellow-text)!important}
html[data-ui-theme] #calendar .res.channel-other{background:var(--ui-grey)!important;color:var(--ui-text)!important}
html[data-ui-theme] .range{border:1px solid var(--ui-border)!important;background:var(--ui-surface)!important;border-radius:7px!important;padding:3px!important}
html[data-ui-theme] .range button{background:transparent!important;color:var(--ui-muted)!important;border:0!important;border-radius:5px!important;padding:6px 9px!important;font-size:12px!important;font-weight:400!important}
html[data-ui-theme] .range button.active{background:var(--ui-selection)!important;color:var(--ui-primary)!important;font-weight:500!important}
html[data-ui-theme] #periodLabel{color:var(--ui-text)!important;font-size:14px!important;font-weight:500}
html[data-ui-theme] .legend{color:var(--ui-muted)!important;font-size:11px!important;gap:16px!important;margin-top:15px!important}
html[data-ui-theme] .legend .dot{border:0!important;background:var(--ui-selection)!important}
html[data-ui-theme] .legend span:nth-child(2) .dot{background:var(--ui-grey)!important}
html[data-ui-theme] .legend span:nth-child(3) .dot{background:var(--ui-yellow)!important}
html[data-ui-theme] .modal-back{background:var(--ui-overlay)!important;backdrop-filter:blur(2px)}
html[data-ui-theme] .modal{border:1px solid var(--ui-border)!important;box-shadow:0 18px 65px var(--ui-shadow)!important;padding:25px!important}
html[data-ui-theme] #modalBack{justify-content:flex-end!important;align-items:stretch!important;padding:14px}
html[data-ui-theme] #modalBack>.modal{width:min(1020px,calc(100vw - 28px))!important;max-height:calc(100dvh - 28px)!important;margin:0;border-radius:12px!important}
html[data-ui-theme] :is(.member-card,.fiscal-panel){background:var(--ui-soft)!important;border:1px solid var(--ui-border)!important}
html[data-ui-theme] .section-title{color:var(--ui-text)!important;border-color:var(--ui-border)!important;font-size:13px!important;font-weight:600!important}
html[data-ui-theme] :is(.rev135-overview,.rev135-value,.rev135-table td,.rev135-table th){border-color:var(--ui-border)!important}
html[data-ui-theme] :is(.rev135-value:first-child,.rev135-footer,.rev135-total){background:var(--ui-selection)!important;color:var(--ui-text)!important}
html[data-ui-theme] :is(.rev135-value span,.rev135-table thead th){color:var(--ui-muted)!important}
html[data-ui-theme] #toast{background:var(--ui-primary)!important;color:var(--ui-on-primary)!important;border-radius:8px;box-shadow:0 5px 22px var(--ui-shadow)}
@media(min-width:1050px){
 html[data-ui-theme] #planning>.toolbar{display:grid!important;grid-template-columns:35px 60px 35px minmax(170px,1fr) auto auto auto;row-gap:13px!important;margin-bottom:20px!important}
 html[data-ui-theme] #planning>.toolbar>h1{grid-row:1;grid-column:1/6;padding-bottom:5px}
 html[data-ui-theme] #newGroupBooking{grid-row:1;grid-column:6;margin:0!important}
 html[data-ui-theme] #newBooking{grid-row:1;grid-column:7}
 html[data-ui-theme] #prev{grid-row:2;grid-column:1}html[data-ui-theme] #today{grid-row:2;grid-column:2}html[data-ui-theme] #next{grid-row:2;grid-column:3}
 html[data-ui-theme] #periodLabel{grid-row:2;grid-column:4;min-width:0!important}
 html[data-ui-theme] #planning>.toolbar>.range{grid-row:2;grid-column:6;justify-self:end;white-space:nowrap}
 html[data-ui-theme] #planning>.toolbar>div:has(#tableauGoDate){grid-row:2;grid-column:5;justify-self:start;white-space:nowrap}
 html[data-ui-theme] #colorMode{grid-row:2;grid-column:7;justify-self:end}
}
@media(max-width:1049px){html[data-ui-theme] body>header{gap:13px!important;padding:13px 18px!important}html[data-ui-theme] body>header nav{order:3;flex-basis:100%}html[data-ui-theme] main{padding:20px!important}html[data-ui-theme] #planning>.toolbar>h1{flex-basis:100%;margin-bottom:5px!important}}
@media(max-width:600px){html[data-ui-theme] main{padding:14px!important}html[data-ui-theme] body>header nav .nav{font-size:12px!important;padding:7px 9px!important}html[data-ui-theme] :is(.card,.op-panel){padding:15px!important}html[data-ui-theme] .modal{padding:17px!important}html[data-ui-theme] #newGroupBooking{margin-left:0!important}html[data-ui-theme] #planning>.toolbar .range{flex-wrap:wrap}html[data-ui-theme] #modalBack{padding:7px}html[data-ui-theme] #modalBack>.modal{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important}}
@media print{html[data-ui-theme] body{background:#fff!important;color:#000!important}#themeToggle{display:none!important}}

/* Normalize the former all-caps skin without changing field labels or data. */
html[data-ui-theme] :is(body,select,option,input,textarea,.brand,.brand div,.brand small,.section-title,.state,.badge,.mini-note,.hint,.room-cell,.room-cell small){text-transform:none!important;font-variant:normal!important}
html[data-ui-theme] #calendar tr:not(.section-row)>td{height:43px!important}
html[data-ui-theme] #calendar .room-cell{font-weight:500!important}
html[data-ui-theme] .connected-user{display:flex;flex-direction:column;gap:1px;color:var(--ui-text);font-size:12px;max-width:180px;overflow-wrap:anywhere}
html[data-ui-theme] .connected-user strong{font-weight:600}html[data-ui-theme] .connected-user small{font-size:11px;color:var(--ui-muted)}
html[data-ui-theme] body>header{gap:13px!important}html[data-ui-theme] #logoutButton{white-space:nowrap}
html[data-user-role="concierge"] .nav:not([data-view="planning"]):not([data-view="anagrafiche"]),html[data-user-role="concierge"] :is(#users,#notifiche,#revenue,#accounting,#operativita,#collaudo,#config,#reports,#openAccountFromBooking,#pmsAccountContext,#invoiceModalBack){display:none!important}
html[data-ui-theme] .users-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:18px;align-items:start}
html[data-ui-theme] .users-table-wrap{overflow-x:auto}html[data-ui-theme] .users-table-wrap table{min-width:530px}
html[data-ui-theme] .managed-user-form{display:grid;gap:9px}html[data-ui-theme] .managed-user-form label{color:var(--ui-muted);font-size:12px}
html[data-ui-theme] .managed-user-form :is(input:not([type="checkbox"]),select){width:100%;padding:10px}
html[data-ui-theme] .managed-active{display:flex;align-items:center;gap:7px;padding:9px 0}
html[data-ui-theme] .managed-user-form .hint{margin:0 0 4px}html[data-ui-theme] #usersMessage{color:var(--ui-muted);font-size:13px;overflow-wrap:anywhere}
html[data-ui-theme] body.login-page{display:grid;place-items:center;min-height:100svh;margin:0}
html[data-ui-theme] .login-shell{width:min(440px,100%);padding:25px!important}
html[data-ui-theme] .login-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px;font-weight:600;font-size:18px}
html[data-ui-theme] .login-brand .brand-mark{display:grid;place-items:center;width:42px;height:44px;border-radius:10px;background:var(--ui-primary);color:var(--ui-on-primary);font-size:17px}
html[data-ui-theme] .login-brand small{display:block;font-size:12px;color:var(--ui-muted);font-weight:400}
html[data-ui-theme] .login-card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:12px;padding:28px}
html[data-ui-theme] .login-card h1{font-size:24px!important;margin:0 0 10px}html[data-ui-theme] .login-card :is(p,small){color:var(--ui-muted);font-size:13px}
html[data-ui-theme] .login-card *{box-sizing:border-box}
html[data-ui-theme] #loginForm{display:grid;gap:10px;margin:23px 0 0;min-width:0}html[data-ui-theme] #loginUserid{padding:11px;width:100%;min-width:0;font-size:16px}
html[data-ui-theme] #loginSubmit{width:100%}
html[data-ui-theme] #loginSubmit{margin-top:6px}html[data-ui-theme] #loginMessage{min-height:20px}
@media(max-width:1200px){html[data-ui-theme] body>header nav{order:3;flex-basis:100%}}
@media(max-width:900px){html[data-ui-theme] .users-layout{grid-template-columns:1fr}}
@media(max-width:500px){html[data-ui-theme] .connected-user{flex:1;max-width:none}html[data-ui-theme] #themeToggle{order:2;margin-left:0}html[data-ui-theme] #logoutButton{order:2}html[data-ui-theme] .brand{flex:1}}

html[data-user-role="concierge"] #reportSection{display:none!important}

html[data-ui-theme] #users .config-table :is(th,td,code){text-transform:none!important}
html[data-ui-theme] .user-actions{display:flex;gap:7px;flex-wrap:wrap}

/* Alpine symbol: mountain ridge, welcoming doorway and a warm sun. */
html[data-ui-theme] :is(.brand,.login-brand) .brand-mark{background:transparent;color:var(--ui-primary)!important;flex-shrink:0;width:40px;height:40px;border-radius:0}
html[data-ui-theme] .brand-mark svg{display:block;width:100%;height:100%;overflow:visible}
html[data-ui-theme] .login-brand .brand-mark{width:46px;height:46px}

/* Keep the footer at the bottom of short pages, after content on long pages. */
html[data-ui-theme] body:has(> #privacySecurityPanel){display:flex;flex-direction:column;min-height:100dvh}
html[data-ui-theme] body:has(> #privacySecurityPanel)>header{flex-shrink:0}
html[data-ui-theme] body:has(> #privacySecurityPanel)>main{flex:1 0 auto;width:100%;margin:0 auto}
html[data-ui-theme] body>#privacySecurityPanel{order:1;flex-shrink:0;margin-top:auto}
html[data-ui-theme] .admin-report .report-shell{padding:0}
html[data-user-role="concierge"] .admin-report{display:none!important}

/* Keep the selected client directory exclusive, including grid-based lists. */
html[data-ui-theme] #anagrafiche [hidden]{display:none!important}

/* Tourist tax uses the same summary and table rhythm as Revenue. */
html[data-ui-theme] #report-tassa .tax-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
html[data-ui-theme] #report-tassa h2{margin:0}
html[data-ui-theme] #report-tassa .tax-summary{padding:24px!important}
html[data-ui-theme] #report-tassa .tax-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:24px 0;border:1px solid var(--ui-border);border-radius:12px;overflow:hidden}
html[data-ui-theme] #report-tassa .tax-value{padding:20px;border-right:1px solid var(--ui-border)}
html[data-ui-theme] #report-tassa .tax-value:first-child{background:var(--ui-selection)}
html[data-ui-theme] #report-tassa .tax-value:last-child{border-right:0}
html[data-ui-theme] #report-tassa .tax-value span{display:block;color:var(--ui-muted);font-size:13px;margin-bottom:8px}
html[data-ui-theme] #report-tassa .tax-value strong{font-size:23px;font-variant-numeric:tabular-nums;white-space:nowrap}
html[data-ui-theme] #report-tassa :is(.tax-value,.tax-table,.hint,.tax-alert,.tax-alert-sub,.report-status){text-transform:none!important;letter-spacing:normal}
html[data-ui-theme] #report-tassa .tax-table-wrap{overflow-x:auto;margin-top:16px}
html[data-ui-theme] #report-tassa .tax-table{width:100%;border-collapse:collapse;font-size:13px}
html[data-ui-theme] #report-tassa .tax-table :is(th,td){padding:14px 16px;border-bottom:1px solid var(--ui-border);text-align:right;font-variant-numeric:tabular-nums}
html[data-ui-theme] #report-tassa .tax-table th:first-child{text-align:left}
html[data-ui-theme] #report-tassa .tax-table th{font-weight:500}
html[data-ui-theme] #report-tassa .tax-table thead th{color:var(--ui-muted);font-size:12px;font-weight:600;white-space:nowrap}
html[data-ui-theme] #report-tassa .tax-total{font-weight:700;background:var(--ui-selection)}
html[data-ui-theme] #report-tassa .tax-total th{font-weight:700}
html[data-ui-theme] #report-tassa .tax-deadline-alert{margin:18px 0}
html[data-ui-theme] #report-tassa .tax-alert{margin:0;font-size:13px}
html[data-ui-theme] #report-tassa .tax-alert-sub{font-size:12px}
html[data-ui-theme] #report-tassa .report-status{font-size:11px;font-weight:500}
html[data-ui-theme] #report-tassa .tax-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
html[data-ui-theme] #report-tassa .tax-rules{margin-top:20px}
html[data-ui-theme] #report-tassa .tax-rules summary{cursor:pointer;font-size:14px;font-weight:600;text-transform:none}
html[data-ui-theme] #report-tassa .tax-facts td{white-space:normal}
html[data-ui-theme] #report-tassa .report-period select{font-size:12px;font-weight:500;min-height:35px;padding:8px 12px}
@media(max-width:900px){html[data-ui-theme] #report-tassa .tax-details-grid{grid-template-columns:1fr}}
@media(max-width:760px){html[data-ui-theme] #report-tassa .tax-overview{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-ui-theme] #report-tassa .tax-value{border-bottom:1px solid var(--ui-border)}html[data-ui-theme] #report-tassa .tax-value:nth-child(2n){border-right:0}html[data-ui-theme] #report-tassa .tax-value:nth-last-child(-n+2){border-bottom:0}html[data-ui-theme] #report-tassa .tax-value strong{font-size:19px}}
@media print{#report-tassa .tax-rules>summary{display:none}#report-tassa .tax-rules>*:not(summary){display:block!important}#report-tassa .tax-details-grid{display:block}#report-tassa .tax-details-grid>.card{break-inside:avoid;margin-top:12px}#report-tassa .tax-table-wrap{overflow:visible}}

/* Revenue presentation shared by ISTAT, VAT and operational views. */
html[data-ui-theme] .revenue-report .report-card{margin-bottom:18px;overflow:hidden}
html[data-ui-theme] .revenue-report .report-card-head{padding:0;background:transparent;border:0;align-items:flex-start;flex-wrap:wrap}
html[data-ui-theme] .revenue-report .report-card-title{margin:0;font-size:18px;font-weight:600}
html[data-ui-theme] .revenue-report .report-card-sub{font-size:13px;font-weight:400;line-height:1.5;margin-top:8px;color:var(--ui-muted)}
html[data-ui-theme] .revenue-report .report-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:24px 0;border:1px solid var(--ui-border);border-radius:12px;overflow:hidden}
html[data-ui-theme] .revenue-report .report-kpi{border:0;border-right:1px solid var(--ui-border);border-radius:0;padding:20px;background:var(--ui-surface)}
html[data-ui-theme] .revenue-report .report-kpi:first-child{background:var(--ui-selection)}
html[data-ui-theme] .revenue-report .report-kpi:last-child{border-right:0}
html[data-ui-theme] .revenue-report .report-kpi-label{font-size:13px;font-weight:400;letter-spacing:normal;color:var(--ui-muted);margin-bottom:8px}
html[data-ui-theme] .revenue-report .report-kpi-value{font-size:23px;font-weight:700;margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
html[data-ui-theme] .revenue-report :is(.report-kpi-label,.report-card-sub,.report-table){text-transform:none!important;letter-spacing:normal}
html[data-ui-theme] .revenue-report .report-period select{font-size:12px;font-weight:500;padding:8px 12px;min-height:35px}
html[data-ui-theme] .revenue-table-wrap{overflow-x:auto;margin-top:18px}
html[data-ui-theme] .revenue-report .report-table{font-size:13px}
html[data-ui-theme] .revenue-report .report-table :is(th,td){padding:14px 16px;border-color:var(--ui-border);font-variant-numeric:tabular-nums;white-space:nowrap}
html[data-ui-theme] .revenue-report .report-table th{background:transparent!important;font-size:12px;font-weight:600!important}
html[data-ui-theme] .revenue-report .report-total{background:var(--ui-selection);font-weight:700}
html[data-ui-theme] #report-istat .report-table :is(th,td):not(:first-child){text-align:right}
html[data-ui-theme] #report-iva .report-card:first-child .report-table :is(th,td):not(:first-child){text-align:right}
html[data-ui-theme] #operativita .op-summary{padding:24px!important;margin-bottom:20px}
html[data-ui-theme] #operativita .op-summary h2{margin:0}
html[data-ui-theme] #operativita #opKpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--ui-border);border-radius:12px;overflow:hidden;margin:24px 0 0}
html[data-ui-theme] #operativita #opKpis .op-card{padding:20px;border:0!important;border-right:1px solid var(--ui-border)!important;border-radius:0!important}
html[data-ui-theme] #operativita #opKpis .op-card:first-child{background:var(--ui-selection)!important}
html[data-ui-theme] #operativita #opKpis .op-card:last-child{border-right:0!important}
html[data-ui-theme] #operativita #opKpis .k{font-size:13px;font-weight:400;margin-bottom:8px;text-transform:none}
html[data-ui-theme] #operativita #opKpis .v{font-size:23px;font-weight:700;margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
html[data-ui-theme] #operativita .op-tabs{gap:6px;margin:0 0 20px}
html[data-ui-theme] #operativita .op-panel{margin-bottom:18px!important;overflow-x:auto}
html[data-ui-theme] #operativita .op-panel h3{font-size:18px!important;margin-bottom:18px!important}
html[data-ui-theme] #operativita .op-table :is(th,td){padding:14px 16px;border-color:var(--ui-border);font-variant-numeric:tabular-nums}
html[data-ui-theme] #operativita .op-table th{background:transparent!important;font-size:12px;font-weight:600!important;white-space:nowrap}
html[data-ui-theme] #operativita :is(.op-table,.mini-note,.field-inline,.form-grid){text-transform:none!important;letter-spacing:normal}
html[data-ui-theme] #operativita .form-grid{gap:16px;margin-bottom:18px}
html[data-ui-theme] #operativita .form-grid label{display:grid;gap:7px;font-size:12px;color:var(--ui-muted)}
html[data-ui-theme] #operativita .field-inline{min-height:35px;padding:9px 10px}
html[data-ui-theme] #operativita .mini-note{font-size:13px;line-height:1.6}
@media(max-width:900px){html[data-ui-theme] #operativita #opKpis{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-ui-theme] #operativita #opKpis .op-card{border-bottom:1px solid var(--ui-border)!important}html[data-ui-theme] #operativita #opKpis .op-card:nth-child(2n){border-right:0!important}html[data-ui-theme] #operativita #opKpis .op-card:last-child{grid-column:1/-1;border-bottom:0!important}}
@media(max-width:760px){html[data-ui-theme] .revenue-report .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-ui-theme] .revenue-report .report-kpi{border-bottom:1px solid var(--ui-border)}html[data-ui-theme] .revenue-report .report-kpi:nth-child(2n){border-right:0}html[data-ui-theme] .revenue-report .report-kpi:nth-last-child(-n+2){border-bottom:0}html[data-ui-theme] .revenue-report .report-kpi-value,html[data-ui-theme] #operativita #opKpis .v{font-size:19px}}
@media print{.revenue-report .revenue-table-wrap,#operativita .op-panel{overflow:visible}#operativita .op-tabs{display:none}.revenue-report .report-card{break-inside:avoid}}

html[data-ui-theme] #operativita .op-table :is(th,td){text-transform:none!important;letter-spacing:normal}

/* RF and FT: the full row communicates whether a balance is still due. */
html[data-ui-theme] :is(#pmsRFAccounts,#pmsFTAccounts) tr.pms-account-paid>td{background:var(--ui-green)!important;color:var(--ui-green-text)!important}
html[data-ui-theme] :is(#pmsRFAccounts,#pmsFTAccounts) tr.pms-account-unpaid>td{background:var(--ui-red)!important;color:var(--ui-red-text)!important}
html[data-ui-theme] :is(#pmsRFAccounts,#pmsFTAccounts) tr.pms-account-paid>td:first-child{border-left:4px solid var(--ui-green-text)}
html[data-ui-theme] :is(#pmsRFAccounts,#pmsFTAccounts) tr.pms-account-unpaid>td:first-child{border-left:4px solid var(--ui-red-text)}
html[data-ui-theme] :is(#pmsRFAccounts,#pmsFTAccounts) tr:is(.pms-account-paid,.pms-account-unpaid)>td small{color:inherit}

html[data-ui-theme] .account-color-legend{margin:16px 0 10px}

html[data-ui-theme] .account-overview-heading{flex-wrap:wrap;align-items:flex-start}
html[data-ui-theme] .account-overview-heading>h2{flex-basis:100%;margin:0}

/* Shared company lookup, in booking fiscal details and guest accounts. */
html[data-ui-theme] .company-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:14px;padding:16px;margin:14px 0;background:var(--ui-soft);border:1px solid var(--ui-border);border-radius:10px}
html[data-ui-theme] .company-picker[hidden]{display:none!important}
html[data-ui-theme] .company-picker .company-picker-field{display:flex;flex-direction:column;gap:7px;min-width:0;margin:0;color:var(--ui-muted);font-size:12px;font-weight:400;text-transform:none;letter-spacing:normal}
html[data-ui-theme] .company-picker :is(.company-find,.company-select){box-sizing:border-box;width:100%;min-width:0;min-height:38px;margin:0;padding:9px 10px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font-size:13px;line-height:1.4;text-transform:none}
html[data-ui-theme] .company-picker .company-use{min-height:38px;white-space:nowrap;margin:0}
html[data-ui-theme] .company-picker :is(.company-find,.company-select):focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}
@media(max-width:760px){html[data-ui-theme] .company-picker{grid-template-columns:minmax(0,1fr)}html[data-ui-theme] .company-picker .company-use{justify-self:start}}

/* Editable account summary: consistent field sizing and currency alignment. */
html[data-ui-theme] #pmsAccountBack .ac-lines-wrap{border:1px solid var(--ui-border);border-radius:10px;overflow:hidden;background:var(--ui-surface)}
html[data-ui-theme] #pmsAccountBack .ac-lines{table-layout:fixed;width:100%;border-collapse:collapse}
html[data-ui-theme] #pmsAccountBack .ac-lines :is(th,td){padding:16px;text-transform:none;letter-spacing:normal}
html[data-ui-theme] #pmsAccountBack .ac-lines th{background:var(--ui-soft);font-size:12px;font-weight:500;color:var(--ui-muted);border-bottom:1px solid var(--ui-border)}
html[data-ui-theme] #pmsAccountBack .ac-lines th:first-child{width:48%}
html[data-ui-theme] #pmsAccountBack .ac-lines th:nth-child(2){width:30%}
html[data-ui-theme] #pmsAccountBack .ac-lines th:last-child{width:22%}
html[data-ui-theme] #pmsAccountBack .ac-lines td{vertical-align:middle;border-bottom:1px solid var(--ui-border);font-size:14px;font-weight:400}
html[data-ui-theme] #pmsAccountBack .ac-lines tr:last-child td{border-bottom:0}
html[data-ui-theme] #pmsAccountBack .ac-lines td:is(:nth-child(2),:last-child){width:auto}
html[data-ui-theme] #pmsAccountBack .ac-line-name{display:block;font-size:14px;font-weight:500;color:var(--ui-text);margin:0}
html[data-ui-theme] #pmsAccountBack .ac-money-field{display:flex;align-items:center;gap:9px;justify-content:flex-end}
html[data-ui-theme] #pmsAccountBack .ac-money-field>span{color:var(--ui-muted);font-size:14px}
html[data-ui-theme] #pmsAccountBack .ac-lines :is(input,select){box-sizing:border-box;min-height:40px;padding:10px 11px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font-size:14px;font-weight:400;line-height:1.3;margin:0}
html[data-ui-theme] #pmsAccountBack .ac-lines input[type="number"]{width:100%;min-width:0;text-align:right;font-variant-numeric:tabular-nums}
html[data-ui-theme] #pmsAccountBack #acExtraDescription{display:block;width:100%;text-align:left;font-size:13px;margin-top:9px}
html[data-ui-theme] #pmsAccountBack #acExtraTotalVat{max-width:100%;width:100%;text-align:left}
html[data-ui-theme] #pmsAccountBack .ac-vat-badge{display:inline-block;padding:7px 11px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-soft);font-size:13px;color:var(--ui-muted)}
html[data-ui-theme] #pmsAccountBack .ac-vat-exempt{display:block;font-size:13px;color:var(--ui-muted);font-weight:400;line-height:1.5}
html[data-ui-theme] #pmsAccountBack .ac-vat-exempt small{display:block;font-size:11px}
html[data-ui-theme] #pmsAccountBack .ac-lines :is(input,select):focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}
@media(max-width:560px){
 html[data-ui-theme] #pmsAccountBack .ac-lines thead{display:none}
 html[data-ui-theme] #pmsAccountBack .ac-lines :is(tbody,tr,td){display:block;width:auto}
 html[data-ui-theme] #pmsAccountBack .ac-lines tr{display:grid;grid-template-columns:minmax(0,1fr) 105px;border-bottom:1px solid var(--ui-border);padding:14px;gap:14px}
 html[data-ui-theme] #pmsAccountBack .ac-lines tr:last-child{border-bottom:0}
 html[data-ui-theme] #pmsAccountBack .ac-lines td{border:0;padding:0;text-align:left}
 html[data-ui-theme] #pmsAccountBack .ac-lines td:first-child{grid-column:1/-1}
 html[data-ui-theme] #pmsAccountBack .ac-lines td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--ui-muted);margin-bottom:7px}
 html[data-ui-theme] #pmsAccountBack .ac-money-field{justify-content:start}
}

/* Room inventory: explicit editing, no placeholder records or inline autosave. */
html[data-ui-theme] #config .rooms-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;margin-bottom:22px}
html[data-ui-theme] #config .rooms-layout:has(>.room-editor:not([hidden])){grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}
html[data-ui-theme] #config [hidden]{display:none!important}
html[data-ui-theme] #config .rooms-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}
html[data-ui-theme] #config .rooms-table-wrap{overflow-x:auto}
html[data-ui-theme] #config .rooms-table-wrap table{width:100%;min-width:620px}
html[data-ui-theme] #config .rooms-table-wrap :is(th,td){padding:14px 12px;text-transform:none!important;letter-spacing:normal}
html[data-ui-theme] #config .rooms-inventory h2,html[data-ui-theme] #config .room-editor h2{margin-top:0}
html[data-ui-theme] #config .room-row-actions{display:flex;gap:6px;flex-wrap:wrap}
html[data-ui-theme] #config .room-row-actions button:disabled{opacity:.45;cursor:not-allowed}
html[data-ui-theme] #config #roomConfigForm{display:grid;gap:14px}
html[data-ui-theme] #config #roomConfigForm .field{display:grid;gap:7px}
html[data-ui-theme] #config #roomConfigForm :is(input,select){width:100%;box-sizing:border-box;min-height:39px;padding:10px;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font-size:14px}
html[data-ui-theme] #config #roomConfigForm label{font-size:12px;color:var(--ui-muted)}
html[data-ui-theme] #config #roomConfigMessage{color:var(--ui-red-text);margin:0}
html[data-ui-theme] #config .room-form-actions{display:flex;gap:8px;flex-wrap:wrap}
html[data-ui-theme] #config .config-advanced{margin-top:22px}
html[data-ui-theme] #config .config-advanced>summary{cursor:pointer;padding:16px 0;font-size:16px;font-weight:600;text-transform:none}
html[data-ui-theme] #config .config-advanced>.card{margin-bottom:18px}
@media(max-width:1100px){html[data-ui-theme] #config .rooms-layout:has(>.room-editor:not([hidden])){grid-template-columns:minmax(0,1fr)}html[data-ui-theme] #config .room-editor{grid-row:1}}

/* Minimal vector menu icons inherit the active light/dark theme. */
html[data-ui-theme] body>header nav .nav{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;white-space:nowrap}
html[data-ui-theme] body>header nav .nav-icon{display:block;flex:0 0 16px;width:16px;height:16px;overflow:visible;pointer-events:none}
html[data-ui-theme] body>header nav .nav-label{line-height:1.35;pointer-events:none}

/* Payment fields share the dimensions of the other account controls. */
html[data-ui-theme] #pmsAccountBack .ac-payment-line{padding:16px;border:1px solid var(--ui-border);border-radius:10px;margin:14px 0;background:var(--ui-soft)}
html[data-ui-theme] #pmsAccountBack .ac-payment-line-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
html[data-ui-theme] #pmsAccountBack :is(.ac-payment-amount-field,.ac-payment-target-field){display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;color:var(--ui-muted)}
html[data-ui-theme] #pmsAccountBack .ac-payment-target-field{margin-top:14px}
html[data-ui-theme] #pmsAccountBack .ac-payment-target-field>label{margin:0;font-size:12px}
html[data-ui-theme] #pmsAccountBack :is([data-payment-amount],#acPaymentTarget){box-sizing:border-box;display:block;width:100%;min-width:0;min-height:40px;padding:10px 11px;margin:0;border:1px solid var(--ui-border);border-radius:7px;background:var(--ui-surface);color:var(--ui-text);font-size:14px;line-height:1.3}
html[data-ui-theme] #pmsAccountBack [data-payment-amount]{text-align:right;font-variant-numeric:tabular-nums}
html[data-ui-theme] #pmsAccountBack [data-remove-line]{min-width:40px;min-height:40px}
html[data-ui-theme] #pmsAccountBack :is([data-payment-amount],#acPaymentTarget):focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}

html[data-ui-theme] #revenue .rev-month-filter{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
html[data-ui-theme] #revenue .rev-month-filter label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ui-muted)}
html[data-ui-theme] #revenue .rev-month-filter select{font-size:12px;font-weight:500;min-height:35px;padding:8px 12px}

html[data-ui-theme] #revenue .revenue-metric-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
html[data-ui-theme] #revenue .revenue-metric-switch .btn{white-space:nowrap}

html[data-ui-theme] :is(#loginForm,#activateForm,#requiredPasswordForm,#recoveryForm){display:grid;gap:10px;min-width:0;margin-top:23px}
html[data-ui-theme] :is(#loginForm,#activateForm,#requiredPasswordForm,#recoveryForm)[hidden]{display:none!important}
html[data-ui-theme] :is(#loginForm,#activateForm,#requiredPasswordForm,#recoveryForm) input{width:100%;min-width:0;min-height:44px;padding:11px;font-size:16px;box-sizing:border-box}
html[data-ui-theme] .password-forgot{display:block;margin:16px auto 0;padding:4px;border:0;background:transparent;color:var(--ui-primary);text-decoration:underline;cursor:pointer}
#forgotPasswordLink[hidden]{display:none!important}
html[data-ui-theme] .password-dialog{width:min(440px,calc(100vw - 32px));box-sizing:border-box;padding:26px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface);color:var(--ui-text)}
html[data-ui-theme] .password-dialog::backdrop{background:rgb(0 0 0 / .45)}
html[data-ui-theme] .password-dialog form{display:grid;gap:10px}
html[data-ui-theme] .password-dialog input{width:100%;min-height:44px;box-sizing:border-box}
html[data-ui-theme] .password-dialog p{font-size:13px;color:var(--ui-muted)}
.user-activation-link{display:grid;gap:8px;margin:12px 0}.user-activation-link input{width:100%;box-sizing:border-box}
/* Incassi per intervallo: importi lordi, scorporo e netto. */
#cashPeriod{margin-top:18px;margin-bottom:18px}#cashPeriod h2{margin-bottom:16px}#cashPeriodForm label{display:flex;flex-direction:column;gap:6px}#cashPeriodForm{align-items:end;gap:12px}.cash-period-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;margin-bottom:12px}#cashPeriod details{margin-top:16px}#cashPeriod summary{cursor:pointer} @media(max-width:760px){.cash-period-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

#roomsManager[hidden],#vitSync [hidden]{display:none!important}#roomsOverview{margin-bottom:18px}#roomsManager{margin-bottom:22px}#vitSync{margin-top:18px;margin-bottom:18px}#vitSync .toolbar{align-items:end;gap:12px}#vitSync .toolbar label{display:flex;flex-direction:column;gap:6px}#vitSync .summary-grid{margin-top:16px;margin-bottom:16px}#vitSync details{margin-top:16px}#vitSync summary{cursor:pointer}#vitSync input[type=checkbox]{width:auto}

#newUserPasswordFields{display:grid;gap:6px}#newUserPasswordFields[hidden],#forgotPasswordHelp[hidden]{display:none!important}
/* Compact header actions: icon-only with accessible names and tooltips. */
html[data-ui-theme] :is(#themeToggle,#changePasswordButton,#logoutButton){display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0!important;flex:0 0 36px;gap:0;border-radius:8px}
html[data-ui-theme] :is(#changePasswordButton,#logoutButton) svg{display:block;width:18px;height:18px;flex:none}
html[data-ui-theme] #themeToggle [data-theme-icon]{font-size:20px;line-height:1}
html[data-ui-theme] #themeToggle [data-theme-label]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:500px){html[data-ui-theme] #changePasswordButton{order:2}}
