/* ==========================================================================
   Area Riservata — ANCE Ancona
   Full-screen template styles, no theme header/footer.
   ========================================================================== */

:root{
  --navy:#052699;
  --navy-dark:#0B1B33;
  --navy-soft:#1E3A63;
  --red:#C1272D;
  --red-dark:#96181D;
  --bg:#F3F4F7;
  --card:#FFFFFF;
  --border:#E1E4EA;
  --text:#1C2430;
  --text-soft:#5B6472;
  --text-faint:#8A93A3;
  --green:#2F7D4F;
  --green-bg:#EAF5EE;
  --btn-bg:#F4F7FC;
  --btn-text:#052699;
  --btn-hover-bg:#052699;
  --btn-hover-text:#F4F7FC;
}

*{box-sizing:border-box;}

html,body{
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--text);
  font-family:'degular-text','Source Sans 3',sans-serif;
  font-weight:400;
  font-size:15px;
  line-height:1.5;
  min-height:100%;
}

body.ance-area-riservata.ance-area-riservata{font-family:'degular-text','Source Sans 3',sans-serif;}

body.ance-area-riservata h1,body.ance-area-riservata h2,body.ance-area-riservata h3,body.ance-area-riservata .brand{font-family:'degular-text','Montserrat',sans-serif;font-weight:600;}

a{color:inherit;text-decoration:none;}

button{font-family:inherit;cursor:pointer;}

input,select,textarea{
  font-family:inherit;
  font-size:14px;
}

/* Hide WordPress admin bar inside reserved area */
body.ance-area-riservata #wpadminbar{display:none !important;}
body.ance-area-riservata{position:static !important;}

/* ===== LOGIN VIEW ===== */
#login-view{
  display:flex;
  min-height:100vh;
}

.login-brand{
  flex:0 0 42%;
  background:var(--navy);
  color:#fff;
  padding:56px 48px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}

.login-brand::after{
  content:"";
  position:absolute;
  right:-60px;
  bottom:-60px;
  width:260px;
  height:260px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:4px;
  transform:rotate(18deg);
}

.login-brand::before{
  content:"";
  position:absolute;
  right:20px;
  bottom:60px;
  width:150px;
  height:150px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:4px;
  transform:rotate(18deg);
}

.logo-mark{display:flex;align-items:center;gap:10px;}

.ance-area-riservata .logo-square{
  width:38px;
  height:38px;
  background:var(--red);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:500;
  font-family:'degular-display','Montserrat',sans-serif;
  font-size:15px;
  flex-shrink:0;
}

.logo-image{
  max-width:220px;
  height:auto;
  display:block;
}

.logo-text-a{font-size:17px;font-weight:700;letter-spacing:.5px;}

.logo-text-b{font-size:11px;color:#AFC0DA;letter-spacing:.5px;}

.login-brand h1{
  font-size:26px;
  font-weight:600;
  line-height:1.35;
  margin:40px 0 18px;
  max-width:340px;
}

.login-brand p.lead{
  color:#C9D2E0;
  font-size:14.5px;
  max-width:320px;
  margin:0 0 28px;
}

.benefit-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.benefit-list li{
  display:flex;
  gap:12px;
  font-size:13.5px;
  color:#DCE3EE;
  align-items:flex-start;
}

.benefit-dot{
  width:20px;
  height:20px;
  border-radius:4px;
  background:rgba(255,255,255,.12);
  flex:0 0 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:#fff;
  margin-top:1px;
}

.login-foot{
  font-size:12px;
  color:#8FA0BC;
  position:relative;
  z-index:1;
}

.login-form-wrap{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px;
  background:#fff;
}

.login-form{
  width:100%;
  max-width:360px;
}

.login-form h2{font-size:21px;margin:0 0 6px;color:var(--navy);}

.login-form .sub{
  color:var(--text-soft);
  font-size:13.5px;
  margin:0 0 28px;
}

.field{margin-bottom:16px;}

.field label{
  display:block;
  font-size:12.5px;
  font-weight:600;
  color:var(--text-soft);
  margin-bottom:6px;
  text-transform:uppercase;
  letter-spacing:.3px;
}

.field input[type="text"],
.field input[type="password"],
.field input[type="email"],
.field input[type="url"],
.field input[type="date"],
.field input[type="time"],
.field select,
.field textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:4px;
  font-size:14px;
  background:#FAFBFC;
}

