/* ============================================================
   TopSeed — Agricultural Premium Theme
   Palette: avorio + verde bottiglia + oro antico
   Typography: Crimson Pro (serif heads) + Inter (body) + JetBrains Mono
   ============================================================ */
:root{
  /* Surfaces */
  --bg:#faf8f3;              /* avorio */
  --bg-white:#ffffff;
  --bg-subtle:#f3efe5;       /* cream */
  --bg-hover:#ede7d6;
  --border:#e8e2d4;          /* cream-dark */
  --border-light:#f0ead9;
  --border-focus:#2d5a3d;

  /* Text */
  --text:#1a1f1a;            /* forest-ink */
  --text-sec:#3d4a3f;
  --text-muted:#6b7366;
  --text-ph:#9ca295;

  /* Green forest (accent primario) */
  --g50:#eef2ed;
  --g100:#dde5d9;
  --g200:#b8c8b2;
  --g300:#8ea685;
  --g400:#5d7856;
  --g500:#2d5a3d;            /* forest-700 */
  --g600:#23472f;
  --g700:#1e3a2a;            /* forest-900 */
  --g800:#152520;
  --accent:var(--g700);

  /* Gold (secondario premium) */
  --a50:#faf4e6;
  --a100:#f2e3b8;
  --a500:#b8860b;            /* dark-gold */
  --a600:#9a700a;

  /* Red / error */
  --r50:#fbf1ef;
  --r100:#f5ddd7;
  --r500:#8b2e1f;            /* terracotta scuro */

  /* Blue (info) */
  --b50:#eef2f5;
  --b100:#d9e1e8;
  --b500:#3a5a74;            /* blu graphite */
  --b600:#2c4559;

  /* Purple */
  --p50:#f0ebf0;
  --p100:#ddd1dc;
  --p500:#6b4a62;

  /* Female color — rosa antico sobrio */
  --female-c:#9a5068;

  /* Shape */
  --radius:3px;
  --radius-lg:6px;

  /* Shadows (più morbide, warm) */
  --shadow-sm:0 1px 2px rgba(26,31,26,.04);
  --shadow:0 1px 2px rgba(26,31,26,.05),0 1px 3px rgba(26,31,26,.04);
  --shadow-md:0 4px 14px rgba(26,31,26,.06);
  --shadow-lg:0 12px 32px rgba(26,31,26,.10);

  /* Fonts */
  --font:'Inter','Helvetica Neue',-apple-system,sans-serif;
  --font-serif:'Crimson Pro','Playfair Display',Georgia,serif;
  --mono:'JetBrains Mono','IBM Plex Mono',monospace;
  --tr:.18s ease;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}

/* Serif headings per un look editoriale premium */
h1,h2,.page-header-left h2,.card-title,.brand-icon+*,.topbar-brand{font-family:var(--font-serif);letter-spacing:-.01em;font-weight:600}
.page-header-left h2{font-size:26px;font-weight:600;letter-spacing:-.015em}
.card-title{font-family:var(--font);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}

