/* SalonUp Design System v1.0 — Core 0.16.1
   Standard grafico ufficiale per Core e plugin. */
:root{
  --su-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --su-bg:#f3f5f4;--su-surface:#fff;--su-surface-soft:#f8faf9;--su-text:#20242b;--su-muted:#6b7280;
  --su-primary:#17392f;--su-primary-hover:#245244;--su-primary-soft:#edf4f1;--su-border:#d6dfdb;--su-border-soft:#e8ecea;
  --su-danger:#a92323;--su-danger-hover:#8f1d1d;--su-danger-soft:#fff1f2;--su-success:#08734f;--su-success-soft:#e8f7ef;
  --su-warning:#8a5a00;--su-warning-soft:#fff4dd;--su-info:#245b78;--su-info-soft:#eef7fb;
  --su-radius-sm:8px;--su-radius:10px;--su-radius-lg:16px;--su-radius-xl:20px;
  --su-control-h:44px;--su-control-pad-x:12px;--su-focus:0 0 0 3px rgba(23,57,47,.13);
  --su-shadow-sm:0 3px 12px rgba(17,24,39,.05);--su-shadow-modal:0 24px 70px rgba(17,24,39,.22);
}
*,*::before,*::after{box-sizing:border-box}
body{font-family:var(--su-font);color:var(--su-text)}

