*,*:before,*:after{box-sizing:border-box}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(0deg,#b8d0ed,#d6e4f5 25%,#edf2f9 60%,#fff);overflow-x:hidden;width:100%}.app-header{background:linear-gradient(135deg,#d6e4f5,#8ab0e8 60%,#6a9ad8);color:#fff;padding:0 1rem;height:56px;display:flex;align-items:center;gap:.5rem}.app-logo{text-decoration:none;display:flex;align-items:center}.app-logo-img{height:52px;width:auto}.desktop-nav{display:flex;gap:1.5rem;flex:1}.desktop-nav a{color:#ffffffd9;text-decoration:none;font-size:.9rem;font-weight:500;padding:.3rem 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:#fff;border-bottom-color:#fff}.header-user{font-size:.85rem;opacity:.9;white-space:nowrap}.header-icons{display:flex;align-items:center;gap:.25rem;margin-left:auto}.header-icon-btn{background:#ffffff26;border:none;color:#fff;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s;padding:0}.header-icon-btn:hover{background:#ffffff4d}.header-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.welcome-banner{background:linear-gradient(135deg,#6a9cd8,#5580c0);color:#fff;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.2rem;margin:1rem 1rem 0;border-radius:50px}.premium-btn{margin-left:auto;display:flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#f5a623,#e8912d);color:#fff;border:none;padding:.45rem 1rem;border-radius:50px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s,transform .15s;box-shadow:0 2px 8px #f5a62359}.premium-btn:hover{opacity:.9;transform:scale(1.03)}.user-badge{margin-left:auto;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;color:#fff;box-shadow:0 2px 8px #0003}.welcome-avatar{width:44px;height:44px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border:2px solid white}.welcome-avatar-img{width:100%;height:100%;object-fit:cover}.welcome-text h2{margin:0;font-size:1.1rem;font-weight:700}.welcome-text p{margin:.1rem 0 0;font-size:.8rem;opacity:.85}@media (max-width: 768px){.desktop-nav,.header-user,.header-icon-home{display:none}.welcome-banner{margin:.75rem .75rem 0;padding:.6rem 1rem}.welcome-avatar{width:40px;height:40px}.welcome-text h2{font-size:1rem}}.main-content{flex:1;display:flex;flex-direction:column;max-width:960px;width:100%;margin:0 auto;padding:1.5rem}@media (max-width: 768px){.main-content{padding:1rem;padding-bottom:80px}}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e0e0e0;padding:.4rem 0;z-index:100;box-shadow:0 -2px 10px #0000000d}@media (max-width: 768px){.bottom-nav{display:flex;justify-content:space-around}}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.3rem .8rem;text-decoration:none;color:#999;font-size:.7rem;font-weight:500;transition:color .2s;border-radius:8px}.bottom-nav-item.active{color:#496dba}.bottom-nav-item svg{width:22px;height:22px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5;padding:1rem}.auth-card{width:100%;max-width:460px;background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014;padding:2rem}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-header h1{margin:0;font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,#496dba,#8ab0e8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-header p{margin:.3rem 0 0;color:#666;font-size:.9rem}.auth-link{text-align:center;margin-top:1.5rem;font-size:.9rem;color:#666}.auth-link a{color:#496dba;text-decoration:none;font-weight:500}.auth-link a:hover{text-decoration:underline}.step-indicator{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem}.step-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;transition:background .3s,color .3s}.step-dot.active{background:#496dba;color:#fff}.step-dot.completed{background:#4caf50;color:#fff}.step-dot.pending{background:#e0e0e0;color:#999}.step-labels{display:flex;justify-content:center;gap:2.5rem;margin-bottom:1.5rem;font-size:.75rem;color:#999}.step-labels span.active{color:#496dba;font-weight:500}.step-content h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#333}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.3rem;color:#555}.form-group input,.form-group select{width:100%;box-sizing:border-box;padding:.7rem .9rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s;background:#fff}.form-group input:focus,.form-group select:focus{border-color:#496dba;box-shadow:0 0 0 3px #496dba1f}.form-group input:disabled{background:#f5f5f5;color:#999}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}@media (max-width: 480px){.form-row{flex-direction:column;gap:0}}.phone-input-group{display:flex;align-items:center;border:1px solid #ddd;border-radius:8px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.phone-input-group:focus-within{border-color:#496dba;box-shadow:0 0 0 3px #496dba1f}.phone-prefix{padding:.7rem .6rem .7rem .9rem;background:#f5f5f5;color:#555;font-size:.95rem;font-weight:500;border-right:1px solid #ddd;white-space:nowrap}.phone-input-group input{border:none;border-radius:0;padding:.7rem .9rem;flex:1;outline:none;font-size:.95rem;font-family:inherit}.phone-input-group input:focus{box-shadow:none}.toggle-group{display:flex;gap:0;border:1px solid #ddd;border-radius:8px;overflow:hidden}.toggle-btn{flex:1;padding:.6rem .8rem;border:none;background:#fff;font-size:.85rem;font-weight:500;cursor:pointer;color:#666;transition:background .2s,color .2s;font-family:inherit}.toggle-btn:not(:last-child){border-right:1px solid #ddd}.toggle-btn.active{background:#496dba;color:#fff}.btn-primary{width:100%;padding:.75rem;background:#496dba;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .2s;margin-top:.5rem}.btn-primary:hover:not(:disabled){background:#3558a0}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{width:100%;padding:.6rem;background:transparent;color:#496dba;border:1px solid #496dba;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .2s;margin-top:.5rem}.btn-secondary:hover:not(:disabled){background:#496dba0d}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{width:100%;padding:.6rem;background:transparent;color:#d32f2f;border:1px solid #d32f2f;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .2s;margin-top:.5rem}.btn-danger:hover{background:#d32f2f0d}.error-message{color:#d32f2f;font-size:.85rem;margin-top:.75rem;text-align:center}.success-message{color:#4caf50;font-size:.85rem;margin-top:.75rem;text-align:center}.home-page{flex:1;max-width:1100px;width:100%;margin:0 auto;padding-top:1.5rem}.back-home-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;color:#496dba;font-size:.9rem;font-weight:600;cursor:pointer;padding:.3rem 0;margin-bottom:.2rem;transition:color .2s}.back-home-btn:hover{color:#3a5a9e}.back-action-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;color:#496dba;font-size:.9rem;font-weight:600;cursor:pointer;padding:.3rem 0;margin-bottom:.2rem;transition:color .2s}.back-action-btn:hover{color:#3a5a9e}@media (max-width: 768px){.back-home-btn{display:none}}.analisi-results-topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.btn-export-pdf{display:inline-flex;align-items:center;gap:.4rem;background:#496dba;color:#fff;border:none;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-export-pdf:hover{background:#3a5a9e}.btn-export-pdf svg{flex-shrink:0}.home-cards{display:flex;flex-direction:column;gap:1.4rem;max-width:560px;margin:0 auto}.home-card{background:#fff;border-radius:16px;padding:1.5rem;text-decoration:none;color:inherit;box-shadow:0 2px 12px #0000000f;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column;position:relative;min-height:170px}.home-card:hover{box-shadow:0 6px 20px #496dba26;transform:translateY(-3px)}.home-card-top{margin-bottom:1rem}.home-card-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#496dba,#6a9cd8);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-card-body{flex:1}.home-card h3{margin:0 0 .35rem;font-size:1rem;font-weight:700;color:#222}.home-card p{margin:0;font-size:.82rem;color:#888;line-height:1.4}.home-card-arrow{width:34px;height:34px;border-radius:50%;background:#496dba;color:#fff;display:flex;align-items:center;justify-content:center;align-self:flex-end;margin-top:.8rem;transition:background .2s}.home-card:hover .home-card-arrow{background:#3a5a9e}.profile-page{flex:1}.profile-page h2{margin:0 0 1.5rem;font-size:1.5rem;color:#333}.profile-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000f}.profile-info{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #eee}.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:.3rem}.profile-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#496dba,#8ab0e8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;flex-shrink:0;position:relative;cursor:pointer;overflow:hidden}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.profile-avatar:hover .profile-avatar-overlay{opacity:1}.avatar-loading{font-size:.7rem;color:#496dba}.profile-info h3{margin:0 0 .3rem;font-size:1.15rem}.profile-details{margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid #f0f0f0}.detail-label{font-size:.85rem;color:#888;font-weight:500}.detail-value{font-size:.9rem;color:#333}.profile-actions{display:flex;gap:.75rem;margin-top:1rem}.profile-actions .btn-primary,.profile-actions .btn-secondary,.profile-actions .btn-danger{flex:1}.support-page{flex:1;max-width:600px;margin:0 auto}.support-page h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.support-subtitle{color:#888;font-size:.9rem;margin:0 0 1.5rem}.support-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000f}.support-user-info{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;margin-bottom:1.25rem;border-bottom:1px solid #f0f0f0}.support-form{display:flex;flex-direction:column;gap:1rem}.support-form select{width:100%;padding:.7rem 2.5rem .7rem .9rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;color:#333;background:#fff;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center}.support-form select:focus{outline:none;border-color:#496dba;box-shadow:0 0 0 3px #496dba26}.support-form textarea{width:100%;padding:.7rem .9rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;font-family:inherit;color:#333;resize:vertical;min-height:120px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.support-form textarea:focus{outline:none;border-color:#496dba;box-shadow:0 0 0 3px #496dba26}.support-form textarea::placeholder{color:#aaa}.support-form .btn-primary{align-self:flex-start;padding:.75rem 2rem}@media (max-width: 768px){.support-page{max-width:100%}.support-user-info{flex-direction:column;align-items:flex-start;gap:.25rem}.support-form .btn-primary{align-self:stretch}}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#888;font-size:1rem}.graduatoria-page{max-width:480px;margin:0 auto}.graduatoria-page h2{margin-bottom:1.5rem}.import-dropzone{border:2px dashed #b0cfe8;border-radius:12px;padding:2.5rem 1.5rem;text-align:center;cursor:pointer;background:#f7fbff;transition:border-color .2s,background .2s;display:flex;flex-direction:column;align-items:center;gap:.6rem;color:#5a8fa8;margin-bottom:1rem}.import-dropzone:hover,.import-dropzone.drag-over{border-color:#496dba;background:#eef2fb}.import-dropzone svg{color:#496dba}.import-dropzone p{margin:0;font-size:.95rem;font-weight:500;color:#333}.import-hint{font-size:.8rem;color:#888}.import-preview{display:flex;flex-direction:column;gap:1rem}.import-preview-info{margin:0;font-size:.9rem;color:#555}.import-actions{display:flex;gap:.75rem;flex-wrap:wrap}.success-message{color:#1a7a3c;font-weight:500}.graduatoria-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1rem;color:#555}.spinner{width:40px;height:40px;border:4px solid #e0e0e0;border-top-color:#496dba;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.graduatoria-message{background:#fff;border-radius:12px;padding:2rem;text-align:center;box-shadow:0 2px 8px #0000000f}.graduatoria-message p{margin:0 0 1rem;color:#555;line-height:1.6}.graduatoria-message .btn-primary{margin-top:.5rem}.graduatoria-province-select{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000f;text-align:center}.graduatoria-province-select p{margin:0 0 1.5rem;color:#333;line-height:1.6}.province-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.province-btn{min-width:80px}.graduatoria-results{display:flex;flex-direction:column;gap:1rem;width:100%}.results-header-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.results-header{margin:0;color:#333;font-size:.95rem}.results-count{font-size:1.1rem;font-weight:700;color:#496dba}.province-filter{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.province-btn-sm{padding:.3rem .75rem;border:1px solid #ddd;border-radius:16px;background:#fff;font-size:.8rem;cursor:pointer;transition:all .2s;font-family:inherit;color:#555}.province-btn-sm:hover{border-color:#496dba;color:#496dba}.province-btn-sm.active{background:#496dba;color:#fff;border-color:#496dba}.results-table-wrap{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.results-table-scroll{overflow-x:auto}.results-table{width:100%;border-collapse:collapse;font-size:.95rem}.results-table thead{background:linear-gradient(135deg,#496dba,#8ab0e8);color:#fff}.results-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.results-table td{padding:.75rem 1rem;border-bottom:1px solid #f0f0f0}.results-table tbody tr:last-child td{border-bottom:none}.results-table tbody tr:hover{background:#f8f9fa}.graduatoria-code{font-weight:700;color:#496dba}.date-cell{color:#888;font-size:.85rem}.chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.chart-header{display:flex;align-items:center;gap:.4rem;padding:.3rem 1.25rem;margin:-1.25rem -1.25rem 0;background:linear-gradient(135deg,#496dba,#8ab0e8);color:#fff;border-radius:12px 12px 0 0}.chart-header-classe{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;width:3.5rem;text-align:left}.chart-header-pos{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex:1;text-align:center}.chart-header-spacer{flex:1}.chart-header-btn-spacer{width:3.5rem;flex-shrink:0}.chart-header-meta{width:80px;display:flex;flex-direction:column;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;text-align:right}.chart-row{display:flex;align-items:center;gap:.4rem}.chart-label{font-weight:700;font-size:.85rem;color:#496dba;text-align:left;flex-shrink:0;width:3.5rem}.chart-row-wrap+.chart-row-wrap{border-top:1px solid #dde5f2;margin-top:-.5rem;padding-top:.4rem}.chart-row-wrap{display:flex;flex-direction:column;gap:0}.chart-class-header{display:flex;align-items:flex-start;gap:.5rem;padding:.15rem .75rem .05rem;background:#eef0f9;border-radius:6px 6px 0 0}.chart-class-code{font-size:.75rem;font-weight:700;color:#496dba;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.chart-class-desc{font-size:.85rem;font-style:italic;color:#113480;line-height:1.1;flex:1;min-width:0}.chart-pos{display:flex;align-items:center;justify-content:center;gap:.05rem;flex:1;min-width:180px;height:32px;border-radius:6px;padding:0 .5rem;transition:filter .15s;position:relative;overflow:hidden;cursor:pointer}.chart-pos:hover{filter:brightness(1.12)}.nome-filter{padding:.25rem 0;margin-bottom:.5rem}.nome-filter-label{display:block;font-size:.72rem;color:#777;margin-bottom:.35rem}.nome-filter-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.nome-filter-tab{padding:.3rem .75rem;border:1px solid #ddd;border-radius:16px;background:#fff;font-size:.82rem;font-family:inherit;cursor:pointer;color:#888}.nome-filter-tab.active{background:#496dba;color:#fff;border-color:#496dba}.nome-filter-tab:focus-visible{outline:none;border-color:#ddd;box-shadow:none}.nome-filter-tab.active:focus-visible{border-color:#496dba}.nome-filter-tab:hover:not(.active){border-color:#496dba;color:#496dba}.btn-dettagli{background:none;border:none;padding:0;font-family:inherit;font-size:.8rem;color:#113480;cursor:pointer;text-decoration:none;white-space:nowrap;flex-shrink:0;width:3.5rem;text-align:center}.btn-dettagli:hover{color:#496dba}.chart-pos-cursor{position:absolute;top:0;bottom:0;width:0;transform:translate(-50%);pointer-events:none}.chart-pos-cursor:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid rgba(255,255,255,.95)}.chart-pos-cursor:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid rgba(255,255,255,.95)}.chart-pos-value{font-size:.85rem;font-weight:800;font-variant-numeric:tabular-nums;color:#12429c;white-space:nowrap;position:relative}.chart-pos-value.pos-first{border:2px solid #16a34a;border-radius:4px;padding:1px 6px;color:#15803d}.chart-pos-value.pos-last{border:2px solid #dc2626;border-radius:4px;padding:1px 6px;color:#b91c1c}.chart-pos-cursor.cursor-first:before{border-top-color:#16a34a}.chart-pos-cursor.cursor-first:after{border-bottom-color:#16a34a}.chart-pos-cursor.cursor-last:before{border-top-color:#dc2626}.chart-pos-cursor.cursor-last:after{border-bottom-color:#dc2626}.chart-pos-max{font-size:.7rem;font-weight:500;font-variant-numeric:tabular-nums;color:#0f6280a6;white-space:nowrap;position:relative}.chart-detail-panel{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:#f0f7fb;border-left:3px solid #496dba;border-radius:0 4px 4px 0;font-size:.8rem}.chart-detail-label{font-weight:600;color:#555;flex-shrink:0}.chart-detail-value{color:#1a5f7a;word-break:break-all}.btn-download-pdf{display:inline-flex;align-items:center;gap:.4rem;background:#496dba;color:#fff;border:none;border-radius:6px;padding:.3rem .7rem;font-size:.78rem;cursor:pointer;transition:background .15s;word-break:break-all;text-align:left}.btn-download-pdf:hover:not(:disabled){background:#3a5a9e}.btn-download-pdf:disabled{opacity:.6;cursor:wait}.chart-meta{display:flex;flex-direction:column;align-items:flex-end;width:80px;flex-shrink:0;margin-left:auto}.chart-score{font-size:.8rem;font-weight:600;color:#12429c}.chart-date{font-size:.7rem;color:#999}.storico-sizer{visibility:hidden;height:0;pointer-events:none;margin-top:0!important}.history-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;font-weight:500;color:#555;cursor:pointer;font-family:inherit;transition:background .2s,border-color .2s}.history-toggle:hover{background:#f8f9fa;border-color:#496dba;color:#496dba}.toggle-arrow{font-size:.65rem;transition:transform .2s;margin-left:auto}.toggle-arrow.open{transform:rotate(180deg)}.results-table-wrap.storico-table,.storico-chart-wrap{margin-top:.5rem}.search-form-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:1rem;box-sizing:border-box}.search-form-card .form-row{display:flex;gap:1rem}.search-form-card .form-group{flex:1}.form-hint{display:block;font-size:.75rem;color:#999;margin-top:.25rem}@media (max-width: 480px){.search-form-card{padding:1.2rem}.search-form-card .form-row{flex-direction:column;gap:1rem}.results-table th,.results-table td{padding:.5rem .6rem;font-size:.85rem}.chart-card{padding:.75rem}.chart-header{margin:-.75rem -.75rem 0;padding:.3rem .75rem;gap:.3rem}.chart-header-btn-spacer{display:none}.chart-header-meta{width:auto;font-size:.75rem}.chart-header-classe{width:auto}.chart-row{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.3rem .5rem}.chart-label{grid-column:1;grid-row:1;font-size:.8rem;width:auto}.chart-pos{grid-column:2;grid-row:1;min-width:0}.btn-dettagli{grid-column:1;grid-row:2;width:auto;text-align:left}.chart-meta{grid-column:2;grid-row:2;width:auto;flex-direction:row;gap:.5rem;align-items:center;justify-content:flex-start}.chart-class-header{padding:.15rem .5rem .05rem}}.ricerca-classe-page .search-form-card,.ricerca-classe-page .graduatoria-results{max-width:480px;width:100%}.ricerca-classe-page .results-table{table-layout:fixed}.ricerca-classe-page .results-table th:nth-child(1),.ricerca-classe-page .results-table td:nth-child(1){width:8%}.ricerca-classe-page .results-table th:nth-child(2),.ricerca-classe-page .results-table td:nth-child(2){width:28%}.ricerca-classe-page .results-table th:nth-child(3),.ricerca-classe-page .results-table td:nth-child(3){width:24%}.ricerca-classe-page .results-table th:nth-child(4),.ricerca-classe-page .results-table td:nth-child(4){width:15%}.ricerca-classe-page .results-table th:nth-child(5),.ricerca-classe-page .results-table td:nth-child(5){width:25%}.ricerca-classe-page .results-table-wrap{overflow-x:auto}.pagination{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.75rem .5rem;flex-wrap:wrap}.pagination-btn{padding:.5rem .85rem;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:.9rem;font-family:inherit;cursor:pointer;color:#555;transition:all .15s;min-width:40px;text-align:center}.pagination-dots{padding:.5rem .3rem;color:#888;font-size:.9rem;-webkit-user-select:none;user-select:none}.pagination-btn:hover:not(:disabled):not(.active){border-color:#496dba;color:#496dba}.pagination-btn.active{background:#496dba;color:#fff;border-color:#496dba;font-weight:600}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-size:.8rem;color:#888;width:100%;text-align:center;margin-top:.25rem}.classe-select-wrap{position:relative}.classe-dropdown{position:absolute;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 8px 8px;box-shadow:0 4px 12px #0000001a;z-index:50}.classe-dropdown-item{padding:.6rem .9rem;font-size:.85rem;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .15s}.classe-dropdown-item:hover{background:#f0f7fb}.classe-dropdown-item:last-child{border-bottom:none}.classe-dropdown-item.selected{background:#e8eef9;font-weight:500}.classe-dropdown-item strong{color:#496dba;margin-right:.3rem}.classe-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.classe-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;background:linear-gradient(135deg,#496dba,#8ab0e8);color:#fff;border-radius:16px;font-size:.8rem;font-weight:500}.classe-chip button{background:none;border:none;color:#fffc;font-size:1.1rem;cursor:pointer;padding:0;line-height:1;transition:color .15s}.classe-chip button:hover{color:#fff}.classe-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.classe-group-header{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;background:#eef0f9;border-radius:12px 12px 0 0;flex-wrap:wrap}.classe-group-header .chart-class-code{font-size:.75rem;font-weight:700;color:#496dba;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.classe-group-header .chart-class-desc{font-size:.85rem;font-style:italic;color:#113480;line-height:1.1;flex:1;min-width:0}.classe-count{margin-left:auto;font-size:.75rem;color:#888;flex-shrink:0}.classe-stats-bar{display:flex;gap:1.5rem;padding:.5rem 1rem;background:#f8f9fa;border-left:1px solid #eee;border-right:1px solid #eee;border-bottom:1px solid #eee;font-size:.85rem}.classe-stat{display:flex;align-items:center;gap:.4rem}.classe-stat-label{color:#888;font-size:.8rem}.classe-stat-value{font-weight:600;color:#496dba}.classe-result-row{cursor:pointer;transition:background .15s}.classe-result-row:hover{background:#f0f7fb}.classe-result-row.expanded{background:#e8eef9}.classe-detail-row td{border-bottom:none!important}.classe-detail-panel{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;background:#f0f7fb;border-left:3px solid #496dba;margin:0 .5rem .5rem;border-radius:0 6px 6px 0;font-size:.8rem;overflow:hidden}.classe-detail-label{color:#888;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.classe-detail-value{color:#333;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classe-pos-group{cursor:pointer;background:#f8fbfd;transition:background .15s}.classe-pos-group:hover{background:#eef5f9}.classe-pos-group.expanded{background:#e8eef9}.classe-pos-group td{border-bottom:1px solid #e0e8ed}.classe-pos-count{display:inline-block;padding:.15rem .5rem;background:#496dba1a;color:#496dba;border-radius:10px;font-size:.78rem;font-weight:500}.classe-expand-all-btn{margin-left:auto;padding:.25rem .7rem;background:none;border:1px solid #496dba;color:#496dba;border-radius:12px;font-size:.75rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,color .15s;white-space:nowrap}.classe-expand-all-btn:hover{background:#496dba;color:#fff}.classe-pos-expanded-row{cursor:pointer;background:#fafbfc;transition:background .15s}.classe-pos-expanded-row td:first-child{border-left:3px solid #496dba}.classe-pos-expanded-row:hover{background:#f0f7fb}.classe-pos-expanded-row.expanded{background:#e8eef9}@media (max-width: 768px){.classe-chips{gap:.35rem}.classe-chip{font-size:.72rem;padding:.25rem .5rem}.classe-group-header{padding:.4rem .6rem;gap:.3rem}.classe-count{margin-left:auto}.classe-detail-panel{font-size:.75rem}.classe-pos-count{font-size:.7rem}.classe-expand-all-btn{font-size:.7rem;padding:.2rem .5rem}}.analisi-page .search-form-card,.analisi-page .analisi-results{max-width:480px;width:100%}.analisi-page .analisi-subtitle{max-width:480px;width:100%;color:#666;margin-top:-1rem;margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.analisi-page p{line-height:1.5}.analisi-results{display:flex;flex-direction:column;gap:1rem}.analisi-summary{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.analisi-summary-header{display:flex;align-items:flex-start;gap:.5rem;padding:.3rem .75rem;background:#eef2f7;border-radius:8px;margin-bottom:.75rem}.analisi-punteggio-label{margin:0;font-size:.95rem;color:#555}.analisi-punteggio-label strong{color:#496dba;font-size:1.1rem}.analisi-classe-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}.analisi-classe-tab{padding:.4rem .9rem;border:2px solid #496dba;border-radius:8px;background:#fff;font-family:inherit;font-size:.82rem;font-weight:600;color:#496dba;cursor:pointer;transition:background .2s,color .2s}.analisi-classe-tab.active{background:#496dba;color:#fff}.analisi-classe-tab:hover:not(.active){background:#eef2f7}.analisi-tabs{display:flex;background:#fff;border-radius:12px;padding:.3rem;box-shadow:0 2px 8px #0000000f;gap:.25rem}.analisi-tab{flex:1;padding:.6rem 1rem;border:none;border-radius:9px;background:transparent;font-family:inherit;font-size:.9rem;font-weight:600;color:#888;cursor:pointer;transition:background .2s,color .2s}.analisi-tab:hover{color:#555;background:#f5f5f5}.analisi-tab.active{background:#496dba;color:#fff}.analisi-stats-row{display:flex;gap:.75rem}.analisi-stat-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.75rem .5rem;border:2px solid;border-radius:10px;cursor:pointer;transition:background .2s,transform .15s;font-family:inherit;background:#fff}.analisi-stat-card:hover,.analisi-stat-card.active{transform:translateY(-1px)}.analisi-stat-icon{font-size:1.2rem;line-height:1}.analisi-stat-count{font-size:1.6rem;font-weight:700;line-height:1.1}.analisi-stat-desc{font-size:.7rem;color:#888}.analisi-stat-label{font-size:.72rem;color:#555;font-weight:600;margin-top:.15rem}.analisi-raccomandazioni{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:.75rem}.analisi-raccomandazioni-title{font-size:1rem;font-weight:700;color:#333;margin:0 0 .25rem}.analisi-raccomandazione-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:10px;border-left:4px solid}.analisi-raccomandazione-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:1.15rem}.analisi-raccomandazione-content{flex:1;min-width:0}.analisi-raccomandazione-label{font-size:.85rem;color:#333;display:block;margin-bottom:.15rem}.analisi-raccomandazione-text{font-size:.82rem;color:#555;margin:0;line-height:1.5}.analisi-province-list{display:flex;flex-direction:column;gap:.75rem}.premium-upsell{background:linear-gradient(135deg,#fffbe6,#fff3e0);border:2px dashed #f5a623;border-radius:16px;padding:2rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.premium-upsell-icon{background:#fff8e1;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center}.premium-upsell-title{font-size:1.1rem;font-weight:700;color:#333;margin:0}.premium-upsell-text{font-size:.9rem;color:#666;max-width:360px;line-height:1.5;margin:0}.premium-upsell-btn{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#f5a623,#e8912d);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:50px;font-size:.9rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #f5a62359;transition:opacity .2s,transform .15s;margin-top:.25rem}.premium-upsell-btn:hover{opacity:.9;transform:scale(1.03)}.analisi-provincia-card{background:#fff;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 2px 8px #0000000f;transition:box-shadow .2s;border-left:4px solid #ccc}.analisi-provincia-card:hover{box-shadow:0 4px 16px #0000001a}.analisi-provincia-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.analisi-provincia-code{font-size:1rem;font-weight:700;color:#496dba}.analisi-provincia-name{font-size:.9rem;color:#555;flex:1}.analisi-provincia-rank{margin-bottom:.6rem}.analisi-rank-label{font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.03em}.analisi-rank-display{display:flex;align-items:baseline;gap:.15rem;margin-top:.15rem}.analisi-rank-number{font-size:1.8rem;font-weight:800;line-height:1}.analisi-rank-separator{font-size:1.1rem;color:#bbb;font-weight:400;margin:0 .1rem}.analisi-rank-total{font-size:1.1rem;color:#888;font-weight:600}.analisi-position-bar{margin-bottom:.7rem}.analisi-position-track{position:relative;height:6px;background:#e8e8e8;border-radius:3px}.analisi-position-marker{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;transform:translate(-50%);box-shadow:0 1px 4px #0003}.analisi-position-labels{display:flex;justify-content:space-between;font-size:.65rem;color:#bbb;margin-top:.2rem}.analisi-provincia-stats{display:flex;flex-wrap:wrap;gap:1rem}.analisi-provincia-stat{display:flex;flex-direction:column;gap:.1rem}.analisi-stat-sm-label{font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.03em}.analisi-stat-sm-value{font-size:.9rem;font-weight:600;color:#333}.analisi-grafici{display:flex;flex-direction:column;gap:1rem}.analisi-grafici-controls{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:1rem}.analisi-grafici-select{width:100%;padding:.6rem .75rem;border:1px solid #ddd;border-radius:8px;font-family:inherit;font-size:.9rem;color:#333;background:#fff}.analisi-grafici-metric-toggle{display:flex;gap:.25rem;background:#f0f0f0;border-radius:8px;padding:.2rem}.analisi-metric-btn{flex:1;padding:.45rem .5rem;border:none;border-radius:6px;background:transparent;font-family:inherit;font-size:.8rem;font-weight:500;color:#777;cursor:pointer;transition:background .2s,color .2s}.analisi-metric-btn.active{background:#fff;color:#496dba;font-weight:600;box-shadow:0 1px 3px #0000001a}.analisi-chart-wrap{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000f}.analisi-chart-title{font-size:.9rem;font-weight:600;color:#333;margin:0 0 .75rem}.analisi-chart-svg{width:100%;height:auto}.analisi-chart-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #eee}.analisi-chart-stat-item{display:flex;flex-direction:column;gap:.1rem}.analisi-grafici-placeholder{background:#fff;border-radius:12px;padding:2.5rem 1.25rem;box-shadow:0 2px 8px #0000000f;text-align:center;color:#888}.analisi-grafici-placeholder-icon{font-size:2rem;display:block;margin-bottom:.5rem}.analisi-grafici-placeholder p{margin:0;font-size:.9rem}@media (max-width: 480px){.analisi-stats-row{gap:.5rem}.analisi-stat-card{padding:.5rem .3rem}.analisi-stat-icon{font-size:1rem}.analisi-stat-count{font-size:1.3rem}.analisi-stat-label{font-size:.65rem}.analisi-provincia-stats{gap:.5rem}.analisi-provincia-stat{min-width:calc(50% - .5rem)}.analisi-chart-stats{gap:.5rem}.analisi-chart-stat-item{min-width:calc(50% - .5rem)}}.abbonamento-page{flex:1;max-width:480px;width:100%;margin:0 auto}.abbonamento-page h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.abbonamento-subtitle{color:#888;font-size:.9rem;margin:0 0 1.5rem}.abbonamento-loading{text-align:center;color:#888;padding:2rem 0}.abbonamento-empty{text-align:center;color:#888;padding:2rem 0;font-size:.9rem}.abbonamento-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000f;margin-bottom:1.5rem}.abbonamento-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.abbonamento-card-header h3{margin:0;font-size:1.1rem;color:#333}.abbonamento-status{display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .7rem;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.abbonamento-status--attiva{background:#e8f5e9;color:#2e7d32}.abbonamento-status--in_cessazione{background:#fef3c7;color:#92400e}.abbonamento-status--scaduta{background:#fff3e0;color:#ef6c00}.abbonamento-status--cancellata{background:#f5f5f5;color:#757575}.abbonamento-details{margin-bottom:1rem}.abbonamento-cancel-confirm{margin-top:1rem;padding:1rem;background:#fff5f5;border-radius:8px;border:1px solid #ffcdd2}.abbonamento-cancel-confirm p{margin:0 0 .75rem;font-size:.9rem;color:#c62828}.abbonamento-cancel-actions{display:flex;gap:.75rem}.abbonamento-plans{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.abbonamento-plan-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:box-shadow .2s,border-color .2s;border:2px solid transparent}.abbonamento-plan-card:hover{box-shadow:0 4px 16px #496dba1f}.abbonamento-plan-card--selected{border-color:#496dba;box-shadow:0 4px 16px #496dba26}.abbonamento-plan-card h4{margin:0 0 .3rem;font-size:1.05rem;color:#333}.abbonamento-plan-desc{margin:0 0 .75rem;font-size:.85rem;color:#888;line-height:1.4}.abbonamento-plan-price{font-size:1.5rem;font-weight:700;color:#496dba;margin-bottom:.15rem}.abbonamento-plan-duration{font-size:.8rem;color:#888;margin-bottom:.5rem}.abbonamento-plan-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;display:flex;flex-direction:column;gap:.75rem}.abbonamento-promo-form{display:flex;flex-direction:column;gap:.5rem}.abbonamento-promo-row{display:flex;gap:.5rem}.abbonamento-promo-row input{flex:1;padding:.6rem .8rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;font-family:inherit;transition:border-color .2s}.abbonamento-promo-row input:focus{outline:none;border-color:#496dba;box-shadow:0 0 0 3px #496dba1f}.abbonamento-promo-row .btn-secondary{width:auto;padding:.6rem 1rem;margin-top:0;white-space:nowrap}.abbonamento-promo-result{font-size:.85rem;padding:.5rem .75rem;border-radius:6px}.abbonamento-promo-result--valid{background:#e8f5e9;color:#2e7d32}.abbonamento-promo-result--invalid{background:#fff3e0;color:#ef6c00}.abbonamento-plan-actions .btn-primary{margin-top:.25rem}.abbonamento-upgrade-section{margin-top:1.25rem;border-top:1px solid #e5e7eb;padding-top:1rem}.abbonamento-upgrade-toggle{display:flex;align-items:center;gap:.5rem;background:none;border:none;font-size:.95rem;font-weight:600;color:#059669;cursor:pointer;padding:.5rem 0;font-family:inherit;transition:color .2s;width:100%}.abbonamento-upgrade-toggle:hover{color:#047857}.abbonamento-upgrade-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.abbonamento-upgrade-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.abbonamento-upgrade-info h4{margin:0 0 .25rem;font-size:1rem;color:#166534}.abbonamento-upgrade-desc{font-size:.85rem;color:#555;margin:0 0 .5rem}.abbonamento-upgrade-details{display:flex;justify-content:space-between;font-size:.85rem;color:#666}.abbonamento-upgrade-calc{font-size:.82rem;color:#059669;margin-top:.25rem}.abbonamento-upgrade-price{font-size:1rem;color:#166534;margin-top:.35rem}.abbonamento-upgrade-price strong{font-size:1.15rem}.abbonamento-upgrade-card .btn-stripe{align-self:flex-end;width:auto;padding:.5rem 1.5rem}@media (max-width: 768px){.abbonamento-page{max-width:100%}.abbonamento-cancel-actions{flex-direction:column}}@media (max-width: 480px){.abbonamento-promo-row{flex-direction:column}.abbonamento-promo-row .btn-secondary{width:100%}.abbonamento-plan-price{font-size:1.3rem}}.payment-error-banner{display:flex;align-items:center;gap:.75rem;background:#fef2f2;border:2px solid #ef4444;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1rem;color:#b91c1c;font-weight:700;font-size:1rem;letter-spacing:.02em}.payment-error-banner svg{flex-shrink:0;color:#ef4444}.stripe-payment-form{display:flex;flex-direction:column;gap:1.25rem}.stripe-form-actions{display:flex;gap:.75rem;margin-top:.5rem}.stripe-form-actions .btn-primary,.stripe-form-actions .btn-secondary{width:auto;flex:1;padding:.6rem 1.25rem;font-size:.9rem}.btn-stripe{background:#635bff;border-color:#635bff}.btn-stripe:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#212529de;background-color:#f0f2f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;padding:0}h1,h2,h3,h4,h5,h6{line-height:1.2}button{font-family:inherit}