.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--navy);
  background:#fff;
}

.field .checkbox-label{
  font-family: 'degular-text', 'Source Sans 3', sans-serif;
  display:flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 600;
  color:var(--text-soft);
  cursor:pointer;
  margin-top:8px;
}

.field .checkbox-label input[type="checkbox"]{
  width:18px;
  height:18px;
  accent-color:var(--navy);
  cursor:pointer;
}

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
  vertical-align: middle;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: var(--navy);
}

input:focus + .slider {
  box-shadow: 0 0 1px var(--navy);
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.switch-label{
  font-family: 'degular-text', 'Source Sans 3', sans-serif;
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-soft);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.field input[type="file"]{
  padding:8px 0;
  border:none;
  background:transparent;
}

.row-between{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  margin:2px 0 22px;
  color:var(--text-soft);
}

.row-between a{color:var(--red);font-weight:600;}

.login-error{
  background:#FBEAEA;
  color:var(--red-dark);
  padding:10px 14px;
  border-radius:4px;
  font-size:13.5px;
  margin-bottom:18px;
  border-left:3px solid var(--red);
}

.ance-area-riservata button:not(.nav-item){
  background:var(--btn-bg);
  color:var(--btn-text);
  border:1px solid var(--btn-text);
  border-radius:8px;
  font-family:'degular-text','Source Sans 3',sans-serif;
  font-weight:600;
  transition:.15s;
  cursor:pointer;
}

.ance-area-riservata button:not(.nav-item):hover{
  background:var(--btn-hover-bg);
  color:var(--btn-hover-text);
  border-color:var(--btn-hover-bg);
}

.btn-primary,
.btn-outline{
  width:100%;
  padding:12px 24px;
  font-size:20px;
  line-height:1.4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  text-decoration:none;
}

.btn-primary{
  background:var(--navy);
  color:#fff;
  border:1px solid var(--navy);
  border-radius:8px;
  font-weight:600;
  transition:all .2s;
}

.btn-primary:hover,
.btn-primary:focus{
  background:var(--navy-dark);
  border-color:var(--navy-dark);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(5,38,153,.25);
}

.btn-outline{
  background:var(--btn-bg);
  color:var(--btn-text);
  border:1px solid var(--btn-text);
  border-radius:8px;
  font-weight:600;
  transition:all .2s;
}

.btn-outline:hover,
.btn-outline:focus{
  background:var(--btn-hover-bg);
  color:var(--btn-hover-text);
  border-color:var(--btn-hover-bg);
}

.login-form-link{
  text-align:center;
  margin-top:16px;
  font-size:13px;
}

.login-form-link a{
  color:var(--text-soft);
  font-weight:500;
  text-decoration:none;
}

.login-form-link a:hover{
  color:var(--navy);
  text-decoration:underline;
}

.divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:26px 0;
  color:var(--text-faint);
  font-size:12px;
}

.divider::before,.divider::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--border);
}

/* ===== DASHBOARD VIEW ===== */
#dash-view{display:none;min-height:100vh;}

body.logged-area #login-view{display:none;}
body.logged-area #dash-view{display:block;}

.dash-shell{display:flex;min-height:100vh;}

.sidebar{
  flex:0 0 236px;
  background:var(--navy);
  color:#fff;
  min-height:100vh;
  padding:22px 0;
  display:flex;
  flex-direction:column;
}

.sidebar .logo-mark{
  padding:0 22px 24px;
  border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:14px;
}

.sidebar .logo-image{filter:brightness(0) invert(1);}

.nav-list{flex:1;}

.nav-item{
  display:flex;
  align-items:center;
  gap:11px;
  padding:10px 22px;
  font-size:13.8px;
  color:#C9D2E0;
  font-weight:500;
  border-left:3px solid transparent;
  cursor:pointer;
  background:transparent;
  border:none;
  width:100%;
  text-align:left;
  text-decoration:none;
}

a.nav-item:hover{
  color:#C9D2E0;
}

.nav-item:hover{background:rgba(255,255,255,.06);}

