@import"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&family=Work+Sans:wght@400;500;600&display=swap";:root{--bianco: #ffffff;--grigio-chiaro: #dedede;--grigio-medio: #bfbfbf;--verde: #9dc277;--verde-scuro: #7fa85b;--antracite: #202020;--numero: #6e6e6e;--sfondo: #f4f5f3;--titoli: "Roboto", system-ui, sans-serif;--corpo: "Work Sans", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--corpo);color:var(--antracite);background:var(--sfondo)}button{font-family:var(--corpo);cursor:pointer}.app-header{display:flex;align-items:center;gap:20px;padding:14px 24px;background:var(--bianco);border-bottom:1px solid var(--grigio-chiaro);position:sticky;top:0;z-index:10}.app-header .brand{font-family:var(--titoli);font-weight:500;font-size:18px;letter-spacing:.02em}.app-header .brand .dot{color:var(--verde)}.app-header .project-input{flex:1;max-width:360px;padding:9px 12px;border:1px solid var(--grigio-chiaro);border-radius:8px;font-size:14px;font-family:var(--corpo)}.app-header .save-state{font-size:12px;color:var(--numero);min-width:130px;white-space:nowrap}.app-header .save-state.saved{color:var(--verde-scuro)}.app-header .save-state.error{color:#c0392b;font-weight:600}.app-header .spacer{flex:1}.zoom-ctl{display:flex;align-items:center;border:1px solid var(--grigio-chiaro);border-radius:9px;overflow:hidden}.zoom-ctl button{border:none;background:var(--bianco);color:var(--antracite);padding:8px 12px;font-size:16px;line-height:1}.zoom-ctl button:disabled{color:var(--grigio-medio);cursor:not-allowed}.zoom-ctl button:not(:disabled):hover{background:#eef5e6}.zoom-ctl .pct{min-width:52px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;border-left:1px solid var(--grigio-chiaro);border-right:1px solid var(--grigio-chiaro)}.btn-primary{background:var(--verde);color:var(--antracite);border:none;padding:11px 22px;border-radius:9px;font-weight:600;font-size:14px;transition:background .15s}.btn-primary:hover{background:var(--verde-scuro);color:#fff}.btn-primary:disabled{background:var(--grigio-medio);cursor:not-allowed}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 24px;align-items:start}.section-col{background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:12px;display:flex;flex-direction:column}.section-col.is-empty{align-self:start}.section-col h2{font-family:var(--titoli);font-weight:500;font-size:15px;margin:0;padding:12px 12px 10px 16px;border-bottom:1px solid var(--grigio-chiaro);display:flex;align-items:center;gap:8px}.section-col h2 .title{flex:1;min-width:0}.section-col h2 .count{font-family:var(--corpo);font-weight:500;font-size:12px;color:var(--numero);opacity:0;transition:opacity .12s}.section-col:hover h2 .count{opacity:1}.section-col h2 .add-btn{border:1px solid var(--grigio-chiaro);background:var(--bianco);color:var(--verde-scuro);width:26px;height:26px;border-radius:7px;font-size:15px;line-height:1;flex:0 0 auto}.section-col h2 .add-btn:hover{background:#eef5e6;border-color:var(--verde)}.dropzone{padding:10px;border-radius:10px}.dropzone.file-over{background:#eef5e6;outline:2px dashed var(--verde);outline-offset:-6px}.empty-note{display:flex;align-items:center;justify-content:center;min-height:62px;padding:8px;border:1px dashed var(--grigio-medio);border-radius:8px;font-size:11px;color:var(--grigio-medio);text-align:center}.thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.thumb{position:relative;aspect-ratio:1 / 1;border:1px solid var(--grigio-chiaro);border-radius:7px;background:var(--grigio-chiaro);overflow:hidden;cursor:grab}.thumb.dragging{opacity:.35}.thumb.drop-before{outline:2px solid var(--verde);outline-offset:-2px}.thumb .preview{cursor:pointer}.thumb .badge{position:absolute;top:3px;left:3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#202020b8;color:#fff;font-size:10px;font-weight:600;line-height:17px;text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;opacity:0;transition:opacity .12s}.thumb:hover .badge{opacity:1}.thumb .remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border:none;border-radius:50%;background:#20202099;color:#fff;font-size:14px;line-height:1;opacity:0;transition:opacity .12s}.thumb:hover .remove{opacity:1}.thumb .remove:hover{background:#c0392b}.thumb .actions{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:3px;padding:3px;background:linear-gradient(to top,#0000008c,#0000);opacity:0;transition:opacity .12s}.thumb:hover .actions{opacity:1}.thumb .actions button{width:18px;height:18px;border:none;border-radius:4px;background:#202020cc;color:#fff;font-size:12px;line-height:1;padding:0}.thumb .actions button:disabled{opacity:.3;cursor:not-allowed}.thumb .actions button:not(:disabled):hover{background:var(--verde);color:var(--antracite)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2020208c;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bianco);border-radius:14px;padding:22px;width:min(520px,92vw)}.modal h3{font-family:var(--titoli);font-weight:500;margin:0 0 14px}.editor-square{width:100%;aspect-ratio:1 / 1;background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:8px;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;touch-action:none}.editor-square img{width:100%;height:100%;display:block;pointer-events:none}.editor-square.cover{cursor:grab}.editor-square.cover:active{cursor:grabbing}.editor-toolbar{display:flex;gap:8px;margin:14px 0;align-items:stretch}.rotate-group{display:flex;gap:6px}.rotate-group .btn-ghost{padding:9px 12px;font-size:18px;line-height:1}.seg{flex:1;display:flex;border:1px solid var(--grigio-chiaro);border-radius:8px;overflow:hidden}.seg button{flex:1;border:none;background:var(--bianco);padding:9px;font-size:13px;color:var(--numero)}.seg button.active{background:var(--verde);color:var(--antracite);font-weight:600}.zoom-row{display:flex;align-items:center;gap:10px;margin:4px 0 2px;font-size:12px;color:var(--numero)}.zoom-row input[type=range]{flex:1;accent-color:var(--verde)}.zoom-row .zoom-val{font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.editor-hint{font-size:12px;color:var(--numero);min-height:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.btn-ghost{background:transparent;border:1px solid var(--grigio-chiaro);border-radius:8px;padding:10px 18px;font-size:14px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--antracite);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;z-index:60;max-width:80vw}.toast.error{background:#c0392b}.notice-modal{width:min(560px,92vw)}.notice-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-family:var(--titoli);font-weight:500;font-size:17px}.notice-title .ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#fdecea;color:#c0392b;font-size:15px}.notice-msg{margin:0 0 12px;font-size:14px;line-height:1.5}.notice-hint{background:#eef5e6;border-left:3px solid var(--verde);border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5}.notice-details{margin-top:12px}.notice-details-head{font-size:12px;font-weight:600;color:var(--numero);margin-bottom:5px}.notice-details ul{margin:0;padding:8px 10px;list-style:none;max-height:150px;overflow-y:auto;background:#f7f8f6;border:1px solid var(--grigio-chiaro);border-radius:8px}.notice-details li{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--antracite);padding:2px 0;word-break:break-all}.thumb.broken{border-color:#c0392b;background:#fdecea}.thumb .broken-flag{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#c0392b;color:#fff;font-size:10px;font-weight:600;padding:3px 7px;border-radius:5px;white-space:nowrap;pointer-events:none}.project-picker{position:relative;width:240px;flex:0 0 auto}.project-picker .picker-input{width:100%;padding:9px 26px 9px 12px;border:1px solid var(--grigio-chiaro);border-radius:8px;font-size:14px;font-family:var(--corpo);background:var(--bianco)}.project-picker .picker-input::placeholder{color:var(--antracite);opacity:.85}.project-picker .picker-caret{position:absolute;right:9px;top:50%;transform:translateY(-50%) scaleX(1.35);color:var(--antracite);font-size:16px;font-weight:700;line-height:1;pointer-events:none}.project-picker .picker-list{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:10px;box-shadow:0 8px 24px #20202024;max-height:320px;overflow-y:auto;z-index:40}.project-picker .picker-list li{padding:8px 10px;border-radius:7px;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-picker .picker-list li.hi{background:#eef5e6}.project-picker .picker-list li.cur{font-weight:600}.project-picker .picker-list li.empty{color:var(--numero);cursor:default}.name-editor{display:flex;align-items:center;gap:6px}.name-editor input{width:280px;padding:9px 12px;border:1px solid var(--verde);border-radius:8px;font-size:14px;font-family:var(--corpo);outline:none}.name-editor button{border:1px solid var(--grigio-chiaro);background:var(--bianco);border-radius:8px;width:34px;height:34px;font-size:14px;line-height:1}.name-editor .ok{border-color:var(--verde);color:var(--verde-scuro);font-weight:700}.name-editor .ok:hover{background:var(--verde);color:var(--antracite)}.name-editor .cancel:hover{color:#c0392b}.project-menu{position:relative}.project-menu .menu-btn{padding:10px 14px;font-size:16px;line-height:1}.project-menu .menu-list{position:absolute;top:calc(100% + 4px);left:0;margin:0;padding:5px;list-style:none;min-width:210px;background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:10px;box-shadow:0 8px 24px #20202024;z-index:40}.project-menu .menu-list li.sep{height:1px;background:var(--grigio-chiaro);margin:5px 4px}.project-menu .menu-list button{width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:7px;font-size:13px;color:var(--antracite)}.project-menu .menu-list button:hover:not(:disabled){background:#eef5e6}.project-menu .menu-list button:disabled{color:var(--grigio-medio);cursor:not-allowed}.project-menu .menu-list button.danger{color:#c0392b}.project-menu .menu-list button.danger:hover:not(:disabled){background:#fdecea}.nas-modal{width:min(860px,94vw)}.nas-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:12px;font-size:13px}.nas-crumbs button{border:none;background:transparent;color:var(--verde-scuro);font-size:13px;padding:2px 4px;border-radius:6px}.nas-crumbs button:disabled{color:var(--antracite);font-weight:600}.nas-crumbs button:not(:disabled):hover{background:#eef5e6}.nas-crumbs .sep{color:var(--grigio-medio)}.nas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;max-height:56vh;overflow:auto;padding:4px}.nas-folder,.nas-file{position:relative;border:1px solid var(--grigio-chiaro);border-radius:8px;background:var(--bianco);padding:0;overflow:hidden;cursor:pointer;text-align:left}.nas-folder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:1 / 1;color:var(--antracite)}.nas-folder .ico{font-size:30px}.nas-file{aspect-ratio:1 / 1}.nas-file img{width:100%;height:100%;object-fit:cover;display:block}.nas-file.sel{outline:3px solid var(--verde);outline-offset:-3px}.nas-file.is-pdf{border-color:var(--verde)}.nas-file .pdf-tag{position:absolute;top:6px;left:6px;padding:1px 6px;border-radius:5px;background:var(--verde);color:var(--antracite);font-size:10px;font-weight:700;letter-spacing:.04em}.modal h3 .pdf-file{display:block;font-family:var(--corpo);font-weight:400;font-size:12px;color:var(--numero);margin-top:2px}.nas-file .tick{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--verde);color:var(--antracite);font-size:14px;font-weight:700;line-height:22px;text-align:center}.nas-name{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-size:11px;background:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nas-folder .nas-name{position:static;background:transparent;padding:0 6px 8px;text-align:center}.nas-empty,.nas-error{color:var(--numero);font-size:13px;padding:16px 4px}.nas-error{color:#c0392b}.nas-count{margin-right:auto;font-size:12px;color:var(--numero);align-self:center}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sfondo);padding:24px}.login-box{background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:14px;padding:32px;width:min(360px,92vw);display:flex;flex-direction:column;gap:14px}.login-brand{font-family:var(--titoli);font-weight:500;font-size:16px;letter-spacing:.02em;color:var(--numero)}.login-brand .dot{color:var(--verde)}.login-box h1{font-family:var(--titoli);font-weight:500;font-size:22px;margin:0 0 4px}.login-box label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--numero)}.login-box input{padding:10px 12px;border:1px solid var(--grigio-chiaro);border-radius:8px;font-size:14px;font-family:var(--corpo)}.login-msg{font-size:14px;color:var(--numero);text-align:center}.login-error{color:#c0392b;font-size:13px;margin:0}.app-header .user-name{font-size:13px;color:var(--numero);white-space:nowrap}.badge-stato{float:right;margin-left:8px;padding:1px 7px;border-radius:8px;font-size:10px;font-weight:600;letter-spacing:.02em}.badge-stato.bozza{background:#eef5e6;color:var(--verde-scuro)}.badge-stato.chiuso{background:var(--grigio-chiaro);color:var(--numero)}.project-picker .picker-list li.chiuso{opacity:.6}.fabbricato-field{position:relative}.fabbricato-btn{border:1px solid var(--grigio-chiaro);background:var(--bianco);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--antracite);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fabbricato-btn.unset{color:var(--numero);font-style:italic}.fabbricato-btn:hover{border-color:var(--verde)}.fabbricato-popover{position:absolute;top:calc(100% + 4px);left:0;width:min(360px,90vw);background:var(--bianco);border:1px solid var(--grigio-chiaro);border-radius:10px;box-shadow:0 8px 24px #20202024;padding:14px;z-index:40}.fabbricato-popover h4{margin:0 0 10px;font-family:var(--titoli);font-weight:500;font-size:14px}.fabbricato-hint{font-size:12px;color:var(--numero);margin:6px 0}.fabbricato-error{font-size:12px;color:#c0392b;margin:6px 0}.fabbricato-provenienza{font-size:13px;line-height:1.5;margin:0 0 10px}.fabbricato-ricerca input{width:100%;padding:9px 12px;border:1px solid var(--grigio-chiaro);border-radius:8px;font-size:13px;font-family:var(--corpo);margin-bottom:8px}.fabbricato-results{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.fabbricato-result{width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:7px;font-size:13px}.fabbricato-result:hover{background:#eef5e6}.import-modal{width:min(560px,92vw)}.fabbricato-corrente{font-size:13px;margin:0 0 14px}.link-btn{border:none;background:transparent;color:var(--verde-scuro);font-size:12px;padding:0;text-decoration:underline}.import-targets fieldset{border:1px solid var(--grigio-chiaro);border-radius:10px;padding:10px 12px;margin:0 0 12px}.import-targets legend{font-size:12px;font-weight:600;color:var(--numero);padding:0 4px}.import-target-row{display:flex;align-items:center;gap:8px;padding:6px 2px;font-size:13px}.import-target-meta{color:var(--numero);font-size:11px;margin-left:auto}.import-esito-ok{color:var(--verde-scuro);font-weight:600;font-size:14px}.avatar{position:relative;display:inline-flex;flex:0 0 auto;border-radius:50%;overflow:hidden;vertical-align:middle}.avatar-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--bianco);font-family:var(--titoli);font-weight:500;line-height:1;-webkit-user-select:none;user-select:none}.avatar img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.presidio-banner{display:flex;align-items:center;gap:10px;padding:10px 24px;background:#fff6e0;border-bottom:1px solid #e9d8a6;font-family:var(--corpo);font-size:13px;color:var(--antracite)}.presidio-msg{flex:1}.presidio-subentra{border:1px solid var(--grigio-medio);background:var(--bianco)}.project-picker .picker-list li{display:flex;align-items:center;gap:8px;white-space:normal}.project-picker .picker-list li .picker-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-picker .picker-list li .avatar,.project-picker .picker-list li .badge-stato{flex:0 0 auto}.thumb .remove{width:25px;height:25px;font-size:15px}.thumb .remove svg{display:block}.toast-body{display:flex;align-items:center;gap:14px}.toast-action{flex:0 0 auto;border:1px solid rgba(255,255,255,.55);border-radius:6px;background:transparent;color:inherit;padding:5px 12px;font-size:13px;font-weight:600}.toast-action:hover{background:#ffffff2e}.nas-error strong{display:block;margin-bottom:4px}.nas-error p{margin:2px 0}.nas-error-hint{color:var(--antracite)!important;opacity:.85}.closed-banner{background:#eef1f4;border-bottom-color:var(--grigio-chiaro)}.thumb .remove,.thumb .actions button,.section-col h2 .add-btn,.project-menu .menu-btn,.zoom-ctl button,.nas-file .tick,.rotate-group .btn-ghost{display:inline-flex;align-items:center;justify-content:center}.inline-ico{vertical-align:-2px;margin:0 1px}.modal:focus-visible,.modal:focus{outline:2px solid var(--verde);outline-offset:3px}
