/* Piano R&D · The Edge Company — stile della console (sopra Bootstrap 5) */
:root{
  --navy:#1F3864; --navy-l:#2E4E86; --orange:#ED6B10; --orange-l:#FDF1E6;
  --paper:#EEF1F6; --surface:#FFFFFF; --ink:#152238; --muted:#5D6B85; --rule:#D5DCE7;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.35}
.rd-shell{display:flex;flex-direction:column;height:100vh}

/* accesso */
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,var(--navy),#12233f)}
.login-card{width:min(100%,410px);overflow:hidden;border-radius:8px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.3)}
.login-head{padding:28px 32px 24px;background:var(--navy-l);color:#fff}
.login-brand{margin-bottom:20px;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#b9c9e1}
.login-head h1{margin:0 0 5px;font-size:24px;font-weight:700}
.login-head p{margin:0;color:#c6d4ea}
.login-form{padding:30px 32px 32px}
.login-form .form-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.login-form .form-control:focus{border-color:var(--orange);box-shadow:0 0 0 .2rem rgba(237,107,16,.15)}

/* barra superiore */
.top{background:var(--navy);color:#fff;padding:10px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px}
.brand b{font-weight:700;letter-spacing:.14em;font-size:12px;text-transform:uppercase}
.brand span{font-size:11px;color:#A9BBD8;letter-spacing:.06em}
.top h1{margin:0;font-size:14px;font-weight:600}
.top .spacer,.foot .spacer{flex:1}
#programName{outline:0;border-bottom:1px dashed rgba(255,255,255,.35);padding-bottom:1px}
#programName:focus{background:rgba(255,255,255,.14);border-bottom-color:var(--orange)}
.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:2px;background:rgba(255,255,255,.10);
  font-family:var(--mono);font-size:11px;letter-spacing:.04em}
.chip .dot{width:7px;height:7px;border-radius:50%;background:#8D9CB4}
.chip.on .dot{background:#4CD07A}.chip.err .dot{background:#FF6B6B}

/* selettore degli OR */
.ors{display:flex;background:var(--navy-l);border-top:1px solid rgba(255,255,255,.12);overflow-x:auto}
.or{flex:1;min-width:210px;border:0;border-right:1px solid rgba(255,255,255,.12);background:transparent;color:#C6D4EA;
  padding:9px 14px;text-align:left;cursor:pointer;transition:background .15s}
.or:hover{background:rgba(255,255,255,.07)}
.or[aria-selected=true]{background:var(--paper);color:var(--ink)}
.or .c{font-family:var(--mono);font-size:14px;font-weight:600}
.or .t{font-size:10.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* barra strumenti e KPI */
.bar{padding:9px 18px;background:var(--surface);border-bottom:1px solid var(--rule)}
.btn-rd{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:600}
.btn-rd:hover{background:#D45F0B;border-color:#D45F0B;color:#fff}
.kpis{display:flex;background:var(--surface);border-bottom:1px solid var(--rule);overflow-x:auto}
.kpi{padding:10px 18px;border-right:1px solid var(--rule);min-width:112px}
.kpi .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kpi .v{font-family:var(--mono);font-size:19px;font-weight:600;margin-top:2px}

/* griglia */
.wrap{flex:1;overflow:auto;background:var(--surface)}
#grid{border-collapse:separate;border-spacing:0;width:100%}
#grid th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff;font-size:10px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;text-align:left;padding:8px;white-space:nowrap;border-right:1px solid rgba(255,255,255,.13)}
#grid th.y{text-align:center;width:62px;font-family:var(--mono);font-size:11px;letter-spacing:.04em}
#grid td{padding:0;border-bottom:1px solid var(--rule);border-right:1px solid #EDF0F5;vertical-align:middle}
.cell{padding:6px 8px;min-height:30px;outline:0}
.cell[contenteditable=true]:focus{background:var(--orange-l);box-shadow:inset 0 0 0 1px var(--orange)}
td.k-code .cell{font-family:var(--mono);font-size:11.5px;font-weight:600;white-space:nowrap}
td.k-desc{width:44%}
td.k-desc .cell{white-space:normal}
tr.dirty td:first-child{box-shadow:inset 3px 0 0 var(--orange)}

/* gerarchia: la struttura è l'informazione */
tr.lv-OR td{background:var(--navy);color:#fff;border-bottom:0}
tr.lv-OR .cell{font-weight:700;letter-spacing:.03em;padding:9px 8px;font-size:12.5px}
tr.lv-WP td{background:#DDE4EF}
tr.lv-WP .cell{font-weight:600}
tr.lv-Task td{background:#F1F4F9}
tr.lv-Task .cell{font-weight:500}
tr.lv-Attività:hover td{background:#F7F9FC}
tr.lv-Attività td.k-desc .cell{padding-left:22px;position:relative}
tr.lv-Attività td.k-desc .cell::before{content:"";position:absolute;left:9px;top:13px;width:6px;height:1px;background:var(--muted)}
.lvtag{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;padding:2px 6px;border-radius:2px;
  background:#E7EBF2;color:var(--muted);margin:6px 8px}
tr.lv-OR .lvtag{background:rgba(255,255,255,.18);color:#fff}

/* strip degli anni */
#grid td.y{text-align:center;width:62px}
.tick{width:34px;height:24px;border:1px solid var(--rule);background:var(--surface);border-radius:2px;cursor:pointer;
  font-family:var(--mono);font-size:11px;font-weight:600;color:#C0C8D6;transition:.12s;margin:3px 0}
.tick:hover{border-color:var(--orange)}
.tick[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:#fff}
.tick:focus-visible{outline:2px solid var(--navy);outline-offset:1px}
tr.lv-OR .tick{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#8FA8CC}
tr.lv-OR .tick[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:#fff}
.rowdel{border:0;background:transparent;color:#B4BECD;cursor:pointer;padding:6px 9px;font-size:14px}
.rowdel:hover{color:#C62828}
tr.lv-OR .rowdel{color:rgba(255,255,255,.45)}

/* modali e varie */
.dlg-h{background:var(--navy);color:#fff;padding:10px 16px}
.dlg-h .modal-title{font-size:13px;font-weight:600}
.hint{font-size:11.5px;color:var(--muted);line-height:1.5}
.hint code,#pCode{font-family:var(--mono);font-size:11px;background:#EEF1F6;padding:1px 4px;border-radius:2px;color:var(--ink)}
.empty{padding:48px 24px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);margin-bottom:6px;font-size:14px}

/* piè di pagina */
.foot{background:var(--navy);color:#C6D4EA;font-size:11px;padding:6px 18px;
  display:flex;gap:16px;align-items:center;font-family:var(--mono);letter-spacing:.03em}

#toast{background:var(--ink)}
#toast.bad{background:#C62828}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.top,.bar,.ors,.foot,.rowdel{display:none}.wrap{overflow:visible}}