/* Forms */
.su-form-group{display:grid;gap:6px;min-width:0}.su-form-group+.su-form-group{margin-top:14px}
.su-label{display:block;font-size:12px;line-height:1.35;font-weight:800;color:var(--su-text);margin:0}
.su-input,.su-select,.su-textarea,
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea{
  width:100%;min-width:0;border:1px solid var(--su-border);border-radius:var(--su-radius);background:var(--su-surface);color:var(--su-text);
  font:inherit;font-size:14px;line-height:1.35;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease;
}
.su-input,input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]){height:var(--su-control-h);padding:0 var(--su-control-pad-x)}
.su-select,select{height:var(--su-control-h);padding:0 42px 0 var(--su-control-pad-x);appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#65716c 50%),linear-gradient(135deg,#65716c 50%,transparent 50%);background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}
.su-textarea,textarea{min-height:104px;padding:11px var(--su-control-pad-x);resize:vertical;max-height:420px}
.su-input::placeholder,.su-textarea::placeholder,input::placeholder,textarea::placeholder{color:#98a29e;opacity:1}
.su-input:hover,.su-select:hover,.su-textarea:hover,input:hover,select:hover,textarea:hover{border-color:#b8c5bf}
.su-input:focus,.su-select:focus,.su-textarea:focus,input:focus,select:focus,textarea:focus{border-color:var(--su-primary);box-shadow:var(--su-focus)}
.su-input:disabled,.su-select:disabled,.su-textarea:disabled,input:disabled,select:disabled,textarea:disabled{background:#f1f3f2;color:#8a9490;cursor:not-allowed;opacity:.78}
.su-input[readonly],.su-textarea[readonly],input[readonly],textarea[readonly]{background:#f8faf9;color:#5f6965}
.su-input.is-error,.su-select.is-error,.su-textarea.is-error,.su-form-group.is-error .su-input,.su-form-group.is-error .su-select,.su-form-group.is-error .su-textarea{border-color:#dc6666;box-shadow:0 0 0 3px rgba(169,35,35,.09)}
.su-input.is-success,.su-select.is-success,.su-textarea.is-success,.su-form-group.is-success .su-input,.su-form-group.is-success .su-select,.su-form-group.is-success .su-textarea{border-color:#57a386}
.su-help{font-size:11px;line-height:1.45;color:var(--su-muted)}.su-error-text{font-size:11px;color:var(--su-danger);font-weight:700}.su-success-text{font-size:11px;color:var(--su-success);font-weight:700}

/* Checkbox / radio / switch */
.su-checkbox,.su-radio{display:inline-flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:13px;line-height:1.4;color:var(--su-text)}
.su-checkbox input,.su-radio input{width:18px;height:18px;min-width:18px;margin:0;accent-color:var(--su-primary);cursor:pointer}
.su-checkbox input:focus-visible,.su-radio input:focus-visible{outline:3px solid rgba(23,57,47,.13);outline-offset:2px}
.su-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;font-weight:700}.su-switch input{position:absolute;opacity:0;pointer-events:none}.su-switch-track{position:relative;width:42px;height:24px;border-radius:999px;background:#cbd3cf;transition:.18s ease;flex:none}.su-switch-track::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:.18s ease}.su-switch input:checked+.su-switch-track{background:var(--su-primary)}.su-switch input:checked+.su-switch-track::after{transform:translateX(18px)}.su-switch input:focus-visible+.su-switch-track{box-shadow:var(--su-focus)}.su-switch input:disabled+.su-switch-track{opacity:.55;cursor:not-allowed}

/* Buttons */
.su-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 14px;border:1px solid transparent;border-radius:var(--su-radius);font:inherit;font-size:13px;font-weight:800;line-height:1.2;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease,opacity .15s ease;user-select:none}
.su-btn:active:not(:disabled){transform:translateY(1px)}.su-btn:focus-visible{outline:none;box-shadow:var(--su-focus)}.su-btn:disabled,.su-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none}
.su-btn-primary{background:var(--su-primary);color:#fff}.su-btn-primary:hover{background:var(--su-primary-hover)}
.su-btn-secondary{background:#eef3f1;color:#1e4438;border-color:#dfe7e3}.su-btn-secondary:hover{background:#e4ece8}
.su-btn-danger{background:var(--su-danger);color:#fff}.su-btn-danger:hover{background:var(--su-danger-hover)}
.su-btn-icon{width:40px;height:40px;padding:0;border-radius:var(--su-radius);background:#eef3f1;color:#1e4438}

/* Surfaces */
.su-card{background:var(--su-surface);border:1px solid var(--su-border-soft);border-radius:var(--su-radius-lg);padding:20px;box-shadow:var(--su-shadow-sm)}
.su-section{margin:0 0 20px}.su-section-title{font-size:18px;font-weight:850;margin:0 0 5px}.su-section-subtitle{font-size:13px;color:var(--su-muted);margin:0}
.su-badge,.su-status{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#56615d;font-size:11px;font-weight:800;white-space:nowrap}.su-status.is-active,.su-badge.is-success{background:var(--su-success-soft);color:var(--su-success)}.su-status.is-inactive{background:#f3f4f6;color:#6b7280}.su-status.is-danger,.su-badge.is-danger{background:var(--su-danger-soft);color:var(--su-danger)}.su-badge.is-warning{background:var(--su-warning-soft);color:var(--su-warning)}

/* Dropdown / autocomplete */
.su-dropdown,.su-autocomplete{position:relative}.su-dropdown-menu,.su-autocomplete-list{position:absolute;z-index:80;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow:auto;background:var(--su-surface);border:1px solid var(--su-border);border-radius:var(--su-radius);box-shadow:0 14px 38px #11182718;padding:6px}.su-dropdown-menu[hidden],.su-autocomplete-list[hidden]{display:none!important}.su-dropdown-item,.su-autocomplete-item{display:flex;width:100%;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--su-text);font:inherit;font-size:13px;text-align:left;cursor:pointer;text-decoration:none}.su-dropdown-item:hover,.su-autocomplete-item:hover,.su-autocomplete-item[aria-selected="true"]{background:var(--su-primary-soft);color:var(--su-primary)}.su-autocomplete-empty{padding:12px;color:var(--su-muted);font-size:12px;text-align:center}

/* Alerts and toast */
.su-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--su-border-soft);border-radius:var(--su-radius);background:#f8faf9;color:var(--su-text);font-size:13px;line-height:1.45}.su-alert.is-success{background:var(--su-success-soft);border-color:#cfeada;color:#166534}.su-alert.is-danger{background:var(--su-danger-soft);border-color:#fecdd3;color:#9f1239}.su-alert.is-warning{background:var(--su-warning-soft);border-color:#f3dfae;color:#7a5000}.su-alert.is-info{background:var(--su-info-soft);border-color:#d2e8f2;color:#245b78}
.su-toast-region{position:fixed;z-index:1200;top:18px;right:18px;display:grid;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}.su-toast{pointer-events:auto;background:#202925;color:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 16px 40px #0003;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;font-size:13px;line-height:1.4}.su-toast.is-success{background:#145b43}.su-toast.is-danger{background:#8d2525}.su-toast.is-warning{background:#79510b}.su-toast-close{border:0;background:transparent;color:inherit;font-size:20px;line-height:1;padding:0 2px;cursor:pointer;opacity:.75}

/* Tables */
.su-table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.su-table{width:100%;border-collapse:collapse;background:var(--su-surface)}.su-table th,.su-table td{padding:11px 9px;border-bottom:1px solid var(--su-border-soft);font-size:13px;text-align:left;vertical-align:middle}.su-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#7a827e;font-weight:800}.su-table tbody tr:hover{background:#fafcfa}

/* Modal */
.su-modal-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,20,.56);backdrop-filter:blur(2px);animation:suFade .14s ease}.su-modal{width:min(520px,100%);max-height:calc(100% - 12px);overflow:auto;background:var(--su-surface);border:1px solid rgba(255,255,255,.55);border-radius:var(--su-radius-xl);box-shadow:var(--su-shadow-modal);animation:suPop .16s ease}.su-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px 20px 14px;border-bottom:1px solid var(--su-border-soft)}.su-modal-title-wrap{display:flex;gap:12px;align-items:flex-start;min-width:0}.su-modal-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--su-primary-soft);color:var(--su-primary);display:grid;place-items:center;font-size:19px;font-weight:900}.su-modal.is-danger .su-modal-icon{background:var(--su-danger-soft);color:var(--su-danger)}.su-modal-title{margin:0;font-size:18px;line-height:1.25}.su-modal-close{width:36px;height:36px;flex:0 0 36px;border:0;border-radius:9px;background:#f2f4f3;color:#4f5b56;font-size:24px;line-height:1;cursor:pointer}.su-modal-body{padding:18px 20px;color:#4d5854;font-size:14px;line-height:1.55}.su-modal-body p:first-child{margin-top:0}.su-modal-body p:last-child{margin-bottom:0}.su-modal-footer{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:14px 20px 20px}.su-modal-open{overflow:hidden}
@keyframes suFade{from{opacity:0}to{opacity:1}}@keyframes suPop{from{transform:translateY(6px) scale(.985);opacity:.7}to{transform:none;opacity:1}}

/* Compatibility aliases for current Core markup. Official plugin API remains .su-* */
.btn{min-height:40px}.btn:not(.secondary):not(.danger){background:var(--su-primary)}.btn:not(.secondary):not(.danger):hover{background:var(--su-primary-hover)}
.card{border-radius:var(--su-radius-lg)}.pill{border-radius:999px}.alert{border-radius:var(--su-radius)}

@media(max-width:640px){
  :root{--su-control-h:46px}.su-card{padding:16px;border-radius:14px}.su-btn{min-height:44px;padding:10px 14px}.su-btn-icon{width:44px;height:44px}
  .su-input,.su-select,.su-textarea,input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea{font-size:16px}
  .su-modal-overlay{padding:10px;align-items:flex-end}.su-modal{border-radius:16px 16px 12px 12px;max-height:calc(100% - 8px)}.su-modal-header{padding:17px 16px 13px}.su-modal-body{padding:16px}.su-modal-footer{padding:12px 16px 16px}.su-modal-footer .su-btn{flex:1 1 130px}.su-toast-region{top:12px;right:12px;width:calc(100vw - 24px)}
}
@media(prefers-reduced-motion:reduce){.su-modal-overlay,.su-modal{animation:none}.su-input,.su-select,.su-textarea,.su-btn,.su-switch-track,.su-switch-track::after{transition:none}}

/* Optional dark theme: activated only when Core/app sets data-su-theme="dark". */
[data-su-theme="dark"]{--su-bg:#111714;--su-surface:#19211d;--su-surface-soft:#202924;--su-text:#edf3f0;--su-muted:#9eaaa5;--su-primary:#86b7a4;--su-primary-hover:#9bc6b5;--su-primary-soft:#223b32;--su-border:#34433d;--su-border-soft:#2b3732;--su-danger:#e47676;--su-danger-soft:#3a2222;--su-success:#76c6a5;--su-success-soft:#17372b;--su-focus:0 0 0 3px rgba(134,183,164,.18)}
[data-su-theme="dark"] .su-input,[data-su-theme="dark"] .su-select,[data-su-theme="dark"] .su-textarea,[data-su-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),[data-su-theme="dark"] select,[data-su-theme="dark"] textarea{background:var(--su-surface);color:var(--su-text);border-color:var(--su-border)}


/* Core shell compatibility for Theme System v0.16.1. Plugins should use .su-* tokens/classes. */
html[data-su-theme="dark"]{color-scheme:dark;background:var(--su-bg)}
[data-su-theme="dark"] body{background:var(--su-bg)!important;color:var(--su-text)!important}
[data-su-theme="dark"] .side,[data-su-theme="dark"] .card,[data-su-theme="dark"] .su-card,[data-su-theme="dark"] .plugin-filterbar,[data-su-theme="dark"] .plugin-row,[data-su-theme="dark"] .upload-panel,[data-su-theme="dark"] .empty,[data-su-theme="dark"] .box,[data-su-theme="dark"] .login{background:var(--su-surface)!important;color:var(--su-text)!important;border-color:var(--su-border)!important}
[data-su-theme="dark"] .layout,[data-su-theme="dark"] .main{background:var(--su-bg);color:var(--su-text)}
[data-su-theme="dark"] .side{border-color:var(--su-border)!important}
[data-su-theme="dark"] .side a,[data-su-theme="dark"] .nav a{color:var(--su-text)}
[data-su-theme="dark"] .side a:hover,[data-su-theme="dark"] .nav a:hover{background:var(--su-surface-soft)}
[data-su-theme="dark"] .side a.active,[data-su-theme="dark"] .nav a.active{background:var(--su-primary-soft);color:var(--su-text)}
[data-su-theme="dark"] .business,[data-su-theme="dark"] .mobile-side-head,[data-su-theme="dark"] .plugin-tabs,[data-su-theme="dark"] th,[data-su-theme="dark"] td{border-color:var(--su-border-soft)!important}
[data-su-theme="dark"] .muted,[data-su-theme="dark"] .hint,[data-su-theme="dark"] .small,[data-su-theme="dark"] .caption,[data-su-theme="dark"] .navtitle,[data-su-theme="dark"] .plugin-desc,[data-su-theme="dark"] .plugin-meta,[data-su-theme="dark"] th{color:var(--su-muted)!important}
[data-su-theme="dark"] .badge,[data-su-theme="dark"] .pill,[data-su-theme="dark"] .code,[data-su-theme="dark"] .section-note{background:var(--su-surface-soft)!important;color:var(--su-text)!important;border-color:var(--su-border)!important}
[data-su-theme="dark"] .btn.secondary,[data-su-theme="dark"] .su-btn-secondary,[data-su-theme="dark"] .mobile-side-close,[data-su-theme="dark"] .su-modal-close{background:var(--su-surface-soft)!important;color:var(--su-text)!important;border-color:var(--su-border)!important}
[data-su-theme="dark"] .plugin-row:hover{border-color:var(--su-primary)!important;box-shadow:none}
[data-su-theme="dark"] .plugin-icon{background:var(--su-primary-soft);color:var(--su-primary)}
[data-su-theme="dark"] .file,[data-su-theme="dark"] .dropzone{border-color:var(--su-border)!important;background:var(--su-surface-soft)!important;color:var(--su-text)!important}
[data-su-theme="dark"] .ok{background:var(--su-success-soft)!important;color:var(--su-success)!important}
[data-su-theme="dark"] .bad{background:var(--su-danger-soft)!important;color:var(--su-danger)!important}
[data-su-theme="dark"] .su-modal{background:var(--su-surface);color:var(--su-text);border-color:var(--su-border)}
[data-su-theme="dark"] .su-modal-header,[data-su-theme="dark"] .su-modal-footer{border-color:var(--su-border-soft)}
[data-su-theme="dark"] .su-modal-body{color:var(--su-muted)}

/* Dark contrast refinement — Core 0.16.1
   WCAG-oriented contrast pass for text, secondary copy and component states. */
[data-su-theme="dark"]{
  --su-bg:#0d1310;
  --su-surface:#18211d;
  --su-surface-soft:#222c27;
  --su-text:#f4f8f6;
  --su-muted:#c0cbc6;
  --su-primary:#9bcbb9;
  --su-primary-hover:#b3d9ca;
  --su-primary-soft:#203d33;
  --su-border:#42534c;
  --su-border-soft:#33413b;
  --su-danger:#ff9b9b;
  --su-danger-hover:#ffb0b0;
  --su-danger-soft:#432626;
  --su-success:#96d9ba;
  --su-success-soft:#183c2d;
  --su-warning:#f0c878;
  --su-warning-soft:#3d321b;
  --su-info:#9ecfea;
  --su-info-soft:#193444;
}
[data-su-theme="dark"] .su-label,
[data-su-theme="dark"] label,
[data-su-theme="dark"] .su-section-title,
[data-su-theme="dark"] h1,
[data-su-theme="dark"] h2,
[data-su-theme="dark"] h3,
[data-su-theme="dark"] h4,
[data-su-theme="dark"] strong{color:var(--su-text)}
[data-su-theme="dark"] .su-help,
[data-su-theme="dark"] .muted,
[data-su-theme="dark"] .hint,
[data-su-theme="dark"] .small,
[data-su-theme="dark"] .caption,
[data-su-theme="dark"] .navtitle,
[data-su-theme="dark"] .plugin-desc,
[data-su-theme="dark"] .plugin-meta,
[data-su-theme="dark"] .su-section-subtitle,
[data-su-theme="dark"] .su-autocomplete-empty,
[data-su-theme="dark"] .su-modal-body{color:var(--su-muted)!important}
[data-su-theme="dark"] .su-input::placeholder,
[data-su-theme="dark"] .su-textarea::placeholder,
[data-su-theme="dark"] input::placeholder,
[data-su-theme="dark"] textarea::placeholder{color:#9facA6;opacity:1}
[data-su-theme="dark"] .su-input:hover,
[data-su-theme="dark"] .su-select:hover,
[data-su-theme="dark"] .su-textarea:hover,
[data-su-theme="dark"] input:hover,
[data-su-theme="dark"] select:hover,
[data-su-theme="dark"] textarea:hover{border-color:#5f746b}
[data-su-theme="dark"] .su-input:disabled,
[data-su-theme="dark"] .su-select:disabled,
[data-su-theme="dark"] .su-textarea:disabled,
[data-su-theme="dark"] input:disabled,
[data-su-theme="dark"] select:disabled,
[data-su-theme="dark"] textarea:disabled{background:#202824;color:#aab6b0;opacity:1}
[data-su-theme="dark"] .su-input[readonly],
[data-su-theme="dark"] .su-textarea[readonly],
[data-su-theme="dark"] input[readonly],
[data-su-theme="dark"] textarea[readonly]{background:#1f2824;color:#d3dcd8}
[data-su-theme="dark"] .su-btn-secondary,
[data-su-theme="dark"] .su-btn-icon{background:#26332d!important;color:#edf5f1!important;border-color:#42534c!important}
[data-su-theme="dark"] .su-btn-secondary:hover,
[data-su-theme="dark"] .su-btn-icon:hover{background:#304139!important;color:#fff!important}
[data-su-theme="dark"] .su-badge,
[data-su-theme="dark"] .su-status{background:#29342f;color:#dbe5e0;border:1px solid #42534c}
[data-su-theme="dark"] .su-status.is-inactive{background:#29312e;color:#c3ccc8}
[data-su-theme="dark"] .su-status.is-active,
[data-su-theme="dark"] .su-badge.is-success{color:#a9e6ca}
[data-su-theme="dark"] .su-status.is-danger,
[data-su-theme="dark"] .su-badge.is-danger{color:#ffaaaa}
[data-su-theme="dark"] .su-badge.is-warning{color:#f4d28c}
[data-su-theme="dark"] .su-dropdown-item:hover,
[data-su-theme="dark"] .su-autocomplete-item:hover,
[data-su-theme="dark"] .su-autocomplete-item[aria-selected="true"]{background:var(--su-primary-soft);color:#c8eadc}
[data-su-theme="dark"] .su-alert{background:#202a25;color:#edf4f1;border-color:#42534c}
[data-su-theme="dark"] .su-alert.is-success{background:#17372b;color:#b9ecd3;border-color:#2d684f}
[data-su-theme="dark"] .su-alert.is-danger{background:#402424;color:#ffc1c1;border-color:#744040}
[data-su-theme="dark"] .su-alert.is-warning{background:#3a301b;color:#f5d99d;border-color:#715c2d}
[data-su-theme="dark"] .su-alert.is-info{background:#193442;color:#c7e8f6;border-color:#315f74}
[data-su-theme="dark"] .su-table th{color:#bdc8c3!important}
[data-su-theme="dark"] .su-table td{color:#edf4f1}
[data-su-theme="dark"] .su-table tbody tr:hover{background:#202a25}
[data-su-theme="dark"] a:not(.su-btn):not(.btn):not(.nav):not(.side a){color:#a8d6c5}
[data-su-theme="dark"] a:not(.su-btn):not(.btn):not(.nav):not(.side a):hover{color:#c6e8dc}
[data-su-theme="dark"] .su-error-text{color:#ffaaaa}
[data-su-theme="dark"] .su-success-text{color:#a9e6ca}
[data-su-theme="dark"] .su-modal-close{color:#e6efeb!important}
[data-su-theme="dark"] .su-toast{background:#26332d;color:#f6faf8}
[data-su-theme="dark"] .su-toast.is-success{background:#1e5f47;color:#f4fff9}
[data-su-theme="dark"] .su-toast.is-danger{background:#8f3535;color:#fff7f7}
[data-su-theme="dark"] .su-toast.is-warning{background:#75591b;color:#fff9e9}