.nav-item.active{background:rgba(255,255,255,.09);border-left-color:var(--red);color:#fff;}

a.nav-item.active:hover{
  color:#fff;
}

.nav-icon{
  width:17px;
  height:17px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.nav-sep{
  height:1px;
  background:rgba(255,255,255,.1);
  margin:14px 22px;
}

.nav-item.logout{color:#E5AFB2;margin-top:6px;}

.dash-main{flex:1;background:var(--bg);min-width:0;}

.dash-header{
  background:#fff;
  border-bottom:1px solid var(--border);
  padding:16px 32px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}

.dash-header h1{font-size:19px;margin:0;color:var(--navy);}

.dash-header .crumbs{font-size:12px;color:var(--text-faint);margin-bottom:4px;}

.user-chip{display:flex;align-items:center;gap:10px;font-size:13px;}

.ance-area-riservata .avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:500;
  font-size:13px;
  font-family:'degular-display','Montserrat',sans-serif;
}

.dash-body{padding:28px 32px;}

.section{display:none;}
.section.active{display:block;}

.quick-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-bottom:28px;
}

.quick-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:8px;
  padding:18px;
  cursor:pointer;
  transition:.15s;
  display:block;
  text-decoration:none;
}

a.quick-card:hover{
  color:inherit;
}

.quick-card:hover{
  border-color:var(--navy);
  box-shadow:0 2px 8px rgba(18,42,78,.08);
}

.ance-area-riservata .quick-card .qicon{
  width:34px;
  height:34px;
  border-radius:6px;
  background:#EEF2F8;
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:12px;
  font-weight:500;
  font-family:'degular-display','Montserrat',sans-serif;
  font-size:14px;
}

.quick-card h3{font-size:14.5px;margin:0 0 4px;color:var(--text);}

.quick-card p{font-size:12.5px;color:var(--text-soft);margin:0;}

.panel{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:8px;
  padding:22px;
  margin-bottom:22px;
}

.panel h2{font-size:16px;margin:0 0 4px;color:var(--navy);}

.panel .panel-sub{
  font-size:12.5px;
  color:var(--text-soft);
  margin:0 0 18px;
}

.list-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:13px 0;
  border-bottom:1px solid var(--border);
}

.list-row:last-child{border-bottom:none;}

.file-badge{
  width:36px;
  height:36px;
  border-radius:6px;
  background:#EEF2F8;
  color:var(--navy);
  font-size:10.5px;
  font-weight:500;
  font-family:'degular-display','Montserrat',sans-serif;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.file-badge.pdf{background:#FBEAEA;color:var(--red-dark);}
.file-badge.doc{background:#E6F1FB;color:#185FA5;}
.file-badge.xls{background:#EAF3DE;color:#3B6D11;}

.list-title{font-size:14px;font-weight:600;color:var(--text);}

.list-meta{font-size:12px;color:var(--text-faint);margin-top:2px;}

.tag{
  display:inline-block;
  font-size:10.5px;
  font-weight:600;
  padding:2px 8px;
  border-radius:20px;
  background:#EEF2F8;
  color:var(--navy-soft);
  margin-right:6px;
  text-transform:uppercase;
  letter-spacing:.3px;
}

.tag.new{background:var(--green-bg);color:var(--green);}

.row-spacer{flex:1;}

.btn-dl,
a.btn-dl{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12.5px;
  font-weight:600;
  padding:7px 12px;
  white-space:nowrap;
  background:var(--btn-bg);
  color:var(--btn-text);
  border:1px solid var(--btn-text);
  border-radius:8px;
  transition:.15s;
}

.btn-dl:hover,
a.btn-dl:hover{
  background:var(--btn-hover-bg);
  color:var(--btn-hover-text);
  border-color:var(--btn-hover-bg);
}

.cat-label{
  font-size:12px;
  font-weight:700;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:.5px;
  margin:22px 0 6px;
}

.cat-label:first-child{margin-top:0;}

.link-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:6px;
  margin-bottom:10px;
}

.link-card:hover{border-color:var(--navy);}

.link-ico{
  width:32px;
  height:32px;
  border-radius:50%;
  background:#EEF2F8;
  color:var(--navy);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-size:14px;
}

.ext{font-size:11px;color:var(--text-faint);margin-left:auto;}

.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}

.event-card{
  border:1px solid var(--border);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.ance-area-riservata .event-thumb{
  height:110px;
  background:linear-gradient(135deg,var(--navy),var(--navy-soft));
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,.5);
  font-family:'degular-display','Montserrat',sans-serif;
  font-weight:500;
  font-size:12px;
  letter-spacing:.5px;
}

.event-body{padding:14px 16px;}

.event-date{
  font-size:11.5px;
  color:var(--red);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.4px;
  margin-bottom:4px;
}

.event-body h3{font-size:14.5px;margin:0 0 6px;}

.event-desc{
  font-size:13.5px;
  color:var(--text-soft);
  margin:0 0 10px;
  line-height:1.45;
}

.event-files{display:flex;flex-direction:column;gap:7px;}

.event-file{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-soft);}

.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.field.full{grid-column:1/-1;}

.icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;}