.topbar{background:var(--bg-white);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}
.topbar-inner{max-width:1440px;margin:0 auto;display:flex;align-items:center;height:56px;padding:0 24px;gap:8px}
.topbar-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15px;color:var(--accent);margin-right:20px;letter-spacing:-.3px;white-space:nowrap;flex-shrink:0}
.brand-icon{width:30px;height:30px;background:var(--accent);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff}
.topbar-nav{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1}
.nav-item{position:relative;padding:8px 13px;font-size:13px;font-weight:600;color:var(--text-sec);cursor:pointer;border-radius:var(--radius);transition:all var(--tr);white-space:nowrap;text-decoration:none;display:flex;align-items:center;gap:5px;border:none;background:none;font-family:var(--font)}
.nav-item:hover{background:var(--bg-subtle);color:var(--text)}.nav-item.active{background:var(--g50);color:var(--accent)}
.nav-badge{font-size:10px;font-weight:700;background:var(--g100);color:var(--g700);padding:1px 6px;border-radius:10px;font-family:var(--mono)}
.nav-dropdown{position:relative}.dropdown-arrow{font-size:8px;margin-left:2px;transition:transform var(--tr)}.nav-dropdown.open .dropdown-arrow{transform:rotate(180deg)}
/* User menu */
.user-menu-wrap{position:relative;flex-shrink:0}
.user-menu-btn{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 5px;border:1px solid var(--border);border-radius:30px;background:var(--bg-white);cursor:pointer;transition:all var(--tr);font-family:var(--font)}
.user-menu-btn:hover{border-color:var(--accent);background:var(--g50)}
.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}
.user-name{font-size:13px;font-weight:700;color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-role-tag{font-size:10px;color:var(--text-muted);font-weight:500;line-height:1}
.user-chevron{font-size:10px;color:var(--text-muted);margin-left:2px;transition:transform var(--tr)}
.user-menu-wrap.open .user-chevron{transform:rotate(180deg)}
.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:200;overflow:hidden;display:none}
.user-menu-wrap.open .user-dropdown{display:block}
.user-dropdown-header{padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}
.user-dropdown-name{font-size:14px;font-weight:800;color:var(--text)}
.user-dropdown-meta{font-size:11px;color:var(--text-muted);margin-top:2px}
.user-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:background var(--tr);text-decoration:none;border:none;background:none;width:100%;text-align:left;font-family:var(--font)}
.user-dropdown-item:hover{background:var(--bg-subtle);color:var(--accent)}
.user-dropdown-item.danger{color:#dc2626}.user-dropdown-item.danger:hover{background:#fee2e2}
.user-dropdown-divider{height:1px;background:var(--border);margin:4px 0}
.notif-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;position:absolute;top:2px;right:2px}
.dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:200px;padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s;z-index:200}
.nav-dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;color:var(--text-sec);border-radius:var(--radius);cursor:pointer;transition:all var(--tr)}
.dropdown-item:hover{background:var(--g50);color:var(--accent)}.dd-icon{font-size:14px;width:18px;text-align:center}.dropdown-sep{height:1px;background:var(--border-light);margin:4px 8px}

.main-wrap{max-width:1440px;margin:0 auto;padding:0 24px}
.page-header{padding:24px 0 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-header-left h2{font-size:22px;font-weight:800;letter-spacing:-.5px}.page-header-left p{font-size:13px;color:var(--text-muted);margin-top:3px}
.page-header-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all var(--tr);border:1px solid transparent;text-decoration:none;line-height:1.4}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--g600);box-shadow:var(--shadow)}
.btn-secondary{background:var(--bg-white);color:var(--text-sec);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-subtle);color:var(--text)}
.btn-danger{background:var(--bg-white);color:var(--r500);border-color:var(--r100)}.btn-danger:hover{background:var(--r50)}
.btn-ghost{background:transparent;color:var(--text-sec);border:none;padding:6px 8px}.btn-ghost:hover{background:var(--bg-subtle);color:var(--text)}
.btn-sm{padding:5px 10px;font-size:12px}

.form-group{margin-bottom:14px}.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-sec);margin-bottom:5px}
.form-control{width:100%;padding:8px 12px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;font-family:var(--font);transition:all var(--tr)}
.form-control:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--g100)}.form-control::placeholder{color:var(--text-ph)}
select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:70px}
.form-row{display:grid;gap:12px}.form-row.cols-2{grid-template-columns:1fr 1fr}.form-row.cols-3{grid-template-columns:1fr 1fr 1fr}

.search-box{position:relative;min-width:260px}.search-box input{width:100%;padding:8px 12px 8px 34px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;font-family:var(--font)}
.search-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--g100)}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:14px;pointer-events:none}

.filter-chips{display:flex;gap:4px;flex-wrap:wrap}
.chip{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;transition:all var(--tr);border:1px solid var(--border);color:var(--text-sec);background:var(--bg-white);font-family:var(--font)}
.chip:hover{border-color:var(--text-muted);background:var(--bg-subtle)}.chip.active{border-color:var(--accent);color:var(--accent);background:var(--g50)}

.data-table-wrap{overflow-x:auto;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.data-table{width:100%;border-collapse:collapse;font-size:13px}
.data-table th{text-align:left;padding:11px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);white-space:nowrap}
.data-table td{padding:10px 14px;border-bottom:1px solid var(--border-light);vertical-align:middle}
.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--g50)}
.seed-name{font-weight:700;color:var(--text);cursor:pointer}.seed-name:hover{color:var(--accent)}

