/* Componenti condivisi fra sito pubblico e studio. */
[hidden] { display: none !important; }
.field input,.field select,.field textarea,.login-panel input,.editor-form input:not([type=checkbox]),.editor-form select,.editor-form textarea {
  min-height:48px; min-width:0; padding:12px 14px; border:1px solid var(--control-line); border-radius:0; background:var(--surface); color:var(--ink); font-size:1rem; line-height:1.4; transition:border-color .16s,box-shadow .16s;
}
.field input::placeholder,.field textarea::placeholder,.editor-form input::placeholder,.editor-form textarea::placeholder { color:var(--muted); opacity:1; }
.field :is(input,select,textarea):focus,.login-panel input:focus,.editor-form :is(input,select,textarea):focus { border-color:var(--accent); outline:2px solid var(--accent); outline-offset:3px; }
.field :is(input,select,textarea):disabled { opacity:1; background:#eeebf2; border-color:var(--line); color:var(--muted); cursor:not-allowed; }
.field select,.editor-form select { appearance:none; padding-right:44px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235733ba' stroke-width='1.6'%3E%3Cpath d='m5 7 5 5 5-5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; background-size:20px; }
.field label,.select-field>label,.image-field>label { font-size:.8rem; font-weight:700; }
.select-field,.image-field { display:grid; align-content:start; gap:7px; min-width:0; }
.select-control { position:relative; min-width:0; }
.select-native { position:absolute!important; width:1px!important; height:1px!important; min-height:0!important; padding:0!important; opacity:0; pointer-events:none; }
.select-trigger { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--control-line); border-radius:0; background:var(--surface); color:var(--ink); text-align:left; font-size:1rem; font-weight:400; }
.select-trigger>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.select-trigger::after { content:''; width:8px; height:8px; flex:none; margin:0 4px 4px 0; border-right:2px solid var(--accent); border-bottom:2px solid var(--accent); transform:rotate(45deg); }
.select-trigger[aria-expanded=true] { border-color:var(--accent); }
.select-trigger[aria-expanded=true]::after { transform:rotate(225deg); margin-top:8px; }
.select-trigger:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.select-options { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:20; margin:0; padding:6px; max-height:260px; overflow-y:auto; border:1px solid var(--accent); background:var(--surface); box-shadow:0 14px 32px rgb(28 16 48 / .14); list-style:none; }
.select-option { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px; color:var(--ink); font-size:.9rem; font-weight:400; cursor:pointer; overflow-wrap:anywhere; }
.select-option.is-active { background:#eee8f9; color:var(--accent-dark); }
.select-option[aria-selected=true]::after { content:'✓'; color:var(--accent); font-weight:700; }
.select-error { margin:0; color:#8b2942; font-size:.8rem; }
.select-trigger[aria-invalid=true],.editor-form [aria-invalid=true] { border-color:#8b2942; }
.publish-toggle { min-height:44px; cursor:pointer; }
.publish-toggle input { width:22px; height:22px; accent-color:var(--accent); }
.image-field { grid-column:1/-1; padding:22px; border:1px solid var(--line); background:var(--surface); }
.image-field input[type=file] { padding:8px; background:var(--paper); font-size:.88rem; }
.image-field input::file-selector-button { min-height:40px; margin-right:12px; padding:8px 14px; border:1px solid var(--accent); border-radius:0; background:var(--accent); color:white; font:inherit; cursor:pointer; }
.image-field input::file-selector-button:hover { background:var(--accent-dark); }
.image-field small { font-size:.78rem; font-weight:400; color:var(--muted); }
.image-preview { margin-top:10px; padding:12px; border:1px solid var(--line); background:var(--paper); }
.image-preview img { display:block; max-width:100%; width:auto; height:auto; max-height:280px; object-fit:contain; }
.image-status { margin:5px 0 0; font-size:.83rem; color:var(--muted); overflow-wrap:anywhere; }
.image-status.is-error { color:#8b2942; }
.image-reset { justify-self:start; margin-top:5px; }
.admin-button { min-height:48px; gap:10px; border-radius:0; background:var(--accent); border-color:var(--accent); transition:background .16s,border-color .16s,color .16s; }
.admin-button:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
.admin-button--light { background:transparent; color:var(--accent-dark); border-color:var(--control-line); }
.admin-button--light:hover { background:#eee8f9; color:var(--accent-dark); border-color:var(--accent); }
.admin-button--danger { background:#8b2942; border-color:#8b2942; }
.admin-button--danger:hover { background:#6f2035; border-color:#6f2035; }
.admin-button:disabled { opacity:.6; cursor:wait; }
.admin-header :focus-visible,.page-home .site-header :focus-visible { outline-color:var(--lime); }
.admin-row>a,.danger-link,.editor-actions>a { display:inline-flex; align-items:center; min-height:44px; }
.success,.error { padding:16px 18px; border:1px solid #b4c38c; border-left:4px solid #53652b; background:#f0f5e7; color:var(--ink); font-size:.92rem; line-height:1.6; overflow-wrap:anywhere; }
.error { border-color:#d9a6b0; border-left-color:#8b2942; background:#f9eef1; }
.confirm-dialog { width:min(520px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:32px; border:1px solid var(--line); background:var(--paper); color:var(--ink); box-shadow:0 24px 80px rgb(28 16 48 / .25); }
.confirm-dialog::backdrop { background:rgb(28 16 48 / .65); }
.confirm-dialog h2 { margin:14px 0 16px; font:400 clamp(1.8rem,5vw,2.4rem)/1.12 Georgia,serif; letter-spacing:-.04em; overflow-wrap:anywhere; }
.confirm-dialog p { color:var(--muted); }
.dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:26px; }
.admin-row>div,.editor-grid>label { min-width:0; }
.admin-row strong,.admin-row small { overflow-wrap:anywhere; }
.editor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:700px) { .editor-grid { grid-template-columns:minmax(0,1fr); } .editor-actions { flex-wrap:wrap; gap:14px; } .image-field { padding:16px; } .confirm-dialog { padding:24px; } .dialog-actions { flex-direction:column; } .dialog-actions .admin-button { width:100%; } }
@media(max-width:400px) { .page-richiesta .page-intro h1 { font-size:clamp(2.7rem,12vw,3.4rem); overflow-wrap:anywhere; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

.admin-content-nav { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.admin-content-nav a { padding:14px 18px; border:1px solid var(--control-line); background:var(--surface); color:var(--accent-dark); min-height:48px; }
.admin-content-nav a[aria-current=page],.admin-content-nav a:hover { background:var(--accent); color:white; }
.content-row { grid-template-columns:auto minmax(0,1fr) auto auto auto; }
.content-row:not(:has(>img)) { grid-template-columns:minmax(0,1fr) auto auto auto; }
@media(max-width:700px) { .content-row,.content-row:not(:has(>img)) { display:flex; flex-wrap:wrap; gap:14px; } .content-row>div { flex:1 1 calc(100% - 100px); } .admin-content-nav a { flex:1 1 170px; } }
