:root{--verde: #0ea472;--verde-scuro: #0a7d57;--verde-chiaro: #e2f7ee;--viola: #7c5cff;--viola-scuro: #6440e0;--viola-chiaro: #efeaff;--rosa: #ff4d94;--rosa-scuro: #d61f74;--rosa-chiaro: #ffe4f0;--ambra: #ffab00;--ambra-scuro: #d98c00;--ambra-chiaro: #fff2d9;--blu: #2f8fe0;--blu-scuro: #1f6fb8;--blu-chiaro: #e3f2fe;--crema: #f5f3fb;--superficie: #ffffff;--testo: #221f2e;--testo-secondario: #726f8a;--bordo: #ece8f6;--rosso: #ef4757;--rosso-chiaro: #ffe6ea;--giallo: #e0a800;--giallo-chiaro: #fff4d6;--gradiente-brand: linear-gradient(135deg, #0ea472 0%, #17b894 45%, #2f8fe0 100%);--gradiente-viola: linear-gradient(135deg, #7c5cff 0%, #ff4d94 100%);--radius-sm: 12px;--radius: 18px;--radius-lg: 26px;--ombra-sm: 0 1px 2px rgba(60, 40, 110, .06), 0 2px 6px rgba(60, 40, 110, .05);--ombra-md: 0 12px 28px -10px rgba(60, 40, 110, .22), 0 4px 10px rgba(60, 40, 110, .07);--ombra-brand: 0 10px 22px -8px rgba(14, 164, 114, .45);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(70% 42% at 10% 6%,rgba(25,224,160,.75),transparent 75%),radial-gradient(62% 40% at 96% 26%,rgba(255,61,165,.7),transparent 75%),radial-gradient(75% 46% at 6% 58%,rgba(58,160,255,.75),transparent 75%),radial-gradient(60% 40% at 55% 62%,rgba(124,92,255,.5),transparent 75%),radial-gradient(65% 42% at 94% 90%,rgba(150,90,255,.8),transparent 75%),radial-gradient(55% 34% at 40% 100%,rgba(255,61,165,.55),transparent 75%),#1a1245;background-attachment:fixed;color:var(--testo);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}#app{max-width:480px;margin:0 auto;min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1;padding-bottom:100px}.screen{padding:24px 20px}.screen-center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;background:var(--gradiente-brand)}.screen-center h1,.screen-center p.sub{color:#ffffffeb}.screen-center p.sub{color:#ffffffc7}h1{font-size:23px;font-weight:800;letter-spacing:-.01em;margin:0 0 4px}h2{font-size:17px;font-weight:700;margin:0 0 10px}p.sub{color:var(--testo-secondario);font-size:14px;margin:0 0 24px}.logo{width:76px;height:76px;border-radius:22px;margin-bottom:16px;box-shadow:0 12px 28px -8px #00000059}.who-buttons{display:flex;gap:14px;width:100%;max-width:320px}.who-button{flex:1;padding:28px 12px;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.4);background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--ombra-sm);font-size:17px;font-weight:700;color:#fff;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.who-button:active{transform:scale(.97);background:#ffffff4d;border-color:#fff}input[type=text],input[type=tel]{width:100%;max-width:280px;font-size:22px;letter-spacing:4px;text-align:center;padding:14px;border-radius:var(--radius);border:1px solid var(--bordo);background:var(--superficie);margin-bottom:16px}.screen-center input[type=text],.screen-center input[type=tel]{border:1px solid rgba(255,255,255,.5);background:#ffffff24;color:#fff}input[type=text]:focus,input[type=tel]:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-chiaro)}.screen-center input[type=text]:focus,.screen-center input[type=tel]:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff40}button{font-family:inherit}button.primary{width:100%;max-width:280px;padding:14px;border-radius:var(--radius);border:none;background:var(--gradiente-brand);color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:var(--ombra-brand);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}button.primary:hover{filter:brightness(1.06)}button.primary:active{transform:scale(.98)}button.primary:disabled{opacity:.5;transform:none}.screen-center button.primary{background:#fff;color:var(--verde-scuro);box-shadow:0 10px 22px -8px #0000004d}.error{color:var(--rosso);font-size:14px;margin:8px 0 0;min-height:18px}.screen-center .error{color:#fff5b8}header.top{display:flex;align-items:baseline;justify-content:space-between;padding:26px 20px 22px;margin-bottom:6px;background:var(--gradiente-brand);border-radius:0 0 28px 28px;box-shadow:var(--ombra-brand);color:#fff}header.top h1{color:#fff}header.top p.sub{color:#ffffffd1;margin:0}header.top .date{color:#ffffffd1;font-size:14px;text-transform:capitalize}header.top .link-button{color:#fff}.card{background:var(--superficie);border:1px solid var(--bordo);box-shadow:var(--ombra-sm);border-radius:var(--radius);padding:16px;margin:0 20px 14px}.card h3{margin:0 0 8px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--viola-scuro)}.card.trash .row{font-size:15px;font-weight:600;margin-bottom:8px}.trash-types{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.trash-label{font-size:15px;font-weight:600}.trash-type-badge{display:inline-block;padding:5px 12px;border-radius:999px;font-size:13px;font-weight:700;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15)}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff}.badge.verdura{background:var(--verde)}.badge.pesce{background:var(--blu)}.badge.carne{background:var(--rosa)}.empty{color:var(--testo-secondario);font-size:14px;padding:4px 0}nav.bottom{position:fixed;bottom:max(10px,calc(env(safe-area-inset-bottom) - 10px));left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:456px;background:#ffffffe0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.6);border-radius:999px;box-shadow:var(--ombra-md);display:flex;justify-content:space-around;padding:5px 6px;gap:2px}nav.bottom button{background:none;border:none;font-size:10.5px;font-weight:700;color:var(--testo-secondario);padding:3px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;flex:1;border-radius:var(--radius-sm);transition:color .15s ease}nav.bottom .nav-icon{display:flex;align-items:center;justify-content:center;width:36px;height:26px;border-radius:999px;transition:background .15s ease,color .15s ease,transform .15s ease}nav.bottom button.active{color:var(--tab-colore, var(--verde))}nav.bottom button.active .nav-icon{background:var(--tab-colore-chiaro, var(--verde-chiaro));color:var(--tab-colore, var(--verde));transform:translateY(-2px)}nav.bottom button[data-tab=oggi]{--tab-colore: var(--verde);--tab-colore-chiaro: var(--verde-chiaro)}nav.bottom button[data-tab=calendario]{--tab-colore: var(--blu);--tab-colore-chiaro: var(--blu-chiaro)}nav.bottom button[data-tab=spesa]{--tab-colore: var(--ambra-scuro);--tab-colore-chiaro: var(--ambra-chiaro)}nav.bottom button[data-tab=todo]{--tab-colore: var(--viola);--tab-colore-chiaro: var(--viola-chiaro)}.link-button{background:none;border:none;color:var(--verde);font-size:14px;font-weight:700;cursor:pointer;padding:4px;display:inline-flex;align-items:center;gap:4px}.toolbar{display:flex;align-items:center;gap:10px;padding:4px 20px 14px;flex-wrap:wrap}button.small{padding:9px 16px;border-radius:999px;border:none;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:transform .12s ease,background .12s ease,filter .12s ease}button.small:active{transform:scale(.96)}button.primary.small{background:var(--gradiente-brand);color:#fff;box-shadow:var(--ombra-sm)}button.primary.small:hover{filter:brightness(1.06)}button.secondary.small{background:var(--verde-chiaro);color:var(--verde-scuro)}.filter-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{border:1px solid var(--bordo);background:var(--superficie);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;color:var(--testo-secondario);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.pill.active{background:var(--gradiente-viola);border-color:transparent;color:#fff;font-weight:700}.card-list{padding-bottom:8px}.card-header-row{display:flex;align-items:center;justify-content:space-between}.card-header-row h3{margin:0}.simple-list{list-style:none;margin:0;padding:0;font-size:14px}.simple-list li{padding:6px 0;border-bottom:1px solid var(--bordo)}.simple-list li:last-child{border-bottom:none}.tag{color:var(--testo-secondario);font-size:12px}.shopping-items,.todo-items{list-style:none;margin:0;padding:0}.shopping-item,.todo-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--bordo)}.shopping-item:last-child,.todo-item:last-child{border-bottom:none}.shopping-item label,.todo-item label{display:flex;align-items:center;gap:10px;font-size:15px;flex:1}.shopping-item input[type=checkbox],.todo-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--verde)}.shopping-item.checked span,.todo-item.done .todo-title{text-decoration:line-through;color:var(--testo-secondario)}.qty{color:var(--testo-secondario);font-size:13px}.icon-button{background:none;border:none;color:var(--testo-secondario);font-size:16px;cursor:pointer;padding:6px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;transition:background .12s ease,color .12s ease}.icon-button:hover{background:var(--bordo)}.icon-button.active{color:var(--ambra-scuro)}.icon-button.active .icon{fill:currentColor}.todo-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.badge-outline{border:1px solid var(--bordo);border-radius:999px;padding:2px 8px;font-size:11px;color:var(--testo-secondario)}.badge-outline.priority-alta{border-color:var(--rosso);color:var(--rosso)}.badge-outline.priority-bassa{border-color:var(--verde);color:var(--verde-scuro)}.badge-outline.overdue{border-color:var(--rosso);color:var(--rosso)}.badge-outline.due-today{border-color:var(--ambra-scuro);color:var(--ambra-scuro)}.checkbox-inline{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--testo-secondario)}.checkbox-inline input{width:16px;height:16px;accent-color:var(--verde)}.expense-items{list-style:none;margin:0;padding:0}.expense-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--bordo);cursor:pointer}.expense-item:last-child{border-bottom:none}.expense-item.inactive{opacity:.55}.expense-title{font-size:15px;font-weight:600}.expense-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.expense-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.expense-items.compact .expense-item{padding:8px 0;cursor:default}.expense-items.compact .expense-title{font-size:14px;font-weight:400}.nav-list{list-style:none;margin:0;padding:0}.nav-list li{display:flex;align-items:center;gap:12px;cursor:pointer;padding:11px 4px;border-radius:var(--radius-sm);border-bottom:1px solid var(--bordo);transition:background .12s ease}.nav-list li:last-child{border-bottom:none}.nav-list li:hover{background:var(--verde-chiaro)}.nav-list li:nth-child(6n+2) .nav-list-icon{background:var(--blu-chiaro);color:var(--blu-scuro)}.nav-list li:nth-child(6n+3) .nav-list-icon{background:var(--ambra-chiaro);color:var(--ambra-scuro)}.nav-list li:nth-child(6n+4) .nav-list-icon{background:var(--viola-chiaro);color:var(--viola-scuro)}.nav-list li:nth-child(6n+5) .nav-list-icon{background:var(--rosa-chiaro);color:var(--rosa)}.nav-list-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:var(--verde-chiaro);color:var(--verde-scuro);flex-shrink:0}.nav-list-label{flex:1;font-size:15px;font-weight:600}.nav-list-disabled li{cursor:default;opacity:.7}.nav-list-disabled li:hover{background:none}.nav-list-disabled .nav-list-icon{background:var(--bordo);color:var(--testo-secondario)}.chevron{color:var(--testo-secondario)}.activity-items{list-style:none;margin:0;padding:0}.activity-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--bordo);font-size:14px}.activity-item:last-child{border-bottom:none}.activity-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--verde-chiaro);color:var(--verde-scuro);flex-shrink:0}.activity-time{color:var(--testo-secondario);font-size:12px;margin-top:2px}.note-card.pinned{background:var(--ambra-chiaro);border-color:var(--ambra)}.note-content{font-size:14px;white-space:pre-wrap;margin:8px 0}.note-actions{display:flex;gap:6px}.hint{font-size:12px;color:var(--testo-secondario);margin:0}.countdown-items{list-style:none;margin:0;padding:0}.countdown-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--bordo);cursor:pointer}.countdown-item:last-child{border-bottom:none}.countdown-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;background:var(--viola-chiaro);color:var(--viola-scuro);flex-shrink:0}.countdown-body{flex:1}.countdown-title{font-size:15px;font-weight:600}.countdown-date{font-size:13px;color:var(--testo-secondario);text-transform:capitalize}.countdown-days{font-size:13px;font-weight:700;color:var(--viola-scuro);white-space:nowrap}.together-items{list-style:none;margin:0;padding:0}.together-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--bordo);cursor:pointer}.together-item:last-child{border-bottom:none}.together-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--verde);margin-top:2px}.together-body{flex:1}.together-name{font-size:15px;font-weight:600}.together-item.done .together-name{text-decoration:line-through;color:var(--testo-secondario)}.together-notes{font-size:13px;color:var(--testo-secondario);margin-top:2px}.together-meta{display:flex;gap:10px;align-items:center;margin-top:6px;font-size:13px}.together-meta a{color:var(--verde-scuro);font-weight:600}.stars{color:var(--ambra-scuro);letter-spacing:1px}.diet-meal.current{background:var(--verde-chiaro);border-color:var(--verde)}.diet-blocks{list-style:none;margin:0;padding:0}.diet-block{padding:8px 0;border-bottom:1px solid var(--bordo);font-size:14px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.diet-block:last-child{border-bottom:none}.diet-sep{color:var(--testo-secondario);margin:0 4px}.diet-alt{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.diet-add-alt{font-size:13px}.diet-del{font-size:12px;padding:2px 4px}.diet-info{font-size:13px;padding:2px 4px}.macro-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:4px;flex-shrink:0}.macro-dot.verdura{background:var(--verde)}.macro-dot.proteine{background:var(--rosso)}.macro-dot.carboidrati{background:var(--ambra-scuro)}.macro-dot.grassi{background:#d6b400}.macro-dot.frutta{background:var(--rosa)}.macro-dot.altro{background:var(--blu)}.macro-legend{display:flex;flex-wrap:wrap;gap:8px 14px;padding:0 20px 14px}.macro-legend-item{display:inline-flex;align-items:center;font-size:12px;color:var(--testo-secondario)}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.diet-block-picker{border-top:1px solid var(--bordo);padding:10px 0}.block-label{font-size:12px;color:var(--testo-secondario);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.radio-row{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--testo);padding:4px 0}.radio-row input{width:18px;height:18px;accent-color:var(--verde)}body.modal-open{overflow:hidden}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e143280;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:1000}.modal{background:var(--superficie);width:100%;max-width:480px;max-height:88vh;overflow-y:auto;border-radius:26px 26px 0 0;box-shadow:0 -16px 40px #2814502e;padding:20px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-header h2{margin:0;font-size:18px}.modal-close{background:none;border:none;line-height:1;color:var(--testo-secondario);cursor:pointer;padding:6px;display:inline-flex;border-radius:999px;transition:background .12s ease}.modal-close:hover{background:var(--bordo)}.modal-form{display:flex;flex-direction:column;gap:12px}.modal-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--testo-secondario);flex:1}.modal-form label.checkbox-row{flex-direction:row;align-items:center;gap:8px;font-size:14px;color:var(--testo)}.modal-form input[type=text],.modal-form input[type=date],.modal-form input[type=time],.modal-form input[type=tel],.modal-form select,.modal-form textarea{font-size:15px;padding:10px 12px;border-radius:12px;border:1px solid var(--bordo);font-family:inherit;color:var(--testo);width:100%;letter-spacing:normal;text-align:left;max-width:none}.modal-form input[type=text]:focus,.modal-form input[type=date]:focus,.modal-form input[type=time]:focus,.modal-form input[type=tel]:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-chiaro)}.modal-form textarea{resize:vertical}.modal-form .form-row{display:flex;gap:10px}.modal-form button.primary{max-width:none}button.secondary{background:var(--verde-chiaro);color:var(--verde-scuro);border:none;border-radius:var(--radius);padding:12px;font-size:15px;font-weight:700;cursor:pointer;transition:transform .12s ease,background .12s ease}button.secondary:active{transform:scale(.98)}button.secondary.danger{background:var(--rosso-chiaro);color:var(--rosso)}.cal-toolbar{padding:14px 20px 8px}.cal-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.cal-nav-btn{width:36px;height:36px;flex-shrink:0;border-radius:999px;border:1px solid var(--bordo);background:var(--superficie);color:var(--testo-secondario);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.cal-nav-btn:hover{background:var(--verde-chiaro);color:var(--verde-scuro);border-color:var(--verde-chiaro)}.cal-title{flex:1;min-width:0;text-align:center;font-size:16px;font-weight:800;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}.cal-toolbar-bottom{display:flex;align-items:center;gap:8px}.cal-view-switch{display:flex;gap:6px;flex:1;min-width:0}.cal-view-switch .pill{flex:1;text-align:center;white-space:nowrap}.cal-today-btn{flex-shrink:0}.cal-legend{display:flex;gap:14px;flex-wrap:wrap;padding:0 20px 12px;font-size:12px;color:var(--testo-secondario)}.cal-legend-item{display:inline-flex;align-items:center;gap:5px}.cal-legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.calendar-container{padding:0 12px 20px;font-size:13px}.fc{--fc-border-color: var(--bordo);--fc-today-bg-color: var(--verde-chiaro)}.fc-theme-standard .fc-list{border:none}.fc-list-day-cushion{background:var(--crema)!important;padding:10px 4px!important;font-weight:800;font-size:13px;text-transform:capitalize;color:var(--testo-secondario)}.fc-list-table td{border-color:var(--bordo)}.fc-list-event{cursor:pointer}.fc-list-event:hover td{background:var(--verde-chiaro)}.fc-list-event-dot{border-width:5px!important}.fc-list-event-dot.fc-list-event-icon-glyph{width:24px;height:24px;border:none!important;display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;border-radius:50%;background:var(--crema);color:#000}.fc-list-event td{vertical-align:middle!important}.fc-list-event-time{font-size:13px;color:var(--testo-secondario);white-space:nowrap}.fc-list-event-title{font-size:15px;font-weight:600;color:#000}.fc-list-participant{font-weight:600;font-size:15px}.fc-list-empty{background:transparent!important;padding:48px 20px!important}.fc-list-empty-cushion{font-size:14px;color:var(--testo-secondario)}.fc-daygrid-event{margin-top:0!important}.fc-daygrid-event{background:transparent!important;border:none!important;padding:0!important}.fc-event-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin:0 auto 0 0;border-radius:50%;color:#fff}.fc-event-dot{display:block;width:8px;height:8px;margin:5px auto;border-radius:50%}.category-select-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px;padding:10px 12px;border-radius:12px;border:1px solid var(--bordo);background:var(--superficie);color:var(--testo);font-family:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease}.category-select-btn:hover{border-color:var(--verde)}.category-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-select-value.placeholder{color:var(--testo-secondario)}.category-select-chevron{flex-shrink:0;color:var(--testo-secondario);transform:rotate(90deg)}.category-picker-modal{display:flex;flex-direction:column;max-height:80vh}.category-picker-modal input.category-search{font-size:15px;letter-spacing:normal;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--bordo);margin-bottom:10px;max-width:none;flex-shrink:0;font-family:inherit}.category-picker-modal input.category-search:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px var(--verde-chiaro)}.category-list{overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:2px 8px;padding-bottom:4px}.category-row{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;padding:8px 6px;border-radius:12px;font-size:14px;font-weight:600;color:var(--testo);text-align:left;cursor:pointer;transition:background .12s ease}.category-row:hover,.category-row:active{background:var(--crema)}.category-row-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;font-size:15px;flex-shrink:0;background:var(--bordo)}.category-row-add{grid-column:1 / -1}.category-row[data-group=sport] .category-row-icon{background:var(--blu-chiaro);color:var(--blu-scuro)}.category-row[data-group=beauty] .category-row-icon{background:var(--rosa-chiaro);color:var(--rosa-scuro)}.category-row[data-group=errand] .category-row-icon{background:var(--ambra-chiaro);color:var(--ambra-scuro)}.category-row[data-group=social] .category-row-icon{background:var(--viola-chiaro);color:var(--viola-scuro)}.category-row-add .category-row-icon{background:var(--verde-chiaro);color:var(--verde-scuro)}.category-row-add .category-row-label{color:var(--verde-scuro)}.location-input-row{display:flex;align-items:center;gap:4px}.location-input-row input[type=text]{flex:1;min-width:0;width:auto}.location-input-row .icon-button{flex-shrink:0;border:1px solid var(--bordo);border-radius:10px}.location-suggestions{display:flex;flex-direction:column;margin-top:6px}.location-suggestion{text-align:left;border:none;border-bottom:1px solid var(--bordo);background:var(--superficie);padding:9px 10px;font-size:13px;color:var(--testo);cursor:pointer}.location-suggestion:hover,.location-suggestion:active{background:var(--verde-chiaro)}.location-favorites{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.location-favorites:empty{margin-top:0}.location-fav-chip{border:1px solid var(--bordo);background:var(--superficie);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--testo-secondario);cursor:pointer;transition:background .12s ease,border-color .12s ease}.location-fav-chip:hover,.location-fav-chip:active{background:var(--verde-chiaro);border-color:var(--verde-chiaro);color:var(--verde-scuro)}.craving-form{display:flex;gap:8px}.craving-form input.craving-input{flex:1;min-width:0;width:auto;max-width:none;padding:12px 14px;border-radius:12px;border:1px solid var(--bordo);font-size:15px;letter-spacing:normal;text-align:left;font-family:inherit}.craving-form input.craving-input::placeholder{color:var(--testo-secondario)}.craving-form .craving-submit{width:46px;height:46px;max-width:none;flex-shrink:0;padding:0;border-radius:12px;display:flex;align-items:center;justify-content:center}.fab{position:fixed;bottom:106px;right:max(20px,calc(50% - 220px));width:56px;height:56px;border-radius:50%;background:var(--gradiente-viola);color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px -8px #7c5cff8c;cursor:pointer;z-index:50;transition:transform .12s ease,filter .12s ease}.fab:hover{filter:brightness(1.06)}.fab:active{transform:scale(.94)}header.top{align-items:center}.top-right{display:flex;align-items:center;gap:12px}.top-icon-button{width:38px;height:38px;border:none;border-radius:50%;background:#ffffff38;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.top-icon-button:active{background:#ffffff5c}.settings-actions{display:flex;gap:10px;margin-top:18px}.summary-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin:12px 0}.summary-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:12px;background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--radius);box-shadow:var(--ombra-sm);font:inherit;font-size:13px;line-height:1.35;color:var(--testo);text-align:left;cursor:pointer}.summary-card:active{transform:scale(.99)}.summary-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--c-chiaro);color:var(--c)}.summary-text{flex:1}.summary-text strong{font-weight:800;color:var(--c)}.summary-rosa{--c: var(--rosa-scuro);--c-chiaro: var(--rosa-chiaro)}.summary-viola{--c: var(--viola-scuro);--c-chiaro: var(--viola-chiaro)}.summary-ambra{--c: var(--ambra-scuro);--c-chiaro: var(--ambra-chiaro)}.summary-blu{--c: var(--blu-scuro);--c-chiaro: var(--blu-chiaro)}.summary-verde{--c: var(--verde-scuro);--c-chiaro: var(--verde-chiaro)}.craving-status{font-size:13px;color:var(--testo-secondario)}.craving-status:not(:empty){margin-top:8px}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px;margin-top:12px}.shop-tile{position:relative;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 10px 10px;background:var(--superficie);border:1px solid var(--bordo);border-radius:var(--radius);box-shadow:var(--ombra-sm);color:var(--ambra-scuro)}.shop-main{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;justify-content:center;width:100%;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.shop-icon{display:flex;align-items:center;justify-content:center}.shop-name{font-size:14px;font-weight:700;color:var(--testo);text-align:center;line-height:1.2}.shop-note{width:100%;border:none;border-bottom:1px dashed var(--bordo);border-radius:0;background:transparent;padding:4px 2px;font-size:12px;text-align:center;color:var(--testo-secondario)}.shop-note:focus{outline:none;border-bottom-color:var(--ambra-scuro)}.shop-delete{position:absolute;top:6px;right:6px;width:24px;height:24px;border:none;border-radius:50%;background:var(--crema);color:var(--testo-secondario);display:flex;align-items:center;justify-content:center;cursor:pointer}.shop-tile.checked{opacity:.5}.shop-tile.checked .shop-name{text-decoration:line-through}.shop-add{border:2px dashed var(--ambra-scuro);background:#ffffff8c;font:inherit;cursor:pointer;box-shadow:none}.top-date{font-weight:600;font-size:.85em;opacity:.9}.top-icon-button{position:relative}.top-badge{position:absolute;top:7px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--rosso);border:2px solid #fff}.top-badge[hidden]{display:none}.notif-push{margin-bottom:12px}.notif-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow-y:auto}.notif-item{padding:10px 0;border-bottom:1px solid var(--bordo)}.notif-item:last-child{border-bottom:none}.notif-text{font-size:14px;font-weight:600}.notif-meta{font-size:12px;color:var(--testo-secondario);margin-top:2px}.summary-list:empty{display:none}.todo-item{align-items:flex-start;gap:12px}.todo-item .todo-check{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;border:2px solid var(--bordo);border-radius:7px;background:var(--superficie);cursor:pointer;display:grid;place-content:center}.todo-item .todo-check:checked{background:var(--verde);border-color:var(--verde)}.todo-item .todo-check:checked:after{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.todo-body{flex:1;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:15px}.todo-who{font-size:12px;font-weight:700;color:var(--viola-scuro)}.todo-right{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-top:-2px}.todo-card{padding:10px 14px 12px}.todo-card.done .todo-row{opacity:.55}.todo-card.done .todo-title{text-decoration:line-through;color:var(--testo-secondario)}.todo-top{display:flex;justify-content:flex-end;gap:6px;margin-bottom:8px}.todo-row{display:flex;align-items:flex-start;gap:12px}.todo-card .todo-check{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;border:2px solid var(--bordo);border-radius:7px;background:var(--superficie);cursor:pointer;display:grid;place-content:center}.todo-card .todo-check:checked{background:var(--verde);border-color:var(--verde)}.todo-card .todo-check:checked:after{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.hotel-strip{display:flex;align-items:center;justify-content:space-between;height:20px;width:100%;padding:0 2px}.hotel-strip.is-start{border-top-left-radius:10px;border-bottom-left-radius:10px}.hotel-strip.is-end{border-top-right-radius:10px;border-bottom-right-radius:10px}.hotel-strip-icon{width:16px;height:16px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center}.expense-star{color:var(--ambra-scuro);fill:currentColor;vertical-align:-2px}.evidenza-card{border-color:var(--ambra)}header.top{position:relative;overflow:hidden;padding:30px 22px 26px;border-radius:0 0 36px 36px;background:radial-gradient(circle at 10% 28%,rgba(255,255,255,.4) 0 4px,transparent 5px),radial-gradient(circle at 27% 82%,rgba(255,255,255,.3) 0 3px,transparent 4px),radial-gradient(circle at 55% 18%,rgba(255,255,255,.3) 0 5px,transparent 6px),radial-gradient(circle at 70% 85%,rgba(255,255,255,.25) 0 3px,transparent 4px),linear-gradient(120deg,var(--h1, #12c98f),var(--h2, #2f9bff))}header.top:after{content:"";position:absolute;right:10px;top:50%;width:104px;height:104px;transform:translateY(-50%) rotate(-10deg);background:var(--deco) center / contain no-repeat;opacity:.3;pointer-events:none}header.top>*{position:relative;z-index:1}header.top h1{font-size:27px;font-weight:800;letter-spacing:-.02em;text-shadow:0 2px 0 rgba(0,0,0,.1)}[data-page=oggi] header.top{--h1: #12c98f;--h2: #2f9bff;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11.5 12 4l8 7.5'/%3E%3Cpath d='M6 10v9a1 1 0 0 0 1 1h3v-6h4v6h3a1 1 0 0 0 1-1v-9'/%3E%3C/svg%3E")}[data-page=calendario] header.top{--h1: #2f9bff;--h2: #7c5cff;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.2'/%3E%3Cpath d='M16 3v4M8 3v4M3.5 10h17'/%3E%3C/svg%3E")}[data-page=spesa] header.top{--h1: #ffab00;--h2: #ff4d94;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9.5' cy='20' r='1.4'/%3E%3Ccircle cx='17.5' cy='20' r='1.4'/%3E%3Cpath d='M3 4h2.2l2.1 11.6a2 2 0 0 0 2 1.6h7.6a2 2 0 0 0 2-1.6L20.5 8H6'/%3E%3C/svg%3E")}[data-page=todo] header.top{--h1: #7c5cff;--h2: #ff3da5;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3.2'/%3E%3Cpath d='M8.3 12.3 11 15l5-5.5'/%3E%3C/svg%3E")}[data-page=scadenze] header.top{--h1: #ff4d94;--h2: #ff8a3d;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21S5.5 14.7 5.5 10a6.5 6.5 0 0 1 13 0c0 4.7-6.5 11-6.5 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E")}[data-page=note] header.top{--h1: #2f9bff;--h2: #12c98f;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.2h6.8L18 7.4V20a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4.2a1 1 0 0 1 1-1Z'/%3E%3Cpath d='M13.5 3.2v4.2H18M8.5 12h7M8.5 15.5h7M8.5 8.5h3'/%3E%3C/svg%3E")}[data-page=contoallarovescia] header.top{--h1: #7c5cff;--h2: #ff4d94;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h11M6.5 21h11M7.5 3c0 4.3 3 5.3 4.5 6.5-1.5 1.2-4.5 2.2-4.5 6.5M16.5 3c0 4.3-3 5.3-4.5 6.5 1.5 1.2 4.5 2.2 4.5 6.5'/%3E%3C/svg%3E")}[data-page=insieme] header.top{--h1: #12c98f;--h2: #ffc21a;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='3.2'/%3E%3Ccircle cx='8.6' cy='8.6' r='1.15' fill='currentColor' stroke='none'/%3E%3Ccircle cx='15.4' cy='8.6' r='1.15' fill='currentColor' stroke='none'/%3E%3Ccircle cx='8.6' cy='15.4' r='1.15' fill='currentColor' stroke='none'/%3E%3Ccircle cx='15.4' cy='15.4' r='1.15' fill='currentColor' stroke='none'/%3E%3Ccircle cx='12' cy='12' r='1.15' fill='currentColor' stroke='none'/%3E%3C/svg%3E")}[data-page=dieta] header.top{--h1: #12c98f;--h2: #8bd63a;--deco: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Ccircle cx='12' cy='12' r='2' stroke-width='1.4'/%3E%3Cpath d='M3 3v5.2a1.5 1.5 0 0 0 3 0V3M4.5 3v18M20 21V3c-2 1-3 3.5-3 6.5h3'/%3E%3C/svg%3E")}.todo-who-badge{color:var(--viola-scuro);border-color:var(--viola-chiaro);background:var(--viola-chiaro);font-weight:700}.todo-bottom{display:flex;justify-content:flex-end;margin-top:8px}:root{--gradiente-selezione: linear-gradient(120deg, #2f8fe0 0%, #ff3da5 100%)}.modal-overlay{align-items:center;padding:16px}.modal{border-radius:26px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);box-shadow:0 24px 60px #2814504d;animation:modal-pop .16s ease-out}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}.modal-form .form-row{display:flex;gap:10px;min-width:0}.modal-form .form-row>label{flex:1 1 0;min-width:0}.modal-form input[type=date],.modal-form input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;background:var(--superficie)}.modal-form input[type=date]::-webkit-date-and-time-value,.modal-form input[type=time]::-webkit-date-and-time-value{text-align:left}.modal-form select,.category-select-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--gradiente-selezione);color:#fff;font-weight:700;min-height:44px;box-shadow:0 6px 14px -8px #ff3da599}.modal-form select{padding-right:38px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>"),var(--gradiente-selezione);background-repeat:no-repeat,no-repeat;background-position:right 12px center,center;background-size:18px 18px,100% 100%}.modal-form select option{color:var(--testo);background:#fff}.modal-form select:focus,.category-select-btn:hover,.category-select-btn:focus{border:none;outline:none;box-shadow:0 0 0 3px #ff3da547}.category-select-value.placeholder,.category-select-chevron{color:#ffffffd9}.modal-form input[type=checkbox]{accent-color:#ff3da5}.cal-title,.cal-legend,.cal-legend-item{color:#fff}.cal-title{text-shadow:0 1px 6px rgba(0,0,0,.45)}.calendar-container{background:var(--superficie);margin:0 16px 20px;padding:10px 8px 14px;border-radius:var(--radius);box-shadow:var(--ombra-md)}.toolbar,.app-content>p{color:#fff}.cal-today-btn{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.45)}.todo-wrap{margin:0 20px 14px}.todo-labels{display:flex;gap:6px;padding:0 14px;margin-bottom:-1px;position:relative;z-index:1}.todo-label{font-size:11px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:4px 10px 5px;border-radius:10px 10px 0 0;color:#fff;background:var(--testo-secondario)}.todo-label.priority-alta{background:var(--rosso)}.todo-label.priority-normale{background:var(--blu)}.todo-label.priority-bassa{background:var(--verde)}.todo-label-who{background:var(--viola)}.todo-wrap .todo-card{margin:0;padding:0;overflow:hidden}.todo-wrap .todo-row{padding:14px}.todo-footer{padding:8px 14px;background:#e9e7ef;color:var(--testo-secondario);font-size:12px;font-weight:700;text-align:right;border-top:1px solid var(--bordo)}.todo-footer.overdue{background:var(--rosso-chiaro);color:var(--rosso)}.location-fav-item{display:inline-flex;align-items:stretch;border:1px solid var(--bordo);background:var(--superficie);border-radius:999px;overflow:hidden}.location-fav-item .location-fav-chip{border:none;background:transparent;border-radius:0;padding-right:6px}.location-fav-remove{border:none;background:transparent;color:var(--testo-secondario);padding:0 9px 0 4px;display:inline-flex;align-items:center;cursor:pointer}.location-fav-remove:hover,.location-fav-remove:active{background:var(--rosso-chiaro);color:var(--rosso)}.todo-labels{justify-content:flex-end}.dialog-overlay{z-index:1100}.modal.dialog{max-width:340px;padding:24px 22px 20px;text-align:center}.dialog-title{margin:0 0 8px;font-size:18px}.dialog-message{margin:0 0 20px;font-size:15px;line-height:1.45;color:var(--testo);white-space:pre-line}.dialog-buttons{display:flex;gap:10px}.dialog-buttons button{flex:1;max-width:none;padding:12px;font-size:15px}.dialog-buttons button:focus{outline:none;box-shadow:0 0 0 3px #ff3da54d}[data-page=oggi] header.top:after{display:none}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#1a1245;overscroll-behavior-y:none}@supports (-webkit-touch-callout: none){body{background-attachment:scroll}}body{-webkit-touch-callout:none;touch-action:manipulation}#app{min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app-shell,.screen-center{min-height:100vh;min-height:100dvh}.app-content{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.fab{bottom:calc(106px + env(safe-area-inset-bottom))}input,select,textarea{font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--radius)}input[type=checkbox],input[type=radio]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=text]:not(.screen-center *),input[type=tel]:not(.screen-center *){letter-spacing:normal}.modal-overlay{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.modal{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.icon-button,.modal-close,.cal-nav-btn{min-width:44px;min-height:44px;justify-content:center;align-items:center}@media (hover: none){button.primary:hover,button.primary.small:hover,.fab:hover{filter:none}}@media (max-width: 480px){.screen{padding:20px 16px}h1{font-size:26px}nav.bottom button{font-size:11px}.badge-outline,.todo-label{font-size:12px}.shopping-item,.todo-item,.together-item{min-height:52px;align-items:center}.todo-item{align-items:flex-start}.shopping-item input[type=checkbox],.together-item input[type=checkbox]{width:24px;height:24px}.todo-item .todo-check{flex-basis:26px;width:26px;height:26px;border-radius:8px}.toolbar{padding:4px 16px 14px}button.small{min-height:40px}.fab{width:60px;height:60px}.modal{padding:20px 18px}}@media (hover: none){.nav-list li:active,.together-item:active,.fc-list-event:active td{background:#7c5cff1a}}header.top{padding-top:calc(30px + env(safe-area-inset-top))}.screen-center{padding-top:calc(24px + env(safe-area-inset-top))}