.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.2px}
.tag-parental{background:var(--g100);color:var(--g700)}.tag-hybrid{background:var(--a100);color:var(--a600)}.tag-op{background:var(--p100);color:var(--p500)}
.tag-male{background:var(--b100);color:var(--b600)}.tag-female{background:#fce7f0;color:var(--female-c)}.tag-sterile{background:var(--bg-subtle);color:var(--text-muted)}
.tag-active{background:var(--g100);color:var(--g700)}.tag-draft{background:var(--a100);color:var(--a600)}.tag-archived{background:var(--bg-subtle);color:var(--text-muted)}
.code-text{font-family:var(--mono);font-size:12px;color:var(--text-sec)}

.card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}
.card-title{font-size:14px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px}

.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:24px}
.stat-card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-sm);transition:all var(--tr)}
.stat-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-weight:700}
.stat-value{font-size:28px;font-weight:800;margin-top:4px;font-family:var(--mono);letter-spacing:-1px}
.stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}

.modal-overlay{position:fixed;inset:0;background:rgba(26,46,34,.3);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:50px 20px;overflow-y:auto;opacity:0;visibility:hidden;transition:all .2s}
.modal-overlay.open{opacity:1;visibility:visible}
.modal{background:var(--bg-white);border:1px solid var(--border);border-radius:14px;width:100%;max-width:900px;box-shadow:var(--shadow-lg);transform:translateY(12px) scale(.98);transition:transform .2s;max-height:calc(100vh - 100px);overflow-y:auto}
.modal-overlay.open .modal{transform:translateY(0) scale(1)}
.modal-header{padding:18px 24px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--bg-white);z-index:10;border-radius:14px 14px 0 0}
.modal-header h3{font-size:16px;font-weight:800}
.modal-close{width:30px;height:30px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-white);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--tr)}
.modal-close:hover{background:var(--r50);color:var(--r500);border-color:var(--r100)}
.modal-body{padding:20px 24px}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:var(--bg-white);border-radius:0 0 14px 14px}

.tabs{display:flex;gap:0;border-bottom:2px solid var(--border-light);margin-bottom:18px}
.tab-btn{padding:9px 16px;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;border:none;background:none;font-family:var(--font);transition:all var(--tr);position:relative}
.tab-btn:hover{color:var(--text-sec)}.tab-btn.active{color:var(--accent)}
.tab-btn.active::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px 2px 0 0}
.tab-panel{display:none}.tab-panel.active{display:block}

.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.char-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius);font-size:12px}
.char-item .char-name{color:var(--text-sec);font-weight:500;flex:1;margin-right:8px}.char-item .char-value{font-family:var(--mono);font-weight:600;color:var(--text)}
.char-item select,.char-item input{background:var(--bg-white);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 6px;font-size:12px;font-family:var(--font);width:100px;text-align:right}
.char-item select:focus,.char-item input:focus{outline:none;border-color:var(--accent)}

.cross-diagram{display:flex;flex-direction:column;align-items:center;padding:24px;gap:8px}
.cross-parents{display:flex;gap:40px;align-items:center}
.cross-node{padding:12px 20px;border-radius:var(--radius-lg);border:2px solid;text-align:center;min-width:130px;background:var(--bg-white);transition:all var(--tr)}
.cross-node:hover{box-shadow:var(--shadow-md)}
.cross-node .node-label{font-size:10px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;opacity:.7}
.cross-node .node-name{font-size:14px;font-weight:800;margin-top:3px}.cross-node .node-code{font-family:var(--mono);font-size:11px;opacity:.5;margin-top:2px}
.cross-node.female{border-color:var(--female-c);color:var(--female-c);background:#fdf2f7}
.cross-node.male{border-color:var(--b500);color:var(--b500);background:var(--b50)}
.cross-node.offspring{border-color:var(--a500);color:var(--a600);background:var(--a50)}
.cross-connector{font-size:22px;color:var(--text-muted)}.cross-x{font-size:18px;font-weight:800;color:var(--text-muted)}

.schema-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.schema-table{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.schema-table-header{padding:12px 16px;font-weight:800;font-size:13px;display:flex;align-items:center;gap:8px;background:var(--bg-subtle);border-bottom:1px solid var(--border);font-family:var(--mono)}
.schema-col{display:flex;align-items:center;padding:5px 16px;font-size:12px;border-bottom:1px solid var(--border-light);gap:8px}
.schema-col:last-child{border-bottom:none}
.col-key{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;font-family:var(--mono);min-width:22px;text-align:center}
.col-key.pk{background:var(--g100);color:var(--g700)}.col-key.fk{background:var(--b100);color:var(--b600)}.col-key.uk{background:var(--p100);color:var(--p500)}
.schema-col .col-name{font-family:var(--mono);font-weight:600;color:var(--text);font-size:12px}
.schema-col .col-type{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--text-muted)}

.detail-header{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px}
.detail-icon{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.detail-icon.parental{background:var(--g100)}.detail-icon.hybrid{background:var(--a100)}.detail-icon.op{background:var(--p100)}
.detail-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:24px}
.meta-item{padding:12px 14px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius)}
.meta-item .meta-label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:700}
.meta-item .meta-value{font-size:14px;font-weight:600;margin-top:3px}

