/* ID Backoffice v1.3 — base normalizzata, non copia del CSS storico PMS.
   Collegare DM Sans e Manrope secondo la strategia font del nuovo prodotto. */
:root{
 --bo-font:"DM Sans",sans-serif;--bo-heading-font:Manrope,sans-serif;
 --bo-wordmark:#000000;--bo-bg:#eef0f4;--bo-surface:#fff;--bo-alt:#fafafa;--bo-text:#242735;
 --bo-muted:#85858f;--bo-border:#e7e8ee;--bo-input:#fff;--bo-input-border:#b5bbc7;
 --bo-action:#fff;--bo-action-text:#243c32;--bo-action-border:#cdd8ce;
 --bo-accent:#7960cf;--bo-save:#16894c;--bo-danger:#c52d26;--bo-recovery:#ff9800;
 --bo-radius:0;--bo-radius-cta:7px;--bo-radius-summary:12px;--bo-radius-card:12px;--bo-gap:8px;
 --bo-content-padding:15px;--bo-control-height:48px;--bo-modal-width:820px;
 color-scheme:light;
}
[data-theme=dark]{
 --bo-wordmark:#ffffff;
 --bo-bg:#151a22;--bo-surface:#202630;--bo-alt:#252d38;--bo-text:#e5e7eb;
 --bo-muted:#aab2bf;--bo-border:#3b4350;--bo-input:#171d26;--bo-input-border:#718096;
 --bo-action:#29333d;--bo-action-text:#e0e8e3;--bo-action-border:#566459;
 color-scheme:dark;
}
.bo-app{margin:0;background:var(--bo-bg);color:var(--bo-text);font:400 14px/1.5 var(--bo-font)}
.bo-app *{box-sizing:border-box}
.bo-content{padding:var(--bo-content-padding)}
.bo-grid{display:grid;gap:var(--bo-gap);grid-auto-rows:1fr;align-items:stretch}
.bo-panel{background:var(--bo-surface);border:1px solid var(--bo-border);padding:15px;margin:12px 0;border-radius:var(--bo-radius)}
.bo-card{border-radius:var(--bo-radius-card);--project-color:var(--bo-accent);background:var(--bo-surface);border:1px solid var(--bo-border);border-top:8px solid var(--project-color);padding:15px;position:relative;display:flex;flex-direction:column;min-width:0}
.bo-card>h2{margin:0 0 12px;padding-right:36px;color:var(--project-color);font-family:var(--bo-heading-font)}
.bo-card>.bo-progress{margin-top:auto}
.bo-stat,.bo-summary{background:var(--bo-surface);border:1px solid var(--bo-border);border-radius:var(--bo-radius-summary);padding:15px}
.bo-summary{display:flex;flex-wrap:wrap;gap:20px 36px;padding:15px}
.bo-summary strong{font-size:32px;line-height:1.15;font-weight:700}
.bo-project-header{--project-color:var(--bo-accent);position:relative;display:flex;align-items:center;min-height:56px;padding:15px;background:var(--bo-surface);border-left:10px solid var(--project-color);border-bottom:1px solid var(--bo-border);margin-inline:calc(-1 * var(--bo-content-padding))}
.bo-project-header h1{color:var(--project-color);font:700 28px/1.25 var(--bo-font);text-transform:uppercase;letter-spacing:.3px;margin:0}
.bo-project-header h1 a{color:inherit;text-decoration:none}
.bo-project-header .bo-menu-trigger{top:50%;right:16px;transform:translateY(-50%)}
.bo-project-dot{width:8px;height:8px;display:inline-block;flex-shrink:0;border-radius:50%;background:var(--project-color,var(--bo-accent))}
.bo-field{display:grid;gap:7px;font-size:15px}
.bo-input,.bo-select{width:100%;height:var(--bo-control-height);min-height:48px;padding:11px 12px;border:1px solid var(--bo-input-border);border-radius:0;background:var(--bo-input);color:var(--bo-text);font:400 16px/1.4 var(--bo-font)}
.bo-select{appearance:auto}
.bo-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:fit-content;max-width:100%;min-height:44px;padding:9px 16px;border:1px solid var(--bo-action-border);border-radius:var(--bo-radius-cta);background:var(--bo-action);color:var(--bo-action-text);font:600 15px/1.4 var(--bo-font);cursor:pointer}
.bo-cta>svg{width:18px;height:18px;flex-shrink:0}
.bo-cta-save{background:var(--bo-save);color:#fff;border-color:var(--bo-save)}
.bo-cta-danger{color:var(--bo-danger);border-color:var(--bo-danger)}
.bo-progress{height:10px;width:100%;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--project-color,var(--bo-accent)) 12%,var(--bo-surface))}
.bo-progress>span{display:block;height:100%;border-radius:999px;background:var(--project-color,var(--bo-accent))}
.bo-activity{position:relative;padding:14px 12px;border-top:1px solid var(--bo-border);background:var(--bo-alt)}
.bo-activity:nth-child(even of :not([hidden])){background:var(--bo-surface)}
.bo-activity-content{font:400 18px/1.5 var(--bo-font);padding-right:36px;overflow-wrap:anywhere}
.bo-section-title{font:700 24px/1.3 var(--bo-heading-font);letter-spacing:-.6px}
.bo-meta{color:var(--bo-muted);font-size:14px}
.bo-menu-trigger{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:24px;height:28px;padding:0;border:0;background:transparent;color:var(--bo-muted);font:400 24px/1 Arial,sans-serif;cursor:pointer}
.bo-context-menu{position:fixed;width:180px;background:var(--bo-surface);border:1px solid var(--bo-border);box-shadow:0 8px 28px #20233330;z-index:2000}
.bo-context-header{background:#000;color:#fff;padding:6px 9px;display:flex;align-items:center;justify-content:space-between;cursor:grab;touch-action:none}
.bo-context-actions{display:flex;gap:0;padding:3px}
.bo-context-actions>button{display:flex;align-items:center;justify-content:center;width:42px;height:38px;flex:0 0 42px;border:0;padding:7px 5px;background:transparent;color:var(--bo-text);cursor:pointer}
.bo-context-actions svg{width:23px;height:23px}
.bo-modal{width:min(var(--bo-modal-width),calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--bo-border);border-radius:0;background:var(--bo-surface);color:var(--bo-text);box-shadow:0 16px 60px #0004;overflow:hidden}
.bo-modal::backdrop{background:rgba(30,32,40,.46)}
.bo-modal[data-mode=copy]::backdrop{background:rgba(213,126,25,.48)}
.bo-modal-header{display:grid;grid-template-columns:100px minmax(0,1fr) 100px;align-items:center;gap:12px;padding:10px 14px;background:#f0f0f3;border-bottom:1px solid var(--bo-border);cursor:grab}
[data-theme=dark] .bo-modal-header{background:#2b333e}
.bo-modal-title{text-align:center;min-width:0;font:500 17px/1.4 var(--bo-font)}
.bo-modal-save{justify-self:start}.bo-modal-close{justify-self:end;border:0;background:transparent;color:var(--bo-muted);font-size:30px;cursor:pointer}
.bo-modal-body{padding:15px;overflow:auto;max-height:calc(100dvh - 110px);display:grid;gap:12px}
.bo-notice{position:fixed;z-index:3000;top:16px;left:50%;width:420px;max-width:calc(100vw - 32px);padding:14px 20px;border-radius:0;background:#eaf5ef;color:#2d7050;text-align:center;box-shadow:0 8px 28px #20233326;animation:bo-notice-in .2s ease-out both,bo-notice-out .2s ease-in 2.2s forwards}
[data-theme=dark] .bo-notice{background:#eaf5ef;color:#2d7050}
@keyframes bo-notice-in{from{transform:translate(-50%,calc(-100% - 24px));opacity:0}to{transform:translate(-50%,0);opacity:1}}
@keyframes bo-notice-out{to{transform:translate(-50%,calc(-100% - 24px));opacity:0;visibility:hidden}}
.bo-app :focus-visible{outline:2px solid var(--bo-accent);outline-offset:3px}
.bo-app [hidden]{display:none!important}
@media(max-width:1000px) and (min-width:651px){:root{--bo-content-padding:15px}}
@media(max-width:650px){:root{--bo-content-padding:15px}.bo-modal{width:calc(100vw - 20px)}.bo-modal-header{grid-template-columns:80px minmax(0,1fr) 80px;gap:6px}.bo-modal-body{padding:15px}.bo-activity-content{font-size:17px}.bo-section-title{font-size:22px}.bo-summary strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){.bo-notice{animation:bo-notice-static 2.2s step-end forwards;transform:translateX(-50%)}@keyframes bo-notice-static{to{visibility:hidden;opacity:0}}}

/* Login: exact IDENTITY layout; application palette and marks remain configurable. */
.bo-auth{box-sizing:border-box;width:440px;max-width:calc(100% - 28px);height:auto;margin:8vh auto 0;padding:28px;border:0;border-radius:0;background:var(--bo-surface);color:var(--bo-text);font:400 14px/normal var(--bo-font);box-shadow:0 24px 64px -12px rgba(25,39,64,.25),0 8px 20px -10px rgba(25,39,64,.14)}
[data-theme=dark] .bo-auth{box-shadow:0 28px 72px -12px rgba(0,0,0,.6),0 10px 24px -10px rgba(0,0,0,.5)}
.bo-auth-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:0 0 12px;padding:0;border:0;background:transparent}
.bo-auth-brand{color:var(--bo-wordmark);background:transparent;display:inline-flex;align-items:center;gap:10px;max-width:100%;font:800 23px/1.2 var(--bo-heading-font);letter-spacing:-.6px;text-decoration:none}
.bo-auth-brand>img{display:block;flex:none;width:32px;height:32px}
.bo-auth-theme{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;padding:0;background:transparent;color:var(--bo-text);font-size:24px;font-weight:400}
.bo-auth-theme svg{width:24px;height:24px}
.bo-auth-form{display:grid;gap:12px;margin:12px 0;padding:0}
.bo-auth-field{display:grid;gap:6px;min-width:0;font:400 14px/normal var(--bo-font)}
.bo-auth input,.bo-auth select{box-sizing:border-box;width:100%;height:48px;padding:10px 12px;border:1px solid var(--bo-input-border);border-radius:0;background:var(--bo-input);color:var(--bo-text);font:400 16px/normal var(--bo-font)}
.bo-auth-submit{box-sizing:border-box;width:100%;height:44px;padding:8px 16px;border:1px solid var(--bo-accent);border-radius:7px;background:var(--bo-accent);color:#fff;font:600 14px/normal var(--bo-font);cursor:pointer}
.bo-auth-error,.bo-auth-notice{padding:14px;margin:14px 0;color:#fff;font:400 14px/normal var(--bo-font)}
.bo-auth-error{background:var(--bo-danger)}.bo-auth-notice{background:#eaf5ef;color:#2d7050;border-radius:0}
.bo-auth :focus-visible{outline:3px solid var(--bo-accent);outline-offset:3px}
.bo-auth-signature{box-sizing:border-box;width:440px;max-width:calc(100% - 28px);margin:22px auto 8vh;display:flex;justify-content:flex-end}
.bo-auth-signature img{display:block;width:6.667px;height:16px;object-fit:contain}

/* Shared password visibility control: preserve the field's 48 px height. */
.password-control{position:relative;display:block;min-width:0;width:100%}
html body .password-control>input{padding-right:52px!important}
html body .password-control>.password-visibility{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none;cursor:pointer}
.password-visibility svg{display:block;flex:none;width:20px;height:20px;pointer-events:none}
.password-visibility[aria-pressed=false] .password-eye-slash{display:none}
html body .password-control>.password-visibility:hover{background:transparent;color:inherit;opacity:.75}
html body .password-control>.password-visibility:focus-visible{outline:2px solid currentColor;outline-offset:-3px}

/* IDENTITY moon: use <span class="bo-theme-moon" aria-hidden="true">☾</span>. */
.bo-theme-moon{display:block;font:400 24px/normal var(--bo-font)}

/* Uniform 15 px inset; reserve action space inside the content. */
.bo-project-header{margin-top:calc(-1 * var(--bo-content-padding));margin-bottom:15px}
.bo-project-header h1{padding-right:36px}
.bo-project-header .bo-menu-trigger{right:15px}
.bo-panel>:first-child{margin-top:0}
.bo-panel>:last-child,.bo-card>:last-child,.bo-stat>:last-child{margin-bottom:0}

/* Neutral information: distinct from success confirmations and errors. */
.bo-message-neutral{padding:15px;border-radius:0;background:#f0f0f3;color:#4b5563;font:400 14px/1.5 var(--bo-font)}

.bo-message-warning{padding:15px;border-radius:0;background:#c52d26;color:#fff;font:400 14px/1.5 var(--bo-font)}
