*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--body-font-family, "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif);font-size:var(--body-font-size, 14px);line-height:var(--body-line-height, 1.6);background:var(--page-bg, linear-gradient(135deg, var(--cf-surface), #ffffff));color:var(--cf-text);font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--body-font-family, "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif);font-weight:600;margin:0}h1{font-size:calc(var(--heading-font-size, 24px) * 1.5)}h2{font-size:calc(var(--heading-font-size, 24px) * 1.25)}h3{font-size:var(--heading-font-size, 24px)}h4{font-size:calc(var(--heading-font-size, 24px) * .9)}h5{font-size:calc(var(--heading-font-size, 24px) * .8)}h6{font-size:calc(var(--heading-font-size, 24px) * .7)}.page-header__title{font-size:calc(var(--heading-font-size, 24px) * .9);font-weight:700}p{font-size:var(--body-font-size, 14px);line-height:var(--body-line-height, 1.6);margin:0 0 1rem}small,.small{font-size:calc(var(--body-font-size, 14px) * .875)}.text-muted{color:var(--cf-text-muted)!important}.page-header__subtitle{margin:3px 0 0;font-size:13px;color:var(--cf-text-muted);font-weight:400}.card__title{font-size:14px;font-weight:600}.card__subtitle,.state-empty{font-size:12px;color:var(--cf-text-muted);font-weight:300}.table__head-cell{font-size:12px;font-weight:600;color:#4b5563}.table__cell{font-size:12px;font-weight:400}.button{font-size:12px;font-weight:500}.button--sm{font-size:11px}.btn-cf-primary{background-color:var(--btn-primary-bg);border:1px solid var(--btn-primary-bg);color:var(--btn-primary-text);font-size:13px;font-weight:500;border-radius:8px;padding:8px 16px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:all .15s ease}.btn-cf-primary:hover{background-color:var(--btn-primary-hover-bg);border-color:var(--btn-primary-hover-bg);color:var(--btn-primary-hover-text);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-cf-secondary{background-color:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-bg);color:var(--btn-secondary-text);font-size:13px;font-weight:500;border-radius:8px;padding:8px 16px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:all .15s ease}.btn-cf-secondary:hover{background-color:var(--btn-secondary-hover-bg);border-color:var(--btn-secondary-hover-bg);color:var(--btn-secondary-hover-text);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-cf-outline{background-color:transparent;border:1px solid var(--btn-outline-border);color:var(--btn-outline-text);font-size:13px;font-weight:500;border-radius:8px;padding:8px 16px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;transition:all .15s ease}.btn-cf-outline:hover{background-color:var(--btn-outline-hover-bg)!important;border-color:var(--btn-outline-hover-bg)!important;color:var(--btn-outline-hover-text)!important}.btn-cf-danger{background-color:var(--btn-danger-bg);border:1px solid var(--btn-danger-bg);color:var(--btn-danger-text);font-size:13px;font-weight:500;border-radius:8px;padding:8px 16px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;box-shadow:0 2px 4px #0000001a;transition:all .15s ease}.btn-cf-danger:hover{background-color:var(--btn-danger-hover-bg);border-color:var(--btn-danger-hover-bg);color:var(--btn-danger-hover-text);transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-cf-primary.btn-sm,.btn-cf-secondary.btn-sm,.btn-cf-outline.btn-sm,.btn-cf-danger.btn-sm{font-size:12px;padding:6px 12px}.btn-cf-primary.btn-lg,.btn-cf-secondary.btn-lg,.btn-cf-outline.btn-lg,.btn-cf-danger.btn-lg{font-size:14px;padding:10px 20px}.btn-cf-primary:active,.btn-cf-secondary:active,.btn-cf-danger:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.badge,.badge--soft{font-size:11px;font-weight:500}.user-badge__info{font-size:11px}.user-badge__name{font-weight:600}.user-badge__role{color:var(--cf-text-muted);font-weight:400}.text-watermark{font-weight:100;letter-spacing:.12em;text-transform:uppercase;opacity:.5}.metric-number{font-weight:800;font-size:28px}.maiuscolo{text-transform:uppercase}.testo20{font-size:20px}.layout{display:flex;min-height:100vh}.layout__main{flex:1 1 auto;display:flex;flex-direction:column;padding:20px;min-width:0}.layout__content{flex:1 1 auto;padding:20px}.layout__content .container-fluid{max-width:100%;padding-left:0;padding-right:0}.sidebar{width:var(--sidebar-width, 240px);background-color:var(--sidebar-bg, #063769)!important;color:var(--sidebar-text, #f9fafb)!important;padding:18px 16px 24px;display:flex;flex-direction:column;position:sticky;top:0}.sidebar__brand{display:flex;flex-direction:column;align-items:center;margin-bottom:26px}.sidebar__logo{max-width:130px;width:130px;height:auto;display:block;margin-bottom:20px}.sidebar__brand-text{text-align:center}.sidebar__brand-name{font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-text, #ffffff)}.sidebar__section-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text, #f9fafb);opacity:.7;margin:4px 0 10px}.sidebar__nav{list-style:none;padding:0;margin:0}.sidebar__item{margin-bottom:2px;width:100%}.sidebar__link{display:flex;align-items:center;width:100%;padding:9px 12px;border-radius:0;text-decoration:none;font-size:13px;font-weight:200;text-transform:uppercase;letter-spacing:.06em;color:var(--sidebar-text, #ffffff);background:transparent;transition:background .18s ease,color .18s ease}.sidebar__icon{display:inline-flex;align-items:center;justify-content:center;margin-right:.5rem;border-radius:999px;border:none;color:var(--cf-border-soft);padding:4px}.sidebar__icon svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.8}.sidebar__link:hover{background:var(--sidebar-hover-bg)!important}.sidebar__link:hover .sidebar__icon{background:transparent;color:var(--sidebar-text, #ffffff)}.sidebar__link--active,.sidebar__link.nav-dashboard-active,.sidebar__link.nav-clienti-active,.sidebar__link.nav-progetti-active,.sidebar__link.nav-todos-active,.sidebar__link.nav-calendar-active,.sidebar__link.nav-utenti-active,.sidebar__link.nav-settings-active{background:var(--sidebar-active-bg)!important;color:var(--sidebar-text, #ffffff);font-weight:700}.sidebar__link--active .sidebar__icon,.sidebar__link.nav-dashboard-active .sidebar__icon,.sidebar__link.nav-clienti-active .sidebar__icon,.sidebar__link.nav-progetti-active .sidebar__icon,.sidebar__link.nav-todos-active .sidebar__icon,.sidebar__link.nav-calendar-active .sidebar__icon,.sidebar__link.nav-utenti-active .sidebar__icon,.sidebar__link.nav-settings-active .sidebar__icon{background:var(--cf-accent);border:1px solid var(--cf-accent);color:var(--cf-accent-text, #ffffff)}.sidebar__footer{margin-top:auto;font-size:11px;opacity:.85}.sidebar__footer-text{display:block}.page-header{width:100%;background:var(--cf-beige-50);border-radius:12px;border:1px solid var(--cf-beige-200);margin-bottom:18px}.page-header__inner{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:16px}.page-header__left{display:flex;align-items:center;gap:12px}.page-header__icon{width:40px;height:40px;border-radius:999px;background:var(--cf-blue-300);border:1px solid var(--cf-blue-500);display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-header__icon svg{width:20px;height:20px;color:#fff;fill:none;stroke:currentColor}.page-header__title-wrapper{display:flex;flex-direction:column}.page-header__title{margin:0;font-size:20px;font-weight:700;color:var(--cf-blue-500)}.page-header__subtitle{margin:2px 0 0;font-size:13px;color:var(--cf-text-muted);font-weight:400}.page-header__right{display:flex;align-items:center;gap:10px}.page-header__icon-button{width:36px;height:36px;border-radius:999px;border:1px solid var(--cf-blue-200);background:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease}.page-header__icon-button svg{width:18px;height:18px;color:var(--cf-blue-500);fill:none;stroke:currentColor;stroke-width:1.8}.page-header__icon-button:hover{background:var(--cf-blue-50);border-color:var(--cf-blue-300);box-shadow:0 2px 6px #0f172a26;transform:translateY(-1px)}.page-header__icon-button--logout{border-color:#f8717180}.page-header__icon-button--logout span{color:#b91c1c}.page-header__icon-button--logout:hover{background:#fef2f2;border-color:#fecaca;box-shadow:0 2px 6px #f8717166}.page-header__user{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid transparent;background:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.page-header__user:hover{background:var(--cf-blue-50);border-color:var(--cf-blue-200);box-shadow:0 1px 3px #0f172a14}.page-header__user-avatar{width:32px;height:32px;border-radius:999px;background:var(--cf-blue-500);color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}.page-header__user-info{display:flex;flex-direction:column;align-items:flex-start}.page-header__user-name{font-size:13px;font-weight:600;color:var(--cf-blue-700);line-height:1.1}.page-header__user-role{font-size:11px;color:var(--cf-text-muted);font-weight:400}.user-cell{display:inline-flex;align-items:center;gap:6px}.user-cell__icon svg{width:16px;height:16px;color:var(--cf-blue-500);stroke-width:1.8}.card{background:var(--cf-card);border-radius:14px;padding:14px 16px;box-shadow:0 10px 30px #0f172a1a,0 1px 2px #0f172a1a;border:1px solid rgba(218,201,184,.7)}.card__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.badge--soft{padding:2px 8px;border-radius:999px;font-size:11px;background:#0b68bf0d;color:#0b68bf}.card__footer{margin-top:10px}.snapshot-list{list-style:none;padding:0;margin:0;font-size:13px}.snapshot-list__item{display:flex;justify-content:space-between;margin-bottom:8px}.snapshot-list__label{color:var(--cf-text-main)}.snapshot-list__value{font-weight:600}.badge--pill{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:999px;background-color:#eef2ff;color:#3730a3;font-size:11px;font-weight:500;min-width:90px;text-align:center;white-space:nowrap}.state-empty{padding:10px;font-size:13px;color:var(--cf-text-muted)}.table-wrapper{border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;margin-top:6px}.table{width:100%;border-collapse:collapse;background-color:#fff}.table__head{background-color:#f9fafb}.table__row{border-bottom:1px solid #e5e7eb}.table__head-cell,.table__cell{padding:8px 9px;font-size:12px;text-align:left}.table__row--hover:hover{background-color:#f3f4f6}.badge--status-potenziale{background-color:#e0f2ff;color:#0369a1}.badge--status-attivo{background-color:#dcfce7;color:#15803d}.badge--status-sospeso{background-color:#fef9c3;color:#a16207}.badge--status-chiuso{background-color:#fee2e2;color:#b91c1c}.badge--status-default{background-color:#e5e7eb;color:#374151}.bg-gradient--beige{background-image:radial-gradient(circle farthest-corner at 10% 20%,#dac9b8,#b09e8c 42.8%,#8b7d72 74.8%)}.bg-gradient--blue{background-image:linear-gradient(180deg,#063769 -33.6%,#001d3b 110.4%)}.text-muted{color:var(--cf-text-muted)}.icon-badge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;flex-shrink:0}.icon-badge--sm{width:32px;height:32px}.icon-badge--lg{width:48px;height:48px}.icon-badge svg{width:20px;height:20px;stroke-width:2}.icon-badge--sm svg{width:16px;height:16px}.icon-badge--lg svg{width:24px;height:24px}.icon-badge--primary{background-color:var(--cf-primary, #063769);color:#fff}.icon-badge--secondary{background-color:var(--cf-secondary-tint-2, #f0ede9);color:var(--cf-secondary, #8B7D72)}.icon-badge--accent{background-color:var(--cf-accent-tint-2, #f2eeea);color:var(--cf-accent, #B09E8C)}.icon-badge--success{background-color:#d1fae5;color:#065f46}.icon-badge--warning{background-color:#fef3c7;color:#92400e}.icon-badge--danger{background-color:#fee2e2;color:#991b1b}.color-palette-select{position:relative;width:100%}.color-palette-select__trigger{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid var(--cf-border);border-radius:var(--global-border-radius, 8px);cursor:pointer;font-size:14px;transition:border-color .2s}.color-palette-select__trigger:hover{border-color:var(--cf-primary)}.color-palette-select__swatch{width:24px;height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.color-palette-select__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid var(--cf-border);border-radius:var(--global-border-radius, 8px);box-shadow:0 4px 12px #00000026;max-height:400px;overflow-y:auto;z-index:1000}.color-palette-select__group{padding:8px 0}.color-palette-select__group:not(:last-child){border-bottom:1px solid var(--cf-border)}.color-palette-select__group-label{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--cf-text-muted);letter-spacing:.05em}.color-palette-select__option{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;transition:background-color .15s}.color-palette-select__option:hover{background-color:var(--cf-surface)}.color-palette-select__option--selected{background-color:var(--cf-primary-tint-3);font-weight:500}.welcome-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.welcome-hero{position:relative;overflow:hidden}.welcome-hero__image{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}.welcome-main{display:flex;align-items:flex-start;justify-content:center;padding:32px 32px 40px;background-color:var(--cf-surface)}.welcome-main__inner{width:100%;max-width:700px;display:flex;margin:40px auto 0;flex-direction:column;align-items:center;gap:24px}.welcome-header{width:100%;text-align:center;display:flex;flex-direction:column;align-items:center}.welcome-header__logo{display:block;max-width:400px;height:auto;margin:0 auto 200px}.welcome-header__tagline-top{font-size:50px;font-weight:800;text-transform:uppercase;color:var(--cf-secondary);margin-bottom:6px}.welcome-header__tagline-main{font-size:20px;font-weight:400;text-transform:uppercase;color:var(--cf-secondary);margin-bottom:6px}.welcome-header__tagline-sub{font-size:13px;color:var(--cf-text-muted);max-width:520px;margin:0 auto}.welcome-card{width:100%;max-width:540px;background-color:#fff;border-radius:18px;padding:22px 24px;box-shadow:0 24px 60px #0f172a2e,0 2px 6px #0f172a29;border:1px solid rgba(218,201,184,.9)}.welcome-card__header{margin-bottom:16px}.welcome-card__app-name{font-size:15px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--cf-primary)}.welcome-card__subtitle{margin-top:4px;font-size:12px;color:var(--cf-text-muted)}.welcome-card__alert{font-size:12px;padding:6px 8px;margin-bottom:10px}.welcome-form{display:flex;flex-direction:column;gap:14px}.welcome-form__group{display:flex;flex-direction:column;gap:4px}.welcome-form__label{font-size:12px;font-weight:500;color:var(--cf-text-main)}.welcome-form__control{border-radius:999px;border:1px solid var(--cf-border-soft);padding:7px 14px;font-size:13px;line-height:1.4;color:var(--cf-text-main);background-color:#fdfdfd;width:100%}.welcome-form__control::-moz-placeholder{font-size:12px;color:#9ca3af}.welcome-form__control::placeholder{font-size:12px;color:#9ca3af}.welcome-form__control:focus{outline:none;border-color:var(--cf-primary);box-shadow:0 0 0 1px var(--cf-primary),0 0 0 4px #0637692e}.welcome-form__footer{margin-top:4px;display:flex;align-items:center;justify-content:space-between;gap:12px}.welcome-form__remember{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--cf-text-muted)}.welcome-form__checkbox{width:13px;height:13px}.welcome-form__submit{padding-inline:18px;white-space:nowrap}.welcome-footer{margin-top:16px;font-size:11px;color:var(--cf-text-muted);display:flex;justify-content:space-between;gap:10px;width:100%}.welcome-footer a{color:var(--cf-primary);text-decoration:none;font-weight:500}.welcome-footer a:hover{text-decoration:underline}@media(max-width:960px){.layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;align-items:center;overflow-x:auto}.layout__main{padding:14px}.layout__content{padding:0 10px 10px}.page-header__inner{flex-direction:column;align-items:flex-start}.page-header__right{align-self:stretch;justify-content:flex-end}.page-header__title{font-size:18px}.welcome-layout{grid-template-columns:1fr}.welcome-hero{display:none}.welcome-main{padding:32px 18px}.welcome-main__inner{max-width:420px}}@media(max-width:480px){.welcome-card{padding:18px 16px;border-radius:14px}.welcome-card__app-name{font-size:14px}}.projects-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.projects-header__stats{display:flex;gap:16px}.projects-header__actions{display:flex;gap:12px}.stat-card{background:var(--cf-card);border:1px solid var(--cf-border-soft);border-radius:12px;padding:20px 24px;text-align:center;transition:all .2s ease;cursor:default}.stat-card--action{cursor:pointer;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-card--action:hover{border-color:var(--cf-primary);box-shadow:0 4px 12px #0637691a;transform:translateY(-2px)}.stat-card__value{font-size:32px;font-weight:700;color:var(--cf-primary);line-height:1}.stat-card__label{font-size:13px;color:var(--cf-text-muted);margin-top:8px;font-weight:500}.stat-card__icon{margin-bottom:8px}.stat-card__icon svg{stroke:var(--cf-primary)}.stat-card--pending .stat-card__value{color:#f59e0b}.stat-card--in-progress .stat-card__value{color:#3b82f6}.stat-card--completed .stat-card__value{color:#10b981}.stat-card--overdue .stat-card__value{color:#ef4444}.stat-card--total .stat-card__value{color:var(--cf-primary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-bottom:32px}.project-card{background:var(--cf-card);border:1px solid var(--cf-border-soft);border-radius:12px;padding:24px;transition:all .2s ease;display:flex;flex-direction:column}.project-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.project-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-card__type{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}.project-card__type--web{background:#dbeafe;color:#1e40af}.project-card__type--brand{background:#ddd6fe;color:#5b21b6}.project-card__status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px}.project-card__status--active{background:#d1fae5;color:#065f46}.project-card__status--potential{background:#e0e7ff;color:#3730a3}.project-card__status--on_hold{background:#fef3c7;color:#92400e}.project-card__status--completed{background:#e5e7eb;color:#374151}.project-card__status--cancelled{background:#fee2e2;color:#991b1b}.project-card__body{flex:1;margin-bottom:16px}.project-card__title{font-size:18px;font-weight:600;margin-bottom:12px;color:var(--cf-text-main)}.project-card__title a{color:inherit;text-decoration:none}.project-card__cliente{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--cf-text-muted);margin-bottom:12px}.project-card__cliente svg{flex-shrink:0}.project-card__description{font-size:14px;color:var(--cf-text-muted);line-height:1.6;margin:0}.project-card__footer{margin-bottom:16px;padding-top:16px;border-top:1px solid var(--cf-border-soft)}.project-card__dates{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.project-card__date{font-size:13px;color:var(--cf-text-muted)}.project-card__date-label{font-weight:500;margin-right:4px}.project-card__budget{font-size:14px;font-weight:600;color:var(--cf-primary)}.project-card__actions{display:flex;gap:8px}.project-details__row{padding:16px 0;border-bottom:1px solid var(--cf-border-soft)}.project-details__row:last-child{border-bottom:none}.project-details__label{font-size:13px;font-weight:600;color:var(--cf-text-muted);margin-bottom:8px}.project-details__value{font-size:15px;color:var(--cf-text-main)}.stats-list{display:flex;flex-direction:column;gap:12px}.stats-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--cf-border-soft)}.stats-item:last-child{border-bottom:none}.stats-label{font-size:14px;color:var(--cf-text-muted)}.stats-value{font-size:18px;font-weight:600;color:var(--cf-text-main)}.todos-list{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.todo-card{background:var(--cf-card);border:1px solid var(--cf-border-soft);border-left:4px solid var(--cf-border-soft);border-radius:8px;padding:20px;display:flex;gap:16px;align-items:flex-start;transition:all .2s ease}.todo-card:hover{box-shadow:0 2px 8px #0000000d}.todo-card--urgent{border-left-color:#dc2626}.todo-card--high{border-left-color:#f97316}.todo-card--medium{border-left-color:#3b82f6}.todo-card--low{border-left-color:#9ca3af}.todo-card--completed{opacity:.7;background:#f9fafb}.todo-card--overdue{background:#fef2f2;border-color:#fecaca}.todo-card__checkbox{flex-shrink:0;padding-top:2px}.todo-checkbox{width:24px;height:24px;border:2px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.todo-checkbox:hover{border-color:var(--cf-primary)}.todo-checkbox--checked{background:#10b981;border-color:#10b981}.todo-checkbox--checked svg{stroke:#fff}.todo-card__content{flex:1;min-width:0}.todo-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.todo-card__title{font-size:16px;font-weight:600;margin:0;color:var(--cf-text-main)}.todo-card__title a{color:inherit;text-decoration:none}.todo-card__title a:hover{color:var(--cf-primary)}.todo-card__badges{display:flex;gap:6px;flex-shrink:0}.todo-card__description{font-size:14px;color:var(--cf-text-muted);line-height:1.6;margin:0 0 12px}.todo-card__meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--cf-text-muted)}.todo-card__meta svg{vertical-align:middle;margin-right:4px}.todo-card__project a{color:var(--cf-primary);text-decoration:none;font-weight:500}.todo-card__project a:hover{text-decoration:underline}.todo-card__actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.todo-item{background:var(--cf-card);border:1px solid var(--cf-border-soft);border-left:4px solid var(--cf-border-soft);border-radius:8px;padding:16px;display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.todo-item:last-child{margin-bottom:0}.todo-item--urgent{border-left-color:#dc2626}.todo-item--high{border-left-color:#f97316}.todo-item--medium{border-left-color:#3b82f6}.todo-item--low{border-left-color:#9ca3af}.todo-item--completed{opacity:.7;background:#f9fafb}.todo-item__checkbox{flex-shrink:0}.todo-item__content{flex:1;min-width:0}.todo-item__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}.todo-item__title{font-size:15px;font-weight:500;margin:0;color:var(--cf-text-main);text-decoration:none}.todo-item__title:hover{color:var(--cf-primary)}.todo-item__badges{display:flex;gap:6px;flex-shrink:0}.todo-item__description{font-size:13px;color:var(--cf-text-muted);margin:0 0 8px;line-height:1.5}.todo-item__meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--cf-text-muted)}.todo-item__meta svg{vertical-align:middle;margin-right:4px}.todo-item__actions{flex-shrink:0}.todo-details__row{padding:16px 0;border-bottom:1px solid var(--cf-border-soft)}.todo-details__row:last-child{border-bottom:none}.todo-details__label{font-size:13px;font-weight:600;color:var(--cf-text-muted);margin-bottom:8px}.todo-details__value{font-size:15px;color:var(--cf-text-main)}.badge-priority{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.3px}.badge-priority--urgent{background:#fecaca;color:#991b1b}.badge-priority--high{background:#ffedd5;color:#c2410c}.badge-priority--medium{background:#fef9c3;color:#a16207}.badge-priority--low{background:#d1fae5;color:#065f46}.badge-priority--none{background:#dbeafe;color:#1e40af}.badge-overdue{background:#fee2e2;color:#991b1b;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.3px}.todos-filters-section .card{background:var(--cf-card);border:1px solid var(--cf-border-soft)}.empty-state__icon{margin-bottom:24px;opacity:.3}.empty-state__icon svg{stroke:var(--cf-primary)}.empty-state__title{font-size:20px;font-weight:600;color:var(--cf-text-main);margin-bottom:8px}.empty-state__text{font-size:15px;color:var(--cf-text-muted);margin:0}.form-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid var(--cf-border-soft)}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}.projects-header{flex-direction:column;align-items:stretch}.projects-header__stats{flex-wrap:wrap}.stat-card{flex:1;min-width:120px}.todo-card{flex-direction:column}.todo-card__actions{flex-direction:row;justify-content:flex-end}.todo-card__meta{flex-direction:column;gap:8px}}.calendar-widget{background:var(--cf-card);border:1px solid var(--cf-border-soft);border-radius:12px;overflow:hidden}.calendar-widget__header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--cf-border-soft);background:#fafafa}.calendar-widget__title h3{font-size:18px;font-weight:600;margin:0;color:var(--cf-text-main);text-transform:capitalize}.calendar-widget__actions{display:flex;gap:12px;align-items:center}.calendar-widget__nav{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid var(--cf-border-soft);background:#fff;color:var(--cf-text-muted);text-decoration:none;transition:all .2s}.calendar-widget__nav svg{width:16px;height:16px}.calendar-widget__nav:hover{background:var(--cf-primary);color:#fff;border-color:var(--cf-primary)}.calendar-widget__today{padding:6px 12px;font-size:13px;font-weight:500;color:var(--cf-primary);text-decoration:none;border:1px solid var(--cf-primary);border-radius:6px;transition:all .2s}.calendar-widget__today:hover{background:var(--cf-primary);color:#fff}.calendar-widget__grid{padding:20px 24px}.calendar-widget__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.calendar-widget__weekday{text-align:center;font-size:11px;font-weight:600;color:var(--cf-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 0}.calendar-widget__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-widget__day{aspect-ratio:1;padding:6px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;cursor:pointer;transition:background-color .2s}.calendar-widget__day:hover{background:#f9fafb}.calendar-widget__day--empty{background:transparent;cursor:default}.calendar-widget__day--today{background:var(--cf-accent);border:2px solid var(--cf-primary)}.calendar-widget__day--today .calendar-widget__day-number{color:var(--cf-primary);font-weight:700}.calendar-widget__day--past{opacity:.4}.calendar-widget__day--has-events{background:#f9fafb}.calendar-widget__day-number{font-size:13px;font-weight:500;color:var(--cf-text-main);margin-bottom:4px}.calendar-widget__day-events{display:flex;gap:3px;flex-wrap:wrap;justify-content:center;align-items:center}.calendar-widget__event-dot{width:6px;height:6px;border-radius:50%;cursor:pointer;transition:transform .2s}.calendar-widget__event-dot:hover{transform:scale(1.4)}.calendar-widget__event-more{font-size:9px;color:var(--cf-text-muted);font-weight:600}.calendar-widget__upcoming{border-top:1px solid var(--cf-border-soft);padding:20px 24px;background:#fafafa}.calendar-widget__upcoming-title{font-size:13px;font-weight:600;color:var(--cf-text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 16px}.calendar-widget__upcoming-list{display:flex;flex-direction:column;gap:12px}.calendar-widget__upcoming-item{display:flex;gap:12px;padding:12px;border-radius:8px;background:#fff;border:1px solid var(--cf-border-soft);text-decoration:none;transition:all .2s}.calendar-widget__upcoming-item:hover{border-color:var(--cf-primary);box-shadow:0 2px 8px #00000014}.calendar-widget__upcoming-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:6px}.calendar-widget__upcoming-info{flex:1;min-width:0}.calendar-widget__upcoming-title-text{font-size:14px;font-weight:500;color:var(--cf-text-main);margin-bottom:4px}.calendar-widget__upcoming-date{font-size:12px;color:var(--cf-text-muted);text-transform:capitalize}.calendar-widget__upcoming-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;flex-shrink:0}.calendar-widget__upcoming-badge--completed{background:#dcfce7;color:#15803d}.calendar-widget__upcoming-badge--overdue{background:#fee2e2;color:#991b1b}.calendar-widget__footer{padding:16px 24px;border-top:1px solid var(--cf-border-soft);background:#fff}.calendar-widget__view-all{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;color:var(--cf-primary);text-decoration:none;transition:all .2s}.calendar-widget__view-all svg{width:16px;height:16px}.calendar-widget__view-all:hover{gap:12px}.calendar-legend{display:flex;flex-wrap:wrap;gap:20px;padding:16px 24px;background:#fff;border:1px solid var(--cf-border-soft);border-radius:8px;margin-bottom:24px}.calendar-legend__item{display:flex;align-items:center;gap:8px}.calendar-legend__dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.calendar-legend__label{font-size:13px;color:var(--cf-text-main);font-weight:500}.calendar-container{margin-bottom:32px}.events-section{background:#fff;border:1px solid var(--cf-border-soft);border-radius:12px;padding:24px}.events-section__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.events-section__title{font-size:18px;font-weight:600;color:var(--cf-text-main);margin:0}.events-section__filters{display:flex;gap:12px}.event-item{display:flex;gap:16px;padding:20px;border:1px solid var(--cf-border-soft);border-radius:8px;margin-bottom:12px;background:#fff;transition:all .2s}.event-item:hover{box-shadow:0 4px 12px #00000014}.event-item:last-child{margin-bottom:0}.event-item__color{width:4px;border-radius:2px;flex-shrink:0}.event-item__content{flex:1;min-width:0}.event-item__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.event-item__title{font-size:16px;font-weight:600;margin:0}.event-item__title a{color:var(--cf-text-main);text-decoration:none}.event-item__title a:hover{color:var(--cf-primary)}.event-item__badges{display:flex;gap:6px;flex-shrink:0}.event-item__meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--cf-text-muted);margin-bottom:8px}.event-item__meta svg{width:16px;height:16px;vertical-align:middle;margin-right:4px}.event-item__type{font-weight:500}.event-item__date,.event-item__location{display:flex;align-items:center}.event-item__call-link{display:flex;align-items:center;color:var(--cf-primary);text-decoration:none;font-weight:500}.event-item__call-link:hover{text-decoration:underline}.event-item__description{font-size:14px;color:var(--cf-text-muted);line-height:1.6;margin:0}.event-item__actions{display:flex;gap:8px;flex-shrink:0}.empty-state{text-align:center;padding:64px 32px}.empty-state svg{width:64px;height:64px;margin-bottom:16px;stroke:var(--cf-text-muted);opacity:.3}.empty-state h3{font-size:20px;font-weight:600;color:var(--cf-text-main);margin:0 0 8px}.empty-state p{font-size:15px;color:var(--cf-text-muted);margin:0 0 24px}.color-legend{display:flex;flex-direction:column;gap:10px}.color-legend__item{display:flex;align-items:center;gap:10px}.color-legend__swatch{width:16px;height:16px;border-radius:4px;flex-shrink:0}.detail-status__item{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;font-weight:500}.detail-status__item svg{width:20px;height:20px}.detail-status__item--success{background:#dcfce7;color:#15803d}.detail-status__item--danger{background:#fee2e2;color:#991b1b}.detail-status__item--warning{background:#fef9c3;color:#a16207}.detail-status__item--info{background:#dbeafe;color:#1e40af}.link{color:var(--cf-primary);text-decoration:none}.link:hover{text-decoration:underline}.link--external{display:inline-flex;align-items:center;gap:4px}.link--external svg{width:14px;height:14px}.quick-actions{display:flex;flex-direction:column;gap:8px}.form__input--color{height:44px;cursor:pointer}@media(max-width:768px){.calendar-widget__header{flex-direction:column;gap:12px}.calendar-widget__day{padding:4px}.calendar-widget__day-number{font-size:12px}.calendar-widget__event-dot{width:5px;height:5px}.events-section__header{flex-direction:column;align-items:stretch}.events-section__filters,.event-item{flex-direction:column}.event-item__color{width:100%;height:4px}.event-item__actions{justify-content:flex-end}.calendar-legend{gap:12px}}.calendar-grid{width:100%}.calendar-grid__header{display:grid;grid-template-columns:repeat(7,1fr);background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.calendar-grid__day-name{padding:8px 4px;text-align:center;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase}.calendar-grid__body{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background-color:#dee2e6}.calendar-grid__cell{background-color:#fff;min-height:80px;padding:4px;position:relative;transition:background-color .2s}.calendar-grid__cell:hover{background-color:#f8f9fa}.calendar-grid__cell--empty{background-color:#f8f9fa;cursor:default}.calendar-grid__cell--past{background-color:#fafafa;opacity:.7}.calendar-grid__cell--weekend{background-color:#f9f9f9}.calendar-grid__cell--today{background-color:#e7f3ff;border:2px solid #0d6efd}.calendar-grid__cell--today .calendar-grid__date{background-color:#0d6efd;color:#fff}.calendar-grid__date{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;font-size:11px;font-weight:600;border-radius:50%;margin-bottom:2px}.calendar-grid__events{display:flex;flex-direction:column;gap:2px}.calendar-grid__event{display:block;padding:2px 4px;border-left:3px solid #ccc;background-color:#f8f9fa;border-radius:2px;text-decoration:none;transition:all .2s;font-size:10px;line-height:1.3}.calendar-grid__event:hover{background-color:#e9ecef;transform:translate(2px)}.calendar-grid__event-time{display:block;font-weight:600;color:#495057;font-size:9px}.calendar-grid__event-title{display:block;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-grid__event-more{display:block;padding:2px 4px;font-size:9px;color:#6c757d;text-align:center;text-decoration:none;font-weight:600}.calendar-grid__event-more:hover{color:#0d6efd;text-decoration:underline}@media(max-width:768px){.calendar-grid__cell{min-height:60px;padding:2px}.calendar-grid__event-time,.calendar-grid__event-title{font-size:9px}}.dashboard-greeting{padding:1.5rem 2rem;border-radius:var(--global-border-radius, 12px);box-shadow:0 4px 6px #0000001a}.dashboard-greeting h1{font-size:1.25rem;font-weight:500;margin:0}.card-settings{transition:all .3s ease;border:2px solid #e5e7eb;height:100%}.card-settings:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.card-settings--disabled{opacity:.6;cursor:not-allowed}.card-settings--disabled:hover{transform:none;border-color:#e5e7eb;box-shadow:none}.card-settings__icon{font-size:3rem;margin-bottom:1rem;display:block}.card-header h2,.card-header h5{color:#1f2937;font-weight:600}.table-hover tbody tr{transition:background-color .2s ease}.table-hover tbody tr:hover{background-color:#f3f4f6}.project-show-card{border-top:28px solid;border-top-color:var(--project-type-color, #3b82f6);margin-bottom:1.5rem}.project-show-card .card-header{padding-top:.75rem}.project-show-card .card-header h5{font-size:1.1rem;font-weight:600;margin-bottom:0}.project-cliente-card h5{color:#1f2937;font-weight:600;margin-bottom:.75rem}.project-cliente-icon{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background-color:var(--project-type-color, #3b82f6);color:#fff;font-size:1.2rem;margin-right:.5rem;vertical-align:middle}.btn-cf-details{background-color:var(--cf-primary);color:#fff;border:none}.btn-cf-details:hover{background-color:#052242;color:#fff}.project-card{border-top-width:28px!important;border-top-style:solid!important}.project-card__title{font-size:1.15rem;margin-bottom:.75rem}.project-card__title a{color:#1f2937;font-weight:600;text-decoration:none}.project-card__title a:hover{color:var(--cf-primary)}.project-card__cliente{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:#1f2937;font-weight:500}.project-card__cliente-icon{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background-color:#3b82f6;color:#fff;font-size:1rem;flex-shrink:0}.icon-picker__preview{margin-bottom:1rem}.icon-picker__controls{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.icon-picker__current{flex:1;border:2px dashed var(--cf-border-soft);border-radius:8px;padding:1rem;background:var(--cf-surface);transition:all .2s ease}.icon-picker__current:hover{border-color:var(--cf-primary-mid);background:#fff}.icon-picker__icon-display{display:flex;align-items:center;gap:.5rem}.icon-picker__buttons{display:flex;gap:.5rem;flex-shrink:0}.icon-picker__modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem}.icon-picker__modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.icon-picker__modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--cf-border-soft)}.icon-picker__modal-header h5{margin:0;font-size:1.25rem;color:var(--cf-primary)}.icon-picker__search{padding:1rem 1.5rem;border-bottom:1px solid var(--cf-border-soft)}.icon-picker__search input{width:100%;margin-bottom:.5rem}.icon-picker__accordion{overflow-y:auto;max-height:500px}.icon-picker__category{border-bottom:1px solid var(--cf-border-soft)}.icon-picker__category:last-child{border-bottom:none}.icon-picker__category-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#fff;border:none;cursor:pointer;font-weight:600;font-size:.95rem;color:var(--cf-text-main);transition:all .2s ease}.icon-picker__category-header:hover{background:var(--cf-surface)}.icon-picker__category-header.active{background:var(--cf-surface);color:var(--cf-primary)}.icon-picker__category-count{margin-left:.5rem;font-size:.85rem;color:var(--cf-text-muted);font-weight:400}.icon-picker__chevron{transition:transform .2s ease;flex-shrink:0;margin-left:auto}.icon-picker__chevron.rotated{transform:rotate(180deg)}.icon-picker__category-content{background:#fafafa}.icon-picker__grid{padding:1rem 1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.icon-picker__grid-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem .5rem;border:2px solid var(--cf-border-soft);border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.icon-picker__grid-item:hover{border-color:var(--cf-primary-mid);background:var(--cf-surface);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.icon-picker__grid-item.selected{border-color:var(--cf-primary);background:var(--cf-primary);color:#fff}.icon-picker__icon-name{font-size:.7rem;margin-top:.5rem;text-align:center;word-break:break-word;color:var(--cf-text-muted)}.icon-picker__grid-item.selected .icon-picker__icon-name{color:#fff}.system-icon svg{flex-shrink:0}.system-icon{margin-right:8px}.badge .system-icon{margin-right:6px}.badge{display:inline-block;font-weight:500;padding:4px 8px;text-align:center;border-radius:10px;font-size:11px;text-transform:uppercase}.badge-serv-socmedman{background-color:#ed66b2;color:#fff}.badge-serv-swebsite{background-color:#7cb75b;color:#fff}.badge-serv-dwebsite{background-color:#229ae5;color:#fff}.badge-serv-ecommerce{background-color:#ff6d26;color:#fff}.badge-serv-brand{background-color:#ffd526;color:#333}.badge-serv-maint{background-color:#b09e8c;color:#fff}.badge-serv-consult{background-color:#8326ff;color:#fff}.badge-serv-wrestyle{background-color:#cb1079;color:#fff}.badge-serv-brestyle{background-color:#e0b6ff;color:#fff}.badge-st-prog-attivo{background-color:#8fdb004d;color:#7ec100}.badge-st-prog-inpausa{background-color:#e199074d;color:#e19907}.badge-st-prog-completato{background-color:#1774ed4d;color:#1774ed}.badge-st-prog-annullato{background-color:#e517554d;color:#e51755}.badge-st-prog-dainiziare{background-color:#00e9f54d;color:#00b6c4}.badge-st-prog-bloccato{background-color:#ea8c8c;color:#a60b0b}.badge-doc-nda{background-color:#b33951;color:#fff}.badge-doc-contratto{background-color:#57a773;color:#fff}.badge-doc-preventivo{background-color:#ffae03;color:#fff}.badge-st-doc-bozza{background-color:#4b4b4b;color:#fff}.badge-st-doc-final{background-color:#92118d;color:#fff}.badge-st-doc-sent{background-color:#2a88bb;color:#fff}.badge-st-doc-accepted{background-color:#40db10;color:#fff}.badge-st-doc-rejected{background-color:#fa0505;color:#fff}.badge-catserv-design{background-color:#d83592;color:#fff}.badge-catserv-dev{background-color:#2ebfbf;color:#fff}.badge-catserv-mktg{background-color:#ffb300;color:#fff}.badge-catserv-maint{background-color:#7f2914;color:#fff}.badge-catserv-cons{background-color:#6f0b9d;color:#fff}.badge-timeserv-onetime{background-color:#08bad5;color:#fff}.badge-timeserv-recursive{background-color:#369c47;color:#fff}.badge-timeserv-ibrido{background-color:#87be05;color:#fff}.badge-priority-urgente{background-color:#f101014c;color:#ce2222}.badge-priority-alta{background-color:#f169014c;color:#ea7500}.badge-priority-media{background-color:#ffc4024c;color:#ffb301}.badge-priority-bassa{background-color:#a6ff024c;color:#74a307}.badge-priority-nessuna{background-color:#79dafa4c;color:#4089a4}.badge-priority-scaduto{background-color:#ff0202;color:#fff}.badge-st-todo-tostart{background-color:#74747460;color:#747474}.badge-st-todo-incorso{background-color:#87a9ff85;color:#1144c3}.badge-st-todo-finito{background-color:#8dff8f7b;color:#5fd661}.badge-st-todo-sospeso{background-color:#ffc0787a;color:#f80}.badge-st-todo-annullato{background-color:#ffb5ea;color:#e012a6;text-decoration:line-through}.badge-st-todo-scaduto{background-color:red;color:#fff}.badge-eventype-call{background-color:#6200be;color:#fff}.badge-eventype-meeting{background-color:#3a8b6d;color:#fff}.badge-eventype-memo{background-color:#cef108;color:#303030}.badge-eventype-pdeadline{background-color:#f14e08;color:#fff}.badge-eventype-tdeadline{background-color:#f108a3;color:#fff}.badge-st-cli-prospect{background-color:#88dfed4c;color:#0a3984}.badge-st-cli-attivo{background-color:#8aff8c4c;color:#09bb00}.badge-st-cli-sospeso{background-color:#ffc4024c;color:#ffb301}.badge-st-cli-chiuso{background-color:#ff8b8b;color:#830000}.badge-qst-inattesa{background-color:#f17908;color:#fff}.badge-qst-completato{background-color:#62ae14;color:#fff}.badge-qst-03{background-color:#acf89b9e;color:#62ae14}.badge-qst-37{background-color:#ffc4029e;color:#ffb301}.badge-qst-over7{background-color:#f40909;color:#fff}.badge-tag-materiali{background-color:#6200be;color:#fff}.badge-tag-testi{background-color:#3d1cf8;color:#fff}.badge-tag-urgente{background-color:#f10808;color:#fff}.badge-tag-review{background-color:#f17908;color:#fff}.badge-tag-feedback{background-color:#00ae37;color:#fff}.testobianco{color:#fff}.grassetto{font-weight:700}