.lot-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}
.lot-dot.available{background:var(--g500)}.lot-dot.reserved{background:var(--a500)}.lot-dot.exhausted{background:var(--r500)}.lot-dot.quarantine{background:var(--b500)}

.empty-state{text-align:center;padding:50px 20px;color:var(--text-muted)}.empty-state .empty-icon{font-size:40px;margin-bottom:10px;opacity:.4}

.toast-container{position:fixed;top:68px;right:20px;z-index:400;display:flex;flex-direction:column;gap:8px}
.toast{padding:10px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;box-shadow:var(--shadow-md);animation:toastIn .25s;display:flex;align-items:center;gap:6px;background:var(--bg-white);border:1px solid var(--border)}
.toast.success{border-left:3px solid var(--g500);color:var(--g700)}.toast.error{border-left:3px solid var(--r500);color:var(--r500)}.toast.info{border-left:3px solid var(--b500);color:var(--b600)}
@keyframes toastIn{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}

.inline-actions{display:flex;gap:3px}.inline-actions .btn-sm{opacity:.3;transition:opacity var(--tr)}tr:hover .inline-actions .btn-sm{opacity:1}
.page{display:none;animation:fadeIn .15s}.page.active{display:block}@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:28px}
.menu-card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;cursor:pointer;transition:all var(--tr);display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--text)}
.menu-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.menu-card-icon{font-size:28px;width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}
.menu-card-title{font-size:15px;font-weight:800;letter-spacing:-.3px}
.menu-card-desc{font-size:12px;color:var(--text-muted);line-height:1.5}
.menu-card-badge{font-size:11px;font-weight:700;font-family:var(--mono);color:var(--accent);margin-top:2px}
.menu-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:12px;margin-top:8px}
.perm-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border-light)}
.perm-row:last-child{border-bottom:none}
.perm-row:nth-child(even){background:var(--bg-subtle)}
.perm-seg{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0}
.perm-seg button{padding:4px 10px;font-size:11px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:all var(--tr);white-space:nowrap;border-right:1px solid var(--border-light)}
.perm-seg button:last-child{border-right:none}
.perm-seg button.active-none{background:#fee2e2;color:#dc2626}
.perm-seg button.active-r{background:#dbeafe;color:#1d4ed8}
.perm-seg button.active-w{background:#fef9c3;color:#a16207}
.perm-seg button.active-rw{background:#dcfce7;color:#15803d}
.perm-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:10px;font-weight:700}

/* Form page layout */
.form-page-inner{max-width:900px;margin:0 auto}
.form-page-inner.narrow{max-width:560px}
.form-page-inner.medium{max-width:700px}
.form-actions{display:flex;justify-content:flex-end;gap:8px;padding:18px 0;border-top:1px solid var(--border);margin-top:18px}
/* Readonly field with pencil edit */
.field-ro-wrap{position:relative}
.field-ro{background:var(--bg-subtle)!important;pointer-events:none;color:var(--text)!important;font-weight:600}
.field-ro-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all var(--tr);pointer-events:auto}
.field-ro-btn:hover{background:var(--g50);border-color:var(--accent)}
/* Tag selector */
.tag-selector{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;padding:6px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius)}
.tag-sel-item{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--g100);color:var(--g700);border-radius:20px;font-size:12px;font-weight:600}
.tag-sel-item button{background:none;border:none;cursor:pointer;color:var(--g700);font-size:11px;font-weight:900;padding:0;line-height:1}
/* Search select */
.search-select-wrap{position:relative}
.search-select-wrap input{padding-right:30px}
.search-select-drop{position:absolute;top:100%;left:0;right:0;max-height:220px;overflow-y:auto;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;display:none}
.search-select-drop.show{display:block}
.search-select-opt{padding:8px 12px;font-size:13px;cursor:pointer;transition:background var(--tr);display:flex;justify-content:space-between;align-items:center}
.search-select-opt:hover{background:var(--g50)}
.search-select-opt .opt-sub{font-size:11px;color:var(--text-muted)}
/* Date filter bar */
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.filter-bar label{font-size:11px;font-weight:700;color:var(--text-muted)}
.filter-bar input[type=date]{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-family:var(--mono)}

