:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#18314c;background:#f2f6fa}*{box-sizing:border-box}body{margin:0;padding-bottom:85px}header{background:#123a60;color:#fff;padding:18px 20px 16px;position:sticky;top:0;z-index:2}.brand{font-size:30px;font-weight:800;letter-spacing:-1.4px}.brand span{color:#16a5e3}header small{opacity:.8}main{max-width:760px;margin:auto;padding:18px 14px}h1{font-size:23px;margin:6px 0 18px}h2{font-size:18px;margin:0 0 12px}.card{background:white;border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:0 2px 14px #1639550c}.muted{color:#6c7e8f;font-size:13px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.stack{display:grid;gap:12px}label{display:block;font-size:13px;font-weight:650;margin-bottom:5px}input,select,textarea{font:inherit;width:100%;border:1px solid #cbd7e3;border-radius:10px;padding:12px;background:white;color:#19334e}textarea{min-height:125px;resize:vertical}button,.button{font:inherit;cursor:pointer;border:0;border-radius:11px;padding:12px 14px;background:#14669b;color:white;font-weight:700;text-align:center}button.secondary,.button.secondary{background:#eaf2f8;color:#164f79}button.danger{background:#b72b35}button:disabled{opacity:.5}button.full{width:100%}.mini{font-size:13px;padding:8px 10px}.trip{width:100%;text-align:left;background:white;color:#18314c;border:1px solid #e1eaf1;margin:6px 0}.trip strong{display:block;font-size:17px}.pill{display:inline-block;background:#e8f5ff;color:#176b9c;border-radius:30px;padding:5px 9px;font-size:12px;font-weight:700}.red{color:#b4232c!important}.redbox{border:1px solid #efb6bb;background:#fff2f2;padding:12px;border-radius:12px}.expense{border-bottom:1px solid #e8eef4;padding:12px 0}.expense:last-child{border:0}nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #dce6ee;display:flex;padding:8px 5px max(8px,env(safe-area-inset-bottom));z-index:3}nav[hidden]{display:none}nav button{background:none;color:#61758a;flex:1;padding:10px 2px;font-size:11px}nav button.active{color:#0879b8;background:#eaf6fd}.totals{display:grid;gap:8px}.totals .row{padding:9px 0;border-bottom:1px solid #e8eef4}.receipt{width:80px;height:80px;object-fit:cover;border-radius:8px;background:#eef3f7}.wrap{overflow-wrap:anywhere;white-space:pre-wrap}.hint{font-size:12px;color:#6c7e8f}a{color:#116f9d}.empty{text-align:center;color:#708397;padding:25px 10px}.filepick{display:block;padding:13px;background:#eaf2f8;color:#164f79;border-radius:11px;text-align:center;font-weight:700;cursor:pointer}.filepick input{display:none}@media print{header,nav,.no-print,button{display:none!important}body{background:white}main{max-width:none}.card{box-shadow:none;border:1px solid #ddd}.expense{break-inside:avoid}}

