/*
 * Scenari Perfetti — Gestionale UI Core v9.12.0
 * Design system condiviso da Project Manager, Calendario, Consuntivi e Movimenti.
 * I moduli mantengono soltanto le regole specifiche della propria funzione.
 */
:root{
  --sp-ui-bg:#f4f5f7;
  --sp-ui-card:#fff;
  --sp-ui-text:#15171a;
  --sp-ui-muted:#737982;
  --sp-ui-line:#e4e6ea;
  --sp-ui-dark:#16181c;
  --sp-ui-red:#e63335;
  --sp-ui-green:#138a62;
  --sp-ui-amber:#b36b00;
  --sp-ui-blue:#2a6ea6;
  --sp-ui-shadow:0 16px 48px rgba(15,18,24,.08);
  --sp-ui-sidebar:238px;
  --sp-ui-header:94px;
  --sp-ui-radius-sm:11px;
  --sp-ui-radius-md:16px;
  --sp-ui-radius-lg:18px;
  --sp-ui-focus:0 0 0 3px rgba(20,23,27,.08);
}

/* Token aliases: i moduli legacy leggono ancora i vecchi nomi, ma la fonte è unica. */
.spm-body{--spm-bg:var(--sp-ui-bg);--spm-card:var(--sp-ui-card);--spm-text:var(--sp-ui-text);--spm-muted:var(--sp-ui-muted);--spm-line:var(--sp-ui-line);--spm-dark:var(--sp-ui-dark);--spm-red:var(--sp-ui-red);--spm-green:var(--sp-ui-green);--spm-amber:var(--sp-ui-amber);--spm-blue:var(--sp-ui-blue);--spm-shadow:var(--sp-ui-shadow)}
.spc-body{--spc-bg:var(--sp-ui-bg);--spc-card:var(--sp-ui-card);--spc-text:var(--sp-ui-text);--spc-muted:var(--sp-ui-muted);--spc-line:var(--sp-ui-line);--spc-dark:var(--sp-ui-dark);--spc-red:var(--sp-ui-red);--spc-green:var(--sp-ui-green);--spc-amber:var(--sp-ui-amber);--spc-blue:var(--sp-ui-blue);--spc-shadow:var(--sp-ui-shadow)}
.sp-mov-body{--sp-bg:var(--sp-ui-bg);--sp-card:var(--sp-ui-card);--sp-text:var(--sp-ui-text);--sp-muted:var(--sp-ui-muted);--sp-line:var(--sp-ui-line);--sp-dark:var(--sp-ui-dark);--sp-success:var(--sp-ui-green);--sp-warning:var(--sp-ui-amber);--sp-danger:var(--sp-ui-red);--sp-shadow:var(--sp-ui-shadow);background:var(--sp-ui-bg)!important;color:var(--sp-ui-text)}