/* ─── RESPONSIVE — TABLET (≤768px) ─── */
@media(max-width:768px){
  .topbar-inner{padding:0 12px}
  .main-wrap{padding:0 12px}
  .form-row.cols-3{grid-template-columns:1fr 1fr}
  .form-row.cols-2{grid-template-columns:1fr}
  .page-header{flex-direction:column;align-items:stretch;gap:12px}
  .page-header-right{width:100%;flex-wrap:wrap}
  .cross-parents{flex-direction:column;gap:10px}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .menu-grid{grid-template-columns:1fr 1fr}
  .search-box{min-width:0;width:100%}
  .topbar-nav{gap:0;overflow-x:auto;flex-wrap:nowrap}
  .nav-item{padding:8px 9px;font-size:12px;white-space:nowrap;flex-shrink:0}
  .data-table th,.data-table td{padding:8px 6px;font-size:12px}
  .form-page-inner{padding:0 4px}
  .tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .tab-btn{white-space:nowrap;flex-shrink:0}
  .filter-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .chip{flex-shrink:0}
}

/* ─── RESPONSIVE — MOBILE (≤640px) ─── */
@media(max-width:640px){
  .topbar-inner{height:auto;padding:8px 12px;flex-wrap:wrap;min-height:56px}
  .topbar-nav{order:3;width:100%;padding:6px 0;border-top:1px solid var(--border-light);margin-top:6px;gap:2px}
  .nav-badge{display:none}
  .user-name{max-width:80px;font-size:12px}
  .user-role-tag{display:none}
  .topbar-brand{font-size:13px;margin-right:0}
  .brand-icon{width:26px;height:26px;font-size:14px}
  .page-header-left h2{font-size:18px}
  .page-header-left p{font-size:12px}
  .stats-row{grid-template-columns:1fr 1fr;gap:8px}
  .stat-card{padding:12px 14px}
  .stat-value{font-size:22px}
  .menu-grid{grid-template-columns:1fr;gap:10px}
  .form-row.cols-2,.form-row.cols-3{grid-template-columns:1fr}
  .data-table-wrap{margin:0 -12px;border-radius:0;border-left:none;border-right:none}
  .modal{margin:8px;max-width:calc(100% - 16px)}

  /* Form actions touch-friendly */
  .form-actions{flex-direction:column-reverse;gap:8px}
  .form-actions .btn{width:100%;padding:12px 16px;font-size:14px;justify-content:center}

  /* Page header buttons full-width */
  .page-header-right{flex-direction:column;align-items:stretch}
  .page-header-right .btn{width:100%;justify-content:center}
  .page-header-right .search-box{order:-1}

  /* Card titles smaller */
  .card{padding:14px}
  .card-title{font-size:13px}

  /* MODULO ISPETTORE — ottimizzazione mobile */
  .ispettore-card{flex-direction:column!important;align-items:stretch!important}
  .ispettore-card .ispettore-actions{display:flex;flex-direction:column;gap:6px;width:100%}
  .ispettore-card .ispettore-actions .btn{width:100%;padding:10px 14px;justify-content:center;font-size:13px}
  #ispMobFotoGrid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))!important;gap:8px}
  #ispMobFotoEmpty{padding:24px 16px}
  #ispMobNote{min-height:120px}

  /* Detail headers */
  .detail-header{flex-direction:column;align-items:flex-start}
  .detail-meta{grid-template-columns:1fr 1fr}

  /* Tags wrap correctly */
  .tag{font-size:10px;padding:2px 7px}
}

