:root{--vodafone-red:#e60000;--vodafone-dark:#333;--vodafone-grey:#666;--vodafone-light-grey:#f4f4f4;--vodafone-white:#fff;--shadow-sm:0 2px 4px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;max-width:100vw;font-family:Vodafone Rg,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}body{background:var(--vodafone-light-grey);color:var(--vodafone-dark)}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:0 auto;padding:20px}:root{--sidebar-width:240px;--sidebar-collapsed-width:64px;--sidebar-bg:#1e1e2e;--sidebar-border:#ffffff12;--sidebar-text:#ffffffbf;--sidebar-text-muted:#ffffff59;--sidebar-active-bg:#e600002e;--sidebar-active-text:#fff;--sidebar-hover-bg:#ffffff0f;--sidebar-section-label:#ffffff4d;--transition:.22s ease}html,body{height:100%}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:100;min-height:100vh;transition:width var(--transition);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width)}.sidebar-brand{border-bottom:1px solid var(--sidebar-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;height:64px;padding:0 16px;display:flex}.sidebar-brand-text{color:#fff;white-space:nowrap;letter-spacing:-.3px;font-size:17px;font-weight:700;overflow:hidden}.sidebar-brand-text .brand-accent{color:var(--vodafone-red)}.sidebar-toggle{color:var(--sidebar-text-muted);cursor:pointer;transition:background var(--transition), color var(--transition);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-toggle:hover{background:var(--sidebar-hover-bg);color:#fff}.sidebar-collapsed .sidebar-brand{justify-content:center}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex:1;padding:12px 0;overflow:hidden auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.sidebar-section{margin-bottom:4px}.sidebar-section-label{letter-spacing:.9px;text-transform:uppercase;color:var(--sidebar-section-label);white-space:nowrap;padding:12px 20px 4px;font-size:10px;font-weight:700;display:block;overflow:hidden}.sidebar-item{color:var(--sidebar-text);transition:background var(--transition), color var(--transition);white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;gap:12px;margin:2px 8px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-item:hover{background:var(--sidebar-hover-bg);color:#fff}.sidebar-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar-item.active:before{content:"";background:var(--vodafone-red);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.sidebar-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.sidebar-item-label{text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-item-ext{opacity:.45;flex-shrink:0;align-items:center;display:flex}.sidebar-collapsed .sidebar-item{justify-content:center;width:44px;margin:2px auto;padding:10px}.sidebar-collapsed .sidebar-section{flex-direction:column;align-items:center;display:flex}.sidebar-user{border-top:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;gap:10px;padding:14px 12px;display:flex}.sidebar-user-info{padding:0 4px;overflow:hidden}.sidebar-user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-roles{color:var(--sidebar-text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.sidebar-logout{color:#ff6b6b;cursor:pointer;width:100%;transition:background var(--transition), color var(--transition);background:#e600001f;border:1px solid #e6000033;border-radius:7px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.sidebar-logout:hover{color:#fff;background:#e6000040}.sidebar-collapsed .sidebar-logout{justify-content:center;width:40px;margin:0 auto;padding:8px}.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition);background:var(--vodafone-light-grey);flex:1}.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-width)}.card{background:var(--vodafone-white);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:24px;padding:32px;transition:all .3s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card h1{color:var(--vodafone-dark);letter-spacing:-.5px;margin-bottom:16px;font-size:36px;font-weight:700}.card h2{color:var(--vodafone-dark);margin-top:32px;margin-bottom:24px;font-size:28px;font-weight:700}.card h3{color:var(--vodafone-dark);margin-bottom:8px;font-size:20px;font-weight:600}.card p{color:var(--vodafone-grey);line-height:1.6}.button{cursor:pointer;text-transform:none;letter-spacing:.3px;border:none;border-radius:6px;padding:14px 32px;font-size:15px;font-weight:600;transition:all .3s}.button-primary{background:var(--vodafone-red);color:var(--vodafone-white)}.button-primary:hover{box-shadow:var(--shadow-md);background:#c00;transform:translateY(-1px)}.button-success{color:var(--vodafone-white);background:#00b050}.button-success:hover{box-shadow:var(--shadow-md);background:#009a44;transform:translateY(-1px)}.button-danger{background:var(--vodafone-red);color:var(--vodafone-white)}.button-danger:hover{box-shadow:var(--shadow-md);background:#c00;transform:translateY(-1px)}.button-secondary{background:var(--vodafone-white);color:var(--vodafone-dark);border:2px solid var(--vodafone-dark)}.button-secondary:hover{background:var(--vodafone-dark);color:var(--vodafone-white);box-shadow:var(--shadow-md);transform:translateY(-1px)}.table{border-collapse:collapse;width:100%;margin-top:20px}.table th,.table td{text-align:left;border-bottom:1px solid #ddd;padding:12px}.table th{background:var(--vodafone-light-grey);color:var(--vodafone-dark);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.table tbody tr:hover{background:#f8f9fa}.form-group{margin-bottom:20px}.form-group label{color:#2c3e50;margin-bottom:5px;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px;font-size:14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--vodafone-red);outline:none;box-shadow:0 0 0 3px #e600001a}.form-actions{gap:10px;margin-top:20px;display:flex}.loading{text-align:center;color:#7f8c8d;padding:40px}.error{color:#c00;background:#fee;border:1px solid #fcc;border-radius:4px;margin-bottom:20px;padding:15px}.success{color:#060;background:#efe;border:1px solid #cfc;border-radius:4px;margin-bottom:20px;padding:15px}.badge{border-radius:12px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-block}.badge-success{color:#155724;background:#d4edda}.badge-danger{color:#721c24;background:#f8d7da}.badge-warning{color:#856404;background:#fff3cd}.badge-secondary{color:#383d41;background:#e2e3e5}.modal{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;padding:30px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{color:#2c3e50;margin:0}.close-button{cursor:pointer;color:#7f8c8d;background:0 0;border:none;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:24px;display:flex}.close-button:hover{color:#2c3e50}.actions{gap:10px;display:flex}
