:root{--bg: #121110;--surface: #1c1a18;--surface-2: #252220;--surface-3: #2f2b28;--border: rgba(255, 255, 255, .08);--border-2: rgba(255, 255, 255, .14);--text: #f4f1ec;--text-2: rgba(244, 241, 236, .72);--text-3: rgba(244, 241, 236, .48);--accent: #f0a82f;--accent-2: #d8911f;--accent-soft: rgba(240, 168, 47, .14);--ok: #5ec46f;--mid: #f0a82f;--high: #ef5a48;--radius: 16px;--radius-s: 10px;--tab-h: 64px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.4}body{overscroll-behavior-y:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input,select,textarea{font:inherit;color:var(--text)}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums}.shell{max-width:760px;margin:0 auto;min-height:100vh;padding-bottom:calc(var(--tab-h) + var(--safe-b) + 24px)}.shell.no-tabs{padding-bottom:calc(var(--safe-b) + 24px)}.page{padding:0 16px}.stack>*+*{margin-top:12px}.section{margin-top:22px}.section-title{font-size:13px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin:0 4px 8px;display:flex;justify-content:space-between;align-items:baseline}.section-title a,.section-title button{color:var(--accent);text-transform:none;letter-spacing:0;font-size:14px}.muted{color:var(--text-2)}.faint{color:var(--text-3);font-size:13px}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:flex-end;gap:8px;padding:calc(var(--safe-t) + 18px) 16px 12px;background:linear-gradient(var(--bg) 70%,rgba(18,17,16,0))}.appbar-title{flex:1;min-width:0}.appbar h1{font-size:30px;font-weight:750;letter-spacing:-.02em}.appbar p{color:var(--text-3);font-size:14px;margin-top:2px}.appbar-detail{align-items:center;padding-top:calc(var(--safe-t) + 8px);background:#121110eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.appbar-detail h1{font-size:17px;font-weight:650;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-detail .appbar-title{text-align:center}.appbar-action{display:flex;gap:4px;min-width:44px;justify-content:flex-end}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--accent)}.icon-btn:active{background:var(--surface-2)}.text-btn{color:var(--accent);font-weight:600;padding:10px 6px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:760px;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);background:#161413f0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);font-size:11px;font-weight:550}.tab.is-active{color:var(--accent)}.fab{position:fixed;z-index:25;right:max(18px,calc(50% - 362px));bottom:calc(var(--tab-h) + var(--safe-b) + 18px);width:58px;height:58px;border-radius:18px;display:grid;place-items:center;color:#1a1300;background:linear-gradient(180deg,#f6b744,var(--accent-2));box-shadow:0 10px 28px #f0a82f52,0 2px 6px #0006}.fab:active{transform:scale(.96)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card-pad{padding:16px}.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.row{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:60px;position:relative}.row+.row:before{content:"";position:absolute;top:0;right:0;left:14px;height:1px;background:var(--border)}.row:active{background:var(--surface-2)}.row-main{flex:1;min-width:0}.row-title{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{color:var(--text-3);font-size:13px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-end{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.row-end strong{font-size:15px;font-weight:650;font-variant-numeric:tabular-nums}.chev{color:var(--text-3);flex-shrink:0}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot-warn{background:var(--high)}.dot-old{background:var(--accent)}.thumb{border-radius:12px;object-fit:cover;flex-shrink:0;background:var(--surface-3)}.thumb-empty{display:grid;place-items:center;color:var(--text-3)}.fc-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.fc-ok{color:var(--ok);background:#5ec46f21}.fc-mid{color:var(--mid);background:#f0a82f24}.fc-high{color:var(--high);background:#ef5a4824}.fc-none{color:var(--text-3);background:var(--surface-2)}.fc-big{font-size:15px;padding:4px 12px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.kpi span{display:block;color:var(--text-3);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.kpi strong{display:block;font-size:26px;font-weight:750;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}.kpi small{color:var(--text-3);font-size:12px}.kpi-accent{background:linear-gradient(160deg,#f0a82f33,#f0a82f0a);border-color:#f0a82f59}.kpi-accent strong{color:var(--accent)}.kpi-3{grid-template-columns:repeat(3,1fr)}.kpi-3 .kpi strong{font-size:19px}.hero{position:relative;margin:0 -16px;height:240px;background:var(--surface-2);overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 45%,rgba(18,17,16,.95))}.hero-empty{display:grid;place-items:center;color:var(--text-3);height:120px}.hero-title{position:relative;margin-top:-58px;z-index:2}.hero-title h2{font-size:26px;font-weight:750;letter-spacing:-.02em}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{white-space:nowrap;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.chip-accent{background:var(--accent-soft);color:var(--accent);border-color:#f0a82f4d}.chip-btn{cursor:pointer}.chip-btn.is-on{background:var(--accent-soft);color:var(--accent);border-color:#f0a82f73}.bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.bar>span{height:100%}.legend{display:grid;gap:6px;margin-top:12px}.legend-row{display:flex;align-items:center;gap:8px;font-size:14px}.legend-row .sw{width:10px;height:10px;border-radius:3px;flex-shrink:0}.legend-row .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}.legend-row .vl{font-variant-numeric:tabular-nums;font-weight:600}.strategies{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.strategy{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 10px;text-align:center}.strategy span{display:block;font-size:12px;color:var(--text-3);font-weight:600}.strategy strong{display:block;font-size:20px;font-weight:750;margin:4px 0 2px;font-variant-numeric:tabular-nums}.strategy small{color:var(--text-3);font-size:11px;white-space:nowrap;display:block}.strategy.is-current{border-color:#f0a82f80;background:linear-gradient(180deg,rgba(240,168,47,.12),transparent)}.ing-row{display:flex;align-items:baseline;gap:10px;padding:11px 14px;font-size:15px;position:relative}.ing-row+.ing-row:before{content:"";position:absolute;top:0;left:14px;right:0;height:1px;background:var(--border)}.ing-row .q{color:var(--text-3);font-variant-numeric:tabular-nums;min-width:72px;font-size:14px}.ing-row .n{flex:1;min-width:0}.ing-row .c{font-variant-numeric:tabular-nums;font-weight:600}.ing-row .sub-tag{color:var(--accent);font-size:12px;margin-left:6px}.ing-row.has-problem .c{color:var(--high)}.alert{display:flex;gap:10px;padding:12px 14px;border-radius:14px;font-size:14px;line-height:1.35;background:#ef5a4817;border:1px solid rgba(239,90,72,.28);color:#f3c3bc}.alert svg{flex-shrink:0;color:var(--high);margin-top:1px}.alert-soft{background:var(--accent-soft);border-color:#f0a82f47;color:#f6dcae}.alert-soft svg{color:var(--accent)}.install-banner{display:flex;gap:12px;align-items:flex-start;margin:14px 0;border-color:#f0a82f59}.install-banner img{border-radius:11px;flex-shrink:0}.install-text{flex:1;display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--text-2);line-height:1.4}.install-text strong{color:var(--text);font-size:16px}.install-text svg{vertical-align:-3px;color:var(--accent)}.install-actions{display:flex;gap:8px;margin-top:8px}.install-actions .btn{min-height:40px;padding:0 16px}.prose{white-space:pre-wrap;color:var(--text-2);font-size:15px;line-height:1.55}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.action{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:14px;background:var(--surface);border:1px solid var(--border);font-size:12px;color:var(--text-2)}.action svg{color:var(--accent)}.action.danger svg{color:var(--high)}.form{display:grid;gap:14px}.field{display:grid;gap:6px}.field-label{font-size:13px;font-weight:600;color:var(--text-3)}.field-hint{font-size:12px;color:var(--text-3)}.field input:not([type=checkbox]),.field select,.field textarea,.num-input,.money-input{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border-2);outline:none}.field textarea{min-height:130px;resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus,.num-input:focus,.money-input:focus-within{border-color:var(--accent)}.money-input{display:flex;align-items:center;padding:0 14px}.money-input input,.field .money-input input{flex:1;min-width:0;border:0!important;background:none!important;outline:none;padding:0!important;min-height:44px;font-variant-numeric:tabular-nums}.money-input span{color:var(--text-3)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:14px;font-weight:650;font-size:16px;background:var(--surface-2);border:1px solid var(--border-2)}.btn-primary{background:linear-gradient(180deg,#f6b744,var(--accent-2));color:#1a1300;border:0}.btn-danger{color:var(--high)}.btn-block{width:100%}.btn:disabled{opacity:.5}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border-radius:12px;background:var(--surface-2)}.segmented button{min-height:38px;border-radius:10px;font-size:14px;font-weight:600;color:var(--text-2)}.segmented button.is-on{background:var(--surface-3);color:var(--text);box-shadow:0 1px 4px #0006}.searchbar{display:flex;align-items:center;gap:8px;padding:0 12px;min-height:44px;border-radius:12px;background:var(--surface-2);color:var(--text-3)}.searchbar input{flex:1;min-width:0;border:0;background:none;outline:none;min-height:42px;color:var(--text)}.searchbar input::-webkit-search-cancel-button{display:none}.filters{display:flex;gap:6px;overflow-x:auto;padding:2px 0;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.edit-line{display:grid;grid-template-columns:1fr 86px 64px 36px;gap:6px;align-items:center;padding:10px 12px;position:relative}.edit-line+.edit-line:before{content:"";position:absolute;top:0;left:12px;right:0;height:1px;background:var(--border)}.edit-line .nm{min-width:0}.edit-line .nm strong{display:block;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-line .nm small{color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}.edit-line .num-input{min-height:40px;padding:8px 10px;text-align:right;border-radius:10px}.edit-line select{min-height:40px;padding:6px 4px;border-radius:10px;background:var(--surface);border:1px solid var(--border-2)}.edit-line .del{color:var(--text-3);width:36px;height:40px;display:grid;place-items:center}.edit-line .price-line{grid-column:1 / -1;display:grid;grid-template-columns:1fr 110px 64px 36px;gap:6px;align-items:center}.edit-line .price-line>span{font-size:12px;color:var(--text-3)}.edit-line .price-line.is-changed>span{color:var(--accent)}.edit-line .price-line .money-input{min-height:36px;padding:0 10px;border-radius:10px}.edit-line .price-line .money-input input{min-height:34px;text-align:right}.edit-line .price-line select{min-height:36px}.edit-line-text{grid-template-columns:1fr 96px 36px}.edit-line-text input{min-height:40px;padding:8px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--border-2);width:100%}.add-line{display:flex;gap:8px}.add-line .btn{flex:1;min-height:46px;font-size:15px}.add-line .btn svg{color:var(--accent)}.sticky-total{position:fixed;z-index:35;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:760px;padding:10px 16px calc(var(--safe-b) + 10px);background:#161413f5;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);display:flex;align-items:center;gap:12px}.sticky-total .totals{flex:1;display:flex;gap:16px}.sticky-total .totals div span{display:block;font-size:11px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.sticky-total .totals div strong{font-size:18px;font-variant-numeric:tabular-nums}.sticky-total .btn{min-height:46px}.photo-pick{position:relative;display:grid;place-items:center;height:170px;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px dashed var(--border-2);color:var(--text-3)}.photo-pick img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.photo-pick .ph-label{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:14px;font-weight:600}.photo-pick.has-photo .ph-label{background:#0000008c;padding:8px 14px;border-radius:12px;color:#fff}.photo-pick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}.sheet{width:100%;max-width:760px;max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border-radius:22px 22px 0 0;border:1px solid var(--border);padding-bottom:var(--safe-b);animation:up .24s cubic-bezier(.2,.8,.2,1)}.sheet-handle{width:40px;height:5px;border-radius:3px;background:var(--border-2);margin:8px auto 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 18px}.sheet-head h2{font-size:18px;font-weight:700}.sheet-body{overflow-y:auto;padding:4px 16px 16px}.pick-row{display:flex;align-items:center;gap:10px;width:100%;padding:12px 6px;text-align:left;border-bottom:1px solid var(--border)}.pick-row:active{background:var(--surface-2)}.pick-row .row-main{flex:1}@keyframes up{0%{transform:translateY(40px);opacity:.4}}@keyframes fade{0%{opacity:0}}.empty{text-align:center;padding:48px 24px;color:var(--text-3)}.empty h3{color:var(--text);font-size:18px;margin:12px 0 6px}.empty p{font-size:14px;max-width:320px;margin:0 auto 16px}.toast{position:fixed;z-index:60;left:50%;bottom:calc(var(--tab-h) + var(--safe-b) + 24px);transform:translate(-50%);padding:12px 18px;border-radius:14px;background:var(--surface-3);border:1px solid var(--border-2);font-weight:600;font-size:15px;box-shadow:0 10px 30px #00000080;animation:up .2s ease;white-space:nowrap}.toast-ok{border-color:#5ec46f66}.toast-err{border-color:#ef5a4880;color:#f6c7c0}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:360px;text-align:center}.login-logo{width:76px;height:76px;border-radius:22px;margin:0 auto 18px;display:grid;place-items:center;color:#1a1300;background:linear-gradient(160deg,#f6b744,var(--accent-2));box-shadow:0 16px 40px #f0a82f47;font-weight:800;font-size:26px;letter-spacing:-.03em}.login h1{font-size:26px;font-weight:750}.login p{color:var(--text-3);margin:6px 0 24px}.login .form{text-align:left}.login-or{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:13px;margin:6px 0}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--border)}.totp-qr{background:#fff;border-radius:14px;padding:10px;width:220px;margin:4px auto}.totp-qr svg{display:block;width:100%;height:auto}.totp-secret{font:600 16px ui-monospace,monospace;letter-spacing:.04em;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--border-2);color:var(--text);width:100%}.codes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.codes code{font:600 17px ui-monospace,monospace;padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--border);text-align:center}.check-line{display:flex;gap:10px;align-items:center;justify-content:center;color:var(--text-2)}.sola-lettura .edit-only{display:none!important}.sola-lettura .form input,.sola-lettura .form select,.sola-lettura .form textarea,.sola-lettura .form .chip-btn,.sola-lettura .form .segmented,.sola-lettura .money-input,.sola-lettura .check{pointer-events:none}.login-error{color:#f3a99f;font-size:14px;text-align:center}.spark{width:100%;height:70px;display:block}.inv-line{padding:12px 14px;display:grid;gap:8px;position:relative}.inv-line+.inv-line:before{content:"";position:absolute;top:0;left:14px;right:0;height:1px;background:var(--border)}.inv-line .d{font-weight:600;font-size:15px}.inv-line .p{color:var(--text-3);font-size:13px;font-variant-numeric:tabular-nums}.inv-line select,.inv-line input{width:100%;min-height:42px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border-2)}.inv-line.is-skip{opacity:.5}.delta-up{color:var(--high);font-weight:600}.delta-down{color:var(--ok);font-weight:600}.check{width:26px;height:26px;border-radius:8px;border:2px solid var(--border-2);display:grid;place-items:center;flex-shrink:0}.check.is-on{background:var(--accent);border-color:var(--accent);color:#1a1300}.done .row-title{text-decoration:line-through;color:var(--text-3)}@media (min-width: 700px){.appbar h1{font-size:34px}.hero{margin:0;border-radius:var(--radius);height:300px}.kpis{grid-template-columns:repeat(4,1fr)}}.fc-txt-ok{color:var(--ok)!important}.fc-txt-mid{color:var(--mid)!important}.fc-txt-high{color:var(--high)!important}.fc-txt-none{color:var(--text-3)!important}.print-page{background:#fff;color:#111;min-height:100vh}.print-bar{position:sticky;top:0;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 16px;background:#f3f1ee;border-bottom:1px solid #ddd}.print-bar .btn{color:#111;background:#fff;border-color:#ccc;min-height:42px}.print-bar .btn-primary{background:var(--accent);border:0}.print-toggle{display:flex;gap:6px;align-items:center;font-size:15px;color:#333}.sheet-print{max-width:760px;margin:0 auto;padding:28px 24px;font-family:Georgia,Times New Roman,serif}.sheet-print header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #111;padding-bottom:14px}.sheet-print header small{font-family:var(--font);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a6a1c}.sheet-print h1{font-size:30px;margin:4px 0}.sheet-print header p{color:#555;font-size:14px;font-family:var(--font)}.sheet-print header img{width:130px;height:100px;object-fit:cover;border-radius:6px}.sheet-print table{width:100%;border-collapse:collapse;margin-top:18px;font-family:var(--font);font-size:14px}.sheet-print th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#777;border-bottom:1px solid #bbb;padding:6px 4px}.sheet-print td{padding:7px 4px;border-bottom:1px solid #e6e6e6}.sheet-print .r{text-align:right;font-variant-numeric:tabular-nums}.sheet-print tfoot td{font-weight:700;border-bottom:0;border-top:1px solid #111}.sheet-print .allerg{margin-top:14px;font-family:var(--font);font-size:14px}.sheet-print h2{font-size:18px;margin:22px 0 6px}.sheet-print .proc{white-space:pre-wrap;font-size:15px;line-height:1.6}.sheet-print footer{margin-top:26px;font-family:var(--font);font-size:11px;color:#999}@media print{.no-print{display:none!important}.print-page{min-height:0}.sheet-print{padding:0}@page{margin:16mm}}.launcher{padding-top:calc(22px + var(--safe-t));padding-bottom:40px}.launcher-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}.launcher-head .login-logo{width:54px;height:54px;font-size:20px;margin:0;border-radius:15px}.launcher-head h1{font-size:22px;margin:0}.launcher-head p{margin:2px 0 0}.app-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (min-width: 700px){.app-grid{grid-template-columns:repeat(4,1fr)}}.app-tile{display:flex;flex-direction:column;gap:6px;padding:18px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-height:150px}.app-tile:active{background:var(--surface-2);transform:scale(.98)}.app-tile strong{font-size:17px;margin-top:6px}.app-tile small{color:var(--text-3);font-size:13px;line-height:1.35}.app-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:20px;color:#1a1300;background:linear-gradient(180deg,#f6b744,var(--accent-2));letter-spacing:-.02em}
