:root{--ink:#172b3c;--muted:#6e8091;--bg:#f5f7fa;--card:#fff;--line:#e1e8ee;--accent:#176f78;--accent-weak:#e8f3f4;--nav:#10243b;--nav2:#17324d;--danger:#b33d4d;--danger-bg:#faecef;--warn:#98631b;--warn-bg:#fff4e4;--success:#187a53;--success-bg:#e8f5ee;--focus:#2f7fd3;--shadow:0 10px 30px rgba(29,48,64,.06);--shadow-lg:0 26px 80px rgba(8,28,47,.22);--radius:18px;--sidebar:248px;--touch:44px}*{box-sizing:border-box;min-width:0}html{width:100%;max-width:100%;overflow-x:clip;background:var(--bg)}body{margin:0;width:100%;max-width:100%;min-height:100dvh;overflow-x:clip;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}img,video,canvas,svg{max-width:100%}.app-shell{width:100%;min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,var(--nav),#102840);color:#fff;padding:20px 14px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:2px 8px 24px}.brandmark{width:40px;height:40px;border-radius:13px;background:#fff;color:var(--nav);display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 6px 18px rgba(0,0,0,.18)}.brand strong{display:block;font-size:16px}.brand small{display:block;color:#a9bdcc;font-size:10px;margin-top:3px}.sidebar nav{display:grid;gap:4px}.nav-section{padding:14px 12px 6px;color:#7791a5;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}.nav{min-height:44px;border:0;background:transparent;color:#c7d4de;padding:10px 12px;border-radius:12px;text-align:left;cursor:pointer;font-weight:700;display:flex;align-items:center;gap:11px;transition:.15s ease}.nav-icon{width:23px;text-align:center;font-size:17px}.nav:hover,.nav.active{background:rgba(255,255,255,.10);color:#fff}.nav.active{box-shadow:inset 3px 0 0 #72c3bd}.sidefoot{margin-top:auto;font-size:11px;color:#9fb3c2;padding:12px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#65d09a;margin-right:7px}main{margin-left:var(--sidebar);min-height:100dvh;min-width:0}.topbar{height:76px;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(245,247,250,.88);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(225,232,238,.7)}.searchwrap{height:46px;width:min(560px,48vw);display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 14px;color:var(--muted);box-shadow:0 4px 18px rgba(25,50,75,.03)}.searchwrap input{border:0;outline:0;width:100%;background:transparent;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:9px}.primary,.secondary,.danger,.ghost,.iconbtn,.userbtn{min-height:var(--touch);border:0;border-radius:12px;padding:10px 15px;cursor:pointer;font-weight:780;transition:.14s ease}.primary{background:var(--nav2);color:#fff}.primary:hover{filter:brightness(1.05)}.secondary{background:var(--accent-weak);color:var(--accent)}.danger{background:var(--danger-bg);color:var(--danger)}.ghost,.iconbtn,.userbtn{background:#fff;color:var(--ink);border:1px solid var(--line)}.iconbtn{width:44px;padding:0}.userbtn{padding-inline:13px}.pagehead{display:flex;justify-content:space-between;gap:12px;align-items:end;padding:22px 28px 8px}.pagehead small,.eyeline{display:block;color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.pagehead h1{margin:4px 0 0;font-size:28px;letter-spacing:-.6px}.content{width:100%;padding:14px 28px 112px;overflow-x:clip}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;min-width:0}.kpi{position:relative;overflow:hidden}.kpi small{color:var(--muted);font-weight:750}.kpi strong{font-size:30px;display:block;margin:8px 0 3px;letter-spacing:-.4px}.kpi .hint{font-size:12px;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.section-head h2{font-size:17px;margin:0}.section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.empty{text-align:center;padding:40px 18px;color:var(--muted)}.muted{color:var(--muted);margin:5px 0}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef3f6;font-size:11px;font-weight:780;white-space:nowrap}.badge.ok{background:var(--success-bg);color:var(--success)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.money{font-weight:850;white-space:nowrap}.money.income{color:var(--success)}.money.expense{color:var(--danger)}.filterbar,.filter-chips,.button-row,.actions,.row-actions,.attach-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filterbar{margin-bottom:12px}.filterbar select{min-width:230px}.chip{min-height:38px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:7px 12px;font-weight:720;cursor:pointer}.chip.active{background:var(--nav2);border-color:var(--nav2);color:#fff}.field{display:grid;gap:6px}.field label{font-size:10px;font-weight:850;color:#64798c;text-transform:uppercase;letter-spacing:.05em}.field input,.field select,.field textarea{width:100%;max-width:100%;min-height:45px;border:1px solid #d4e0e8;background:#fff;border-radius:11px;padding:10px 12px;outline:none;color:var(--ink)}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px rgba(47,127,211,.09)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .full{grid-column:1/-1}.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.person-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:var(--shadow);transition:.15s ease}.person-card:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(29,48,64,.09)}.person-card h3{margin:0 0 4px}.person-card p{margin:3px 0;color:var(--muted);font-size:12px}.avatar{width:46px;height:46px;border-radius:14px;background:#e8f0f4;display:grid;place-items:center;font-weight:900;color:var(--nav2);overflow:hidden}.avatar.large{width:62px;height:62px;border-radius:18px;margin-bottom:13px}.avatar img{width:100%;height:100%;object-fit:cover}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse}.table th{font-size:10px;text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:10px;border-bottom:1px solid var(--line)}.table td{padding:12px 10px;border-bottom:1px solid #edf1f4;font-size:13px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.linkbtn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.mobile-list{display:none}.mobile-item{border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px}.mobile-item+.mobile-item{margin-top:9px}.mobile-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.mobile-item h3{font-size:14px;margin:0}.mobile-item-meta{font-size:11px;color:var(--muted);margin-top:4px}.mobile-item-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:11px;padding-top:10px;border-top:1px solid #edf1f4}.mobile-actions{display:flex;gap:7px;flex-wrap:wrap}.mobile-actions button,.mobile-actions a{min-height:38px;padding:7px 10px;border-radius:10px}.report-check{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f4}.report-check:last-child{border:0}.checkmark{width:27px;height:27px;border-radius:9px;background:var(--success-bg);color:var(--success);display:grid;place-items:center;font-weight:900;flex:none}.warnmark{background:var(--warn-bg);color:var(--warn)}.info-strip,.hintbox{margin-top:10px;background:#edf6ff;border:1px solid #cce2f7;color:#35678f;padding:10px 12px;border-radius:11px;font-size:12px}.warnstrip{background:var(--warn-bg);border-color:#eed2a7;color:#855716}.report-box{border:1px dashed #bccbd6;border-radius:14px;padding:16px;background:#fbfcfd}.button-stack{display:grid;gap:9px;margin-top:12px}.doc-category-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:12px 0}.doc-cat{min-height:78px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:10px}.doc-cat b{font-size:20px}.doc-cat span{font-size:11px;color:var(--muted)}.mini-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.mini-kpis>div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.mini-kpis b{font-size:22px;display:block}.mini-kpis span{font-size:11px;color:var(--muted)}.mini-kpis .alert b{color:var(--warn)}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.quick-card{min-height:110px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:16px;text-align:left;cursor:pointer;color:var(--ink);display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;font-size:23px}.quick-card b{font-size:15px}.quick-card small{grid-column:2;color:var(--muted);font-size:11px}.quick-card:hover{border-color:#b5c9d8;background:#fbfdff}.beneficiary-photo-box{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fbfcfd}.photo-preview{width:92px;height:92px;border-radius:18px;background:#e8eff4;display:grid;place-items:center;overflow:hidden;font-size:28px;font-weight:850;flex:none}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-controls{display:grid;gap:8px;flex:1}.photo-controls small{color:var(--muted)}.file-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.modal-backdrop{position:fixed;inset:0;width:100%;height:100dvh;background:rgba(8,25,42,.50);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:80;animation:fade .14s ease;overflow:hidden}.modal{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .16s ease}.modal.wide{width:min(1000px,calc(100vw - 32px))}.modal-head{padding:20px 24px 15px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex:none}.modal-head h3{margin:0;font-size:21px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.close{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:18px;flex:none}.modal-body{padding:0 24px 18px;overflow:auto;overscroll-behavior:contain;min-height:0}.modal-foot{padding:13px 24px calc(13px + env(safe-area-inset-bottom));display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #edf1f4;background:#fff;flex:none}.modal-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:0 -24px 18px;padding:0 24px;position:sticky;top:0;background:#fff;z-index:2;overflow-x:auto;scrollbar-width:none}.modal-tabs::-webkit-scrollbar{display:none}.modal-tab{border:0;background:transparent;padding:15px 10px 11px;color:#60748a;font-weight:800;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}.modal-tab.active{color:var(--focus);border-color:var(--focus)}.tabpane{display:none}.tabpane.active{display:block}.confirm-icon{width:48px;height:48px;border-radius:15px;background:var(--danger-bg);color:var(--danger);display:grid;place-items:center;font-size:22px;margin-bottom:12px}.attachment-panel{margin-top:16px;border:1px solid var(--line);border-radius:15px;background:#fbfdff;padding:14px}.attachment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.attachment-head h4{margin:0;font-size:16px}.count-pill{background:#e8eef5;border-radius:999px;padding:4px 10px;font-size:11px;color:#60748a}.dropzone{margin-top:12px;min-height:70px;border:1.5px dashed #b8ccdc;border-radius:12px;display:grid;place-items:center;text-align:center;padding:10px;color:#50677f;background:#fff}.dropzone small{display:block;color:#8090a0;margin-top:3px}.attachment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.attachment-card{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px}.attachment-thumb{width:58px;height:58px;border-radius:9px;background:#eef3f8;display:grid;place-items:center;overflow:hidden;flex:none}.attachment-thumb img{width:100%;height:100%;object-fit:cover}.attachment-meta{min-width:0;flex:1}.attachment-meta b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-meta small{color:var(--muted)}.attachment-card-actions{display:grid;gap:5px}.mini-icon{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer}.completeness{margin-top:12px}.danger-left{margin-right:auto}.toast{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));background:var(--nav2);color:white;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow);z-index:120;max-width:min(340px,calc(100vw - 32px));font-size:13px}.report-wizard{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px}.wizard-steps{display:grid;gap:9px;margin-top:14px}.wizard-steps>div{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px}.wizard-steps b{width:30px;height:30px;border-radius:10px;background:#e8f0f8;color:#175b96;display:grid;place-items:center}.wizard-steps span{font-size:12px;color:#53687c}.fascicle-list{display:grid;gap:9px;margin-top:14px}.fascicle-row{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px 12px}.attachment-number{font-size:10px;color:#647a8f;text-transform:uppercase;letter-spacing:.05em}.attachment-number b{display:block;font-size:18px;color:var(--ink)}.fascicle-doc b,.fascicle-doc small,.fascicle-doc span{display:block;overflow-wrap:anywhere}.fascicle-doc b{font-size:13px}.fascicle-doc small,.fascicle-doc span{font-size:11px;color:var(--muted);margin-top:3px}.fascicle-actions{display:flex;gap:6px}.report-download-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}.report-download-info>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:11px}.report-download-info b,.report-download-info span{display:block}.report-download-info b{font-size:12px}.report-download-info span{font-size:11px;color:var(--muted);margin-top:3px}.chart{height:220px;display:flex;align-items:end;gap:8px;padding:16px 4px 4px;border-bottom:1px solid var(--line)}.barcol{height:100%;flex:1;display:flex;align-items:end;justify-content:center;gap:3px;position:relative}.bar{width:12px;min-height:2px;border-radius:5px 5px 2px 2px;background:var(--nav2)}.bar.out{background:#c98867}.barlabel{position:absolute;bottom:-21px;font-size:10px;color:var(--muted)}.chart-legend{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:28px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;background:var(--nav2)}.dot.out{background:#c98867}.auth-screen{position:fixed;inset:0;z-index:200;background:linear-gradient(135deg,#10243b,#176f78);display:grid;place-items:center;padding:22px}.auth-screen.hidden{display:none}.auth-card{width:min(430px,100%);background:#fff;border-radius:26px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.auth-logo{width:54px;height:54px;border-radius:17px;background:var(--nav2);color:#fff;display:grid;place-items:center;font-size:26px;font-weight:900;margin-bottom:20px}.auth-copy small{font-size:10px;font-weight:850;letter-spacing:.12em;color:var(--accent)}.auth-copy h1{margin:5px 0 6px;font-size:30px}.auth-copy p,.auth-hint{color:var(--muted);font-size:13px}.auth-form{display:grid;gap:14px;margin-top:24px}.auth-submit{width:100%}.auth-error{background:var(--danger-bg);color:var(--danger);padding:10px 12px;border-radius:11px;font-size:12px}.auth-hint{margin:18px 0 0;border-top:1px solid var(--line);padding-top:16px}.bottomnav{display:none}.hidden{display:none!important}@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:translateY(8px) scale(.985);opacity:.65}}
@media(max-width:1100px){:root{--sidebar:218px}.grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two,.report-wizard{grid-template-columns:1fr}.doc-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-download-info{grid-template-columns:1fr}.topbar{padding-inline:20px}.pagehead,.content{padding-inline:20px}}
@media(max-width:720px){html,body,#app,main,.content,.pagehead,.topbar{width:100%;max-width:100%;overflow-x:clip}.sidebar{display:none}main{margin-left:0}.topbar{height:64px;padding:9px 12px;padding-top:max(9px,env(safe-area-inset-top));gap:8px}.searchwrap{width:100%;height:44px;border-radius:12px;padding-inline:12px}.top-actions{flex:none}.top-actions .userbtn,.top-actions .primary{display:none}.iconbtn{width:42px}.pagehead{padding:15px 14px 5px}.pagehead h1{font-size:24px}.content{padding:10px 12px calc(92px + env(safe-area-inset-bottom))}.grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.grid.two{grid-template-columns:1fr;gap:10px}.card{padding:14px;border-radius:15px;box-shadow:0 5px 18px rgba(29,48,64,.045)}.kpi strong{font-size:25px}.kpi small,.kpi .hint{font-size:10px}.section-head{align-items:flex-start}.section-head h2{font-size:16px}.section-head .primary{min-height:40px;padding:8px 10px}.people{grid-template-columns:1fr;gap:10px}.person-card{padding:14px;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:12px}.person-card .avatar{grid-row:1/5}.person-card h3,.person-card p,.person-card .actions{grid-column:2}.person-card .actions{margin-top:10px}.desktop-table{display:none!important}.mobile-list{display:block}.filterbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.filterbar select{min-width:0;width:100%}.filterbar .secondary{display:none}.filter-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.chip{flex:none}.doc-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.doc-cat{min-height:66px}.doc-cat b{font-size:18px}.doc-cat span{font-size:10px}.modal-backdrop{padding:0;align-items:stretch}.modal,.modal.wide{width:100%!important;max-width:100%!important;height:100dvh;max-height:100dvh;border-radius:0}.modal-head{padding:calc(14px + env(safe-area-inset-top)) 14px 11px}.modal-head h3{font-size:19px}.modal-head p{font-size:11px}.modal-body{padding:0 13px 14px;max-height:none}.modal-foot{padding:10px 13px calc(10px + env(safe-area-inset-bottom));position:relative}.modal-foot button{min-height:46px}.modal-foot .danger-left{width:46px;overflow:hidden;color:transparent;padding:0;position:relative}.modal-foot .danger-left::after{content:'🗑';position:absolute;inset:0;display:grid;place-items:center;color:var(--danger)}.modal-tabs{margin:0 -13px 14px;padding:0 7px}.modal-tab{padding:13px 9px 10px;font-size:11px}.form-grid{grid-template-columns:1fr;gap:10px}.form-grid .full{grid-column:auto}.field input,.field select,.field textarea{font-size:16px;min-height:48px}.beneficiary-photo-box{align-items:flex-start}.photo-preview{width:78px;height:78px;border-radius:16px}.photo-controls{gap:7px}.photo-controls .file-button,.photo-controls button{width:100%}.attachment-head{display:block}.attach-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.attach-actions>*{width:100%;padding:9px 7px;font-size:11px}.attach-actions>*:nth-child(3){grid-column:1/-1}.attachment-list{grid-template-columns:1fr}.dropzone{display:none}.quick-grid{grid-template-columns:1fr;gap:8px}.quick-card{min-height:84px}.fascicle-row{grid-template-columns:78px minmax(0,1fr);padding:10px}.fascicle-actions{grid-column:1/-1;justify-content:flex-end;padding-top:8px;border-top:1px solid #edf1f4}.button-row.compact{width:100%;display:grid;grid-template-columns:1fr 1fr}.button-row.compact .strong{grid-column:1/-1}.mini-kpis{grid-template-columns:1fr 1fr}.report-download-info{grid-template-columns:1fr}.bottomnav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;min-height:72px;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.97);backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:45}.bottomnav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-weight:750;min-height:64px}.bottomnav button span:last-child{font-size:9px}.bn-icon{font-size:18px}.bottomnav button.active{color:var(--nav2)}.bottomnav .fab{width:54px;height:54px;min-height:54px;border-radius:18px;background:var(--nav2);color:#fff;align-self:center;justify-self:center;font-size:25px;box-shadow:0 8px 24px rgba(23,50,77,.28);transform:translateY(-8px)}.toast{left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:none;text-align:center}.auth-card{padding:24px;border-radius:22px}.chart{height:190px}}
@media(max-width:390px){.grid.kpis{grid-template-columns:1fr}.doc-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pagehead h1{font-size:22px}.content{padding-inline:9px}.pagehead{padding-inline:11px}.mobile-item-head{gap:8px}.mobile-item-foot{align-items:flex-start;flex-direction:column}.mobile-actions{width:100%}.mobile-actions>*{flex:1}.beneficiary-photo-box{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px}.photo-preview{width:70px;height:70px}.modal-foot .ghost{flex:1}.modal-foot .primary{flex:1.4}}
.context-person{border:1px solid var(--line);background:#fff;border-radius:13px;padding:6px 10px 6px 7px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--ink);text-align:left}.context-avatar{width:34px;height:34px;border-radius:10px;background:#e8f0f4;display:grid;place-items:center;overflow:hidden;font-weight:850}.context-avatar img{width:100%;height:100%;object-fit:cover}.context-person b,.context-person small{display:block}.context-person b{font-size:12px}.context-person small{font-size:9px;color:var(--muted);margin-top:1px}.person-hero{display:flex;align-items:center;justify-content:space-between;gap:16px}.person-hero-main{display:flex;align-items:center;gap:15px}.person-hero h2{margin:2px 0 5px;font-size:23px}.person-hero p{margin:2px 0;color:var(--muted);font-size:12px}.hero-avatar{width:82px;height:82px;border-radius:22px;flex:none}.quick-person-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 16px}.person-kpis{margin-bottom:16px}.person-overview{margin-bottom:16px}.person-nav-card{display:grid;gap:8px}.person-nav-card h2{margin:0 0 5px}.person-nav-card button{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;text-align:left;cursor:pointer;color:var(--ink)}.person-nav-card button>span{grid-row:1/3;width:32px;height:32px;border-radius:10px;background:#eef4f7;display:grid;place-items:center}.person-nav-card button b{font-size:12px}.person-nav-card button small{font-size:10px;color:var(--muted)}.mobile-more-list{display:grid;gap:8px;padding-top:4px}.mobile-more-list button{min-height:58px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 12px;display:flex;gap:12px;align-items:center;text-align:left;color:var(--ink);font-size:20px}.mobile-more-list span{display:block}.mobile-more-list b,.mobile-more-list small{display:block}.mobile-more-list b{font-size:13px}.mobile-more-list small{font-size:10px;color:var(--muted);margin-top:2px}
@media(max-width:720px){#contextActions{max-width:48%}.context-person{max-width:100%}.context-person>span:last-child{overflow:hidden}.context-person b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-person small{display:none}.person-hero{display:grid;grid-template-columns:1fr}.person-hero-main{align-items:flex-start}.person-hero>.ghost{width:100%}.hero-avatar{width:68px;height:68px;border-radius:18px}.person-hero h2{font-size:20px}.quick-person-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick-person-actions button{width:100%}.person-kpis{grid-template-columns:1fr 1fr}.person-overview{grid-template-columns:1fr}.mobile-more-list{padding-bottom:4px}}
@media(max-width:390px){#contextActions{display:none}.person-kpis{grid-template-columns:1fr 1fr}.quick-person-actions{grid-template-columns:1fr 1fr}}
.category-bars{display:grid;gap:7px;margin-top:14px}.category-bars>div{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd;font-size:12px}.dangerbadge{background:var(--danger-bg);color:var(--danger)}.fascicle-head{align-items:flex-start}.fascicle-card{overflow:hidden}.preflight{margin-top:12px}.report-config,.report-help{height:fit-content}.primary.strong{background:#0f4d7a}.checkline{font-size:12px;color:#52687f;display:flex;gap:13px;flex-wrap:wrap}.checkline .ok{color:var(--success)}.progress{height:8px;background:#edf1f4;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:var(--success);border-radius:inherit}.action-square{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}

/* V10 — refactoring visivo e componenti fascicolo avanzato */
.compact-hero{padding:16px 18px}.compact-hero .hero-avatar{width:68px;height:68px;border-radius:18px}.compact-hero h2{font-size:21px}.v10-summary{margin:0 0 16px}.financial-card{background:linear-gradient(180deg,#fff,#fbfdff)}.finance-lines{display:grid;gap:9px}.finance-lines>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 0}.finance-total{border-top:1px solid var(--line);padding-top:12px!important;margin-top:4px;font-size:17px}.dossier-tools{margin-bottom:16px}.tool-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.tool-grid button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 10px;text-align:left;color:var(--ink);cursor:pointer;min-height:96px;transition:.15s ease}.tool-grid button:hover{border-color:#bfd0dc;box-shadow:0 8px 22px rgba(29,48,64,.06);transform:translateY(-1px)}.tool-grid button>span{width:34px;height:34px;border-radius:10px;background:#edf4f7;display:grid;place-items:center;margin-bottom:9px;font-weight:850}.tool-grid button b,.tool-grid button small{display:block}.tool-grid button b{font-size:12px}.tool-grid button small{color:var(--muted);font-size:10px;margin-top:3px}.timeline-list{display:grid}.timeline-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid #edf1f4}.timeline-row:last-child{border-bottom:0}.timeline-dot{width:32px;height:32px;border-radius:10px;background:#edf4f7;display:grid;place-items:center;font-weight:850;color:var(--nav2)}.timeline-dot.transaction{background:#eaf5ef;color:var(--success)}.timeline-dot.authorization{background:#fff1e5;color:#8f5f20}.timeline-row small,.timeline-row b,.timeline-row span{display:block}.timeline-row small{font-size:9px;color:var(--muted);margin-bottom:2px}.timeline-row b{font-size:12px}.timeline-row span{font-size:10px;color:var(--muted);margin-top:2px}.timeline-row em{font-style:normal;align-self:center}.timeline-card{padding-top:8px}.manage-list{display:grid;gap:9px}.manage-row{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.manage-row>div:first-child{flex:1}.manage-row b,.manage-row small{display:block}.manage-row small{font-size:10px;color:var(--muted);margin-top:3px}.contact-actions{display:flex;gap:7px;flex-wrap:wrap}.attachment-zone{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fbfcfd}.attachment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:#fff;margin-top:8px}.attachment-item b,.attachment-item small{display:block}.attachment-item b{font-size:12px}.attachment-item small{font-size:10px;color:var(--muted);margin-top:2px}.file-button{display:inline-flex;align-items:center;justify-content:center}.mini-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}

@media(max-width:1100px){.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){
 html,body,.app-shell,main,.topbar,.pagehead,.content,.card,.modal,.modal-body,.modal-foot{max-width:100vw!important;min-width:0!important}
 body{position:relative}.content{overflow-x:hidden}.compact-hero{padding:13px}.compact-hero .hero-avatar{width:58px;height:58px}.compact-hero h2{font-size:19px}.quick-person-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tool-grid button{min-height:88px;padding:11px}.v10-summary{grid-template-columns:1fr}.finance-lines>div{gap:10px}.timeline-row{grid-template-columns:34px minmax(0,1fr)}.timeline-row em{grid-column:2;justify-self:start}.manage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.manage-row>button,.manage-row>.contact-actions{grid-column:1/-1}.contact-actions>*{flex:1}.attachment-head{display:grid;gap:9px}.attach-actions{grid-template-columns:1fr 1fr}.attachment-item{align-items:flex-start;display:grid;grid-template-columns:minmax(0,1fr) auto}.mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .modal{inset:auto!important}.modal-body{overflow-x:hidden}.modal-tabs{max-width:calc(100vw - 26px);overflow-x:auto;overscroll-behavior-inline:contain}.modal-tab{white-space:nowrap;flex:none}.form-grid>*{min-width:0}.field input,.field select,.field textarea{max-width:100%;width:100%}.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
}
@media(max-width:390px){.tool-grid{grid-template-columns:1fr 1fr}.mini-kpis{grid-template-columns:1fr 1fr}.attachment-item{grid-template-columns:1fr}.attachment-item .row-actions,.attachment-item>button{grid-column:1/-1;width:100%}.attachment-item .row-actions>*{flex:1}}

/* V12 report charts: SVG responsive, no height-percent dependency */
.svg-chart-wrap{width:100%;overflow:hidden}.report-svg{display:block;width:100%;height:auto;min-height:220px}.svg-grid{stroke:#e1e8ee;stroke-width:1}.svg-axis,.svg-label{fill:#6e8091;font-size:11px;font-family:inherit}.svg-in{fill:#176f78}.svg-out{fill:#c77a55}.chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.chart-summary>div{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:12px}.chart-summary span,.chart-summary b{display:block}.chart-summary span{font-size:11px;color:var(--muted);margin-bottom:5px}.chart-summary b{font-size:17px}.category-chart{display:grid;gap:9px;margin-top:16px}.cat-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(120px,2fr) auto;align-items:center;gap:10px;font-size:12px}.cat-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-row>div{height:10px;border-radius:999px;background:#edf2f5;overflow:hidden}.cat-row i{display:block;height:100%;border-radius:inherit;background:var(--nav2)}.cat-row>b{white-space:nowrap;font-size:11px}.report-svg text{user-select:none}
@media(max-width:720px){.chart-summary{grid-template-columns:1fr}.report-svg{min-height:180px}.cat-row{grid-template-columns:minmax(88px,1fr) minmax(90px,1.4fr);gap:8px}.cat-row>b{grid-column:2;text-align:right}.svg-axis{display:none}}

/* V12 - workspace rendiconto stabile e responsive */
.report-v12-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.55fr);gap:16px;align-items:start}.report-v12-config,.report-v12-output{min-width:0}.report-v12-actions{margin-top:14px}.report-status{margin-top:12px;min-height:42px;border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:9px;font-size:12px;color:#52687f}.status-dot-ui{width:10px;height:10px;display:inline-block;border-radius:50%;background:var(--success);flex:none}.status-dot-ui.warn{background:#d08b2b}.status-dot-ui.bad{background:var(--danger)}.status-dot-ui.busy{background:var(--focus);animation:v12pulse 1s infinite alternate}.report-output-line{border:1px solid var(--line);border-radius:13px;padding:12px;margin-top:10px;background:#fbfcfd;overflow:hidden}.report-output-line b,.report-output-line small{display:block;overflow-wrap:anywhere}.report-output-line b{font-size:13px}.report-output-line small{margin-top:4px;color:var(--muted);line-height:1.35}.report-v12-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-v12-kpis .card{padding:16px}.report-v12-kpis small,.report-v12-kpis strong,.report-v12-kpis span{display:block}.report-v12-kpis small{color:var(--muted);font-weight:750}.report-v12-kpis strong{font-size:24px;margin:7px 0 4px}.report-v12-kpis span{font-size:11px;color:var(--muted)}.attention-card{border-color:#e9c98e;background:#fffaf1}.report-v12-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.bars-v12{height:205px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(28px,1fr);gap:4px;align-items:end;overflow-x:auto;overflow-y:hidden;padding:10px 4px 0;border-bottom:1px solid var(--line);scrollbar-width:thin}.bars-v12-col{height:190px;min-width:28px;display:grid;grid-template-rows:160px 24px;align-items:end;text-align:center}.bars-v12-values{height:160px;display:flex;align-items:end;justify-content:center;gap:3px}.bar-v12{width:min(14px,42%);min-width:5px;border-radius:5px 5px 1px 1px}.bar-v12.income{background:#176f78}.bar-v12.expense{background:#c77a55}.bars-v12-col small{font-size:9px;color:var(--muted);white-space:nowrap}.chart-legend.compact{margin-top:10px}.income-dot{background:#176f78}.category-v12{display:grid;gap:11px}.category-v12-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(110px,1.5fr) auto;align-items:center;gap:9px;font-size:11px}.category-v12-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-v12-row>div{height:11px;border-radius:999px;background:#edf2f5;overflow:hidden}.category-v12-row i{display:block;height:100%;border-radius:999px;background:var(--nav2)}.category-v12-row>b{white-space:nowrap}.report-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.report-check-grid .report-check{min-width:0}.fascicle-card{overflow:hidden}.fascicle-head{align-items:flex-start}.fascicle-head>.button-row{justify-content:flex-end}.fascicle-row{max-width:100%}@keyframes v12pulse{from{opacity:.35}to{opacity:1}}
@media(max-width:1100px){.report-v12-shell,.report-v12-grid{grid-template-columns:1fr}.report-v12-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.report-v12-shell{display:block}.report-v12-output{margin-top:12px}.report-v12-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.report-v12-kpis .card{padding:13px}.report-v12-kpis strong{font-size:19px}.report-check-grid{grid-template-columns:1fr}.bars-v12{height:190px}.bars-v12-col{height:176px;grid-template-rows:146px 24px}.bars-v12-values{height:146px}.category-v12-row{grid-template-columns:minmax(86px,.9fr) minmax(90px,1.1fr)}.category-v12-row>b{grid-column:2;text-align:right}.report-v12-actions{display:grid;grid-template-columns:1fr 1fr}.report-v12-actions button{width:100%}.fascicle-head{display:block}.fascicle-head>.button-row{margin-top:12px;display:grid;grid-template-columns:1fr 1fr}.fascicle-head>.button-row button{width:100%}.fascicle-row{grid-template-columns:82px minmax(0,1fr);gap:8px}.fascicle-actions{grid-column:1/-1;justify-content:flex-end}.attachment-number b{font-size:15px}}
@media(max-width:420px){.report-v12-kpis{grid-template-columns:1fr}.report-v12-actions,.fascicle-head>.button-row{grid-template-columns:1fr}}
/* V14 — robustezza touch/mobile: nessun contenuto può ampliare il viewport */
html,body,#app,.app-shell,main,.content{max-width:100%;min-width:0}
button,[role="button"],label.file-button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:720px){
  body{overscroll-behavior-x:none}
  .content>*{max-width:100%;min-width:0}
  .quick-person-actions button,.mobile-actions button,.mobile-actions a,.bottomnav button{pointer-events:auto}
  .modal-backdrop{z-index:80;overflow:hidden}
  .modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
  .modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0}
  .modal-foot{z-index:3;background:#fff;border-top:1px solid var(--line)}
  .bottomnav{isolation:isolate}
  .bottomnav .fab{position:relative;z-index:2}
  .person-hero,.person-overview,.person-kpis,.quick-person-actions,.mobile-list,.mobile-item{max-width:100%;min-width:0}
  .mobile-item h3,.mobile-item-meta,.fascicle-doc,.attachment-item{overflow-wrap:anywhere;word-break:break-word}
}

/* V16 — branding, impostazioni ripristinate ed export fascicolo sempre visibile */
.brandmark,.auth-logo{overflow:hidden}
.brandmark img,.auth-logo img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.settings-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px;align-items:start}
.settings-grid>.card:first-child{grid-column:1/-1}
.branding-editor{display:flex;align-items:center;gap:20px;min-width:0}
.branding-preview{width:112px;height:112px;border:1px solid var(--line);border-radius:24px;background:#f7f9fb;padding:12px;display:flex;align-items:center;justify-content:center;flex:none}
.branding-preview img{width:100%;height:100%;object-fit:contain;border-radius:14px}
.branding-controls{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;min-width:0}
.branding-controls small{width:100%;color:var(--muted);line-height:1.45}
.code-card{border:1px solid var(--line);background:#f7f9fb;border-radius:13px;padding:14px;overflow:auto}
.code-card code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.7}
.report-export-bar{position:sticky;bottom:16px;z-index:20;margin-top:18px;border:1px solid #cbd9e5;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 12px 34px rgba(20,45,68,.14);border-radius:16px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.report-export-bar>div:first-child{min-width:0}.report-export-bar b,.report-export-bar small{display:block}.report-export-bar b{font-size:13px}.report-export-bar small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.35}
.report-export-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.report-export-actions .strong{min-width:190px}
.report-export-history{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.export-history-list{display:grid;gap:8px}.export-history-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fbfcfd;min-width:0}.export-history-row>div{min-width:0}.export-history-row b,.export-history-row small{display:block;overflow-wrap:anywhere}.export-history-row b{font-size:11px}.export-history-row small{font-size:9px;color:var(--muted);margin-top:3px}.export-history-row code{font-size:9px;color:#52687f;white-space:nowrap}.empty.compact{padding:12px}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-grid>.card:first-child{grid-column:auto}}
@media(max-width:720px){.branding-editor{align-items:flex-start}.branding-preview{width:86px;height:86px;border-radius:20px}.branding-controls{flex:1}.branding-controls .file-button,.branding-controls button{width:100%}.report-export-bar{bottom:calc(76px + env(safe-area-inset-bottom));display:block;margin-left:0;margin-right:0;padding:12px}.report-export-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.report-export-actions .strong{grid-column:1/-1;min-width:0}.report-export-actions button{width:100%;min-height:44px}.export-history-row{display:grid}.export-history-row code{white-space:normal;overflow-wrap:anywhere}}
@media(max-width:390px){.branding-editor{display:grid;grid-template-columns:1fr}.branding-preview{width:96px;height:96px}.report-export-actions{grid-template-columns:1fr}.report-export-actions .strong{grid-column:auto}}
/* V18 - azioni timeline coerenti e touch-friendly */
.timeline-actions{margin-left:auto;display:flex;gap:6px;align-items:center}.danger-lite{color:#b42318!important;border-color:#f2c7c3!important;background:#fff!important}.section-head.compact{align-items:flex-start;gap:10px}.section-head.compact h3{margin:4px 0 0}
@media(max-width:720px){.timeline-row{grid-template-columns:auto minmax(0,1fr) auto}.timeline-actions{grid-column:2/-1;margin-left:0;justify-content:flex-end}.timeline-actions .mini-icon{min-width:44px;min-height:44px}}

/* V22 — strumenti operativi e composizione rendiconto */
.control-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.control-kpis>div{padding:16px;border:1px solid var(--line,#dce5ec);border-radius:16px;background:#f8fbfd}.control-kpis b{display:block;font-size:26px;color:#17324d}.control-kpis span{font-size:12px;color:#60748a}.check-row{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f5}.check-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:#fff1d8;color:#9a6511}.check-icon.ok{background:#e7f7ef;color:#187a53}.search-results{display:grid;gap:8px}.search-result{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #dce5ec;background:#fff;border-radius:14px;padding:12px}.search-result>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#edf5f7}.search-result div{min-width:0}.search-result b,.search-result small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-workflow{display:flex;gap:8px;margin-bottom:12px}.wf{border:1px solid #d5e0e8;background:#fff;border-radius:999px;padding:8px 12px}.wf.active{background:#17324d;color:#fff;border-color:#17324d}.selection-list{display:grid;gap:8px;max-height:310px;overflow:auto}.selection-list label{display:flex;gap:9px;padding:9px;border:1px solid #e1e8ee;border-radius:12px}.selection-list span,.selection-list b,.selection-list small{display:block}.bank-import-box{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.bank-preview-list{max-height:260px;overflow:auto;border:1px solid #e0e8ee;border-radius:12px;padding:10px;margin:10px 0}.report-compose-actions{margin:12px 0}.card.inset{box-shadow:none;background:#fbfcfd}.money.expense{color:#9d3744}.money.income{color:#187a53}
@media(max-width:720px){.control-kpis{grid-template-columns:1fr 1fr}.report-workflow{overflow-x:auto}.report-workflow .wf{flex:0 0 auto}.bank-import-box{display:grid;grid-template-columns:1fr}.search-result{min-height:58px}.selection-list{max-height:none}.report-compose-actions{display:grid;grid-template-columns:1fr 1fr}.report-compose-actions button{width:100%}}

/* V24 — fascicolo-first, tipografia coerente, emoji e responsive reale */
:root{--tap:44px;--radius:16px;--radius-sm:12px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;overflow-x:hidden;max-width:100vw}
body,button,input,select,textarea{font-size:14px}
button,input,select,textarea{font-family:inherit;max-width:100%;min-width:0}
button,.linkbtn,.file-button{min-height:40px;line-height:1.15}
button{white-space:normal;overflow-wrap:anywhere;word-break:normal}
.primary,.secondary,.ghost,.danger,.linkbtn,.file-button{padding:0 14px;border-radius:11px;font-weight:650}
.iconbtn,.mini-icon{width:42px;min-width:42px;height:42px;padding:0;display:inline-grid;place-items:center}
.content,.content>*,.card,.section-head,.responsive-head,.grid,.form-grid,.mobile-item,.manage-row,.report-export-bar,.report-v12-shell,.report-v12-output,.report-v12-config{min-width:0;max-width:100%}
h1,h2,h3,h4,p,small,b,span,label,code{overflow-wrap:anywhere}
h1{font-size:clamp(24px,2.3vw,34px);line-height:1.12;letter-spacing:-.025em}
h2{font-size:clamp(18px,1.6vw,23px);line-height:1.2;letter-spacing:-.015em}
h3{font-size:16px;line-height:1.25}
.muted,.hint,.mobile-item-meta,.manage-row small,.person-card p{line-height:1.45}
.nav-help{margin:16px 12px 0;padding:12px;border-radius:12px;background:rgba(255,255,255,.06);font-size:11px;line-height:1.45;color:#adc0d3}

/* Navigazione interna al fascicolo */
.dossier-nav-wrap{padding:0 26px 14px;min-width:0}
.dossier-nav-wrap[hidden]{display:none!important}
.dossier-strip{display:flex;align-items:stretch;gap:7px;padding:8px;border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(29,51,73,.05);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.dossier-tab{flex:0 0 auto;min-width:100px;min-height:58px;padding:8px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;gap:7px}
.dossier-tab span{font-size:19px;line-height:1}.dossier-tab b{font-size:12px;white-space:nowrap}
.dossier-tab:hover{background:#f3f7fa}.dossier-tab.active{background:#17324d;color:#fff;border-color:#17324d}
.context-person{max-width:min(310px,45vw);min-width:0}.context-person>span:last-child{min-width:0}.context-person b,.context-person small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.context-lock{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #cfe0ea;background:#f3f9fb;border-radius:13px;min-width:0}
.context-lock>span{font-size:22px;flex:none}.context-lock>div{min-width:0}.context-lock b,.context-lock small{display:block}.context-lock small{margin-top:2px;color:var(--muted)}
.context-field{margin-bottom:4px}.report-person-lock{margin-bottom:14px}
.dossier-switch-list{display:grid;gap:8px}.dossier-switch-list>button{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center;width:100%;padding:9px 12px;text-align:left;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text)}
.dossier-switch-list>button.active{border-color:#6ca6b0;background:#f1f9f9}.dossier-switch-list>button>span:nth-child(2){min-width:0}.dossier-switch-list b,.dossier-switch-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dossier-switch-list small{color:var(--muted);margin-top:2px}.dossier-switch-list em{font-style:normal;font-size:11px;color:#176f78;white-space:nowrap}
.switch-avatar{width:44px;height:44px;border-radius:13px;background:#e9f1f5;display:grid;place-items:center;overflow:hidden;font-weight:800}.switch-avatar img{width:100%;height:100%;object-fit:cover}

/* Pulsanti e azioni proporzionati */
.section-head.responsive-head{align-items:flex-start}.section-head.responsive-head>.button-row{justify-content:flex-end;flex-wrap:wrap}
.quick-person-actions{align-items:stretch}.quick-person-actions button{min-height:46px;flex:0 1 auto}
.tool-grid button,.person-nav-card button,.quick-card{min-width:0}.tool-grid button span,.quick-card{font-family:inherit}
.row-actions{flex-wrap:wrap}.row-actions button,.row-actions .linkbtn{min-height:36px}
.filter-chips{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:3px}.chip{white-space:nowrap;min-height:36px}
.doc-category-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.doc-cat{min-width:0}

/* Tabelle: desktop contenuto protetto */
.table-wrap{max-width:100%;overflow:auto;overscroll-behavior:contain}.table{width:100%;min-width:760px}.table th,.table td{vertical-align:middle}.table td{overflow-wrap:anywhere}.table .row-actions{min-width:160px}

/* Export: priorità all'azione principale */
.report-export-actions button{min-height:42px}.report-export-actions .strong{min-width:180px}
.fascicle-doc{min-width:0}.fascicle-doc code{white-space:normal;overflow-wrap:anywhere}

@media(max-width:1100px){
  .dossier-nav-wrap{padding:0 18px 12px}.dossier-tab{min-width:92px}
  .topbar{gap:10px}.searchwrap{min-width:0}
}

@media(max-width:720px){
  body{font-size:14px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  main{width:100%;min-width:0;overflow:hidden}
  .topbar{padding:10px 12px;gap:8px}.searchwrap{flex:1;min-width:0}.searchwrap input{width:100%;font-size:16px}.top-actions{gap:6px}.top-actions .userbtn{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions #quickAdd{display:none}
  .pagehead{padding:14px 14px 10px;align-items:center;gap:10px}.pagehead>div:first-child{min-width:0}.pagehead h1{font-size:24px;line-height:1.12}.pagehead small{font-size:10px}.context-person{max-width:48vw;padding:6px 8px}.context-person .context-avatar{width:36px;height:36px}.context-person b{font-size:11px}.context-person small{font-size:9px}
  .dossier-nav-wrap{padding:0 10px 10px}.dossier-strip{border-radius:13px;padding:5px;gap:4px;box-shadow:none}.dossier-tab{min-width:78px;min-height:54px;padding:7px 8px;display:grid;grid-template-rows:22px auto;gap:2px}.dossier-tab span{font-size:18px}.dossier-tab b{font-size:10px}
  .content{padding:10px 12px 24px;width:100%;max-width:100%;overflow:hidden}
  .card{border-radius:14px;padding:14px}
  .section-head,.responsive-head{display:flex;align-items:flex-start;gap:10px}.section-head>div:first-child,.responsive-head>div:first-child{min-width:0;flex:1}.section-head.responsive-head>.button-row{display:grid;grid-template-columns:1fr 1fr;width:100%}.section-head.responsive-head{display:grid}.section-head.responsive-head>.button-row button{width:100%;min-width:0}
  .quick-person-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.quick-person-actions button{width:100%;min-height:48px;padding:0 8px}
  .tool-grid{grid-template-columns:1fr 1fr!important}.tool-grid button{min-height:86px;padding:12px 9px}.tool-grid button span{font-size:22px}.tool-grid button b{font-size:12px}.tool-grid button small{font-size:9px}
  .person-hero{display:grid!important;grid-template-columns:1fr;gap:12px}.person-hero-main{min-width:0}.person-hero-main>div:last-child{min-width:0}.person-hero h2,.person-hero p{overflow-wrap:anywhere}.person-hero>button{width:100%}
  .grid.two,.person-overview,.v10-summary{grid-template-columns:1fr!important}
  .control-kpis{grid-template-columns:1fr 1fr}.control-kpis>div{padding:12px}.control-kpis b{font-size:21px}
  .modal-backdrop{padding:0!important;align-items:stretch!important}.modal{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;margin:0!important;grid-template-rows:auto minmax(0,1fr) auto}.modal-head{padding:14px 15px}.modal-head h3{font-size:18px}.modal-body{padding:12px 14px 18px;max-width:100%;overflow-x:hidden}.modal-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-foot button{width:100%;min-height:46px;margin:0}
  .modal-tabs{overflow-x:auto;white-space:nowrap;max-width:100%;padding-bottom:3px}.modal-tab{flex:0 0 auto;white-space:nowrap;min-height:40px}
  .form-grid{grid-template-columns:1fr!important}.field,.field.full{grid-column:auto!important;min-width:0}.field input,.field select,.field textarea{font-size:16px;width:100%}
  .context-lock{padding:10px 11px}.context-lock b{font-size:13px}.context-lock small{font-size:10px}
  .attachment-head{display:grid!important;gap:10px}.attach-actions{display:grid!important;grid-template-columns:1fr 1fr}.attach-actions>*{width:100%;min-width:0}.attachment-item{grid-template-columns:minmax(0,1fr)!important}.attachment-item .row-actions{justify-content:flex-start}
  .mobile-list{display:grid}.desktop-table{display:none!important}.mobile-item{width:100%;min-width:0;padding:13px}.mobile-item-head{gap:8px;align-items:flex-start}.mobile-item-head>div:first-child{min-width:0}.mobile-item h3{font-size:14px}.money{white-space:nowrap}.mobile-item-foot{gap:8px}.mobile-actions{display:flex;flex-wrap:wrap;justify-content:flex-end}.mobile-actions button,.mobile-actions .linkbtn{min-height:38px}
  .doc-category-grid{grid-template-columns:1fr 1fr;gap:7px}.doc-cat{min-height:68px;padding:9px}.doc-cat b{font-size:20px}.doc-cat span{font-size:10px}
  .report-v12-actions{display:grid;grid-template-columns:1fr 1fr}.report-v12-actions button{min-width:0;padding:0 8px}
  .report-export-bar{left:0;right:0;bottom:calc(70px + env(safe-area-inset-bottom));border-radius:13px;padding:11px;max-width:100%}.report-export-actions{display:grid;grid-template-columns:1fr 1fr}.report-export-actions .strong{grid-column:1/-1;min-width:0}.report-export-actions button{font-size:11px;padding:0 8px}
  .fascicle-row{max-width:100%;overflow:hidden}.fascicle-actions{flex-wrap:wrap}
  .bottomnav{height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.bottomnav button{min-width:0;font-size:9px}.bottomnav .bn-icon{font-size:20px}.bottomnav .fab{width:52px;height:52px;min-height:52px;min-width:52px;font-size:21px}
  .dossier-switch-list>button{grid-template-columns:44px minmax(0,1fr)}.dossier-switch-list>button em{grid-column:2;text-align:left}
}

@media(max-width:390px){
  .pagehead h1{font-size:21px}.context-person{max-width:46vw}.context-person small{display:none}
  .dossier-tab{min-width:72px}.dossier-tab b{font-size:9px}
  .quick-person-actions,.tool-grid,.section-head.responsive-head>.button-row,.report-v12-actions,.report-export-actions{grid-template-columns:1fr}
  .report-export-actions .strong{grid-column:auto}
  .control-kpis{grid-template-columns:1fr}
  .doc-category-grid{grid-template-columns:1fr 1fr}
}


/* V26 — foto amministrato da fotocamera o galleria + copyright globale */
.beneficiary-photo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}.beneficiary-photo-actions .file-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;text-align:center;white-space:normal;line-height:1.2}.remove-photo-btn{margin-top:8px}.app-footer{margin:0 28px 24px;padding:16px 12px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.4;text-align:center;letter-spacing:.01em;overflow-wrap:anywhere}.auth-copyright{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;text-align:center;line-height:1.4}
@media(max-width:720px){.beneficiary-photo-box{align-items:flex-start}.photo-controls{width:100%;min-width:0}.beneficiary-photo-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.beneficiary-photo-actions .file-button{width:100%;min-width:0;padding:9px 8px;font-size:12px}.remove-photo-btn{width:100%}.app-footer{margin:0 12px calc(82px + env(safe-area-inset-bottom));padding:14px 8px 16px;font-size:10px}}
@media(max-width:390px){.beneficiary-photo-box{display:grid;grid-template-columns:1fr}.beneficiary-photo-actions{grid-template-columns:1fr}.photo-preview{width:88px;height:88px}}


/* V30 — fascicolo allegati mobile-first */
.fascicle-mobile-summary{display:none}
.fascicle-file-icon{width:42px;height:42px;border-radius:12px;background:#f1f5f8;display:grid;place-items:center;font-size:21px;flex:none}
.fascicle-final-name{margin-top:7px;display:flex;align-items:center;gap:6px;max-width:100%;background:#f6f8fa;border:1px solid #e4ebf0;border-radius:9px;padding:6px 7px}
.fascicle-final-name span{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;color:#53687c}
.fascicle-final-name button{width:30px;height:30px;min-height:30px;flex:none;padding:0;border:0;border-radius:8px;background:#fff;cursor:pointer}
.fascicle-row{grid-template-columns:96px 42px minmax(0,1fr) auto}
.fascicle-actions .mini-icon em{display:none;font-style:normal}
.fascicle-actions .mini-icon span{line-height:1}

@media(max-width:720px){
 .v30-fascicle{padding:12px!important;border-radius:16px!important}
 .fascicle-head{display:block;margin-bottom:10px}
 .fascicle-title h2{font-size:18px;line-height:1.25;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
 .fascicle-title p{font-size:11px;margin:5px 0 0}
 .fascicle-top-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;width:100%}
 .fascicle-top-actions>*{width:100%;min-height:44px;padding:8px 9px;font-size:12px;white-space:normal;line-height:1.15}
 .fascicle-top-actions>*:only-child{grid-column:1/-1}
 .fascicle-mobile-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0 12px}
 .fascicle-mobile-summary span{display:grid;place-items:center;text-align:center;border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:9px 5px}
 .fascicle-mobile-summary b{font-size:17px;line-height:1.1}
 .fascicle-mobile-summary small{font-size:9px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.04em}
 .fascicle-mobile-summary .is-ok{background:var(--success-bg);border-color:#cfe9db}.fascicle-mobile-summary .is-warn{background:var(--warn-bg);border-color:#efd8b4}
 .fascicle-list{gap:10px;margin-top:0}
 .fascicle-row{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-areas:"num doc" "icon doc" "actions actions";align-items:start;gap:7px 10px;padding:11px;border-radius:14px;overflow:hidden}
 .attachment-number{grid-area:num;width:52px;height:52px;border-radius:12px;background:var(--nav2);color:#d7e4ef;display:grid;place-items:center;align-content:center;text-align:center;padding:4px}
 .attachment-number span{font-size:7px;line-height:1;text-transform:uppercase;letter-spacing:.04em}.attachment-number b{font-size:16px;color:#fff;line-height:1.1;margin-top:2px}
 .fascicle-file-icon{grid-area:icon;width:52px;height:38px;border-radius:10px;font-size:19px}
 .fascicle-doc{grid-area:doc;min-width:0;padding-top:1px}
 .fascicle-doc-title{font-size:13px!important;line-height:1.3;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden!important;word-break:normal!important}
 .fascicle-doc small{font-size:10px!important;line-height:1.35;margin-top:5px!important}
 .fascicle-final-name{margin-top:8px;padding:5px 6px;border-radius:8px}
 .fascicle-final-name span{font-size:9px}.fascicle-final-name button{width:32px;height:32px;min-height:32px}
 .fascicle-actions{grid-area:actions;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding-top:9px;margin-top:2px;border-top:1px solid #edf1f4;width:100%}
 .fascicle-actions .mini-icon{width:100%;height:42px;min-height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;font-size:13px;color:var(--ink);text-decoration:none}
 .fascicle-actions .mini-icon em{display:inline;font-size:10px;font-weight:800}
 .fascicle-actions .open-attachment{background:var(--accent-weak);color:var(--accent);border-color:#cfe2e4}
 .fascicle-actions .mini-icon:disabled{opacity:.32}
 .fascicle-actions .open-attachment:only-child{grid-column:1/-1}
 .report-compose-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
 .report-compose-actions>*{width:100%;min-height:44px;padding:8px;font-size:11px;white-space:normal}
 .report-download-info{gap:7px;margin-top:10px}
 .report-download-info>div{padding:10px;display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:start}
 .report-download-info b{font-size:11px}.report-download-info span{font-size:10px;margin-top:0}
 .report-export-bar{left:10px!important;right:10px!important;bottom:calc(70px + env(safe-area-inset-bottom))!important;width:auto!important;padding:10px!important;border-radius:15px!important;gap:8px!important}
 .report-export-bar>div:first-child b{font-size:12px}.report-export-bar>div:first-child small{font-size:9px;line-height:1.25}
 .report-export-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:6px!important;width:100%}
 .report-export-actions .primary.strong{grid-column:1/-1;grid-row:1;min-height:44px}
 .report-export-actions .secondary{min-height:38px;padding:7px 5px;font-size:10px;white-space:normal}
 .fascicle-empty{padding:24px 12px!important}.fascicle-empty>b{font-size:14px}.fascicle-empty small{font-size:11px}
}

/* V36 - Gestione fascicolo: azioni CRUD sempre leggibili e touch-friendly */
.manage-main{flex:1;min-width:0}.manage-main b,.manage-main small{overflow-wrap:anywhere}.manage-value{flex:none;text-align:right}.manage-value b{white-space:nowrap}.manage-row>.row-actions{margin-left:auto;justify-content:flex-end}.manage-row>.row-actions button{white-space:nowrap}
@media(max-width:700px){
  .manage-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important}
  .manage-main{grid-column:1/-1}.manage-value{grid-column:1/2;text-align:left}.manage-row>.badge{justify-self:start}
  .manage-row>.row-actions,.manage-row>.contact-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px;margin-left:0}
  .manage-row>.row-actions>* ,.manage-row>.contact-actions>*{width:100%;min-width:0;white-space:normal;text-align:center;overflow-wrap:anywhere}
}
@media(max-width:380px){.manage-row>.row-actions,.manage-row>.contact-actions{grid-template-columns:1fr}}

/* V38 — saldo generale aggregato di conti, libretti e disponibilità */
.account-balance-list{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.account-balance-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed #e6ebef;min-width:0}
.account-balance-list>div:last-child{border-bottom:0}.account-balance-list span{min-width:0;font-weight:700;overflow-wrap:anywhere}.account-balance-list span small,.account-balance-list b small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:3px}.account-balance-list b{text-align:right;white-space:nowrap;font-size:15px}.info-strip.warn{background:var(--warn-bg);border-color:#efd8b4;color:#765a23}
@media(max-width:560px){.account-balance-list>div{gap:8px}.account-balance-list b{font-size:14px}.financial-card .section-head{align-items:flex-start}.financial-card .section-head>button{width:100%;white-space:normal}}

/* V40 — automazioni, inbox, anomalie, revisione bancaria mobile-first */
.v40-notifications{margin-top:16px}.notification-list{display:grid;gap:10px}.notification-row{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#e5e7eb)}.notification-row:last-child{border-bottom:0}.notification-row span{font-size:22px}.notification-row b,.notification-row small{display:block}.notification-row small{margin-top:3px;color:var(--muted,#64748b)}
.anomaly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.anomaly-card{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px}.anomaly-card>span{font-size:22px}.anomaly-card b,.anomaly-card small{display:block}.anomaly-card small{margin-top:4px;color:var(--muted,#64748b)}
.calendar-list{display:grid;gap:0}.calendar-row{display:grid;grid-template-columns:100px 34px 1fr;align-items:start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line,#e5e7eb)}.calendar-row time{font-weight:700}.calendar-row>span{font-size:20px}.calendar-row b,.calendar-row small{display:block}.calendar-row small{margin-top:3px;color:var(--muted,#64748b)}
.smart-link-row{grid-template-columns:auto 1fr auto}.confidence{min-width:58px;text-align:center;font-weight:800;border-radius:999px;padding:7px 8px;background:#eef2f7}.confidence.high{background:#dcfce7}.confidence.medium{background:#fef3c7}.confidence.low{background:#fee2e2}
.bank-review-card{display:grid;gap:16px}.review-progress{height:7px;border-radius:999px;background:#e5e7eb;overflow:hidden}.review-progress span{display:block;height:100%;background:currentColor}.bank-amount{font-size:30px;font-weight:800}.bank-amount small{display:block;font-size:13px;font-weight:600;color:var(--muted,#64748b)}.bank-description{padding:14px;border-radius:14px;background:var(--soft,#f8fafc)}.bank-description b,.bank-description small{display:block}.bank-description small{margin-top:4px;color:var(--muted,#64748b)}.match-candidate{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px}.match-candidate b,.match-candidate small{display:block}.match-candidate small{margin-top:3px;color:var(--muted,#64748b)}.review-actions{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap}
.year-history{display:grid;gap:10px}.year-row{display:grid;grid-template-columns:70px repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line,#e5e7eb);border-radius:14px}.year-row>span{display:flex;flex-direction:column;gap:3px}.year-row small{color:var(--muted,#64748b)}
.final-review{display:grid;gap:10px}.review-check{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:14px}.review-check>span{font-size:20px}.review-check b,.review-check small{display:block}.review-check small{margin-top:3px;color:var(--muted,#64748b)}
@media(max-width:720px){.anomaly-grid{grid-template-columns:1fr}.calendar-row{grid-template-columns:82px 28px 1fr}.smart-link-row{grid-template-columns:1fr}.confidence{justify-self:start}.match-candidate{grid-template-columns:28px 1fr}.match-candidate button{grid-column:1/-1;width:100%}.review-actions{display:grid;grid-template-columns:1fr 1fr}.review-actions .primary{grid-column:1/-1}.year-row{grid-template-columns:1fr 1fr}.year-row>b{font-size:20px}.year-row small{grid-column:1/-1}.bank-import-box{display:grid;gap:10px}.bank-import-box>*{width:100%}.manage-row.smart-link-row .primary{width:100%}}

/* V42 — acquisizione rapida, modelli operativi e registro comunicazioni */
.receipt-camera-actions{display:flex;gap:10px;flex-wrap:wrap}.receipt-preview{margin-top:14px;border:1px dashed var(--border);border-radius:14px;padding:12px;text-align:center}.receipt-preview img{display:block;max-width:100%;max-height:44vh;object-fit:contain;margin:0 auto 8px;border-radius:10px}.quick-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-template{min-height:104px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:14px}.quick-template>span{font-size:1.5rem}.money.transfer{font-weight:800}.field.hidden{display:none!important}
@media(max-width:720px){.receipt-camera-actions>*{flex:1 1 100%}.quick-template-grid{grid-template-columns:1fr}.quick-template{min-height:86px}.receipt-preview img{max-height:38vh}}

/* V44 — Conti e disponibilità mobile senza colonne compresse */
.accounts-mobile-shell,.account-card-list{min-width:0;max-width:100%}.accounts-summary-card{display:grid;gap:4px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd;margin-bottom:14px}.accounts-summary-card small,.accounts-summary-card span{color:var(--muted);overflow-wrap:anywhere}.accounts-summary-card strong{font-size:28px;line-height:1.1}.account-card-list{display:grid;gap:12px}.account-manage-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:0;overflow:hidden}.account-card-title{display:flex;gap:10px;align-items:flex-start;min-width:0}.account-card-title>span{font-size:22px;flex:none}.account-card-title>div{min-width:0}.account-card-title b,.account-card-title small{display:block;overflow-wrap:anywhere;word-break:break-word}.account-card-title small,.account-card-balance small,.account-card-balance span{color:var(--muted);font-size:11px}.account-card-balance{text-align:right;min-width:0}.account-card-balance strong,.account-card-balance span,.account-card-balance small{display:block}.account-card-balance strong{font-size:19px;white-space:nowrap}.account-card-iban{grid-column:1/-1;padding:8px 10px;border-radius:10px;background:#f8fafc;font-size:11px;overflow-wrap:anywhere;word-break:break-all}.account-card-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.accounts-modal-v44 .modal-card,.accounts-modal-v44 .modal-body{min-width:0;max-width:100%}

/* V44 — acquisizione scontrino direttamente da Nuova spesa */
.expense-capture-first{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd;margin-bottom:14px;min-width:0}.expense-capture-copy b,.expense-capture-copy small{display:block}.expense-capture-copy small{margin-top:4px;color:var(--muted);line-height:1.4}.expense-capture-actions{display:flex;gap:9px;flex-wrap:wrap}.ocr-inline-state{border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px;min-width:0}.ocr-inline-state.hidden{display:none}.ocr-result-head{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start}.ocr-result-head b,.ocr-result-head small{display:block}.ocr-result-head small{margin-top:3px;color:var(--muted)}.ocr-duplicate-warning{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:grid;gap:8px}.ocr-duplicate-warning>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.ocr-duplicate-warning span{overflow-wrap:anywhere}.ocr-duplicate-warning strong{white-space:nowrap}
@media(max-width:640px){.accounts-head{display:grid!important;grid-template-columns:1fr;gap:10px}.accounts-head>button{width:100%}.account-manage-card{grid-template-columns:1fr}.account-card-balance{text-align:left}.account-card-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.account-card-actions>*{width:100%;min-width:0;white-space:normal}.accounts-summary-card strong{font-size:25px}.expense-capture-actions{display:grid;grid-template-columns:1fr}.expense-capture-actions>*{width:100%;min-width:0}.ocr-duplicate-warning>div{grid-template-columns:1fr auto}.ocr-duplicate-warning button{grid-column:1/-1;width:100%}}
@media(max-width:380px){.account-card-actions{grid-template-columns:1fr}.accounts-summary-card strong{font-size:23px}}

/* V46 — fix definitivo disponibilità finanziaria su mobile */
@media(max-width:720px){
  .financial-card .section-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    width:100%!important;
    gap:10px!important;
  }
  .financial-card .section-head>div:first-child{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .financial-card .section-head h2,
  .financial-card .section-head p{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .financial-card .section-head>button{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    justify-self:stretch!important;
  }
  .financial-card,.finance-lines,.account-balance-list{width:100%!important;min-width:0!important;max-width:100%!important}
  .finance-lines>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}
  .finance-lines>div>span{min-width:0!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
}

/* V46 — stato OCR e suggerimenti leggibili su smartphone */
.ocr-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.ocr-quality-grid>div{border:1px solid var(--line);border-radius:11px;padding:9px;background:#f8fafc}.ocr-quality-grid b,.ocr-quality-grid small{display:block}.ocr-quality-grid small{margin-top:2px;color:var(--muted);font-size:10px}.ocr-raw-preview{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}.ocr-raw-preview summary{cursor:pointer;font-weight:700}.ocr-raw-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-size:10px;background:#f8fafc;border-radius:10px;padding:10px}
@media(max-width:560px){.ocr-quality-grid{grid-template-columns:1fr}.ocr-quality-grid>div{padding:8px}.ocr-result-head{grid-template-columns:24px minmax(0,1fr)}}


/* V48 — privacy e sicurezza */
.privacy-mode .person-card h3,.privacy-mode .person-hero h2,.privacy-mode .context-person b,.privacy-mode .financial-card .finance-lines b,.privacy-mode .financial-card .account-balance-list b,.privacy-mode .account-card-balance strong,.privacy-mode .transactions-list .money,.privacy-mode table .money{filter:blur(7px);user-select:none}
.privacy-mode .person-card p,.privacy-mode .person-hero p{filter:blur(5px);user-select:none}
.privacy-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.privacy-status{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.privacy-status.ok{background:#f3fbf6}.privacy-status.warn{background:#fff9ed}.privacy-status b,.privacy-status small{display:block}.privacy-status small{margin-top:3px;color:var(--muted)}
.audit-list{display:grid}.audit-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.audit-row time{font-size:12px;color:var(--muted)}.audit-row b,.audit-row small{display:block}.audit-row small{color:var(--muted);margin-top:2px}
@media(max-width:720px){.privacy-status-grid{grid-template-columns:1fr 1fr}.audit-row{grid-template-columns:1fr;gap:3px}.report-export-actions{grid-template-columns:1fr 1fr}.report-export-actions .strong{grid-column:1/-1}}
@media(max-width:420px){.privacy-status-grid{grid-template-columns:1fr}}

/* V50 SaaS: registrazione, onboarding e logout */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#f1f4f7;padding:5px;border-radius:12px;margin:14px 0}
.auth-tab{border:0;background:transparent;padding:10px 12px;border-radius:9px;font-weight:800;cursor:pointer}.auth-tab.active{background:#fff;box-shadow:0 2px 10px #00000012;color:#17324d}
.linklike{border:0;background:transparent;text-decoration:underline;cursor:pointer;color:#425d78;padding:8px}.auth-success{padding:10px 12px;border-radius:10px;background:#edf8f1;color:#17613b;font-size:.92rem}.consent-line{display:flex;gap:9px;align-items:flex-start;font-size:.85rem;line-height:1.35}.consent-line input{margin-top:3px}
.nav-logout{margin-top:10px;color:#8b2f2f!important}.onboarding-progress{height:8px;background:#e7edf2;border-radius:999px;overflow:hidden;margin:10px 0 22px}.onboarding-progress>span{display:block;height:100%;background:linear-gradient(90deg,#17324d,#b78a3b);border-radius:999px}.onboarding-step{display:grid;gap:14px}.setup-checklist{display:grid;gap:8px;margin-top:12px}.setup-check{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e0e6eb;border-radius:12px}.setup-check.done{background:#f2f8f4}.saas-plan-box{padding:12px;border:1px solid #dbe3e9;border-radius:12px;background:#fbfcfd}
@media(max-width:720px){.auth-card{max-width:94vw}.auth-tabs{position:sticky;top:0}.nav-logout{display:none}}

/* V52 auth / SaaS admin */
.auth-screen{overflow:auto;align-items:start}.auth-card{margin:auto}.auth-pane[hidden]{display:none!important}.register-head{display:grid;gap:8px;margin:4px 0 8px}.register-head b,.register-head small{display:block}.register-head small{margin-top:3px;color:var(--muted)}
.platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.platform-kpi{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.platform-kpi b{font-size:24px;display:block}.tenant-domain{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.license-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.license-card.expired{border-color:#efc2c9;background:#fff8f9}.license-card.warn{border-color:#ead39d;background:#fffdf7}
@media(max-width:720px){.auth-screen{display:block;padding:0;background:#fff}.auth-card{width:100%;max-width:none!important;min-height:100dvh;border-radius:0!important;padding:22px 18px calc(30px + env(safe-area-inset-bottom));box-shadow:none;overflow:auto}.auth-tabs{position:static!important}.platform-grid{grid-template-columns:1fr}.register-head{position:sticky;top:0;background:#fff;z-index:2;padding:6px 0 10px}}

/* V54: accesso ricordato sicuro, occhio privacy e diagnostica SMTP */
.remember-line{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:start;font-size:12px;color:var(--ink);text-transform:none!important;letter-spacing:0!important;font-weight:700}.remember-line input{margin-top:2px}.remember-line small{grid-column:2;color:var(--muted);font-weight:500;line-height:1.35}.privacy-eye.active{background:var(--accent-weak);border-color:#b9d9dc;color:var(--accent)}.smtp-test-result{margin-top:10px;border-radius:11px;padding:10px 12px;font-size:12px;overflow-wrap:anywhere}.smtp-test-result.ok{background:var(--success-bg);color:var(--success)}.smtp-test-result.error{background:var(--danger-bg);color:var(--danger)}
@media(max-width:720px){.privacy-eye{display:inline-grid!important;place-items:center}.remember-line{font-size:13px}}

/* V60 — splash iniziale, sottodominio registrazione e tutorial installazione PWA */
.startup-splash{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:linear-gradient(180deg,#f8fbfd 0%,#eef3f7 100%);padding:24px;opacity:1;transition:opacity .28s ease,visibility .28s ease}.startup-splash.leaving{opacity:0;visibility:hidden}.startup-splash-inner{display:grid;justify-items:center;text-align:center;gap:20px;width:min(92vw,520px)}.startup-logo-frame{width:clamp(150px,34vw,240px);aspect-ratio:1;border-radius:34px;background:#fff;display:grid;place-items:center;padding:20px;box-shadow:0 24px 70px #10243b20;border:1px solid #dfe7ee}.startup-logo-frame img{width:100%;height:100%;object-fit:contain;border-radius:22px}.startup-splash-copy{display:grid;gap:5px}.startup-splash-copy small{font-size:11px;letter-spacing:.18em;font-weight:800;color:#6d7d8d}.startup-splash-copy strong{font-size:clamp(30px,7vw,48px);line-height:1.04;color:#17324d}.startup-splash-copy span{font-size:14px;color:#66788a}
.register-subdomain{align-items:stretch}.register-subdomain input{min-width:0}.subdomain-hint{display:block;margin-top:6px;color:var(--muted);line-height:1.35}.subdomain-hint.checking{color:#596b7d}.subdomain-hint.ok{color:#17613b;font-weight:700}.subdomain-hint.error{color:#9a2d38;font-weight:700}.platform-switch{display:flex!important;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:12px;border-radius:12px;background:#fbfcfd}.platform-switch input{margin-top:3px}.platform-switch span,.platform-switch b,.platform-switch small{display:block}.platform-switch small{margin-top:3px;color:var(--muted);font-weight:400;line-height:1.35}
.install-tutorial{display:grid;gap:10px}.install-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff}.install-step>span{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#eef3f7;color:#17324d;font-weight:900}.install-step b,.install-step small{display:block}.install-step small{margin-top:3px;color:var(--muted);line-height:1.4}.install-now-btn{margin-top:10px;width:100%}
@media(max-width:720px){.startup-splash{padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}.startup-logo-frame{width:min(56vw,210px);border-radius:30px}.startup-splash-copy strong{font-size:36px}.register-subdomain{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}.register-subdomain span{display:flex;align-items:center;white-space:nowrap;font-size:12px}.install-step{grid-template-columns:32px minmax(0,1fr)}}

/* V62 — accesso/registrazione più moderno e proporzionato */
.auth-screen{background:radial-gradient(circle at 15% 15%,rgba(255,255,255,.14),transparent 28%),linear-gradient(135deg,#0f253b 0%,#145b69 55%,#177b79 100%);padding:clamp(18px,4vw,48px);overflow-y:auto;align-items:center}
.auth-card{width:min(880px,100%);min-height:510px;padding:0;overflow:hidden;border-radius:30px;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(360px,1.18fr);grid-template-rows:auto 1fr auto;column-gap:0;background:#fff;box-shadow:0 35px 100px rgba(5,24,40,.34);border:1px solid rgba(255,255,255,.55)}
.auth-logo{grid-column:1;grid-row:1;width:82px;height:82px;margin:52px 46px 18px;border-radius:24px;background:rgba(255,255,255,.12);box-shadow:0 14px 36px rgba(0,0,0,.16);overflow:hidden;z-index:1}
.auth-logo img{width:100%;height:100%;object-fit:contain;background:white;padding:8px}
.auth-copy{grid-column:1;grid-row:2;padding:0 46px 40px;color:white;z-index:1;align-self:start}
.auth-copy:before{content:'';position:absolute;inset:0 56% 0 0;background:linear-gradient(160deg,#10243b,#176f78);z-index:-1}
.auth-copy h1{font-size:34px;line-height:1.05;color:white;margin:7px 0 12px}.auth-copy small{color:#b7f0e9}.auth-copy p{color:rgba(255,255,255,.76);font-size:14px;line-height:1.6}
.auth-tabs{grid-column:2;grid-row:1;align-self:end;margin:40px 42px 0;padding:5px;background:#f1f5f8;border-radius:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.auth-tab{border:0;background:transparent;border-radius:10px;padding:11px 14px;font-weight:800;color:#63768a;cursor:pointer}.auth-tab.active{background:white;color:#17324d;box-shadow:0 4px 14px rgba(23,50,77,.10)}
.auth-pane{grid-column:2;grid-row:2;padding:0 42px 28px;min-width:0}.auth-form{gap:13px;margin-top:24px}.auth-form .field label{font-weight:800;font-size:12px}.auth-form .field input{border-radius:12px;background:#fbfcfd;min-height:48px}.auth-submit{min-height:49px;border-radius:13px;font-size:14px}.linklike{font-weight:750}
.auth-hint{grid-column:2;grid-row:3;margin:0 42px;padding:15px 0 28px}.auth-copyright{grid-column:1;grid-row:3;color:rgba(255,255,255,.55);padding:0 46px 28px;z-index:1;font-size:11px}.register-head{margin-top:18px}
.auth-pane[hidden]{display:none!important}
@media(max-width:760px){.auth-screen{display:block;padding:0;background:#fff}.auth-card{display:block;width:100%;max-width:none!important;min-height:100dvh;border:0;border-radius:0!important;box-shadow:none;padding:calc(18px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));overflow:auto}.auth-logo{width:64px;height:64px;margin:10px 0 12px;border-radius:19px;background:#fff;box-shadow:0 8px 24px rgba(23,50,77,.14)}.auth-copy{padding:0;color:#17324d}.auth-copy:before{display:none}.auth-copy h1{color:#17324d;font-size:29px}.auth-copy small{color:#176f78}.auth-copy p{color:#64798c}.auth-tabs{margin:22px 0 0;position:static!important}.auth-pane{padding:0}.auth-hint{margin:18px 0 0;padding:16px 0 8px}.auth-copyright{padding:12px 0 4px;color:#8a99a8}.register-head{position:static!important}.auth-form{margin-top:18px}}


/* V72 — impostazioni ordinate, checkbox proporzionati, team visibile */
.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.settings-grid>.card{height:100%;display:flex;flex-direction:column}
.settings-grid>.card:first-child{grid-column:1/-1}
.settings-grid>.card .button-row:last-child{margin-top:auto;padding-top:14px}
.settings-grid .section-head{align-items:flex-start}
.settings-grid .form-grid{align-items:start}
.field input[type="checkbox"],.field input[type="radio"]{width:20px!important;height:20px!important;min-height:20px!important;padding:0!important;margin:0 8px 0 0!important;display:inline-block!important;vertical-align:middle;accent-color:var(--accent)}
.field label:has(input[type="checkbox"]),.field label:has(input[type="radio"]){display:flex;align-items:center;gap:8px;min-height:32px;text-transform:none;letter-spacing:0;font-size:12px;color:var(--ink)}
.settings-team-card{grid-column:1/-1}
.settings-team-summary{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:10px;margin-top:auto}
.settings-team-summary>div{border:1px solid var(--line);border-radius:13px;padding:12px;background:#f8fbfd}
.settings-team-summary b,.settings-team-summary small{display:block}.settings-team-summary b{font-size:22px}.settings-team-summary small{margin-top:3px;color:var(--muted)}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-grid>.card:first-child,.settings-team-card{grid-column:auto}}
@media(max-width:560px){.settings-team-summary{grid-template-columns:1fr 1fr}.settings-grid .section-head{display:grid;grid-template-columns:1fr}.settings-grid .section-head>button{width:100%}}