/* ─── EXTRA SMALL (≤400px) ─── */
@media(max-width:400px){
  .stats-row{grid-template-columns:1fr}
  .detail-meta{grid-template-columns:1fr}
  #ispMobFotoGrid{grid-template-columns:1fr 1fr!important}
}
/* Genealogy locked parents */
.parent-card-locked{position:relative;cursor:pointer!important}
.parent-card-locked::after{content:'🔒';position:absolute;top:6px;right:8px;font-size:13px;opacity:.7}
.parent-card-locked:hover{box-shadow:var(--shadow-md)}
.genealogy-lock-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--a50);border:1px solid var(--a100);border-radius:var(--radius);margin-bottom:14px;font-size:12px;color:var(--a600);font-weight:600}
/* User restriction badge */
.cat-restrict-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;background:var(--a100);color:var(--a600)}
/* Session user banner */
.session-banner{position:fixed;bottom:0;left:0;right:0;background:var(--b600);color:#fff;font-size:12px;font-weight:700;padding:6px 24px;display:flex;align-items:center;justify-content:space-between;z-index:500}

/* ============================================================
   AGRICULTURAL PREMIUM — refinements & overrides
   ============================================================ */

/* Topbar più elegante — con filetto oro sottile */
.topbar{background:var(--bg-white);border-bottom:1px solid var(--border);box-shadow:none;position:relative}
.topbar::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--a500) 20%,var(--a500) 80%,transparent);opacity:.25}
.topbar-inner{height:64px}
.topbar-brand{font-family:var(--font-serif);font-size:20px;font-weight:600;letter-spacing:.01em;color:var(--accent);gap:10px}
.brand-icon{background:var(--accent);border-radius:2px;width:32px;height:32px;position:relative}
.brand-icon::after{content:'';position:absolute;inset:0;border:1px solid var(--a500);border-radius:2px;opacity:.5}
.nav-item{font-size:13px;font-weight:500;color:var(--text-sec);letter-spacing:.02em;padding:8px 14px;border-radius:2px;text-transform:none;font-family:var(--font)}
.nav-item:hover{background:var(--bg-subtle);color:var(--accent)}
.nav-item.active{background:transparent;color:var(--accent);position:relative}
.nav-item.active::after{content:'';position:absolute;bottom:-8px;left:14px;right:14px;height:2px;background:var(--a500)}

/* Badges / tags più sobri */
.nav-badge{background:var(--bg-subtle);color:var(--text-sec);font-weight:600;border:1px solid var(--border)}
.tag{font-weight:600;letter-spacing:.03em;border-radius:2px;padding:3px 8px;font-family:var(--font);text-transform:uppercase;font-size:10px;border:1px solid transparent}
.tag-parental{background:var(--g50);color:var(--g700);border-color:var(--g100)}
.tag-hybrid{background:var(--a50);color:var(--a600);border-color:var(--a100)}
.tag-op{background:var(--p50);color:var(--p500);border-color:var(--p100)}
.tag-male{background:var(--b50);color:var(--b600);border-color:var(--b100)}
.tag-female{background:#fbf1f5;color:var(--female-c);border-color:#f0dbe3}
.tag-sterile{background:var(--bg-subtle);color:var(--text-muted);border-color:var(--border)}
.tag-autogamo{background:#eaf3e6;color:#4a6a2b;border-color:#d3e3c7}
.tag-allogamo{background:#f5e6d8;color:#8a4a1a;border-color:#e8d0ba}
.ricercatore-view .role-hide-admin-codes{display:none !important}
.tag-active{background:var(--g50);color:var(--g700);border-color:var(--g100)}
.tag-draft{background:var(--a50);color:var(--a600);border-color:var(--a100)}
.tag-archived{background:var(--bg-subtle);color:var(--text-muted);border-color:var(--border)}

/* Buttons più raffinati */
.btn{font-weight:500;letter-spacing:.02em;border-radius:3px;transition:all var(--tr);text-transform:none;border-width:1px}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}
.btn-primary:hover{background:var(--g600);border-color:var(--g600);box-shadow:0 2px 6px rgba(30,58,42,.15)}
.btn-secondary{background:var(--bg-white);border-color:var(--border);color:var(--text-sec)}
.btn-secondary:hover{background:var(--bg-subtle);border-color:var(--text-muted);color:var(--text)}
.btn-danger{background:var(--bg-white);border-color:var(--r100);color:var(--r500)}
.btn-danger:hover{background:var(--r50);border-color:var(--r500)}

/* Cards — più sobri, con top border oro per premium feel */
.card{border-radius:var(--radius-lg);border-color:var(--border);box-shadow:var(--shadow-sm);background:var(--bg-white);position:relative;overflow:hidden}

/* Stat cards con accent oro sottile */
.stat-card{border-radius:var(--radius-lg);border-color:var(--border);background:var(--bg-white);box-shadow:var(--shadow-sm);position:relative;padding:18px 20px;transition:all var(--tr)}
.stat-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--a500);opacity:.3}
.stat-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}
.stat-card:hover::before{opacity:1}
.stat-label{color:var(--text-muted);font-size:10px;letter-spacing:.12em;font-weight:600}
.stat-value{font-family:var(--font-serif);font-size:30px;font-weight:600;color:var(--text);letter-spacing:-.02em;margin-top:6px}
.stat-sub{color:var(--text-muted);font-size:11px;font-weight:500;margin-top:3px}