*{box-sizing:border-box}
.spm-body,.spc-body{margin:0;background:var(--sp-ui-bg);color:var(--sp-ui-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.spm-body button,.spm-body input,.spm-body select,.spm-body textarea,.spc-body button,.spc-body input,.spc-body select,.spc-body textarea{font:inherit}
.spm-muted,.spc-muted{color:var(--sp-ui-muted)}
.spm-eyebrow,.spm-kicker,.spc-eyebrow,.spc-kicker{font-size:10px;font-weight:850;letter-spacing:.16em;color:#8a8f96}
.spm-login-shell,.spc-login-shell{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#0f1114}
.spm-login-brand,.spc-login-brand{padding:7vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 15% 10%,#383d45 0,#181b20 34%,#0e1013 70%)}
.spm-login-brand>img,.spc-login-brand>img{width:230px;max-height:80px;object-fit:contain;filter:invert(1)}
.spm-login-brand h1,.spc-login-brand h1{font-size:clamp(44px,5.7vw,82px);letter-spacing:-.055em;line-height:.94;margin:16px 0 22px}
.spm-login-brand p,.spc-login-brand p{max-width:650px;color:#c5c8cd;font-size:17px;line-height:1.65}
.spm-login-panel,.spc-login-panel{background:#fff;display:grid;place-items:center;padding:40px}
.spm-login-card,.spc-login-card{width:min(440px,100%)}
.spm-login-logo,.spc-login-logo{width:190px;max-height:70px;object-fit:contain;margin-bottom:45px}
.spm-login-card h2,.spc-login-card h2{font-size:40px;letter-spacing:-.04em;margin:8px 0}
.spm-field,.spc-field{display:flex;flex-direction:column;gap:7px;margin-bottom:13px}
.spm-field>span,.spc-field>span{font-size:11px;font-weight:780;color:#555b64}
.spm-field input,.spm-field select,.spm-field textarea,.spm-toolbar input,.spm-toolbar select,.spc-field input,.spc-field select,.spc-field textarea,.spc-toolbar input,.spc-toolbar select{width:100%;border:1px solid #dfe2e7;background:#fff;border-radius:12px;padding:11px 12px;outline:none;color:var(--sp-ui-text)}
.spm-field input:focus,.spm-field select:focus,.spm-field textarea:focus,.spm-toolbar input:focus,.spm-toolbar select:focus,.spc-field input:focus,.spc-field select:focus,.spc-field textarea:focus,.spc-toolbar input:focus,.spc-toolbar select:focus{border-color:#8b929b;box-shadow:0 0 0 3px rgba(20,23,27,.06)}
.spm-check,.spc-check{display:flex;gap:8px;align-items:center;font-size:12px;margin:4px 0 17px}
.spm-btn,.spc-btn{border:1px solid var(--sp-ui-line);background:#fff;color:var(--sp-ui-text);border-radius:11px;padding:10px 13px;font-weight:780;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.spm-btn:hover,.spc-btn:hover{background:#f4f5f6}
.spm-btn--primary,.spc-btn--primary{background:var(--sp-ui-dark);border-color:var(--sp-ui-dark);color:#fff}
.spm-btn--primary:hover,.spc-btn--primary:hover{background:#292c31}
.spm-btn--full,.spc-btn--full{width:100%}
.spm-link,.spm-text-btn,.spc-link,.spc-text-btn{color:#464c54;font-size:12px;text-decoration:none}
.spm-text-btn,.spc-text-btn{border:0;background:transparent;cursor:pointer;font-weight:750}
.spm-alert,.spc-alert{padding:11px;border-radius:10px;background:#fff0f0;color:#9b2327;font-size:12px;margin:12px 0}
.spm-login-shell--simple,.spc-login-shell--simple{grid-template-columns:1fr}
.spm-app,.spc-app{min-height:100vh}
.spm-sidebar,.spc-sidebar{position:fixed;left:0;top:0;bottom:0;width:238px;background:#111317;color:#fff;padding:24px 14px;display:flex;flex-direction:column;z-index:50}
.spm-brand,.spc-brand{height:62px;display:flex;align-items:center;padding:0 10px 18px}
.spm-brand img,.spc-brand img{width:175px;max-height:48px;object-fit:contain;filter:invert(1)}
.spm-nav,.spc-nav{display:flex;flex-direction:column;gap:4px;margin-top:16px}
.spm-nav-item,.spc-nav-item{border:0;background:transparent;color:#a8adb5;text-decoration:none;border-radius:11px;padding:11px 12px;text-align:left;display:flex;align-items:center;gap:11px;font-size:12px;font-weight:720;cursor:pointer}
.spm-nav-item>span,.spc-nav-item>span{width:22px;text-align:center;font-size:17px}
.spm-nav-item:hover,.spm-nav-item.is-active,.spc-nav-item:hover,.spc-nav-item.is-active{background:#24272d;color:#fff}
.spm-sidebar-bottom,.spc-sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:4px}
.spm-main,.spc-main{margin-left:238px;padding:0 28px 100px;min-height:100vh}
.spm-header,.spc-header{height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--sp-ui-line);position:sticky;top:0;background:rgba(244,245,247,.94);backdrop-filter:blur(12px);z-index:30}
.spm-header h1,.spc-header h1{font-size:27px;letter-spacing:-.035em;margin:3px 0 0}
.spm-kicker,.spc-kicker{margin:0}
.spm-header-actions,.spc-header-actions{display:flex;gap:9px;align-items:center}
.spm-icon-btn,.spm-close,.spc-icon-btn,.spc-close{border:0;background:#fff;border-radius:11px;width:40px;height:40px;cursor:pointer;font-size:18px;display:grid;place-items:center;text-decoration:none;color:inherit}
.spm-user,.spc-user{display:flex;align-items:center;gap:9px;border:0;background:#fff;border-radius:14px;padding:5px 10px 5px 5px}
.spm-avatar,.spc-avatar{width:36px;height:36px;background:#202328;color:#fff;border-radius:10px;display:grid;place-items:center;font-weight:850}
.spm-user span:last-child,.spc-user span:last-child{display:flex;flex-direction:column;text-align:left}
.spm-user strong,.spc-user strong{font-size:11px}
.spm-user small,.spc-user small{font-size:9px;color:var(--sp-ui-muted)}
.spm-view,.spc-view{display:none;padding-top:28px}
.spm-view.is-active,.spc-view.is-active{display:block}
.spm-title-row,.spc-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
.spm-title-row h2,.spc-title-row h2{font-size:25px;letter-spacing:-.035em;margin:0 0 4px}
.spm-title-row p,.spc-title-row p{margin:0;font-size:12px}
.spm-kpis,.spc-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.spm-kpi,.spc-kpi{background:#fff;border:1px solid var(--sp-ui-line);border-radius:17px;padding:17px;min-height:132px;display:flex;flex-direction:column;justify-content:space-between}
.spm-kpi>span,.spc-kpi>span{font-size:11px;color:var(--sp-ui-muted);font-weight:720}
.spm-kpi strong,.spc-kpi strong{font-size:29px;letter-spacing:-.04em}
.spm-kpi small,.spc-kpi small{font-size:10px;color:var(--sp-ui-muted)}
.spm-kpi--hero,.spc-kpi--hero{background:#17191d;color:#fff;border-color:#17191d}
.spm-kpi--hero>span,.spm-kpi--hero small,.spc-kpi--hero>span,.spc-kpi--hero small{color:#b9bec5}
.spm-kpi--alert strong,.spc-kpi--alert strong{color:#b02b30}
.spm-dashboard-grid,.spc-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.75fr);gap:14px;margin-top:14px}
.spm-card,.spc-card{background:#fff;border:1px solid var(--sp-ui-line);border-radius:18px;padding:18px}
.spm-card-head,.spc-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:10px}
.spm-card-head h3,.spc-card-head h3{font-size:15px;margin:0 0 3px}
.spm-card-head p,.spc-card-head p{font-size:10px;margin:0}
.spm-project-list,.spm-attention-list,.spc-project-list,.spc-attention-list{display:flex;flex-direction:column}
.spm-project-row,.spc-project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px 2px;border-top:1px solid var(--sp-ui-line);cursor:pointer}
.spm-project-row:first-child,.spc-project-row:first-child{border-top:0}
.spm-project-row:hover .spm-project-name,.spc-project-row:hover .spc-project-name{text-decoration:underline}
.spm-project-name,.spc-project-name{font-weight:820;font-size:13px}
.spm-project-meta,.spc-project-meta{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:5px;color:var(--sp-ui-muted);font-size:10px}
.spm-project-side,.spc-project-side{text-align:right}
.spm-project-side strong,.spc-project-side strong{font-size:12px}
.spm-progress,.spc-progress{height:6px;border-radius:99px;background:#eceef1;overflow:hidden;margin-top:7px;min-width:110px}
.spm-progress i,.spc-progress i{display:block;height:100%;background:#22262b;border-radius:99px}
.spm-badge,.spc-badge{display:inline-flex;align-items:center;border-radius:99px;background:#eef0f2;color:#575e67;padding:5px 8px;font-size:9px;font-weight:800;white-space:nowrap}
.spm-badge--ready,.spc-badge--ready{background:#e8f7f0;color:#08764f}
.spm-badge--live,.spc-badge--live{background:#ffe9ea;color:#a91e25}
.spm-badge--planning,.spc-badge--planning{background:#fff2dc;color:#996000}
.spm-badge--preparing,.spc-badge--preparing{background:#eaf3fc;color:#2b638f}
.spm-badge--completed,.spc-badge--completed{background:#edf0f2;color:#555}
.spm-attention,.spc-attention{border-top:1px solid var(--sp-ui-line);padding:12px 0}
.spm-attention:first-child,.spc-attention:first-child{border-top:0}
.spm-attention strong,.spc-attention strong{font-size:12px;display:block}
.spm-attention small,.spc-attention small{color:#9a3235;font-size:10px}
.spm-board,.spc-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,1fr);gap:12px;overflow-x:auto;padding-bottom:18px}
.spm-lane,.spc-lane{background:#eceef1;border-radius:16px;padding:10px;min-height:520px}
.spm-lane-head,.spc-lane-head{display:flex;justify-content:space-between;align-items:center;padding:4px 3px 10px;font-size:11px;font-weight:830}
.spm-lane-head span:last-child,.spc-lane-head span:last-child{background:#fff;border-radius:99px;padding:3px 7px;color:#676d75}
.spm-card-project,.spc-card-project{background:#fff;border:1px solid #e2e4e7;border-radius:13px;padding:13px;margin-bottom:8px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.03)}
.spm-card-project h4,.spc-card-project h4{font-size:12px;margin:0 0 8px}
.spm-card-project p,.spc-card-project p{font-size:10px;color:var(--sp-ui-muted);margin:3px 0}
.spm-card-project .spm-progress,.spc-card-project .spc-progress{margin-top:11px}
.spm-toolbar,.spc-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto;gap:9px;background:#fff;border:1px solid var(--sp-ui-line);border-radius:16px;padding:11px;margin-bottom:12px}
.spm-table-wrap,.spc-table-wrap{background:#fff;border:1px solid var(--sp-ui-line);border-radius:16px;overflow:hidden}
.spm-project-table,.spc-project-table{width:100%;border-collapse:collapse}
.spm-project-table th,.spm-project-table td,.spc-project-table th,.spc-project-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--sp-ui-line);font-size:11px}
.spm-project-table th,.spc-project-table th{background:#fafafa;color:#717781;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.spm-project-table tr[data-project],.spc-project-table tr[data-project]{cursor:pointer}
.spm-project-table tr[data-project]:hover td,.spc-project-table tr[data-project]:hover td{background:#fbfbfc}
.spm-back,.spc-back{border:0;background:transparent;padding:0;margin:0 0 16px;cursor:pointer;color:#666d75;font-weight:750}
.spm-detail-hero,.spc-detail-hero{background:#17191d;color:#fff;border-radius:22px;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px}
.spm-detail-hero h2,.spc-detail-hero h2{font-size:32px;letter-spacing:-.045em;margin:8px 0}
.spm-detail-meta,.spc-detail-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:#bbc0c7;font-size:11px}
.spm-detail-actions,.spc-detail-actions{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.spm-detail-actions .spm-btn,.spc-detail-actions .spc-btn{background:#2a2d33;border-color:#373b42;color:#fff}
.spm-detail-actions select,.spc-detail-actions select{border:1px solid #3a3e45;background:#22252a;color:#fff;border-radius:10px;padding:9px}
.spm-detail-progress,.spc-detail-progress{margin-top:18px}
.spm-detail-progress-row,.spc-detail-progress-row{display:flex;justify-content:space-between;font-size:10px;color:#c7cbd1;margin-bottom:6px}
.spm-detail-progress .spm-progress,.spc-detail-progress .spc-progress{background:#34383f;height:8px}
.spm-detail-progress .spm-progress i,.spc-detail-progress .spc-progress i{background:#fff}
.spm-missing,.spc-missing{margin-top:8px;color:#f0b6b7;font-size:10px}
.spm-detail-grid,.spc-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:14px;margin-top:14px}
.spm-stack,.spc-stack{display:flex;flex-direction:column;gap:14px}
.spm-info-grid,.spc-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.spm-info,.spc-info{border:1px solid var(--sp-ui-line);border-radius:12px;padding:11px}
.spm-info span,.spc-info span{display:block;color:var(--sp-ui-muted);font-size:9px;margin-bottom:4px}
.spm-info strong,.spc-info strong{font-size:11px}
.spm-doc-grid,.spc-doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.spm-doc,.spc-doc{border:1px solid var(--sp-ui-line);border-radius:13px;padding:12px;display:flex;flex-direction:column;gap:7px;min-height:112px}
.spm-doc>span,.spc-doc>span{font-size:9px;color:var(--sp-ui-muted);font-weight:800;text-transform:uppercase}
.spm-doc strong,.spc-doc strong{font-size:12px}
.spm-doc-actions,.spc-doc-actions{margin-top:auto;display:flex;gap:6px}
.spm-mini-btn,.spc-mini-btn{border:0;background:#eef0f2;border-radius:8px;padding:6px 8px;font-size:9px;font-weight:760;cursor:pointer;text-decoration:none;color:var(--sp-ui-text)}
.spm-task,.spm-crew,.spc-task,.spc-crew{display:grid;gap:10px;align-items:center;border-top:1px solid var(--sp-ui-line);padding:10px 0}
.spm-task,.spc-task{grid-template-columns:28px minmax(0,1fr) auto}
.spm-task:first-child,.spm-crew:first-child,.spc-task:first-child,.spc-crew:first-child{border-top:0}
.spm-task-check,.spc-task-check{width:22px;height:22px;border-radius:7px;border:1px solid #ccd0d5;background:#fff;cursor:pointer}
.spm-task.is-done .spm-task-check,.spc-task.is-done .spc-task-check{background:#1b1e22;color:#fff}
.spm-task.is-done strong,.spc-task.is-done strong{text-decoration:line-through;color:#8a9097}
.spm-task strong,.spm-crew strong,.spc-task strong,.spc-crew strong{font-size:11px}
.spm-task small,.spm-crew small,.spc-task small,.spc-crew small{display:block;color:var(--sp-ui-muted);font-size:9px;margin-top:3px}
.spm-task--overdue small,.spc-task--overdue small{color:#a72d31}
.spm-crew,.spc-crew{grid-template-columns:minmax(0,1fr) auto}
.spm-crew select,.spc-crew select{font-size:9px;border:1px solid var(--sp-ui-line);border-radius:8px;padding:6px}
.spm-fin-grid,.spc-fin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.spm-fin,.spc-fin{background:#f6f7f8;border-radius:12px;padding:11px}
.spm-fin span,.spc-fin span{display:block;font-size:9px;color:var(--sp-ui-muted);margin-bottom:5px}
.spm-fin strong,.spc-fin strong{font-size:14px}
.spm-empty,.spc-empty{text-align:center;color:var(--sp-ui-muted);font-size:11px;padding:22px}
.spm-drawer-backdrop,.spc-drawer-backdrop{position:fixed;inset:0;background:rgba(5,7,10,.48);z-index:100;display:flex;justify-content:flex-end;opacity:0;visibility:hidden;transition:.2s}
.spm-drawer-backdrop.is-open,.spc-drawer-backdrop.is-open{opacity:1;visibility:visible}
.spm-drawer,.spc-drawer{width:min(720px,100%);height:100%;background:#fff;overflow:auto;padding:25px 28px 34px;transform:translateX(30px);transition:.2s;box-shadow:-20px 0 60px rgba(0,0,0,.16)}
.spm-drawer-backdrop.is-open .spm-drawer,.spc-drawer-backdrop.is-open .spc-drawer{transform:none}
.spm-drawer-head,.spc-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px}
.spm-drawer-head h2,.spm-drawer-head h3,.spc-drawer-head h2,.spc-drawer-head h3{margin:3px 0 0;font-size:25px;letter-spacing:-.03em}
.spm-close,.spc-close{font-size:25px;background:#f0f1f3}
.spm-form-grid,.spc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.spm-span2,.spc-span2{grid-column:1/-1}
.spm-form-message,.spc-form-message{min-height:18px;color:#aa2d31;font-size:10px}
.spm-drawer-actions,.spc-drawer-actions{position:sticky;bottom:-34px;background:#fff;border-top:1px solid var(--sp-ui-line);display:flex;justify-content:flex-end;gap:8px;margin:16px -28px -34px;padding:14px 28px calc(14px + env(safe-area-inset-bottom))}
.spm-modal,.spc-modal{position:fixed;inset:0;z-index:120;background:rgba(5,7,10,.48);display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;transition:.18s}
.spm-modal.is-open,.spc-modal.is-open{opacity:1;visibility:visible}
.spm-mini-card,.spc-mini-card{width:min(510px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;padding:20px;box-shadow:var(--sp-ui-shadow)}
.spm-toast,.spc-toast{position:fixed;right:24px;bottom:24px;background:#17191d;color:#fff;border-radius:11px;padding:11px 14px;font-size:11px;font-weight:750;opacity:0;transform:translateY(10px);transition:.18s;z-index:150;pointer-events:none}
.spm-toast.is-show,.spc-toast.is-show{opacity:1;transform:none}
.spm-bottom-nav,.spc-bottom-nav{display:none}
@media (max-width:1280px){
  .spm-kpis,.spc-kpis{grid-template-columns:repeat(3,1fr)}
  .spm-detail-grid,.spc-detail-grid{grid-template-columns:1fr}
  .spm-info-grid,.spc-info-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:850px){
  .spm-login-shell,.spc-login-shell{grid-template-columns:1fr}
  .spm-login-brand,.spc-login-brand{display:none}
  .spm-login-panel,.spc-login-panel{min-height:100vh;padding:24px}
  .spm-sidebar,.spc-sidebar{display:none}
  .spm-main,.spc-main{margin-left:0;padding:0 12px 92px}
  .spm-header,.spc-header{height:78px}
  .spm-header h1,.spc-header h1{font-size:23px}
  .spm-user>span:last-child,.spc-user>span:last-child{display:none}
  .spm-kpis,.spc-kpis{grid-template-columns:repeat(2,1fr);gap:9px}
  .spm-kpi,.spc-kpi{min-height:112px;padding:14px}
  .spm-kpi--hero,.spc-kpi--hero{grid-column:1/-1}
  .spm-dashboard-grid,.spc-dashboard-grid{grid-template-columns:1fr;gap:10px}
  .spm-title-row .spm-btn,.spc-title-row .spc-btn{display:none}
  .spm-board,.spc-board{grid-auto-columns:82vw}
  .spm-toolbar,.spc-toolbar{grid-template-columns:1fr 1fr}
  .spm-toolbar .spm-btn,.spc-toolbar .spc-btn{grid-column:1/-1}
  .spm-project-table th:nth-child(4),.spm-project-table td:nth-child(4),.spm-project-table th:nth-child(5),.spm-project-table td:nth-child(5),.spc-project-table th:nth-child(4),.spc-project-table td:nth-child(4),.spc-project-table th:nth-child(5),.spc-project-table td:nth-child(5){display:none}
  .spm-detail-hero,.spc-detail-hero{grid-template-columns:1fr;padding:18px}
  .spm-detail-hero h2,.spc-detail-hero h2{font-size:27px}
  .spm-detail-actions,.spc-detail-actions{justify-content:flex-start}
  .spm-info-grid,.spc-info-grid{grid-template-columns:1fr 1fr}
  .spm-doc-grid,.spc-doc-grid{grid-template-columns:1fr}
  .spm-drawer,.spc-drawer{height:min(94vh,950px);align-self:flex-end;border-radius:22px 22px 0 0;padding:19px 15px 28px;transform:translateY(30px)}
  .spm-drawer-backdrop,.spc-drawer-backdrop{align-items:flex-end}
  .spm-drawer-backdrop.is-open .spm-drawer,.spc-drawer-backdrop.is-open .spc-drawer{transform:none}
  .spm-drawer-actions,.spc-drawer-actions{margin:16px -15px -28px;padding:13px 15px calc(13px + env(safe-area-inset-bottom))}
  .spm-form-grid,.spc-form-grid{grid-template-columns:1fr}
  .spm-span2,.spc-span2{grid-column:auto}
  .spm-bottom-nav,.spc-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:repeat(5,1fr);height:70px;padding:7px 7px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--sp-ui-line)}
  .spm-bottom-nav button,.spm-bottom-nav a,.spc-bottom-nav button,.spc-bottom-nav a{border:0;background:transparent;color:#858b93;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:730}
  .spm-bottom-nav .is-active,.spc-bottom-nav .is-active{color:#17191d}
  .spm-bottom-nav span,.spc-bottom-nav span{font-size:18px}
  .spm-bottom-nav small,.spc-bottom-nav small{font-size:8px}
  .spm-bottom-add span,.spc-bottom-add span{width:46px;height:46px;border-radius:15px;background:#17191d;color:#fff;display:grid;place-items:center;margin-top:-23px;font-size:27px}
  .spm-toast,.spc-toast{left:12px;right:12px;bottom:82px;text-align:center}
}
@media (max-width:520px){
  .spm-kpis,.spc-kpis{grid-template-columns:1fr 1fr}
  .spm-kpi strong,.spc-kpi strong{font-size:24px}
  .spm-info-grid,.spc-info-grid{grid-template-columns:1fr}
  .spm-fin-grid,.spc-fin-grid{grid-template-columns:1fr}
  .spm-project-row,.spc-project-row{grid-template-columns:1fr}
  .spm-project-side,.spc-project-side{text-align:left}
  .spm-project-table th:nth-child(3),.spm-project-table td:nth-child(3),.spc-project-table th:nth-child(3),.spc-project-table td:nth-child(3){display:none}
  .spm-toolbar,.spc-toolbar{grid-template-columns:1fr}
  .spm-toolbar .spm-btn,.spc-toolbar .spc-btn{grid-column:auto}
}
.spm-doc-list,.spc-doc-list{display:flex;flex-direction:column;gap:6px}
.spm-doc-row,.spc-doc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--sp-ui-line);border-radius:10px;background:#fafbfc}
.spm-doc-row-main,.spc-doc-row-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.spm-doc-row-main strong,.spc-doc-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spm-doc-row-main small,.spc-doc-row-main small{font-size:8px}
.spm-doc-row-actions,.spc-doc-row-actions{display:flex;gap:5px;align-items:center;flex:0 0 auto}
.spm-mini-btn--danger,.spc-mini-btn--danger{color:#9d252a;background:#fff0f0}
.spm-mini-btn--primary,.spc-mini-btn--primary{background:#17191d;color:#fff}
.spm-mini-btn:disabled,.spc-mini-btn:disabled{opacity:.45;cursor:not-allowed}
.spm-picker-help,.spc-picker-help{font-size:10px;line-height:1.45;color:var(--sp-ui-muted);margin:-2px 0 12px}
.spm-picker-row,.spc-picker-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--sp-ui-line)}
.spm-picker-row:first-child,.spc-picker-row:first-child{border-top:0}
.spm-picker-row.is-locked,.spc-picker-row.is-locked{opacity:.72}
.spm-picker-main,.spc-picker-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.spm-picker-main strong,.spc-picker-main strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spm-picker-main small,.spc-picker-main small{font-size:9px;color:var(--sp-ui-muted)}
.spm-picker-warning,.spc-picker-warning{color:#a46700!important}
.spm-picker-ok,.spc-picker-ok{color:#08764f!important}
.spm-picker-actions,.spc-picker-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.spm-picker-linked,.spc-picker-linked{font-size:9px;font-weight:800;color:#08764f;background:#e8f7f0;border-radius:99px;padding:6px 8px}
@media (max-width:560px){
  .spm-doc-row,.spm-picker-row,.spc-doc-row,.spc-picker-row{align-items:flex-start}
  .spm-picker-row,.spc-picker-row{flex-direction:column}
  .spm-picker-actions,.spc-picker-actions{width:100%}
  .spm-picker-actions .spm-mini-btn,.spc-picker-actions .spc-mini-btn{flex:1;text-align:center}
  .spm-doc-actions,.spc-doc-actions{flex-wrap:wrap}
  .spm-doc-actions .spm-mini-btn,.spc-doc-actions .spc-mini-btn{flex:1;text-align:center}
}
.spm-app,.spm-main,.spm-view,#spmDetail,.spm-detail-hero,.spm-detail-grid,.spm-stack,.spm-card,.spm-card-head,.spm-info-grid,.spm-doc-grid,.spm-doc,.spm-fin-grid,.spc-app,.spc-main,.spc-view,#spcDetail,.spc-detail-hero,.spc-detail-grid,.spc-stack,.spc-card,.spc-card-head,.spc-info-grid,.spc-doc-grid,.spc-doc,.spc-fin-grid{min-width:0;max-width:100%}
.spm-detail-hero>*,.spm-detail-grid>*,.spm-card-head>*,.spm-info-grid>*,.spm-doc-grid>*,.spm-fin-grid>*,.spc-detail-hero>*,.spc-detail-grid>*,.spc-card-head>*,.spc-info-grid>*,.spc-doc-grid>*,.spc-fin-grid>*{min-width:0}
.spm-detail-meta,.spm-detail-meta span,.spm-info,.spm-info strong,.spm-doc,.spm-doc-row,.spm-doc-row-main,.spm-task>div,.spm-crew>div,.spc-detail-meta,.spc-detail-meta span,.spc-info,.spc-info strong,.spc-doc,.spc-doc-row,.spc-doc-row-main,.spc-task>div,.spc-crew>div{min-width:0;max-width:100%}
.spm-detail-meta span,.spm-info strong,.spm-doc strong,.spm-doc-row-main strong,.spm-task strong,.spm-task small,.spm-crew strong,.spm-crew small,.spc-detail-meta span,.spc-info strong,.spc-doc strong,.spc-doc-row-main strong,.spc-task strong,.spc-task small,.spc-crew strong,.spc-crew small{overflow-wrap:anywhere;word-break:break-word}
@media (max-width:850px){
  html,body.spm-body,html,body.spc-body{width:100%;max-width:100%;overflow-x:hidden}
  .spm-app,.spc-app{width:100%;max-width:100vw;overflow-x:hidden}
  .spm-main,.spc-main{width:100%;max-width:100vw;min-width:0;margin-left:0;overflow-x:hidden}
  .spm-header,.spm-view,#spmDetail,.spc-header,.spc-view,#spcDetail{width:100%;max-width:100%;min-width:0}
  .spm-header>div:first-child,.spc-header>div:first-child{min-width:0;flex:1 1 auto;overflow:hidden}
  .spm-header h1,.spm-kicker,.spc-header h1,.spc-kicker{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .spm-header-actions,.spc-header-actions{flex:0 0 auto;min-width:0}
  .spm-detail-hero,.spc-detail-hero{width:100%;max-width:100%;min-width:0;overflow:hidden}
  .spm-detail-hero h2,.spc-detail-hero h2{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
  .spm-detail-meta,.spc-detail-meta{width:100%}
  .spm-detail-actions,.spc-detail-actions{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;justify-content:stretch}
  .spm-detail-actions .spm-btn,.spm-detail-actions select,.spc-detail-actions .spc-btn,.spc-detail-actions select{width:100%;max-width:100%;min-width:0;white-space:normal;text-align:center}
  .spm-detail-grid,.spm-stack,.spm-card,.spm-info-grid,.spm-doc-grid,.spm-fin-grid,.spc-detail-grid,.spc-stack,.spc-card,.spc-info-grid,.spc-doc-grid,.spc-fin-grid{width:100%;max-width:100%;min-width:0}
  .spm-card,.spc-card{overflow:hidden}
  .spm-doc-actions,.spc-doc-actions{width:100%;min-width:0}
  .spm-doc-actions .spm-mini-btn,.spc-doc-actions .spc-mini-btn{min-width:0;white-space:normal}
  .spm-doc-row,.spc-doc-row{width:100%;max-width:100%;min-width:0}
  .spm-doc-row-main,.spc-doc-row-main{flex:1 1 auto;min-width:0}
  .spm-doc-row-actions,.spc-doc-row-actions{flex:0 0 auto;min-width:0}
  .spm-info strong,.spc-info strong{display:block}
  .spm-bottom-nav,.spc-bottom-nav{max-width:100vw;overflow:hidden}
}
@media (max-width:420px){
  .spm-main,.spc-main{padding-left:10px;padding-right:10px}
  .spm-detail-hero,.spc-detail-hero{padding:16px;border-radius:18px}
  .spm-detail-actions,.spc-detail-actions{grid-template-columns:1fr 1fr;gap:7px}
  .spm-detail-actions .spm-btn,.spm-detail-actions select,.spc-detail-actions .spc-btn,.spc-detail-actions select{padding:9px 7px;font-size:11px}
  .spm-card,.spc-card{padding:15px;border-radius:16px}
  .spm-info,.spc-info{padding:10px}
  .spm-doc,.spc-doc{padding:10px}
}
.spm-login-brand > div,.spc-login-brand > div{margin:auto 0}

/* -------------------------------------------------------------------------
 * Movimenti bridge
 * Stessa metrica visiva delle altre web-app senza riscrivere i data-hook JS.
 * ---------------------------------------------------------------------- */
.sp-mov-body .sp-sidebar{width:var(--sp-ui-sidebar);background:#111317;padding:24px 14px}
.sp-mov-body .sp-main{margin-left:var(--sp-ui-sidebar);padding-left:28px;padding-right:28px}
.sp-mov-body .sp-app-header{height:var(--sp-ui-header);background:rgba(244,245,247,.94);border-bottom:1px solid var(--sp-ui-line);backdrop-filter:blur(12px)}
.sp-mov-body .sp-app-header h1{font-size:27px;letter-spacing:-.035em}
.sp-mov-body .sp-kicker,.sp-mov-body .sp-eyebrow{font-size:10px;font-weight:850;letter-spacing:.16em;color:#8a8f96}
.sp-mov-body .sp-nav-item{border-radius:11px;padding:11px 12px;font-size:12px;font-weight:720;color:#a8adb5}
.sp-mov-body .sp-nav-item:hover,.sp-mov-body .sp-nav-item.is-active{background:#24272d;color:#fff}
.sp-mov-body .sp-card,.sp-mov-body .sp-toolbar-card{border:1px solid var(--sp-ui-line);border-radius:18px;box-shadow:none}
.sp-mov-body .sp-kpi{border:1px solid var(--sp-ui-line);border-radius:17px;min-height:132px;box-shadow:none}
.sp-mov-body .sp-kpi--hero{background:#17191d;border-color:#17191d}
.sp-mov-body .sp-primary-btn,.sp-mov-body .sp-secondary-btn{border-radius:11px;min-height:40px;font-weight:780}
.sp-mov-body .sp-primary-btn{background:var(--sp-ui-dark);border-color:var(--sp-ui-dark)}
.sp-mov-body .sp-field input,.sp-mov-body .sp-field select,.sp-mov-body .sp-field textarea{border-color:#dfe2e7;border-radius:12px;padding:11px 12px;color:var(--sp-ui-text)}
.sp-mov-body .sp-field input:focus,.sp-mov-body .sp-field select:focus,.sp-mov-body .sp-field textarea:focus{border-color:#8b929b;box-shadow:var(--sp-ui-focus)}
.sp-mov-body .sp-drawer{width:min(700px,100%);padding:26px 28px 34px}
.sp-mov-body .sp-drawer-head h2{font-size:25px;letter-spacing:-.035em}
.sp-mov-body .sp-close-btn{width:40px;height:40px;border-radius:11px}
.sp-mov-body .sp-toast{background:var(--sp-ui-dark);box-shadow:var(--sp-ui-shadow)}

/* Tastiera e accessibilità uniformi in tutte le web-app. */
.spm-body :is(a,button,input,select,textarea):focus-visible,
.spc-body :is(a,button,input,select,textarea):focus-visible,
.sp-mov-body :is(a,button,input,select,textarea):focus-visible{
  outline:2px solid #15171a;
  outline-offset:2px;
}
.spm-sidebar :is(a,button):focus-visible,.spc-sidebar :is(a,button):focus-visible,.sp-sidebar :is(a,button):focus-visible{outline-color:#fff}

/* Admin Bar: un solo punto di manutenzione per le web-app gestionali. */
body.admin-bar .spm-sidebar,body.admin-bar .spc-sidebar,body.admin-bar .sp-sidebar{top:32px}
body.admin-bar .spm-header,body.admin-bar .spc-header,body.admin-bar .sp-app-header{top:32px}
body.admin-bar .spm-drawer-backdrop,body.admin-bar .spc-drawer-backdrop,body.admin-bar .sp-drawer-backdrop,
body.admin-bar .spm-modal,body.admin-bar .spc-modal{top:32px}
@media(max-width:782px){
  body.admin-bar .spm-header,body.admin-bar .spc-header,body.admin-bar .sp-app-header{top:46px}
  body.admin-bar .spm-drawer-backdrop,body.admin-bar .spc-drawer-backdrop,body.admin-bar .sp-drawer-backdrop,
  body.admin-bar .spm-modal,body.admin-bar .spc-modal{top:46px}
}
@media(max-width:850px){
  .sp-mov-body .sp-main{margin-left:0;padding-left:14px;padding-right:14px}
}
@media(max-width:520px){
  .sp-mov-body .sp-main{padding-left:10px;padding-right:10px}
}

/* Utility semantiche condivise dai render JS del Project Manager. */
.spm-danger-text{color:#a62b30!important}
.spm-detail-copy-title{font-size:11px;margin:16px 0 5px}
.spm-detail-copy{font-size:11px;line-height:1.6;white-space:pre-wrap}
.spm-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.spm-card-note{font-size:9px;margin-bottom:0}
.spm-audit-meta{color:#7a8088}

/* Link-icona condivisi: supportano sia <button> sia <a>. */
.sp-mov-body .sp-icon-btn{display:grid;place-items:center;text-decoration:none;color:inherit}
