*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#E8E8EA;--surface:#F4F4F6;--surface2:#EAEAEC;--border:#D0D0D4;--border-light:#DADADD;
  --text:#1C1C1E;--text-muted:#5A5A60;--text-dim:#8A8A90;
  --accent:#1E4080;--accent-bg:#E2EAF6;
  --green:#1E7A48;--green-bg:#D8F0E4;
  --red:#C0352A;--red-bg:#FAE2E0;
  --amber:#A05A00;--amber-bg:#FAE8CC;
  --blue:#0F4E9A;--blue-bg:#D8E8FA;
  --fs-base:16px;--fs-sm:14px;--fs-xs:13px;--fs-xxs:11px;
}
body.dark{
  --bg:#111113;--surface:#1C1C1E;--surface2:#242426;--border:#3A3A3C;--border-light:#303032;
  --text:#F5F5F7;--text-muted:#C7C7CC;--text-dim:#8E8E93;
  --accent:#5E9EFF;--accent-bg:#1C2E52;
  --green:#30DB5B;--green-bg:#0D2E1A;
  --red:#FF6B61;--red-bg:#3A1A18;
  --amber:#FFB340;--amber-bg:#3A2408;
  --blue:#5AC8FA;--blue-bg:#0D2233;
}
body{background:var(--bg);color:var(--text);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:var(--fs-base);line-height:1.5;transition:background .25s,color .25s;}
.sidebar,.panel,.kpi-card,.topbar,.content,.rev-card,.check-item,.uc-slot,.upload-box,.topbar-popup{transition:background .25s,border-color .25s,color .25s;}
.app{display:flex;height:100vh;min-height:640px;overflow:hidden;}
/* dark mode — fix hardcoded border color used nell'avatar e altri */
body.dark .avatar{background:var(--accent-bg);border-color:var(--border);}
body.dark input,body.dark textarea,body.dark select{background:var(--surface2);color:var(--text);border-color:var(--border);}
body.dark .topbar-popup{box-shadow:0 4px 20px rgba(0,0,0,.5);}
body.dark .panel{box-shadow:none;}
.sidebar{width:270px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;}
.logo{padding:18px 16px 14px;border-bottom:1px solid var(--border-light);}
.logo-title{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.01em;white-space:nowrap;}
.logo-title span{color:var(--accent);}
.logo-sub{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;margin-top:3px;}
.logo-tagline{font-size:11px;color:var(--text-dim);letter-spacing:.04em;margin-top:3px;opacity:1;white-space:nowrap;}
.nav{flex:1;overflow-y:auto;padding:6px 0;}
.nav-section{padding:12px 16px 4px;font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;}
.nav-item{display:flex;align-items:center;gap:8px;padding:9px 16px;cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);transition:all .15s;border-left:3px solid transparent;user-select:none;}
.nav-item:hover{color:var(--text);background:var(--surface2);}
.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-bg);font-weight:600;}
.nav-icon{width:16px;text-align:center;font-size:14px;opacity:.7;flex-shrink:0;}
.nav-item.active .nav-icon{opacity:1;}
.nav-badge{margin-left:auto;background:var(--red);color:#fff;border-radius:10px;padding:1px 7px;font-size:var(--fs-xxs);}
.nav-turno-wrap{}
.uc-slot{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;border:1px solid var(--border-light);margin-bottom:2px;cursor:pointer;background:var(--surface);transition:all .15s;}
.uc-slot:hover{border-color:var(--accent);background:var(--accent-bg);}
.uc-slot.loaded{border-color:var(--green);background:#f0faf4;}
.uc-slot.loaded.stale{border-color:#E8A0A0;background:#FBDADA;}
.uc-slot.loading{border-color:var(--amber);opacity:.8;}
.uc-slot.error{border-color:var(--red);background:#fff5f5;}
.uc-panel{display:none;background:var(--surface2);border:1px solid var(--border-light);border-top:none;border-radius:0 0 8px 8px;padding:10px;margin-bottom:8px;}
.uc-panel.open{display:block;}
.uc-icon{font-size:16px;flex-shrink:0;}
.uc-info{flex:1;min-width:0;}
.uc-label{font-size:var(--fs-xs);font-weight:600;color:var(--text);}
.uc-sub{font-size:var(--fs-xxs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.uc-badge{font-size:11px;flex-shrink:0;color:var(--text-dim);transition:transform .2s;}
.uc-slot.open .uc-badge{transform:rotate(180deg);}
.nav-turno-header{display:flex;align-items:center;gap:8px;padding:9px 16px;cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);transition:all .15s;border-left:2px solid transparent;user-select:none;}
.nav-turno-header:hover{color:var(--text);background:var(--surface2);}
.nav-turno-header.open{color:var(--accent);border-left-color:var(--accent);background:var(--accent-bg);font-weight:500;}
.nav-turno-header .nav-icon{opacity:.7;}
.nav-turno-header.open .nav-icon{opacity:1;}
.turno-chevron{margin-left:auto;font-size:10px;color:var(--text-dim);transition:transform .2s;}
.nav-turno-header.open .turno-chevron{transform:rotate(180deg);}
.turno-accordion{display:none;padding:8px 12px 10px;border-bottom:1px solid var(--border-light);background:var(--surface2);}
.turno-accordion.open{display:block;}
.upload-box{border:1.5px dashed var(--border);border-radius:7px;padding:12px 8px;text-align:center;cursor:pointer;background:var(--surface);transition:all .15s;}
.upload-box:hover,.upload-box.dragover{background:var(--accent-bg);border-color:var(--accent);}
.upload-box.has-file{border-color:#236B42;background:var(--green-bg);border-style:solid;}
.ub-icon{width:28px;height:28px;margin:0 auto 5px;background:var(--surface2);border:1px solid var(--border);border-radius:5px;display:flex;align-items:center;justify-content:center;}
.ub-icon svg{width:13px;height:13px;stroke:var(--accent);fill:none;stroke-width:1.5;}
.ub-title{font-size:var(--fs-sm);font-weight:500;color:var(--text);margin-bottom:1px;}
.ub-sub{font-size:var(--fs-xxs);color:var(--text-muted);}
.ub-formats{display:inline-block;margin-top:4px;font-size:9px;padding:1px 6px;background:var(--accent-bg);color:var(--accent);border-radius:8px;}
.turni-status{font-size:var(--fs-xxs);padding:4px 7px;border-radius:5px;display:none;margin-top:6px;}
.turni-status.loading{display:flex;align-items:center;gap:5px;background:var(--accent-bg);border:1px solid #B8CEEE;color:var(--accent);}
.turni-status.success{display:block;background:var(--green-bg);border:1px solid #A8D5B8;color:var(--green);}
.mini-spin{width:10px;height:10px;border:1.5px solid #B8CEEE;border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}
@keyframes spin{to{transform:rotate(360deg);}}
.loaded-info{background:var(--surface);border:1px solid var(--border-light);border-radius:5px;padding:7px 9px;display:none;margin-top:6px;}
.loaded-info.visible{display:block;}
.li-date{font-size:var(--fs-sm);color:var(--text);font-weight:500;margin-bottom:4px;}
.li-counts{display:flex;gap:5px;flex-wrap:wrap;}
.li-count{font-size:var(--fs-xxs);padding:1px 7px;border-radius:8px;}
.li-count.active{background:var(--green-bg);color:var(--green);}
.li-count.absent{background:var(--red-bg);color:var(--red);}
.week-nav-wrap{display:none;margin-top:6px;}
.week-range{font-size:var(--fs-xxs);color:var(--text-dim);margin-bottom:3px;}
.week-nav{display:flex;gap:2px;}
.wday-btn{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:3px 1px;font-size:9px;color:var(--text-muted);cursor:pointer;text-align:center;transition:all .12s;font-family:'Helvetica Neue',Arial,sans-serif;}
.wday-btn:hover{border-color:var(--accent);color:var(--accent);}
.wday-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500;}
.btn-reload{width:100%;background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:4px;border-radius:4px;font-size:var(--fs-xxs);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .15s;margin-top:5px;}
.btn-reload:hover{border-color:var(--red);color:var(--red);}
.sidebar-bottom{padding:11px 14px;border-top:1px solid var(--border-light);}
.user-row{display:flex;align-items:center;gap:9px;}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-bg);border:1px solid #B8CEEE;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xxs);font-weight:600;color:var(--accent);flex-shrink:0;}
.user-name{font-size:var(--fs-sm);font-weight:500;color:var(--text);}
.user-role{font-size:var(--fs-xxs);color:var(--text-muted);}
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);}
.topbar{display:flex;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--surface);gap:14px;flex-shrink:0;}
.topbar-title-wrap{display:flex;flex-direction:column;gap:1px;}
.page-title{font-size:17px;font-weight:600;color:var(--text);letter-spacing:-.02em;line-height:1.2;}
.breadcrumb{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.03em;}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px;}
.topbar-kpis{display:none;flex:1;justify-content:center;align-items:center;gap:6px;overflow:visible;}
.topbar-kpi-chip{display:flex;align-items:center;gap:7px;padding:6px 12px;background:var(--surface2);border:1px solid var(--border-light);border-radius:10px;cursor:default;flex-shrink:0;transition:border-color .15s;}
.topbar-kpi-chip.clickable{cursor:pointer;}
.topbar-kpi-chip.clickable:hover{border-color:var(--accent);}
.topbar-kpi-val{font-size:20px;font-weight:700;color:var(--text);line-height:1;font-variant-numeric:tabular-nums;}
.topbar-kpi-lbl{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.datetime-chip{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted);}
.datetime-chip .date-txt{color:var(--text-muted);}
.datetime-chip .time-txt{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;min-width:42px;}
.weather-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:var(--surface2);border:1px solid var(--border-light);border-radius:20px;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;position:relative;transition:border-color .15s;}
.weather-chip:hover{border-color:var(--accent);}
.weather-chip svg{width:15px;height:15px;flex-shrink:0;}
.weather-temp{font-weight:500;color:var(--text);font-size:var(--fs-sm);}
.weather-city{font-size:var(--fs-xxs);color:var(--text-dim);}
.topbar-popup{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;z-index:999;min-width:180px;box-shadow:0 4px 16px rgba(0,0,0,0.12);}
.topbar-popup.open{display:block;}
.topbar-popup label{font-size:var(--fs-xxs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:4px;}
.topbar-popup input{background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:5px 8px;color:var(--text);font-size:var(--fs-sm);font-family:'Helvetica Neue',Arial,sans-serif;outline:none;width:100%;transition:border .15s;}
.topbar-popup input:focus{border-color:var(--accent);}
.datetime-chip{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:20px;border:1px solid transparent;transition:border-color .15s;position:relative;}
.datetime-chip:hover{border-color:var(--accent);}
.btn-primary{background:var(--accent);color:#fff;border:none;padding:7px 16px;border-radius:5px;font-size:var(--fs-sm);font-weight:500;cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:opacity .15s;}
.btn-primary:hover{opacity:.88;}
.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:7px 13px;border-radius:5px;font-size:var(--fs-sm);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .15s;}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.content{flex:1;overflow-y:auto;padding:16px 20px;}
.view{max-width:1400px;margin:0 auto;width:100%;display:none;}.view.active{display:block;}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;}
.kpi-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:14px 16px 10px;border-top:3px solid transparent;cursor:default;transition:box-shadow .18s,transform .18s;position:relative;overflow:hidden;display:flex;flex-direction:column;}
.kpi-card:hover{box-shadow:0 4px 16px rgba(0,0,0,0.09);transform:translateY(-1px);}
.kpi-card-hint{font-size:var(--fs-xxs);color:var(--text-dim);margin-top:auto;padding:2px 6px;border-radius:4px;display:inline-block;align-self:flex-start;transition:background .15s,color .15s;}
.kpi-clickable:hover .kpi-card-hint{background:var(--accent-bg);color:var(--accent);}
.kpi-card.blue{border-top-color:var(--accent);}.kpi-card.green{border-top-color:var(--green);}.kpi-card.red{border-top-color:var(--red);}.kpi-card.amber{border-top-color:var(--amber);}
.kpi-card-icon{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;}
.kpi-card.blue .kpi-card-icon{background:var(--accent-bg);}.kpi-card.green .kpi-card-icon{background:var(--green-bg);}.kpi-card.red .kpi-card-icon{background:var(--red-bg);}.kpi-card.amber .kpi-card-icon{background:var(--amber-bg);}
.kpi-label{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}
.kpi-value{font-size:30px;font-weight:300;color:var(--text);letter-spacing:-.02em;line-height:1;}
.kpi-delta{font-size:var(--fs-xxs);margin-top:6px;}.kpi-delta.up{color:var(--green);}.kpi-delta.down{color:var(--red);}
.kpi-sub{font-size:var(--fs-xxs);color:var(--text-dim);margin-top:2px;}
.ov-empty{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:30px;text-align:center;margin-bottom:14px;}
.ov-empty-icon{width:38px;height:38px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;}
.ov-empty-icon svg{width:18px;height:18px;stroke:var(--text-dim);fill:none;stroke-width:1.5;}
.ov-empty-text{font-size:var(--fs-base);color:var(--text-muted);font-weight:500;}
.ov-empty-sub{font-size:var(--fs-sm);color:var(--text-dim);margin-top:4px;}
.non-servizio-strip{background:var(--red-bg);border:1px solid #F0B8B2;border-radius:7px;padding:9px 13px;margin-bottom:12px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.ns-label{font-size:var(--fs-xxs);letter-spacing:.06em;text-transform:uppercase;color:var(--red);flex-shrink:0;font-weight:600;}
.ns-chip{font-size:var(--fs-sm);padding:2px 10px;background:#fff;border:1px solid #F0B8B2;border-radius:10px;color:var(--red);}
.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;max-width:100%;}
.staff-dept-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;overflow:hidden;}
.sdh{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;border-bottom:1px solid var(--border-light);background:var(--surface2);}
.sdh-name{font-size:var(--fs-xxs);letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
.sdh-name.fo{color:#0F4E9A;}.sdh-name.hk{color:#1E7A48;}.sdh-name.bkf{color:#A05A00;}.sdh-name.mt{color:#C0352A;}
.sdh-count{font-size:var(--fs-xxs);color:var(--text-dim);background:var(--surface);border:1px solid var(--border-light);padding:1px 8px;border-radius:10px;}
.staff-list{padding:7px 13px;}
.staff-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border-light);}
.staff-row:last-child{border-bottom:none;}
.sname{font-size:var(--fs-sm);color:var(--text);flex:1;}
.sshift{font-size:var(--fs-xxs);padding:2px 8px;border-radius:4px;font-weight:500;flex-shrink:0;min-width:46px;text-align:center;}
.ss-active{background:var(--green-bg);color:var(--green);}
.ss-special{background:var(--accent-bg);color:var(--accent);}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.grid-3{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:12px;}
.panel{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;}
.panel-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-light);gap:8px;}
.panel-title{font-size:var(--fs-xxs);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;flex:1;font-weight:600;}
.panel-body{padding:12px 14px;}
.cl-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cl-progress-wrap{margin-bottom:14px;background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:12px 14px;}
.cl-progress-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.cl-progress-title{font-size:var(--fs-sm);font-weight:500;color:var(--text);}
.cl-progress-pct{font-size:22px;font-weight:300;color:var(--accent);}
.cl-track{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden;margin-bottom:6px;}
.cl-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .4s ease;}
.cl-dept-stats{display:flex;gap:8px;flex-wrap:wrap;}
.cl-dept-stat{font-size:var(--fs-xxs);padding:2px 8px;border-radius:10px;}
.check-item{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .1s;border-radius:4px;}
.check-item:last-child{border-bottom:none;}
.check-item:hover{background:var(--surface2);}
.check-box{width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;transition:all .15s;}
.check-box.done{background:var(--accent);border-color:var(--accent);}
.check-content{flex:1;min-width:0;}
.check-text{font-size:var(--fs-sm);color:var(--text);line-height:1.4;display:block;}.check-text.done{color:var(--text-dim);text-decoration:line-through;}
.check-meta{display:flex;align-items:center;gap:6px;margin-top:3px;}
.check-time{font-size:10px;color:var(--text-dim);}
.check-dept{font-size:10px;padding:2px 7px;border-radius:4px;flex-shrink:0;margin-top:1px;}
.dept-fo{background:var(--blue-bg);color:#0F4E9A;}.dept-hk{background:var(--green-bg);color:#1E7A48;}.dept-fb{background:var(--amber-bg);color:#A05A00;}.dept-mt{background:var(--red-bg);color:#C0352A;}
.notif-item{display:flex;gap:9px;padding:7px 0;border-bottom:1px solid var(--border-light);}.notif-item:last-child{border-bottom:none;}
.notif-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:5px;}
.notif-text{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;}.notif-text strong{color:var(--text);font-weight:500;}
.notif-time{font-size:var(--fs-xxs);color:var(--text-dim);margin-top:2px;}
.score-row{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.score-label{font-size:var(--fs-sm);color:var(--text-muted);width:84px;flex-shrink:0;}
.score-track{flex:1;height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;}
.score-fill{height:100%;border-radius:2px;}
.score-val{font-size:var(--fs-sm);color:var(--text);width:36px;text-align:right;flex-shrink:0;}
.complaint-item{padding:10px 0;border-bottom:1px solid var(--border-light);}.complaint-item:last-child{border-bottom:none;}
.c-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.c-name{font-size:var(--fs-sm);font-weight:500;color:var(--text);}.c-room{font-size:var(--fs-xs);color:var(--text-dim);}
.c-badge{font-size:var(--fs-xxs);padding:2px 9px;border-radius:10px;margin-left:auto;flex-shrink:0;}
.badge-open{background:var(--red-bg);color:var(--red);border:1px solid #F0B8B2;}
.badge-progress{background:var(--amber-bg);color:var(--amber);border:1px solid #FADA8E;}
.badge-closed{background:var(--green-bg);color:var(--green);border:1px solid #A8D5B8;}
.c-desc{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:4px;}.c-time{font-size:var(--fs-xxs);color:var(--text-dim);}
.c-footer{display:flex;align-items:center;gap:8px;margin-top:6px;}
.c-assign{font-size:var(--fs-xxs);padding:2px 8px;background:var(--surface2);border:1px solid var(--border-light);border-radius:10px;color:var(--text-muted);}
.c-action-btn{font-size:var(--fs-xxs);padding:2px 10px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;margin-left:auto;transition:all .12s;}
.c-action-btn:hover{border-color:var(--accent);color:var(--accent);}
.c-timeline{margin-top:8px;padding-left:12px;border-left:2px solid var(--border-light);}
.c-tl-item{position:relative;padding:0 0 7px 14px;font-size:var(--fs-xxs);color:var(--text-muted);}
.c-tl-item::before{content:'';position:absolute;left:-5px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--border);border:1.5px solid var(--surface);}
.c-tl-item.active::before{background:var(--accent);}
.c-tl-time{color:var(--text-dim);margin-right:4px;}
.form-field{display:flex;flex-direction:column;gap:4px;}
.form-label{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;}
.form-input{background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:8px 10px;color:var(--text);font-size:var(--fs-sm);font-family:'Helvetica Neue',Arial,sans-serif;outline:none;transition:border .15s;}
.form-input:focus{border-color:var(--accent);}
select.form-input option{background:var(--surface2);color:var(--text);}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim);}
.priority-btns{display:flex;gap:6px;}
.pri-btn{flex:1;padding:7px 4px;border-radius:5px;border:1.5px solid var(--border);background:transparent;font-size:var(--fs-xs);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;font-weight:500;transition:all .15s;}
.pri-btn.active-high{background:var(--red-bg);border-color:var(--red);color:var(--red);}
.pri-btn.active-med{background:var(--amber-bg);border-color:var(--amber);color:var(--amber);}
.pri-btn.active-low{background:var(--green-bg);border-color:var(--green);color:var(--green);}
.pri-btn:not(.active-high):not(.active-med):not(.active-low):hover{border-color:var(--accent);color:var(--accent);}
.kpi-chart-wrap{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:14px 16px;margin-bottom:12px;}
.kpi-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.kpi-chart-title{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-weight:600;}
.kpi-chart-legend{display:flex;gap:12px;}
.kpi-legend-item{display:flex;align-items:center;gap:5px;font-size:var(--fs-xxs);color:var(--text-muted);}
.kpi-legend-dot{width:8px;height:8px;border-radius:50%;}
.bar-chart{display:flex;align-items:flex-end;gap:4px;height:90px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;}
.bar-wrap{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:72px;}
.bar{width:100%;border-radius:3px 3px 0 0;transition:opacity .15s;}
.bar:hover{opacity:.75;}
.bar-label{font-size:9px;color:var(--text-dim);white-space:nowrap;}
.bar-val{font-size:9px;font-weight:500;color:var(--text-muted);}
.trend-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
.trend-card{background:var(--surface);border:1px solid var(--border-light);border-radius:7px;padding:11px 13px;}
.trend-label{font-size:var(--fs-xxs);color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;}
.trend-value{font-size:20px;font-weight:300;color:var(--text);line-height:1;margin-bottom:4px;}
.trend-sparkline{display:flex;align-items:flex-end;gap:2px;height:28px;}
.spark-bar{flex:1;border-radius:2px 2px 0 0;min-height:3px;}
.upload-ts{font-size:9px;color:var(--text-dim);margin-top:5px;padding:3px 7px;background:var(--surface);border:1px solid var(--border-light);border-radius:4px;display:none;}
.upload-ts.visible{display:block;}
.rev-upload-zone{border:1.5px dashed var(--border);border-radius:8px;padding:2rem;text-align:center;cursor:pointer;background:var(--surface);transition:all .15s;margin-bottom:14px;}
.rev-upload-zone:hover,.rev-upload-zone.dragover{background:var(--accent-bg);border-color:var(--accent);}
.rev-upload-icon{width:44px;height:44px;margin:0 auto .8rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.rev-upload-title{font-size:15px;font-weight:500;color:var(--text);margin-bottom:4px;}
.rev-upload-sub{font-size:var(--fs-sm);color:var(--text-muted);}
.rev-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.rev-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.rev-cat-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:12px 14px;}
.rev-cat-label{font-size:var(--fs-xxs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.rev-cat-val{font-size:24px;font-weight:300;color:var(--text);line-height:1;margin-bottom:6px;}
.rev-cat-bar{height:4px;background:var(--surface2);border-radius:2px;overflow:hidden;}
.rev-cat-fill{height:100%;border-radius:2px;transition:width .5s;}
.rev-list{display:flex;flex-direction:column;gap:10px;}
.rev-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;padding:14px 16px;}
.rev-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.rev-score-badge{font-size:15px;font-weight:600;padding:4px 10px;border-radius:6px;flex-shrink:0;}
.rev-score-hi{background:var(--green-bg);color:var(--green);}
.rev-score-mid{background:var(--amber-bg);color:var(--amber);}
.rev-score-lo{background:var(--red-bg);color:var(--red);}
.rev-guest{font-size:var(--fs-sm);font-weight:500;color:var(--text);}
.rev-date{font-size:var(--fs-xxs);color:var(--text-dim);margin-left:auto;}
.rev-title{font-size:var(--fs-sm);font-weight:500;color:var(--text);margin-bottom:6px;}
.rev-body{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
.rev-pos{font-size:var(--fs-xs);color:var(--text-muted);padding:7px 10px;background:var(--green-bg);border-radius:5px;line-height:1.5;}
.rev-neg{font-size:var(--fs-xs);color:var(--text-muted);padding:7px 10px;background:var(--red-bg);border-radius:5px;line-height:1.5;}
.rev-reply{font-size:var(--fs-xs);color:var(--text-muted);padding:7px 10px;background:var(--surface2);border-radius:5px;line-height:1.5;border-left:2px solid var(--accent);}
.rev-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.rev-filter-btn{padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:transparent;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .15s;}
.rev-filter-btn:hover{border-color:var(--accent);color:var(--accent);}
.rev-filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.rev-sort{margin-left:auto;background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:5px 8px;font-size:var(--fs-xs);color:var(--text);font-family:'Helvetica Neue',Arial,sans-serif;outline:none;cursor:pointer;}
.rev-no-reply{font-size:var(--fs-xxs);padding:2px 7px;border-radius:8px;background:var(--amber-bg);color:var(--amber);margin-left:4px;}
.rev-reply-panel{margin-top:10px;border-top:1px solid var(--border-light);padding-top:10px;}
.rev-reply-textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;color:var(--text);font-size:var(--fs-sm);font-family:'Helvetica Neue',Arial,sans-serif;outline:none;resize:vertical;min-height:90px;line-height:1.6;transition:border .15s;}
.rev-reply-textarea:focus{border-color:var(--accent);}
.rev-reply-actions{display:flex;align-items:center;gap:8px;margin-top:7px;}
.rev-btn-generate{background:var(--accent);color:#fff;border:none;padding:6px 14px;border-radius:5px;font-size:var(--fs-xs);font-weight:500;cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:opacity .15s;display:flex;align-items:center;gap:6px;}
.rev-btn-generate:hover{opacity:.88;}
.rev-btn-generate:disabled{opacity:.5;cursor:not-allowed;}
.rev-btn-copy{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:6px 12px;border-radius:5px;font-size:var(--fs-xs);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .15s;}
.rev-btn-copy:hover{border-color:var(--green);color:var(--green);}
.rev-btn-copy.copied{border-color:var(--green);color:var(--green);background:var(--green-bg);}
.rev-gen-spinner{width:11px;height:11px;border:1.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}
.rev-char-count{font-size:9px;color:var(--text-dim);margin-left:auto;}
.rev-btn-translate{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;padding:5px 12px;font-size:var(--fs-xs);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .15s;margin-top:6px;display:inline-block;}
.rev-btn-translate:hover{border-color:var(--accent);color:var(--accent);}
.rev-lang-badge{font-size:var(--fs-xxs);padding:2px 8px;border-radius:8px;background:var(--surface2);color:var(--text-muted);border:1px solid var(--border);margin-left:4px;font-weight:500;}
.rev-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 0 4px;}
.rev-pg-btn{background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:5px 14px;font-size:var(--fs-xs);color:var(--text);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:background .12s;}
.rev-pg-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent);}
.rev-pg-btn:disabled{opacity:.35;cursor:default;}
.rev-pg-info{font-size:var(--fs-xs);color:var(--text-dim);}
#backToTop{position:fixed;bottom:24px;right:24px;background:var(--accent);color:#fff;border:none;border-radius:50%;width:38px;height:38px;font-size:16px;cursor:pointer;display:none;z-index:500;box-shadow:0 2px 10px rgba(0,0,0,.25);transition:opacity .2s;line-height:38px;text-align:center;padding:0;}
.pul-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:6px;}
.pul-stat{background:var(--surface);border:1px solid var(--border-light);border-radius:5px;padding:5px 4px;text-align:center;}
.pul-stat-val{font-size:15px;font-weight:500;line-height:1;}
.pul-stat-lbl{font-size:9px;color:var(--text-dim);margin-top:2px;text-transform:uppercase;letter-spacing:.04em;}
.pul-stat-val.arr{color:var(--green);}
.pul-stat-val.dep{color:var(--red);}
.pul-stat-val.fer{color:var(--accent);}
.pul-occ-bar{margin-top:7px;}
.pul-occ-label{display:flex;justify-content:space-between;font-size:9px;color:var(--text-dim);margin-bottom:3px;}
.pul-occ-track{height:5px;background:var(--surface2);border-radius:3px;overflow:hidden;}
.pul-occ-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .4s;}
.pul-week-nav{display:flex;gap:2px;margin-top:6px;}
.pul-day-btn{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:3px 1px;font-size:9px;color:var(--text-muted);cursor:pointer;text-align:center;transition:all .12s;font-family:'Helvetica Neue',Arial,sans-serif;}
.pul-day-btn:hover{border-color:var(--accent);color:var(--accent);}
.pul-day-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500;}
.nav-group-header{display:flex;align-items:center;gap:8px;padding:9px 16px;cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);transition:all .15s;border-left:2px solid transparent;user-select:none;}
.nav-group-header:hover{color:var(--text);background:var(--surface2);}
.nav-group-header.open{color:var(--accent);border-left-color:var(--accent);background:var(--accent-bg);font-weight:500;}
.nav-group-chevron{margin-left:auto;font-size:10px;color:var(--text-dim);transition:transform .2s;}
.nav-group-header.open .nav-group-chevron{transform:rotate(180deg);}
.nav-group-items{display:none;background:var(--surface2);border-bottom:1px solid var(--border-light);}
.nav-group-items.open{display:block;}
.nav-group-items .nav-item{padding-left:28px;font-size:var(--fs-xs);}
.bkf-upload-zone{border:1.5px dashed var(--border);border-radius:8px;padding:2.5rem 2rem;text-align:center;cursor:pointer;background:var(--surface);transition:all .15s;margin-bottom:14px;}
.bkf-upload-zone:hover,.bkf-upload-zone.dragover{background:var(--accent-bg);border-color:var(--accent);}
.bkf-upload-icon{width:52px;height:52px;margin:0 auto 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;}
.bkf-upload-title{font-size:15px;font-weight:500;color:var(--text);margin-bottom:4px;}
.bkf-upload-sub{font-size:var(--fs-sm);color:var(--text-muted);}
.bkf-table-wrap{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;overflow:hidden;margin-bottom:14px;}
.bkf-table{width:100%;border-collapse:collapse;}
.bkf-table th{background:var(--surface2);font-size:var(--fs-xxs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:10px 16px;text-align:left;border-bottom:1px solid var(--border-light);font-weight:600;}
.bkf-table th:not(:first-child){text-align:center;}
.bkf-table td{padding:11px 16px;font-size:var(--fs-sm);color:var(--text);border-bottom:1px solid var(--border-light);}
.bkf-table tr:last-child td{border-bottom:none;}
.bkf-table tbody tr:hover{background:var(--surface2);}
.bkf-table td:not(:first-child){text-align:center;}
.bkf-badge{display:inline-block;font-size:var(--fs-sm);font-weight:600;background:var(--surface2);border:1px solid var(--border-light);border-radius:6px;padding:3px 12px;color:var(--text);}
.bkf-ro{color:var(--text-muted);}
.bkf-success-box{background:var(--green-bg);border:1px solid #A8D5B8;border-radius:8px;padding:24px;text-align:center;}
.bkf-success-icon{width:52px;height:52px;background:var(--green);border-radius:12px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:24px;}
.bkf-info-box{background:var(--surface2);border:1px solid var(--border-light);border-radius:7px;padding:11px 14px;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6;margin-bottom:14px;}
.rc-upload-zone{border:1.5px dashed var(--border);border-radius:8px;padding:2.5rem 2rem;text-align:center;cursor:pointer;background:var(--surface);transition:all .15s;}
.rc-upload-zone:hover,.rc-upload-zone.dragover{background:var(--accent-bg);border-color:var(--accent);}
.rc-upload-icon{width:44px;height:44px;margin:0 auto 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;}
.rc-upload-icon svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:1.5;}
.rc-upload-title{font-size:15px;font-weight:500;color:var(--text);margin-bottom:5px;}
.rc-upload-sub{font-size:var(--fs-sm);color:var(--text-muted);}
.rc-upload-badge{display:inline-block;margin-top:9px;font-size:var(--fs-xs);padding:3px 11px;background:var(--accent-bg);color:var(--accent);border-radius:10px;}
.rc-processing{display:none;align-items:center;gap:10px;padding:.9rem 1rem;background:var(--surface);border-radius:8px;border:1px solid var(--border-light);margin:.8rem 0;}
.rc-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;}
.rc-error{display:none;padding:.7rem 1rem;background:var(--red-bg);border:1px solid #F0B8B2;border-radius:8px;color:var(--red);font-size:var(--fs-sm);margin:.8rem 0;}
.rc-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;}
.rc-toolbar-left{display:flex;align-items:center;gap:10px;}
.rc-toolbar-title{font-size:15px;font-weight:500;color:var(--text);}
.rc-count-badge{font-size:var(--fs-xs);padding:2px 10px;background:var(--accent-bg);color:var(--accent);border-radius:10px;}
.rc-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rc-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .15s;}
.rc-card:hover{border-color:var(--accent);}
.rc-card-top{background:var(--surface2);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-light);}
.rc-card-label{font-size:var(--fs-xxs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);}
.rc-card-room{font-size:var(--fs-sm);font-weight:500;color:var(--accent);background:var(--accent-bg);padding:2px 10px;border-radius:4px;}
.rc-card-guest{padding:9px 12px 0;font-size:15px;font-weight:500;color:var(--text);}
.rc-card-dates{display:grid;grid-template-columns:1fr 1fr 1fr;margin:7px 12px 0;border:1px solid var(--border-light);border-radius:5px;overflow:hidden;}
.rc-date-cell{padding:5px 8px;border-right:1px solid var(--border-light);}.rc-date-cell:last-child{border-right:none;}
.rc-date-label{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:2px;}
.rc-date-val{font-size:var(--fs-xs);font-weight:500;color:var(--text);}
.rc-pills{margin:7px 12px 0;display:flex;gap:5px;flex-wrap:wrap;}
.rc-pill{font-size:var(--fs-xxs);padding:2px 8px;border-radius:10px;border:1px solid var(--border-light);color:var(--text-muted);background:var(--surface2);}
.rc-card-footer{border-top:1px solid var(--border-light);padding:7px 12px;display:flex;align-items:center;justify-content:space-between;margin-top:9px;}
.rc-hint{font-size:var(--fs-xxs);color:var(--text-dim);}
.btn-print-one{font-size:var(--fs-xs);padding:4px 12px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-family:'Helvetica Neue',Arial,sans-serif;}
.rc-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:9999;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto;}
.rc-modal-overlay.open{display:flex;}
.rc-modal-box{background:var(--surface);border-radius:10px;width:100%;max-width:900px;overflow:hidden;margin:auto;border:1px solid var(--border);}
.rc-modal-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface2);border-bottom:1px solid var(--border);}
.rc-modal-title{font-size:var(--fs-sm);font-weight:500;color:var(--text);}
.rc-modal-actions{display:flex;gap:8px;}
.btn-modal-print{font-size:var(--fs-sm);padding:5px 14px;font-weight:500;background:#1E4080;color:#fff;border:none;border-radius:5px;cursor:pointer;}
.btn-modal-close{font-size:var(--fs-sm);padding:5px 12px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;cursor:pointer;}
.rc-modal-body{padding:18px;max-height:80vh;overflow-y:auto;}
.mp .pc-header{background:#1A1916;padding:14px 18px;border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;}
.mp .pc-title{font-size:12pt;font-weight:600;color:#fff;font-family:'Helvetica Neue',Arial,sans-serif;}
.mp .pc-sub{font-size:6.5pt;text-transform:uppercase;letter-spacing:.1em;color:#9A9890;margin-top:2px;}
.mp .pc-header-right{text-align:right;}.mp .pc-rlabel{font-size:6pt;text-transform:uppercase;color:#9A9890;margin-bottom:2px;}
.mp .pc-room{font-size:20pt;font-weight:600;color:#fff;line-height:1;}
.mp .pc-body{border:1px solid #E0DED8;border-top:none;border-radius:0 0 6px 6px;padding:12px 15px 14px;}
.mp .pc-name{font-size:16pt;font-weight:600;padding-bottom:8px;border-bottom:1.5px solid #1A1916;margin-bottom:12px;color:#1A1916;}
.mp .pc-dates{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #E0DED8;border-radius:4px;overflow:hidden;margin-bottom:12px;}
.mp .pc-dc{padding:7px 9px;border-right:1px solid #E0DED8;}.mp .pc-dc:last-child{border-right:none;}
.mp .pc-dl{font-size:6pt;text-transform:uppercase;color:#6A6860;margin-bottom:3px;line-height:1.4;}.mp .pc-dv{font-size:11pt;font-weight:600;color:#1A1916;}
.mp .pc-bilingual{display:grid;grid-template-columns:1fr 1fr;border:1px solid #E0DED8;border-radius:4px;overflow:hidden;margin-bottom:12px;}
.mp .pc-lc{padding:9px 11px;}.mp .pc-lc:first-child{border-right:1px solid #E0DED8;}
.mp .pc-ltag{font-size:6.5pt;font-weight:600;text-transform:uppercase;color:#1A1916;background:#F0EFEC;display:inline-block;padding:1px 6px;border-radius:2px;margin-bottom:4px;}
.mp .pc-ltitle{font-size:8pt;font-weight:600;margin-bottom:4px;color:#1A1916;}.mp .pc-ltext{font-size:7pt;color:#6A6860;line-height:1.55;}
.mp .pc-cc{border:1px solid #E0DED8;border-radius:4px;overflow:hidden;margin-bottom:12px;}
.mp .pc-cc-head{background:#F0EFEC;padding:6px 12px;border-bottom:1px solid #E0DED8;display:flex;align-items:center;justify-content:space-between;}
.mp .pc-cc-hlabel{font-size:7.5pt;font-weight:600;text-transform:uppercase;color:#1A1916;}
.mp .pc-cc-types{display:flex;gap:5px;}.mp .pc-cc-type{font-size:7.5pt;border:1px solid #E0DED8;border-radius:3px;padding:2px 8px;color:#1A1916;}
.mp .pc-cc-body{padding:10px 13px;}.mp .pc-cc-row{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;}
.mp .pc-fl{font-size:6.5pt;text-transform:uppercase;color:#6A6860;margin-bottom:4px;}
.mp .cc-num-wrap{display:flex;align-items:center;gap:6px;}.mp .cc-group{display:flex;gap:2px;}
.mp .cc-digit{width:22px;height:22px;border:1px solid #E0DED8;border-radius:4px;display:inline-block;}
.mp .cc-dash{font-size:14pt;font-weight:600;color:#1A1916;line-height:22px;padding:0 1px;}
.mp .cc-exp-wrap{display:flex;align-items:center;gap:3px;}
.mp .cc-exp-digit{width:22px;height:22px;border:1px solid #E0DED8;border-radius:4px;display:inline-block;}
.mp .cc-slash{font-size:16pt;font-weight:600;color:#1A1916;line-height:22px;padding:0 3px;}
.mp .pc-holder{width:100%;height:28px;border:1px solid #E0DED8;border-radius:3px;display:block;}
.mp .pc-privacy{border:1px solid #E0DED8;border-radius:4px;overflow:hidden;margin-bottom:12px;}
.mp .pc-privacy-head{background:#F0EFEC;padding:5px 12px;border-bottom:1px solid #E0DED8;}
.mp .pc-privacy-label{font-size:7pt;font-weight:600;text-transform:uppercase;color:#1A1916;}
.mp .pc-privacy-body{display:grid;grid-template-columns:1fr 1fr;}
.mp .pc-pc{padding:7px 11px;font-size:6.5pt;color:#6A6860;line-height:1.6;}.mp .pc-pc:first-child{border-right:1px solid #E0DED8;}
.mp .pc-sign{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px;}
.mp .pc-slabel{font-size:7pt;text-transform:uppercase;color:#6A6860;margin-bottom:28px;}.mp .pc-sline{border-bottom:1.5px solid #1A1916;}
.print-dialog{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:99999;align-items:center;justify-content:center;}
.print-dialog.open{display:flex;}
.print-dialog-box{background:var(--surface);border-radius:10px;width:400px;padding:26px;text-align:center;border:1px solid var(--border);}
.pd-icon{width:48px;height:48px;background:var(--green-bg);border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;}
.pd-icon svg{width:22px;height:22px;stroke:var(--green);fill:none;stroke-width:2;}
.pd-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:6px;}
.pd-subtitle{font-size:13px;color:var(--text-muted);margin-bottom:22px;line-height:1.5;}
.pd-buttons{display:flex;gap:10px;justify-content:center;}
.pd-btn-print{background:#1E4080;color:#fff;border:none;padding:9px 26px;border-radius:6px;font-size:var(--fs-sm);font-weight:500;cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;}
.pd-btn-close{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:9px 16px;border-radius:6px;font-size:var(--fs-sm);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;}
#printIframe{position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;border:none;pointer-events:none;}

/* ── MOBILE ────────────────────────────────────────────── */
.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);flex-shrink:0;}
.mobile-menu-btn:hover{background:var(--surface2);}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:98;}
.mobile-overlay.open{display:block;}

@media(max-width:768px){
  .mobile-menu-btn{display:flex;}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;transform:translateX(-100%);transition:transform .25s ease;width:270px;box-shadow:4px 0 20px rgba(0,0,0,.15);}
  .sidebar.mobile-open{transform:translateX(0);}
  .app{min-height:100svh;}
  .content{padding:10px 10px 24px;}
  .topbar{padding:8px 12px;gap:8px;}
  .page-title{font-size:15px;}
  .breadcrumb{display:none;}
  .topbar-kpis{overflow-x:auto;justify-content:flex-start;flex:initial;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .topbar-kpis::-webkit-scrollbar{display:none;}
  .topbar-kpi-chip{padding:5px 9px;}
  .topbar-kpi-val{font-size:17px;}
  .topbar-right .datetime-chip .date-txt{display:none;}
  .weather-city{display:none;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
  .staff-grid{grid-template-columns:1fr 1fr;}
  .grid-2{grid-template-columns:1fr;}
  .grid-3{grid-template-columns:1fr;}
  .trend-grid{grid-template-columns:1fr 1fr;}
  .rev-body{grid-template-columns:1fr;}
  .rev-cat-grid{grid-template-columns:1fr 1fr;}
  .rev-kpi-grid{grid-template-columns:1fr 1fr;}
  .rc-card-grid{grid-template-columns:1fr;}
  .rev-filter-bar{gap:5px;}
  .rev-reply-actions{flex-wrap:wrap;}
}

/* ── ELEGANZA ──────────────────────────────────────────── */

/* Token aggiuntivi */
:root{--fs-md:15px;}

/* Font rendering — testo più nitido */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}

/* Scrollbar — sottile e colorata */
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#C0C0C8;border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}

/* Sidebar — gradiente verticale + ombra visibile */
.sidebar{background:linear-gradient(180deg,#F8F8FA 0%,#F0F0F3 100%);box-shadow:2px 0 12px rgba(0,0,0,.10);}
body.dark .sidebar{background:linear-gradient(180deg,#1C1C1E 0%,#161618 100%);}

/* Logo area — leggero bordo accent in fondo */
.logo{border-bottom:2px solid var(--accent-bg);}

/* Nav sezione label — linea sottile */
.nav-section{position:relative;overflow:hidden;}
.nav-section::after{content:'';position:absolute;bottom:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,var(--border-light),transparent);}

/* Nav active — sfondo più saturo + bordo sinistro più spesso */
.nav-item{border-left-width:3px;}
.nav-item.active{background:var(--accent-bg);border-left-color:var(--accent);border-left-width:3px;}

/* Nav hover — sfondo visibile */
.nav-item:hover{background:#EAEAEE;border-left-color:var(--border);}
body.dark .nav-item:hover{background:#2A2A2E;}

/* Topbar — ombra visibile */
.topbar{box-shadow:0 2px 10px rgba(0,0,0,.09);border-bottom:none;}
body.dark .topbar{box-shadow:0 2px 10px rgba(0,0,0,.25);}

/* KPI cards — shadow permanente + hover più ricco */
.kpi-card{box-shadow:0 2px 8px rgba(0,0,0,.08);border:1px solid var(--border-light);}
.kpi-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.13);transform:translateY(-2px);}
body.dark .kpi-card{box-shadow:0 2px 8px rgba(0,0,0,.28);}
body.dark .kpi-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.40);}

/* Panel — shadow visibile */
.panel{box-shadow:0 2px 8px rgba(0,0,0,.07);}
body.dark .panel{box-shadow:0 2px 8px rgba(0,0,0,.22);}

/* Panel header — sfondo leggermente diverso */
.panel-header{background:linear-gradient(135deg,var(--surface2) 0%,var(--surface) 100%);}

/* Trend cards */
.trend-card{box-shadow:0 1px 4px rgba(0,0,0,.07);transition:box-shadow .18s,transform .18s;}
.trend-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.12);transform:translateY(-2px);}

/* Rev cards */
.rev-card{box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s;}
.rev-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.11);transform:translateY(-1px);}

/* RC cards */
.rc-card{box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .18s,transform .18s;}
.rc-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.11);transform:translateY(-1px);}

/* Checkbox — animazione spring */
.check-box{transition:all .15s cubic-bezier(.34,1.56,.64,1);}
.check-box.done{transform:scale(1.12);}

/* Pulsante primario — lift + shadow */
.btn-primary{transition:opacity .15s,transform .15s,box-shadow .15s;}
.btn-primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 16px rgba(30,64,128,.28);}

/* Form input focus — anello accent */
.form-input:focus,.rev-reply-textarea:focus{box-shadow:0 0 0 3px rgba(30,64,128,.15);border-color:var(--accent);}

/* Badge — pulsazione */
@keyframes badge-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.nav-badge{animation:badge-pulse 2.5s ease-in-out infinite;}

/* Print dialog */
.print-dialog-box{box-shadow:0 20px 60px rgba(0,0,0,.22);}

/* Staff dept cards */
.staff-dept-card{box-shadow:0 1px 4px rgba(0,0,0,.07);}

/* UC slots loaded */
.uc-slot.loaded{box-shadow:0 1px 6px rgba(30,122,72,.15);}

/* Sidebar bottom separator più sottile */
.sidebar-bottom{border-top:1px solid var(--border-light);background:linear-gradient(0deg,var(--surface2) 0%,transparent 100%);}

/* ── COMPASS QM — topbar logo ── */
.topbar-spark{height:36px;width:auto;flex-shrink:0;}

/* ── COMPASS QM — logo area navy ── */
.sidebar .logo{background:#1A2E55;border-bottom-color:rgba(255,255,255,.12);}
.sidebar .logo-title{color:#fff;}
.sidebar .logo-title span{color:#B8943F;}
.sidebar .logo-tagline{color:rgba(255,255,255,.82);opacity:1;}

/* ── TONE BUTTONS ──────────────────────────────────────── */
.rev-tone-bar{display:flex;align-items:center;gap:4px;margin-bottom:8px;}
.rev-tone-btn{padding:4px 11px;border-radius:20px;border:1px solid var(--border);background:transparent;font-size:10px;color:var(--text-muted);cursor:pointer;font-family:'Helvetica Neue',Arial,sans-serif;transition:all .12s;}
.rev-tone-btn:hover{border-color:var(--accent);color:var(--accent);}
.rev-tone-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;}
