:root{--ceppo: #e3e1d9;--calce: #f7f5f0;--calce-2: #edeae2;--calce-3: #e6e3da;--inchiostro: #1d211e;--nebbia: #5b605a;--nebbia-2: #6c7169;--spento: #a0a49b;--linea: rgba(29, 33, 30, .13);--linea-soft: rgba(29, 33, 30, .07);--linea-forte: rgba(29, 33, 30, .24);--lapis: #2a4c7c;--lapis-alto: #34598e;--lapis-velo: rgba(42, 76, 124, .1);--su-lapis: #f7f5f0;--velo-immagine: rgba(29, 33, 30, .1);--cotto: #b24e31;--ottone: #8c6a1a;--allarme: #9b3222;--lift: 0 0 0 1px rgba(29, 33, 30, .06), 0 1px 2px -1px rgba(29, 33, 30, .08), 0 2px 6px rgba(29, 33, 30, .05);--lift-alto: 0 0 0 1px rgba(29, 33, 30, .07), 0 2px 4px -2px rgba(29, 33, 30, .1), 0 8px 24px rgba(29, 33, 30, .1);--velario: rgba(38, 36, 30, .42);--r-chip: 6px;--r-ctrl: 8px;--r-card: 12px;--ui: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--uscita: cubic-bezier(.23, 1, .32, 1)}:root[data-theme=dark]{--ceppo: #171a18;--calce: #1e221f;--calce-2: #262b28;--calce-3: #2e332f;--inchiostro: #e4e4dc;--nebbia: #a8ada4;--nebbia-2: #858a82;--spento: #6a6f68;--linea: rgba(228, 228, 220, .13);--linea-soft: rgba(228, 228, 220, .07);--linea-forte: rgba(228, 228, 220, .26);--lapis: #8db2df;--lapis-alto: #a2c2e9;--lapis-velo: rgba(141, 178, 223, .16);--su-lapis: #13233a;--velo-immagine: rgba(255, 255, 255, .1);--cotto: #e08363;--ottone: #cba549;--allarme: #e07a68;--lift: 0 0 0 1px rgba(228, 228, 220, .09);--lift-alto: 0 0 0 1px rgba(228, 228, 220, .13), 0 12px 32px rgba(0, 0, 0, .5);--velario: rgba(8, 10, 9, .62)}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--ceppo);color:var(--inchiostro);font-family:var(--ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-wrap:pretty}a{color:var(--lapis);text-underline-offset:2px}button,.btn{font:inherit;font-weight:500;color:inherit;cursor:pointer;border:none;background:var(--calce);box-shadow:var(--lift);border-radius:var(--r-ctrl);padding:8px 14px;min-height:34px;transition:background-color .14s var(--uscita),box-shadow .14s var(--uscita),transform 90ms var(--uscita)}button:hover:not(:disabled),.btn:hover{background:var(--calce-2)}button:active:not(:disabled),.btn:active{transform:scale(.97)}button:disabled{color:var(--spento);box-shadow:0 0 0 1px var(--linea-soft);background:transparent;cursor:not-allowed}.btn-primary{background:var(--lapis);color:var(--su-lapis);box-shadow:none;font-weight:500}.btn-primary:hover:not(:disabled),a.btn-primary:hover{background:var(--lapis-alto)}.btn-primary:disabled{background:var(--lapis-velo);color:var(--spento);box-shadow:none}.icon-btn{width:34px;padding:0;display:grid;place-items:center;border-radius:var(--r-ctrl);background:transparent;box-shadow:none;color:var(--nebbia-2)}.icon-btn:hover:not(:disabled){background:var(--calce-2);color:var(--inchiostro)}a.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;color:var(--inchiostro)}a.btn.btn-primary,a.btn.btn-primary:hover{color:var(--su-lapis)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}input,select,textarea{font:inherit;color:inherit;background:var(--calce-2);border:1px solid var(--linea-soft);border-radius:var(--r-ctrl);padding:7px 10px;min-height:34px;transition:border-color .14s var(--uscita),background-color .14s var(--uscita)}input:hover,select:hover,textarea:hover{border-color:var(--linea)}input::placeholder,textarea::placeholder{color:var(--spento)}:focus-visible{outline:2px solid var(--lapis);outline-offset:1px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:-1px;border-color:transparent}.app{max-width:1360px;margin:0 auto;padding:28px 28px 72px}.spacer{flex:1}header.top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}header.top h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.022em}.runline{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--nebbia);margin-bottom:20px;min-height:24px}.runline .stat{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}.runline .stat b{color:var(--inchiostro);font-weight:500}.runline.error{color:var(--allarme)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:var(--calce);box-shadow:var(--lift);font-size:12px;font-weight:500;color:var(--inchiostro);white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;flex:none}.dot.ok{background:var(--lapis)}.dot.bad{background:var(--allarme)}.dot.run{background:var(--ottone);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.hint{font-size:12px;color:var(--nebbia)}.hint.warn{color:var(--ottone)}.hint strong{font-family:var(--mono);font-weight:500;color:var(--inchiostro);font-variant-numeric:tabular-nums}.filters{background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift);margin-bottom:20px;overflow:hidden}.filters-row{padding:16px 20px;display:flex;gap:12px 28px;flex-wrap:wrap;align-items:flex-end}.filters-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--linea-soft)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--nebbia-2)}.field input[type=number]{width:116px;font-family:var(--mono);font-variant-numeric:tabular-nums}.checks{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.checks label{display:inline-flex;gap:7px;align-items:center;cursor:pointer;white-space:nowrap;font-size:13px;padding:7px 11px 7px 9px;min-height:34px;border-radius:var(--r-chip);background:var(--calce-2);transition:background-color .14s var(--uscita),color .14s var(--uscita)}.checks label:hover{background:var(--calce-3)}.checks label:has(input:checked){background:var(--lapis-velo);color:var(--lapis);font-weight:500}.checks input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;min-height:0;margin:0;padding:0;flex:none;border-radius:4px;border:1.5px solid var(--linea-forte);background:transparent;position:relative;transition:background-color .14s var(--uscita),border-color .14s var(--uscita)}.checks input[type=checkbox]:checked{background:var(--lapis);border-color:var(--lapis)}.checks input[type=checkbox]:checked:after{content:"";position:absolute;left:3.5px;top:.5px;width:4px;height:8px;border:solid var(--su-lapis);border-width:0 2px 2px 0;transform:rotate(42deg)}.tablewrap{background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:940px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--linea-soft);vertical-align:middle}th{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--nebbia-2);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;position:sticky;top:0;z-index:1;padding-top:14px;padding-bottom:10px;background:var(--calce);border-bottom:1px solid var(--linea);transition:color .14s var(--uscita)}th:hover{color:var(--inchiostro)}th .caret{color:var(--lapis)}tbody tr{cursor:pointer;transition:background-color .14s var(--uscita)}tbody tr:hover{background:var(--calce-2)}tbody tr:focus-visible{outline:2px solid var(--lapis);outline-offset:-2px}tbody tr:last-child td{border-bottom:none}tbody tr.inactive td{color:var(--nebbia-2)}tbody tr.inactive .thumb{opacity:.5}tbody tr.inactive .price{color:var(--nebbia);font-weight:500}.thumb{width:84px;height:62px;object-fit:cover;border-radius:var(--r-ctrl);background:var(--calce-2);box-shadow:inset 0 0 0 1px var(--velo-immagine);display:block}.thumb.empty{display:grid;place-items:center;color:var(--nebbia-2);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.price{font-size:17px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.2}.num{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.num .unit{color:var(--nebbia-2)}.sub{color:var(--nebbia);font-size:12.5px}.only-narrow{display:none}.flags{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap;align-items:baseline}.ribasso{font-family:var(--mono);font-size:11.5px;font-weight:500;color:var(--cotto);font-variant-numeric:tabular-nums;white-space:nowrap}.ribasso s{color:var(--nebbia-2);text-decoration-thickness:1px}.tag{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.tag.new{color:var(--lapis)}.tag.sold,.tag.muted{color:var(--nebbia-2)}select.status{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;font-size:12.5px;font-weight:500;padding:5px 8px;min-height:32px;border:1px solid transparent;border-radius:var(--r-chip);background-color:var(--calce-2);color:var(--nebbia);max-width:100%}select.status:hover{background-color:var(--calce-3)}select.status[data-s=interested]{color:color-mix(in srgb,var(--lapis) 62%,var(--nebbia))}select.status[data-s=contacted],select.status[data-s=replied]{color:color-mix(in srgb,var(--lapis) 82%,var(--nebbia))}select.status[data-s=visit]{color:var(--lapis);background-color:var(--lapis-velo)}select.status[data-s=negotiating]{color:var(--su-lapis);background-color:var(--lapis)}select.status[data-s=unavailable],select.status[data-s=discarded]{color:var(--nebbia-2);background-color:transparent;border-color:var(--linea)}.sortbar{display:none}.empty-state{padding:64px 24px;text-align:center;color:var(--nebbia);max-width:44ch;margin:0 auto;text-wrap:balance}.empty-state strong{color:var(--inchiostro);font-weight:500}.segmented{display:inline-flex;padding:3px;gap:3px;background:var(--calce-2);border-radius:10px}.segmented .seg{background:transparent;box-shadow:none;color:var(--nebbia);border-radius:7px;padding:5px 12px;min-height:30px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:8px}.segmented .seg:hover{color:var(--inchiostro);background:transparent}.segmented .seg.active{background:var(--calce);color:var(--inchiostro);box-shadow:var(--lift)}.seg-count{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;padding:1px 6px;border-radius:99px;background:var(--lapis-velo);color:var(--nebbia)}.segmented .seg.active .seg-count{color:var(--lapis)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--velario);z-index:10;animation:fade-in .2s var(--uscita)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--calce);box-shadow:var(--lift-alto);z-index:11;overflow-y:auto;padding:24px 26px 48px;animation:slide-in .24s var(--uscita)}.drawer h2{margin:0 0 3px;font-size:21px;font-weight:600;letter-spacing:-.022em;padding-right:44px;text-wrap:balance}.drawer .close{position:absolute;top:18px;right:20px;width:34px;height:34px;padding:0;display:grid;place-items:center;border-radius:99px;background:var(--calce-2);box-shadow:none;color:var(--nebbia)}.drawer .close:hover{background:var(--calce-3);color:var(--inchiostro)}.drawer-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:18px 0 2px}.drawer-price .price{font-size:30px;letter-spacing:-.03em}.gallery{display:flex;gap:8px;overflow-x:auto;margin:18px 0;padding-bottom:4px}.gallery img{height:184px;border-radius:var(--r-ctrl);object-fit:cover;flex:none;background:var(--calce-2);box-shadow:inset 0 0 0 1px var(--velo-immagine)}.kv{display:grid;grid-template-columns:116px 1fr;gap:0 16px;margin:20px 0}.kv dt{color:var(--nebbia-2);font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;padding:7px 0;border-top:1px solid var(--linea-soft)}.kv dd{margin:0;font-size:13.5px;padding:7px 0;border-top:1px solid var(--linea-soft);min-width:0;overflow-wrap:anywhere}.kv dd.num{font-size:13px}.kv dd.gone{color:var(--allarme)}.section-label{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--nebbia-2);margin:20px 0 8px}.pricelog{display:flex;flex-direction:column;gap:2px}.pricelog div{display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;padding:5px 0;border-bottom:1px solid var(--linea-soft)}.pricelog div:last-child{border-bottom:none}.pricelog time{color:var(--nebbia)}.drawer textarea{width:100%;min-height:88px;resize:vertical;line-height:1.5}.drawer .actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.drawer .actions>*{flex:1}.toasts{position:fixed;right:20px;bottom:20px;z-index:20;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;padding:10px 16px;border-radius:var(--r-ctrl);font-size:13px;font-weight:500;color:var(--inchiostro);background:var(--calce);box-shadow:var(--lift-alto);animation:toast-in .2s var(--uscita)}.toast .mark{font-size:12px}.toast.ok .mark{color:var(--lapis)}.toast.error .mark{color:var(--allarme)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{transform:translate(18px);opacity:0}}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;padding:32px;background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift-alto)}.gate-card h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.024em}.gate-sub{margin:-8px 0 8px;color:var(--nebbia);font-size:13px}.gate-card input{width:100%;min-height:38px}.gate-card button{min-height:38px}.gate-error{margin:0;color:var(--allarme);font-size:13px}@media (max-width: 1000px){.app{padding:20px 18px 56px}.filters-row{gap:12px 20px}.field input[type=number]{width:100%;min-width:104px}}@media (max-width: 860px){.app{padding:14px 14px 44px}header.top{gap:12px;margin-bottom:14px}header.top h1{font-size:18px}.segmented{width:100%}.segmented .seg{flex:1;justify-content:center;min-height:36px}.runline{margin-bottom:14px}.filters-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px 10px;padding:16px}.filters-row>.field:nth-child(n+4){grid-column:1 / -1}.filters-row>.field{min-width:0}.field>label{font-size:10px;letter-spacing:.06em}.field input,.field select{width:100%;min-height:40px}.field input[type=number]{min-width:0;padding:7px 8px}.pill-quiet{display:none}.checks{gap:8px}.checks label{min-height:40px}.filters-actions{padding:12px 16px}.filters-actions .spacer{display:none}.filters-actions .hint{width:100%}.filters-actions button{flex:1;min-height:42px}.sortbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift);margin-bottom:12px}.sortbar label{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--nebbia-2);flex:none}.sortbar select{flex:1;min-width:0;min-height:38px}.sortbar button{flex:none;min-height:38px;padding:8px 12px}.tablewrap{overflow-x:visible;background:transparent;box-shadow:none;border-radius:0}table{min-width:0}thead{display:none}table,tbody,tr,td{display:block}tbody tr{display:grid;grid-template-columns:auto auto auto 1fr;grid-template-areas:"photo photo photo photo" "price price price price" "addr  addr  addr  addr" "m2    eurm2 rooms ." "src   src   status status";gap:10px 16px;padding:12px;background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift);margin-bottom:12px}tbody tr:last-child{margin-bottom:0}tbody tr:hover{background:var(--calce)}tbody tr.inactive{box-shadow:0 0 0 1px var(--linea-soft)}tbody td{border:none;padding:0;min-width:0}td[data-col=photo]{grid-area:photo}td[data-col=price]{grid-area:price}td[data-col=m2]{grid-area:m2}td[data-col=eurm2]{grid-area:eurm2}td[data-col=rooms]{grid-area:rooms}td[data-col=addr]{grid-area:addr}td[data-col=src]{grid-area:src;align-self:center}td[data-col=status]{grid-area:status;justify-self:end;width:100%}td[data-col=town]{display:none}.only-narrow{display:inline}.num{font-size:13.5px}.thumb,.thumb.empty{width:100%;height:184px;border-radius:var(--r-ctrl)}td[data-col=price] .price{font-size:26px;letter-spacing:-.03em}td[data-col=price] .flags{margin-top:7px;gap:8px}td[data-col=addr]{font-size:14.5px;font-weight:500;letter-spacing:-.008em}td[data-col=addr] .sub{font-weight:400;margin-top:1px}td[data-col=src]{font-size:13px}td[data-col=status] select.status{width:100%;min-height:40px}.empty-state{background:var(--calce);border-radius:var(--r-card);box-shadow:var(--lift);padding:48px 20px}.toasts{right:12px;left:12px;bottom:12px;align-items:stretch}}@media (max-width: 400px){tbody tr{grid-template-areas:"photo photo photo photo" "price price price price" "addr  addr  addr  addr" "m2    eurm2 rooms ." "src   src   src   src" "status status status status"}td[data-col=status]{justify-self:stretch}.num{font-size:12.5px}}@media (max-width: 640px){.drawer{width:100vw;padding:20px 16px 40px;animation-name:slide-up}.drawer h2{font-size:18px}.drawer-price .price{font-size:26px}.gallery img{height:176px}.kv{grid-template-columns:96px 1fr;gap:0 12px}.drawer .actions{flex-direction:column}.drawer .actions>*{width:100%;min-height:42px}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}button:active:not(:disabled),.btn:active{transform:none}}