.empty-state{
  color:var(--text-faint);
  font-size:13.5px;
  padding:24px 0;
  text-align:center;
}

/* ===== ADMIN GESTIONE ===== */
.admin-tabs{
  display:flex;
  gap:8px;
  margin-bottom:20px;
  border-bottom:1px solid var(--border);
  padding-bottom:12px;
  flex-wrap:wrap;
}

.admin-tab{
  padding:8px 16px;
  border-radius:20px;
  font-size:13px;
  color:var(--text-soft);
  background:#fff;
  border:1px solid var(--border);
}

.admin-tab.active{
  background:var(--btn-text);
  border-color:var(--btn-text);
  color:var(--btn-hover-text);
}

.form-admin{display:none;}
.form-admin.active{display:block;}

.admin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}

.repeater-files .repeater-item{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

.repeater-files .repeater-item input[type="file"]{flex:1;}

.btn-small{
  padding:6px 12px;
  border-radius:4px;
  font-size:12.5px;
}

.btn-small.btn-danger{
  background:#FBEAEA;
  color:var(--red-dark);
  border-color:#EEC7C9;
}

.btn-small.btn-danger:hover{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

.form-message{
  padding:12px 16px;
  border-radius:4px;
  margin-bottom:18px;
  font-size:13.5px;
}

.form-message.success{
  background:var(--green-bg);
  color:var(--green);
  border-left:3px solid var(--green);
}

.form-message.error{
  background:#FBEAEA;
  color:var(--red-dark);
  border-left:3px solid var(--red);
}

/* ===== USER MANAGEMENT ===== */
.user-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
  margin-bottom:22px;
}

.user-table th,
.user-table td{
  text-align:left;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}

.user-table th{
  font-weight:700;
  color:var(--navy);
  background:#F7F8FA;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.3px;
}

.user-table tr:last-child td{border-bottom:none;}

.user-table .actions{display:flex;gap:8px;}

.user-form-wrapper{
  display:none;
  background:#F7F8FA;
  border:1px solid var(--border);
  border-radius:8px;
  padding:22px;
  margin-bottom:22px;
}

.user-form-wrapper.active{display:block;}

.user-form-wrapper h3{
  margin:0 0 18px;
  font-size:15px;
  color:var(--navy);
}

.user-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
}

.user-meta{
  color:var(--text-faint);
  font-size:12px;
  display:block;
  margin-top:2px;
}

/* ===== MULTI-SELECT FILE/GALLERIA ===== */
.file-multi{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

.file-multi-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:pointer;
  width:auto;
}

.file-multi-trigger.btn-outline{
  width:auto;
  padding:8px 16px;
  font-size:13px;
  align-self:flex-start;
}

.file-multi-input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
}

.file-multi-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.file-multi-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#F7F8FA;
  border:1px solid var(--border);
  border-radius:6px;
  padding:8px 10px;
  font-size:13px;
}

.file-multi-keep{
  background:#EDF4FF;
  border-color:#C9D9F5;
}

.file-multi-name{
  word-break:break-word;
  color:var(--text);
}

.file-item-remove{
  background:none;
  border:none;
  color:var(--red);
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}

.file-item-remove:hover{
  text-decoration:underline;
}

.field-hint{
  font-size:12px;
  color:var(--text-faint);
  margin:0;
}

/* ===== RESPONSIVE ===== */
@media (max-width:1024px){
  .quick-grid{grid-template-columns:repeat(2,1fr);}
  .event-grid{grid-template-columns:1fr;}
}

@media (max-width:768px){
  #login-view{flex-direction:column;}
  .login-brand{flex:0 0 auto;min-height:auto;}
  .dash-shell{flex-direction:column;}
  .sidebar{flex:0 0 auto;min-height:auto;width:100%;}
  .dash-main{width:100%;}
  .quick-grid{grid-template-columns:1fr;}
  .profile-grid{grid-template-columns:1fr;}
  .admin-form-row{grid-template-columns:1fr;}
  .user-table{display:block;overflow-x:auto;}
}
