:root{--bg: #14151a;--bg-panel: #1c1e26;--bg-panel-2: #23252f;--border: #33353f;--text: #eef0f5;--text-dim: #9a9db0;--accent: #d4a144;--accent-2: #8a6d3b;--green: #4caf7d;--amber: #e8873c;--red: #d4574a;--radius: 10px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color-scheme:dark}*{box-sizing:border-box}.table-node .table-icon-btn{opacity:.85;z-index:6}.table-node:hover .table-icon-btn,.table-node .table-icon-btn:focus-visible{opacity:1}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;background:var(--bg-panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}.app-shell{display:flex;height:100dvh}.sidebar{width:220px;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 0;flex-shrink:0}.brand{padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:12px}.brand h1{font-size:1.15rem;margin:0;letter-spacing:.06em;color:var(--accent);text-transform:uppercase}.brand span{font-size:.75rem;color:var(--text-dim)}.nav-link{display:block;padding:12px 20px;color:var(--text-dim);text-decoration:none;border-left:3px solid transparent;font-size:.95rem}.nav-link:hover{color:var(--text);background:var(--bg-panel-2)}.nav-link.active{color:var(--accent);border-left-color:var(--accent);background:var(--bg-panel-2)}.main{flex:1;overflow-y:auto;padding:28px 32px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h2{margin:0 0 4px}.page-header p{margin:0;color:var(--text-dim);font-size:.9rem}.btn{background:var(--accent);color:#1a1305;border:none;padding:9px 16px;border-radius:6px;font-weight:600;font-size:.9rem}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:var(--bg-panel-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--red);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.map-viewport{padding:0}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge.libero{background:#4caf7d2e;color:var(--green)}.badge.occupato{background:#d5574a2e;color:var(--red)}.badge.prenotato{background:#e8873c2e;color:var(--amber)}.badge.aperitivo{background:#8a5fd62e;color:#8a5fd6}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-panel-2);border:1px solid var(--accent);padding:14px 18px;border-radius:8px;max-width:380px;box-shadow:0 8px 24px #0006;z-index:50;font-size:.88rem}.toast.error{border-color:var(--red)}table.data-table{width:100%;border-collapse:collapse}table.data-table th,table.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.9rem}table.data-table th{color:var(--text-dim);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:420px;max-width:90vw;max-height:85vh;overflow-y:auto}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-row label{font-size:.8rem;color:var(--text-dim)}.form-row-inline{display:flex;gap:10px}.form-row-inline .form-row{flex:1}.form-row-inline.modulo-dipendente{align-items:flex-end}.sala-map-page{display:flex;flex-direction:column;height:100%}.mobile-menu-toggle{display:none}@media (max-width: 760px){.app-shell{flex-direction:column;height:100dvh}.sidebar{order:2;position:fixed;left:0;right:0;bottom:0;width:100%;height:auto;flex-direction:column;padding:0;padding-bottom:env(safe-area-inset-bottom);border-right:none;border-top:1px solid var(--border);z-index:40}.sidebar .brand{display:none}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:100%;background:var(--bg-panel);color:var(--text);border:none;padding:12px;font-size:.9rem;font-weight:600;min-height:44px}.sidebar nav{display:none;position:absolute;left:0;right:0;bottom:100%;flex-direction:column;background:var(--bg-panel);border-top:1px solid var(--border);max-height:70vh;overflow-y:auto;box-shadow:0 -8px 24px #00000059}.sidebar nav.aperto{display:flex}.nav-link{flex:0 0 auto;display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;padding:13px 18px;font-size:.88rem;text-align:left;border-top:none;border-left:3px solid transparent;white-space:nowrap;min-height:44px}.nav-link.active{border-top-color:transparent;border-left-color:var(--accent)}.sidebar .tema-switch{width:100%;margin-top:0;text-align:left;padding:13px 18px;min-height:44px}.main{order:1;padding:16px 14px 84px;overflow-x:hidden}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.map-viewport{min-height:260px}.form-row-inline{flex-direction:column}.form-row-inline.modulo-dipendente{align-items:stretch}.form-row-inline.compatta{flex-direction:row}.form-row-inline.compatta .form-row{min-width:0}.card{padding:14px}table.data-table th,table.data-table td{padding:8px 6px;font-size:.8rem}.modal{width:92vw;padding:18px}input,select,textarea{font-size:16px}.btn,.btn.secondary,.btn.danger{min-height:40px}.toast{left:12px;right:12px;bottom:76px;max-width:none}.public-res-toasts{left:12px;right:12px;bottom:76px}.public-res-toasts .card{width:100%!important}}@media (max-width: 1180px){.sala-map-overlay{max-width:210px!important;padding:8px 10px!important;gap:6px!important;font-size:.76rem}.sala-map-overlay .btn.secondary{padding:4px 8px!important;font-size:.7rem!important}.order-items-table thead{display:none}.order-items-table,.order-items-table tbody,.order-items-table tr{display:block;width:100%}.order-items-table tr{margin-bottom:10px;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--bg-panel-2)}.order-items-table td{display:flex;justify-content:space-between;gap:10px;padding:4px 0!important;border:none;font-size:.85rem!important}.order-items-table td:nth-child(1){display:block;font-weight:700;font-size:1rem!important;padding-bottom:8px!important;margin-bottom:6px;border-bottom:1px solid var(--border)}.order-items-table td:nth-child(2):before{content:"Quantità";color:var(--text-dim)}.order-items-table td:nth-child(3):before{content:"Prezzo unitario";color:var(--text-dim)}.order-items-table td:nth-child(4):before{content:"Totale voce";color:var(--text-dim)}.order-items-table td:nth-child(5):before{content:"Note";color:var(--text-dim)}.order-items-table td:nth-child(5){flex-direction:column;align-items:flex-start}.order-items-table td:nth-child(6){margin-top:8px;gap:8px}.order-items-table td:nth-child(6) button{flex:1}}@media (max-width: 760px){.sala-map-overlay{max-width:170px!important;padding:6px 8px!important;gap:4px!important;font-size:.72rem}.sala-map-overlay .btn.secondary{padding:3px 6px!important;font-size:.66rem!important}}.fc-tabs{display:flex;gap:2px;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:8px;padding:3px}.fc-tab{background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:.85rem;padding:7px 16px;border-radius:6px;cursor:pointer;white-space:nowrap}.fc-tab:hover{color:var(--text)}.fc-tab.active{background:var(--bg-panel);color:var(--accent);font-weight:600}.fc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.fc-stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.fc-stat .fc-stat-value{font-size:1.5rem;font-weight:700;line-height:1.1}.fc-stat .fc-stat-label{font-size:.76rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.fc-stat .fc-stat-note{font-size:.78rem;color:var(--text-dim);margin-top:4px}.fc-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.fc-toolbar input[type=search],.fc-toolbar input[type=text]{flex:1;min-width:180px;max-width:320px}.fc-chips{display:flex;gap:6px;flex-wrap:wrap}.fc-chip{background:var(--bg-panel-2);border:1px solid var(--border);color:var(--text-dim);font-family:inherit;font-size:.8rem;padding:6px 12px;border-radius:999px;cursor:pointer}.fc-chip:hover{color:var(--text)}.fc-chip.active{border-color:var(--accent);color:var(--accent);background:#d4a1441f}.fc-list{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.fc-row{display:grid;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border);background:var(--bg-panel)}.fc-list>*:last-child .fc-row,.fc-list>.fc-row:last-child{border-bottom:none}.fc-row.clickable{cursor:pointer}.fc-row.clickable:hover{background:var(--bg-panel-2)}.fc-row.head{background:var(--bg-panel-2);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);padding:8px 14px}.fc-row.head span{font-weight:600}.fc-row.open{background:var(--bg-panel-2)}.fc-cols-product{grid-template-columns:minmax(0,1fr) 80px 80px 80px 132px}.fc-cols-ingredient{grid-template-columns:minmax(0,1fr) 150px 170px 16px}.fc-cols-menu{grid-template-columns:minmax(0,1fr) 90px 110px 190px}.fc-cols-spesa{grid-template-columns:minmax(0,1fr) 150px 200px}.fc-name{font-weight:600;overflow:hidden;text-overflow:ellipsis}.fc-sub{font-size:.75rem;color:var(--text-dim);margin-top:2px}.fc-num{font-variant-numeric:tabular-nums}.fc-muted{color:var(--text-dim)}.fc-fc{display:flex;align-items:center;gap:8px}.fc-fc-value{font-weight:700;font-variant-numeric:tabular-nums;min-width:48px;text-align:right}.fc-bar{flex:1;height:6px;border-radius:3px;background:var(--bg-panel-2);overflow:hidden}.fc-bar i{display:block;height:100%;border-radius:3px}.fc-trend{font-size:.78rem;font-variant-numeric:tabular-nums}.fc-trend.up{color:var(--red)}.fc-trend.down{color:var(--green)}.fc-detail{padding:4px 14px 16px;background:var(--bg-panel-2);border-bottom:1px solid var(--border)}.fc-pills{display:flex;flex-wrap:wrap;gap:6px}.fc-pill{font-size:.78rem;color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-variant-numeric:tabular-nums}.fc-empty{padding:28px 16px;text-align:center;color:var(--text-dim);background:var(--bg-panel)}.fc-empty strong{color:var(--text);display:block;margin-bottom:4px}.fc-recipe-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 30px 76px 30px;gap:8px;align-items:center;margin-bottom:6px}.fc-recipe-row select,.fc-recipe-row input{min-width:0}.fc-result{background:var(--bg-panel-2);border-radius:8px;padding:12px 14px;margin-top:16px}.fc-result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center}.fc-result-grid .fc-stat-value{font-size:1.25rem;font-weight:700}.fc-result-grid .fc-stat-label{font-size:.72rem}@media (max-width: 900px){.fc-row.head{display:none}.fc-cols-product,.fc-cols-ingredient,.fc-cols-menu,.fc-cols-spesa{grid-template-columns:1fr;gap:4px}.fc-cols-product>*:not(:first-child),.fc-cols-ingredient>*:not(:first-child),.fc-cols-menu>*:not(:first-child),.fc-cols-spesa>*:not(:first-child){display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.85rem}.fc-cols-product>*[data-label]:before,.fc-cols-ingredient>*[data-label]:before,.fc-cols-menu>*[data-label]:before,.fc-cols-spesa>*[data-label]:before{content:attr(data-label);color:var(--text-dim);font-size:.78rem}.fc-cols-ingredient>.fc-chevron{display:none}.fc-recipe-row{grid-template-columns:minmax(0,1fr) 70px 26px 30px}.fc-recipe-row .fc-recipe-cost{display:none}.spesa-cella-verticale{flex-direction:column;align-items:stretch}.spesa-riga-valore{display:flex;align-items:center;gap:6px}}.stato-elenco{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:34px 16px;text-align:center;color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.stato-elenco strong{color:var(--text)}.stato-errore{border-color:var(--red)}.stato-dettaglio{font-size:.82rem;opacity:.85}.stato-spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:stato-gira .8s linear infinite}@keyframes stato-gira{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.stato-spinner{animation-duration:2.4s}}.btn.small,.btn.secondary.small,.btn.danger.small{font-size:.8rem;padding:7px 12px;min-height:36px}.btn.icona{font-size:.9rem;padding:6px 10px;min-height:36px;min-width:36px;line-height:1}@media (max-width: 900px){.btn.small,.btn.secondary.small,.btn.danger.small,.btn.icona{min-height:40px;padding:9px 14px}}.oggi-sezione{margin-bottom:26px}.oggi-sezione h3{margin:0 0 12px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.oggi-riga{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:flex-start}.oggi-dato{min-width:120px}.oggi-valore{font-size:2.2rem;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}.oggi-etichetta{font-size:.9rem;color:var(--text);margin-top:2px}.oggi-dettaglio{font-size:.8rem;color:var(--text-dim)}.oggi-elenco{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.9rem}.oggi-elenco li{padding:8px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px}.oggi-vuoto{color:var(--text-dim);margin:0}.oggi-avviso{color:var(--amber);font-size:.85rem;margin:10px 0 0}.oggi-orologio{color:var(--text-dim);font-size:.9rem;text-transform:capitalize}@media (max-width: 900px){.oggi-riga{gap:14px 28px}.oggi-valore{font-size:1.8rem}}.nav-conta{margin-left:6px;font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--accent);color:#1c1e26;vertical-align:middle}.nav-dot{display:inline-block;margin-left:6px;width:8px;height:8px;border-radius:999px;background:var(--red);vertical-align:middle}:root[data-tema=chiaro]{--bg: #f3f4f7;--bg-panel: #ffffff;--bg-panel-2: #eaecf1;--border: #d3d7e0;--text: #191b22;--text-dim: #5c6172;--accent: #9a6d16;--accent-2: #c9a04a;--green: #2c7d55;--amber: #c25f14;--red: #b3392c}:root[data-tema=chiaro] .badge.libero{background:#2c7d5524}:root[data-tema=chiaro] .badge.occupato{background:#b3392c24}:root[data-tema=chiaro] .badge.prenotato{background:#c25f1424}:root[data-tema=chiaro] .nav-conta{color:#fff}:root[data-tema=chiaro] .modal,:root[data-tema=chiaro] .toast{box-shadow:0 8px 24px #00000024}:root[data-tema=chiaro] .public-res-toasts .card{box-shadow:0 4px 16px #00000029!important}.tema-switch{display:flex;align-items:center;gap:8px;width:100%;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);font-family:inherit;font-size:.82rem;padding:8px 10px;margin-top:10px;cursor:pointer;min-height:38px}.tema-switch:hover{color:var(--text);border-color:var(--accent)}.barra-offline{position:fixed;top:0;left:0;right:0;z-index:500;background:var(--red);color:#fff;text-align:center;font-size:.86rem;font-weight:600;padding:8px 14px;box-shadow:0 2px 10px #0000004d}.barra-offline span{font-weight:400;opacity:.9}body.con-barra-offline .app-shell{padding-top:36px}.toast-azione{display:flex;align-items:center;gap:14px;justify-content:space-between}.toast-azione button{background:none;border:1px solid currentColor;color:inherit;font-family:inherit;font-size:.82rem;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer;white-space:nowrap;min-height:32px}.spesa-gruppo{margin-bottom:22px}.spesa-gruppo h3{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 8px;font-size:.95rem;padding-bottom:6px;border-bottom:2px solid var(--border)}.spesa-gruppo h3 span{font-size:.78rem;font-weight:400;color:var(--text-dim)}.spesa-spunta{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:0}.spesa-spunta input[type=checkbox]{width:22px;height:22px;flex:0 0 auto;cursor:pointer}.spesa-spunta>span{display:flex;flex-direction:column;min-width:0}.spesa-scelto{background:var(--bg-panel-2)}.spesa-scelto .fc-name{color:var(--accent)}.assistenza-grid{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.assistenza-grid.has-open{grid-template-columns:320px 1fr}.assistenza-indietro{display:none}@media (max-width: 900px){.assistenza-grid.has-open{grid-template-columns:1fr}.assistenza-grid.has-open .assistenza-lista{display:none}.assistenza-indietro{display:inline-flex;align-items:center;background:none;border:none;color:var(--accent);font-family:inherit;font-size:.85rem;font-weight:600;padding:0;margin-bottom:10px;cursor:pointer;min-height:32px}}
