:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef3f1;color:#182224;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #eef3f1;--surface: #ffffff;--surface-strong: #f7faf9;--border: #d9e3df;--text: #182224;--muted: #667574;--green: #19a974;--green-dark: #0c7c59;--blue: #2775d1;--red: #d64545;--amber: #d88a15;--ink: #12201e;--shadow: 0 16px 40px rgba(22, 44, 41, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#ffffffb8,#eef3f1eb),var(--bg)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.66}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:28px;height:100vh;padding:22px;color:#f7fffc;background:#12201e}.mobile-menu-button,.sidebar-close,.sidebar-backdrop{display:none}.brand,.login-brand{display:flex;align-items:center;gap:12px}.brand-mark,.login-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--green),var(--blue));font-weight:800}.brand strong,.login-brand h1{display:block;margin:0;line-height:1.15}.brand span,.login-brand p{display:block;margin:3px 0 0;color:#a9bbb7;font-size:.86rem}.nav-list{display:grid;gap:6px}.nav-link,.sidebar-logout,.primary-button,.ghost-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:0;border-radius:8px;transition:background-color .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.nav-link{justify-content:flex-start;padding:11px 12px;color:#dce9e5}.nav-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:auto;padding:0 7px;border-radius:999px;color:#fff;background:var(--red);font-size:.78rem;line-height:1}.nav-link:hover,.nav-link.router-link-active{background:#ffffff1f;color:#fff}.sidebar-logout{justify-content:flex-start;margin-top:auto;padding:11px 12px;color:#dce9e5;background:#ffffff14}.app-main{position:relative;min-width:0;padding:28px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.page-header h1{margin:0;font-size:clamp(1.65rem,2.4vw,2.25rem);line-height:1.1;letter-spacing:0}.page-header p{max-width:760px;margin:8px 0 0;color:var(--muted)}.stats-grid,.action-grid,.detail-grid{display:grid;gap:16px}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card,.action-card,.detail-grid article,.table-card,.edit-panel,.login-panel{border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.stat-card{display:flex;align-items:center;gap:16px;min-height:132px;padding:22px}.stat-card span,.detail-grid span{color:var(--muted);font-size:.9rem}.stat-card strong{display:block;margin-top:8px;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1}.stat-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:8px}.stat-green .stat-icon{color:var(--green-dark);background:#e2f6ef}.stat-blue .stat-icon{color:var(--blue);background:#e4effd}.stat-red .stat-icon{color:var(--red);background:#fde8e8}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.action-card{display:grid;gap:8px;min-height:148px;padding:22px;color:var(--ink)}.action-card svg{color:var(--green-dark)}.action-card span{color:var(--muted)}.action-card:hover{transform:translateY(-2px);border-color:#b6d8cb}.filter-bar,.form-grid{display:grid;gap:14px}.filter-bar{grid-template-columns:repeat(5,minmax(140px,1fr));align-items:end;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:8px;background:#ffffffd1}.dashboard-filter{grid-template-columns:repeat(3,minmax(150px,220px))}.period-note{margin:12px 0 0;color:var(--muted);font-weight:700}label{display:grid;gap:7px;color:#394845;font-size:.88rem;font-weight:700}input,select,textarea{width:100%;min-height:42px;border:1px solid #cfd9d6;border-radius:8px;padding:9px 11px;color:var(--text);background:#fff;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #19a97424}.input-icon{position:relative;display:block}.input-icon svg{position:absolute;left:11px;top:50%;color:var(--muted);transform:translateY(-50%)}.input-icon input{padding-left:36px}.filter-actions,.form-actions,.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.primary-button{min-width:112px;padding:0 14px;color:#fff;background:var(--green-dark);font-weight:800}.primary-button:hover{background:#096a4c}.ghost-button{min-width:96px;padding:0 12px;color:var(--ink);border:1px solid var(--border);background:#fff;font-weight:800}.ghost-button:hover{border-color:#b6d8cb;background:#f3fbf8}.icon-button{width:36px;min-width:36px;height:36px;color:var(--ink);border:1px solid var(--border);background:#fff}.icon-button:hover{border-color:#aacfc1;background:#f3fbf8}.danger-button{color:var(--red)}.compact-button{min-width:72px;min-height:34px}.edit-panel{margin-bottom:16px;padding:18px}.panel-title,.table-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title{margin-bottom:14px}.panel-title h2{margin:0;font-size:1.15rem}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.full-span{grid-column:1 / -1}.check-row{display:flex;align-items:center;gap:10px;align-self:end;min-height:42px}.check-row input{width:18px;min-height:18px}.form-error{padding:11px 12px;border:1px solid #f4bbbb;border-radius:8px;color:#9d2525;background:#fff0f0;font-weight:700}.table-card{overflow:hidden}.table-card-header{padding:16px 18px;border-bottom:1px solid var(--border);background:var(--surface-strong)}.table-card-header span{color:var(--muted)}.table-wrap{width:100%;overflow-x:auto}table{width:100%;min-width:860px;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:#51605e;background:#fbfdfc;font-size:.78rem;text-transform:uppercase}td span{display:block;margin-top:4px;color:var(--muted);font-size:.86rem}tbody tr:hover{background:#f8fbfa}tr.warning{background:#fff8e9}tr.danger{background:#fff0f0}tr.muted td:first-child{box-shadow:inset 4px 0 #cfd9d6}.status-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;color:#3f4d4b;background:#edf2f0;font-size:.82rem;font-weight:800;text-transform:capitalize}.status-stack{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.table-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0;border:0;color:var(--ink);background:transparent}.table-toggle svg{color:var(--muted)}.nested-row td{padding:0;background:#f7faf9}.nested-subscriptions{display:grid;gap:10px;padding:14px 18px 18px 54px}.nested-subscription{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(100px,.7fr) minmax(170px,1fr) auto;align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#fff}.nested-subscription.warning{border-color:#efcf8d;background:#fffaf0}.nested-subscription.danger{border-color:#f3aaaa;background:#fff4f4}.nested-subscription.muted{box-shadow:inset 4px 0 #cfd9d6}.notification-list{display:grid;gap:12px;padding:16px}.notification-item{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fff}.notification-item.warning{border-color:#efcf8d;background:#fffaf0}.notification-item.danger{border-color:#f3aaaa;background:#fff4f4}.notification-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;color:var(--green-dark);background:#e2f6ef}.notification-item span,.notification-item small{display:block;margin-top:4px;color:var(--muted)}.quick-client-box{display:grid;align-content:end;gap:10px}.quick-client-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:#f7faf9}.status-pagato,.status-attivo,.status-entrata,.status-true{color:#096a4c;background:#e2f6ef}.status-non-pagato,.status-non-attivo,.status-sospeso,.status-false{color:#8a5a07;background:#fff2d6}.status-uscita,.status-scaduto{color:#9d2525;background:#fde8e8}.empty-state{display:grid;justify-items:center;gap:6px;padding:34px;color:var(--muted);text-align:center}.empty-state strong{color:var(--text)}.detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.detail-grid article{display:grid;gap:8px;padding:18px}.detail-grid strong{font-size:1.02rem}.login-page{display:grid;place-items:center;min-height:100vh;padding:22px;background:var(--bg)}.login-panel{width:min(440px,100%);padding:28px}.login-brand{margin-bottom:24px}.login-brand h1{font-size:2rem}@media (max-width: 1120px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;left:0;top:0;width:min(288px,84vw);height:100vh;transform:translate(-100%);transition:transform .18s ease}.sidebar-open .sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:block;pointer-events:none;background:#0a141200;transition:background-color .18s ease}.sidebar-open .sidebar-backdrop{pointer-events:auto;background:#0a141275}.mobile-menu-button,.sidebar-close{display:inline-grid;place-items:center;width:42px;height:42px;border:0;border-radius:8px}.mobile-menu-button{position:absolute;top:16px;right:16px;z-index:10;color:var(--text);background:var(--surface);box-shadow:var(--shadow)}.sidebar-close{margin-left:auto;color:#fff;background:#ffffff1a}.stats-grid,.action-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.app-main{padding:16px}.sidebar{padding:18px}.brand span,.nav-link span,.sidebar-logout span{display:block}.page-header{padding-right:56px;flex-direction:column}.stats-grid,.action-grid,.detail-grid,.two-cols,.filter-bar{grid-template-columns:1fr}.stat-card{min-height:112px}.filter-actions,.form-actions{justify-content:stretch}.filter-actions>*,.form-actions>*{flex:1}.nested-subscriptions{padding-left:18px}.nested-subscription{grid-template-columns:1fr}}
