:root {
  --ink: #18201d;
  --muted: #777c76;
  --line: #dedbd3;
  --paper: #f6f4ef;
  --panel: #fbfaf7;
  --green: #305e45;
  --green-soft: #dce9df;
  --amber: #e7c56c;
  --red: #db635e;
  --blue: #6a9bc3;
  --shadow: 0 18px 55px rgba(31, 38, 34, .09);
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Manrope, system-ui, sans-serif; overflow: hidden; }
button { color: inherit; font: inherit; }
button:focus-visible { outline: 3px solid rgba(48,94,69,.25); outline-offset: 2px; }
.topbar { height: 72px; display: grid; grid-template-columns: 290px 1fr auto; align-items: center; padding: 0 24px; background: #fdfcf9; border-bottom: 1px solid var(--line); position: relative; z-index: 5; }
.brand { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--ink); font-weight: 700; letter-spacing: -.04em; font-size: 21px; }
.brand-icon{width:31px;height:31px;display:grid;place-items:center;color:var(--green);font-size:27px}
.brand-mark i { position: absolute; width: 8px; height: 8px; background: var(--green); border-radius: 50%; }
.brand-mark i:nth-child(1){left:2px;top:10px}.brand-mark i:nth-child(2){left:18px;top:2px}.brand-mark i:nth-child(3){left:19px;top:20px}.brand-mark i:nth-child(4){left:11px;top:11px}
.brand-mark:before,.brand-mark:after { content:""; position:absolute; height:2px; width:18px; background:var(--green); left:5px; top:10px; transform:rotate(-35deg); transform-origin:left; }
.brand-mark:after { top:17px; transform:rotate(30deg); }
.project-title { justify-self: center; text-align: center; }
.project-title > span,.eyebrow { display: block; color: #91938e; font: 500 10px/1.2 "DM Mono", monospace; letter-spacing: .12em; }
.project-title button { background:none; border:0; font-weight:600; padding:5px; cursor:pointer; }
.project-title button span { color: #aaa; margin-left: 4px; }
.header-actions { display:flex; gap:8px; align-items:center; }
.icon-button,.button { border: 1px solid var(--line); background: #fff; height: 38px; border-radius: 8px; cursor: pointer; }
.icon-button { width:38px; font-size:20px; }.icon-button:disabled { opacity:.35; cursor:default; }
.divider { height:25px; width:1px; background:var(--line); margin:0 4px; }
.button { padding: 0 16px; font-size: 13px; font-weight: 600; }.button>i{margin-right:6px}
.button.primary { background:var(--green); color:#fff; border-color:var(--green); }.button.primary span { margin-right:5px; }
.app-shell { height: calc(100vh - 106px); display:grid; grid-template-columns: 290px minmax(480px,1fr) 290px; }
.left-panel,.right-panel { background:var(--panel); overflow-y:auto; position:relative; z-index:2; }
.left-panel { border-right:1px solid var(--line); padding:27px 22px; }
.right-panel { border-left:1px solid var(--line); padding:29px 23px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:14px; }.section-heading.compact{margin-bottom:4px}
h2 { margin:6px 0 0; font-size:18px; letter-spacing:-.035em; } h3 { font-size:13px; margin:0 0 12px; }
.link-button { border:0; background:none; color:var(--green); padding:0 0 2px; font-size:11px; font-weight:700; cursor:pointer; }
.molecule-list { display:grid; gap:8px; }
.molecule-card { border:1px solid var(--line); border-radius:10px; padding:10px; background:#fff; display:grid; grid-template-columns:58px 1fr; align-items:center; cursor:pointer; text-align:left; transition:.18s ease; }
.molecule-card:hover { transform:translateY(-1px); border-color:#a7b9ad; box-shadow:0 6px 18px rgba(28,50,37,.07); }.molecule-card.active{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
.mini-molecule { height:45px; width:52px; }.molecule-card strong { font-size:13px; display:block; }.molecule-card small { color:var(--muted); font:11px "DM Mono"; }
.quick-atoms { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.atom-choice { min-width:0; height:62px; padding:5px; background:#fff; border:1px solid var(--line); border-radius:8px; cursor:pointer; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.atom-choice strong { font:600 20px "DM Mono";position:relative }.atom-choice strong i{font-size:7px;color:#d39d23;position:absolute;right:-9px;top:-2px}.atom-choice small { font-size:8px; color:var(--muted); white-space:nowrap; }.atom-choice:hover,.atom-choice.selected { border-color:var(--element-color); box-shadow:inset 0 -3px var(--element-color); }
.periodic-button { width:100%; border:1px solid var(--line); background:#f4f2ec; padding:11px; border-radius:8px; margin-top:9px; display:flex; gap:10px; align-items:center; text-align:left; cursor:pointer; }.periodic-icon{font-size:21px;color:var(--green)}.periodic-button span:nth-child(2){flex:1}.periodic-button strong,.periodic-button small{display:block;font-size:11px}.periodic-button small{color:var(--muted);font-size:9px;margin-top:2px}.periodic-button b{color:var(--green)}
.workspace { min-width:0; position:relative; overflow:hidden; background:#f5f3ee; }
#moleculeCanvas { width:100%; height:100%; display:block; cursor:default; transform-origin:center; }
.canvas-toolbar { position:absolute; z-index:3; left:50%; top:18px; transform:translateX(-50%); background:rgba(255,255,255,.95); border:1px solid var(--line); border-radius:10px; padding:5px; display:flex; gap:3px; box-shadow:0 7px 24px rgba(30,35,32,.08); }
.tool { width:37px; height:35px; border:0; border-radius:6px; background:transparent; cursor:pointer; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; }.tool:hover{background:#eee}.tool.active{background:var(--green-soft);color:var(--green)}.bond-tool i{width:20px;height:1.5px;background:currentColor;display:block}.tool>.fa-solid,.tool>.fa-regular{font-size:14px}.cursor-icon{font-size:18px}.tool-separator{width:1px;background:var(--line);margin:4px}
.mode-hint { position:absolute; z-index:2; top:76px; left:50%; transform:translateX(-50%); white-space:nowrap; padding:7px 12px; border:1px solid #e2dfd8; border-radius:20px; background:rgba(255,255,255,.82); color:#7a7d78; font-size:10px; backdrop-filter:blur(6px); }.mode-hint span{color:var(--green);margin-right:5px}
.quick-reaction-panel{position:absolute;z-index:5;left:50%;top:116px;transform:translateX(-50%);width:min(720px,calc(100% - 32px));display:grid;grid-template-columns:minmax(170px,1fr) minmax(210px,1.25fr) auto 34px;align-items:center;gap:9px;padding:10px;border:1px solid #b8cbbd;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 12px 36px #1d33261f;backdrop-filter:blur(8px)}.quick-reaction-panel[hidden]{display:none}.quick-reaction-panel>div{display:flex;align-items:center;gap:8px}.quick-reaction-panel>div>span:last-child{display:grid}.quick-reaction-panel strong{font-size:10px}.quick-reaction-panel small{margin-top:2px;color:var(--muted);font-size:8px}.quick-reaction-step{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--green);color:#fff;font:700 9px "DM Mono"}.quick-reaction-panel label{display:grid;gap:3px;color:var(--muted);font-size:7px}.quick-reaction-panel select{min-width:0;width:100%;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px;font-size:9px}.quick-reaction-run{height:36px;padding:0 13px;border:0;border-radius:8px;background:var(--green);color:#fff;font-size:9px;font-weight:700;white-space:nowrap;cursor:pointer}.quick-reaction-run:disabled{opacity:.42;cursor:not-allowed}.quick-reaction-cancel{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#805c58;cursor:pointer}.quick-reaction-annotation{pointer-events:none}.quick-reaction-box{fill:none;stroke-width:1.4;stroke-dasharray:7 5}.quick-reaction-box.reactant{stroke:#7d91a5;fill:#708aa008}.quick-reaction-box.product{stroke:#4e8a62;fill:#4e8a620b}.quick-reaction-arrow{fill:none;stroke:#315e45;stroke-width:2.4;stroke-linecap:round}.quick-reaction-label{fill:#315e45;font:700 9px "DM Mono";paint-order:stroke;stroke:#f5f3ee;stroke-width:5px;stroke-linejoin:round}
.zoom-controls { position:absolute; z-index:3; left:18px; bottom:18px; display:flex; align-items:center; border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; box-shadow:0 5px 18px rgba(0,0,0,.06); }.zoom-controls button{border:0;background:#fff;width:34px;height:34px;cursor:pointer;font-size:16px}.zoom-controls span{font:10px "DM Mono";width:46px;text-align:center}.zoom-controls .fit{border-left:1px solid var(--line)}
.empty-state text{fill:#8b8d88;font-size:14px;font-weight:600}.empty-state text.sub{font-size:11px;font-weight:400;fill:#aaa}.atom-node{cursor:grab}.atom-node:active{cursor:grabbing}.atom-node .halo{opacity:0;fill:none;stroke:#315e45;stroke-width:3}.atom-node.selected .halo{opacity:1}.atom-node text{font:600 19px "DM Mono";text-anchor:middle;dominant-baseline:central;pointer-events:none}.atom-node .hydrogen-count{font-size:10px}.bond-line{stroke:#555d58;stroke-width:3;stroke-linecap:round}.bond-hit{stroke:transparent;stroke-width:16;cursor:pointer}.bond-group.selected .bond-line{stroke:var(--green);stroke-width:4}
.formula-card { padding:15px 0 17px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }.formula-card small,.stat-grid small { color:#92958f;font:500 8px "DM Mono";letter-spacing:.1em}.formula{font:500 25px "DM Mono";margin-top:5px}.formula sub{font-size:13px}.status-pill{padding:5px 8px;border-radius:14px;background:#eee;color:#777;font-size:9px;font-weight:700}.status-pill i{display:inline-block;width:6px;height:6px;background:#999;border-radius:50%;margin-right:4px}.status-pill.valid{background:#dceadf;color:#315e45}.status-pill.valid i{background:#3b7955}.status-pill.warning{background:#f4e5d2;color:#9a5d22}.status-pill.warning i{background:#c68137}
.stat-grid { display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line); }.stat-grid>div{background:var(--panel);padding:14px 8px 14px 0}.stat-grid>div:nth-child(even){padding-left:15px}.stat-grid strong{display:block;margin-top:5px;font:500 16px "DM Mono"}.stat-grid em{font-style:normal;font-size:8px;color:var(--muted)}
.validation { margin:16px 0;padding:11px;border:1px solid #d4dfd5;background:#eef5ef;border-radius:8px;display:flex;gap:10px;align-items:flex-start}.validation.warning{background:#faf1e5;border-color:#ead4b7}.validation.error{background:#fae9e7;border-color:#e7c0bc}.validation-icon{width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;background:#4e7b5c;color:white;font-size:11px}.validation.warning .validation-icon{background:#c8843f}.validation.error .validation-icon{background:#c85650}.validation strong{font-size:10px}.validation p{font-size:9px;line-height:1.45;color:var(--muted);margin:2px 0 0}
.composition,.selection-info{padding-top:17px;border-top:1px solid var(--line);margin-top:15px}.composition-list{display:grid;gap:8px}.composition-row{display:grid;grid-template-columns:25px 1fr auto;gap:8px;align-items:center;font-size:10px}.composition-row .symbol{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 9px "DM Mono";background:var(--c);color:var(--tc,#17201c)}.composition-row .bar{height:4px;border-radius:4px;background:#e3e1db;overflow:hidden}.composition-row .bar i{display:block;height:100%;background:var(--c);border-radius:4px}.composition-row b{font:500 9px "DM Mono"}.muted{font-size:10px;color:#999;line-height:1.5}.selection-card{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px;font-size:10px}.selection-card strong{font:600 16px "DM Mono"}.selection-card p{margin:5px 0 0;color:var(--muted)}
.tip { margin-top:19px;padding:11px;background:#f1eee6;border-radius:8px;display:flex;gap:9px}.tip p{font-size:9px;line-height:1.5;margin:0;color:#7d7e79}.tip strong{display:block;color:#555}
.periodic-dialog { width:min(1240px,96vw); border:0;border-radius:16px;padding:25px;background:#fbfaf7;color:var(--ink);box-shadow:var(--shadow)}.periodic-dialog::backdrop{background:rgba(25,31,28,.45);backdrop-filter:blur(4px)}.dialog-header{display:flex;justify-content:space-between;align-items:start}.dialog-header h2{font-size:25px}.dialog-close{border:1px solid var(--line);background:#fff;border-radius:50%;width:36px;height:36px;font-size:22px;cursor:pointer}.periodic-dialog>p{color:var(--muted);font-size:12px}.legend{display:flex;gap:20px;justify-content:flex-end;margin-bottom:13px}.legend span{font-size:9px;color:var(--muted)}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend .nonmetal{background:#d8e6da}.legend .halogen{background:#f3dfad}.legend .noble{background:#d8e4ef}.legend .metal{background:#e6ded3}.periodic-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}.periodic-table{display:grid;grid-template-columns:repeat(18,1fr);gap:4px}.element-cell{position:relative;aspect-ratio:1/1;border:1px solid #dedbd4;border-radius:5px;background:#e6ded3;padding:3px;cursor:pointer;min-width:0;text-align:left;transition:.15s}.element-cell:hover,.element-cell:focus-visible{transform:scale(1.12);z-index:2;box-shadow:0 5px 14px #0002;outline:2px solid var(--green)}.element-cell.nonmetal{background:#d8e6da}.element-cell.halogen{background:#f3dfad}.element-cell.noble{background:#d8e4ef}.element-cell.metalloid{background:#dce6d4}.element-cell .num{font:6px "DM Mono";display:block;opacity:.65}.element-cell strong{font:600 14px "DM Mono";display:block}.element-cell small{font-size:5px;display:block;white-space:nowrap;overflow:hidden}.element-favorite{position:absolute;right:2px;top:1px;font-size:6px;color:#948f82;opacity:0;transition:.15s}.element-cell:hover .element-favorite,.element-favorite.active{opacity:1}.element-favorite.active{color:#c48c13}.element-detail{min-height:330px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 24px #1f292214;position:sticky;top:0}.element-detail-head{display:flex;gap:13px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.detail-favorite{margin-left:auto;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:#8c887d;cursor:pointer}.detail-favorite.active{color:#c48c13;background:#fff7df}.element-detail-symbol{width:62px;height:62px;border-radius:10px;display:grid;place-items:center;font:700 27px "DM Mono";color:var(--element-text);background:var(--element-color)}.element-detail h3{font-size:20px;margin:0}.element-detail-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.element-properties{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.element-properties div,.electron-box{padding:9px;border-radius:7px;background:#f5f3ee}.element-properties small,.electron-box small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.element-properties strong,.electron-box strong{display:block;margin-top:3px;font-size:11px}.electron-box{margin-top:8px}.electron-box strong{font:500 10px/1.5 "DM Mono";overflow-wrap:anywhere}.toast{position:fixed;z-index:20;left:50%;bottom:25px;transform:translate(-50%,20px);background:#1f2823;color:#fff;border-radius:7px;padding:10px 15px;font-size:11px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.app-shell{grid-template-columns:245px 1fr}.right-panel{display:none}.topbar{grid-template-columns:245px 1fr auto}.left-panel{padding:23px 16px}}
@media(max-width:760px){body{overflow:auto}.topbar{height:62px;grid-template-columns:1fr auto;padding:0 14px}.project-title{display:none}.button.secondary,.icon-button,.divider{display:none}.app-shell{height:auto;display:flex;flex-direction:column}.left-panel{order:2;border:0;overflow:visible}.workspace{height:65vh;min-height:470px;order:1;border-bottom:1px solid var(--line)}.right-panel{display:block;order:3;border:0;overflow:visible}.molecule-list{grid-template-columns:1fr 1fr}.periodic-table{gap:2px}.element-cell small{display:none}.element-cell strong{font-size:10px}}
.element-cell:disabled{cursor:default;opacity:.7;transform:none;box-shadow:none}

/* Libreria e tooltip */
.library-dropdown{position:relative;margin:0 0 11px}.library-menu-button{width:100%;height:50px;display:grid;grid-template-columns:34px 1fr 15px;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--green);cursor:pointer;text-align:left}.library-menu-button:hover,.library-menu-button[aria-expanded="true"]{border-color:#9db2a4;box-shadow:0 4px 14px #1d513e12}.library-menu-button>i:first-child{width:30px;height:30px;border-radius:8px;background:var(--green-soft);display:grid;place-items:center}.library-menu-button>i:last-child{font-size:9px;color:#848a85;transition:transform .15s}.library-menu-button[aria-expanded="true"]>i:last-child{transform:rotate(180deg)}.library-menu-button span{display:grid}.library-menu-button small{font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}.library-menu-button strong{padding-top:3px;color:var(--ink);font:700 11px Manrope}.library-menu{position:absolute;z-index:120;top:56px;left:0;right:0;display:none;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 16px 38px #16251d2b}.library-menu.open{display:grid;gap:2px}.library-menu button{display:grid;grid-template-columns:29px 1fr;align-items:center;gap:8px;width:100%;padding:8px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer;color:var(--ink)}.library-menu button:hover,.library-menu button.active{background:var(--green-soft)}.library-menu button>i{color:var(--green);text-align:center}.library-menu span{display:grid}.library-menu strong{font-size:10px}.library-menu small{margin-top:2px;color:var(--muted);font-size:8px}.global-tooltip{position:fixed;z-index:3000;left:0;top:0;width:max-content;max-width:min(250px,calc(100vw - 20px));padding:8px 10px;border-radius:7px;background:#1d2521;color:#fff;font:10px/1.4 Manrope,sans-serif;letter-spacing:0;box-shadow:0 7px 22px #0004;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .12s,transform .12s}.global-tooltip.show{opacity:1;transform:none}
.snap-zone{fill:rgba(48,94,69,.05);stroke:#5f8d6e;stroke-width:1;stroke-dasharray:5 5}.snap-preview{stroke:#4d7e5d;stroke-width:1.25;stroke-dasharray:7 5}.ghost-atom{opacity:.72;stroke:#315e45;stroke-width:1.5}.atom-node text{font-size:14px}.atom-node .halo{stroke-width:2}

/* Dialoghi testuale e 3D */
.info-dialog,.viewer-dialog{border:0;border-radius:15px;background:#fbfaf7;color:var(--ink);box-shadow:var(--shadow);padding:24px}.info-dialog::backdrop,.viewer-dialog::backdrop{background:rgba(25,31,28,.48);backdrop-filter:blur(4px)}.info-dialog{width:min(650px,92vw)}.viewer-dialog{width:min(960px,94vw)}.viewer-dialog>p{font-size:11px;color:var(--muted);margin:8px 0 13px}.text-representation{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.text-block{border:1px solid var(--line);border-radius:9px;background:#fff;padding:14px}.text-block.full{grid-column:1/-1}.text-block small{display:block;color:#8c908a;font:9px "DM Mono";letter-spacing:.1em;margin-bottom:8px}.text-block code{font:500 14px/1.6 "DM Mono";white-space:pre-wrap;word-break:break-word}.text-block p{font-size:11px;line-height:1.6;color:var(--muted);margin:0}.empty-dialog{grid-column:1/-1;text-align:center;padding:35px;color:var(--muted)}#viewer3d{display:block;width:100%;height:min(56vh,560px);border-radius:10px;background:radial-gradient(circle at 50% 42%,#fdfdfb,#e9e7e0);cursor:grab}#viewer3d:active{cursor:grabbing}.viewer-legend{display:flex;gap:14px;justify-content:center;margin-top:12px;font-size:9px;color:var(--muted)}.viewer-legend span{display:flex;gap:5px;align-items:center}.viewer-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
@media(max-width:760px){.header-actions #textViewBtn{display:none}.text-representation{grid-template-columns:1fr}.text-block.full{grid-column:auto}}
.left-panel,.right-panel{scrollbar-width:thin;scrollbar-color:#aaa transparent}.left-panel::-webkit-scrollbar,.right-panel::-webkit-scrollbar{width:6px}.left-panel::-webkit-scrollbar-thumb,.right-panel::-webkit-scrollbar-thumb{background:#aaa;border-radius:8px}

/* Strumenti chimici avanzati */
.hydrogen-tool strong{font:600 12px "DM Mono"}.hydrogen-tool sup{font-size:7px;color:var(--green)}.dropdown-tool{position:relative}.dropdown-tool small{position:absolute;right:3px;bottom:1px;font-size:7px}.special-bond-palette,.shape-palette{position:absolute;z-index:8;top:72px;left:50%;display:none;width:210px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #1b241f20}.special-bond-palette{transform:translateX(-32%)}.shape-palette{transform:translateX(20%)}.special-bond-palette.open,.shape-palette.open{display:grid}.special-bond-palette button,.shape-palette button{display:grid;grid-template-columns:45px 1fr;align-items:center;gap:8px;border:0;background:transparent;padding:8px;border-radius:6px;text-align:left;cursor:pointer}.special-bond-palette button:hover,.shape-palette button:hover{background:var(--green-soft)}.special-bond-palette b,.shape-palette b{font-size:10px}.bond-sample{position:relative;display:block;width:32px;height:12px}.bond-sample.single,.bond-sample.double,.bond-sample.triple{background:linear-gradient(#46504a,#46504a) center/100% 2px no-repeat}.bond-sample.double{background:linear-gradient(#46504a,#46504a) center 3px/100% 2px no-repeat,linear-gradient(#46504a,#46504a) center 9px/100% 2px no-repeat}.bond-sample.triple{background:linear-gradient(#46504a,#46504a) center 2px/100% 2px no-repeat,linear-gradient(#46504a,#46504a) center/100% 2px no-repeat,linear-gradient(#46504a,#46504a) center 10px/100% 2px no-repeat}.bond-sample.aromatic{border-top:2px dashed #46504a;margin-top:8px}.bond-sample.wedge{clip-path:polygon(0 44%,100% 0,100% 100%,0 56%);background:#46504a}.bond-sample.hashed{background:repeating-linear-gradient(90deg,#46504a 0 2px,transparent 2px 5px);clip-path:polygon(0 44%,100% 0,100% 100%,0 56%)}.bond-sample.dative,.bond-sample.ionic{font:700 18px/12px "DM Mono";color:#46504a}.shape-icon{width:28px;height:22px;fill:none;stroke:#46504a;stroke-width:2}.bond-aromatic{stroke-dasharray:6 5}.bond-ionic{stroke-dasharray:2 8;stroke-width:2}.bond-dative{marker-end:url(#bondArrow)}.bond-wedge{fill:#555d58}.bond-hashed{stroke:#555d58;stroke-width:2}
.aromatic-ring{fill:none;stroke:#555d58;stroke-width:2.5}.toast.error{max-width:420px;padding:15px 20px;background:#9b3935;font-size:13px;line-height:1.45;box-shadow:0 12px 36px #742a2950}.toast.error::before{content:"\f071";font-family:"Font Awesome 6 Free";font-weight:900;margin-right:9px}
.representation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.representation-card{min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px}.representation-card h3{display:flex;justify-content:space-between;margin-bottom:8px}.representation-card h3 span{color:#999;font:8px "DM Mono"}.representation-card code{display:block;min-height:36px;font:500 14px/1.55 "DM Mono";word-break:break-word}.representation-card svg{display:block;width:100%;height:180px;background:#faf9f6;border-radius:7px}.lewis-dot{fill:#26302a}.formula-atom{font-family:"DM Mono",monospace;font-weight:600;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:#faf9f6;stroke-width:7px;stroke-linejoin:round}.formula-atom.compact-hydrogen{font-weight:500;stroke-width:5px}.representation-note{grid-column:1/-1;color:var(--muted);font-size:9px;line-height:1.5;margin:0}.reference-plane-label{position:absolute}
.text-representation>.representation-grid{grid-column:1/-1}
@media(max-width:760px){.canvas-toolbar{max-width:94%;overflow-x:auto;left:3%;transform:none}.special-bond-palette{left:50%;transform:translateX(-50%)}.representation-grid{grid-template-columns:1fr}.representation-note{grid-column:auto}}
.info-dialog{width:min(860px,94vw)}

/* Selezione multipla, navigazione e rappresentazioni estese */
.workspace,.workspace *{-webkit-user-select:none;user-select:none}.workspace.pan-mode #moleculeCanvas{cursor:grab}.workspace.pan-mode #moleculeCanvas.grabbing,#moleculeCanvas.grabbing{cursor:grabbing}.selection-rect{fill:rgba(48,94,69,.10);stroke:var(--green);stroke-width:1.5;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.atom-node.multi-selected .halo{opacity:1;stroke:#5a8e6b;stroke-dasharray:3 2}.info-dialog{width:min(1120px,96vw);max-height:92vh}.text-representation{font-size:16px}.representation-grid{gap:18px}.representation-card{padding:20px}.representation-card h3{font-size:17px;margin-bottom:14px;align-items:center}.representation-card h3 span{font-size:10px}.representation-card code{min-height:48px;font-size:20px;line-height:1.65}.representation-card svg{height:290px}.representation-card.visual{grid-column:span 1}.representation-actions{display:flex;align-items:center;gap:8px}.representation-download{border:1px solid var(--line);background:#f7f6f2;color:var(--green);width:34px;height:30px;border-radius:6px;cursor:pointer}.representation-download:hover{background:var(--green-soft)}.representation-note{font-size:12px;line-height:1.65}.empty-dialog{font-size:15px}.multi-selection-card{display:flex;gap:8px;align-items:center}.multi-selection-card i{color:var(--green);font-size:18px}
.selection-quick-actions{position:absolute;z-index:14;display:flex;align-items:center;gap:3px;padding:5px;border:1px solid #bccbc1;border-radius:11px;background:rgba(255,255,253,.97);box-shadow:0 9px 26px #17251e2b;backdrop-filter:blur(8px);transform:translate(-50%,-100%)}.selection-quick-actions[hidden]{display:none}.selection-quick-actions.above{transform:translate(-50%,-100%)}.selection-quick-actions.below{transform:translate(-50%,0)}.selection-quick-actions.left{transform:translate(-100%,-50%)}.selection-quick-actions.right{transform:translate(0,-50%)}.selection-quick-actions button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#45574c;cursor:pointer}.selection-quick-actions button:hover,.selection-quick-actions button:focus-visible{background:var(--green-soft);color:var(--green);outline:none}.selection-quick-actions button.danger:hover,.selection-quick-actions button.danger:focus-visible{background:#fff0ee;color:#a4443e}.selection-quick-actions>span{width:1px;height:20px;background:var(--line);margin:0 2px}
@media(max-width:760px){.info-dialog{width:96vw;padding:16px}.representation-card{padding:14px}.representation-card svg{height:240px}.representation-card code{font-size:17px}}
.representation-card h3>span:first-child{color:var(--ink);font:700 17px Manrope,sans-serif;letter-spacing:0}.representation-actions em{color:#999;font:500 10px "DM Mono";font-style:normal;letter-spacing:.08em}.selection-rect{pointer-events:none}
.fragment-preview{pointer-events:none;opacity:.82}.fragment-bond{stroke:#506158;stroke-width:2.2;stroke-linecap:round}.fragment-atom{stroke:#fff;stroke-width:2;filter:url(#atomShadow)}.fragment-candidate,.bond-candidate{stroke-width:1.35;stroke-dasharray:7 5;pointer-events:none}.fragment-candidate.preview-valid,.bond-candidate.preview-valid,.snap-preview.preview-valid{stroke:#3f8a5b}.fragment-candidate.preview-invalid,.bond-candidate.preview-invalid,.snap-preview.preview-invalid{stroke:#c6534d;opacity:.3}.snap-zone.preview-valid{stroke:#3f8a5b;fill:rgba(63,138,91,.07)}.snap-zone.preview-invalid{stroke:#c6534d;fill:rgba(198,83,77,.025);opacity:.35}
.connection-preview{pointer-events:none}.connection-candidate{stroke-width:1.45}.connection-zone{stroke-width:1}.connection-candidate.preview-valid{animation:connection-pulse 1.1s ease-in-out infinite alternate}@keyframes connection-pulse{to{stroke-width:2.1;opacity:.68}}
.bond-toolbar-icon{display:block;width:23px;height:14px;position:relative;background:linear-gradient(currentColor,currentColor) center/100% 2px no-repeat}.bond-toolbar-icon.double{background:linear-gradient(currentColor,currentColor) center 4px/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center 10px/100% 2px no-repeat}.bond-toolbar-icon.triple{background:linear-gradient(currentColor,currentColor) center 2px/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center 12px/100% 2px no-repeat}.bond-toolbar-icon.aromatic{border-top:2px dashed currentColor;margin-top:10px;background:none}.bond-toolbar-icon.wedge{background:currentColor;clip-path:polygon(0 45%,100% 0,100% 100%,0 55%)}.bond-toolbar-icon.hashed{background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px);clip-path:polygon(0 45%,100% 0,100% 100%,0 55%)}.bond-toolbar-icon.dative:after{content:'→';font:700 20px/14px "DM Mono";position:absolute;top:-4px}.bond-toolbar-icon.ionic{background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 7px)}
.recognized-group{cursor:pointer}.recognized-group ellipse{fill:rgba(49,94,69,.035);stroke:#47755a;stroke-width:2;stroke-dasharray:7 5}.recognized-group text{font:700 10px Manrope;fill:#315e45;paint-order:stroke;stroke:#fbfaf7;stroke-width:4}.recognized-group.collapsed ellipse{stroke:#b27c24;fill:rgba(178,124,36,.06)}.selection-action{margin-top:8px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px 9px;font-size:10px;cursor:pointer}.selection-action:hover{background:var(--green-soft)}
.viewer-controls{display:flex;align-items:center;gap:6px;margin:10px 0}.viewer-controls[hidden]{display:none}.viewer-controls span{font-size:10px;color:var(--muted);margin-right:4px}.viewer-controls button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:6px 10px;font-size:10px;cursor:pointer}.viewer-controls button.active{background:var(--green);color:#fff;border-color:var(--green)}
.atom-node.abbreviated text{font-size:13px}.atom-node .atom-subscript{font-size:9px}.abbreviated-atom{transition:stroke-width .15s}.atom-node.abbreviated.selected .abbreviated-atom,.atom-node.abbreviated.multi-selected .abbreviated-atom{stroke:#315e45;stroke-width:2}

@media(max-width:980px){.periodic-layout{grid-template-columns:1fr}.element-detail{position:static;min-height:0}.periodic-dialog{max-height:92vh;overflow:auto}}

/* Footer, avviso desktop e layout responsive */
.app-footer{height:34px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);background:#fdfcf9;color:#777d78;font-size:9px;letter-spacing:.02em}.app-footer b{font:600 9px "DM Mono"}.app-footer strong{color:var(--green)}.app-footer a{color:var(--green);text-decoration:none}.app-footer a:hover{text-decoration:underline}.desktop-suggestion i{margin-right:5px}.desktop-notice{position:fixed;z-index:80;right:18px;bottom:50px;width:min(360px,calc(100vw - 28px));display:flex;gap:11px;align-items:center;padding:13px 15px;border:1px solid #b8cbbd;border-radius:11px;background:#173c2e;color:#fff;box-shadow:0 14px 38px #142c2350;opacity:0;transform:translateY(18px);pointer-events:none;transition:.22s}.desktop-notice.show{opacity:1;transform:none}.desktop-notice>i{font-size:21px}.desktop-notice span{font-size:10px;line-height:1.45}.desktop-notice strong{display:block;font-size:11px}.toast{bottom:50px}
.atom-node[data-collapsible-group]{cursor:pointer}.atom-node[data-collapsible-group] .abbreviated-atom{stroke:#47755a;stroke-width:1.5;stroke-dasharray:4 2}
@media(max-width:1180px){.app-shell{grid-template-columns:260px minmax(0,1fr)}.right-panel{display:none}.topbar{grid-template-columns:260px 1fr auto}.header-actions .button{padding:0 10px}.header-actions .button i{margin-right:0}.header-actions .button{font-size:0}.header-actions .button i{font-size:14px}.left-panel{padding:22px 17px}}
@media(max-width:820px){body{overflow:auto}.topbar{height:62px;grid-template-columns:1fr auto;padding:0 12px;position:sticky;top:0}.project-title{display:none}.header-actions{gap:4px}.header-actions .button,.header-actions .icon-button{width:36px;height:36px;padding:0;display:grid;place-items:center}.header-actions .divider{display:none}.app-shell{height:auto;display:flex;flex-direction:column}.workspace{order:1;height:62vh;min-height:460px;border-bottom:1px solid var(--line)}.left-panel{order:2;border:0;overflow:visible;padding:22px 18px}.right-panel{display:block;order:3;border:0;overflow:visible;padding:22px 18px}.canvas-toolbar{left:10px;right:10px;top:10px;max-width:none;transform:none;overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.mode-hint{top:64px;max-width:calc(100% - 24px);white-space:normal;text-align:center}.special-bond-palette,.shape-palette{position:fixed;top:116px;left:50%;transform:translateX(-50%);max-height:65vh;overflow:auto}.molecule-list{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{height:auto;min-height:58px;flex-wrap:wrap;padding:10px 14px;justify-content:center;text-align:center}.app-footer .desktop-suggestion{flex-basis:100%}.toast{bottom:76px;max-width:calc(100vw - 28px)}.desktop-notice{bottom:76px}}
@media(max-width:520px){.brand>span:last-child{display:none}.header-actions #textViewBtn,.header-actions #view3dBtn{display:none}.workspace{height:58vh;min-height:420px}.left-panel,.right-panel{padding:18px 12px}.molecule-list{grid-template-columns:1fr}.quick-atoms{grid-template-columns:repeat(4,minmax(0,1fr))}.canvas-toolbar .tool{flex:0 0 35px}.zoom-controls{left:10px;bottom:10px}.mode-hint{font-size:9px}.formula{font-size:21px}.representation-card code{font-size:15px}.viewer-dialog,.info-dialog{width:98vw;padding:13px}.viewer-controls{overflow-x:auto}.app-footer{font-size:8px}}
.representation-card.full{grid-column:1/-1}.representation-card.structural svg{height:340px}@media(max-width:760px){.representation-card.full{grid-column:auto}.representation-card.structural svg{height:280px}}

/* Proprietà atomiche, interoperabilità e modelli 3D */
.atom-property{font:700 8px "DM Mono";fill:#25302a;paint-order:stroke;stroke:#fbfaf7;stroke-width:3px}.atom-property.radical{font-size:12px}.lone-pair{fill:#26302a;pointer-events:none}.atom-property-editor{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#f7f6f2}.atom-property-editor label{display:grid;gap:4px;color:var(--muted);font-size:8px}.atom-property-editor select,.atom-property-editor input{min-width:0;width:100%;height:29px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 6px;font:10px "DM Mono"}.functional-summary{margin-top:20px}.functional-group-list{display:flex;flex-wrap:wrap;gap:5px}.functional-group-list button{border:1px solid #cfd9d1;border-radius:16px;background:#f3f7f3;color:#315e45;padding:5px 8px;font-size:8px;cursor:pointer}.functional-group-list button:hover{background:var(--green-soft)}.functional-group-list i{margin-right:4px}.viewer-settings{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0}.viewer-style-controls,.forcefield-controls{display:flex;align-items:center;gap:5px}.viewer-style-controls>span,.forcefield-controls>label{margin-right:3px;color:var(--muted);font-size:9px}.viewer-style-controls button,.forcefield-controls button,.forcefield-controls select{height:30px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:0 10px;font-size:9px;cursor:pointer}.viewer-style-controls button.active{background:var(--green);border-color:var(--green);color:#fff}.viewer-checkbox{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--line);border-radius:16px;background:#fff;color:#4f5b54;cursor:pointer;white-space:nowrap}.viewer-checkbox input{width:14px;height:14px;margin:0;accent-color:var(--green)}.viewer-checkbox span{margin:0;color:inherit;font-size:9px}.viewer-checkbox:has(input:checked){border-color:#789b83;background:var(--green-soft);color:var(--green)}.viewer-checkbox:has(input:disabled){opacity:.5;cursor:not-allowed}.forcefield-controls select{border-radius:6px}.forcefield-controls button{border-radius:6px;color:var(--green);font-weight:700}.forcefield-controls button:disabled{opacity:.55}.forcefield-disclaimer{font-size:8px!important;margin:2px 0!important;color:#8b8f89!important}.chemical-io-dialog{width:min(820px,94vw)}.chemical-io-toolbar,.chemical-io-actions{display:flex;align-items:center;gap:8px;margin:15px 0}.chemical-io-toolbar label{font-size:10px;color:var(--muted)}.chemical-io-toolbar select,.chemical-io-toolbar button{height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 10px;font-size:10px}.chemical-io-toolbar button{margin-left:auto;cursor:pointer;color:var(--green)}#chemicalData{display:block;width:100%;height:330px;resize:vertical;border:1px solid var(--line);border-radius:9px;background:#f8f7f3;padding:14px;font:12px/1.55 "DM Mono";color:#25302a}.chemical-io-actions{justify-content:flex-end}.chemical-io-actions .button{font-size:10px}
.chemistry-engine-summary{margin-top:20px;padding:12px;border:1px solid #d7dfd8;border-radius:10px;background:linear-gradient(145deg,#fbfcfa,#f1f6f2)}.chemistry-engine-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.chemistry-engine-heading h3{margin:0}.chemistry-engine-heading button{width:29px;height:29px;border:1px solid #cbd8ce;border-radius:50%;background:#fff;color:var(--green);cursor:pointer}.chemistry-engine-stats{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.chemistry-engine-stats span{padding:4px 7px;border-radius:12px;background:#e7efe9;color:#315e45;font:700 8px "DM Mono"}.valence-profile{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;color:var(--muted);font-size:9px}.valence-profile select{height:29px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 6px;font-size:9px}.chemistry-engine-action{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px;height:31px;border:1px solid #bfd0c2;border-radius:7px;background:#fff;color:var(--green);font-size:9px;font-weight:700;cursor:pointer}.chemistry-engine-action:disabled{opacity:.45;cursor:not-allowed}.functional-group-list button small{margin-left:4px;padding:1px 4px;border-radius:6px;background:#dce9df;font-size:6px;text-transform:uppercase}.electronic-analysis-dialog{width:min(900px,96vw)}.electronic-analysis-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.electronic-analysis-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px}.electronic-analysis-card h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:13px}.electronic-analysis-card h3 i{color:var(--green)}.electronic-analysis-card p{margin:4px 0;color:var(--muted);font-size:10px;line-height:1.5}.electronic-form-list{display:grid;gap:6px;margin-top:8px}.electronic-form-list button{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #d1dad3;border-radius:7px;background:#f7faf7;padding:7px 9px;color:#315e45;font-size:9px;text-align:left;cursor:pointer}.electronic-form-list button:hover{background:var(--green-soft)}.analysis-empty{color:var(--muted);font-size:10px}@media(max-width:680px){.electronic-analysis-content{grid-template-columns:1fr}}
@media(max-width:760px){.viewer-settings{display:grid}.viewer-style-controls,.forcefield-controls{overflow-x:auto}.chemical-io-toolbar{flex-wrap:wrap}#chemicalData{height:260px}.atom-property-editor{grid-template-columns:1fr}}

/* Nomenclatura IUPAC assistita */
.iupac-dialog{width:min(920px,95vw)}.iupac-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.iupac-grid>section{min-width:0;padding:18px;border:1px solid var(--line);border-radius:11px;background:#fff}.iupac-direction{display:block;margin-bottom:16px;color:var(--green);font:700 9px "DM Mono";letter-spacing:.08em}.iupac-direction i{margin-right:6px}.iupac-grid label{display:block;margin-bottom:6px;color:var(--muted);font-size:9px}.iupac-grid p{min-height:48px;margin:0 0 13px;color:var(--muted);font-size:10px;line-height:1.55}.iupac-input-row{display:flex;gap:7px}.iupac-input-row input{min-width:0;flex:1;height:38px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:12px "DM Mono"}.iupac-input-row .button{white-space:nowrap}.iupac-examples{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.iupac-examples button{border:1px solid #ced9d1;border-radius:14px;background:#f3f7f3;color:#315e45;padding:5px 8px;font:8px "DM Mono";cursor:pointer}.iupac-result{display:grid;gap:4px;min-height:70px;margin-top:14px;padding:12px;border-radius:8px;background:#f4f3ee;color:#666;font-size:10px;overflow-wrap:anywhere}.iupac-result small{color:#8d918b;font:8px "DM Mono";letter-spacing:.08em}.iupac-result strong{color:var(--ink);font:700 18px Manrope}.iupac-result span{font-size:9px}.iupac-scope{display:flex;gap:10px;align-items:flex-start;margin-top:13px;padding:12px 14px;border-radius:9px;background:#eef4ef;color:#536159;font-size:9px;line-height:1.55}.iupac-scope>i{margin-top:2px;color:var(--green)}.iupac-scope strong{display:block;color:#315e45}
@media(max-width:720px){.iupac-grid{grid-template-columns:1fr}.iupac-input-row{display:grid}.iupac-dialog{padding:14px}.iupac-grid>section{padding:14px}}

/* Navigazione compatta e selettore lingua */
.project-dashboard{position:fixed;inset:0;z-index:6000;overflow:auto;background:radial-gradient(circle at 82% 8%,#dfece3 0,transparent 31%),#f5f2eb;color:var(--ink);transition:opacity .2s}.project-dashboard.closed{display:none}.project-dashboard-shell{width:min(1180px,calc(100% - 40px));margin:auto;padding:0 0 64px}.project-dashboard-header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9d6ce}.project-dashboard-brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-size:20px;font-weight:700;text-decoration:none}.project-dashboard-brand .brand-icon{width:39px;height:39px}.project-dashboard-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,430px);align-items:end;gap:64px;padding:76px 0 58px}.project-dashboard-intro h1{margin:8px 0 13px;font-size:clamp(38px,5vw,68px);line-height:1;letter-spacing:-.045em}.project-dashboard-intro p{max-width:650px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.new-project-form{padding:18px;border:1px solid #cfd5cf;border-radius:14px;background:#ffffffc9;box-shadow:0 18px 50px #263d3020}.new-project-form label{display:block;margin-bottom:9px;color:var(--green);font:700 10px "DM Mono"}.new-project-form>div{display:flex;gap:8px}.new-project-form input{min-width:0;flex:1;height:43px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font:12px Manrope}.new-project-form .button{height:43px;white-space:nowrap}.project-dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.project-dashboard-toolbar h2{margin:0;font-size:17px}.project-dashboard-toolbar span{color:var(--muted);font:9px "DM Mono"}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{position:relative;display:grid;grid-template-rows:145px auto;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 7px 24px #263d300d;transition:.18s}.project-card:hover{transform:translateY(-2px);border-color:#9fb2a5;box-shadow:0 13px 34px #263d3018}.project-preview{position:relative;display:grid;place-items:center;border:0;border-bottom:1px solid #e4e1da;background-color:#f9f8f4;background-image:radial-gradient(#d9d6cf .8px,transparent .8px);background-size:18px 18px;cursor:pointer}.project-preview svg{width:100%;height:100%}.project-preview-empty{color:#aeb5af;font-size:28px}.project-card-body{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px}.project-card-copy{min-width:0;cursor:pointer}.project-card-copy h3{margin:0 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.project-card-copy p{margin:0;color:var(--muted);font:8px/1.5 "DM Mono"}.project-card-actions{display:flex;gap:4px}.project-card-actions button{width:31px;height:31px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#727973;cursor:pointer}.project-card-actions button:hover,.project-card-actions button.active{border-color:#94aa9b;background:var(--green-soft);color:var(--green)}.project-card.locked .project-preview:after{content:'\f023';position:absolute;right:11px;top:10px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;color:#775e2c;font-family:"Font Awesome 6 Free";font-weight:900;box-shadow:0 4px 14px #3c342525}.project-empty{display:none;place-items:center;min-height:250px;border:1px dashed #c8cbc6;border-radius:14px;color:var(--muted);text-align:center}.project-empty.show{display:grid}.project-empty i{font-size:30px}.project-empty strong{margin-top:-45px;color:var(--ink)}.project-empty p{margin-top:-70px;font-size:11px}.project-lock-badge{display:none;margin-left:8px;padding:4px 7px;border-radius:12px;background:#f3ead7;color:#775e2c;font:700 8px "DM Mono"}.project-locked .project-lock-badge{display:inline-flex}.project-locked .canvas-toolbar button:not(#panBtn):not([data-tool="select"]):not(#orbitalViewBtn):not(#aromaticStyleBtn):not(#abbreviatedBtn):not(#groupHighlightBtn){opacity:.5}.project-locked #moleculeCanvas{cursor:default}.project-locked .project-title button:after{content:' \f023';font-family:"Font Awesome 6 Free";font-weight:900;color:#8a6b32}.project-dashboard .language-menu{z-index:6100}
@media(max-width:900px){.project-dashboard-intro{grid-template-columns:1fr;gap:28px;padding:48px 0 40px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.project-dashboard-shell{width:calc(100% - 24px)}.project-dashboard-header{height:64px}.project-dashboard-intro{padding:34px 0}.project-dashboard-intro h1{font-size:38px}.new-project-form>div{display:grid}.project-grid{grid-template-columns:1fr}.project-card{grid-template-rows:125px auto}}

/* Orbitali atomici e di legame: livello SVG dedicato per un ridisegno più fluido. */
#orbitalLayer{pointer-events:none}.bond-orbitals,.atomic-orbitals{pointer-events:none;opacity:1}.bond-orbitals ellipse,.atomic-orbitals circle,.atomic-orbitals ellipse{shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke;transition:opacity .16s ease,stroke-opacity .16s ease}.orbital-sigma{fill:url(#orbitalSigma);stroke:rgba(38,105,66,.76);stroke-width:1.15}.orbital-sigma.antibonding{fill:rgba(197,74,69,.22);stroke:#b64f4a;stroke-dasharray:4 3}.orbital-pi{stroke-width:1.15}.orbital-pi.positive{fill:url(#orbitalPositive);stroke:rgba(54,103,172,.76)}.orbital-pi.negative{fill:url(#orbitalNegative);stroke:rgba(184,105,25,.76)}.orbital-pi.antibonding{stroke-dasharray:3 2;opacity:.78}.bond-orbitals .occupancy-1{opacity:.68}.bond-orbitals .occupancy-0{fill:rgba(255,255,255,.08);opacity:.48;stroke-dasharray:3 3}.orbital-label{fill:#294e3a;font:700 8px "DM Mono";text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.bond-orbital-editor{margin-top:9px;padding:10px;border:1px solid #cddbd1;border-radius:9px;background:#f3f7f3}.orbital-editor-title{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.orbital-editor-title>i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#dcebe0;color:var(--green)}.orbital-editor-title span{min-width:0}.orbital-editor-title strong{display:block;font-size:10px}.orbital-editor-title small{display:block;margin-top:3px;color:#5d6b63;font:8px/1.45 "DM Mono"}.orbital-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.orbital-editor-grid label{display:grid;gap:4px;color:var(--muted);font-size:8px}.orbital-editor-grid select{min-width:0;width:100%;height:29px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 6px;font:9px "DM Mono"}.orbital-no-pi{align-self:end;padding:8px;color:var(--muted);font-size:8px}.orbital-editor-note{margin:9px 0 0!important;color:var(--muted)!important;font-size:8px!important;line-height:1.45!important}.bond-orbital-editor.ionic{background:#f5f5f2;border-color:var(--line)}
.atomic-s{fill:url(#orbitalAtomicS);stroke:rgba(101,65,151,.62);stroke-width:1.05}.atomic-lobe{stroke-width:1.05}.atomic-lobe.positive{fill:url(#orbitalPositive);stroke:rgba(43,88,153,.68)}.atomic-lobe.negative{fill:url(#orbitalNegative);stroke:rgba(159,87,16,.68)}.atomic-lobe.residual-p{fill-opacity:.44;stroke-width:1.2}.atomic-orbitals .single{opacity:.68}.atomic-orbitals .empty{fill:rgba(255,255,255,.06);opacity:.4;stroke-dasharray:3 3}.atomic-orbital-label{fill:#53645a;font:700 7px "DM Mono";paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.validation-content{min-width:0;flex:1}.validation details{margin-top:7px}.validation summary{color:#6b5140;font:700 8px "DM Mono";cursor:pointer}.validation ul{margin:7px 0 0;padding-left:17px;color:#615f59;font-size:9px;line-height:1.5}.diagnostic-list{display:grid;gap:7px;margin:8px 0 0;padding-left:18px;color:#615f59;font-size:9px;line-height:1.4}.diagnostic-list li{padding-left:2px}.diagnostic-list b,.diagnostic-list span{display:block}.diagnostic-list code{display:inline-block;margin:2px 0;color:#95604b;font:700 7px "DM Mono"}.diagnostic-atoms{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.diagnostic-atoms button{min-height:26px;padding:0 8px;border:1px solid #d9a7a3;border-radius:13px;background:#fff;color:#9a3f3b;font:700 8px "DM Mono";cursor:pointer}.diagnostic-atoms button:hover,.diagnostic-atoms button:focus-visible{background:#fff3f2;border-color:#b85b55}.atom-node.diagnostic-atom .halo{opacity:1;fill:rgba(200,73,66,.1);stroke:#c84942;stroke-width:1.5;stroke-dasharray:4 3}.atom-node.diagnostic-focus .halo{animation:diagnosticPulse .7s ease-out 2}@keyframes diagnosticPulse{50%{transform:scale(1.35);opacity:.35}}
#moleculeCanvas[data-render-quality="medium"] #orbitalLayer{opacity:.92}#moleculeCanvas[data-render-quality="low"] #orbitalLayer{opacity:.82}#moleculeCanvas[data-render-quality="low"] .atomic-orbital-label,#moleculeCanvas[data-render-quality="low"] .orbital-label{display:none}
@media(max-width:520px){.orbital-editor-grid{grid-template-columns:1fr}.orbital-label{display:none}}
.chemical-preview{display:flex;gap:9px;align-items:flex-start;margin-top:9px;padding:10px 12px;border:1px solid #ccd9cf;border-radius:8px;background:#f1f7f2;color:#486052;font-size:10px;line-height:1.5}.chemical-preview.error{border-color:#e2b5b0;background:#fff0ee;color:#993f39}.chemical-preview.warning{border-color:#dfc99e;background:#fff8e8;color:#775d26}.chemical-preview i{margin-top:2px}.chemical-preview span{display:grid;gap:2px}.chemical-preview small{color:inherit;opacity:.8}.chemical-io-actions button:disabled{opacity:.45;cursor:not-allowed}.project-archive-dialog{width:min(680px,94vw)}.archive-toggle{display:flex;gap:12px;align-items:flex-start;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}.archive-toggle input{margin-top:3px;accent-color:var(--green)}.archive-toggle span{display:grid;gap:4px}.archive-toggle strong{font-size:11px}.archive-toggle small{color:var(--muted);font-size:9px;line-height:1.5}.archive-status{padding:10px 12px;border-radius:8px;background:#f2f1ec;color:var(--muted);font-size:9px}.archive-create{display:flex;gap:8px;margin:12px 0}.archive-create input{min-width:0;flex:1;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:10px}.snapshot-list{display:grid;gap:7px;max-height:300px;overflow:auto}.snapshot-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.snapshot-row strong,.snapshot-row small{display:block}.snapshot-row strong{font-size:10px}.snapshot-row small{margin-top:3px;color:var(--muted);font:8px "DM Mono"}.snapshot-row div:last-child{display:flex;gap:5px}.snapshot-row button{width:31px;height:31px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--green);cursor:pointer}.snapshot-empty{padding:22px;text-align:center;color:var(--muted);font-size:10px}
.language-switcher,.header-tools{position:relative}.language-trigger{height:38px;min-width:70px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--green);font:700 10px "DM Mono",monospace;cursor:pointer}.language-trigger:hover,.language-switcher.open .language-trigger{border-color:#98ad9f;background:#f7faf8}.language-trigger .fa-chevron-down{font-size:8px;transition:transform .16s}.language-switcher.open .fa-chevron-down{transform:rotate(180deg)}.language-menu{position:absolute;z-index:3100;top:calc(100% + 7px);right:0;display:none;width:184px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 17px 42px #17251e2b}.language-switcher.open .language-menu{display:grid;gap:2px}.language-menu button{width:100%;display:grid;grid-template-columns:34px 1fr 18px;align-items:center;gap:8px;padding:9px;border:0;border-radius:7px;background:transparent;text-align:left;font-size:11px;cursor:pointer}.language-menu button:hover,.language-menu button.active{background:var(--green-soft);color:var(--green)}.language-menu .language-code{display:grid;place-items:center;height:24px;border:1px solid #d8ddd9;border-radius:6px;font:700 8px "DM Mono",monospace}.language-menu button i{visibility:hidden;font-size:10px}.language-menu button.active i{visibility:visible}.header-tools-menu{position:absolute;z-index:3000;top:calc(100% + 7px);right:0;display:none;width:226px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 17px 42px #17251e2b}.header-tools.open .header-tools-menu{display:grid;gap:2px}.header-tools-menu .button{display:flex!important;align-items:center!important;width:100%!important;height:40px!important;min-height:40px;justify-content:flex-start!important;padding:0 10px!important;border:0;border-radius:7px;background:transparent;font-size:11px!important;line-height:1!important;text-align:left}.header-tools-menu .button:hover{background:var(--green-soft);color:var(--green)}.header-tools-menu .button i{display:grid;place-items:center;align-self:center;width:24px;height:24px;margin:0 7px 0 0!important;text-align:center;font-size:13px!important;line-height:1!important}.header-tools-trigger .menu-chevron{margin:0 0 0 7px!important;font-size:8px!important;transition:transform .16s}.header-tools.open .header-tools-trigger .menu-chevron{transform:rotate(180deg)}
@media(max-width:1180px){.header-tools-trigger span,.header-tools-trigger .menu-chevron{display:none}.header-tools-trigger>i:first-child{margin:0!important}.header-tools-trigger{width:38px}.language-trigger{min-width:62px}.header-tools-menu .button{font-size:11px!important}}
@media(max-width:520px){html,body{max-width:100%;overflow-x:hidden}.topbar{display:flex!important;justify-content:space-between;width:100vw;max-width:100vw}.language-trigger{min-width:34px;width:34px;height:34px;padding:0}.language-trigger [data-language-current],.language-trigger .fa-chevron-down{display:none}.header-actions{position:absolute;right:8px;min-width:0;width:max-content;gap:3px}.header-actions .icon-button{width:32px;height:34px}.header-tools-trigger,.header-actions #exportBtn{display:grid!important;width:32px!important;height:34px!important}.language-menu{position:fixed;top:58px;right:8px}.header-tools-menu{position:fixed;top:58px;right:8px;width:min(226px,calc(100vw - 16px))}}
@media(max-width:720px){.quick-reaction-panel{top:108px;grid-template-columns:1fr auto}.quick-reaction-panel label{grid-column:1/-1;grid-row:2}.quick-reaction-panel>div{min-width:0}.quick-reaction-run{grid-column:1}.quick-reaction-cancel{grid-column:2}.mode-hint{display:none}}

/* Reaction workspace · 1.24 */
.reaction-dialog{width:min(1240px,97vw);max-height:94vh;padding:22px;overflow:auto}.reaction-source{margin-top:18px;padding:14px;border:1px solid #cfdcd2;border-radius:12px;background:linear-gradient(135deg,#f8fbf8,#f1f6f2)}.reaction-source>p{margin:7px 0 12px;color:var(--muted);font-size:9px}.reaction-source button{height:34px;border:1px solid #cbd8ce;border-radius:7px;background:#fff;color:var(--green);padding:0 10px;font-size:9px;font-weight:700;cursor:pointer}.reaction-source button:disabled,.reaction-side button:disabled,.reaction-agents button:disabled{opacity:.45;cursor:not-allowed}.reaction-source-controls{display:grid;grid-template-columns:minmax(240px,1fr) repeat(3,auto);gap:7px}.reaction-source-controls select,.reaction-product-builder select{min-width:0;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 9px;font-size:9px}.reaction-product-builder{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid #dae3dc}.reaction-product-builder label{color:var(--muted);font-size:9px;font-weight:700}.reaction-product-note{display:block;margin-top:8px;color:#5b7262;font-size:8px}.reaction-product-note i{margin-right:4px}.reaction-sheet{display:grid;grid-template-columns:minmax(260px,1fr) 230px minmax(260px,1fr);gap:14px;margin-top:14px}.reaction-side,.reaction-arrow-column,.reaction-agents,.reaction-analysis-grid>section,.mechanistic-editor,.reaction-io{border:1px solid var(--line);border-radius:12px;background:#fff}.reaction-side{min-height:260px;padding:14px}.reaction-side>header,.reaction-agents>header,.reaction-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.reaction-side>header>div{display:flex;align-items:center;gap:8px}.reaction-side>header span:first-child{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--green-soft);color:var(--green);font:700 8px "DM Mono"}.reaction-side h3,.reaction-agents h3,.reaction-section-heading h3{margin:0;font-size:13px}.reaction-side header button,.reaction-agents header button,.reaction-io button,.mechanistic-controls button{height:32px;border:1px solid #cbd8ce;border-radius:7px;background:#f7faf7;color:var(--green);padding:0 9px;font-size:9px;font-weight:700;cursor:pointer}.reaction-component-list{display:grid;gap:8px;margin-top:12px}.reaction-component-list.horizontal{grid-template-columns:repeat(3,minmax(0,1fr))}.reaction-component{display:grid;grid-template-columns:42px 112px minmax(0,1fr) 28px;align-items:center;gap:7px;padding:8px;border:1px solid #dde2dd;border-radius:9px;background:#fbfbf8}.reaction-component>label{display:grid;gap:3px;color:var(--muted);font-size:7px}.reaction-component>label input{width:38px;height:30px;border:1px solid var(--line);border-radius:6px;text-align:center;font:700 11px "DM Mono"}.reaction-component-visual{width:110px;height:64px;border-radius:6px;background:#f3f2ed}.reaction-component-visual svg{display:block;width:100%;height:100%}.reaction-component-visual text{font:700 7px "DM Mono"}.reaction-component strong,.reaction-component small{display:block;overflow-wrap:anywhere}.reaction-component strong{font-size:10px}.reaction-component small{margin-top:4px;color:var(--muted);font:8px "DM Mono"}.reaction-component>button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#9b625d;cursor:pointer}.reaction-component>button:hover{background:#fff0ee}.reaction-empty{display:grid;place-items:center;min-height:145px;border:1px dashed #d7dbd7;border-radius:9px;color:var(--muted);font-size:9px}.reaction-arrow-column{display:grid;align-content:start;gap:6px;padding:14px;background:linear-gradient(180deg,#f7faf7,#f3f2ed)}.reaction-arrow-column label{margin-top:3px;color:var(--muted);font-size:8px}.reaction-arrow-column select,.reaction-arrow-column input,.reaction-arrow-column textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px;font-size:9px}.reaction-arrow-column select,.reaction-arrow-column input{height:32px}.reaction-arrow-column textarea{height:58px;padding-top:8px;resize:vertical}.reaction-arrow-preview{display:grid;place-items:center;min-height:62px;color:var(--green)}.reaction-arrow-preview strong{font:500 42px Georgia,serif;line-height:1}.reaction-arrow-preview small{color:var(--muted);font-size:8px}.reaction-agents{margin-top:12px;padding:13px}.reaction-agents .reaction-component{grid-template-columns:42px 96px minmax(0,1fr) 28px}.reaction-agents .reaction-component-visual{width:96px}.reaction-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.reaction-analysis-grid>section,.mechanistic-editor,.reaction-io{padding:14px}.reaction-section-heading .eyebrow{font-size:7px}.reaction-section-heading .button{height:34px;font-size:9px}.reaction-analysis{display:flex;align-items:flex-start;gap:9px;min-height:74px;margin-top:12px;padding:12px;border-radius:9px;background:#f5f4ef;color:#6e746f}.reaction-analysis>i{margin-top:2px}.reaction-analysis>span{display:grid;gap:3px}.reaction-analysis strong{font-size:10px}.reaction-analysis small{font-size:8px;line-height:1.4}.reaction-analysis.valid{background:#edf6ef;color:#366747}.reaction-analysis.error{background:#fff1ef;color:#963f38}.reaction-analysis .suggestion{margin-top:3px;padding:4px 6px;border-radius:5px;background:#fff8e7;color:#765c24}.reaction-mapping{margin-top:12px}.reaction-mapping-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.reaction-mapping-summary span{display:grid;gap:2px;padding:8px;border-radius:8px;background:#f3f5f2;color:var(--muted);font-size:7px;text-align:center}.reaction-mapping-summary strong{color:var(--ink);font:700 15px "DM Mono"}.reaction-mapping>p{margin:10px 0 0;color:var(--muted);font-size:9px}.bond-change-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.bond-change-list span{padding:4px 7px;border-radius:12px;background:#f1f1ed;font-size:8px}.bond-change-list i{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%}.bond-change-list .created i{background:#3d8a59}.bond-change-list .removed i{background:#b94a42}.bond-change-list .modified i{background:#c58a2d}.mechanistic-editor{margin-top:12px}.mechanistic-controls{display:grid;grid-template-columns:160px 1fr auto 1fr auto;align-items:center;gap:7px;margin-top:12px}.mechanistic-controls select{min-width:0;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px;font-size:9px}.mechanistic-controls>i{color:var(--green)}.mechanistic-arrow-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.mechanistic-arrow-list>span{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #d8dfd9;border-radius:15px;background:#f5f8f5;color:#43634e;font-size:8px}.mechanistic-arrow-list button{border:0;background:transparent;color:#8b5b57;cursor:pointer}.mechanistic-arrow-list>small{color:var(--muted);font-size:8px}.reaction-io{margin-top:12px}.reaction-section-heading>div:last-child{display:flex;gap:6px}.reaction-section-heading select{height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px;font-size:9px}#reactionIoData{display:block;width:100%;height:150px;margin-top:10px;resize:vertical;border:1px solid var(--line);border-radius:9px;background:#f8f7f3;padding:12px;font:10px/1.5 "DM Mono"}.reaction-io-preview{margin-top:7px;padding:8px 10px;border-radius:7px;background:#eef5ef;color:#486052;font-size:8px}.reaction-io-preview.error{background:#fff0ee;color:#993f39}
@media(max-width:980px){.reaction-sheet{grid-template-columns:1fr 180px 1fr}.reaction-component{grid-template-columns:38px 1fr 28px}.reaction-component-visual{display:none}.reaction-component-list.horizontal{grid-template-columns:repeat(2,minmax(0,1fr))}.reaction-analysis-grid{grid-template-columns:1fr}}
@media(max-width:700px){.reaction-dialog{padding:13px}.reaction-source-controls,.reaction-product-builder{grid-template-columns:1fr}.reaction-sheet{grid-template-columns:1fr}.reaction-arrow-column{order:2}.reaction-side:last-child{order:3}.reaction-component-list.horizontal{grid-template-columns:1fr}.mechanistic-controls{grid-template-columns:1fr}.mechanistic-controls>i{transform:rotate(90deg);justify-self:center}.reaction-mapping-summary{grid-template-columns:repeat(2,1fr)}.reaction-section-heading{align-items:flex-start;flex-wrap:wrap}}
.mechanistic-diagram{display:block;width:100%;height:150px;margin-top:10px;border:1px solid #e1e3df;border-radius:9px;background:linear-gradient(#fbfbf8,#f5f4ef);overflow:auto}.mechanistic-molecule line{stroke:#747b76;stroke-width:2}.mechanistic-molecule circle{fill:#fff;stroke:#6d8f77;stroke-width:1.5}.mechanistic-molecule text{fill:#26302a;font:700 8px "DM Mono";text-anchor:middle}.mechanistic-molecule .component-label{fill:#717771;font-size:8px}.mechanistic-path{fill:none;stroke:#34704b;stroke-width:2}.mechanistic-path.fishhook{stroke:#9b652d;stroke-width:1.6}#mechanisticArrowhead path,#mechanisticFishhook path{fill:#34704b;stroke:#34704b}

/* Dock atomi e disegno scheletrico */
.atom-dock{position:absolute;z-index:6;left:50%;bottom:17px;transform:translateX(-50%);display:flex;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 190px);padding:6px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(30,35,32,.11);backdrop-filter:blur(8px)}
.atom-dock-label{display:flex;align-items:center;gap:6px;padding:0 7px;color:var(--green);font-size:10px;font-weight:700;white-space:nowrap}.atom-dock-label i{font-size:14px}.atom-dock .quick-atoms{display:flex;min-width:0;gap:5px;max-width:min(55vw,620px);overflow-x:auto;scrollbar-width:thin}.atom-dock .atom-choice{flex:0 0 45px;width:45px;height:45px;padding:3px;border-radius:7px}.atom-dock .atom-choice strong{font-size:15px;line-height:1}.atom-dock .atom-choice small{max-width:40px;overflow:hidden;text-overflow:ellipsis;font-size:6px}.atom-dock .periodic-button{flex:0 0 auto;width:auto;height:45px;margin:0;padding:0 12px;border-radius:8px;background:#f4f6f2;color:var(--green);font-size:9px;font-weight:700;white-space:nowrap}.atom-dock .periodic-button i{font-size:15px}.atom-dock .periodic-button span{display:inline}
.special-bond-palette{width:236px}.bond-draw-heading{display:flex;align-items:center;gap:7px;margin:5px 4px 2px;padding:8px 5px 6px;border-top:1px solid var(--line);color:var(--green);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.bond-draw-icon{display:grid;place-items:center;width:32px;height:24px;border:1px solid #d4ddd6;border-radius:6px;background:#f5f8f5;color:var(--green)}.special-bond-palette [data-bond-draw].active{background:var(--green-soft);color:var(--green)}.workspace.bond-draw-mode #moleculeCanvas{cursor:crosshair}
@media(max-width:820px){.atom-dock{bottom:10px;max-width:calc(100% - 20px)}.atom-dock-label span,.atom-dock .periodic-button span{display:none}.atom-dock .quick-atoms{max-width:calc(100vw - 150px)}.zoom-controls{bottom:70px}}
@media(max-width:520px){.atom-dock{left:8px;right:8px;transform:none;display:grid;grid-template-columns:minmax(0,1fr) 41px;width:auto}.atom-dock-label{display:none}.atom-dock .quick-atoms{width:100%;max-width:none}.atom-dock .periodic-button{width:41px;padding:0;justify-content:center}.zoom-controls{bottom:67px}.special-bond-palette{width:min(236px,calc(100vw - 24px))}}

/* Ricerca libreria, filtri orbitali e suggerimenti contestuali */
.library-search{height:39px;display:grid;grid-template-columns:20px 1fr 28px;align-items:center;gap:4px;margin:0 0 9px;padding:0 6px 0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#8b918c}.library-search:focus-within{border-color:#8da796;box-shadow:0 0 0 3px #315e4510}.library-search input{min-width:0;width:100%;height:100%;border:0;outline:0;background:transparent;font-size:12px}.library-search button{display:none;width:27px;height:27px;border:0;border-radius:6px;background:transparent;color:#747b76;cursor:pointer}.library-search:has(input:not(:placeholder-shown)) button{display:grid;place-items:center}.library-empty{padding:24px 12px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:11px;text-align:center}
.tool[aria-pressed="true"]{background:var(--green-soft);color:var(--green);box-shadow:inset 0 0 0 1px #9db7a4}.tool.active[aria-haspopup="true"]:after{content:"";position:absolute;bottom:-4px;width:4px;height:4px;border-radius:50%;background:var(--green)}
.orbital-palette{position:absolute;z-index:9;top:72px;left:50%;display:none;width:218px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 12px 32px #1b241f20;transform:translateX(8%)}.orbital-palette.open{display:grid;gap:5px}.orbital-palette>div{display:grid;padding:3px 5px 7px;border-bottom:1px solid var(--line)}.orbital-palette>div strong{font-size:10px}.orbital-palette>div small{margin-top:2px;color:var(--muted);font-size:7px}.orbital-palette label,.viewer-orbital-filters label{display:flex;align-items:center;gap:7px;padding:7px;border-radius:7px;background:#f7f8f5;color:#4c5d52;font-size:9px;cursor:pointer}.orbital-palette label:has(input:checked),.viewer-orbital-filters label:has(input:checked){background:var(--green-soft);color:var(--green)}.orbital-palette input,.viewer-orbital-filters input{accent-color:var(--green)}.orbital-palette label span{display:flex;align-items:center;gap:7px}.orbital-palette label span>*{width:16px;text-align:center}
.viewer-orbital-filters{display:flex;align-items:center;gap:5px;min-width:0;margin:0 0 9px;padding:7px 9px;border:1px solid var(--line);border-radius:10px}.viewer-orbital-filters:disabled{opacity:.48}.viewer-orbital-filters legend{padding:0 5px;color:var(--muted);font-size:8px}.viewer-orbital-filters label{padding:5px 8px;white-space:nowrap}.viewer-orbital-filters input{margin:0}
.build-suggestion{position:absolute;z-index:4;right:18px;bottom:82px;display:flex;align-items:flex-start;gap:9px;width:min(340px,calc(100% - 36px));padding:11px 13px;border:1px solid #cdd9d0;border-radius:10px;background:rgba(248,251,248,.94);color:#41604c;box-shadow:0 7px 22px #24382d12;backdrop-filter:blur(7px);pointer-events:none}.build-suggestion.actionable{z-index:15;width:min(390px,calc(100% - 36px));pointer-events:auto}.build-suggestion>i{margin-top:2px;color:#b18128}.build-suggestion>span{display:grid;min-width:0;flex:1}.build-suggestion strong{font-size:11px}.build-suggestion>span>small{margin-top:2px;color:#65736a;font-size:10px;line-height:1.4}.build-suggestion.error{border-color:#e2bab5;background:#fff4f2;color:#923d37}.build-suggestion.success{border-color:#b9d1c0;background:#eef7f0}.suggestion-options{display:grid;gap:5px;margin-top:9px}.suggestion-options button{display:grid;grid-template-columns:58px 1fr 18px;align-items:center;gap:7px;width:100%;min-height:39px;padding:5px 7px;border:1px solid #cad8ce;border-radius:8px;background:#fff;color:#394b40;text-align:left;cursor:pointer}.suggestion-options button:hover,.suggestion-options button:focus-visible{border-color:#6f947c;background:#f7fbf8;outline:none;box-shadow:0 0 0 2px #6f947c20}.suggestion-options b{font:700 13px "DM Mono",monospace;color:var(--green)}.suggestion-options span{display:flex;align-items:center;gap:7px;min-width:0;font-size:10px}.suggestion-options span small{margin:0;padding:2px 5px;border-radius:9px;background:#f0eee8;color:#746d61;font:700 8px "DM Mono",monospace}.suggestion-options i{font-size:10px;color:#6c8d77}.workspace:has(#moleculeCanvas.structural-mode){background:#fbfaf7}.structural-atom-backing{fill:#fbfaf7;stroke:#dedbd3;stroke-width:.8}.structural-lone-pair{fill:#26302a}.atom-node.structural text{font-size:15px}.atom-node.structural .implicit-hydrogen{font-size:12px}.atom-node.structural .implicit-subscript{font-size:8px}
@media(max-width:820px){.orbital-palette{position:fixed;top:116px;left:50%;transform:translateX(-50%)}.build-suggestion{right:10px;bottom:126px;width:min(290px,calc(100% - 20px))}.viewer-orbital-filters{overflow-x:auto}}
@media(max-width:520px){.build-suggestion{display:none}.build-suggestion.actionable{display:flex;right:8px;bottom:120px;width:calc(100% - 16px);max-height:42vh;overflow:auto}.library-search{height:42px}.selection-quick-actions{gap:1px;padding:4px}.selection-quick-actions button{width:29px;height:29px}}
