/* ============================================================
   BASE.CSS — Reset + Custom Properties (Wine Skin)
   Survey Platform — websurvey.lirium.it
   ============================================================ */

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { line-height: 1.6; }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
ul, ol { list-style: none; }

/* --- Custom Properties — Wine Skin --- */
:root {
    /* Colori */
    --clr-primary:        #722F37;
    --clr-primary-dark:   #4A1520;
    --clr-primary-light:  #9E4D57;
    --clr-accent:         #C07840;
    --clr-accent-light:   #D4956A;
    --clr-bg:             #F7F2EA;
    --clr-surface:        #FFFFFF;
    --clr-surface-warm:   #FDF8F2;
    --clr-dark:           #1C0A10;
    --clr-text:           #2D1015;
    --clr-text-muted:     #7A5C62;
    --clr-border:         #D9C4B0;
    --clr-border-light:   #EDE3D8;
    --clr-success:        #3D6B4F;
    --clr-error:          #A31621;
    --clr-warning:        #B87333;

    /* Tipografia */
    --font-serif:    'Georgia', 'Times New Roman', 'DejaVu Serif', serif;
    --font-sans:     system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    --font-mono:     'SFMono-Regular', 'Consolas', 'Liberation Mono', monospace;

    /* Dimensioni testo */
    --text-xs:   0.75rem;
    --text-sm:   0.875rem;
    --text-base: 1rem;
    --text-md:   1.125rem;
    --text-lg:   1.25rem;
    --text-xl:   1.5rem;
    --text-2xl:  1.875rem;
    --text-3xl:  2.25rem;

    /* Spaziatura */
    --space-1:   0.25rem;
    --space-2:   0.5rem;
    --space-3:   0.75rem;
    --space-4:   1rem;
    --space-5:   1.25rem;
    --space-6:   1.5rem;
    --space-8:   2rem;
    --space-10:  2.5rem;
    --space-12:  3rem;
    --space-16:  4rem;

    /* Border radius */
    --radius-sm:  4px;
    --radius-md:  8px;
    --radius-lg:  16px;
    --radius-xl:  24px;
    --radius-full: 9999px;

    /* Ombra */
    --shadow-sm:  0 1px 3px rgba(28,10,16,0.10);
    --shadow-md:  0 4px 12px rgba(28,10,16,0.12);
    --shadow-lg:  0 8px 24px rgba(28,10,16,0.16);
    --shadow-xl:  0 16px 40px rgba(28,10,16,0.20);

    /* Transizioni */
    --transition-fast:  150ms ease;
    --transition-base:  250ms ease;
    --transition-slow:  400ms ease;

    /* Layout */
    --max-width-survey: 680px;
    --max-width-admin:  1200px;
}

/* --- Utilità globali --- */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.alert {
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-6);
}
.alert--error {
    background: #fef2f2;
    color: var(--clr-error);
    border: 1px solid #fca5a5;
}
.alert--success {
    background: #f0fdf4;
    color: var(--clr-success);
    border: 1px solid #86efac;
}

.badge {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.badge--draft    { background: #f3f4f6; color: #6b7280; }
.badge--active   { background: #d1fae5; color: #065f46; }
.badge--closed   { background: #fee2e2; color: #991b1b; }
.badge--completed  { background: #d1fae5; color: #065f46; }
.badge--abandoned  { background: #fef3c7; color: #92400e; }

/* Bottoni base */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    border: none; border-radius: var(--radius-md);
    font-size: var(--text-base); font-weight: 600;
    cursor: pointer; text-decoration: none;
    transition: background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
    white-space: nowrap;
}
.btn:focus-visible { outline: 3px solid var(--clr-accent); outline-offset: 2px; }
.btn:active { transform: translateY(1px); }
.btn--primary {
    background: var(--clr-primary);
    color: #fff;
    box-shadow: var(--shadow-sm);
}
.btn--primary:hover { background: var(--clr-primary-dark); box-shadow: var(--shadow-md); }
.btn--secondary {
    background: transparent;
    color: var(--clr-primary);
    border: 2px solid var(--clr-primary);
}
.btn--secondary:hover { background: var(--clr-primary); color: #fff; }
.btn--outline {
    background: transparent;
    color: var(--clr-text);
    border: 1px solid var(--clr-border);
}
.btn--outline:hover { border-color: var(--clr-primary); color: var(--clr-primary); }
.btn--full { width: 100%; }

.btn-link { background: none; border: none; cursor: pointer; text-decoration: underline; font-size: var(--text-sm); color: var(--clr-primary); padding: 0; }
.btn-link--danger { color: var(--clr-error); }

/* Form base */
.form-group { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-5); }
.form-label { font-size: var(--text-sm); font-weight: 600; color: var(--clr-text); }
.form-hint  { font-size: var(--text-xs); color: var(--clr-text-muted); }
.form-input {
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    color: var(--clr-text);
    background: var(--clr-surface);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    width: 100%;
}
.form-input:focus { outline: none; border-color: var(--clr-primary); box-shadow: 0 0 0 3px rgba(114,47,55,0.15); }
.form-textarea { resize: vertical; min-height: 80px; }
.form-textarea--tall { min-height: 120px; }
.form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23722F37' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; }
.form-group--inline { flex-direction: row; align-items: center; gap: var(--space-3); }
.form-group--half { width: calc(50% - var(--space-3)); }
.form-group--third { width: calc(33.33% - var(--space-3)); }
.form-row { display: flex; gap: var(--space-6); flex-wrap: wrap; }
.form-actions { margin-top: var(--space-8); display: flex; gap: var(--space-4); }
.form-fieldset { border: 1px solid var(--clr-border); border-radius: var(--radius-md); padding: var(--space-5); margin-bottom: var(--space-5); }
.form-legend { font-size: var(--text-sm); font-weight: 700; color: var(--clr-primary); padding: 0 var(--space-2); }
.form-radio-group { display: flex; gap: var(--space-5); flex-wrap: wrap; }
.form-input--sm { width: 120px; }
.form-input--xs { width: 70px; }

/* Utilità inline form */
.form-inline { display: inline; }