/* Data tables — stile editoriale */
.data-table-wrap{border-radius:var(--radius-lg);border-color:var(--border);box-shadow:var(--shadow-sm)}
.data-table th{background:var(--bg-subtle);color:var(--text-muted);font-size:10px;letter-spacing:.1em;font-weight:700;border-bottom:1px solid var(--border);padding:12px 14px}
.data-table td{padding:12px 14px;border-bottom:1px solid var(--border-light);font-size:13px}
.data-table tr:hover td{background:var(--bg-subtle)}
.seed-name{font-weight:600;color:var(--text)}

/* Inputs */
.form-control{border-radius:3px;border-color:var(--border);background:var(--bg-white);font-family:var(--font);transition:all var(--tr);font-size:13px}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(30,58,42,.08)}
.form-group label{font-size:11px;font-weight:600;color:var(--text-sec);letter-spacing:.03em;text-transform:uppercase;margin-bottom:6px}

/* Menu cards (category menu) — feel galleria */
.menu-card{border-radius:var(--radius-lg);border-color:var(--border);background:var(--bg-white);transition:all .25s ease;padding:24px 22px}
.menu-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.menu-card-icon{border-radius:var(--radius-lg);background:var(--bg-subtle)!important}
.menu-card-title{font-family:var(--font-serif);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--text)}
.menu-card-desc{font-size:12px;color:var(--text-muted);line-height:1.55}

/* Chips */
.chip{border-radius:2px;border-color:var(--border);font-weight:500;font-size:11px;letter-spacing:.02em;padding:6px 13px;text-transform:none}
.chip.active{border-color:var(--accent);background:var(--g50);color:var(--accent);font-weight:600}

/* Modal */
.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.modal-header h3{font-family:var(--font-serif);font-weight:600;font-size:18px;letter-spacing:-.01em}

/* User menu — più editoriale */
.user-menu-btn{border-radius:3px;border-color:var(--border)}
.user-menu-btn:hover{border-color:var(--accent);background:var(--bg-subtle)}
.user-avatar{background:var(--accent);border-radius:2px;font-weight:600;font-size:12px;letter-spacing:.02em}
.user-name{font-weight:600;font-size:13px;color:var(--text)}
.user-role-tag{font-size:10px;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:500}

/* Page header underline oro */
.page-header{padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:22px;position:relative}
.page-header::after{content:'';position:absolute;left:0;bottom:-1px;width:60px;height:2px;background:var(--a500)}
.page-header-left p{color:var(--text-muted);font-size:13px;margin-top:4px;font-style:italic}

/* Tabs */
.tabs{border-bottom-color:var(--border)}
.tab-btn{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:10px 18px}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--accent)}
.tab-btn.active::after{background:var(--a500);height:2px}

/* Scrollbar più eleganti */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}