/* MicroSpese: adeguamenti iPhone, senza cambiare la grafica esistente */
.grid > div,.row > *{min-width:0}
.grid input,.grid select{min-width:0;max-width:100%}
.trip-period{margin-top:9px;font-size:13px;color:#49657d;font-weight:600}
.trip-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 15px;border-bottom:1px solid #dce6ee}
.trip-total span{font-weight:700}.trip-total strong{font-size:20px;color:#176b9c}
.receipt-link-area{display:grid;gap:6px}
.receipt-overlay{position:fixed;inset:0;background:rgba(10,24,42,.96);z-index:100;display:flex;align-items:center;justify-content:center;padding:70px 12px 25px;overflow:auto}
.receipt-overlay img{max-width:100%;max-height:100%;object-fit:contain}
.receipt-close{position:fixed;right:12px;top:max(14px,env(safe-area-inset-top));z-index:101;background:#eaf2f8;color:#164f79}
/* Footer: lascia libera la destra per il badge Netlify esterno */
body{padding-bottom:105px}
nav{bottom:32px;padding:5px 5px 5px;gap:3px}
nav button{font-size:12px;padding:8px 2px}
.microplus-footer{position:fixed;left:9px;bottom:max(5px,env(safe-area-inset-bottom));z-index:3;color:#60758b;font-size:11px;font-weight:800;letter-spacing:-.2px;pointer-events:none}
@media(max-width:560px){.grid{grid-template-columns:minmax(0,1fr)}.trip-total{align-items:baseline}}
@media print{.microplus-footer{display:none!important}}

/* Correzione 27 ottobre: iOS - dimensioni dei controlli e footer compatto. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
main,.card,form,.stack,.grid,.grid>div,.row{min-width:0;max-width:100%}
input,select,textarea,input[type="date"],input[type="time"],input[type="number"]{
  display:block;box-sizing:border-box;min-width:0;width:100%;max-width:100%;
}
form .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:650px){form .grid{grid-template-columns:minmax(0,1fr)}}
body{padding-bottom:calc(126px + env(safe-area-inset-bottom,0px))}
nav{bottom:calc(48px + env(safe-area-inset-bottom,0px));padding:5px 7px;gap:4px;min-height:45px}
nav button{font-size:12px;padding:8px 2px;white-space:nowrap}
.microplus-footer{left:10px;bottom:calc(7px + env(safe-area-inset-bottom,0px));width:145px;height:35px;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  font-weight:normal;line-height:1;letter-spacing:normal;pointer-events:none}
.microplus-wordmark{font-size:24px;letter-spacing:-1.6px;color:#124a82;font-weight:400;line-height:.94}
.microplus-wordmark span{font-weight:400}
.microplus-tagline{font-size:6.8px;letter-spacing:.45px;font-weight:750;color:#16a5e3;white-space:nowrap;margin-top:2px}
@media print{nav,.microplus-footer{display:none!important}}

/* Rifinitura finale: controlli data/ora iOS e navigazione sopra badge Netlify. */
#expenseForm input[type="date"],#expenseForm input[type="time"]{
  display:block; width:100%; max-width:100%; min-width:0;
  box-sizing:border-box; -webkit-appearance:none; appearance:none;
}
#expenseForm .grid,#expenseForm .grid>div{min-width:0;max-width:100%}
@media(max-width:650px){#expenseForm .grid{grid-template-columns:minmax(0,1fr)}}
nav{bottom:calc(69px + env(safe-area-inset-bottom,0px));}
.microplus-footer{bottom:calc(11px + env(safe-area-inset-bottom,0px));left:10px;}
body{padding-bottom:calc(142px + env(safe-area-inset-bottom,0px));}

/* Footer definitivo: menu vicino al marchio, zona destra libera per badge esterno. */
body{padding-bottom:calc(108px + env(safe-area-inset-bottom, 0px))}
#nav{bottom:calc(46px + env(safe-area-inset-bottom, 0px));min-height:43px;padding:4px 6px;gap:3px}
#nav button{font-size:12px;padding:7px 2px}
.microplus-footer{position:fixed!important;display:flex!important;visibility:visible!important;
 left:8px!important;right:auto!important;bottom:calc(6px + env(safe-area-inset-bottom, 0px))!important;
 width:150px!important;height:36px!important;z-index:10!important;
 flex-direction:column;align-items:flex-start;justify-content:center;pointer-events:none;
 background:transparent!important;opacity:1!important}
.microplus-wordmark{font-size:23px;color:#124a82;line-height:1}
.microplus-tagline{font-size:6.5px;color:#16a5e3;white-space:nowrap}
@media print{.microplus-footer{display:none!important}}

/* Footer v6: in normal document flow, never covering content. */
html,body{min-height:100%;overflow-x:hidden}
body{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))!important}
#nav,#nav:not([hidden]){position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
 margin:2px auto 0!important;width:100%;max-width:760px;min-height:0!important;
 padding:4px 7px!important;z-index:auto!important;gap:3px!important}
#nav[hidden]{display:none!important}
#nav button{font-size:12px;padding:8px 2px}
main{padding-bottom:4px!important}
.microplus-footer{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
 display:block!important;visibility:visible!important;opacity:1!important;z-index:auto!important;
 margin:3px auto 0!important;width:100%!important;max-width:760px!important;height:auto!important;
 padding:0 0 0 10px!important;pointer-events:none;background:transparent!important}
.microplus-footer img{display:block;width:132px;max-width:48%;height:auto;object-fit:contain}
@media print{#nav,.microplus-footer{display:none!important}}

/* Home: lista scorrevole, backup compatto e marchio fissi; nessun menu. */
body.home-screen{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:0!important}
body.home-screen header{position:relative;flex:0 0 auto}
body.home-screen main#app{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;padding:10px 14px 0!important;overflow:hidden}
body.home-screen .home-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px 0 12px}
body.home-screen .home-scroll .row{margin-bottom:6px}
body.home-screen .home-scroll h1{margin-bottom:8px}
body.home-screen .home-backup{flex:0 0 auto;gap:7px;padding:12px 14px;margin:0 0 4px;border-radius:15px;box-shadow:0 -3px 14px #16395510}
body.home-screen .home-backup h2{font-size:16px;margin:0 0 2px}
body.home-screen .home-backup button.secondary,body.home-screen .home-backup .filepick{font-size:13px;line-height:1.2;padding:10px 8px;border-radius:9px;margin:0}
body.home-screen .home-backup .hint{font-size:10px;line-height:1.3;margin:2px 0 0}
body.home-screen #nav{display:none!important}
body.home-screen .microplus-footer{flex:0 0 auto;position:relative!important;min-height:58px;margin:0 auto!important;padding:2px 0 max(12px,env(safe-area-inset-bottom,0px)) 12px!important;max-width:760px!important;width:100%!important}
body.home-screen .microplus-footer img{width:130px;max-width:43%}
@media(max-height:650px){body.home-screen .home-backup{gap:4px;padding:8px 12px}body.home-screen .home-backup .hint{font-size:9px}body.home-screen .microplus-footer{min-height:46px}}
@media print{body.home-screen{height:auto;overflow:visible}body.home-screen main#app,body.home-screen .home-scroll{overflow:visible}}

/* Nuova trasferta: form completamente scorrevole e date iPhone entro margini. */
#tripForm,#tripForm .grid,#tripForm .grid>div{min-width:0;max-width:100%}
#tripForm input[type="date"]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;-webkit-appearance:none;appearance:none}
@media(max-width:650px){#tripForm .grid{grid-template-columns:minmax(0,1fr)}}
#tripForm #createTripButton{display:block;width:100%;min-height:48px;margin-top:4px}

/* Opzioni trasferte: pulsante separato e menu a comparsa accessibile. */
.trip-item{display:flex;align-items:stretch;position:relative;gap:6px;margin:6px 0;min-width:0}
.trip-item .trip-open{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}
.trip-actions{position:relative;display:flex;align-items:stretch;flex:0 0 46px}
.trip-more{width:46px;min-height:48px;font-size:25px;padding:6px!important}
.trip-menu{position:absolute;z-index:12;right:0;top:calc(100% + 4px);width:175px;background:#fff;border:1px solid #dce6ee;border-radius:12px;box-shadow:0 5px 20px #16395535;padding:5px}
.trip-menu[hidden]{display:none}
.trip-menu button{display:block;width:100%;text-align:left;background:#fff;color:#18314c;padding:11px 12px;font-size:15px}
.trip-menu button.danger{color:#b4232c;background:#fff}
.trip-menu button:active{background:#eaf2f8}
body.home-screen .home-scroll{padding-bottom:125px}

/* Nuove ricevute e verifica */
.expense.unverified{border:2px solid #cb2839!important;border-radius:11px;padding:12px;background:#fff8f8}
.verify-counter,.verify-label{color:#b4232c;font-weight:700}.verify-counter{padding:9px 12px;background:#fff1f2;border-radius:10px;margin:8px 0}.verify-label{font-size:12px;margin-top:6px}
.photo-previews{display:grid;gap:7px}.photo-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px;border:1px solid #dce6ee;border-radius:9px;min-width:0}.photo-item span{overflow-wrap:anywhere}
.proposal{border-bottom:1px solid #dce6ee;padding:14px 0;display:grid;gap:12px;min-width:0}.proposal img{max-width:100%;max-height:230px;object-fit:contain;justify-self:center}.proposal .grid>*{min-width:0}.proposal input[type=date]{min-width:0;max-width:100%;width:100%;box-sizing:border-box}

/* Editor manuale ritaglio: quattro angoli trascinabili anche su iPhone */
.proposal-photo{display:grid;justify-items:center;gap:7px}.proposal-photo img{max-width:100%;max-height:230px;object-fit:contain}
.crop-overlay{position:fixed;inset:0;z-index:9999;background:#091a2ee8;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
.crop-panel{background:#fff;color:#17344f;border-radius:14px;padding:14px;width:min(100%,600px);max-height:96dvh;overflow-y:auto;box-sizing:border-box}
.crop-panel h2{margin:0 0 5px}.crop-panel p{font-size:13px;margin:5px 0 12px}
.crop-stage{position:relative;display:block;width:fit-content;max-width:100%;margin:0 auto;line-height:0;touch-action:none;user-select:none}
.crop-stage>img{display:block;max-width:100%;max-height:62dvh;width:auto;height:auto;object-fit:contain;user-select:none}
.crop-rect{position:absolute;border:2px solid #f23643;box-shadow:0 0 0 200vmax #0005;box-sizing:border-box;pointer-events:none}
.crop-rect button{position:absolute;width:30px;height:30px;padding:0;border:3px solid #fff;border-radius:50%;background:#e92335;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none}
.crop-rect [data-corner=tl]{left:0;top:0}.crop-rect [data-corner=tr]{left:100%;top:0}.crop-rect [data-corner=br]{left:100%;top:100%}.crop-rect [data-corner=bl]{left:0;top:100%}
.crop-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.crop-buttons button{flex:1 1 auto;font-size:13px;padding:11px 8px}

/* Ricevute: controls stay within narrow iPhone screens. */
.receipt-entry{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.receipt-entry .receipt-info{flex:1 1 140px;min-width:0;overflow-wrap:anywhere}
.receipt-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%;justify-content:flex-end}
.receipt-view-panel{max-height:90%;max-width:min(94vw,750px);display:flex;flex-direction:column;gap:10px}
.receipt-view-panel img{max-width:100%;max-height:75vh;object-fit:contain}
.receipt-view-buttons{display:flex;gap:10px;justify-content:flex-end}

/* Spese: descrizioni lunghe non possono spingere gli importi fuori dalla scheda. */
.expense-main-row{align-items:flex-start;min-width:0;width:100%}
.expense-main-row .expense-description{flex:1 1 0;min-width:0;overflow-wrap:anywhere;word-break:normal;white-space:normal}
.expense-main-row .expense-amount{flex:0 0 auto;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:420px){.expense-main-row{gap:8px}.expense-main-row .expense-amount{font-size:clamp(13px,3.8vw,17px)}}

/* Correzione iPhone: la revisione Gemini non deve affiancare data e importo. */
#proposals,#proposals .proposal,#proposals .stack,#proposals label{min-width:0;max-width:100%;width:100%}
#proposals .grid{display:grid;grid-template-columns:minmax(0,1fr)!important;min-width:0;width:100%}
#proposals .grid>label{display:block;min-width:0;max-width:100%;overflow:hidden}
#proposals input[type="date"]{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;font-size:16px}
#proposals input{min-width:0;max-width:100%;box-sizing:border-box}

/* Spese senza ricevuta e acquisizione fotografica */
.expense.no-receipt{background:#fff2b3;border:1px solid #e4bd4d;border-radius:11px;padding:12px;margin:7px 0}
.capture-actions{margin-bottom:14px}
.camera-again-overlay{position:fixed;inset:0;background:#0008;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.camera-again-panel{background:white;border-radius:16px;padding:22px;width:min(100%,380px);box-shadow:0 8px 35px #0003}
.camera-again-panel h2{margin-bottom:20px}
