/* Base e pezzi grafici dell'interfaccia (nel vecchio: Tailwind + shadcn). Scritti a mano: le stesse regole di base (preflight) e un blocco per ogni data-slot. */
*,::before,::after{box-sizing:border-box;border:0 solid;margin:0;padding:0}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--font-body,ui-sans-serif,system-ui,sans-serif);-webkit-tap-highlight-color:transparent}
hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em}small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}
table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}
ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}
button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}
::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}
button,[role=button]{cursor:pointer}:disabled{cursor:default}[hidden]:where(:not([hidden=until-found])){display:none!important}
::file-selector-button{margin-inline-end:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
body{color:var(--foreground)}
.ui-button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:8px;border-radius:6px;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;transition:all .15s;outline:none;height:36px;padding:8px 16px;background:var(--primary);color:var(--primary-foreground)}
.ui-button:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 50%,transparent)}
.ui-button:disabled{pointer-events:none;opacity:.5}.ui-button svg{pointer-events:none;flex-shrink:0;width:16px;height:16px}
.ui-button:hover{background:color-mix(in oklab,var(--primary) 90%,transparent)}
.ui-button[data-variant=destructive]{background:var(--destructive);color:#fff}.ui-button[data-variant=destructive]:hover{background:color-mix(in oklab,var(--destructive) 90%,transparent)}
.ui-button[data-variant=outline]{border:1px solid var(--border);background:transparent;color:var(--foreground);box-shadow:0 1px 2px #0000000d}.ui-button[data-variant=outline]:hover{background:var(--accent);color:var(--accent-foreground)}
.ui-button[data-variant=secondary]{background:var(--secondary);color:var(--secondary-foreground)}.ui-button[data-variant=secondary]:hover{background:color-mix(in oklab,var(--secondary) 80%,transparent)}
.ui-button[data-variant=ghost]{background:transparent;color:var(--foreground)}.ui-button[data-variant=ghost]:hover{background:var(--accent);color:var(--accent-foreground)}
.ui-button[data-variant=link]{background:transparent;color:var(--primary);text-underline-offset:4px}.ui-button[data-variant=link]:hover{text-decoration:underline;background:transparent}
.ui-button[data-size=xs]{height:24px;gap:4px;padding:0 8px;font-size:12px}.ui-button[data-size=sm]{height:32px;gap:6px;padding:0 12px}.ui-button[data-size=lg]{height:40px;padding:0 24px}
.ui-button[data-size=icon]{width:36px;padding:0}.ui-button[data-size=icon-xs]{width:24px;height:24px;padding:0}.ui-button[data-size=icon-sm]{width:32px;height:32px;padding:0}.ui-button[data-size=icon-lg]{width:40px;height:40px;padding:0}
.ui-input,.ui-textarea{display:flex;width:100%;min-width:0;border-radius:6px;border:1px solid var(--input);background:transparent;padding:4px 12px;font-size:16px;line-height:24px;box-shadow:0 1px 2px #0000000d;outline:none;transition:color .15s,box-shadow .15s}
.ui-input{height:36px}.ui-textarea{min-height:64px;padding:8px 12px;field-sizing:content}
.ui-input::placeholder,.ui-textarea::placeholder{color:var(--muted-foreground)}
.ui-input:focus-visible,.ui-textarea:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 50%,transparent)}
.ui-input:disabled,.ui-textarea:disabled{pointer-events:none;cursor:not-allowed;opacity:.5}
.ui-input[aria-invalid=true],.ui-textarea[aria-invalid=true]{border-color:var(--destructive)}
@media(min-width:768px){.ui-input,.ui-textarea{font-size:14px;line-height:20px}}
.ui-skeleton{border-radius:6px;background:var(--accent);animation:ui-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes ui-pulse{50%{opacity:.5}}
.ui-progress{position:relative;height:8px;width:100%;overflow:hidden;border-radius:9999px;background:color-mix(in oklab,var(--primary) 20%,transparent)}
.ui-progress-indicator{height:100%;width:100%;flex:1;background:var(--primary);transition:all .15s}
.ui-checkbox{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;border-radius:4px;border:1px solid var(--input);box-shadow:0 1px 2px #0000000d;outline:none;padding:0}
.ui-checkbox:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 50%,transparent)}.ui-checkbox:disabled{cursor:not-allowed;opacity:.5}
.ui-checkbox[data-state=checked]{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.ui-checkbox-indicator{display:grid;place-content:center;color:currentColor}
.ui-tabs{display:flex;flex-direction:column;gap:8px}
.ui-tabs-list{display:inline-flex;width:fit-content;align-items:center;justify-content:center;height:36px;border-radius:8px;padding:3px;background:var(--muted);color:var(--muted-foreground)}
.ui-tabs-trigger{display:inline-flex;flex:1;height:calc(100% - 1px);align-items:center;justify-content:center;gap:6px;border-radius:6px;border:1px solid transparent;padding:4px 8px;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;color:var(--foreground);transition:color .15s,box-shadow .15s}
.ui-tabs-trigger[data-state=active]{background:var(--background);box-shadow:0 1px 2px #0000000d}.ui-tabs-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 50%,transparent)}
.ui-tabs-content{flex:1;outline:none}
.ui-dialog-overlay{position:fixed;inset:0;z-index:50;background:#00000080}
.ui-dialog-content{position:fixed;top:50%;left:50%;z-index:50;display:grid;width:100%;max-width:calc(100% - 2rem);transform:translate(-50%,-50%);gap:16px;border-radius:8px;border:1px solid var(--border);background:var(--background);padding:24px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;outline:none}
@media(min-width:640px){.ui-dialog-content{max-width:512px}}
.ui-dialog-x{position:absolute;top:16px;right:16px;border-radius:2px;opacity:.7;transition:opacity .15s;background:transparent}.ui-dialog-x:hover{opacity:1}.ui-dialog-x:focus{outline:none;box-shadow:0 0 0 2px var(--ring)}
.ui-dialog-header{display:flex;flex-direction:column;gap:8px;text-align:center}@media(min-width:640px){.ui-dialog-header{text-align:left}}
.ui-dialog-footer{display:flex;flex-direction:column-reverse;gap:8px}@media(min-width:640px){.ui-dialog-footer{flex-direction:row;justify-content:flex-end}}
.ui-dialog-title{font-size:18px;line-height:1;font-weight:600}.ui-dialog-description{font-size:14px;line-height:20px;color:var(--muted-foreground)}
.ui-select-trigger{display:flex;width:fit-content;align-items:center;justify-content:space-between;gap:8px;border-radius:6px;border:1px solid var(--input);background:transparent;padding:8px 12px;font-size:14px;line-height:20px;white-space:nowrap;box-shadow:0 1px 2px #0000000d;outline:none;height:36px}
.ui-select-trigger:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--ring) 50%,transparent)}.ui-select-trigger:disabled{cursor:not-allowed;opacity:.5}.ui-select-trigger svg{opacity:.5}
.ui-select-content{position:absolute;z-index:50;margin-top:4px;min-width:128px;max-height:320px;overflow:auto;border-radius:6px;border:1px solid var(--border);background:var(--popover);color:var(--popover-foreground);padding:4px;box-shadow:0 4px 6px -1px #0000001a}
.ui-select-item{position:relative;display:flex;width:100%;cursor:default;align-items:center;gap:8px;border-radius:2px;padding:6px 8px;font-size:14px;line-height:20px;outline:none;user-select:none}
.ui-select-item:focus,.ui-select-item:hover{background:var(--accent);color:var(--accent-foreground)}.ui-select-item[aria-selected=true]{font-weight:600}.ui-select-item[aria-disabled=true]{pointer-events:none;opacity:.5}
.ui-table-container{position:relative;width:100%;overflow-x:auto}.ui-table{width:100%;caption-side:bottom;font-size:14px;line-height:20px}
.ui-thead tr{border-bottom:1px solid var(--border)}.ui-tbody tr:last-child{border-bottom:0}.ui-tr{border-bottom:1px solid var(--border);transition:background-color .15s}.ui-tr:hover{background:color-mix(in oklab,var(--muted) 50%,transparent)}
.ui-th{height:40px;padding:0 8px;text-align:left;vertical-align:middle;font-weight:500;white-space:nowrap;color:var(--foreground)}.ui-td{padding:8px;vertical-align:middle;white-space:nowrap}