/* Cross diagram premium */
.cross-node{border-radius:var(--radius-lg)}
.cross-node .node-name{font-family:var(--font-serif);font-weight:600}

/* Lot status dots */
.lot-dot.available{background:var(--g500)}
.lot-dot.reserved{background:var(--a500)}
.lot-dot.quarantine{background:var(--b500)}
.lot-dot.exhausted{background:var(--r500)}

/* ============================================================
   TEMPLATE GALLERY
   ============================================================ */
.template-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;margin-top:14px}
.template-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-white);overflow:hidden;display:flex;flex-direction:column;transition:all var(--tr)}
.template-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.template-preview{height:180px;border-bottom:1px solid var(--border-light);background:var(--bg-subtle);overflow:hidden;position:relative;pointer-events:none}
.template-thumb{width:200%;height:360px;border:none;transform:scale(.5);transform-origin:top left;pointer-events:none}
.template-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(250,248,243,.9))}
.template-card-body{padding:14px 18px;flex:1}
.template-card-body .tag{margin-bottom:8px}
.template-card-body h3{font-family:var(--font-serif);font-size:17px;font-weight:600;margin:4px 0 4px;letter-spacing:-.01em}
.template-subject{font-size:12px;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:center;gap:5px}
.template-subject::before{content:'';display:inline-block;width:12px;height:8px;border:1px solid var(--text-muted);border-radius:1px;position:relative;opacity:.6}
.template-descr{font-size:12px;color:var(--text-sec);line-height:1.5;margin:6px 0 12px}
.template-vars{display:flex;flex-wrap:wrap;gap:4px}
.tpl-var-chip-inline{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;background:var(--g50);color:var(--g700);border:1px solid var(--g100);border-radius:12px;font-family:var(--mono);font-size:10px;font-weight:500}
.tpl-var-chip-inline::before{content:'•';color:var(--g500);font-size:14px;line-height:0}
.tpl-var-chip-more{display:inline-flex;align-items:center;padding:3px 9px;background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border);border-radius:12px;font-size:10px;font-weight:600}
.template-card-actions{display:flex;gap:4px;padding:10px 14px;border-top:1px solid var(--border-light);background:var(--bg-subtle);justify-content:flex-end}
.template-card-actions .btn{padding:6px 12px;font-size:11px}

/* Draggable variables in side panel */
.tpl-var-item[draggable]{cursor:grab}
.tpl-var-item[draggable]:active{cursor:grabbing}
.tpl-var-item.dragging{opacity:.5}

/* Drop zone highlight on Quill editor */
#tplQuillDropZone.drag-over .ql-container{box-shadow:0 0 0 3px var(--g200);border-color:var(--accent)}
#tplQuillDropZone.drag-over .ql-toolbar{border-color:var(--accent)}

/* Category badge colors */
.tag-contratti{background:var(--g50);color:var(--g700);border:1px solid var(--g100)}
.tag-proforma{background:#faf4e6;color:var(--a600);border:1px solid #f2e3b8}
.tag-altro{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}

/* Template gallery empty state */
.template-gallery-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--text-muted);font-size:13px;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg-subtle)}

/* ============================================================
   PDF PREVIEW MODAL
   ============================================================ */
.pdf-preview-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:30px}
.pdf-preview-backdrop{position:absolute;inset:0;background:rgba(26,31,26,.55);backdrop-filter:blur(3px)}
.pdf-preview-container{position:relative;background:var(--bg-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(960px,100%);max-height:calc(100vh - 60px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border)}
.pdf-preview-header{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}
.pdf-preview-title{font-family:var(--font-serif);font-size:17px;font-weight:600;color:var(--text);letter-spacing:-.01em}
.pdf-preview-actions{display:flex;gap:8px}
.pdf-preview-body{flex:1;overflow:hidden;background:#e8e2d4;padding:12px}
#pdfPreviewIframe{width:100%;height:100%;min-height:calc(100vh - 180px);border:1px solid var(--border);border-radius:var(--radius);background:white;box-shadow:0 4px 16px rgba(26,31,26,.08)}

@media(max-width:640px){
  .pdf-preview-modal{padding:0}
  .pdf-preview-container{border-radius:0;max-height:100vh;width:100%;height:100vh}
  #pdfPreviewIframe{min-height:calc(100vh - 120px)}
}

